方宏俊 ,宋 利 ,解 蓉
(1.美芯盟电子科技(上海)有限公司,上海 200233;2.上海交通大学 图像通信与网络传输研究所,上海 200240;3.未来媒体网络协同创新中心,上海 200240)
目前,在数字电视的视频图像后处理中,噪声会对视频图像的画质造成显著的负面影响。因此,对于包含噪声的视频图像,需要设计出一种可以用于电视机的准确可靠的噪声检测方法,用以判定该视频图像中高斯白噪声的水平。在当前市面上的高端数字电视接收机系统中,许多数字图像后处理的算法模块(例如降噪模块、运动估计模块、图像超分辨率模块等)都依赖于一个准确并且可靠的噪声水平指标来进行相关处理。一旦视频图像的噪声水平被噪声检测模块准确得到之后,其他相应的图像后处理模块就可以依据该视频图像中的噪声水平对画质进行相应的提升[1]。
视频图像的噪声检测通常包含两种主流方法,一种是基于图像内部的噪声检测,也就是空间域的噪声估计方法,另一种是基于两帧或连续的多帧视频图像画面进行噪声检测,也就是时域上的噪声估计方法。时域噪声估计的方法在电视系统中的应用需要占用更多的物理内存以及消耗更多的运算量。对于实时性要求很高的应用场合,时域噪声估计的方法需要特别注意图像的全局运动量以及电影下拉码流的准确相位信息等。空间域噪声估计的方法可以被定义为两类,一类是基于平滑的空间域噪声估计方法,另一类是基于宏块的噪声估计方法。在基于平滑的噪声估计方法中,首先对画面做一次平滑处理(例如使用均值滤波器的方法),假使原始的有噪声的图像和做过平滑滤波的图像之间的差值被认为是噪声备选因子,然后把这些筛选出的噪声因子与一个给定的阈值做比较,小于这个阈值的像素被认为是噪声。在基于宏块的噪声估计方法中,一个常见的空间域噪声估计的方法是计算一组图像宏块的方差(类似于图像的同质化测量),并且取其中的最小宏块方差的均值作为整幅图像噪声方差的估计结果[2]。但是这种空间域基于方差的测量方法往往会对低噪声的图像产生过高的估计,或者对于高噪声的图像和高纹理的图像给出过低的噪声检测结果。因此,这种通过方差来检测的方法更多地被用来检测同质化的宏块。
文献[3]给出了一种基于空间域的动态噪声检测的方法,通过计算整幅画面的均值和方差,并且将其结果通过直方图统计的方式表现出来,从而根据直方图分布特性定义出噪声的水平。在文献[4]中,重点阐述了一种空间域检测和时域检测组合的三维噪声滤波器的方法,它可以被电视接收机用来提升其噪声估计电路的效率。最近,还有一种新型的基于双边滤波器的方法被提出[5],其主要包含了特征值保护的双边滤波器,以及物体的边沿检测两块主要的算法。在较宽的噪声范围条件下,这种方法可以展示出较好的鲁棒性。
对于噪声检测方法的评价指标[2],通常来说,噪声检测的方法对于高噪声的图像和一些纹理较多的图像都比较困难。一些方法中使用设定的阈值来决定当前点的差异是否是图像中某个固定位置的边沿。然而,在实时性要求较高的系统设计中,同时兼顾效率和精确度的情况下,目前还没有找到一个好的方法来分辨各种噪声水平和图像细节。
本文介绍了一种用于电视机中的基于空间域和时域检测相组合的噪声检测新方法,该方法在平坦的或运动纹理较多的区域都能给出可靠的噪声估计结果。
经过仿真验证,对于典型的图像质量而言(信噪比在20~50 dB范围之间),该新算法在电视机系统中表现出较好的稳定性和实用性。
本节介绍了一种用于电视机的基于空间域和时域检测相组合的噪声检测优化算法设计。该方法通过两种图像结构的分析器来提取出一幅画面中亮度同质的区域来进行检测。这两种分析器为:纹理分析器,基于边沿检测的方法来提取图像中纹理区域;同质分析器,通过对图像中噪声和细节的差别给出相应的权重来找出同质的部分。噪声检测算法框图如图1所示。
图1 视频噪声检测算法架构图
本算法中对于空间域噪声检测的方法选用了一种常用的方法,即通过一组带通滤波器来计算整个图像中宏块的方差。选取宏块的尺寸为8×8像素块,并且滑动过每一个像素点。在选取最小的宏块方差被认为是整幅图像的噪声结果时,本方法选用中值滤波的方法,而不是均值滤波的方法。其目的是如果一个滤波结果相比于其他结果超出了设定的范围,那么这个值不会对最终的噪声检测造成负面影响。在数字电视图像后处理中,往往存在被前端播放器或信号源预先放大处理过的伪高清信号(up_scaled SD signal),因此,为了区分真实的高清信号和已经被放大成高清信号的伪高清信号,空间域噪声检测模块需要预先对图像清晰度进行检测[6],从而决定空间域噪声检测器的工作模式。
对于实时性要求很高的视频流时域噪声检测器,需要在连续的图像中检测出时域上的差异。同时,对于电影等片源,为了精确输入图像之间的检测差异,电影下拉格式的检测需要先于时域噪声检测模块完成。与空间域噪声检测器类似的是,时域噪声检测器也是基于8×8像素的宏块对时域(帧或场之间)的噪声方差进行平均处理。
本文所述的噪声检测方法中,测得的噪声等级使用对数化坐标,而不采用线性坐标。该方法与其他常见的噪声等级检测的表述方法[5]不同。其优点是采用对数化坐标的噪声分布直方图形状,相对于不同的噪声水平保持一致,如图2所示。图2a是噪声信噪比SNR分别为45 dB和20 dB的线性坐标分布,图中高阶噪声等级(20 dB)的直方图分布形状不如低阶噪声等级(45 dB)紧凑。而在图2b中,对同样两组噪声使用对数坐标分布,图中这两组噪声的直方图分布形状是一样紧凑的。
图2 噪声用对数化尺度表示的作用(截图)
同质化分析是提取图像中的价值权重部分进行分析计算。价值权重模块计算的是一个非线性的权重,其降低了噪声检测结果中较高的值,即
式中:p是功率因子,它定义的是权重函数的曲度;s是速度因子,它定义的是权重函数到达其最小值的速度。x的定义为
式中:vwoffset指的是价值权重,它定义了噪声分布直方图中价值权重开始下降的位置。如图3所示,在估计的噪声结果上,“价值权重”的作用是减少了由于图像细节而产生的错误高噪声结果的影响。
图3a中,一幅运动图像中人为加入了55 dB的噪声。
图3b中,给出了检测到的同质化区域(用深色表示),它是空间域、时域复合模式噪声检测的结果。图中白色区域为噪声检测结果认为高噪声的区域,黑色区域为噪声较少的区域。在这幅图中,运动的细节区域,例如树枝和垂直的大楼建筑物等结构都在噪声谱线上产生了很高的响应(图中亮区域)。而实际测量中,理想状况下应该测量没有过多细节的平坦图像区域,例如图中的天空等。
图3c中,其中直方图上的点表示的是计算出的噪声响应分布。直方图上左侧的尖峰指示的是实际的噪声,而右边的尖峰是由于运动细节导致的。价值权重在图中的左半边有一个很大的值,并且往右半边是逐渐下降的。其目的是基于这个曲线来减小右半边由图像运动细节导致的噪声结果过高的影响。在最终的噪声估计上,由价值权重的偏置量来指示价值权重从哪个位置开始下降。如果不引入“价值权重”的变量,那么噪声估计的结果可能会很接近直方图最右侧的峰值。
图3 同质化分析举例示意图
相比于一些面向结构的噪声估计方法[1],在图像纹理细节区域的噪声相对较难进行检测。很强的边沿或者细节会导致在纯空间域噪声检测中的错误高响应(如图4所示),并且如果没有采取特别的测量手段,则会因此导致过高的噪声估计水平。同样的,在时域噪声检测中,很强的运动细节也会导致错误的高响应,产生错误的过高估计噪声水平的作用。图4a是输入的动态变化的多波群图像,图4b为对数化的噪声计算结果。只有在对数化噪声频谱的水平中间部分才代表的是噪声区域。左边和右边的亮区域均是由于多波群图片的强垂直边沿结构导致的。
为了避免这类噪声过高估计的情形发生,采用“纹理权重”来缓解强边沿或者细节的影响,在噪声估计上是压制了图像细节对估计结果的影响。
纹理权重分析模块首先计算出一个初始的纹理权重值wt_initial,它是基于4组空间域滤波器的输出结果运算得出的,公式表达如下
图4 强垂直边沿在空间域噪声检测上产生的响应频谱
式中:wt_max是一个常数,sf1,…,sf4是滤波器组的输出。
一个信号纹理权重(wt_initial)的初始值,在其结果上采用一个2×3的最小滤波器,计算出一个最终的纹理权重wt。其仅仅使用当前宏块的正上方和正左方的宏块,加以2×3的最小滤波器去腐蚀初始纹理权重值,其目的是对于很强的垂直边沿之类的纹理区域限制其在最终的噪声检测过程中的贡献,如图5所示。
图5 纹理权重用以减轻强垂直边沿的影响
最后计算得出的结果信噪比SNR是由式(4)计算得到的结果经过对数转换和权重平均得出的。这个权重平均强调的是那些具有更低噪声宏块的贡献度,所谓的更低噪声指的是当图像中同时包含高噪声和低噪声的区域时,更看重低噪声区域的贡献度。实验结论也显示低噪声区域往往更接近于实际的噪声水平,而高噪声区域往往受到运动细节结构因素的干扰。式(4)中的噪声分子(noise_num)和噪声分母(noise_denom)在算法框图中的位置如图1所示。
其中
而且,权重值w是由价值权重wv和纹理权重wt按照式(7)计算得出
式中:wmin是一个常数,它定义了最小权重下限。
有效宏块的总数是由硬件模块计算得出,标记为valid_total,这个数值在“空间域时域复合模式”中软件模块将其作为“非静止宏块”的尺寸,而当噪声测量模式选择“纯时域”模式时,该数值将作为“静止宏块”的尺寸still_size。为此,软件模块还进一步计算出静止比率Rstillness来反映静止区域的大小still_size和非静止区域的大小nonStill_size的关系,具体公式如下
式中:函数Fstillness是由一个中值滤波和一个时域滤波器来得到,其作用是提高结果的稳定性。
最终的信噪比水平SNRfinal是在SNRSP和SNRS&T中进行一个软判决,其判决方法是根据静止比率Rstillness来分配,如式(9)所示
尽管已经考虑了如“价值权重”、“纹理权重”等很多方面,以及采用了空间域和时域相结合的测量方法,然而仍然还存在一些情况下计算出的噪声结果与实际的噪声水平有些偏差。尤其是在一些具有大面积细节内容的运动场景中。因此,在测量算法中计算出一个可信度指标来表征当前噪声结果的可靠程度,例如运用于这种大面积细节的运动场景时,其可靠程度值就会下降。
可信度指标是根据纹理权重的平均纹理宏块总数txtW_total,计算出一个初始的可信度Conf值,公式如下
对于纯时域测量模式的可信度结果用ConfSP来标记,同样,对于时域空间域复合模式的测量可信度用ConfS&T来标记。最终的可信度测量结果ConfS&T是通过取这两者的最大值来得到,然后对其使用一个中值滤波Fconf来增强其稳定性,如
在如图4所示的动态多波群视频码流中人为添加20~55 dB不同等级的噪声,软件仿真结果和硬件实测结果的数据对比如表1所示。
表1 噪声检测实验数据
真实噪声水平、硬件和软件仿真三者的对比结果如图6所示,该噪声检测算法的实际测量结果与真实的噪声水平在20~50 dB区间内完全吻合。
图6 噪声检测实验结果对比
本文介绍了一种基于时域和空间域的噪声检测算法,在算法的仿真设计过程和实际电视芯片应用中,根据各种场景的特质做了大量的动态参数设计优化。基于纹理分析器和同质分析器的运算,在平坦的或者运动的纹理较多的区域都能给出一个可靠的噪声估计结果。从实际噪声检测的效果来看,相比较于仅通过时域检测或仅通过空间域检测的算法[7-8],这种方法具备更高的可靠性、准确度和实时性。
在芯片硬件设计实现中,通过采用软件动态切换时域和空间域的工作模式,以及采用硬件实时提供运算结果的方法保证了在电视系统中进行噪声检测的可实现性和易使用性,为数字电视图像后处理模块,尤其是数字降噪模块,提供了及时准确的参考依据。
[1] AMER A,DUBOIS E.Fast and reliable structure-oriented video noise estimation[J].IEEE Trans.Circuits and Systems for Video Technology,2005,15(1):113-118.
[2] OLSEN S I.Estimation of noise in images:an evaluation[J].CVGIP:Graphical Model and Image Processing,1993,55(4):319-323.
[3]BIDARTE U,EZQUERRA J A,ZULOAGA A,et al.VHDL modeling of an adaptive architecture for real-time image enhancement[C]//Proc.VHDL International Users Forum(VIUF).Orlando,FL,USA:IEEE Press,1999:94-100.
[4]HAAN G,OJO O A,KWAAITAAL-SPASSOVA T G.Automatic 2D and 3D noise filtering for high-quality television receivers[EB/OL].[2015-02-10].http://xueshu.baidu.com/s?ie=utf-8&tn=SE_bai duxueshu_c1gjeupa&wd=paperuri%3A%28c4f9c6500410d01b5b9 262ef70528ad7%29&filter=sc_long_sign&sc_ks_para=q%3DAuto matic%202-D%20and%203-D%20noise%20filtering%20for%20hi gh-quality%20television%20receivers.
[5] LIU C,FREEMAN W T,szeliski R,et al.Noise estimation from a single image[C]//Proc.IEEE Conference on Computer Vision and Pattern Recognition(CVPR),2006.[S.l.]:IEEE Press:901-908.
[6] 赵杰,裴建英,门国尊.一种改进的图像去噪与增强模型[J].电视技术,2013,37(23):31-34.
[7] 章郡锋,吴晓红,黄晓强,等.基于暗原色先验去雾的改进算法[J].电视技术,2013,37(23):192-195.