在硬件上,一次处理一整帧视频在内存和面积上的成本都很高。为了节省资源,串行处理在HDL设计中更可取。Vision HDL Toolbox™块和System对象操作像素、线或邻域,而不是帧。这些块和对象接受并生成视频数据作为像素数据和控制信号的串行流。控制信号指示图像或视频帧中每个像素的相对位置。该协议模拟视频系统的定时,包括帧之间的非活动间隔。每个块或对象在不完全了解图像格式的情况下操作,并且可以容忍线和帧的不完美计时。
所有Vision HDL工具箱块和系统对象支持单个像素流(每个周期为1个像素)。金宝app某些块和系统对象还支持多功能流(每个周期为4或8像素),用于高速速率或高金宝app分辨率视频。MultiPixel Streaming增加了硬件资源,以支持具有与较小分辨率视频相同的硬件时钟速率的更高金宝app视频分辨率。金宝搏官方网站系统对象不支持用于多轴流的HDL代码生成。金宝app使用等效块生成多缀算法的HDL代码。
视频捕捉系统从左到右、从上到下扫描视频信号。当这些系统扫描时,它们会在活动视频的线和帧之间产生非活动间隔。
的水平消隐间隔是由一行结束和下一行开始之间的非活动周期组成。这个音程通常被分成两部分前阳台和后门廊.这些术语来自模拟视频波形中的线之间的同步脉冲。的前阳台为主动线末端与同步脉冲之间的采样数。的后门廊为同步脉冲和有源线路开始之间的采样数。
的垂直消隐间隔是由非活动周期组成的结束积极行一个框架和开始积极行下一帧。
扫描模式需要用于水平和垂直方向的开始和结束信号。Vision HDL工具箱流传输像素协议包括消隐间隔,并允许您配置活动和非活动帧的大小。
在框架图中,活动框架左右两侧的蓝色阴影区域表示水平消隐间隔。活动框架上方和下方的橙色阴影区域表示垂直空白间隔。有关消隐间隔的更多信息,请参见配置消隐间隔.
使用此接口的块和对象不需要用于确切的图像大小的配置选项或非活动区域的大小。此外,如果更改设计的图像格式,则无需更新每个块或对象。相反,在序列化步骤中更新图像参数一次。某些块和对象仍然需要行缓冲区大小参数来分配内存资源。
通过隔离图像格式细节,您可以使用小图像开发设计以更快地进行模拟。然后,一旦设计正确,更新到实际的图像大小。
视频可以来自不同的来源,如相机,磁带存储,数字存储,或开关和插入齿轮。这些源可能会带来时间问题。人类视觉无法检测到视频信号中的小变化,所以视频系统的时序不需要完美。因此,视频处理块必须容忍线和帧的可变时间。
通过使用带有控制信号的流像素接口,每个Vision HDL工具箱块或对象在行开始或帧开始信号的新像素段上开始计算。无论块或对象是否接收到前一段的结束信号,计算都将发生。
协议允许较小的时间错误。如果启动信号之间的有效周期和无效周期的数量发生变化,块或对象将继续正确地运行。一些Vision HDL工具箱块和对象需要最小的水平空白区域来容纳内存缓冲区操作。有关更多信息,请参见配置消隐间隔.
在仿真金宝app软件®,可以使用帧像素块将框架视频数据转换为像素流和符合该协议的控制信号。控制信号以一个名为的非宽恕总线数据类型分组pixelcontrol
.您可以将该块配置为每周期返回1、4或8个像素流。
在MATLAB®,可以使用visionhdl。FrameToPixels
对象将框架视频数据转换为像素流和符合该协议的控制信号。控制信号以结构数据类型分组。您可以配置对象以创建每个周期1,4或8像素的像素流。
如果您的输入视频已经是串行格式,您可以设计自己的逻辑来生成pixelcontrol
从现有串行控制方案控制信号。例如,看转换相机控制信号到像素控制格式和将视觉HDL块集成到相机链路系统中.
Vision HDL工具箱块和对象包括用于流式像素数据的端口或参数。每个块和对象都支持一个或多个像素格式。金宝app支持的格金宝app式因块或对象执行的操作而异。此表详细说明了Vision HDL Toolbox支持的常用视频格式。金宝app
类型的视频 | 像素格式 |
---|---|
二进制 | 每个像素由一个布尔 或逻辑 价值。用于真正的黑白视频。 |
灰度 | 每个像素都表示鲁瓦,这是伽马校正的亮度值。该像素是单一无符号整数或定点值。 |
颜色 | 每个像素由2到4个无符号整数或定点值表示,表示像素的颜色分量。视觉HDL工具箱块和对象使用伽马校正的颜色空间,如R' g ' b '和Y' cbcr。 若要为不支持多组件输入的块处理多组件流,请为每个组件复制块。金宝app的 要设置彩色视频的多像素流,您可以配置帧像素块返回多组件和多像素流。看到MultiPixel-MultiComponent视频流. |
Vision HDL工具箱块有一个输入或输出端口,像素
,用于像素数据。视觉HDL工具箱系统对象期望或返回一个表示像素数据的参数。下表描述了像素数据的格式。
港口或争论 | 描述 | 数据类型 |
---|---|---|
像素 |
您可以使用多轴流媒体接口模拟系统对象,但HDL代码生成不支持使用使用多轴流的系统对象。金宝app使用等效块生成多缀算法的HDL代码。 |
金宝app支持的数据类型可以包括:
|
视觉HDL工具箱块和对象包括与每个像素相关的控制信号的端口或参数。这五个控制信号表明像素的有效性及其在帧中的位置。对于多像素流,每个像素值向量都有一组控制信号。
在Si金宝appmulink中,控制信号端口是一个名为的非宽恕总线数据类型pixelcontrol
.总线数据类型的详细信息请参见像素控制总线.
在MATLAB中,控制信号参数是一个结构。结构数据类型的详细信息请参见像素控制结构.
为了说明流式像素协议,本示例将帧转换为控制和数据信号序列。考虑一个2 × 3像素的图像。为了建模消隐间隔,将序列化图像配置为在活动图像周围的这些区域包含非活动像素:
1像素宽的后部门廊
2-pixel-wide门廊
第一条线路之前的一条线路
在最后有效行之后的一行
属性可以配置激活区域和非激活区域的尺寸帧像素块或visionhdl。FrameToPixels
对象。
在图中,活动图像区域位于虚线矩形中,非活动像素围绕着它。像素用灰度值进行标记。
块或对象从左到右序列化图像,每次一行。时序图显示与此图像相对应的控制信号和像素数据,这是串行输出帧像素块,配置为单像素流。
举个例子帧像素块序列化图像,请参阅在Simulink中设计HDL视频处理算法金宝app.
举个例子FrameToPixels
对象来序列化图像,请参阅在Matlab中设计硬件目标图像过滤器.
这个例子将一帧转换为每周期4个像素的多像素流和相应的控制信号。考虑一个64像素宽的帧,活动图像周围有这些不活动区域。
4-pixel-wide后门廊
4-pixel-wide门廊
第一个有效线路之前的4个线路
在最后一个活动行之后的4行
的帧像素配置用于多气旋流的块返回由帧中的每条线的像素形成的像素向量。此图显示了帧的左上角。灰色像素显示帧的有效区域,零值像素表示消隐像素。每个活动像素上的标签表示帧中的像素的位置。突出显示的框显示在一个周期上流式传输的像素集。非活动区域中的像素一次也是四次流传输四个。灰色框显示在活动帧的开始前流过循环的四个消隐像素。蓝色框显示在帧的第一个有效周期上流式传输的四个像素值,橙色框显示在帧的第二个有效周期上流式传输的四个像素值。绿色框显示下一个活动线的前四个像素。
该波形显示了同一帧的第一行的多像素流数据和控制信号,每周期流4个像素。的pixelcontrol
适用于每组四个像素值的信号显示在数据信号下方。因为矢量只有一个有效的
信号时,向量中的像素要么全部有效,要么全部无效。的HSTART.
和音速启动
信号适用于矢量中最低索引的像素。的这个到
和公开发表
信号应用于向量中索引最高的像素。
在所示的时间段之前,一次流动初始垂直消隐像素,所有控制信号设置为错误的
.这个波形显示图像第一行的像素流。灰色、蓝色和橙色的框对应于框架图中突出显示的区域。在第一行完成后,流有两个周期的水平空白,包含8个无效像素(前和后门廊)。然后,波形显示流中的下一行,从绿色方框开始。
有关使用多像素流的示例模型,请参见滤波器多缀视频流.
帧像素|像素帧|visionhdl。FrameToPixels
|visionhdl。PixelsToFrame