主要内容

过滤器Multipixel视频流

这个例子展示了如何设计过滤器操作multipixel输入视频流。使用multipixel处理高分辨率或高的帧率视频流相同的时钟频率合成单像素流作为一个接口。Multipixel流也提高了仿真速度和吞吐量,因为它需要更少的迭代来处理每一帧,同时保持硬件流接口的好处。

示例模型有三个子系统,每个执行相同的算法:

  • SinglePixelGaussianEdge:使用图像滤波和边缘检测器单像素流块操作。这个子系统显示了利率和单像素流与multipixel接口设计。

  • MultiPixelGaussianEdge:使用图像滤波和边缘检测器块操作multipixel流。这个子系统显示了如何使用multipixel接口库模块。

  • MultiPixelCustomGaussianEdge:使用行缓冲块建立高斯滤波器和Sobel边缘检测multipixel流。这个子系统输出显示了如何使用行缓冲multipixel设计。

处理multipixel视频流允许更高的帧速率达到没有相应增加时钟频率。每个子系统可以达到200 mhz时钟频率在Xilinx ZC706董事会。480 p的视频每行像素总数x总视频线= 800 * 525周期每帧。与单个像素流你可以处理200 /(800 * 525)= 475帧每秒。multipixel子系统,每个周期4像素处理,减少每行的周期数到200。这意味着与multipixel流操作4像素,在200 mhz, 480 p流,1900帧每秒可以处理。如果从480 p分辨率增加到1080 p, 80帧每秒可以在单个像素的情况下实现对323帧每秒4像素一次或646帧每秒8像素。

Multipixel流使用图书馆

生成一个multipixel流帧的像素块通过设置数量的像素48。的默认值1返回一个标量像素的采样率每行像素总数*总视频线比帧速率更快。这个速度显示红色的示例模型。两个multipixel子系统使用multipixel流数量的像素设置为4。这个配置返回4像素在每个时钟周期内的采样率(每行像素总数/ 4)*总视频线。输出率越低,这是绿色的模型中,表明你可以增加输入帧速率或决议的4倍,因此过程4倍像素在同一框架内使用相同的时钟频率的单像素的情况。

SinglePixelGaussianEdgeMultiPixelGaussianEdge子系统计算相同的结果用图像滤波和边缘检测器。

MultiPixelGaussianEdge块接受和返回四个像素在每个时钟周期。你不需要配置块multipixel流,他们在港口检测输入的大小。的pixelcontrol总线表示框架的有效性和位置每组四个像素。块缓冲区(4 x1)流形成4个(KernelHeightxKernelWidth内核,并行计算四个玲珑给[4 x1)输出。

自定义Multipixel算法

MultiPixelCustomGaussianEdge子系统使用行缓冲块来实现一个定制的滤波算法。这个子系统是类似于库模块内部实现multipixel内核操作。图像滤波和边缘检测器使用小块比这里更详细的优化。这个实现显示了构建定制的起点multipixel算法使用行缓冲的输出块。

自定义过滤器和自定义边缘检测器连续使用行缓冲块返回(KernelHeightxNumberofPixels)地区。每个地区传递给KernelIndexer子系统使用缓冲和索引逻辑形成像素数量* (KernelHeightxKernelWidth过滤器的内核。然后每个内核传递给一个单独的FilterKernel子系统执行并行运算。

从行缓冲输出形式内核

KernelIndexer子系统形式4 (5 x5)滤波器从二维的输出行内核缓冲块。

图表展示了过滤器的内核是如何从(5 x4)中提取输出流,为内核,以第一个像素(4 x1)输出。第一个内核包括像素从2相邻[5 x4)行缓冲输出。

内核为中心的最后一个像素(4 x1)作品还包括第三相邻[5 x4)输出。所以,形成四(5 x5)内核,从三个子系统必须访问列[5 x4)矩阵。

KernelIndexer子系统使用当前[5 x4)输入,和商店两个[5 x4)使用寄存器通过矩阵shiftEnable。这个设计类似于抽头延迟线使用行缓冲使用单一像素流。然后子系统访问跨列像素数据形成了四(5 x5)内核。图像过滤块时在内部使用这个相同的逻辑块multipixel输入。块自动设计这个逻辑在编译时对任何支持内核大小。万博1manbetx

实现过滤器

由于输入multipixel流是一个[4 x1)向量,过滤器必须执行四个卷曲每个周期来跟上传入的数据。有四个平行FilterKernel子系统,每个执行相同的操作。(5 x5)矩阵乘以被实现为一个[5 x1)向量乘以每个子系统使用包含管线式乘数。传递给一个加法器的输出是树。加法器树也是管线式,应用于管道延迟pixelcontrol信号匹配。结果四个FilterKernel子系统连接到一个(4 x1)输出向量。

实现边缘检测器

块匹配算法的边缘检测器,这种习俗边缘检测器使用内核大小(3 x3)。比较这KernelIndexer子系统(3 x3)边缘检测与上述(5 x5)内核。算法还必须访问三个连续的矩阵的输出线缓冲块(包括填充两侧的内核)。然而,该算法节省少列形成小过滤内核。

内核扩展到更大的尺寸

较大的内核的数量(KernelHeightxNumPixels]KernelIndexer的存储区域(2 *装天花板(地板(KernelWidth/ 2)/NumPixels)+ 1)。在这种情况下,输入到concatenators数量的增加KernelWidth你必须路线这些额外的输入线缓冲区抽头延迟线的矩阵。对[4 x1] multipixel流(11 x11)内核大小你需要存储5年(11 x4)矩阵的行缓冲形成四个每个周期(11 x11)内核。

提高仿真时间

在默认配置示例,单一像素,multipixel和定制multipixel子系统并行运行。仿真速度是有限的时间单像素路径,因为它需要更多的迭代处理过程相同的帧的大小。观察仿真速度改进multipixel流,注释掉单像素数据的路径。

HDL实现结果

高密度脂蛋白的生成MultiPixelGaussianEdge子系统和MultiPixelCustomGaussianEdge子系统和通过实施和路线在Xilinx™ZC706董事会。的MultiPixelCustomGaussianEdge子系统,它不会尝试优化系数,有以下结果

T = 108 x2表资源使用_____ _____ DSP48触发器9842附近地区4960 BRAM 12

MultiPixelGaussianEdge子系统,使用优化的图像滤波和边缘检测器模块使用更少的资源,如下表所示。这个比较显示资源节省,因为块分析滤波器结构和pre-add重复系数。

T = 4 x2表资源使用_____ _____ DSP48 16触发器3959附近地区1789 BRAM 10

另请参阅

|||

相关的话题