主要内容

流像素接口

什么是流像素界面?

在硬件中,一次处理整个视频帧在内存和区域上有很高的成本。为了节省资源,串行处理在HDL设计中是首选。Vision HDL工具箱™块和系统对象在像素、线或邻域上操作,而不是在帧上操作。块和对象接受并生成视频数据作为像素数据和控制信号的串行流。控制信号指示图像或视频帧中每个像素的相对位置。该协议模拟视频系统的定时,包括帧之间的非活动间隔。每个块或对象在不完全了解图像格式的情况下运行,可以容忍不完美的线条和帧的时间。

所有Vision HDL工具箱块和系统对象支持单像素流(每个周期1个像素)。万博1manbetx一些块和系统对象还支持多像素流(每周期4或8像素)的高速率或高分辨率视频万博1manbetx。多像素流增加了硬件资源,以支持更高的视频分辨率,并具有与较小分辨率视频相同的硬件时钟速率。万博 尤文图斯万博1manbetx系统对象不支持多像素流的HDL代码生成。万博1manbetx使用等效块生成多像素算法的HDL代码。

流像素界面如何工作?

视频采集系统从左到右,从上到下扫描视频信号。当这些系统扫描时,它们产生活动视频的行和帧之间的非活动间隔。

水平消隐间隔由一行的结束和下一行的开始之间的非活动周期组成。这个音程通常分为两部分门廊后门廊.这些术语来自于模拟视频波形中线路之间的同步脉冲。的门廊是在活动线路的末端和同步脉冲之间的采样数。的后门廊是同步脉冲和活动线路起始之间的采样数。

垂直消隐之间的非活动周期组成结束积极行一个坐标系和开始积极行下一帧。

扫描模式需要水平和垂直方向的开始和结束信号。Vision HDL工具箱流像素协议包括消隐间隔,并允许您配置活动帧和非活动帧的大小。

视频帧的不活跃和活跃时期。

在框架图中,活动框架左边和右边的蓝色阴影区域表示水平消隐间隔。活动框架上方和下方的橙色阴影区域表示垂直消隐间隔。有关空白间隔的更多信息,请参见配置消隐间隔

为什么使用流像素界面?

格式独立

使用此界面的块和对象不需要配置精确的图像大小或非活动区域的大小。此外,如果您更改了设计的图像格式,则不需要更新每个块或对象。相反,在序列化步骤中更新图像参数一次。一些块和对象仍然需要一个行缓冲区大小参数来分配内存资源。

通过隔离图像格式细节,可以使用小图像开发设计,以更快地进行模拟。然后一旦设计是正确的,更新到实际图像大小。

错误宽容

视频可以来自不同的来源,如摄像机,磁带存储,数字存储,或开关和插入设备。这些来源可能会带来时间问题。人类的视觉无法检测出视频信号中的小变化,所以视频系统的定时不需要很完美。因此,视频处理块必须容忍行和帧的可变时间。

通过使用带有控制信号的流像素接口,每个Vision HDL工具箱块或对象在行起止或帧起止信号处的像素的新段上开始计算。无论块或对象是否接收到前一个段的结束信号,计算都会发生。

该协议允许轻微的定时错误。如果开始信号之间的有效周期和无效周期的数量不同,则块或对象继续正常运行。一些视觉HDL工具箱块和对象需要最小水平空白区域来容纳内存缓冲区操作。有关更多信息,请参见配置消隐间隔

使用块和系统对象的像素流转换

在仿真万博1manbetx软件®,可以使用帧像素块,将帧视频数据转换为符合此协议的像素流和控制信号。控制信号分组在非虚拟总线数据类型称为pixelcontrol.可以将块配置为每个周期返回1、4或8个像素的像素流。

在MATLAB®,可以使用visionhdl。FrameToPixels目标将带框的视频数据转换为符合此协议的像素流和控制信号。控制信号按结构数据类型分组。您可以配置该对象以创建一个像素流,每个周期为1、4或8像素。

如果您的输入视频已经是串行格式,您可以设计自己的逻辑生成pixelcontrol来自现有串行控制方案的控制信号。例如,请参见转换相机控制信号到像素控制格式将视觉HDL模块集成到摄像机链接系统中

万博1manbetx支持的像素数据类型

Vision HDL工具箱块和对象包括用于流像素数据的端口或参数。每个块和对象支持一种或多种像素格式。万博1manbetx支持的格万博1manbetx式取决于块或对象执行的操作。这个表格详细说明了视觉HDL工具箱支持的常见视频格式。万博1manbetx

类型的视频 像素格式
二进制 每个像素用单个像素表示布尔逻辑价值。用于真正的黑白视频。
灰度 每个像素用亮度,即伽玛校正后的亮度值。这个像素是一个单一的无符号整数或定点值。
颜色

每个像素由2到4个无符号整数或定点值表示,这些值表示像素的颜色成分。视觉HDL工具箱块和对象使用伽马校正的颜色空间,如R' g ' b '和Y' cbcr。

若要处理不支持多组件输入的块的多组件流,请为每个组件复制该块。万博1manbetx的pixelcontrol所有组件的总线都是相同的,因此可以将单个总线连接到多个复制块。

要设置彩色视频的多像素流,可以配置帧像素块返回多组件和多像素流。看到MultiPixel-MultiComponent视频流

视觉HDL工具箱块有一个输入或输出端口,像素,获取像素数据。视觉HDL工具箱系统对象期望或返回一个表示像素数据的参数。下表描述了像素数据的格式。

港口或论点 描述 数据类型
像素
  • 单像素流——表示二进制或灰度像素值或表示颜色像素的2到4个值的行向量的标量

  • 多像素流-四个或八个像素值的列向量

  • 多像素多分量流-矩阵4或8像素值由2到4个颜色分量。

您可以使用多像素流接口模拟系统对象,但是使用多像素流的系统对象不支持HDL代码生成。万博1manbetx使用等效块生成多像素算法的HDL代码。

万博1manbetx支持的数据类型包括:

  • 布尔逻辑

  • 使用uintint

  • fixdt ()

数据类型支持模拟,但不支持HD万博1manbetxL代码生成。

请注意

这些块支持多像素流:万博1manbetx

ROI选择器像素流FIFO,像素流对准器块支持多像素多万博1manbetx组件流。

流像素控制信号

Vision HDL工具箱块和对象包括与每个像素相关的控制信号的端口或参数。这五个控制信号表明像素的有效性和它在帧中的位置。对于多像素流,像素值的每个向量都有一组控制信号。

在Si万博1manbetxmulink中,控制信号端口是非虚拟总线数据类型,称为pixelcontrol.有关总线数据类型的详细信息,请参见像素控制总线

在MATLAB中,控制信号参数是一个结构。关于结构数据类型的详细信息,请参见像素控制结构

单像素串行接口时序图

为了说明流像素协议,本例将帧转换为控制和数据信号序列。考虑一个2 × 3像素的图像。要对空白间隔建模,请配置序列化图像,使其包含活动图像周围这些区域中的非活动像素:

  • 1像素宽后门廊

  • 2-pixel-wide门廊

  • 在第一个活动行之前的1行

  • 在最后一条活动线路之后的1行

控件可以配置活动区域和非活动区域的维度帧像素块或visionhdl。FrameToPixels对象。

在图中,活动图像区域位于虚线矩形中,非活动像素围绕着它。像素用它们的灰度值标记。

该块或对象从左到右依次序列化图像,每次一行。时序图显示了与此图像相对应的控制信号和像素数据,这是串行输出的帧像素块,配置为单像素流。

属性的示例帧像素块序列化图像,请参见在Simulink中为HDL设计视频处理算法万博1manbetx

属性的示例FrameToPixels对象序列化图像,请参见用MATLAB设计一种硬件目标图像滤波器

多像素串行接口时序图

这个例子将一个帧转换为一个每周期4个像素的多像素流和相应的控制信号。考虑一个64像素宽的框架,在活动图像周围有这些非活动区域。

  • 4-pixel-wide后门廊

  • 4-pixel-wide门廊

  • 在第一个活动线路之前的4行

  • 在最后一条活动线路之后的4行

帧像素配置为多像素流的块从左到右返回帧中每一行的像素构成的像素向量。这个图表显示了框架的左上角。灰度像素表示帧的活动区域,零值像素表示空白像素。每个活动像素上的标签表示该像素在帧中的位置。高亮显示的框显示了在一个周期上的像素集合。非活动区域的像素也是一次流四个。灰色框显示了四个空白像素在活动帧开始之前的循环。蓝色框显示帧的第一个有效循环上流的四个像素值,橙色框显示帧的第二个有效循环上流的四个像素值。绿色框显示下一个活动线的前四个像素。

此波形显示了同一帧的第一行的多像素流数据和控制信号,以每周期4像素流。的pixelcontrol应用于每组4个像素值的信号显示在数据信号下面。因为向量只有一个有效的信号时,向量中的像素要么全部有效,要么全部无效。的hStart音速启动信号应用于向量中指数最低的像素。的这个到公开发表信号应用于向量中索引最高的像素。

在所示的时间段之前,初始垂直空白像素一次流4个,所有控制信号设置为.此波形显示图像第一行的像素流。灰色、蓝色和橙色框对应于框架图的突出显示区域。在第一行完成后,流有两个水平空白周期,其中包含8个无效像素(前门廊和后门廊)。然后,波形显示流中的下一行,从绿色框开始。

有关使用多像素流的示例模型,请参见过滤多像素视频流

另请参阅

|||

相关的话题