用于低光降噪的分量滤波的制作方法

文档序号:11844049阅读:172来源:国知局
用于低光降噪的分量滤波的制作方法与工艺

相关申请

本申请要求2010年11月19日提交的美国专利申请序列号12/950,664;2010年11月19日提交的美国专利申请序列号12/950,666;以及2010年11月19日提交的美国专利申请序列号12/950,671的优先权,这些专利申请的全部公开内容通过引用方式并入本文。

技术领域

本发明的实施例总的来说涉及视频信号处理,并且更具体地来说涉及处理视频信号以移除由低光噪声导致的假象。



背景技术:

低光图像尤其容易因光检测传感器导致的噪声(即,低光假象)而劣化。例如,视频或照相机可能在低光状况中捕获到非期望的颗粒或变色。此噪声可能导致不相关的像素,并且由此导致视频编码算法(例如,MPEG4和H.264)的压缩效率降低。许多应用(如安全性摄像器)捕获到低光图像并且需要巨大量的存储空间来用于存储这些图像,并且所需存储器空间上的任何减少都可能导致更具成本效率的应用,存储的图像或视频帧的数量增加或用于传送这些图像的网络通信量减少。因此,有许多工作致力于检测和消除低光噪声。

但是,先前的工作(如变换域方法、DCT、小波(wavelet)或其他统计方法)存在缺点。这些方法为计算上密集且需要显著大量的计算资源,这样对于低功率便携式或其他装置可能不可用。再者,这些方法不可基于可用资源或源图像的复杂度进行调整,进一步将资源浪费在简单的图像上或在可能不需要附加资源或没有附加资源可用的高负荷状况期间浪费资源。



技术实现要素:

总的来说,本文描述的系统和方法的各个方面使用高斯分布和相关性技术来从取自视频或照相机的图像中移除不相关的低光噪声。可以将这些图像分离成亮度和色度分量,并分别地对其进行滤波。根据图像的复杂度和可用的资源,可以使用不同的滤波器。这些滤波器可以通过使用边缘检测和膨胀滤波器来适应图像中的变化,从而保留特征边缘处的高频细节。再者,可以将图像分成多个部分,对其分别地进行滤波并且重组。

总的来说,在一个方面中,一种用于从低光图像移除噪声的系统包括亮度滤波器电路、色度滤波器电路和相加电路。亮度滤波器电路通过对低光图像的亮度分量应用第一滤波器来创建经过滤波的亮度分量,而色度滤波器电路通过对低光图像的色度分量应用第二滤波器来创建经过滤波的色度分量。相加电路将经过滤波的亮度分量与经过滤波的色度分量组合,从而产生经过滤波的低光图像。

在多种实施例中,亮度滤波器电路从多个可用滤波器中选择第一滤波器,并且该选择可至少部分地基于多个可用滤波器中每个滤波器的计算成本和/或亮度分量的复杂度。第一滤波器可以是低通均值滤波器、中值滤波器和/或基于边缘检测的自适应滤波器;第二滤波器可以是低通均值滤波器和/或时间均值滤波器。图像可以是静态图像和/或视频帧。

总的来说,在另一个方面中,一种用于从低光图像移除噪声的方法包括通过对低光图像的亮度分量应用第一滤波器来创建经过滤波的亮度分量。通过对低光图像的色度分量应用第二滤波器来创建经过滤波的色度分量。将经过滤波的亮度分量与经过滤波的色度分量组合,以产生经过滤波的低光图像。

在多种实施例中,第一滤波器选自多个可用滤波器。第一滤波器的选择可至少部分地基于多个可用滤波器中每个滤波器的计算成本和/或亮度分量的复杂度。第一滤波器可以是低通均值滤波器、中值滤波器和/或基于边缘检测的自适应滤波器;第二滤波器可以是低通均值滤波器和/或时间均值滤波器。图像可以是静态图像和/或视频帧。

总的来说,在另一个方面中,一种用于从低光图像滤除噪声的自适应滤波器包括形态滤波器和比较滤波器。形态滤波器通过将图像中检测到的边缘膨胀而将图像划分成非边缘区域和膨胀的边缘区域。比较滤波器将非边缘区域中的像素与该像素周围的区域比较,并且基于比较结果可选地将该像素替换为至少部分地从该像素周围的区域得出的新像素。

在多种实施例中,差分滤波器检测图像中的边缘且/或形态滤波器包括膨胀滤波器。膨胀滤波器可以是3×4膨胀滤波器,并且该像素周围的区域可以对应于3×3像素区域。自适应滤波器可以将像素与该像素周围的区域的平均值之间的差与该像素周围的区域的方差比较。该方差可为该像素周围的区域的高斯分布的方差;可以包括一种电路来计算该像素周围的区域的高斯分布的方差。该平均值可为该像素周围的区域的高斯分布的平均值;可以包括一种电路来计算该像素周围的区域的高斯分布的平均值。

比较滤波器可以至少部分地基于该像素周围的区域的中值和/或该像素周围的区域的低通滤波器值来得出新像素。比较滤波器可以将邻近该像素的第二像素替换为新像素;该像素可以是偶数像素,并且该第二像素可以是奇数像素。或者,比较滤波器可以保留该像素。

总的来说,在另一个方面中,一种用于自适应地从低光图像滤除噪声的方法包括膨胀在图像中检测到的边缘以将图像划分成非边缘区域和膨胀的边缘区域。将非边缘区域中的像素与该像素周围的区域比较。基于比较结果,可选地将该像素替换为至少部分地从该像素周围的区域得出的新像素。

在多种实施例中,可以在图像中检测边缘。将像素与该像素周围的区域比较可以包括,将该像素与该像素周围的区域的方差之间的差与该像素周围的区域的方差平均值比较。该方差是可为该像素周围的区域的高斯分布的方差,以及并且该平均值是可为该像素周围的区域的高斯分布的平均值。可以至少部分地基于该像素周围的区域的中值和/或该像素周围的区域的低通滤波器值来导得出新像素。可以将邻近该像素的第二像素替换为新像素,;该像素可以是偶数像素,以及并且该第二像素可以是奇数像素。作为备选或者,比较滤波器可以保留该像素。

总的来说,在一个方面中,一种用于从低光图像移除噪声的系统包括划分电路、滤波器电路和重组电路。划分电路将图像划分成多个图像区域。滤波器电路通过对多个图像区域中的每个图像区域的亮度分量应用第一滤波器来创建多个经过滤波的图像区域。重组电路将多个经过滤波的图像区域组合成经过滤波的图像。

在多种实施例中,滤波器电路一次对一个图像区域应用第一滤波器。或者,滤波器电路可以一次对多于一个图像区域应用第一滤波器。图像区域可以包括正方形拼块、矩形拼块、行或列。第一滤波器可以是低通均值滤波器、中值滤波器和/或自适应滤波器;自适应滤波器可以包括形态滤波器和/或比较滤波器。第二滤波器可以将多个图像区域中的每个图像区域的色度分量滤波,而重组电路可以将每个图像区域的经过滤波的亮度分量与每个图像区域的对应的经过滤波的色度分量组合。重组电路可以存储与图像块、图像行和/或图像列相关的历史信息。

总的来说,在另一个方面中,一种方法从低光图像移除噪声。将图像划分成多个图像区域。对多个图像区域中的每个图像区域的亮度分量应用的第一滤波器创建多个经过滤波的图像区域。将多个经过滤波的图像区域组合成经过滤波的图像。

在多种实施例中,依序对每个图像区域应用第一滤波器。或者,可以并行地对多个图像区域应用第一滤波器。应用第一滤波器可以包括对图像区域进行滤波、对图像区域进行中值滤波和/或对图像区域进行自适应地滤波(其可以包括对照相邻像素来比较像素,并且可选地替换该像素)。可以对多个图像区域中每个图像区域的色度分量滤波。可以将每个图像区域的经过滤波的亮度分量与每个图像区域的对应的经过滤波的色度分量组合。可以存储与图像块、图像行和/或图像列相关的历史信息。

通过参考下文描述、附图和权利要求书,本文公开的本发明的这些和其他目标连同优点和特征将更为显而易见。再者,要理解本文描述的多种实施例的特征并非互斥的,并且可以以多种组合和排列的形式存在。

附图说明

在这些附图中,多个不同视图中相似的引用符号一般指代相同的部分。在下文描述中,本发明的多种实施例参考下面附图来进行描述,其中:

图1是根据本发明实施例的用于从低光图像移除噪声的系统的框图;

图2是图示根据本发明实施例的用于从低光图像移除噪声的方法的流程图;

图3是根据本发明实施例的自适应滤波器的框图;

图4是根据本发明实施例的低光图像分量的示例;

图5是图示根据本发明实施例的用于自适应地从低光图像滤除噪声的方法的流程图;

图6是根据本发明实施例的用于划分图像以从其中移除低光噪声的系统的框图;以及

图7是图示根据本发明实施例的用于划分图像以便从其中移除低光噪声的方法的流程图。

具体实施方式

图1图示用于从低光图像移除噪声的系统100。正如本领域技术人员将理解的,可以将源图像102分离成明亮度分量104和颜色分量106。明亮度分量104也可称为Y或亮度分量;颜色分量106也可以称为UV或色度分量。在一个实施例中,使用不同的滤波器分别地对明亮度分量104和颜色分量106滤波。一旦将明亮度分量104和颜色分量106进行了滤波,则可以将它们组合以重新创建原图像102的滤波版本或作为分开的分量进一步处理。

开关108的网络选择三个滤波器110、112、114的其中之一用于图像102的明亮度分量104。但是,系统100可以包括任何数量的明亮度分量滤波器,包括一个滤波器,并且本发明不限于任何具体数量或类型的滤波器。在一个实施例中,如果源图像102简单、如果只需小程度的滤波和/或如果系统资源受限,则开关108可以选择低通均值滤波器110。低通均值滤波器110使明亮度分量104中的高频信号衰减,同时允许低频信号通过。在一个实施例中,低通均值滤波器110对明亮度分量104执行模糊功能。

对于中等复杂度的图像,如果需要中等量的滤波和/或如果有平均量的系统资源可用,则可以使用中值滤波器112来对明亮度分量104滤波。正如本领域技术人员将理解的,中值滤波器112逐个像素地处理明亮度分量104,并将每个像素替换为该像素与其周围像素的中值。例如,中值滤波器112可以考虑所关注像素周围3×3的像素窗口(即总共9个像素)。中值滤波器112按其明亮度值将9个像素排序,选择中间(即,第5个)位置中的值,并将所关注的像素替换为所选的值。在一个实施例中,滤波器112是排序或排序中值滤波器,并且可以选择排序的像素列表中任何位置(例如,第3或第6个位置)中的像素。在一个实施例中,如果所选的值与原值之间的绝对差大于阈值,则保留原值;如果此差小于或等于阈值,则赋予排序的值。

对于高复杂度的图像,如果需要大量的滤波和/或如果有大量系统资源可用,则可以使用自适应滤波器114来对明亮度分量104滤波。自适应滤波器114基于动态确定的明亮度分量104的特征来选择滤波技术,如下文更详细予以解释的。

可以使用低通均值滤波器116(例如,5×5低通均值滤波器)来对颜色分量106滤波。在一个实施例中,颜色分量106不如明亮度分量复杂,且/或受低光噪声影响较小,并且由此需要较少滤波。滤波器116可以是具有绝对差值求和(SAD)的时间均值滤波器或任何其他类型的类似滤波器。系统100可以包括多于一个的颜色分量滤波器116,并且多个颜色分量滤波器116的其中之一可以基于颜色分量106的复杂度、系统资源的可用性和/或期望的滤波质量水平来选择。

图2图示用于从低光图像移除噪声的流程图200。对低光图像的亮度分量应用第一滤波器(步骤202),并且对低光图像的色度分量应用第二滤波器(步骤204)。将经过滤波的亮度分量与经过滤波的色度分量组合,以产生经过滤波的低光图像(步骤206)。第一滤波器可以是低通均值滤波器110、中值/排序中值滤波器112,或基于边缘/高斯分布的自适应滤波器114,如上文所述,而第二滤波器可以是低通或时间均值滤波器116。

图3是自适应滤波器114的一个实现300的图示。边缘差分滤波器302检测图像102的亮度分量104中的边缘。边缘差分滤波器302也可以称为差分滤波器。边缘差分滤波器302可以检测亮度分量104中的边缘,同时保留其中的高频细节。边缘检测过程将亮度分量中的像素划分成边缘像素和非边缘像素。

基于膨胀的滤波器304通过将边缘检测的结果分布到相邻像素来修改边缘差分滤波器302的输出。可以修改基于膨胀的滤波器以便易于在例如嵌入式和/或DSP平台上实现。例如,如果膨胀一行上的4个像素,则可以根据像素的位置将这4个像素移位,以与字边界对齐。在多种实施例中,基于膨胀的滤波器304是形态滤波器、3×4膨胀滤波器或4×3膨胀滤波器。基于膨胀的滤波器304可以将被指定为边缘像素的像素的区域扩大或膨胀以并入其他相邻像素。例如,具有与其相邻像素不同的明暗度的像素可能是低光噪声所致,但是如果该像素的位置靠近检测到的边缘,则该像素可能反而是所捕获的图像的真实物理特征的结果。基于膨胀的滤波器304通过将靠近检测到的边缘出现的此类像素与边缘像素相关来防止将其错误地指定为噪声产生的像素。

然后,对照相邻像素区域(例如,相邻的3×3像素块)分析膨胀的亮度分量104中的每个非边缘像素。取决于如通过高斯分布引擎306计算的所分析的像素与其相邻像素之间的差,根据赋值单元308-312对该像素赋予新值,并由输出单元314输出。

更详细地来说,高斯分布引擎306计算所分析的像素周围的块或窗口的高斯分布的平均值和方差。计算该像素与块的平均值的离差,并将其与方差比较。如果像素与方差之间的差远大于平均值(例如,比标准离差的三倍大),则该像素可能是低光噪声所致。在此情况中,中值块308将该像素替换为像素块的中值。如果像素与方差之间的差接近平均值,则低通滤波器310将所分析的像素替换为对像素块进行低通滤波的结果。如果像素与方差之间的差小于平均值,则像素块213保持不变地将所分析的像素传递到输出块314。

总的来说,赋值单元308-312采用的算法可以通过如下等式来概括:

如果{(分析的像素)-(像素块的平均值)}>N×(像素块的方差):

输出=像素块的中值 (1)

如果{(分析的像素)-(像素块的平均值)}>M×(像素块的方差):

输出=像素块的低通滤波的结果 (2)

如果{(分析的像素)-(像素块的平均值)}>P×(像素块的方差):

输出=原分析的像素 (3)

其中P≤M≤N。即,对于大的差,对输出314赋予中值308,对于中等的差,赋予低通滤波器310的结果,以及对于小的差,保留原像素312。在一个实施例中,通过特殊分配的硬件执行上面等式(1)-(3)执行的运算。在另一个实施例中,由中值滤波器112执行中值运算,并且由低通均值滤波器110执行低通滤波,如图1所示。

图4图示示范亮度分量400。在图像区域404与406之间检测到边缘402。如上文描述的,可以由基于膨胀的滤波器304将靠近边缘402的像素408指定为边缘像素。可以分析第一像素410,并将其与其3×3的周围像素412比较。在此情况中,因为分析的像素410和像素块412的平均值之间的差远大于(即,大于阈值N)像素块412的方差(即,像素410与其相邻像素412的亮度值之间存在大差异),则将像素410替换为3×3的周围像素412的中值。

在另一个示例中,分析另一个像素414,并将其与其周围像素416比较。此处,因为在与像素块412的方差比较时,分析的像素414和像素块412的平均值之间的差小于第一阈值N但是大于第二阈值M,所以将像素414替换为对块416低通滤波的结果。最后,因为在与像素块420的方差比较时,第三分析的像素418与其周围像素块420的平均值之间的差远小于阈值P,所以像素418保持不变。

在一个实施例中,上文描述的系统300分析亮度分量104中的每个像素。在其他实施例中,系统300仅分析亮度分量104中的总体像素的一个子集。例如,系统300可以仅分析亮度分量104中的偶数编号的像素(例如,每隔一个像素的像素)。可以将分析偶数编号的像素的结果不仅应用到该像素本身,而且还应用于相邻奇数编号的像素(例如,同一行中与所分析的偶数编号的像素相邻的像素)。因为两个像素相邻,所以对一个像素计算的结果可能与相邻像素的未计算的结果相似,并且将分析的像素的结果应用于这两个像素可能仅产生小的误差。可以选择其他像素子集(如奇数像素、每隔N-1个像素的像素、对角线像素或多个行/列的像素)用于分析。如上文示例中,分析的像素可以构成总像素的50%,或可以构成总像素的任何其他百分比。

图5是图示用于自适应地从低光图像滤除噪声的方法的流程图500。使用例如上文描述的边缘差分滤波器302和基于膨胀的滤波器304将图像中检测到的边缘膨胀(步骤502)。边缘检测和膨胀将图像划分成边缘像素和非边缘像素,并将非边缘区域中的像素与像素周围的区域比较(步骤504)。根据比较的结果,如上文描述的,可选地替换非边缘像素(步骤506)。

图6是用于通过将图像划分成子区域而从低光图像移除噪声的系统的框图600。划分电路602将图像划分成两个或更多个区域,而滤波器电路604对每个区域的亮度分量应用第一滤波器。一旦已将每个区域滤波,则重组电路606将每个经过滤波的区域组合以创建经过滤波的图像。总的来说,这些区域可以是任何M×N的大小,例如16×16个像素。

在一个实施例中,系统600可以用于将图像划分成与可用滤波器电路604的数量对应的数量的区域。每个滤波器电路604可以包括用于从每个区域移除低光噪声的系统100,如图1所示。滤波器电路604可以包括用于对亮度分量滤波的第一滤波器和用于对色度分量滤波的第二滤波器。然后,可以并行地同时对多个区域滤波,从而减少对整个图像滤波所需的时间。在其他实施例中,区域的数量大于滤波器电路604的数量,并且并行地处理一些区域,而将其他区域排队。

在另一个实施例中,仅使用一个滤波器电路604来依序处理每个图像区域。在此实施例中,可以按可用的存储器或其他存储空间的量和/或滤波器电路604的能力来定义图像区域的大小。可以将区域的大小调整为消耗更多或更少的资源,这取决于特定应用的约束。例如,具有非常有限的存储器的应用可能需要小的区域。可以存储和管理区域或图像的行和列的历史信息,以便在切换和/或组合图像区域时易于数据移动。

图7图示用于通过将图像划分成子区域以从低光图像移除噪声的方法700。将图像划分成多个区域(步骤702),并对每个区域的亮度分量(依序或并行地)应用第一滤波器(步骤704)。将分别滤波的区域组合成经过滤波的图像(步骤706)。

应用第一滤波器可以包括对区域进行低通滤波、对区域进行中值滤波和/或对区域进行自适应地滤波,如上文参考图1所述。自适应滤波器将区域中的像素与相邻像素比较,并且可选地替换它。又如上文所述,还可以由划分电路602将图像的色度分量分解成图像区域,以第二滤波器对其进行滤波,并由重组电路606将其重组。色度分量的图像区域的大小可以与亮度分量的图像区域的大小相同或不同。在一个实施例中,作为整体图像处理色度分量,因为其具有较低复杂度,而将亮度分量划分并分别地处理。

本发明的实施例可以作为硬件、软件和/或固件来提供。例如,系统100、300、600可以在嵌入式装置(如ASIC、FPGA、微控制器或其他类似装置)中实现,并且可以被包括在视频或照相机中。在其他实施例中,系统100、300、600的元件可以在软件中实现,并且被包括在桌上型计算机、笔记本计算机、上网本计算机或手持计算机上。在这些实施例中,上网摄像头、蜂窝电话摄像头或其他类似装置可以捕获图像或视频,并且系统100、300、600可以从其中移除低光噪声。本发明还可以作为在一个或多个制造品上或中体现的一个或多个计算机可读程序来提供。该制造品可以是任何适合的硬件设备,例如软盘、硬盘、CD ROM光盘、DVD ROM光盘、蓝光光盘、闪存卡、PROM、RAM、ROM或磁带。总的来说,计算机可读程序可以采用任何编程语言来实现。可以使用的语言的一些示例包括C、C++或JAVA。还可以将软件程序进一步解释成机器语言或虚拟机指令,并以该形式将其存储在程序文件中。然后,可以将程序文件存储在一个或多个制造品上或其中。

上文描述了本发明的某些实施例。但是,要明确地注意,本发明并不限于这些实施例,而是对本文明确描述的内容的添加和修改也旨在被包含在本发明的范围内。而且,要理解本文描述的多种实施例的特征并非互斥的,并且可以采用多种组合和排列的形式存在,即使此类组合或排列未在本文中明确给出,而不背离本发明的精神和范围。实际上,在不背离本发明的精神和范围的前提下,本领域普通技术人员将设想到本文描述的内容的变化、修改和其他实现。因此,本发明不应仅由前文说明性描述来定义。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1