具体实施方式
将参考附图来描述本发明的各种实施例,其中几个视图各处相似的参考标号表示相似的部分和装配。对各种实施例的引用不限制本发明的范围,该发明仅由所附权利要求的范围来限制。另外,本说明书中所述的任何示例不打算成为限制性的,仅仅提出用于所要求的发明的许多可能的实施例中的一些。
在整个说明书及权利要求书中,以下术语至少采用此处明确相关的含义,除非上下文在其他情况下清楚地指出。下文标识的含义不打算限制这些术语,而仅仅提供用于这些术语的示意性示例。“a”、“an”(不定冠词)和“the”(定冠词)的含义包括复数引用,“in”(在...中/内/里)的含义包括“in”和“on”(在...上)。术语“connected”(被/已连接的)指被连接项之间不带任何中间设备的直接电连接。术语“coupled”(被耦合的)指被连接项之间的直接电连接,或者通过一个或多个无源或有源中间设备的间接连接。术语“circuit”(电路)指耦合在一起以提供所需功能的有源和/或无源的单一组件或多个组件。术语“signal”(信号)指至少一个电流、电压、电荷、温度、数据或其他信号。
简言之,提供视频降噪器来处理视频信号以减少加性高斯白噪声(AWGN)和其他和噪声有关的失真的出现。降噪器可以被重新配置来以并联或级联结构工作。并联结构提供更好的AWGN减少,但是当视频被激进压缩(例如,MPEG)时可能导致较少的噪声减少。当视频被激进压缩时,视频降噪器可被重新配置成级联结构,损失一定量的图像细节但同时在降低与压缩有关的噪声方面更有效。
另外,视频降噪器还是自配置的(self-configurable)。噪声注入器和噪声测量模块被包含在视频降噪器中。噪声注入器允许视频降噪器被校准以从已注入的可预测的噪声级别操作。噪声测量模块提供噪声的测量和视频降噪器参数的调整,以便基于测量的噪声级别来降低噪声。下面完整地描述这些方面以及此处描述的视频降噪器的另外的优点和方面。
图1例示根据本发明视频降噪器可以在其中操作的示例性系统。在所示的示例性系统(系统100)中,视频信号的处理具有如下数据路径,所述数据路径包括输入信道选择复用器(102)、色彩空间转换模块(104)、视频降噪器(106)、图像放缩和帧速降低模块(108)、边缘增强和上采样模块(110)、胶片颗粒(film grain)添加模块(112)、色彩管理单元(114)、抖动和帧速转换模块(116)以及交错器(interlacer)(118)。
系统100可被包含在驻留于各种媒体设备和显示设备之间的视音频(A/V)模块中。在该实例中,噪声清除在A/V模块中完成。该A/V模块可以是例如DVD播放器或HD录放器之类的输入源的一部分,或者可以是终端显示器的一部分,或者可能作为独立单元存在。独立A/V模块可以容纳如所示出的那些功能一样的视音频功能以及亮色分离、解交错、附加噪声减少、放缩、附加色彩处理、音频延迟和附加处理模块。
图2例示根据本发明用于输入到视频降噪器的视频的示例性帧。帧(200)用建筑背景来图示美国国旗,并且由于视频帧尚未通过可能将AWGN引入到信号中的通信连接来传送,因此不显示任何噪声或压缩失真。另外,由于视频信号未被压缩以供传送,也未通过使得帧(200)中失真变明显的其他方式被处理,因此帧(200)也不包含任何压缩失真。
图3例示根据本发明包含来自视频信号的传输的噪声的视频的示例性帧。帧(300)图示相同的图2所示输入视频信号的帧。在该帧中,AWGN噪声已被引入视频信号。该噪声可能通过自然出现被引入或者可能由噪声注入器模块(见图7)引入。AWGN导致较粗糙的图像,其中色彩和目标之间的过渡在较高分辨率的显示器上呈现有噪(noisy)外观。
图4例示根据本发明被视频降噪器处理后的视频的示例性帧。视频帧(400)对应于图2和图3所示的视频帧。帧(400)被以并联体系结构配置的视频降噪器(见下面的图7)处理。该结构导致AWGN的去除同时保留图像细节。在并联体系结构中,当视频图像保持相对静止时,视频降噪器中包含的时间降噪器(TNR)被用来提供输出。当视频图像包含运动目标时,视频降噪器中包含的空间降噪器(SNR)被用来提供输出。对于中间的运动情况,基于运动比特的SNR和TNR输出的加权平均变为最终的输出。从帧(400)中可见,视频降噪器的使用可以明显改善图像质量。
图5例示根据本发明包含来自视频信号压缩的噪声的视频的示例性帧。在该帧(500)中,纯净的图像已通过品质因子等于20的JPEG压缩被压缩。因此,压缩的图像具有大量块状噪声和一定量的蚊状噪声(对角边缘振荡)(diagonal edge ringing)。
图6例示根据本发明被视频降噪器处理后的视频的示例性帧。所示帧(600)对应于图5所示的帧。由于图像中引入的主要噪声量归因于压缩,因此视频降噪器以级联操作模式(见下面的图7)配置以降低噪声的影响。在诸如来自模拟电缆或网上视频(“IP视频”)的高度压缩的视频及其他采用高压缩率的应用之类的情况下,存在严重的压缩失真,这些失真最好通过采用大量空间滤波的级联结构来处理。如帧(600)所示,源于压缩的噪声影响已被明显降低。
图7例示根据本发明的视频降噪器体系结构的操作框图。视频降噪器(700)包括高斯噪声注入器(702)、空间降噪器(SNR)(704)、复用器(706、712)、时间降噪器(TNR)(708)、空-时混合器(710)、肤色检测(FTD)模块(714)、肤色检测(FTD)混合器(716)、场存储器A和B(718、720)、3D解交错模块(722)、亮色运动引擎(ME)(724)、空间噪声估计器(726)、时间噪声估计器(728)、噪声组合器(730)、噪声-阈值映射模块(732)以及噪声-beta映射模块(734)。
视频降噪器(700)的操作包括允许视频降噪器(700)同时可重新配置并自校准的方面。首先,取决于视频信号中包含的噪声的类型和数量,视频降噪器(700)可以被配置成级联体系结构或并联体系结构。其次,视频降噪器是自校准的。如下面所进一步解释的,用于检测视频信号的噪声量以及将噪声注入到视频信号中以便针对最优操作来校准视频降噪器(700)的模块被包含。
一旦输入视频信号(In)被提供给视频降噪器(700),该信号便通过高斯噪声注入器(702)来传送,其中确定是否将AWGN添加到视频信号(In)上。噪声可以根据被选sigma(高斯噪声分布的标准差)级别来设置。新信号(in_noise)可被高斯噪声注入器(702)注入噪声或不被注入噪声。
新信号(in_noise)随后被传送到空间降噪器(SNR)(704)。SNR(704)在空间域降低视频信号中的噪声。空间域的噪声降低最常通过使用边缘自适应视频滤波器来完成。通过使用边缘自适应视频低通滤波器,图像边缘被保留,噪声降低发生在较少细节的区域。一种这样的常见边缘自适应视频滤波器在题为"A Method for Estimation and Filtering of GaussianNoise in Images"(Fabrizio Russo,IEEE Transactions on Instrumentation andMeasurement,vol.52,no.4,August 2003)的参考文献中被描述。
在Russo的参考文献中,3×3个像素的核尺寸被选择用于估计并过滤单个像素的噪声。根据本发明的一个实施例,3行乘5个像素的核尺寸被用来与在交错域中操作的视频信号相对应。根据SNR(704)的一个实用方面,3×5的核可以通过使用大小为720×16(对于SDTV)和1920×16(对于HDTV)的2个行缓冲器来实现。在一个实施例中,行缓冲器是使用片上单端口静态RAM来实现的。噪声降低针对像素的亮度及色度值在逐像素的基础上发生。
暂转向图8,根据本发明示出对应于空间降噪器的核像素的示例。窗口(800)中的每个相邻的核像素(例如,802)用于生成位置对应于核的中心像素X15的输出像素(804)。这意味着对于任何输出像素的生成,左侧2个像素、右侧2个像素、上边一行以及下边一行被考虑以供生成。例如,假设试图生成输出像素Y15。用于输出像素的公式按下式给出:
(公式1)
参数“Zeta”被定义为:
阈值参数“Th”控制噪声降低量。若阈值被设为0,则没有噪声降低发生,相当于绕开SNR(704)。上述公式中的阈值参数对应于下面将进一步描述的从噪声-阈值映射模块(732)接收的阈值信号(snr_th)。在一个实施例中,范围从10到32的阈值被发现对于视频应用是最优的。
从公式1可以推断出,若相邻像素和中心像素之间偏差过大,则相邻像素与中心像素大不相同,因此这类像素应被排除。排除相邻像素导致较少的边缘模糊。空间域的边缘自适应视频滤波是去除高斯噪声的常用方法。在空间域中难以区分真正的视频数据和噪声,因为它们共享同一频谱。因此空域技术可能在高斯噪声去除方面不那么有效,因为它们可能天生以模糊边缘而告终。
转回图7,除了在空间域降低视频信号中的噪声,视频信号还可以由时间降噪器(TNR)(708)处理。视频数据中的高斯噪声被假设具有零均值。该假设是非常合理的因为视频数据中的任何直流偏移都可以被校正。因此,对大量相似采样进行平均会导致纯净的信号产生。噪声分量的均值将归于零。在实时处理中,多帧(multiple frames)的使用对硬件实现方面提出很多挑战。将多帧用于时间噪声降低通常要求在某种形式的存储器中存储这些帧,所述形式通常是“片外”(off-chip)的。这类片外存储器可以SDRAM/DDRAM集成电路的形式存在。由于这些存储器外置并在板上存在,会增添系统成本。一个SDTV尺寸的帧通常要求大约691K字节的存储空间。对于高分辨率情况,该要求变为4M字节。用于平均采样的帧数目更大,实际上意味着片外存储器的增加。从信号处理理论可知,反馈结构与前馈结构相比给出更好的幅度响应。因此,在一个实施例中,TNR(708)被设计为一阶IIR反馈递归结构。
暂转向图9,根据本发明图示了示例性时间降噪器体系结构。所示示例性TNR(900)被设计为一阶IIR反馈递归结构。用于所示TNR的时域差分公式可以写成:
Y[n]=(1-beta)·X[n]+beta·Y[n-1] (公式5)
并且,z域传递函数可以写成:
(公式6)
利用公式5,幅度响应可随变化的反馈因子(beta)值一起被绘制。反馈因子可以取范围从0到1(不包括1)的值。在beta=1处,环变得不稳定,即,输入断开,帧缓冲器中无论是什么都继续重复循环。在一个实施例中,beta由下述噪声-beta映射模块(734)确定。
再转向图10,根据本发明图示了具有变化的反馈因子“beta”的TNR(708)的幅度响应。检查响应(1000),在“beta=0”处,没有递归发生,并且无论输入到TNR的是什么都按原样被传递到输出处。这与全通滤波器类似。随着beta以1/8的步长从0/8增加到7/8,高频区域衰减得更多。当图像是静止的时候,大多数图像信息位于帧频等于0Hz的点。反馈因子“beta”控制TNR滤波器的性质。当到来的视频数据不包含噪声时,反馈因子可被设为“beta=0”。随着到来的视频中噪声量的增加,反馈因子适当地增加,来以接近恒定的质量创建输出视频效果。表1例示了随着变化的反馈因子beta的值而获得的信噪比(SNR)增益量。
反馈因子(beta) | 以分贝为单位的SNR增益 |
1/8 | 1.09 |
2/8 | 2.22 |
3/8 | 3.42 |
4/8 | 4.77 |
5/8 | 6.37 |
6/8 | 8.44 |
7/8 | 11.76 |
表1:SNR增益和反馈因子“beta”对照
从表1可以明显看出,通过增加反馈因子获得更高的增益。然而,增加反馈因子beta可能带来问题。当物体在图像中静止时,大部分能量集中于直流频率;而当物体开始移动(运动的情况),频谱变成动态的且具有从直流到15Hz的所有频率。增加反馈因子可以使得系统特性越来越迟钝,因而无法适应高运动级别的视频信号。若存在场景改变,环要花费不止几个帧才能稳定。这可能导致类似“重影”的可见失真。IIR滤波器的非线性群延迟响应在运动区域添加可见失真方面的二阶复杂度。
视频降噪器(700)的体系结构使得该体系结构是可重新配置的,以便空间和时间噪声降低可以选择性地混合来产生最优的输出视频信号。转回图7,亮色运动引擎(ME)(724)用于确定到来的视频信号中的场的每个像素的混合级别。
众所周知对于场景的静止区域,高斯噪声可以在时域去除,但时间噪声降低在场景的运动区域引起重影失真。亮色ME(724)提供每像素机制来将所涉及的像素归入静止区域或运动区域。若像素的亮度和色度值在帧与帧之间很不一样,则像素具有高运动级别。然而,若亮度和色度值改变很小,则运动级别低。基于运动级别,降噪器的最终输出可以是SNR输出和TNR输出的混合函数。
在一个实施例中,运动比特计算在3行乘以5个像素大小的滑动窗上操作。它要求时间拍(temporal tap),即,从到来的场中取出15个数据值并从前一场(相隔一帧)中取出15个数据值。计算15个值的平均绝对偏差(MAD)。MAD值随后与7个寄存器可编程阈值作比较来量化运动级别。这给我们3比特的运动信息,其中“000”表示像素是静止的,“111”表示像素处于高度运动中,平衡值表示中间的运动级别。
这些运动比特随后可被提供到空-时(ST)混合器(710)。ST混合器(710)基于运动比特来给SNR(704)的输出及TNR(708)的输出分配权重。混合器输出的公式按下式给出:
blend_out=m·SNR_out+(1-m)·TNR_out (公式7)
这里,“m”表示运动量。在一个实施例中,m的值以1/8的步长位于0/8到7/8的范围内。表2总结了运动比特和混合因子之间的关系。
运动比特 | SNR权重因子(m) | TNR权重因子(1—m) |
000 | 0/8 | 8/8 |
001 | 1/8 | 7/8 |
010 | 2/8 | 6/8 |
011 | 3/8 | 5/8 |
100 | 4/8 | 4/8 |
101 | 5/8 | 3/8 |
110 | 6/8 | 2/8 |
111 | 7/8 | 1/8 |
表2:运动比特和混合因子之间的关系
超越混合SNR(704)和TNR(708)的输出的能力的是重新配置视频降噪器(700)的体系结构来优化噪声降低的能力。通过对寄存器位(algo_sel)进行编程,该体系结构可以令SNR(704)和TNR(708)处于级联或并联操作模式。例如,当“algo_sel=0”时,使用复用器(706、712)选择级联操作模式,当“algo_sel=1”时,选择并联操作模式。
级联体系结构的z域输出公式可以写成:
(公式8)
在公式8中,“beta”为受运动比特控制的递归系数,Xs(z)为SNR(704)的输出。
运动比特 | 递归系数(“beta”) |
000(静止像素) | 7/8 |
001 | 6/8 |
010 | 5/8 |
011 | 4/8 |
100 | 3/8 |
101 | 2/8 |
110 | 1/8 |
111(高度运动像素) | 0/8 |
表3:运动比特-“beta”映射
示例性运动比特-“beta”映射示于表3。从表3中可以看出,若像素属于视频帧的静止区域,则递归值被设为最大从而在静止区域给予最大量的噪声降低。但是当像素最大限度地运动时,递归系数“beta”被设为“0/8”从而造成绕开TNR的效果。这是希望得到的效果,因为当物体运动时,任何数量的时间递归都可能引入重影失真。
级联体系结构存在两种可能的缺点。级联体系结构可能在静止区域导致不必要的模糊,并且由于运动比特控制反馈递归系数,因此递归引擎即使在到来的视频本质上纯净(不含高斯噪声)时也工作,并可能在场景的中度运动区域导致多余的重影失真。
级联体系结构导致大量的噪声降低,因为图像首先被SNR(704)过滤然后过滤后的图像通过TNR(708)。当处理类似蚊状噪声的压缩失真以及块状失真的移除(见图5和图6)时或者当到来的视频中噪声级别高时,这种大量平滑有时是令人满意的。
在并联体系结构中,SNR(704)和TNR(708)并列设置。其输出随后使用上述ST混合器(710)来混合。该结构导致高斯噪声的去除同时保留图像细节。在并联体系结构中,当图像是静止的时,TNR(708)的输出变为最终输出,当图像是运动的时,SNR(704)的输出变为最终输出。对于中间的运动情况,基于运动比特的SNR和TNR输出的加权平均变为最终输出。并联结构的输出公式(z域)可以写成:
(公式9)
在公式9中,根据一个实施例,“m”表示运动比特且其值以1/8的步长位于从0/8到7/8的范围内。“beta”表示反馈因子。Xs(z)为SNR块的输出。
如上所述,并联结构可以是用于降低AWGN而不退化图像质量的方法。然而,在诸如来自模拟电缆或网上视频(“IP视频”)的高度压缩的视频及其他采用高压缩率的应用之类的情况下,存在严重的压缩失真,这些失真最好通过采用大量空间滤波的级联结构来处理。该体系结构的可重新配置性允许软件或另一电路针对每个输入源选项或者甚至针对每一帧来动态地选择最佳的结构。
一旦视频信号被SNR(704)和TNR(708)处理并被ST混合器(714)混合,视频信号便由肤色检测(FTD)模块(714)处理。若噪声降低已在皮肤区域中完成,则这些区域本质上显得稍微柔和一些。在视频领域,肤色的外观是最重要的目视校准标准之一。通常,人们希望尽可能地保留皮肤区域的外观。在这些区域中,一定量噪声的存在比令这些区域不含噪声而损失类似皮肤的毛孔或弄脏的胡须之类的微小细节更理想。因此,视频降噪器(700)在图像中检测属于皮肤或肌肉区域的像素并允许它们不经历噪声降低而直接传递到输出处。由于皮肤和非皮肤区域之间的二进制切换可能在皮肤边界附近产生可见失真,因此FTD混合器(716)操作以基于肤色度(degree of skin tone)来平滑这些区域。基于肤色量用于已过滤和未过滤像素的示例性混合因子在表4中给出。
肤色量 | VNR像素的权重因子 | 未过滤像素的权重因子 |
00(无皮肤区域) | 1 | 0 |
01 | 3/4 | 1/4 |
10 | 1/2 | 1/2 |
11(最大皮肤区域) | 1/4 | 3/4 |
表4:基于检测到的肤色量的已过滤和未过滤像素的混合因子
使用类似于表4所示的那些混合因子的混合因子在降低视频信号中出现的噪声的同时允许图像的肤色被保留。FTD混合器(716)的输出被提供给场存储器(718、720)并被提供到输出处用于进一步处理。在图7的示例中,该输出被提供给3D解交错模块(722)以便可以采用3D解交错。递归数据从场存储器(718、720)提供,以供在时域处理视频信号、确定运动比特以及在时域估计噪声。
空域和时域两者中的噪声估计由空间噪声估计器(726)和时间噪声估计器(728)执行。可以使用两种用于噪声估计的方法中的任一种,而另一种方法使用这两种噪声估计方法并基于适当标准来组合结果。一种有效的标准是将两个噪声估计的较大者用作对实际噪声方差(variance)的保守估计。
空间噪声估计器(726)接收有噪输入视频信号(in_noise)作为输入。暂转向图11,根据本发明示出用于空间噪声估计器的示例性框图。信号加噪声数据随后被供应到边缘自适应视频空间滤波器(如上所述)。在滤波器的输出处,获得降低了噪声的信号。输入的有噪信号(in_noise)被减去边缘自适应视频滤波器的输出,导致噪声分量的计算和一定量的图像泄漏。差值信号的绝对值随后被供应到块处理单元。块处理单元的输出给出空间噪声估计值(sigma_spat或σs)。在块处理模块中,场数据被子划分成32×16大小的块。每块的平均绝对偏差值被计算并存储。在场的末尾,所有平均绝对偏差的最小值被当作高斯噪声的空间估计。时间噪声估计器(728)与空间噪声估计器(726)类似。时间噪声估计器(728)从即时到来(live incoming)的场及一帧延迟版本的数据的输入中估计时间噪声。该一帧延迟版本的数据来自场存储器(720)。由于视频降噪器(700)的输出被存储在场存储器中,因此回送到时间噪声估计器的数据是过滤了噪声且延迟了帧的视频数据。即时到来的场数据和延迟了一帧的数据被供应到时间噪声估计器(728)。暂转向图12,根据本发明示出用于时间噪声估计器的示例性框图。绝对差值被计算,然后被供应到块处理单元。该块处理单元与为空间噪声估计器(726)描述的块处理单元相同。块处理单元的最终输出是时间噪声估计值(Sigma_Temporal或σt)。
一旦噪声估计(σs,σt)被空间噪声估计器(726)和时间噪声估计器(728)确定,所述估计便可被噪声组合器(730)组合。噪声组合器(730)将两个噪声估计组合为组合的噪声估计(σest)。组合的噪声估计(σest)随后可被输入到噪声-阈值映射模块(732)和噪声-beta映射模块(734)。这些模块针对视频信号中可能遇到的各种噪声级别来确定需要分别被提供给SNR(704)和TNR(708)的snr_th和beta的级别。
除了噪声估计器(726,728),视频降噪器(700)还包括高斯噪声注入器(702)。高斯噪声注入器(702)的目的是评价视频降噪器(700)的性能,具体而言是评价噪声估计器(726,728)的性能。片上噪声注入器对于将视频降噪器的性能有效地演示给客户而无需额外的噪声注入器也是有帮助的。片上噪声注入器本质上是可编程的,意味着可以精确地控制应该给到来的视频数据进行多大量的噪声注入(就sigma而言)。在一个实施例中,支持的注入噪声值的范围以1的步长从“sigma=0”到“sigma=31”。在另一实施例中,高斯噪声注入器是基于Box-Muller的噪声生成方法的。伪随机数易于使用基于我们想要生成的位数的线性反馈移位寄存器(LFSR)和多项式公式以硬件形式生成。为了最大化生成的伪随机数的重复,要求正确的多项式公式的实现。生成的伪随机数随后被供应到“sqrt-log(开方-对数)”查找表和“sin(正弦)”“cos(余弦)”查找表。查找表的值随后被乘以所需的标准偏差值以得到最终的伪随机数。最终的数“X1”和“X2”具有高斯性质。
通过包含高斯噪声注入器(702),空间和时间噪声估计器二者的性能可以被测量。这种设置的另一个优点是无需片外噪声注入器来校准。通过为到来的纯净视频数据提供已知量的噪声,由空间和时间噪声注入器提供的测量可以被确认。
在图7示出的实施例中,视频降噪器(700)的输出被示为包含3D解交错模块(722)。叙述3D解交错模块(722)(不是视频降噪器的操作所必需的)的原因是为了说明因为视频降噪器(700)设计的原因而可用的硬件优化。解交错是将交错的场数据转换成逐行帧数据的处理。因为当今的数字电视具有显示逐行图像的能力,解交错模块是十分常见的视频处理块之一。3D解交错模块(722)还可以在空-时域操作。3D解交错模块(722)从相邻场和中心场寻找数据来创建遗漏行(missing line)的像素的信息。由于3D解交错模块(722)作用于3场数据,因此其也需要场存储器。通过视频降噪器(700)在3D解交错模块(722)之前的有效放置,相同的场存储器可用于获取高斯噪声降低及解交错功能。通过这种共享,SDRAM空间要求和数据传送带宽二者被有效地减半。虽然已描述了解交错的输入流结构,但是视频降噪器(700)既能支持交错的输入流,也能支持逐行的输入流。
在另一实施例中,可以提供以硬件形式或者通过固件来控制噪声降低环参数的选择,允许视频降噪器为“自适应的”。如上所述,SNR阈值和TNR beta可以是到来的视频中存在的噪声量的函数。同样,噪声估计器的值可以反映在状态寄存器上,进而状态寄存器可以被固件读取。由于SNR阈值(snr_th)和TNR beta还是(经由主机接口)可以通过寄存器来编程的,因此可以通过固件形式关闭环。然而,这可能让CPU忙个不停。作为替代,可以通过硬件形式在估计的噪声值和环参数(SNR阈值和TNRbeta)之间关闭环。以硬件形式或者通过固件来关闭环的选择可以通过对寄存器的位进行编程来控制。因此,板子设计者具有以硬件形式或以软件形式关闭环的选择。
上述说明、示例和时间提供了对本发明的组成的制造和使用的完整描述。由于可以在不脱离本发明的精神和范围的前提下做出本发明的很多实施例,因此本发明的权利归于后面所附的权利要求。