此示例显示如何为硬件设计模拟像素流伽马校正。该模型将Vision HDL Toolbox™Gamma校正器块的结果与来自计算机视觉系统工具箱™的全帧伽马块产生的结果进行了比较。
这个示例模型提供了一个硬件兼容的算法。您可以使用Xilinx™Zynq™参考设计在板上实现此算法。看到使用基于zynq的硬件进行Gamma校正(基于Xilinx Zynq的硬件的计算机视觉工具万博1manbetx箱支持包)。
计算机视觉系统工具箱产品模型的高度抽象。块和对象执行全帧处理,每次操作一个图像帧。然而,FPGA或ASIC系统执行像素流处理,每次操作一个图像像素。这个例子在同一个模型中模拟了全帧和像素流算法。
这gammacorrectionhdl.slx.系统如下所示。
喂养线的颜色的差异全画幅γ补偿和Pixel-Streamγ补偿子系统表示模型流分支上图像速率的变化。这种速率转换是因为像素流的发送时间与整个视频帧的发送时间相同,因此它以更高的速率传输。
在该示例中,伽马校正用于校正暗图像。通过喂养较暗的图像来产生视频源到腐败块。这视频源输出240p灰度视频,腐败block应用反伽玛操作使源视频在感知上变暗。然后,下游全画幅γ补偿块或者Pixel-Streamγ补偿子系统从损坏的视频中删除前一个de-gamma操作以恢复源视频。
源视频的一帧,其损坏的版本和恢复的版本,如下图所示从左到右显示。
使用处理完整图像帧的块开发行为系统是一种很好的做法,全画幅γ补偿块,然后继续进行以fpga为目标的设计。这样的行为模型有助于验证视频处理设计。之后,可以作为针对FPGA验证算法实现的参考。具体来说,低PSNR.(峰值信噪比)块结果验证模型顶层的部分将来自来自像素流处理的完整帧处理的结果进行比较。
的任务框架到像素是将全帧图像转换为像素流。为了模拟现实生活中的水平和垂直消隐时段的效果,可以使用非图像数据增强活动图像。有关流媒体像素协议的更多信息,请参阅流像素接口。这框架到像素块如图所示配置:
这组件数量字段设置为1用于灰度图像输入,以及视频格式字段为240p,可匹配视频源。
在该示例中,活动视频区域对应于来自上游的黑暗图像的240x320矩阵腐败块。六个其他参数,即,每行总像素那总视频线路那开始积极行那结束活跃的行那门廊,后门廊指定活动视频的四边将增加多少非图像数据。有关更多信息,请参见框架到像素块参考页面。
的采样时间视频源由产品决定每行总像素和总视频线路。
如下图所示,Pixel-Streamγ补偿子系统只包含伽玛校正器块。
这伽玛校正器块接受像素流,以及包含五个同步信号的总线框架到像素块。它向下游传递相同的信号集帧的像素块。这种信号束和维护是对像素流处理所必需的。
作为伴侣框架到像素将完整的图像帧转换为像素流,帧的像素块利用同步信号将像素流反向转换为全帧。由于输出的帧的像素块是完整图像的2-D矩阵,不需要进一步携带包含五个同步信号的总线。
这组件数量领域和田野视频格式帧对像素和像素对帧的字段分别设置为1和240p,以匹配视频源的格式。
当你运行模拟时,将会显示三张图片(参考“例子的结构”部分显示的图片):
由此提供的源图像图像源码子系统
由此产生的黑暗图像腐败堵塞
的HDL输出Pixel-Streamγ补偿子系统
四个的存在单位延迟模型顶层的块是为了对二维矩阵进行时间对齐,以便进行公平的比较。
在构建设计的流部分时,PSNR.块不断验证HDLOUT.结果原始全框架设计BehavioralOut。在模拟过程中,这PSNR.块应该给正输出,指示输出图像来自全画幅γ补偿匹配从流处理中生成的图像Pixel-Streamγ补偿模型。
该示例允许您试验不同的伽玛值,以检查它们对伽玛和反伽玛操作的影响。具体来说,是一个工作空间变量在打开模型时创建了初始值2.2。可以使用MATLAB命令行修改其值,如下所示:
gammaValue = 4
更新后的会传播到γ场面的领域腐败块,全画幅γ补偿块,和伽玛校正器块内Pixel-Streamγ补偿子系统。关闭模型清除从您的工作空间。
尽管伽马操作在概念上是DE-GAMMA的逆,但是将图像馈送到伽马之后是DE-GAMMA(或DE-GAMMA首先然后伽马)不一定完全恢复原始图像。预期扭曲。为了衡量这一点,在我们的示例中,另一个PSNR.块之间放置SourceImage.和BehavioralOut。PSNR越高,失真越小。理想情况下,如果HDL输出和源图像是相同的,PSNR输出正。在我们的例子中,只有当等于1(即,伽马和DE-GAMMA块都通过源图像)。
我们也可以使用伽玛来破坏源图像,使其更亮,然后进行反伽玛校正图像恢复。
要检查和生成本例中引用的HDL代码,您必须拥有HDL Coder™许可证。
要生成HDL代码,使用以下命令:
makehdl('GammAcorrectionHDL / Pixel-Stream Gamma补偿')
方法中使用的查找表来推断RAM伽玛校正器,LutRegisterResetType属性设置为None。要访问此属性,请右键单击该属性伽玛校正器块内Pixel-Streamγ补偿,并导航到HDL编码器 - > HDL块属性...
要生成测试工作台,使用以下命令:
makehdltb ('GammAcorrectionHDL / Pixel-Stream Gamma补偿')