主要内容

伽马校正

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

该示例模型提供了一种硬件兼容的算法。您可以使用Xilinx™Zynq™参考设计在板上实现此算法。看到基于zynq的硬件伽玛校正(Xilinx zynq硬件的Vision HDL工具箱支持包)

示例结构

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

GammaCorrectionHDL.slx系统如下所示。

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

在本例中,Gamma校正用于校正暗图像。较暗的图像是通过输入视频源腐败块。的视频源输出240p灰度视频腐败block应用一个去伽马操作使源视频感知上变暗。然后是下游全帧伽马补偿块或像素流伽马补偿子系统从损坏的视频中删除之前的去伽玛操作,以恢复源视频。

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

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

帧到像素:生成像素流

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

组件数量字段设置为1用于灰度图像输入,而视频格式字段为240p,与视频源匹配。

在本例中,活动视频区域对应上游暗图像的240x320矩阵腐败块。另外六个参数,即每行总像素视频线路总数启动活动线路结束活动行门廊,后门廊指定在活动视频的四个侧面将增加多少非图像数据。有关更多信息,请参见帧到像素阻塞引用页面。

注意,采样时间视频源是由的乘积决定的每行总像素而且视频线路总数

伽马校正

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

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

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

作为伴侣帧到像素它将完整的图像帧转换为像素流像素到帧块,相反,通过使用同步信号将像素流转换回完整的帧。的输出像素到帧块是一个二维矩阵的完整图像,不需要进一步进行总线上包含五个同步信号。

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

图像查看器和结果验证

当您运行模拟时,将显示三幅图像(参考“示例结构”一节中显示的图像):

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

  • 产生的黑暗图像腐败

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

四个人的出现单位延迟模型顶层的块是时间对齐2-D矩阵,以进行公平的比较。

在构建设计的流部分时,PSNR值块连续验证HDLOut结果与原来的全框架设计BehavioralOut.在模拟过程中,这PSNR值Block应该给输出,表示输出图像来自全帧伽马补偿匹配从流处理生成的图像像素流伽马补偿模型。

探索示例

该示例允许您使用不同的Gamma值进行实验,以检查它们对Gamma和De-gamma操作的影响。具体来说,是一个工作区变量gammaValue美元在打开模型时创建一个初始值2.2。你可以使用MATLAB命令行修改它的值,如下所示:

gammaValue = 4

更新后的gammaValue美元将被传播到γ的字段腐败块,全帧伽马补偿Block,和伽马校正器块内像素流伽马补偿子系统。关闭模型清除gammaValue美元从你的工作空间。

尽管Gamma操作在概念上与De-gamma操作相反,但将图像输入Gamma之后是De-gamma(或先De-gamma然后是Gamma)并不一定会完美地恢复原始图像。扭曲是意料之中的。为了衡量这一点,在我们的例子中,另一个PSNR值块之间放置SourceImage而且BehavioralOut.PSNR越高,引入的失真越少。理想情况下,如果HDL输出和源图像相同,则PSNR输出.在我们的例子中,只有当gammaValue美元= 1(即,Gamma和De-gamma块都通过源图像)。

我们还可以使用伽马使源图像变得更亮,然后使用De-gamma校正来恢复图像。

生成HDL代码并验证其行为

要检查和生成本例中引用的HDL代码,您必须拥有HDL Coder™许可证。

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

makehdl ('GammaCorrectionHDL/像素流伽马补偿'

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

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

makehdltb ('GammaCorrectionHDL/像素流伽马补偿'
Baidu
map