主要内容

流像素接口

什么是流像素接口?

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

所有Vision HDL工具箱块和系统对象都支持单像素流(每个周期1像素)。金宝app一些块和System对象也支持高速率或高分辨率视频的多像素流(每周期4或金宝app8像素)。多像素流增加了硬件资源,以支持与较小分辨率视频相同的硬件时钟率更高的视频分辨率。金宝搏官方网站金宝appSystem对象不支持多像素流的HDL代码生成。金宝app使用等价块生成多像素算法的HDL代码。

流像素接口如何工作?

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

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

这个垂直冲裁间隔是由非活动周期组成的结束积极行一个框架和起始活动线下一帧。

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

视频帧的非活动和活动时间段。

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

为什么要使用流媒体像素界面?

格式独立性

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

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

错误宽容

视频可以来自各种来源,如照相机、磁带存储器、数字存储器或开关和插入装置。这些来源可能会带来时间问题。人类视觉无法检测视频信号中的微小变化,因此视频系统的计时不需要完美。因此,视频处理块必须容忍行和帧的可变定时。

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

该协议允许微小的定时错误。如果启动信号之间的有效和无效循环数不同,则块或对象继续正常工作。一些Vision HDL工具箱块和对象需要最小水平空白区域以适应内存缓冲区操作。有关详细信息,请参阅配置消隐间隔

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

在Si金宝appmulink中®,使用帧到像素块,将帧视频数据转换为符合此协议的象素流和控制信号。控制信号在称为的非虚拟总线数据类型中分组像素控制. 可以将块配置为每个周期返回1、4或8个像素的像素流。

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

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

金宝app支持的像素数据类型

Vision HDL工具箱块和对象包括流像素数据的端口或参数。每个块和对象支持一种或多种像素格式。金宝app支持的格金宝app式取决于块或对象执行的操作。该表详细描述了Vision HDL工具箱支持的常见视频格式。金宝app

类型的视频 像素格式
二进制的 每个像素由一个布尔必然的价值用于真正的黑白视频。
灰度 每个像素用亮度,即伽马校正亮度值。该像素是一个单一的无符号整数或定点值。
颜色

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

若要为不支持多组件输入的块处理多组件流,请为每个组件复制块。金宝app这个像素控制所有组件的总线都是相同的,所以您可以将一条总线连接到多个复制块。

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

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

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

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

  • 多像素多分量流-四个或八个像素值乘以两到四个颜色分量的矩阵。

可以使用多像素流接口模拟系统对象,但HDL代码生成不支持使用多像素流的系统对象。使用等效块为多像素算法生成HDL代码。金宝app

金宝app支持的数据类型包括:

  • 布尔必然的

  • 使用uintint

  • fixdt()

仅有一个的模拟支持数据类型,但不支持HD金宝appL代码生成。

流式像素控制信号

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

在Si金宝appmulink中,控制信号端口是被称为非虚拟总线数据类型的像素控制.总线数据类型的详细信息请参见像素控制总线

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

单像素串行接口时序图

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

  • 1像素宽后门廊

  • 2像素宽的前廊

  • 第一条线路之前的一条线路

  • 在最后有效行之后的一行

您可以使用配置活动区域和非活动区域的维度帧到像素块或visionhdl。FrameToPixels对象。

在图中,活动图像区域位于虚线矩形中,非活动像素环绕它。像素用其灰度值进行标记。

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

举个例子帧像素块来序列化图像,请参阅在Simulink中设计HDL视频处理算法金宝app

举个例子FrameToPixels对象序列化图像,请参见在MATLAB中设计一个硬件目标图像滤波器

多像素串行接口时序图

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

  • 4像素宽后廊

  • 4像素宽的前廊

  • 第一条激活线之前的4条线

  • 最后一个激活行之后的4行

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

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

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

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

另见

|||

相关的话题