CN102460504B - 基于3d的视频去噪中的环路外的帧匹配 - Google Patents

基于3d的视频去噪中的环路外的帧匹配 Download PDF

Info

Publication number
CN102460504B
CN102460504B CN201080024719.9A CN201080024719A CN102460504B CN 102460504 B CN102460504 B CN 102460504B CN 201080024719 A CN201080024719 A CN 201080024719A CN 102460504 B CN102460504 B CN 102460504B
Authority
CN
China
Prior art keywords
frame
block
overlapping block
mated
overlapping
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201080024719.9A
Other languages
English (en)
Other versions
CN102460504A (zh
Inventor
乔尔·W·肖恩勃朗姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of CN102460504A publication Critical patent/CN102460504A/zh
Application granted granted Critical
Publication of CN102460504B publication Critical patent/CN102460504B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/21Circuitry for suppressing or minimising disturbance, e.g. moiré or halo
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/10Image enhancement or restoration using non-spatial domain filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Television Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

在一个方法实施例中,针对第一多个帧的第一时间序列,对所述第一多个帧进行帧匹配,所述第一多个帧的至少一部分被噪声损坏,以及在与针对所述第一时间序列完成全部帧匹配相对应的时刻,对第一多个已匹配帧中的匹配块的多个集合进行重叠块处理。

Description

基于3D的视频去噪中的环路外的帧匹配
本申请以思科技术公司和Joel W.Schoenblum的名义于2010年6月3日作为PCT国际专利申请提交,并且要求2009年6月5日提交的美国发明申请第12/479,018号的优先权,其中针对除美国以外的所有国家的指定的申请人为美国公司思科技术公司,针对仅美国的指定的申请人为美国公民Joel W.Schoenblum。
技术领域
本公开一般地涉及视频噪声降低。
背景技术
对视频序列中的噪声进行滤波常常被执行以尽可能获得无噪声信号。空间滤波只要求对当前帧(即图片)进行滤波而不要求对时间上周围的帧进行滤波。空间滤波器当在不进行时间滤波的情况下被执行时,会遭受边缘和细节的模糊。因为此原因以及视频在时间上往往比在空间上更冗余的事实,时间滤波通常被用来获得更大的滤波能力和更少的视觉模糊。因为视频既包含静态场景又包含随时间移动的对象,所以用于视频的时间滤波器包括针对运动对象的每个部分的逐帧的运动补偿以防止滤波的拖尾伪影。
附图说明
参考以下附图将更好地理解本公开的许多方面。附图中的组件不一定是成比例的,重点放在清楚地图示出本公开的原理。此外,在附图中,相似的标号指代各个示图中的对应部件。
图1是图示出其中可以实现视频去噪(VDN)系统和方法的示例环境的框图。
图2A至图2C是示意性地图示出由VDN系统和方法的各个示例实施例执行的处理的示意图。
图3是图示出包括帧对准模块和重叠块处理模块的一个示例VDN系统的框图。
图4A是图示出帧对准模块的一个示例实施例的框图。
图4B是图示出帧对准模块的另一个示例实施例的框图。
图5是图示出帧对准模块的帧匹配模块的一个示例实施例的框图。
图6A至图6D是图示出在重叠块处理模块中使用的经修改的一维(1D)变换的框图,图示的1D变换具有逐渐降低的复杂度。
图7是示意性地图示出重叠块处理模块中的时间模块的使用的示意图。
图8是图示出用于阈值转换(thresholding)的示例机制的示意图。
图9是图示出解耦的帧匹配和重叠块处理的示例方法实施例的流程图。
图10A至图10B是图示出帧匹配的示例方法实施例的流程图。
图11是图示出包括累积缓冲器使用的各个实施例的、帧匹配和视频去噪的示例方法实施例的流程图。
图12A至图12B是图示出用于确定噪声阈值转换机制的示例方法实施例的流程图。
图13是图示出视频去噪中的自适应阈值转换的示例方法实施例的流程图。
图14是图示出以经滤波和未经滤波为基础的运动估计的示例方法实施例的流程图。
具体实施方式
概述
在一个方法实施例中,对于第一多个帧的第一时间序列,对第一多个帧进行帧匹配,第一多个帧的至少一部分被噪声损坏,并且在与针对第一时间序列完成全部帧匹配相对应的时刻,对第一多个已匹配帧中的匹配块的多个集合进行重叠块处理。
示例实施例
在此公开视频去噪(VDN)系统和方法的各种示例实施例(在此也统称为VDN系统或多个VDN系统),其包括帧对准模块和重叠块处理模块,重叠块处理模块被配置为使用经运动补偿的重叠三维(3D)变换来在3D变换域进行视频去噪。具体地,VDN系统的某些实施例对当前帧周围的帧的集合进行运动补偿,并且通过2D和/或3D变换系数的阈值转换使用3D时空变换来进行帧去噪。一个或多个VDN系统实施例相比于传统系统的暴力强制方法提供若干优点或区别特征,包括明显降低的计算复杂度,这使能实时硅中的执行(例如,适用于实时应用,诸如用于视频流的已编码图片的实时广播的帧的前期处理),诸如不可编程的或可编程的硬件,包括现场可编程门阵列(FPGA)和/或其它这样的计算设备。若干另外的区别特征和/或优点(以下进一步说明)包括:将块匹配和反向块匹配从重叠块处理环路解耦,将累积缓冲器从3D简化为2D+n(其中n是累积的帧的整数数目,其小于3D缓冲器中的帧数),以及帧的“压折(collapsing)”(例如利用如下事实:相邻的帧先前已被进行帧匹配以缩减进入重叠块处理环路的帧的数量同时获得来自帧的完整范围的信息的益处,其中从帧的完整范围的缩减是为了去噪的目的而进行的)。这样的特征和/或优点使能大大降低复杂度的块匹配。更多区别特征包括定制的时间变换和时间深度模式选择等等(以下将进一步说明)。
下文中,在示例订户电视网络环境的语境中描述这些优点和/或特征等,应当理解,其它视频环境也可以从VDN系统和方法的某些实施例受益,并且因此被认为是在本公开的范围内。本领域普通技术人员应当理解,尽管在此公开了一个或多个实施例的具体细节,但是所描述的这样的具体细节不是必须是每个实施例的一部分。
图1是可以实现VDN系统和/或方法的某些实施例的示例环境即订户电视网络100的框图。订户电视网络100可以包括多个个别的网络,诸如无线网络和/或有线网络,包括广域网(WAN)、局域网(LAN)等等。订户电视网络100包括头端(headend)110,头端110接收(和/或生成)至少部分源发自一个或多个服务提供商的视频内容、音频内容和/或其它内容(例如数据),处理和/或存储该内容,并且将该内容通过通信介质116递送至一个或多个客户端设备118至120。头端110包括具有视频压缩功能的编码器114以及前期处理器或VDN系统200,所述前期处理器或VDN系统200被配置为接收原始视频序列(例如未经压缩的视频帧或图片),原始视频序列的至少一部分被噪声损坏了。这样的噪声可以是经由相机传感器从先前已编码的帧引入的(例如,通过产生原始视频的在前编码处理等来源引入的伪影)。VDN系统200被配置为对视频序列的每个图片或帧进行去噪,并将已去噪的图片或帧提供给编码器114,其中的益处之一是使得编码器能够比带噪帧被输入编码器时编码更少的比特。在一些实施例中,原始视频序列的至少一部分可以绕过VDN系统200并被直接馈送至编码器114中。
贯穿本公开,术语图片和帧可交换使用,在一些实施例中,未经压缩的视频序列可以以数字格式被接收,并且在一些实施例中,数字化可以在VDN系统200中被执行。在一些实施例中,VDN系统200可以包括可物理地和/或容易地从编码器114解耦的组件(例如,诸如以适合编码器114的插槽或插座的插卡的形式)。在一些实施例中,VDN系统200可以被集成到编码器114中(例如,诸如被集成到专用集成电路或ASIC中)。虽然在此被描述为头端组件或设备的前期处理器,但是在一些实施例中,VDN系统200可以与编码逻辑一起位于客户端设备(诸如客户端设备118)处,或位于网络内的其他位置,诸如位于集线器或网关处。
头端110还可以包括其它组件,诸如QAM调制器、路由器、桥接器、因特网服务提供商(ISP)设施服务器、专用服务器、按需服务器、多媒体消息传送服务器、节目指南服务器、网关、多路复用器和/或发送器等等本领域技术人员公知的装置、组件和/或设备。在客户端118至120与头端110之间的因特网协议(IP)分组通信可以根据多种不同协议中的一种或多种来实现,诸如用户数据报协议(UDP)/IP、传输控制协议(TCP/IP)等。
在一个实施例中,客户端118至120包括机顶盒,机顶盒被耦接到或集成到显示设备(例如电视机、计算机监视器等等)或其它通信设备并经由有线连接(例如经由来自一个抽头的同轴电缆)或无线连接(例如卫星)被进一步耦接到通信介质116(例如混合光纤同轴(HFC)介质、同轴的、光学的、双绞线等等)。在一些实施例中,头端110与客户端118至120之间的通信包括经由同一通信介质116(内容是经由该通信介质116从头端110接收的)的双向通信,或经由单独的连接(例如电话连接)的双向通信。在一些实施例中,通信介质116可以包括有线介质、无线介质、或无线介质和有线介质的组合,例如包括非限制性示例以太网、令牌环、专用或专有网络等等。客户端118至120因此可以包括许多设备中的一个,诸如蜂窝电话、个人数字助理(PDA)、计算机设备或系统,诸如膝上型笔记本、个人计算机、机顶盒终端、具有通信能力的电视机、DVD/CD刻录机等。其它网络被认为在本公开的范围内,包括使用与其它传输协议或标准结合的和/或兼容的分组的网络。
VDN系统200可以以硬件、软件、固件或它们的结合被实现。在VDN系统200某些实施例或其一部分在一定程度上以软件或固件实现时,用于执行VDN系统200的一个或多个任务的可执行指令被存储在存储器或其它适合的计算机可读介质中并且由适合的指令执行系统执行,在此文档的语境中,计算机可读介质是能够包含或存储供计算机相关系统或方法使用或与计算机相关系统或方法相关联地使用的电的、磁的、光的或其它的物理设备或装置。
在VDN系统200的某些实施例或其一部分在一定程度上以硬件实现时,VDN系统200可以利用以下技术中的任意技术或组合被实现,这些技术在本领域是公知的,并且如下:具有用于在数据信号上执行逻辑功能的逻辑门电路的(一个或多个)离散逻辑电路,具有适当的组合逻辑门电路的专用集成电路(ASIC)、诸如(一个或多个)可编程逻辑门阵列、现场可编程逻辑门阵列(FPGA)之类的可编程硬件,等等。
已经描述了可以采用VDN系统200的示例环境,关注图2A-图2C,图2A-图2C包括示意性地示出由VDN系统和方法的各个示例实施例执行的数据流和/或处理的示意图。从图2A到图2B然后到图2C的处理表示处理复杂度的降低,并且因此贯穿这些示图的类似处理用相同数字标号和字母或字母数字后缀(例如a、b和c或a-1等)来表示,这些标号和后缀可以根据组件或所表示的系统200的复杂度是否存在改变或降低来针对给定组件或图表而在每个示图进行改变。此外,在图2A的组件220a上方示出的(并且同样地与其它示图相关联地被示出和描述的)每个“F”(例如F0、F1等)被用来表示还没有被与参考帧(F4)匹配的帧,并且每个“M”(例如M1、M2等)被用来表示已经被(例如与参考帧)匹配的帧。注意,对于图2A至图2C使用的术语“组件”并不意味着处理被限制于单个电组件或这些示图中示出的每个“组件”必需是分离的实体。而是,在这些示图中示出的术语“组件”图面地表示在VDN系统实施例中所执行的给定处理,并且当块被用来描述图像或像素块时替代“块”使用来避免与术语“块”混淆。
总体上,图2A中标为200a的VDN系统实施例可以细分为帧匹配210a、重叠块处理250a和后期处理270a。在帧匹配210a中,全部帧被一次匹配(例如,单次或单个处理阶段),因此在重叠块处理250a的执行期间不需要被匹配。换而言之,帧匹配处理210a中的块匹配是与重叠块处理250a解耦的(例如,在帧匹配处理中在没有进行块重叠的情况下对块进行匹配),因此,针对给定视频序列匹配全部帧并完成此事是在针对该给定视频帧开始重叠块处理250a之前进行的。(例如,党相比于将重叠块处理250a与帧匹配210a集成时)通过将帧匹配210a与重叠块处理250a解耦,当重叠块处理250a在水平和垂直方向上都具有s=1像素的步进大小时,块匹配被简化六十四(64)的因子。如果步进大小s=2,则块匹配被简化十六(16)的因子。本领域普通技术人员应当理解,各种步进大小被认为在本公开的范围内,其中对步进大小的选择是基于诸如可用计算资源和视频处理性能(例如基于PSNR的评估等)的。
组件220a中示出八(8)个输入邻接帧F0(t)至F7(t)(以上每个符号帧被表示为F0、F1等)。这八(8)个邻接帧对应于接收的多帧原始视频序列。换而言之,这八(8)个邻接帧对应于帧的时间序列。例如,原始视频序列的帧按照呈现输出顺序(该顺序可以不同于这些帧的压缩版本在头端110的输出处的发送顺序)被排列。在一些实施例中,不同应用和/或帧的不同排列被认为在本公开的范围内。注意,在一些实施例中,在处理启动时,可以使用少于或多于8帧的数量。帧匹配(例如,到图4)在2A至图2C中用带箭头的线象征性地表示,例如如组件220a中所示(例如从F0至F4等)。如带箭头的线所示,帧F0(t)至F3(t)被与F4(t)匹配,这意味着:块(例如,像素块或图像块,诸如8x8、8x4等)已经通过如下所述的运动估计/运动补偿处理被从与F4(t)中的块最紧密匹配的那些帧中被选出。帧匹配的结果是帧M0(t)至M7(t)的集合,其中M4(t)=F4(t),如组件230a中所示。帧M0(t)至M7(t)全都是F4(t)的估计,其中M4(t)=F4(t)是完美匹配。M4(t)和F4(t)在此可交换使用。
重叠块处理250a用组件252(在此也称为匹配带噪块群组或类似物)、254(在此也称为3D去噪或类似物)、256(在此也称为去噪块群组或集合或类似物)和260a(在此也称为(一个或多个)像素累积缓冲器)象征性地表示。重叠块处理250a移动到每个已匹配帧(matched frame)中的像素位置i,j(例如相同的、共址的、或共同的像素位置),并且对于每个环路,从每个已匹配帧M0至M7取8x8带噪块b(i,j,t)(例如,240a),其中带噪块的左上角位于像素位置i,j,使得b(i,j,t)=Mt(i:i+7,j:j+7)。注意,i,j是在整个帧上变化的垂直和水平索引,在重叠处理环路中指示位置。例如,对于步进大小s=1,i,j取该帧中的每个像素位置(不包括7个像素的边界)。对于步进大小s=2,i,j每隔一个像素地取像素位置。此外,还应注意,8x8被用作示例块大小,应当理解,在重叠块处理250a的一些实施例中,可以使用其它块大小。八(8)个带噪8x8块的群组(252)也被表示为b(i,j,0:7)。注意,八(8)个带噪块b(i,j,0:7)(252)是从已匹配帧中的相同相位位置i,j取来的,这是因为帧对准(作为帧匹配210a的一部分)先前已被完成。帧匹配210a是与重叠块处理250a解耦的。
3D去噪254包括前向和反向变换(例如2D后跟随1D)以及阈值转换(例如1D和/或2D)(以下进一步说明)。一般,在3D去噪254中,在每个8x8带噪块(252)上执行2D变换,随后在经2D变换的块上执行1D变换。在阈值转换之后,结果被反向变换回(例如,1D,然后2D)像素块。该结果是八(8)个去噪块bd(i,j,0:7)的集合(256)。
对于每个环路,存在八(8)个去噪块bd(i,j,0:7)(256),但是在一些实施例中,不是bd(i,j,0:7)的全部块都被累积到像素累积缓冲器260a,像素累积缓冲器260a用帧和以虚像(虚线)表示的驻留其中的块而象征性地表示。而是,像素累积缓冲器260a包括这里所谓的2D+c累积缓冲器260a,其中c表示与用于除用于4A的缓冲器以外的其它去噪块的对应帧的缓冲器的数目相对应的整数值。2D累积缓冲器仅对应于使用bd(i,j,4)累积的A4(参考帧)(例如,与帧A4相对应的去噪块bd(i,j,4)被累积)。在此示例中,与c=1对应的另一缓冲器被示出正被累积,而c=1缓冲器对应于与帧AM7相对应的去噪块bd(i,j,7)。因此,对于八(8)帧窗口,2D+7累积缓冲器等于3D累积缓冲器。此外,应当注意,使用2D+1累积缓冲器在时间维度上类似于在空间维度上使用步进大小s=4(即,累积是在时间上被抽取(decimated)的)。相应地,c可以基于期望的视觉性能和/或可用计算资源而(例如从0到所限定的整数)变化。然而,在一些实施例中,包括来自多个重叠块的去噪块的3D累积缓冲器是针对所有帧被累积的。
在重叠块处理250a中,块bd(i,j,4)和bd(i,j,7)被累积在像素累积缓冲器260a中的像素位置i,j处,因为该累积是在已匹配帧域中被执行的,避开了重叠块处理环路250a内对反向块匹配的任何需要。此外,针对所有去噪块的统一加权(例如w(i,j)=1,或者完全没有加权)被执行,这明显降低了复杂度。注意在一些实施例中,可以执行不统一的加权。注意,在一些实施例中,可以实现用于两个以上的帧的缓冲器(例如c>1)。对于2D+1缓冲器,当它变为A7时,帧开始去噪。因为对于2D+1累积缓冲器260a,存在用于A7的累积缓冲器。当它变为A4时,A7接收去噪的第二次(2nd)迭代。二者如在后期处理270a中所示地合并(以下进一步说明)。
从累积缓冲器260a开始,执行后期处理270a,后期处理270a在一个实施例中包括如下处理:反向帧匹配272(例如,在反向帧匹配模块或逻辑中被执行)、延迟274(例如,在延迟模块或逻辑中被执行)以及合并和正规化276(例如,在合并和正规化模块或逻辑中被执行)。因为在一个实施例中,与AM7相对应的累积缓冲器在已匹配帧域中(例如,与帧4匹配的帧7),在重叠块处理完成之后,数据流进行到反向帧匹配272来与AM7(t)进行反向帧匹配以获得A7(t)。如所述,该操作在重叠块处理250a之外发生一次。在此示例中,A7(t)随后被延迟3帧,并且被合并(添加)和正规化176成A4(t)(用带箭头的虚线表示)以输出FD4(t),即去噪帧。如果反向帧匹配272已经在重叠块处理250a中被执行,则相比于针对步进大小s=1示出的实现,反向帧匹配将移动因子64以上的块,而相比于针对步进大小s=2示出的实现,反向帧匹配将移动因子16以上的块。
最终,在每个被累积的帧的各自的块已经根据重叠块处理250a的多次迭代被累积之后,在一些实施例中,已去噪和已处理的帧FD4被输出给编码器或其它处理设备。如以下进一步说明的,在与帧匹配210a相对应的帧序列中施加时间偏移从而一帧(例如F0)被移除并且附加帧(未示出)被添加,以用于根据第二或后续时间帧序列或时间序列(与在该示例中讨论的第一八(8)帧(F0-F7)相关联的第一时间序列)进行帧匹配210a以及后续去噪。相应地,在帧处理的一次迭代之后(例如,帧匹配210a加上重叠块处理250a的反复迭代或环路),如图2A的示例中所示,FD4(t)作为F4(t)的去噪版本被输出。如上所述,帧F0(t)至F7(t)全部偏移一帧(在此也称为被时间偏移)以使得F0(t+1)=F1(t),F1(t+1)=F2(t)等,并且新的帧F7(t+1)(未示出)进入帧匹配210a的“窗口”(组件220a)。注意,在一些实施例中,更大数目的偏移可以被实现以达到下一时间序列。此外,在t+1处不再需要F0(t),因此一帧离开该窗口(例如,组件220中概示的帧数量)。对于8帧的情况,作为一个非限制性示例,存在八(8)帧的启动延迟,并且因为需要三(3)个未来帧来对F4(t)和F5至F7去噪,所以存在一般三(3)帧的延迟。
现在参考图2B,示出标为200b的VDN系统实施例,其相对于图2A中所示的VDN系统实施例200a具有被进一步降低的计算复杂度。图2B中的简化至少部分是2D+1累积缓冲器260a经修改的1D时间变换的结果,以下将进一步说明。在以上对图2A中的2D+1的累积缓冲器260a的描述中,应当注意,2D+1的累积缓冲器260a仅需要用于去噪块bd(i,j,4)和bd(i,j,7)的缓冲器(例如两个)。因此,复杂度的进一步降低包括将剩余四(4)帧F0至F3“压折”成单个总和帧FSUM,并且将该总和帧与F4进行帧匹配,如帧匹配210b中所示,具体地,如图2B的组件220b中所示。压折成单个总和帧包括代表与图2A中所示的左手侧帧匹配210a的紧密逼近的操作。因为F0至F3先前在时刻t-4被一起匹配了,所以在那些个别的帧上就不需要匹配操作了。而是,帧匹配210b从时刻t-4开始将总和FSUM与F4匹配,其中,
FSUM ( t - 4 ) = Σ j = 4 7 Mj ( t - 4 ) FSUM ( t - 4 ) = Σ j = 4 7 Mj ( t - 4 )
等式(1)
等式(1)意味着FSUM(t)是四(4)个已匹配帧F4至F7(在时刻t,它们被标示为M4(t)至M7(t))的总和,并且在四(4)帧(t-4)之后被用作对3D变换中的左边(最早的)四(4)帧的贡献。相对于帧F5和F6进行类似类型的简化。在四(4)帧F0至F3被简化为一个FSUM帧,并且F5和F6被简化为单个帧,并且随后被与F4(t)匹配之后,仅存在四(4)个已匹配帧,即组件230b中所示的MSUM(实际上MSUM0123)、M4、M5+6和M7,因此,整个重叠块处理250b仅使用四(4)个已匹配帧(b(i,j,4:7))来继续。需要与F4(t)匹配的总帧数从图2A中的VDN系统实施例200a中的七(7)被减少为图2B的VDN系统实施例200b中的三(3)。换而言之,重叠块处理250b接收八(8)帧的等同物作为输入,因此使用更少数目的帧估计获得了八(8)帧的益处。
图2C是VDN系统实施例200c的框图,VDN系统实施例200c图示出从图2A至图2B中的系统实施例对复杂度的进一步降低,重点放在标为260b的累积缓冲器处。简而言之,累积缓冲器260b包括2D累积缓冲器,其消除了反向运动补偿的需要并且将后期累积处理270b的复杂度降低为正规化块。在此实施例中,帧不需要被重新排列到帧匹配(例如组件220b)中(如以上关联图2B所述)。而是,如帧匹配210c中所示,F7被与F6匹配,并且结果被相加到一起来获得FSUM67。使用来自之前两(2)帧的运动向量,F5被与F4匹配(当F5、F4在时间上原本分别位于F7和F6处时),因此这种方式的帧匹配在图2C中的组件220c中被示作F4与F5之间的虚线。如前所述,FSUM0123表示前四(4)帧已匹配并被加和到一起的四(4)帧。总而言之,用于2D累积缓冲器260b的帧匹配210c将三(3)帧与F4匹配:FSUM0123、FSUM67和F5。
已经示意性地描述了VDN系统200的某些实施例的示例处理,现在关注图3,图3包括VDN系统实施例200c-1的框图。应当注意,以下描述的体系架构和功能是基于与图2C相关联地描述的VDN系统实施例200c的,应当理解,本领域普通技术人员基于本公开的教导不需要过多实验就可以导出用于VDN系统实施例200a和200b的类似类型的体系架构和组件。VDN系统实施例200c-1包括帧对准模块310、重叠块处理模块350、累积缓冲器360以及正规化模块370(累积后处理)。应当注意,图2A至图2C中的帧处理250对应于由帧对准模块310执行的处理,并且重叠块处理250对应于由重叠块处理模块350执行的处理。另外,在图2C中,累积缓冲器360和正规化模块370执行分别与组件260和270对应的处理。注意,在一些实施例中,功能可以被组合到单个组件中或分布在更多或不同的模块中。
如图3中所示,帧对准模块310接收多个视频帧F4(t)、F6(t)和F7(t),其中F4(t)是时间上最早的帧,并且t是随着每帧递增的时间索引。帧FSUM0123(t)=FSUM4567(t-4)表示第一四(4)帧F0(t)至F3(t)(F4(t-4)至F7(t-4)),第一四(4)帧F0(t)至F3(t)先前在时刻t=t-4已经被与帧F0(t)(F4(t-4))匹配。注意,对于隔行视频,帧可以被分离成场并且VDN系统实施例200c-1可以无耦合地在同奇偶性的场上(例如顶部或底部)分别运行(例如,分离的信道,诸如顶部信道和底部信道),如本领域普通技术人员在本公开的语境中应当理解的那样。贯穿本公开,术语“帧”基于如下理解被使用:帧实际上可以是在处理中没有差异的单个的场。帧对准模块310制作如下帧以供重叠块处理模块350处理(以下详细描述其细节):M4(t)、MSUM67(t)、M5(t)和MSUM0123(t)。
在继续描述重叠块处理模块350之前,帧对准模块310的示例实施例在以下被说明并在图4A和图4B中被示出。图4A中示出的帧对准模块310a的一个示例实施例接收帧F4(t)、F6(t)、F7(t)和FSUM0123(t)。应当注意,M5(t)与M76(t-2)相同,M76(t-2)与M54(t)相同。F7(t)在帧匹配模块402处被与F6(t)帧匹配,产生M76(t)。在两(2)帧的延迟(404)之后,M76(t)变为M54(t),M54(t)与M5(t)相同。注意,被标为“延迟”并且在图4A至图4B中用虚线(虚线)示出的块意在表示通过给定操作(诸如对存储器的存取)而施加的延迟。F6(t)在加算器406处被与M76(t)相加,产生FSUM67(t)。FSUM67(t)被乘以2并在加算器410处被与F4(t)和M5(t)相加,产生FSUM4567(t)。FSUM4567(t)可以被视为是全部被与F4(t)匹配并被与F4(t)相加到一起的帧F5(t)至F7(t)。FSUM4567(t)被延迟(412)四(4)帧,产生FSUM0123(t)(即FSUM4567(t-4)=FSUM0123(t))。FSUM0123(t)在帧匹配模块414处被与F4(t)帧匹配,产生MSUM0123(t)。相应地,帧对准模块310a的输出包括以下帧:MSUM0123(t)、M4(t)、M5(t)和MSUM67(t)。
本领域普通技术人员应当理解,在本公开的语境中,与图4中所示的处理等同的帧处理可以通过在处理中施加不同的延迟从而使用作为输入的给定时间序列的帧的不同时间序列来实现。例如,如图4B中所示,对于帧对准模块310b,与从FSUM87(t)导出帧F6(t)和F7(t)相对应的额外帧延迟416可以被插入,产生帧FSUM67(t)。所有其它模块功能如以上关联于图4A所描述的一样,并且因此在这里为了简要而被省略。与图4A相关联地描述的实施例的变形例使得所有帧匹配操作能够在存储器之外工作。
诸如帧匹配模块402之类的帧匹配模块的一个示例实施例在图5中被示出。应当理解,对帧匹配模块402的讨论和配置同样适用于帧匹配模块408和414,虽然不一定被限制于相同的配置。帧匹配模块402包括运动估计(ME)和运动补偿(MC)功能(在此也分别称为运动估计逻辑和运动补偿逻辑),并被进一步细分为亮度ME 502(也称为亮度ME逻辑等)、色度ME 504(也称为色度ME逻辑等)、亮度MC 506(也称为亮度MC逻辑等)和色度MC 508(也称为色度MC逻辑等)。在一个实施例中,亮度ME 502包括二项式滤波器510(在此也称为像素滤波器逻辑)、抽取器(decimator)512(在此也称为抽取器逻辑)、已抽取块匹配(DECBM)514(在此也称为已抽取块匹配逻辑)、全面像素块匹配(BM)模块516(在此也称为全面像素块匹配逻辑)以及亮度细化(refinement)BM模块518。亮度MC 506包括亮度MC模块522,并且色度MC508包括色度MC模块524。
帧匹配模块402取两个视频帧作为输入,其中一个视频帧包括亮度和色度数据,亮度和色度数据是公知的CCIR-601 4:2:0格式和4:2:2格式中的任一者,但是不限于这些格式,在一些实施例中,帧匹配模块402可以接收其它类型的格式中的专有格式。对于4:2:0格式,色度包括在垂直和水平两个方向上都以因子2被二次采样的两个信道。对于4:2:2格式,色度仅在水平方向上被二次采样。亮度输入在图5中被表示为LREF和LF,LREF和LF分别表示参考帧亮度以及与将被与参考匹配的帧亮度。同样地,对应的色度输入被表示为CREF(参考)和CF(与参考匹配的帧)。帧匹配处理的输出时包括亮度(LMAT)数据和色度(CMAT)数据的帧。例如,根据与图2C、图3A和图5相关地描述并在其中被示出的实施例,LREF、CREF、LF、CF和LMAT、CMAT对应于下表1中给出的帧的集合:
表1-经历帧匹配的帧的集合
一般,帧匹配模块402采用的一种方式是在亮度信道中对像素块(例如8x8)执行块匹配,并且从亮度信道的块匹配输出估计向量以在色度信道中再使用。在一个实施例中,参考图像LREF被分割成8x8的不重叠块的集合。对于将被匹配的LREF的每个8x8块,帧匹配的最终结果是非参考帧LF中的运动向量集合。每个运动向量表示与LREF的给定8x8块最紧密匹配的LF中的8x8像素块。亮度像素在块匹配之前被利用二项式滤波器进行滤波并被抽取。
亮度ME 502包括用于提供以下功能的逻辑:对噪声的滤除、对滤波后的块进行粗略块匹配(使用降低计算复杂度的多级或多阶段分层方式)以及使用未被抽取的像素块和从粗略块匹配处理的候选导出的并被应用于输入帧的未经滤波的像素的最终运动向量来进行已细化块匹配。参考图5来更详细地进行说明,亮度输入(LREF,LF)在二项式滤波器510、亮度细化BM模块518和亮度MC模块522处被接收到。二项式滤波器510处理该数据并产生全面像素亮度(BF_LF,BF_LREF),每个亮度图像具有NverxNhor的大小。二项式滤波器510按照如下等式来执行每个输入帧的2D卷积:
BF _ X ( i , j ) = Σ m = - 1 1 Σ n = - 1 1 x ( m , n ) G ( i - m , j - n ) ,
等式(2)
其中,x(0:Nver-1,0:Nhor-1)是大小为NverxNhor的输入图像,BF_X(i,j)是二项式滤波后的输出图像,并且G(m,n)是由如下等式给出的2D卷积核:
G ( i , j ) = 1 16 1 2 1 2 4 2 1 2 1
等式(3)
因此,LF和LREF二者都根据等式(3)被进行二项式滤波以分别产生BF_LF和BF_LREF,BF_LF和BF_LREF也被输入抽取器512和全面BM模块516。虽然二项式滤波器被描述为一个示例像素滤波器,但是在一些实施例中,本领域普通技术人员应当理解,在无需过多实验的情况下就可以采用其它类型的滤波器。
BF_LF和BF LREF在抽取器512处被接收到,抽取器512在一个实施例中在垂直和水平方向上都执行函数为2的抽取以分别产生BF_LF2和BF_LREF2。抽取器512的输出包括已被滤波、已被抽取的亮度数据(BF_LF2,BF_LREF2),其中亮度图像中的一个具有Nver/2xNhor/2的大小。因此,如果LF和LREF的大小都是NverxNhor的大小,则BF_LF2和BF_LREF2的大小是Nver/2xNhor/2像素。在一些实施例中,抽取的其它因子或函数可以被使用,或者在一些实施例中,不使用抽取。
已抽取并已被二项式滤波的亮度像素BF_LF2和BF_LREF2被输入DECBM模块514,DECBM模块514对已被滤波并且已被抽取的数据(BF_LF2,BF_LREF2)执行已抽取块匹配。在一个实施例中,DECBM模块514对BF_LREF2的4x4块应用4x4块匹配来对应于BF_LREF的8x8块。换而言之,已抽取域中的4x4像素块对应于未抽取域中的8x8块。DECBM模块514将BF_LREF2分割成由以下等式给出的4x4块的集合:
BREF2(i,j)=BF_LREF2(4i:4i+3,4j:4j+3)
                                          等式(4)
其中, i = 0,1 , . . . N hor - 1 4 并且 j = 0,1 , . . . N ver - 1 4 .
假定BF LREF2在垂直方向和水平方向上都可被四(4)除。等式(4)中的4x4块BREF2(i,j)的集合包括被分割为不重叠4x4块的BF_LREF2的所有像素。DECBM模块514的函数用于将这些块中的每个块与BF_LF2中最相似的块匹配。
对于BREF2(i,j)处的4x4块的每一个,在一个实施例中,DECBM模块514用BF_LF2的+24水平乘+12垂直的搜索区域(对于总共49x25的已抽取像素区域)上进行搜索来寻找与当前4x4块最紧密匹配的4x4像素块。在一些实施例中,被不同地配置的(例如,24x12之外的)搜索区域被构想到。BF_LF2的搜索区域与将被匹配的块BREF2(i,j)共址,换而言之,搜索范围BF_LF2_SEARCH(i,j)可以用以下等式定义:
BF_LF2_SEARCH(i,j)=BF_LF2(4i:4i±12,4j:4j±24)
                                              等式(5)
等式(5)将搜索范围定义为(i,j)的函数,其中心位于共址块BF_LF2(4i,4j),与在BF_LREF2(4i,4j)或等同地BREF2(i,j)中一样。对于在帧的边界附近的块,其中不存在负的或正的偏移,搜索范围可以被截短(truncate)。BF_LF2_SEARCH(i,j)中的任意像素位置处的任意4x4块是候选匹配。因此,整个搜索区域被遍历,以提取4x4块,测试匹配,并随后水平地移动一(1)个像素或垂直地移动一(1)个像素。本领域普通技术人员公知该操作是“全面搜索”块匹配或“全面搜索”运动估计。
在一个匹配标准中,其中的一种匹配标准根据以下等式6被定义为BF_LF2搜索区域中的候选块与将被匹配的当前BREF2块之间的4x4加和绝对差(SAD):
SAD 4 x 4 ( y , x ) = Σ u = 0 3 Σ v = 0 3 | BF _ LF 2 ( 4 i + y + u , 4 j + x + v ) - BREF 2 ( i + u , j + v ) |
等式(6)
其中,-24≤x≤24,-12≤y≤12。使等式(6)中的SAD 4x4函数最小化的y和x的值定义BF_LF2的最佳匹配块。在垂直(y)和水平(x)方向上对当前BREF2块的像素偏移定义了相对于最佳匹配块的运动向量。如果运动向量用mv表示,则mv.y表示运动向量垂直方向,并且mv.x表示水平方向。注意,贯穿本公开,参考针对距离或差测量值的SAD计算和SAD。本领域普通技术人员应当理解,在一些实施例中可以使用本领域普通技术人员公知的差测量值中的诸如平方和误差(SSE)之类的其它这样的差测量值,因此,在此描述的示例实施例和/或被认为在本公开的范围内的其它实施例不限于基于SAD的差测量值。
在一个实施例中,DECBM模块514不仅可以存储最佳运动向量,也可以存储最多N_BEST_DECBM_MATCHES个候选运动向量的集合,其中,N_BEST_DECBM_MATCHES是具有大于或等于1的整数值的参数。例如,在一个实施例中,N_BEST_DECBM_M_ATCHES=3。当DECBM模块514遍历搜索区域时,根据等式(6)计算SAD 4x4,DECBM模块514通过存储与那些块和SAD 4x4值相关联的运动向量(x和y值)来保持对N_BEST_DECBM_MATCHES的跟踪(例如最少SAD 4x4块)。在一个实施例中,只要一个块在水平方向或垂直方向上的距离比从任意其它所保存的运动向量开始大1,则该块被包括在N_BEST_DECBM_MATCHES中。DECBM模块514的输出是与N_BEST_DECBM_MATCHES相对应的运动向量的集合(MV_BEST),这些运动向量被输入全面像素BM模块516。在一些实施例中,除了MV_BEST,DECBM模块514还添加以下两个运动向量候选中的一个或多个。如果他们还没有在MV_BEST集合中的话:零运动向量和/或相邻块(例如,位于上一行的块)的运动向量。例如,如果N_BEST_DECBM_M_ATCHES=3,这意味着从DECBM模块514出来三(3)个候选运动向量,则总共的候选运动向量是五(5)个(来自DECBM模块SAD 4x4运算的三(3)个加上零运动向量再加上相邻运动向量)。因此,在此示例中,如果N_BEST_DECBM_MATCHES=3,则总共的候选运动向量是五(5)个。
DECBM模块514从搜索中省略作为候选运动向量输出的零向量(mv.x=0,mv.y=0)和零向量的一个像素内的任何运动向量,这是因为在一个实施例中,除了来自DECBM模块514的候选运动向量以外,零向量也总是被输入下一阶段处理。因此,如果N_BEST_DECBM_MATCHES=3,则三(3)个运动向量由非零运动向量组成,因为任何零运动向量被从搜索中省略了。任何零运动向量被包括来作为DECBM模块514的输出中增加的运动向量中的一个。在一些实施例中,零向量不被输入到下一阶段和/或不被从搜索中省略。
全面像素BM模块516接收候选运动向量的集合MV_BEST,并且使用已被滤波的并且已被抽取的帧(BF_LF,BF_LREF)来执行有限的全面像素块匹配。换而言之,除了将如上所述的零运动向量和来自相邻块的运动向量取作输入以外,全面像素BM模块516还将在DECBM模块执行处理中获得的运动向量取作输入,并且从候选集合中选择单个已细化运动向量。在一些实施例中,相邻的运动向量未被包括作为候选。
全面像素BM模块516的实施例的操作被描述如下。全面像素BM模块516如下将BF_LREF分割成与BF REF2中的4x4块对应的8x8块:
BREF(i,j)=BF_LREF(8i:8i+7,8j:8j+7)
                                       等式⑺
其中, i = 0,1 , . . . N hor - 1 8 并且 j = 0,1 , . . . N ver - 1 8 .
BREF是包括与BREF2 4x4块具有直接对应关系的完整亮度帧BF_LREF的不重叠8x8块的集合。全面像素BM模块516接收来自DECBM模块514的MV_BEST运动向量和全面像素(未被抽取)的经二项式滤波的亮度BF_LREF和BF_LF。
到全面像素BM模块516的输入MV_BEST可以按照如下集合表示:MV_BEST={mv_best(0),mv_best(1),...mv_best(N_BEST_DECBM_MATCHES-1)}。全面像素BM模块516按照以下等式(8)通过将x和y坐标乘以2来将输入运动向量缩放成全面像素:
mvfull(k).x=2×mv_best(k).x    0≤k<
N_BEST_DECBM_MATCHES,
mvfull(k).y=2×mv_best(k).y    0≤k<
N_BEST_DECBM_MATCHES
                                          等式(8)
其中,0≤k≤N_BEST_DECBM_MATCHES-1。注意,零运动向量和相邻块运动向量不需要进行缩放,这是因为零不需要缩放,而相邻块运动向量已经被缩放了(源发自全面像素BM模块516)。在被缩放为全面像素之后,全面像素BM模块516通过根据等式(9)计算在被缩放的运动向量周边的确定的已细化运动向量5x5细化搜索中的8x8全面像素块的最小SAD,来从对应的候选运动向量mvfull(k)中确定已细化的运动向量mvrfull(k):
SAD 8 x 8 ( i , j , mvfull ( k ) . y + m , mvfull ( k ) . x + n ) =
Σ u = 0 7 Σ v = 0 7 | BF _ LF ( 8 i + mvfull ( k ) . y + n + u , 8 j + mvfull ( k ) . x + m + v ) - BREF ( i + u , j + v ) |
等式(9)
其中-2≤m≤2,-2≤n≤2。注意,本领域普通技术人员应当理解,在本公开的语境中,除5x5以外的细化搜索范围是可以的,并且因此可以被构想以用于一些实施例。对于候选集合中的每个运动向量使等式(9)最小产生(N_BEST_DECBM_MATCHES+2)个已细化候选运动向量mvrfull(k),其中0≤k<(N_BEST_DECBM_MATCHES+2).全面像素BM模块516通过根据以下等式比较已细化运动向量的SAD来从已细化运动向量中选择最终的胜出运动向量:
[ kf ] = Min k { λ * MVDIST ( k ) + DISTBIAS ( k ) + SAD 8 x 8 ( i , j , mvrfull ( k ) . y , mvrfull ( k ) . x ) }
等式(10)
其中,
kf=作为胜出者的已细化运动向量的索引;
MVDIST(k)=min(dist(mvrfull(k),0),dist(mvrfull(k),mvfull(B)));
mvrfull(B)=相邻块的胜出运动向量;
dist(a,b)=运动向量a与b之间的距离;
min(x,y)=x和y中的最小值
DISTBIAS(k)=0(对于MVDIST(k)<12),20(对于MVDIST(k)<20),40(对于其它情况)
λ=操作参数,例如λ=4
换而言之,运动向量越大,用于将该越大的运动向量判定为胜出候选者的SAD值越低。例如,包括仅低一点点的SAD值的胜出者有可能产生随机运动向量。上述12、20和40的值对于越来越大的运动向量强制实施增强的判定(越低的SAD值)。在一些实施例中,其它值和/或这些值之间的其它相关差可以被使用(例如,1,2,3 or 0,10,20等)。因此,来自全面像素BM模块516的全面像素块模式操作的最终运动向量结果由下式给出:
mvf(i,j).x=mvrfull(kf).x
mvf(i,j).y=mvrfull(kf).y
                                 等式(11)
如果与等式(11)的最佳运动向量相对应的等式(9)的SAD值在阈值T_SAD之上,则块被标志为损坏块(例如BAD_MC_BLOCK)使得替代复制由搜索帧中的运动向量指示的块,运动补偿处理(以下描述)改为复制参考帧的原始块。
全面像素BM模块516的结果输出包括被输入亮度细化BM模块518的每个不重叠块的单个精细运动向量MVF。亮度细化BM模块518(类似于全面像素BM模块516)使用8x8块匹配,这是因为其接收全面(未被抽取)的图像作为输入。即,亮度细化BM模块518使用原始未经滤波的帧数据(LREF,LF)来细化运动向量,或者更具体地,将在全面像素BM模块516中获得的运动向量MVF的集合取作输入并且使用原始未经滤波的像素来细化运动向量。进一步进行说明,亮度细化BM模块518根据以下等式将原始带噪LREF分割成与BF_REF中8x8块相对应的8x8不重叠块:
REF(i,j)=LREF(8i:8i+7,8j:8j+7)  等式(12)
其中, i = 0,1 , . . . N hor - 1 8 并且 j = 0,1 , . . . N ver - 1 8 .
REF是包括与BREF 8x8块有直接对应关系的完整亮度帧LREF的的不重叠8x8块的集合。对于REF中将被匹配的每个块,存在来自全面像素BM模块516的全面像素块模式操作的运动向量(例如,mvf(i,j))。在一个实施例中,mvf(i,j)周围的1像素细化以使得以下等式最小的m和n进行:
SAD 8 x 8 ( i , j , mvf ( i , j ) . y + m , mvf ( i , j ) . x + n ) =
Σ u = 0 7 Σ v = 0 7 | LF ( 8 i + mvf ( i , j ) . y + u + n , 8 j + mvf ( i , j ) . x + v + m ) - REF ( i + u , j + v ) |
等式(13)
其中,-1≤m≤-1,-1≤n≤-1。在一些实施例中,除了一(1像素)以外的像素细化可以在一些实施例中被使用,或者在一些实施例中被省略。针对位置i,j处的块的已细化运动向量分别由使得等式(13)最小的m和n的值mref和nref给出。
mvr(i,j).x=mvf(i,j).x+mref mvr(i,j).x=mvf(i,j).x+mref
mvr(i,j).y=mvf(i,j).x+nref mvr(i,j).y=mvf(i,j).x+nref
                                             等式(14)
其中, i = 0,1 , . . . N hor - 1 8 并且 j = 0,1 , . . . N ver - 1 8 .
MVRL(在此也被称为(一个或多个)已细化运动向量)表示用于从亮度细化BM模块518输出的亮度信道的已细化运动向量mvr(i,j)(例如,对于i=0,8,16,...Nver-7;j=0,8,16,...NHor-7)的完备集合。换而言之,MVRL表示代表整个帧的每个不重叠8x8块的运动向量的集合。
MVRL被亮度MC模块522和色度细化BM模块520使用。参考色度细化BM模块520,已细化运动向量MVRL在色度细化BM模块520处被接收,色度细化BM模块520基于输入CF和CREF来执行色度信道中的已细化块匹配。对于4:2:0视频格式,当色度被以因子2在水平和垂直方向的每一个上二次采样时,色度细化BM模块520执行4x4全面像素块匹配。即,色度(Cb和Cr二者)块直接对应于亮度8x8块。使用MVRL输入,色度细化BM模块520针对Cb和Cr帧二者以与上述由亮度细化BM模块518执行的处理类似的方式但是使用4x4块而不是8x8块,使用SAD4x4而不是SAD 8x8匹配标准,来执行围绕MVRL输入运动向量的1像素细化。运动向量的结果集合是用于Cb的MVRCb和用于Cr的MVRCr(在图5中总地示作MVRC),它们被输入色度MC模块524来执行运动补偿。
运动补偿是视频处理中用于从一帧产生另一帧的估计的公知方法(即,将一帧与另一帧“匹配”)。MVRL和MVRC被输入分别在亮度MC模块522和色度MC模块524处执行的运动补偿(MC)处理,亮度MC模块522和色度MC模块524导入由MVRL和MVRC运动向量指示的块。参考亮度MC模块522,在块匹配已经被如上所述地完成之后,LF帧通过复制由运动向量MVRL指示的LF中的块而被与LREF帧匹配。对于每个块,如果块已经被全面像素BM模块516标记为BAD_MC_BLOCK,不是复制来自LF帧的块,而是LREF中的参考块被复制。对于色调操作,在色度MC 508中使用用于Cb的MVRCb和用于Cr的MVRCr对4x4块执行相同的处理,并且因此为了简要省略对相同处理的讨论。注意8x8和4x4在以上被描述为不同的块大小,但是本领域普通技术人员将理解,在一些实施例中,可以使用除以上指定的那些块大小之外的块大小。
参考图3,已经描述了包括用于VDN系统实施例200c-1的帧对准模块310的各种模块或逻辑的示例实施例,关注重叠块处理模块350。一般,在帧匹配之后,重叠块处理模块350对重叠3D块去噪并累积结果,如与图2A至图2C相关联地说明的。在一个实施例中,通过在像素中以步进大小s(例如s=2)进行循环。重叠块处理水平移动直到j=NHor-1为止,此后,j被设置为0并且i被递增s。注意,在一些实施例中,七(7)个像素被添加到帧的边界周围来使得更宽的像素包括所有块。为了简化,三个像素可以是等于接触边界像素的DC值。
还是参考图3,重叠块处理模块350接收已匹配帧M4(t)、M5(t)、MSUM67(t)和MSUM0123(t),并且从这四(4)个帧中提取共址的8x8像素块。将在位于这四(4)个帧中的特定i,j像素位置处提取的四(4)个块表示为b(i,j,t),其中t=0..3,则在将块重新排序之后(以下在图6A至图6D中所示的1D变换的语境中说明),以下术语被描述:
b(i,j,0)是像素位置i,j处的来自MSUM0123(t)的8x8块
b(i,j,1)是像素位置i,j处的来自M4(t)的8x8块
b(i,j,2)是像素位置i,j处的来自M5(t)的8x8块
b(i,j,3)是像素位置i,j处的来自MSUM67(t)的8x8块
从i=0并且j=0即帧的左上角开始,2D变换模块304(在此也称为变换逻辑)提取四(4)个块b(0,0,0:3)并执行2D变换。即,对四(4)个时间块b(i,j,t)(0<t<3)中的每一个执行2D变换,其中,i,j是重叠块处理中的8x8块的左上角的像素位置。在一些实施例中,公知的变换中的2D-DCT、DWT等可以被用作空间变换。在下述实施例中,2D变换是基于高级视频编码(AVC)标准中定义的整数DCT的,整数DCT例如8x8AVC-DCT,其具有如下形式:
H(X)=DCT(X)=C·X·CT                     等式(15)
其中,
C = 8 8 8 8 8 8 8 8 12 10 6 3 - 3 - 6 - 10 - 12 8 4 - 4 - 8 - 8 - 4 4 8 10 - 3 - 12 - 6 6 12 3 - 10 8 - 8 - 8 8 8 - 8 - 8 8 6 - 12 3 10 - 10 - 3 12 - 6 4 - 8 8 - 4 - 4 8 - 8 4 3 - 6 10 - 12 12 - 10 6 - 3 · 1 / 8
X是8x8像素块,并且右边的乘积是矩阵乘积。用于计算DCT的一种方法是采用带符号的2的冥来计算乘算积。以这种方式,不需要硬件乘算器,而是,乘积通过移位和相加来创建从而简化了整个逻辑。在一些实施例中,可以使用硬件乘算器。另外,可以使用缩放因子,这也可以简化所需逻辑。为了取回原始像素(X),整数矩阵被缩放以使得由反向2D变换模块314执行的反向DCT产生X的原始值。反向变换模块314的反向AVC-DCT的一种形式包括如下:
X = ( C T · H ( X ) · C ) ⊗ S i , j
等式(16)
或者作为替换:
X = C s T · H ( X ) · C s
等式(17)
其中,并且符号表示元素与元素相乘。
可以使用的缩放因子的一个示例如下:
S i , j = 1 Σ i , j = 0 7 C ( i , j ) 2 = 0.0020 0.0017 0.0031 0.0017 0.0020 0.0017 0.0031 0.0017
等式(18)
在2D变换之后,重叠块处理模块350通过对从较低频率到最高频率的每个2D变换的输出进行锯齿式扫描(zig-zag scanning)来将空间维度从2D改为1D,因此,2D变换后的块bs(ij,f)变为bs(zz_index,f),其中,≤zz_index≤63,0≤f≤3。(i,j)到zz_index的映射由以下zig_zag_scan向量给出,其与MPEG-2视频编码中使用的扫描相同。在一些实施例中,2D维度可以被保留以用于进一步的处理。如果2D矩阵的第一行由元素0值7给出,第一行由8至16给出,则zig_zag_scan[0:63]指定2D到1D映射如下:
zig_zag_scan[0:63]=
{
  0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,
  12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,
  35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,
  58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63
};
在与2D变换的计算对应的时间(例如在该计算之后),时间模式(TemporalMode)被时间模式模块302(在此也称为时间模式逻辑)选择。当利用Haar 1D变换时,TemporalMode定义是否使能2D或3D阈值转换,哪个Haar子带是用于3D阈值转换的阈值以及哪个子带是用于2D阈值转换的阈值。时间模式可以是SPATIAL_ONLY、FWD4、BAK4和MODE8(以下进一步描述)中的任一者。时间模式被用信号通知给2D阈值模块306和/或3D阈值模块310(在此被统称为或各自被称为阈值逻辑或阈值转换逻辑)。如果TemporalMode=SPATIAL_ONLY,则2D转换后的块bs(zz_index,l)是阈值产生bst(zz_index,l)。如果时间模式不是SPATIAL_ONLY,则bst(zz_index,t)被设置为bs(zz_index,f)。
以下由2D阈值模块306进行的空间阈值转换,bst(zz_index,t)块在1D变换模块308(在此也称为变换逻辑)处被1D变换,产生bhaar(zz_index,f)。1D变换模块308取入来自已经通过锯齿式扫描2D块而被重新映射为1D的2D变换后的8x8块的样本,因此bs(zz_index,f)表示0≤zz_index≤63并且0≤f≤3的位置处的样本,并且样本的完备集是bs(0:63,0:3)。而2D变换模块304对来自已匹配帧的空间像素块进行操作,1D变换模块308在来自给定空间索引0≤zz_index≤63处的2D变换后的帧块上的时间样本进行操作。因此,对于每四(4)个8x8块的集合,存在64(64)中1D变换。
如上所述,用于VDN系统实施例200c-1的1D变换是经修改的三级1D Haar变换,虽然并不限于基于Haar的变换或三级。即,在一些实施例中,在目标之一包括将样本配置为可滤波的频带的情况下,可以被使用具有其它级数的、基于小波的或其它的其它1D变换,包括DCT、WHT、DWT等。在继续重叠块处理模块350的处理具体是1D变换之前,重新关注图6A至图6D,图6A至图6D图示出在与图2A至图2C相关联地描述的帧匹配的简化的语境中1D Haar变换的修改例中的各种步骤。应当理解,在图6A至图6D各个图中示出的1D Haar的演进中的每个滤波器可以是可在一些VDN系统实施例中使用的独立的滤波器。修改后的Haar小波变换由1D变换模块308(和反向1D变换模块312中的反向)针对时间维度被执行,其以以上针对不同实施例描述的方式使能帧压折。一般,一个维度上的Haar小波变换根据下式变换2元素向量:
y ( 1 ) y ( 2 ) = T · x ( 1 ) x ( 2 )
等式(19)
其中, T = 1 2 1 1 1 - 1 .
根据等式(19),可以观察到,Haar变换是和差变换。即,两个元素通过取它们的和和差被变换,其中,项是能量预留或正规化。在小波分解中执行所谓的“临界采样完全二进分解”(critically sampled dyadic decomposition)是标准的。
在图6A中示出包括前向变换和反向变换在内的用于Haar变换的信号流程图600a。图6A至图6D中的信号流程图600a、600b、600c或600d图示出可以全体由1D变换模块308和反向1D变换模块312执行的2D变换样本的示例处理(从上至下)。信号流程图600a被划分成前向变换602和反向变换604。如果该变换被反向重新缩放(例如,如图6A至图6D中所示,在反向变换部件604中分别用因子四(4)和2即分别通过x2和x4被重新缩放),则正规化项可以去除。另外,虽然图6A示出紧跟在前向变换602之后的反向Haar变换604,但是在本公开的语境中应当明白,鉴于在此所述的去噪方法,阈值转换操作(未示出)可以干预前向变换602和反向变换604之间的一些实施例。
在二进小波分解中,样本的集合“经过”(run through)变换(例如等式(19)中给出的变换),并且结果被用因子2二次采样,这在小波理论中成为“临界采样”。使用8样本(例如经2D变换的共址的样本)作为图6A中的示例,样本b0至b7在第一阶段606利用等式(19)以[b0,b1],[b2 b3],...[b6..b7]成对组合的方式被变换,产生四(4)个低频率的和子带样本[L00,L01L02,L03]和四(4)个高频的差子带样本[H00,H01 H02,H03]。因为一半的子带是低频率的,并且一半的子带是高频率的,所以结果是所谓的二进分解。
8样本完全分解通过取四(4)个低频率的子带样本[L00,L01 L02,L03]并让它们经过利用临界采样的等式(19)变换的第二阶段608,产生两(2)个低频率的子带[L10,L11]和两(2)个较高频率子带[H10,H11]。两(2)个最低频率的样本上的第三阶段610完成完全二进分解,并且产生[L20,H20]。
图6A中的1D Haar变换当在所有样本(例如bd(i,j,0:7))都被保持在输出上时,使能前向变换602和反向变换604。这是针对3D累积缓冲器的情况。然而,如以上所讨论的,2D+1累积缓冲器的输出(参见图2A至图2B)值需要bd(i,j,4)和bd(i,j,7)。因此,600a的流程图的简化(其中仅需要bd(i,j,4)和bd(i,j,7))产生图6B中示出的标为600b的流程图。
在图6B中,因为bd(i,j,4)和bd(i,j,7)是期望结果,所以变换处理的整个左手侧只需要第一四(4)个样本b(i,j,0:3)的加和。如下所述,该加和可以发生在1D变换之外(例如,作为帧匹配处理的一部分)。在右手侧,相比于图6A的流程图,已经对样本进行了重排序(即,[b4 b5 b6 b7]改为[b4 b7 b6 b5])。另外,仅需要b(i,j,5)和b(i,j,6)的和(而不需要差)。相应地,通过使用流程图600b中的该简化变换,通过样本重排序,并且将第一四(4)个帧与参考帧F4(t)进行帧匹配,第一四(4)个帧可以被压折成单个帧。对于帧5和6,进行这样的假定:这两个帧都已经被与参考进行帧匹配,产生了M5(t)和M6(t),因此,这些帧可以在1D变换之前(例如之外)被加和。
当加和发生在1D变换之外时,作为结果的1D变换被进一步简化,如图6C的流程图600c中所示,其中,b0+b1+b2+b3表示在1D变换之前来自帧F0(t)至F3(t)的帧匹配和即MSUM0123(t)的块,并且b5+b6表示来自已经被帧匹配并且已被加和的帧M5(t)和M6(t)即MSUM56(t)的块b(i,j,5)andb(i,j,6)的和,所述加和在所述1D变换之前被执行。注意,对于和与图6B和6C对应的Haar修改例对应的2D+1累积实施例,存在样本的重排序以使得b7被换入并且b5和b6被挪开。
参考图6D,示出基于图2C中所示的2D累积缓冲器被进一步简化的流程图600d。即,仅一个输入样本bd4已被保留在到2D累积缓冲器的输出上。注意,与其中样本重排序被如上所述地执行的2D+1累积缓冲器实施例相对比,与图6D相对应的Haar的修改例不涉及样本重排序。
现在继续与重叠块处理模块350中的1D执行有关的描述,并且参考图3,在每个zz_index处,1D变换模块308处理四(4)个样本bs(zz_index,0:3)来产生bhaar(0:63,0:3),其包括Haar子带[L20,H20,H02,H11]。第一索引来自阶段0、1和2,因此L20和H20来自第3阶段610(图6D),H02来自第一阶段606(图6D),并且H11来自第2阶段(608)。这些Haar子带如图6D中所示并且相对于已匹配帧被进一步解释如下:
L20:所有匹配块b(i,j,0:7)的加和;
H20:MSUM:0123(t)中的匹配块之间的差和M4(t)、M5(t)和2X MSUM67(t)中的匹配块的总和;
H02:对于2D+1累积缓冲器(图6C),分别来自帧M4(t)和M7(t)的配块b4和b7之间的差。对于2D累积缓冲器(图6D),分别来自帧M4(t)和M5(t)的匹配块b4和b5之间的差。
H11:对于2D+1累积缓冲器(图6C),分别来自M4(t)和M7(t)的和(b4+b7)匹配块与2X MSUM56(t)之间的差。对于2D累积缓冲器(图6D),分别来自M4(t)和M5(t)的和(b4+b5)匹配块与2X MSUM56(t)之间的差。
参考图7,示出示意图700,其示意性地示出判断是否使能3D或2D阈值转换以及Haar或空间子带是否是分别用于3D和2D的阈值的各种时间模式选择。如图所述,选择包括MODE8、BAK4、FWD4和SPATIAL(以下进一步说明)。通过使得能够判定可以从进一步的变换和/或阈值处理中去除给定时间序列(例如F0(t)-F7(t))中的哪些帧,时间模式选择使得VDN系统200可以适应时间上不相关的视频场景,诸如视频改变,或其它不连续性(例如观看者在场景期间眨眼或扭头导致不连续的感觉活着与摇镜头相关联的不连续等)。TemporalMode选择如下:
对于TemporalMode=MODE8或TemporalMode=SPATIAL:(无变化)。换而言之,对于被设置为MODE8或SPATIAL的TemporalMode,不需要在1D变换之前对样本进行前期处理。对于FWD4或BAK4时间模式,样本经历如下指定的处理。
对于TemporalMode=FWD4:(来自MSUM0123(t)的输入样本b0+b1+b2+b3被设置成等于零);
对于TemporalMode=BAK4:(输入样本b4被设置成等于4*b4);
在一个实施例中,时间模式模块302在对8x8x4块集合采取2D变换之后计算TemporalMode。TemporalMode取一下四个值中的一个:
(a)SPATIAL:当TemporalMode被设置为SPATIAL时,2D(空间)阈值转换在2D变换之后分别在每个2D块bs(0:63,t)0≤t≤3上发生来产生bst(0:3,t)。换而言之,在空间时间模式下,没有3D块的1D变换或阈值转换(时间维度被移除以用于该迭代)。如果Temporal Mode未被设置为SPATIAL,则bst(0:63,t)被设置为bs(0:63,t)(经历)。
(b)FWD4:当TemporalMode被设置为FWD4,来自M4(t)、M5(t)和MSUM67(t)的位于右面(更后)的样本被有效地使用,并且MSUM67(t)中的左面(更早)的样本不被使用。
(c)BAK4:当TemporalMode被设置为BAK4,来自MSUM0123(t)和M4(t)的左面(更早)的样本被有效地使用,并且M5(t)和MSUM67(t)中的右面(更后)的样本不被使用。
(d)MODE8:当TemporalMode被设置为MODE8时,所有样本被使用。
TemporalMode是针对每个重叠块集合来计算的(例如,其值是在每个重叠块位置处被计算的)。因此,隐含地,TemporalMode是i,j的函数,因此TemporalMode(i,j)表示重叠块处理中的第i,j个像素位置的TemporalMode的值。贯穿下文使用缩写“TemporalMode”,应当理解,TemporalMode包括在给定帧的每个重叠块位置处计算出的值以确保实现适当的块匹配等。实际上,选定时间模式定义了不同数目的子带(例如,L20、H20等)的处理(例如阈值转换)。
已经描述了在VDN系统中执行的各种时间模式,现在关注有关执行那种时间模式的判断。为了判定TemporalMode,计算块bs(0:63,k)和bs(0:63,1)(其中0≤k≤3(k=1时为0))之间的SubbandSAD(由2D变换模块304计算出并被传送给时间模式模块302),这利用其中信号预期最有可能超过噪声的块的低频结构,建立与输入样本(来自已匹配帧)的共址块的匹配的接近度。进一步说明,当比较涉及带噪块时,对给定匹配的接近度的确定可能被模糊或歪曲。通过除去噪声,比较的保真度的水平可以被提高。在一个实施例中,VDN系统200c-1有效地执行讨论中的块的功率压缩(例如,诸如经由DCT的前向变换),从而自然视频场景的大部分能量被功率压缩成几个更重要的系数(而噪声一般均匀地分布在场景中)。随后,在进行比较的块的这几个重要的系数之间在DCT域执行SAD(例如,基于预先定义的阈值子带SAD值在DCT的子带中,而不是整个8x8块),导致噪声的重要部分从该计算中被去除,因此提供了更准确的匹配判定。
进一步进行说明,在一个实施例中,子带SAD是使用2D变换后的块bs(0:9,0:3)中的十(10)个最低频率元素来计算的,其中频率顺序从低到高跟随之前指定的锯齿式扫描。在一些实施例中,更少或更多数目的最低频率元素被使用。相应地,对于该示例实施例,SubbandSAD(k)由以下等式给出:
SubbandSAD ( k ) = Σ z = 0 9 | bs ( z , k ) - bs ( z , 1 ) |
等式(20)
其中,0≤k≤3,并且SubbandSAD(1)=0。
整数计数值SubbandFWDCount4、SubbandBAKCount4和SubbandCount8可以定义如下:
SubbandCountFWD 4 = &Sigma; k = 1 3 SetToOneOrZero ( SubbandSAD ( k ) < Tsubbandsad )
等式(21a)
SubbandCountBAK 4 = &Sigma; k = 0 1 SetToOneOrZero ( SubbandSAD ( k ) < Tsubbandsad )
等式(21b)
SubbandCount 8 = &Sigma; k = 0 3 SetToOneOrZero ( SubbandSAD ( k ) < Tsubbandsad )
等式(21c)
其中,函数SetToOneOrZero(x)在其变量求值为真时等于1,否则等于0,并且Tsubbandsad是参数。实际上,21a至21c被计算来确定多少块在子带SAD阈值之下,并且因此确定所要执行的时间模式。例如,参考等式21,对于MODE8,b0+b1+b2+b3的DCT应当在更低频率中足够接近b4的DCT(并且同样地,b5和b6+7的DCT应当在更低的频率中足够接近b4)。注意,k=0至k=3,因为存在b0+b1+b2+b3,b4(然而k=1没有意义,因为b4与其本身的子带SAD是0)、b5和b6+7。
在等式21a中,对于FWD4,b4与b5和b6+7的接近度被评估,因此k的编号从1至3(但是因为如上所述1是没有意义的,所以应当从2至3)。在等式21b中,k的编号从0至1,因为仅低0个样本被检查(即b0+1+2+3样本,并且因为b4总是匹配自身的因此1是没有意义的)。
因此,使用SubbandCountFWD4、SubbandCountBAK4和SubbandCount8,TemporalMode被设置如下:
If SubbandCount8=4,then TemporalMode=MODE8;
else if SubbandCountFWD4=3then TemporalMode=FWD4;
else if SubbandCountBAK4=2then TemporalMode=BAK4;
else TemporalMode=SPATIAL.
注意,该方案中相比BAK4更偏向于FWD4,但是如果MODE8被用信号通知,则仅FWD4和BAK4中的一者可以总是被满足。
在重叠块处理期间在2D或3D变换后的块上执行阈值转换。例如,当TemporalMode被设置成SPATIAL时,2D阈值模块306被用信号通知,使得2D阈值模块306能够执行来自F4(t)的已2D变换的块bs(0:63,1)的2D阈值转换。根据此模式,在来自MSUM0123(t)、M5(t)或MSUM67(t)的三(3)个块上不进行阈值转换(即,在bs(0:63,0),bs(0:63,2),bs(0:63,3)上无2D阈值转换)。
参考图8,图8是图示出通过阈值转转向量T_2D和空间索引矩阵S_2D进行的时空频率分割的一个示例实施例的示意图800,阈值转转向量T_2D和空间索引矩阵S_2D中的每一个可以定义如下:
T_2D(0:3):阈值的4元素向量
S_2D(0:3,2):空间指数的4x2像素矩阵
T_2D和S_2D一起定义了用于对2D块bs(0:63,1)进行阈值转换的参数。对于仅8x8的已2D变换的块bs(0:63,1),阈值块bst(0:63,1)可以根据以下等式(22)导出:
等式(22)
其中,j=0..3。
在等式(22)中,T_2D(j)定义在空间指数S_2D(j,0)至S_2D(j,1)(其中j=0..3)的范围上用于块1即来自M4(t)的bs(0:63,1)的阈值。相当于,bs(S_2D(j,0):S_2D(j,1),1)的元素通过将这些元素的值与阈值T_2D(j)相比较被阈值转换,并且当它们的绝对值小于T_2D(j)时,bs(S_2D(j,0):S_2D(j,1),1)中的值被设置为0。注意,已匹配帧MSUM0123(t)、MSUM67(t)或M5(t)都不经历2D阈值转换,只有来自M4(t)的块bs(0:63,1)经历2D阈值转换。
空间索引矩阵S_2D与T_2D一起定义如图8中所示的被锯齿式扫描的空间频率中的系数的子集。2D空间已经通过锯齿式扫描被简化为1D。
当TemporalMode被设置成FWD4、BAK4和MODE8中任一者时,对从1D变换模块308输出的已3D变换的块bhaar(0:63,0:3)的阈值转换(在3D阈值模块310处进行)被执行。否则,当TemporalMode被设置成SPATIAL时,3D阈值模块310的输出(例如bhaart(0:63,0:3))在不做修改的情况下被设置为3D阈值模块310的输入(例如输入等于bhaar(0:63,0:3))。3D阈值模块310使用以上在2D阈值转换306中定义的阈值向量T3D(j)和空间索引矩阵S_3D(j,0:1),但是不使用八(8)个阈值,所以0<j<8。
对于3D阈值转换310,需要另外的阈值向量TSUB(j,0:1),其针对每个j定义时间子带的范围。例如,TSUB(0,0)=0与TSUB(0,1)=1以及T_3D(0)=100和S_3D(0,0)=0和S_3D(0,1)=32一起表明:对于j=0,利用阈值100的3D阈值转换被用在Haar子带L20和H20以及空间频率0至32上。
3D块的阈值转换310与遵循等式(22)的2D阈值转换306相同,不同在于用T_3D和S_3D替换T_2D和S_2D。对于3D阈值转换310,与2D不同的是,全部四(4)个块bhaar(0:63,0:3)都被阈值转换。
对于MODE8,所有Haar子带都被阈值转换。对于FWD4和BAK4,仅Haar子带的子集被阈值转换。以下根据TemporalMode指定哪些子带被阈值转换:
如果TemporalMode=MODE8,则阈值转换[L20,H20,H02,H11]Haar子带
如果TemporalMode=FWD4,则阈值转换[H20.H02.H11]Haar子带
如果TemporalMode==BAK4,则阈值转换[L20,H20]Haar子带
已经描述了VDN系统中的阈值转换的示例实施例,再次关注图3和反向变换和输出处理。具体而言,反向变换包括反向1D变换312(例如Haar)以及之后的反向2D变换(例如AVC整数DCT),以上已经描述了这二者。本领域普通技术人员应当理解,其它类型的变换可以用于这两个维度,或与在此在一些实施例中描述的Haar/AVC整数组合不同的不同类型的变换的混合。对于1D Haar变换,反向变换如图6D中所示地并且如以上所说明的那样进行。
使用合并后的累积缓冲器的FD4(t)的最终去噪帧在等式(23)中被指定如下:
FD 4 ( i , j ) = A ( i , j ) W ( i , j ) 等式(23)
对于其中w(i,j)=1用于全部重叠块的统一加权,等式(23)相当于简单地除以16(对于步进大小=2)。然而,如果有选择地省略块,则等式(23)相当于除以数目1≤W(i,j)≤16。在2D反向变换314之后跟随1D反向变换312,块bd(i,j,1)表示F4(t)的去噪块。该去噪块被累积(添加)到(一个或多个)A4(t)累积缓冲器360中(例如,经由反复循环回到2D变换模块304来进行像素索引或偏移以针对给定参考帧反复处理350来累积去噪估计值)。
已经描述了VDN系统200的各个实施例,应当明白,图9中示出的通过VDN系统200c-1(图3)的逻辑执行的一个方法实施例900包括:针对第一多个帧的第一时间序列,对第一多个帧进行帧匹配,所述第一多个帧的至少一部分被噪声损坏(902),在与完成第一时间序列的全部帧匹配相对应的时刻,对第一多个已匹配帧中的匹配块的多个集合进行重叠块处理(904)。
图10A中示出的并且由帧对准模块310a(图4A)执行的另一方法实施例1000a包括:接收第一多个帧和参考帧的第一时间序列,第一多个帧和参考帧的至少一部分被噪声损坏(1002),对第一多个帧进行帧匹配(1004),将已帧匹配的第一多个帧与第一多个帧的至少一个帧相加来提供第一总和帧(1006),将帧匹配后的第一多个帧延迟来提供第一延迟帧(1008),将第一总和帧与参考帧进行帧匹配来提供第二总和帧(1010),将第二总和帧自组合多次来提供倍增帧(1012),将倍增帧与第一延迟帧和参考帧相加来提供第三总和帧(1014),将第三总和帧延迟来提供已延迟的第三总和帧(1016),将已延迟的第三总和帧与参考帧进行帧匹配来提供第四总和帧(1018),输出第一延迟帧、第二总和帧、参考帧和第四总和帧以用于进一步的处理(1020)。
图10B中示出的并且在一个实施例中由帧对准模块310b(图4B)执行的另一方法实施例1000b包括:接收第一多个帧和参考帧的第一时间序列,第一多个帧和参考帧的至少一部分被噪声损坏(1022);对第一多个帧进行帧匹配(1024);将已帧匹配的第一多个帧与第一多个帧的至少一个帧相加来提供第一总和帧(1026);将已帧匹配的第一多个帧延迟来提供第一延迟帧(1028);将第一总和帧延迟来提供已延迟的第一总和帧(1030);将已延迟的第一总和帧与参考帧进行帧匹配来提供第二总和帧(1032);将第二总和帧自组合多次来提供倍增帧(1034);将倍增帧与第一延迟帧和参考帧相加来提供第三总和帧(1036);将第三总和帧延迟来提供已延迟的第三总和帧(1038);将已延迟的第三总和帧与参考帧进行帧匹配来提供第四总和帧(1040);以及输出第一延迟帧、第二总和帧、参考帧和第四总和帧以用于进一步的处理(1042)。
图11中示出的在一个实施例中由与图2A至图2C和图3相对应的VDN系统200执行的另一方法实施例1100包括:接收视频帧的第一时间序列,第一时间序列被噪声损坏(1102);根据第一阶段的处理对视频帧进行帧匹配(1104);根据第二阶段的处理对已匹配帧进行去噪,第二阶段的处理响应于针对全部视频帧完成第一阶段的处理而开始,第二阶段的处理包括重叠块块处理(1106);并且其中,去噪还包括在2D+c累积缓冲器中为重叠块处理的每次迭代累积去噪像素,2D累积缓冲器对应于与视频帧的参考帧相对应的去噪像素,其中,c包括大于或等于零的非参考帧缓冲器的整数数目(1108)。
在图12A中示出并且在一个实施例中由重叠块处理模块350(图3)执行的另一方法实施例1200a包括:将与多个已匹配帧相对应的共址块集合进行前向变换(1202);计算已变换块的集合与参考块之间的系数的子集的差测量值,该计算在2D变换域中进行(1204);以及基于具有低于预定阈值的差测量值的已变换块的数目来有选择地对共址的已变换块中的一个或多个已变换块进行阈值转换(1206)。
在图12B中示出并且在一个实施例中由重叠块处理模块350(图3)执行的另一方法实施例1200b包括:计算与多个已匹配帧块相对应的已2D变换的共址匹配块的集合的系数的集合的子带差测量值,所述计算是在2D变换域中执行的(1208);以及基于相比于定义的子带差测量值阈值计算出的子带差测量值来有选择地对共址的已2D或3D变换的匹配块中的一个或多个已2D或3D变换的匹配块进行阈值转换(1210)。
在图13中示出并且在一个实施例中由重叠块处理模块350(图3)执行的另一方法实施例1300包括:接收已匹配帧(1302);对已匹配帧的共址块进行前向变换(1304);以及在至少一次迭代中对与已匹配帧的子集相对应的已变换共址块进行阈值转换(1306)。
在图14中示出并且在一个实施例中由帧匹配模块402(图5)执行的另一方法实施例1400包括:接收视频序列的多个帧,多个帧被噪声损坏(1402);从多个帧滤除噪声(1404);对已滤波的帧进行块匹配来导出第一运动向量集合(1406);对第一运动向量集合进行缩放(1408);从已缩放的运动向量导出单个已缩放的运动向量(1410);以及基于该已缩放的运动向量对多个帧进行块匹配来导出已细化的运动向量(1412)。
在流程图中的任何处理描述或块应当被理解成表示代码部分、模块、片段,其包括用于执行该处理中的具体逻辑功能或步骤的一个或多个可执行指令,并且本领域技术人员应当理解,可替换实施方式被包括在本公开的范围内,其中根据所涉及的功能性,功能可以按照与所示出或所讨论的顺序不同的顺序(包括实质上并发的或反向的顺序)被执行。在一些实施例中,在图9至图14中使用分离的框标识的处理的步骤可以被组合。此外,结合本公开图示出的流程图中的各个步骤不限于以上与针对流程图的描述相关联地描述的体系架构(被实现在特定模块或逻辑中或由特定模块或逻辑实现),并且步骤也不限于说明书中所描述的并且与本公开的附图相关联的示例实施例。在一些实施例中,一个或多个步骤可以或者在开头或者在结尾或者作为创新的步骤被添加到图9至图14中所描述的方法中一个或多个方法。
应当强调的是,本公开的上述实施例仅仅是实现方式的可能示例,仅仅是为了清楚理解VDN系统和方法的原理而阐述的。在实质上不偏离本公开的精神和原理的情况下,可以对上述(一个或多个)实施例进行许多更改和修改。虽然所有这样的修改和更改都意图被包括在本公开的范围内并且受以下权利要求书的保护,但是以下权利要求书并不一定被限制于说明书中所阐述的具体实施例。

Claims (19)

1.一种用于视频噪声降低的方法,包括:
针对第一多个帧的第一时间序列,对所述第一多个帧进行帧匹配,所述第一多个帧的至少一部分被噪声损坏;
在与针对所述第一时间序列完成全部帧匹配相对应的时刻,对第一多个已匹配帧中的匹配块的多个集合进行重叠块处理,其中针对视频序列匹配并完成全部第一多个帧是在开始重叠块处理之前进行的,在重叠块处理期间所述第一多个帧中没有帧被匹配;以及
在2D+n累积缓冲器中从重叠块处理累积去噪像素,其中,n包括非参考帧缓冲器的整数数目,其中累积的帧的总数小于3D缓冲器中的帧数。
2.如权利要求1所述的方法,其中,帧匹配包括:将所述第一多个帧的第一帧分割成不重叠块,所述不重叠块中的每一个不重叠块对应于限定数量的像素。
3.如权利要求2所述的方法,其中,对于所述不重叠块中的每一个不重叠块,帧匹配还包括:计算与第二帧中的像素块相对应的运动向量的集合,以与所述第一帧中的所述不重叠块中的相应每个不重叠块匹配。
4.如权利要求3所述的方法,其中,所述运动向量的集合包括亮度和色度信息。
5.如权利要求1所述的方法,其中,帧匹配包括运动估计和运动补偿。
6.如权利要求1所述的方法,还包括:根据共同的像素位置来对准所述多个已匹配帧中的匹配块。
7.如权利要求1所述的方法,其中,重叠块处理包括对从所述第一多个已匹配帧中的相同像素位置提取的多个匹配块的第一集合进行三维(3D)前向和3D反向变换以及阈值转换。
8.如权利要求7所述的方法,其中,重叠块处理还包括:将限定数量的像素空间偏移到所述第一多个已匹配帧的下一共同像素位置并且对从所述第一多个已匹配帧中的所述共同像素位置提取的多个匹配块的第二集合重复所述3D前向和3D反向变换以及所述阈值转换。
9.如权利要求8所述的方法,还包括:
重复所述重叠块处理直到所述第一多个已匹配帧的全部像素已经经历了所述重叠块处理为止;并且
在针对所述第一多个帧完成所述重叠块处理时在第二多个帧的第二时间序列中进行偏移,所述第二多个帧包括所述第一多个帧的至少一部分以及至少一个附加帧。
10.一种用于视频噪声降低的系统,包括:
帧对准模块,所述帧对准模块被配置为对于第一多个帧的第一时间序列,对所述第一多个帧进行帧匹配,其中,所述第一多个帧的至少一部分被噪声损坏;
重叠块处理模块,所述重叠块处理模块被配置为,在与针对所述第一时间序列完成全部帧匹配相对应的时刻,对所述第一多个已匹配帧中的匹配块的多个集合进行重叠块处理,其中针对视频序列匹配并完成全部第一多个帧是在开始重叠块处理之前进行的,在重叠块处理期间所述第一多个帧中没有帧被匹配;以及
累积缓冲器,所述累积缓冲器被配置为,在2D+n累积缓冲器中从重叠块处理累积去噪像素,其中,n包括非参考帧缓冲器的整数数目,其中累积的帧的总数小于3D缓冲器中的帧数。
11.如权利要求10所述的系统,其中,所述帧对准模块还被配置为将所述第一多个帧的第一帧分割成不重叠块,所述不重叠块中的每一个不重叠块对应于限定数量的像素。
12.如权利要求11所述的系统,其中,所述帧对准模块还被配置为,对于所述不重叠块中的每一个不重叠块,计算与第二帧中的像素块相对应的运动向量的集合以与所述第一帧中的所述不重叠块中的相应每个不重叠块匹配,其中所述运动向量的集合包括亮度和色度信息。
13.如权利要求10所述的系统,其中,对于隔行视频,所述帧对准模块和所述重叠块处理模块被配置为不耦合地独立地在同奇偶性的场上操作。
14.如权利要求10所述的系统,其中,所述帧匹配包括运动估计和运动补偿。
15.如权利要求10所述的系统,其中,所述帧对准模块还被配置为根据共同的像素位置来对准所述多个已匹配帧中的匹配块。
16.如权利要求10所述的系统,其中,所述重叠块处理模块还被配置为通过对从所述第一多个已匹配帧中的相同的像素位置提取的多个匹配块的第一集合进行三维(3D)前向和3D反向变换和阈值转换来执行重叠块处理。
17.如权利要求16所述的系统,其中,所述重叠块处理模块还被配置为通过将限定数量的像素空间偏移到所述第一多个已匹配帧的下一共同像素位置并且对从所述第一多个已匹配帧中的所述共同像素位置提取的多个匹配块的第二集合重复所述3D前向和3D反向变换以及所述阈值转换来执行重叠块处理。
18.如权利要求17所述的系统,其中,所述重叠块处理模块还被配置为重复所述重叠块处理,直到所述第一多个已匹配帧的全部像素已经经历了所述重叠块处理为止。
19.如权利要求10所述的系统,其中,所述帧对准模块还被配置为在针对所述第一多个帧完成所述重叠块处理时在第二多个帧的第二时间序列中进行偏移,所述第二多个帧包括所述第一多个帧的至少一部分以及至少一个附加帧。
CN201080024719.9A 2009-06-05 2010-06-03 基于3d的视频去噪中的环路外的帧匹配 Active CN102460504B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/479,018 2009-06-05
US12/479,018 US8571117B2 (en) 2009-06-05 2009-06-05 Out of loop frame matching in 3D-based video denoising
PCT/US2010/037189 WO2010141672A1 (en) 2009-06-05 2010-06-03 Out of loop frame matching in 3d-based video denoising

Publications (2)

Publication Number Publication Date
CN102460504A CN102460504A (zh) 2012-05-16
CN102460504B true CN102460504B (zh) 2015-07-22

Family

ID=42470553

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080024719.9A Active CN102460504B (zh) 2009-06-05 2010-06-03 基于3d的视频去噪中的环路外的帧匹配

Country Status (4)

Country Link
US (1) US8571117B2 (zh)
EP (1) EP2438573A1 (zh)
CN (1) CN102460504B (zh)
WO (1) WO2010141672A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8285068B2 (en) 2008-06-25 2012-10-09 Cisco Technology, Inc. Combined deblocking and denoising filter
US8615044B2 (en) * 2009-06-05 2013-12-24 Cisco Technology, Inc. Adaptive thresholding of 3D transform coefficients for video denoising
US8358380B2 (en) * 2009-06-05 2013-01-22 Cisco Technology, Inc. Efficient spatial and temporal transform-based video preprocessing
US8619881B2 (en) * 2009-06-05 2013-12-31 Cisco Technology, Inc. Estimation of temporal depth of 3D overlapped transforms in video denoising
US8520731B2 (en) * 2009-06-05 2013-08-27 Cisco Technology, Inc. Motion estimation for noisy frames based on block matching of filtered blocks
US8638395B2 (en) 2009-06-05 2014-01-28 Cisco Technology, Inc. Consolidating prior temporally-matched frames in 3D-based video denoising
US9628674B2 (en) 2010-06-02 2017-04-18 Cisco Technology, Inc. Staggered motion compensation for preprocessing video with overlapped 3D transforms
US8472725B2 (en) 2010-06-02 2013-06-25 Cisco Technology, Inc. Scene change detection and handling for preprocessing video with overlapped 3D transforms
US9635308B2 (en) 2010-06-02 2017-04-25 Cisco Technology, Inc. Preprocessing of interlaced video with overlapped 3D transforms
US8976298B2 (en) * 2013-04-05 2015-03-10 Altera Corporation Efficient 2D adaptive noise thresholding for video processing
US9832351B1 (en) 2016-09-09 2017-11-28 Cisco Technology, Inc. Reduced complexity video filtering using stepped overlapped transforms
US10140689B2 (en) * 2017-01-20 2018-11-27 Sony Corporation Efficient path-based method for video denoising
CN117011193B (zh) * 2023-09-28 2023-12-05 生态环境部长江流域生态环境监督管理局生态环境监测与科学研究中心 一种轻量化凝视卫星视频去噪方法及去噪系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101035283A (zh) * 2007-03-21 2007-09-12 天津工业大学 纯三维全相位滤波方法

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4442454A (en) * 1982-11-15 1984-04-10 Eastman Kodak Company Image processing method using a block overlap transformation procedure
US4698672A (en) * 1986-10-27 1987-10-06 Compression Labs, Inc. Coding system for reducing redundancy
US5150433A (en) 1989-12-01 1992-09-22 Eastman Kodak Company Histogram/variance mechanism for detecting presence of an edge within block of image data
US6091460A (en) * 1994-03-31 2000-07-18 Mitsubishi Denki Kabushiki Kaisha Video signal encoding method and system
JP3591028B2 (ja) * 1995-01-25 2004-11-17 ソニー株式会社 再生装置、再生方法
US5940536A (en) 1995-09-05 1999-08-17 Matsushita Electric Industrial Co., Ltd. Ringing detector and filter
EP0857392B1 (en) * 1995-10-25 2004-08-11 Sarnoff Corporation Overlapping block zerotree wavelet image coder
US6618117B2 (en) * 1997-07-12 2003-09-09 Silverbrook Research Pty Ltd Image sensing apparatus including a microcontroller
US6754234B1 (en) * 1999-05-21 2004-06-22 Ati International Srl Method and apparatus for asynchronous frame synchronization
US6442203B1 (en) * 1999-11-05 2002-08-27 Demografx System and method for motion compensation and frame rate conversion
EP1279290A1 (en) * 2000-04-04 2003-01-29 Koninklijke Philips Electronics N.V. Video encoding method using a wavelet transform
US6724433B1 (en) * 2000-12-06 2004-04-20 Realnetworks, Inc. Automated inverse telecine conversion
US6801573B2 (en) * 2000-12-21 2004-10-05 The Ohio State University Method for dynamic 3D wavelet transform for video compression
JP4458714B2 (ja) * 2001-06-20 2010-04-28 富士通マイクロエレクトロニクス株式会社 画像復号装置、画像復号方法、および、プログラム
US7206459B2 (en) * 2001-07-31 2007-04-17 Ricoh Co., Ltd. Enhancement of compressed images
US20030128761A1 (en) * 2001-12-07 2003-07-10 Minhua Zhou Image and video coding
JP2004343451A (ja) * 2003-05-15 2004-12-02 Matsushita Electric Ind Co Ltd 動画像復号化方法および動画像復号化装置
US7496228B2 (en) * 2003-06-13 2009-02-24 Landwehr Val R Method and system for detecting and classifying objects in images, such as insects and other arthropods
EP1668889A1 (en) * 2003-09-23 2006-06-14 Koninklijke Philips Electronics N.V. Video de -noising algorithm using inband motion-compensated temporal filtering
US7643688B2 (en) * 2003-10-10 2010-01-05 Hewlett-Packard Development Company, L.P. Reducing artifacts in compressed images
US7388999B2 (en) * 2003-10-29 2008-06-17 Hewlett-Packard Development Company, L.P. Transformations for denoising images
US20050100235A1 (en) * 2003-11-07 2005-05-12 Hao-Song Kong System and method for classifying and filtering pixels
US7551792B2 (en) * 2003-11-07 2009-06-23 Mitsubishi Electric Research Laboratories, Inc. System and method for reducing ringing artifacts in images
US7346224B2 (en) * 2003-11-07 2008-03-18 Mitsubishi Electric Research Laboratories, Inc. System and method for classifying pixels in images
US7412109B2 (en) * 2003-11-07 2008-08-12 Mitsubishi Electric Research Laboratories, Inc. System and method for filtering artifacts in images
CA2616871A1 (en) * 2004-07-30 2006-02-02 Algolith Inc. Apparatus and method for adaptive 3d noise reduction
US20060039624A1 (en) * 2004-08-20 2006-02-23 Hao-Song Kong System and method for fuzzy filtering images
US7428342B2 (en) * 2004-12-17 2008-09-23 Microsoft Corporation Reversible overlap operator for efficient lossless data compression
US8913660B2 (en) * 2005-04-14 2014-12-16 Fastvdo, Llc Device and method for fast block-matching motion estimation in video encoders
US20070041448A1 (en) * 2005-08-17 2007-02-22 Miller Casey L Artifact and noise reduction in MPEG video
US8537903B2 (en) * 2005-09-23 2013-09-17 Entropic Communications, Inc. De-blocking and de-ringing systems and methods
US20090016442A1 (en) * 2005-10-06 2009-01-15 Vvond, Inc. Deblocking digital images
GB2431796A (en) * 2005-10-31 2007-05-02 Sony Uk Ltd Interpolation using phase correction and motion vectors
US7843995B2 (en) * 2005-12-19 2010-11-30 Seiko Epson Corporation Temporal and spatial analysis of a video macroblock
US8130828B2 (en) * 2006-04-07 2012-03-06 Microsoft Corporation Adjusting quantization to preserve non-zero AC coefficients
US20080055477A1 (en) * 2006-08-31 2008-03-06 Dongsheng Wu Method and System for Motion Compensated Noise Reduction
JP5270573B2 (ja) * 2006-12-28 2013-08-21 トムソン ライセンシング ブロックアーチファクトを検出する方法及び装置
US8160150B2 (en) * 2007-04-10 2012-04-17 Texas Instruments Incorporated Method and system for rate distortion optimization
US20080260033A1 (en) * 2007-04-17 2008-10-23 Horizon Semiconductors Ltd. Hybrid hierarchical motion estimation for video streams
US8254444B2 (en) * 2007-05-14 2012-08-28 Samsung Electronics Co., Ltd. System and method for phase adaptive occlusion detection based on motion vector field in digital video
US8023562B2 (en) * 2007-09-07 2011-09-20 Vanguard Software Solutions, Inc. Real-time video coding/decoding
JP4257382B1 (ja) * 2007-12-26 2009-04-22 株式会社東芝 ノイズリダクション装置、ノイズリダクション方法
US8345158B2 (en) * 2008-03-21 2013-01-01 Sony Corporation Merging video with time-decimated high-resolution imagery to form high-resolution video frames
US8285068B2 (en) * 2008-06-25 2012-10-09 Cisco Technology, Inc. Combined deblocking and denoising filter
US9419620B2 (en) * 2008-07-22 2016-08-16 Nytell Software LLC Field programmable object array and video compression processor for video data compression
TWI475890B (zh) * 2008-10-14 2015-03-01 Univ Nat Taiwan 用於需要善用電量之多媒體裝置的高效率區塊比對的大型積體電路架構及方法
US20100316129A1 (en) * 2009-03-27 2010-12-16 Vixs Systems, Inc. Scaled motion search section with downscaling filter and method for use therewith
US8830339B2 (en) * 2009-04-15 2014-09-09 Qualcomm Incorporated Auto-triggered fast frame rate digital video recording
US8619881B2 (en) * 2009-06-05 2013-12-31 Cisco Technology, Inc. Estimation of temporal depth of 3D overlapped transforms in video denoising
US8358380B2 (en) * 2009-06-05 2013-01-22 Cisco Technology, Inc. Efficient spatial and temporal transform-based video preprocessing
US8520731B2 (en) * 2009-06-05 2013-08-27 Cisco Technology, Inc. Motion estimation for noisy frames based on block matching of filtered blocks
US8615044B2 (en) * 2009-06-05 2013-12-24 Cisco Technology, Inc. Adaptive thresholding of 3D transform coefficients for video denoising
US8638395B2 (en) * 2009-06-05 2014-01-28 Cisco Technology, Inc. Consolidating prior temporally-matched frames in 3D-based video denoising
US8472725B2 (en) * 2010-06-02 2013-06-25 Cisco Technology, Inc. Scene change detection and handling for preprocessing video with overlapped 3D transforms
US9628674B2 (en) * 2010-06-02 2017-04-18 Cisco Technology, Inc. Staggered motion compensation for preprocessing video with overlapped 3D transforms
US9635308B2 (en) * 2010-06-02 2017-04-25 Cisco Technology, Inc. Preprocessing of interlaced video with overlapped 3D transforms

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101035283A (zh) * 2007-03-21 2007-09-12 天津工业大学 纯三维全相位滤波方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Video Denoising by Sparse 3D Transform-Domain Collaborative Filtering;Kostadin Dabov et al.;《Proc. Of the 15-th European Signal Processing Conference》;20070907;图1 *

Also Published As

Publication number Publication date
US20100309989A1 (en) 2010-12-09
EP2438573A1 (en) 2012-04-11
CN102460504A (zh) 2012-05-16
WO2010141672A1 (en) 2010-12-09
US8571117B2 (en) 2013-10-29

Similar Documents

Publication Publication Date Title
CN102460504B (zh) 基于3d的视频去噪中的环路外的帧匹配
US9438930B2 (en) Systems and methods for wavelet and channel-based high definition video encoding
Choi et al. Motion-compensated frame interpolation using bilateral motion estimation and adaptive overlapped block motion compensation
US6381276B1 (en) Video encoding and decoding method
CN102714726B (zh) 使用元数据的用于时间缩放的边缘增强
US7373013B2 (en) Directional video filters for locally adaptive spatial noise reduction
US9635308B2 (en) Preprocessing of interlaced video with overlapped 3D transforms
US9628674B2 (en) Staggered motion compensation for preprocessing video with overlapped 3D transforms
Garbas et al. Methods and tools for wavelet-based scalable multiview video coding
CN113592746B (zh) 一种由粗到细地融合时空信息的压缩视频质量增强方法
Matsuo et al. Super-resolution for 2K/8K television using wavelet-based image registration
Takeuchi et al. A gamut-extension method considering color information restoration using convolutional neural networks
CN110603811A (zh) 视频编码系统和方法中的残差变换和逆向变换
CN108259891B (zh) 基于双目时空内在推理机制的3d视频质量盲评估方法
EP1636987B1 (en) Spatial signal conversion
JPH0884335A (ja) 画像信号処理方法及び画像信号伝送装置
Kwon et al. An efficient POCS-based post-processing technique using wavelet transform in HDTV
Lan et al. Multisensor Collaboration Network for Video Compression Based on Wavelet Decomposition
Bhojani et al. Hybrid video compression standard
Nayan et al. Baseline JPEG-like DWT CODEC for disparity compensated residual coding of stereo images
Fournier et al. Multimodal compression using JPEG 2000: supervised insertion approach
Rahimi et al. Reliable Stereoscopic Video Streaming Considering Important Objects of the Scene.
Anagha et al. A machine learning approach for removal of JPEG compression artifacts: a survey
Baaziz et al. Multiconstraint Wiener-based motion compensation using wavelet pyramids
Monta Signal processing for high-definition television

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant