主要内容

伽马校正

这个例子展示了如何为硬件设计建模象素流伽马校正。该模型将Vision HDL Toolbox™Gamma Corrector块的结果与Computer Vision Toolbox™的全帧Gamma块生成的结果进行比较。

此示例模型提供了一个硬件兼容的算法。您可以使用Xilinx在板上实现此算法™ Zynq™ 参考设计。参见基于Zynq硬件的伽马校正(基于Xilinx zynq硬件的Vis金宝appion HDL工具箱支持包)

示例的结构

计算机视觉工具箱产品模型具有高度的抽象。块和对象执行全帧处理,每次在一个图像帧上操作。然而,FPGA或ASIC系统执行像素流处理,每次操作一个图像像素。这个例子在同一个模型中模拟了全帧和像素流算法。

GammaCorrectionHDL.slx系统如下所示。

线条颜色的差异全帧伽马补偿像素流伽马补偿子系统表示模型流分支上图像速率的变化。这种速率转换是因为像素流在与完整视频帧相同的时间内发送,因此它以更高的速率传输。

在本例中,Gamma校正用于校正暗图像。较暗的图像是通过输入视频源腐败块。的视频源输出240p灰度视频腐败块应用反gamma操作以使源视频在视觉上更暗。那么下游呢,全帧伽马补偿块或像素流伽马补偿子系统从损坏的视频中删除以前的反伽玛操作以恢复源视频。

在下面的图表中,从左到右显示了源视频的一帧,它的损坏版本和恢复版本。

这是一个很好的实践,开发一个行为系统,使用块处理完整的图像帧全帧伽马补偿在继续进行FPGA目标设计之前,请参阅本例中的。这样的行为模型有助于验证视频处理设计。之后,它可以作为验证针对FPGA的算法实现的参考。具体来说,较低的PSNR值中的(峰值信噪比)块结果验证模型顶层的部分将全帧处理的结果与像素流处理的结果进行比较。

帧到像素:生成像素流

委员会的任务帧像素是将全帧图像转换为像素流。为了模拟实际硬件视频系统中水平和垂直消隐周期的影响,采用非图像数据对主动图像进行增强。有关流像素协议的更多信息,请参见流式像素接口这个帧像素Block的配置如下所示:

数量的组件字段设置为1表示灰度图像输入视频格式视场为240p,以匹配视频源。

在这个例子中,活动视频区域对应于来自上游的黑色图像的240x320矩阵腐败块。其他六个参数,即,每行总像素,总视频线,起始活动线,结束活动线,前廊后廊指定将在活动视频的四面增加多少非图像数据。有关详细信息,请参阅帧像素块引用页面。

请注意视频源是由的乘积决定的每行总像素总视频线

伽马校正

如下图所示像素流伽马补偿子系统只包含一个伽马校正器块。

伽马校正器块接收像素流,以及包含五个同步信号的总线,从帧像素块它将同一组信号传递给下游像素帧块。这样的信号束和维护是像素流处理所必需的。

像素到帧:转换像素流回全帧

陪伴帧像素将一个完整的图像帧转换为像素流像素帧块利用同步信号将像素流反向转换回全帧像素帧块是一个二维矩阵的全图像,不需要进一步进行总线上包含5个同步信号。

数量的组件场与场视频格式帧到像素和像素到帧的字段分别设置为1和240p,以匹配视频源的格式。

图像查看器和结果验证

运行模拟时,将显示三个图像(请参阅“示例结构”部分中显示的图像):

  • 给出的源图像图片来源子系统

  • 由。产生的黑影腐败

  • 所生成的HDL输出像素流伽马补偿子系统

四人的存在单位延迟模型顶层的块用于对二维矩阵进行时间对齐,以便进行公平比较。

在构建设计的流部分时PSNR值块连续校验HDLOut结果与原来的全框架设计相反行为学.在模拟过程中PSNR值块应该给inf输出,指示从全帧伽马补偿匹配流处理生成的图像像素流伽马补偿模型。

探索的例子

该示例允许您使用不同的Gamma值进行实验,以检查它们对Gamma和De Gamma操作的影响gammaValue美元打开模型时将创建初始值2.2。您可以使用MATLAB命令行修改其值,如下所示:

gammaValue=4

更新的gammaValue美元将传播到伽马射线场的腐败街区全帧伽马补偿块,伽马校正器块内像素流伽马补偿子系统。关闭模型清除gammaValue美元从您的工作区。

虽然Gamma操作在概念上与De-gamma相反,但先将图像提供给Gamma后提供De-gamma(或先提供De-gamma后提供Gamma)不一定能完美地恢复原始图像。预计扭曲。为了衡量这一点,在我们的例子中,另一个例子PSNR值块放置在SourceImage行为学。PSNR越高,引入的失真越小。理想情况下,如果HDL输出和源图像相同,则PSNR输出inf.在我们的例子中,只有当gammaValue美元= 1(即,Gamma和de Gamma块都通过源图像)。

我们还可以使用Gamma使源图像更亮,然后进行反Gamma校正以恢复图像,从而损坏源图像。

生成HDL代码并验证其行为

要检查并生成本示例中引用的HDL代码,您必须拥有HDL编码器™ 许可证

要生成HDL代码,请使用以下命令:

makehdl (“GammaCorrectionHDL / Pixel-Streamγ补偿”

推断RAM以实现在中使用的查找表伽马校正器,LUTRegisterResetType属性设置为无。要访问此属性,请右键单击伽马校正器块内像素流伽马补偿,并导航到HDL Coder -> HDL Block Properties…

要生成测试台,请使用以下命令:

makehdltb(“GammaCorrectionHDL / Pixel-Streamγ补偿”