通过呕吐填充提高吞吐量
这个例子展示了如何减少延迟和节省硬件资源不加填充像素在每一帧的边缘。
大多数图像过滤操作台上填写社区的图像像素的边缘图像。填充可以帮助避免边界构件在输出图像。在硬件实现中,填充操作使用额外的资源,介绍了额外的延迟。
视觉HDL工具箱™块执行社区处理填充要求水平消隐是内核宽度的两倍。这种行为意味着更大的过滤器尺寸导致了冲裁要求。不包括填充通过设置填充方法参数没有一个
使您能够使用一个较小的水平消隐。没有填充,水平消隐的要求是独立于图像分辨率和内核大小。少量的消隐周期仍然是必需的。
这个例子包含了两个模型。第一个模型展示了如何使用这个选项与图书馆块,和第二个模型演示了使用它当构造算法,使用行缓冲块。这个例子也说明了一些设计考虑当你不使用填充。
省略与图书馆块填充
这个示例模型展示了如何使用一个预定义的省略填充算法从视觉HDL工具箱库。这个模型包括一个图像过滤块配置为一个n×n模糊过滤和与它填充方法参数设置为没有一个
。你可以改变滤波器的大小通过改变的价值内核n
在工作区中。模型打开的n
设置为15。
使用边缘填充时,大多数街区地板(KernelHeight / 2)
行延迟和需要2 * KernelWidth
水平消隐的周期。当你省略填充,大多数块只需要12个周期的水平消隐。因为内部线缓冲延迟不再取决于内核大小,这消隐间隔可以适应任何内核大小。
显示使用的降低冲裁要求填充方法设置为没有一个
,帧像素块为一个自定义配置240 p的格式,使用只有12个周期组合前后门廊。
当您运行模型,它显示了这三个数字。
输入原始240 p的视频,视频。
填充没有全帧——输出视频的过滤器没有填充物,显示边界构件。
填充没有ROI——输出视频的过滤器没有填充,与边界像素从框架的边缘修剪。帧大小小于输入视频的大小。
边境的工件
显示在填充没有全帧查看器,一个黑暗的边界是可见的在每一帧的边缘。这种效果是因为,没有填充像素,过滤器社区还没有完全定义框架的边缘。输出一个过滤器,填充像素不显示任何边境因为填充逻辑确保工件边缘社区完全定义。
删除或屏蔽掉这些边界像素从nonpadded输出前进一步分析是常见的。边境工件可以减少后续处理的准确性。例如,这些工件会影响整体形象的统计分布。视觉HDL工具箱块返回nonpadded图像边界像素保持输入和输出时机。这些像素的值是不确定的,不能认为周围的像素有什么特别的关系。
ROI选择器屏蔽删除地板(KernelHeight / 2)
和地板(KernelWidth / 2)
从每一帧的边缘像素。填充没有ROI查看器,显示,展示了视频删除了边境的构件。15-by-15内核生成的框架是225 - 305像素的大小,从240 -减少了——320像素。
省略填充线缓冲块
这个模型展示了如何通过使用行缓冲的设计算法填充方法参数设置为没有一个
。这个模型包含一个填充所有子系统和填充对称的子系统。
帧的像素块连接到填充对称子系统使用240 p标准格式。标准水平消隐(结合前后玄关)是82周期。提高分辨率增加消隐间隔。例如,1080 p的格式有280行之间的空闲周期。
帧像素块连接到填充所有子系统实现了一个自定义240 p的格式,使用只有12个周期组合前后门廊,图像滤波器模型显示的一样。
该模型实现了一个15-by-15高斯滤波器,标准偏差大,通过使用行缓冲块。
当您运行模型,它显示了三个数字:
输入原始240 p的视频,视频。
填充没有ROI——输出视频的过滤器没有填充,与边界像素从框架的边缘修剪。帧大小小于输入视频的大小。
填充对称——输出视频从过滤器对称填充。这个视频是全尺寸但没有边缘效应,因为填充比特定义边缘像素周围的社区。
pixelcontrol
延迟平衡
当你构建算法,使用行缓冲块,你必须delay-balancepixelcontrol
汽车占内核延迟。当你使用填充,行缓冲的回报shiftEnable设置为1
为地板(KernelWidth / 2)
周期前hStart之后,这个到。delay-balancing逻辑使用这个扩展shiftEnable信号控制的延迟注册pixelcontrol
信号。你可以看到这个逻辑填充对称/ pixelctrldelay子系统。
当您设置填充方法来没有一个
,行缓冲的回报shiftEnable来1
之间的hStart和这个到。delay-balancing逻辑必须使用时钟,而不是shiftEnable控制延时寄存器这个到,公开发表,有效的。的有效的信号还必须应对shiftEnable被设置为0
在一条线,可以发生在与外部存储器。的有效的信号还必须被设置为1
最后一个像素的线,以匹配这个到和公开发表。满足这两个要求,delay-balancing逻辑延迟有效的通过使用一个注册通过的信号shiftEnable,使用一个单位延迟块设置启用有效的信号1
与这个到结束的时候。填充没有/ pixelctrldelay子系统显示了这个逻辑。
结论
不含填充逻辑使您能够实现更高的吞吐量和减少通过使用一个视频格式水平消隐。这个选项也可以减少硬件资源的使用。然而,你的设计必须考虑边界构件在处理链。当你使用行缓冲块,你必须推迟pixelcontrol
总线匹配内核延迟通过控制逻辑,占的修改行为shiftEnable输出信号。使用这个示例作为起点,您可以设计算法和系统,实现更高的吞吐量排除填充逻辑。