在硬件中,一次处理整帧视频在内存和面积上有很高的成本。为了节省资源,在HDL设计中采用串行处理。Vision HDL Toolbox™块和系统对象在像素、线或邻域上操作,而不是在帧上操作。所述块和对象接受并生成作为像素数据和控制信号的串行流的视频数据。控制信号指示图像或视频帧内每个像素的相对位置。该协议模拟视频系统的定时,包括帧之间的非活动间隔。每个块或对象在不完全了解图像格式的情况下操作,并且可以容忍线条和帧的不完美定时。
所有Vision HDL工具箱块和系统对象都支持单像素流(每个周期1像素)。万博1manbetx一些块和系统对象还支持高速率或高分辨率视频的多像素流(每个周期4或8像素万博1manbetx)。多像素流媒体增加硬件资源,以支持更高的视频分辨率,与较小分辨率的视频具有相同的硬件时钟率。万博 尤文图斯万博1manbetx系统对象不支持用于多像素流的HDL代码生成。万博1manbetx使用等效块生成多像素算法的HDL代码。
视频捕获系统从左到右、从上到下扫描视频信号。当这些系统扫描时,它们生成活动视频的线和帧之间的非活动间隔。
的水平消隐间隔是由一条线的端部和下一条线的开始之间的非活动周期组成。此时间间隔通常被分成两个部分:门廊和后门廊。这些术语来自于模拟视频波形中线路间的同步脉冲。的门廊是有效行的端部和所述同步脉冲之间的样本的数目。的后门廊是同步脉冲与活动线路开始之间的采样数。
的垂直消隐间隔取得的之间非活动周期的向上结束活动行一个框架和所述的开始积极行下一帧的。
扫描模式在水平方向和垂直方向上都需要开始和结束信号。Vision HDL工具箱流像素协议包括消隐间隔,并允许您配置活动和非活动帧的大小。
使用此接口的块和对象不需要精确图像大小或非活动区域大小的配置选项。此外,如果更改了设计的图像格式,则不需要更新每个块或对象。相反,在序列化步骤中只更新一次映像参数。一些块和对象仍然需要一个行缓冲区大小参数来分配内存资源。
通过分离图像格式细节,您可以使用小图像开发一种设计,以实现更快的模拟。然后一旦设计正确,更新到实际的图像大小。
视频可以来自各种来源,如相机、磁带存储器、数字存储器或开关和插入设备。这些源可能会引入时间问题。人的视觉无法检测到视频信号中的小方差,因此视频系统的定时不需要很完美。因此,视频处理块必须容忍线和帧的定时变化。
通过使用与控制信号的流像素接口,每个视觉HDL工具箱块或对象在开始的行上的像素的新鲜段开始计算或启动的帧信号。计算发生块或物体是否接收到用于所述之前段的结束信号。
协议允许轻微的计时错误。如果启动信号之间有效和无效周期的数量不同,则块或对象将继续正确操作。一些Vision HDL工具箱块和对象需要最小的水平消隐区域来适应内存缓冲区操作。
在仿真万博1manbetx软件®,可以使用帧像素块将帧视频数据转换为像素流并控制符合此协议的信号。控制信号分组在称为的非虚拟总线数据类型中pixelcontrol
。可以将块配置为每个周期返回1、4或8个像素的像素流。
在MATLAB®,可以使用visionhdl.FrameToPixels
对象将帧视频数据转换为像素流,并控制符合此协议的信号。控制信号分组在一个结构数据类型。您可以配置该对象以创建每个周期具有1、4或8个像素的像素流。
如果输入的视频已经在串行格式,你可以设计自己的逻辑来生成pixelcontrol
控制信号从您现有的串行控制方案。例如,请参见转换摄像机控制信号来pixelcontrol格式和将视觉HDL模块集成到摄像机链接系统中。
Vision HDL工具箱块和对象包括用于流像素数据的端口或参数。每个块和对象支持一种或多种像素格式。万博1manbetx受支持的万博1manbetx格式取决于块或对象执行的操作。此表详细说明了Vision HDL工具箱支持的常见视频格式。万博1manbetx
视频类型 | 像素格式 |
---|---|
二进制 | 每个像素由一个单一的表示布尔 要么逻辑 价值。用于真正的黑白视频。 |
灰度 | 表示每个像素亮度,即伽马校正后的亮度值。该像素是单个无符号整数或定点值。 |
颜色 | 每个像素由表示像素的颜色分量为2〜4的无符号整数或定点值表示。视力HDL工具箱块和对象使用伽马校正的色彩空间,如R'G'B”和Y'CbCr的。 要设置多像素流媒体彩色视频,使用单独的帧像素块为每个颜色分量。例如,对于每个周期4个像素的R' g ' b '流,使用3个像素帧像素块创建三个矢量,每个周期4像素。的 |
Vision HDL工具箱块有一个输入或输出端口,像素
,表示像素数据。Vision HDL工具箱系统对象期望或返回表示像素数据的参数。下表描述了像素数据的格式。
港口或论点 | 描述 | 数据类型 |
---|---|---|
像素 |
|
万博1manbetx支持的数据类型包括:
|
视力HDL工具箱块和对象包括用于与每个像素控制信号的端口或参数。这五个控制信号指示的像素的有效性和在画面中的位置。对于多像素流,像素值的每个向量具有一组控制信号。
在Si万博1manbetxmulink中,控制信号端口是非虚拟总线数据类型pixelcontrol
。对于总线数据类型的详细信息,请参阅像素控制总线。
在MATLAB中,该控制信号参数是一个结构。对于结构数据类型的详细信息,请参见像素控制结构。
为了说明流像素协议,本实施例的帧转换为控制信号和数据信号的序列。考虑一个2×3像素的图像。为了模拟在消隐间隔,配置串行化图像以包括在围绕所述有源图象这些区域无效像素:
1像素宽后门廊
2-pixel-wide门廊
第一有源行之前1线
最后一个活动行之后1线
属性可以配置活动区域和非活动区域的维度帧像素块或visionhdl.FrameToPixels
目的。
在图中,活动图像区域位于虚线矩形中,其周围是不活动的像素。像素被标记为它们的灰度值。
从左至右,一条线在一个时间块或对象序列化图像。该时序图显示了控制信号和像素数据对应于该图像中,这是的串行输出帧像素块用于该帧,配置为单像素流。
对于使用的示例帧像素块序列化图像,请参阅设计的视频处理算法的HDL在Simulink万博1manbetx。
对于使用的示例FrameToPixels
对象序列化图像,请参阅在MATLAB中设计了一个硬件目标图像滤波器。
本例将一帧转换为每周期4个像素的多像素流和相应的控制信号。考虑一个64像素宽的框架,在活动图像周围有这些非活动区域。
4-pixel-wide后门廊
4-pixel-wide门廊
第一个活动行之前的4行
最后一行活动行之后的4行
的帧像素配置为多像素流的块从左到右返回由帧中每一行的像素组成的像素向量。此图显示了框架的左上角。灰度像素表示帧的活动区域,零值像素表示消隐像素。每个活动像素上的标签表示像素在帧中的位置。突出显示的方框显示在一个周期中流化的像素集。在非活动区域的像素也流一次四个。灰色框显示了在活动帧开始之前的周期中流动的四个空白像素。蓝色框显示在该帧的第一个有效周期中流化的四个像素值,橙色框显示在该帧的第二个有效周期中流化的四个像素值。绿色框显示下一行的前四个像素。
该波形示出了多像素流数据和控制信号的相同帧的第一行,与流每个周期4个像素。的pixelcontrol
应用于每组4个像素值的信号如下所示。因为这个向量只有一个有效
信号时,矢量中的像素要么全部有效,要么全部无效。的hStart
和的vStart
信号应用于向量中索引最低的像素。的亨德
和公开发表
信号施加到与所述矢量指数最高的像素。
在显示的时间段之前,初始垂直消隐像素一次流四个,所有控制信号设置为假
。该波形示出了图像的第一行的像素流。灰,蓝,橙框对应于该帧图的高亮区域。第一行完成之后,该流具有包含8个无效像素(前后肩)水平消隐的两个周期。然后,波形显示流中的下一行,从绿色方块。
有关使用多像素流的示例模型,请参见过滤多像素视频流。
帧像素|像素帧|visionhdl.FrameToPixels
|visionhdl.PixelsToFrame