主要内容

行缓冲

存储视频线并返回邻域像素

  • 库:
  • 视觉HDL工具箱/实用程序

  • 行缓冲块

描述

行缓冲块从流图像数据中选择邻域像素。它处理视频控制信号和边缘填充,并为高速视频设计流水线。块每次输出一列的邻域。若要组成邻域以进行进一步处理,请使用shiftEnable在移位寄存器中存储输出列(包括填充)的信号。当您的设计在同一个邻域上执行多个操作时,此块允许您共享行缓冲区资源。

下面的波形显示行缓冲块返回组成5乘5邻域的5乘1像素列。时间帧显示在输入帧的开始(左上角)。在块存储了两个(地板(M / 2))行,并且正在接收第三行的开始。的shiftEnable信号被断言比输出早两个周期ctrl有效的信号,它表示前两个(地板(M / 2))列是专用填充像素。同样的,shiftEnable在这条线的末端保持两个额外的循环。

港口

该块使用流像素接口和帧控制信号总线。该接口使块能够独立于图像大小和格式进行操作。的像素此块上的端口支持单像素流或多像素流。单像素流在每个时钟周期接受并返回一个单像素值。多像素流接收并返回向量每个时钟周期的像素,以支持高帧率或高分辨率格式。的值对应于像素数参数。帧到像素块。与像素一起,块接受并返回一个pixelcontrol包含五个控制信号的总线。控制信号指示每个像素的有效性及其在帧中的位置。对于多像素流,一组控制信号应用于矢量中的所有像素。若要将帧(像素矩阵)转换为串行像素流和控制信号,请使用帧到像素块。有关接口的完整描述,请参见流媒体像素接口

输入

全部展开

此块支持单像素流或多像素流。对于单像素流,将单个输入像素指定为标量强度值。对于多像素流,指定2个、4个或8个像素强度值的向量。有关如何为多像素流设置模型的详细信息,请参见过滤多像素视频流

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

而且数据类型支持模拟,但不支持HDL代码生成。

数据类型:int|使用uint|不动点|布尔||

pixelcontrol总线包含五个信号。信号描述像素的有效性和它在帧中的位置。有关更多信息,请参见像素控制总线

对于多像素流,每个像素值向量都有一组控制信号。因为向量只有1有效的信号时,向量中的像素必须全部有效或全部无效。的hStart而且音速启动信号应用于向量中下标最低的像素。的这个到而且公开发表信号应用于向量中索引最高的像素。

数据类型:公共汽车

输出

全部展开

列的邻域像素值,返回为1 × -H向量,H是垂直邻域维数。当使用多像素流时,块返回——- - - - - -H矩阵,输入向量中的像素数。输出像素的数据类型与输入像素的数据类型相同。

若要组成邻域以进行进一步处理,请使用shiftEnable在移位寄存器中存储每个内核区域(包括填充)的输出列的信号。对于多像素流,使用移位寄存器来构造区域,每个区域W——- - - - - -H像素,W是水平核维数。然后执行内核操作时间平行。

请注意

小型矩阵支持HDL代码生成,但矩阵操作会影响硬件性能和资源使用。因此,尽量减少您的设计对对象的操作W——- - - - - -H社区直接。你可以:

  • 将过滤器分离为垂直和水平组件。

  • 将邻域像素连接成(WH) 1的向量。

  • 使用一个为每一个子系统对每个像素行进行存储和操作。

这些设计建议提供了在每个加法器或乘法器周围添加流水线的机会,以提高合成时钟速度,并使设计适合FPGA上的DSP块。

数据类型:int|使用uint|不动点|布尔||

输出列附带的控制信号,返回为pixelcontrol总线包含五个信号。这些信号描述了列的中心像素的有效性,以及该像素在帧中的位置。看到像素控制总线

仅包含填充像素的列不进行断言ctrl有效的.的shiftEnable对填充列和活动列都断言了信号。

请注意

对于帧的大部分,该块返回随列的底部像素到达的输入控制信号。然而,对于期末考试楼(H/ 2)每帧的行数中,列的底部像素为填充像素,因此块产生输出控制信号。块生成一个连续断言ctrl有效的每一行中有效像素的信号。

对于多像素流,每个像素值向量都有一组控制信号。因为只有一个有效的信号,向量中的像素要么全部有效,要么全部无效。的hStart而且音速启动信号应用于向量中下标最低的像素。的这个到而且公开发表信号应用于向量中索引最高的像素。

数据类型:公共汽车

邻域列的有效信号,返回为布尔标量。使用此信号控制由输出列组成邻域的移位寄存器。这个信号是真正的(1)对于任何邻域列,表示该列包含有效的图像像素或该列被添加用于边缘填充。

数据类型:布尔

参数

全部展开

要形成的输出邻域的大小,指定为整数维的2元素行向量[HW),H垂直维度是和吗W是水平维度。块返回的列向量H元素。的W尺寸用于确定填充。

选择其中一种方法填充输入图像的边界。有关这些方法的详细信息,请参见边缘填充

  • 常数-将图像帧外的像素解释为常量值。

  • 复制-重复图像边缘的像素值。

  • 对称的-设置填充像素的值,以镜像图像的边缘。

  • 反射-设置填充像素的值,以反映图像边缘的像素周围。

  • 没有一个-排除填充逻辑。该块不将图像帧外的像素设置为任何特定值。此选项减少了块所使用的硬件资源和帧之间所需的消隐,但会影响帧边缘输出像素的准确性。为了保持像素流计时,输出帧与输入帧的大小相同。但是,要避免使用从未定义的填充值计算的像素,请屏蔽KernelSize/2像素左右的帧边缘进行下游操作。详细信息请参见使用填充增加吞吐量

指定一个整数来填充输入图像的边界。块将该值转换为与输入像素相同的数据类型。

依赖关系

若要启用此参数,请设置填充方法参数常数

行内存缓冲区的大小,指定为正整数。选择一个2的幂来容纳水平线上活动像素的数量。如果指定的值不是2的幂,则缓冲区使用2的次幂。

如果指定的值不是2的幂,则块使用2的次幂。

提示

  • 当你在启用子系统(模型),所述使能信号模式必须保持所述像素流的时序,包括最小消隐间隔。如果启用模式破坏了像素流的计时,您可能会看到部分输出帧、损坏的像素流控制信号或Simulink之间的不匹配®和HDL仿真结果。当使能值较低时,您可能需要延长消隐间隔以适应周期。有关更多信息,请参见配置冲裁间隔

算法

全部展开

块存储H- 1行有效像素,由邻域大小指定。它在帧的边缘添加填充位。块一旦可以形成一个完整的邻域列,就返回第一个输出列,这发生在输入行的开始楼(H/ 2)

扩展功能

版本历史

在R2017b中引入

全部展开

另请参阅

对象

Baidu
map