本文介绍一篇发表在2014年TCSVT期刊的论文,其名称为“VLSI Implementation of an Adaptive Edge-Enhanced Color Interpolation Processor for Real-Time Video Applications”。这篇文章介绍了一种面向实时视频应用的、基于自适应边缘增强的去马赛克模块的VLSI实现,在保持低复杂度的同时,提高了图像质量。
之前几篇关于去马赛克的文章,分别介绍了基于色差的去马赛克算法、基于残差的去马赛克算法和基于AI的去马赛克算法,本文介绍的是去马赛克算法的硬件实现(也叫颜色插值处理器)。对于去马赛克这个模块,算法和硬件有时是割裂的。算法关注的是怎样提高算法效果,包括客观指标(PSNR,SSIM等)和主观视觉质量,而硬件关注的是怎样降低计算复杂度,怎样节省硬件资源(缓存、运算等)。去马赛克主要应用在ISP中,因此,其对降低算法复杂度有着更高要求。这篇论文在3*5的滤波窗口上实现了去马赛克算法,通过硬件共享和可重构技术,成功地降低了硬件成本。
去马赛克算法的主要思路是尽可能沿着边缘方向插值,而不是跨越边缘,因此边缘检测是非常重要的步骤,本文采用的边缘梯度计算方法如上。DV(Difference Vertical)表示的是垂直方向的梯度值,DH(Difference Horizontal)表示的是水平方向的梯度值,TD表示的是总的梯度值(Total Difference)。
绿色通道插值方法如上。根据梯度大小和阈值,G通道插值分为三种情况,无边缘、水平边缘和垂直边缘。
对于无边缘区域,如图2-a所示,可以看到水平方向的参考像素远多于垂直方向的参考像素,因此滤波器的设计如图3-a所示,水平方向的G像素赋予了更大的权重值,同时计算RB通道的梯度作为补偿。对于水平边缘区域,滤波器设计如图3-b所示,水平方向G像素取平均,再加上BR通道计算得到的高频分量。对于垂直边缘区域,滤波器设计如图3-c所示,垂直方向的G像素被赋予了更大的权重。为了减少插值算法的计算资源,所有的除法运算都被移位运算代替。
通过以上分析可以看出,绿色补偿的特点是空间锐化滤波器,可以有效减少边缘的模糊效果。
R、B通道的插值分为两种情况,本页介绍的是R(B)位置插值B(R)像素的情况。与G通道插值类似,也是根据TD、DH、DV和Thr之间的关系,分为三种情况,无边缘、水平边缘和垂直边缘,对应的公式如右侧所示。基本思想也是同通道取平均,其他通道的高频系数做补偿。
R(B)位置插值B(R)像素的滤波器如图4所示。图4-a对应没有边缘的情况,图4-b对应水平边缘情况,图4-c对应垂直边缘情况。G位置插值R、B像素的情况,如图5所示,基本思路一致,不做过多介绍。
接下来介绍这种算法的VLSI实现。图6展示了所提出的颜色插值处理器的VLSI架构框图,它由7个模块组成:寄存器组,边缘检测器,G插值器,RB插值器1,RB插值器2,RB插值器3和控制器。为了缩短关键路径并提高设计性能,在此架构中添加3个寄存器,第一个寄存器用于存储G通道插值的结果G(i,j),提供给RB_M1和RB_M2模块,第二个寄存器用于存储G(i,j-1),提供给RB_M3模块,第三个寄存器用来存储边缘信息TD、DH和DV。图7为寄存器组的架构,在每个时钟周期内提供CFA格式的像素15个,用于G插值和RB插值,由2个line buffer和15个寄存器组成。每个时钟周期处理一个像素点,寄存器组更新一次。控制模块由有限状态机时序电路实现,它向mux提供控制信号,用于选择插值器的输入数据。此外,控制器必须监控其与存储器的输入和输出数据访问,以适应像素输入和输出的性能。最后,所提出的颜色插值处理器实现了高性能和高吞吐量。
边缘检测器的结构如上图所示,由6个绝对值减法器和5个加法器组成,8个输入由寄存器组提供,输出总梯度、水平方向梯度和垂直方向梯度。
分析G通道插值公式可知,除参数外,所有输入信号是相同的,本文采用可重构技术设计了绿色插值器的硬件结构,它由8个加法器,1个减法器,4个mux和5个移位器组成。在每个处理周期,选择mux,可以将该设计配置为不同的计算单元。该设计采用可重构技术,所提出的G通道插值具有成本低、灵活性高、性能高等特点。
同样RB通道插值也采用了可重构的设计,图10~12分别为RB_M1,RB_M2和RB_M3硬件架构图。RB_M1模块由9个加法器,1个减法器,2个mux和5个移位器组成,该设计可以根据每个处理周期的TD、DH和DV值重新配置硬件的计算模式。RB_M2模块由3个加法器,1个减法器和3个移位器组成。RB_M3与M2模块类似,由3个加法器,1个减法器和2个移位器组成。
算法的实验结果如上图所示,在由24张图像组成的Kodak数据集上取得了不错的成绩,算法性能一般,但它是一种硬件可实现,低代价的去马赛克算法。
如表上表所示,本文的两种架构分别包含3.6和5.2k gate,芯片面积分别为45 158和66 590 μm2,使用TSMC 0.18μm CMOS工艺。这两种架构的关键路径为5ns,时钟频率高达200MHz。这两种架构的功耗分别为3.42和4.66 mW,在200 MHz和1 V电源电压下。此外,本文实现了每种颜色(即R、G和B)每秒2亿像素的吞吐量。该设计足够快,可以实时处理CFA图像,分辨率为1920×1080,帧率为30帧/秒。高性能和高吞吐量的特性为开发实时视频系统提供了良好的基础。
该表还列出了之前低复杂度颜色插值设计与本文的比较。它说明了前两种低复杂度实现和本文中提出的两种架构的CPSNR值、工艺、门数、频率、功耗、核面积、行缓冲存储器、存储器面积、吞吐量等。之前的设计是在0.35μm CMOS工艺中实现的。为了能够客观地量化硬件成本,选择NAND等效门计数作为归一化面积的比较标准。本文B中的门数(不包括行缓冲器)为5.2k,与之前的设计LHCI、CDSP或ACDS相比,分别减少了48%、80%和8%。
综上所述,本文提出了一种低成本、低功耗、高性能和高图像质量的颜色插值处理器,用于实时视频应用。后续去马赛克模块的硬件架构与本文相似,具有一定的代表性。
关 注 我 们
实验室网站:http://viplab.fudan.edu.cn/
OpenASIC官方网站:www.openasic.org
知乎专栏:http://zhuanlan.zhihu.com/viplab
微信公众号:OpenASIC
继续阅读
阅读原文