专利名称:缓冲的自适应滤波器的制作方法
技术领域:
本发明总体上涉及视频滤波。更具体地,本发明的实施方式涉及缓冲的自适应滤波器。
背景技术:
视频编码系统对数字视频信号进行压缩以减小这些信号的存储需求和/或传输带宽。使用各种视频编码系统,包括如基于块的系统、基于小波的系统和基于区域的系统等。当前使用基于块的系统,并且相比某些其它系统,基于块的系统更普遍地被部署。基于 块的视频编码系统的示例包括国际视频编码标准MPEG1/24、VC-I和MPEG-4 AVC/H. 264。鉴于基于块的视频编码系统广泛的部署、使用和熟悉,出于简单、一致、熟悉和清楚的目的,相比较其它系统而言,本文中的示例实施方式可更频繁地参考基于块的视频编码。但是,不应以任何方式的限制来看待这种参考,而这种参考仅是出于示例、讨论和说明的理由。视频编码相关领域的普通技术人员应当很容易地理解,本文所讨论的实施方式和技术可以应用到任何类型的视频编码,并且明显不限于基于块的编码系统。本领域普通技术人员应当从以下描述中理解,所讨论的技术很容易地应用到出于各种目的而应用自适应滤波器的任何视频编码系统,如出于以下目的使用运动补偿和运动预测以减小和/或去除掉各种视频信号中可能固有的冗余。本部分所描述的方案是能够执行的方案,但不一定是先前想到或执行的方案。因此,除非另外指出,否则不应当认为,本部分中所描述的任何方案仅仅由于其被包括在本部分中就被证明是现有技术。类似地,关于一种或更多种方案而明确的事项不应基于本部分而认为已经在任何现有技术中已经被明确,除非另外指出。
在附图的各个图中通过例子以及非限制的方式来说明本发明,并且在附图中,相似的附图标记指代类似的元素,其中图IA描绘了根据本发明一个实施方式的示例视频解码系统,图IB描绘了根据本发明一个实施方式的示例视频解码器;图2描绘了根据本发明一个实施方式的基于时域预测的运动补偿的示例;图3描绘了根据本发明一个实施方式的基于运动插值的分数像素的示例;图4A和图4B描绘了根据本发明一个实施方式的亚像素对称的示例;图5描绘了根据本发明一个实施方式的示例自适应滤波器缓冲区;
图6描绘了根据本发明一个实施方式的用于缓冲的自适应插值滤波器(BAIF)方案的自适应滤波器信令的第一示例;图7描绘了根据本发明一个实施方式的用于BAIF方案的自适应滤波器信令的第二示例;图8描绘了根据本发明一个实施方式的针对每个参考图片分别地用信号通知自适应滤波器的示例;图9描绘了根据本发明一个实施方式的层次B预测的简单示例;以及图10描绘了根据本发明一个实施方式的将滤波器缓冲区应用到多片段解码的示例。
具体实施例方式本文描述了缓冲的自适应滤波器。在以下描述中,出于说明的目的,记载了大量的具体细节以提供对本发明的完整理解。但是,很明显的是,可以在没有这些具体细节的情况下来实践本发明。在其它情况下,没有彻底详细地描述公知的结构和器件,以避免不必要地封闭、模糊或混淆本发明。概要本文所描述的示例实施方式与缓冲的自适应滤波器有关。在视频编码器或视频解码器的一个或更多个中建立缓冲区。在缓冲区中缓冲一个或更多个自适应滤波器。可以对滤波器缓冲区进行管理,例如,关于缓冲区的大小或容量、缓冲区内的滤波器布置和缓冲的默认滤波器进行管理。可以针对多个参考图片通过信号通知自适应滤波器和缓冲自适应滤波器。因此,本发明的实施方式涉及缓冲的自适应滤波器。示例视频编码器和解码器本发明的实施方式涉及缓冲的自适应插值滤波器。图IA描绘了根据本发明一个实施方式的示例视频编码系统100。示例视频编码系统(如,编码器)100代表基于块的编码器。但是,应当将所描述的基于块的编码器100理解为使用运动估计与补偿减小或去除掉某些视频系统中可能固有的冗余的任何视频编码系统的示例。减小或去除掉这样的冗余对于减小与存储和/或传输视频信号相关联的存储和/或带宽需求是有用的。示例编码器100逐块地处理输入视频信号102。通常使用的视频块单元包括16X16像素,其一般称为宏块。对于每个输入视频块,可以进行空间预测(160)和/或时域预测(162)。一般也称为帧内预测的空间预测160使用相同的视频图片/片段中的已经编码的邻近块来对当前视频块进行预测。时域预测162使用来自邻近视频帧或图片的视频块来对当前视频块进行预测。如本文所使用的,实质上同义地使用术语“帧”和“图片”。术语“时域预测” 一般还称为“帧间预测”;实质上两个术语与术语“运动预测”同义地使用。例如,对于亮度分量,MPEG-4H. 264/AVC视频编码标准允许如16X16、16X8、8X16、8X8、8X4、4X8和4X4的帧间预测块大小。图IB描绘了根据本发明一个实施方式的示例视频解码器10。示例视频解码器10接收输入视频流(如,来自视频编码器100)。示例视频解码器10包括滤波器缓冲区11,利用滤波器缓冲区11,解码处理器12可以使用其中缓冲的、包含自适应插值滤波器的自适应滤波器来生成用于显示、存储或后处理的输出(如,解码的)视频信号。解码处理器12可以包含各种解码功能,如熵解码单元、空间预测单元、运动补偿单元、逆量化单元、逆变换单元、环路滤波单元等。图2描绘了根据本发明一个实施方式的基于运动补偿的时域预测的示例。基于块的运动预测提供有运动矢量(mvx,mvy)。在图2中,描绘了预测信号是从一个参考图片中取得的情形。可以提供多假设时域预测,其中,预测信号是通过组合来自例如不止一个参考图片的若干预测信号来形成的。双向预测是一般在一些广泛使用或采用的视频编码标准,例如MPEG2、MPEG4、MPEG4 H. 264/AVC和VCl上使用和支持的多假设时域预测的示例。实质上,双向预测对均来自参考图片的两个预测信号进行混合以形成预测,例如使用P(x,y) = (PQ(x,y)+Pi(x,y)+l) l,其中,PQ(x,y)和P1U, y)是针对来自每个参考图片的位置(X,y)的预测信号,并且PU,y)是最终的双向预测信号。另外地,可以给PtlU,y)和P1 (X, y)权重,使得P(x, y) = (w · P0 (x, y) + (ff-w) · P1 (x,y) +ff/2) S
其中,W和S分别代表加权因子和用于定点运算的比特位移并且W=1〈〈S。该过程一般称为加权预测。除了混合多个时域预测信号外,也可以通过将空间预测信号与时域预测信号混合在一起来形成多假设预测信号。在执行空间和/或时域预测后,在加法器116处,从初始的视频块中减去预测块。残余块在变换单元104处进行变换以及在量化单元106处进行量化。然后,将经量化的残余变换系数发送到熵编码单元108进行熵编码,以进一步减小比特率。然后,将熵编码的残余系数打包以形成输出视频比特流120的一部分。量化的变换系数在逆量化单元100处被逆量化以及在逆变换单元112处被逆变换以获得重构的残余块。通过在加法器126处将重构的残余块加到预测视频块上来形成重构视频块,并且将重构视频块添加到参考图片存储器164。重构的视频块还可以在被放置到参考图片存储器164中之前在环路滤波器166 (如,H. 164/AVC MPEG-4)处经历另外的处理。参考图片存储器164可以用于以相同视频帧和/或将来视频帧中将来视频块的编码。可以以分数像素精度来进行单元162处的运动预测或运动补偿。例如,H. 264/AVCMPEG-4标准允许运动矢量对于亮度分量与色度分量具有1/2像素精度和1/4像素精度。此夕卜,如果输入视频具有4:2:0的颜色格式,则该标准还允许针对色度分量具有1/8像素运动精度。如果运动矢量指向分数像素位置,则通过从参考图片中的整数像素值进行插值来使用运动插值获得分数像素值。如本文中所使用的,实质上,术语“运动插值”与术语“运动估计/补偿插值”和与帧间像素相关的空间信息的插值有关的“运动预测插值”同义地使用。假定允许全像素、1/2像素和1/4像素的运动精度并且假定六抽头插值滤波器作为示例(尽管还可以使用任何其它滤波器抽头长度,包括2-D不可分滤波器)。图3描绘了根据本发明一个实施方式的基于分数像素的运动插值的示例。在图3中,示出了整数像素位置(阴影)和分数像素(1/2和1/4)位置(白色)之间的差值关系。将使用下面的滤波器对水平位置X,X e {A,B, C}进行插值Ps =^h^Rr.
\ J. /将使用下面的滤波器对竖直位置X,X e {D,H,L}进行插值
ΡΣ
( 2 )使用下面的滤波器对剩余的2-D分数像素位置X,X e {E,F,G,I,J,K,M,N, 0}进行插值ρχ-尺一
U sad(3)其中,或表示针对位置X, X e {A,B…0}的滤波器系数,并且Rnm表示围绕待插值的位置的参考图片中的整数像素位置。当在插值滤波器式子中使用的像素值超出了图片边界时,一般可以使用补白(padding)。
仅作为示例给出了用于对水平与竖直位置X,X e {A,B, C,D,H,L}进行插值的等式(I)与(2)中的I-D (—维)滤波器;也可以使用2-D (二维)不可分滤波器对这些位置进行插值,例如,以类似于等式(3)的方式。在运动插值期间,还可以(或可替代地)使用包括舍入与移位的定点操作(例如,16点算术)。用于运动预测的自适应插值滤波器可以明显地提高运动预测准确度并因此提高编码性能。例如,与使用固定的插值滤波器相反,自适应插值滤波器可以基于与初始输入视频有关的统计量来自适应地得到滤波器系数和。然后,可以预测、量化以及使用视
频比特流(例如,作为比特流的一部分)发送这些滤波器系数。示例自适应插值滤波等式(I)至(3)中的自适应滤波器系数/I,f和^是基于最小化预定义的失真测量来得到的。例如,如果将平方误差的和(或等效地,预测误差能量)用作失真测量,则通过最小化以下来得到滤波器系数SSE =>·> 一取沖2, ^、
(4 J其中,0(x, y)和P(x,y)代表位置(x,y)处的输入视频信号和预测视频信号。对于每个亚像素位置X,X e {A,B…0},预测信号Px (X,y)还可以计算为Px (X, V)
M M
=上 Rix —一 _ + P€}^、y 一卿vykn. —it + FO.^ ))2
-(5)其中,R(x,y)代表位置(x,y)处的参考中的整数像素值,AjJw代表与亚像素位置X对应的滤波器系数,(mvxint, mvyint)代表运动矢量(mvx, mvy)的整数部分,以及FOx =寻一I分别代表在水平维度与竖直维度(如果使用六抽头滤波器,则FOx = FOv = 2)上的滤波器偏移。亚像素位置X还被根据运动矢量(mvx,mvy)导出。例如,如果mVX=0. 5并且mvy=0· 5 (两者都具有1/2像素的精度),则X=J,其中J在图3中标记出。编码器100可以使用线性最佳化过程来最小化预测误差SSE (或任何其它的失真测量)以导出。最终,可以通过计算以下来找到最佳的滤波器系数
(RT · R) · hx’°pt = Rt · O (6)其中
权利要求
1.一种方法,包括步骤 在视频编码器或视频解码器中的一个或更多个中建立至少一个滤波器缓冲区;以及在所述至少一个滤波器缓冲区中缓冲一个或更多个滤波器;以及使用所述至少一个滤波器缓冲区中的所述一个或更多个滤波器来对输入视频信号进行编码。
2.根据权利要求I所述的方法,其中,已缓冲的所述一个或更多个滤波器包括一个或更多个自适应滤波器。
3.根据权利要求I所述的方法,还包括以下步骤中的一个或更多个 在所述解码器处接收一个或更多个自适应滤波器,其中,所述一个或更多个自适应滤波器构成在所述解码器处接收的视频比特流的一部分;或者 在所述编码器处导出所述一个或更多个自适应滤波器中的至少之一。
4.根据权利要求I所述的方法,其中,所述缓冲区被建立在视频编码器中,所述方法还包括对图片或片段中的一个或更多个进行编码的步骤。
5.根据权利要求I所述的方法,还包括对已缓冲的滤波器进行索引的步骤。
6.根据权利要求I所述的方法,其中, 当在所述编码器处建立了所述滤波器缓冲区时,所述方法还包括步骤基于与使用所述编码器编码的图片或片段相对应的特征或统计量中的一个或更多个来动态地更新所述滤波器缓冲区; 当在所述解码器处建立了所述滤波缓冲区时,所述方法还包括步骤基于与使用所述解码器在视频比特流中接收的图片或片段相对应的特征或统计量中的一个或更多个来动态地更新所述滤波器缓冲区;以及 其中,当在所述编码器或所述解码器处动态地更新了所述滤波缓器冲区时,所述方法还包括步骤关于所述动态更新步骤中的一个或更多个将所述编码器和所述解码器同步。
7.根据权利要求I所述的方法, 其中,在所述编码器处,所述方法还包括以下步骤中的一个或更多个 分析视频图片的每个区域;以及 至少部分基于所述分析步骤将所述图片分割成一个或更多个图像区域;或 针对视频序列的图片组导出至少一个自适应滤波器; 缓冲所述至少一个自适应滤波器;以及 在第二比特流单元的发送之前或期间,在第一比特流单元中发送所述至少一个自适应滤波器,其中,所述至少一个自适应滤波器用于对所述图片组进行编码;或者其中,在所述解码器处,所述方法还包括以下步骤中的一个或更多个 在所述解码器处接收所述第一比特流单元中的所述一个或更多个自适应滤波器; 缓冲所述至少一个自适应滤波器;以及 接收所述第二比特流单元,其中,所述至少一个自适应滤波器用于对所述图片组进行解码。
8.根据权利要求I所述的方法,还包括步骤 管理所述至少一个滤波器缓冲区。
9.根据权利要求8所述的方法,其中,当编码器发送了新的自适应滤波器并且解码器接收了所述新的自适应滤波器时,所述管理步骤包括步骤将所述新的自适应滤波器添加到所述新的自适应滤波器所关联的所述滤波器缓冲区; 当进行了所述新的自适应滤波器的发送和接收并且所述编码器和所述解码器同步地判定满足一个或更多个条件时,所述管理步骤包括步骤将所述新的自适应滤波器添加到所述新的自适应滤波器所关联的所述滤波器缓冲区;或者 在进行了所述新的自适应滤波器的发送和接收时,所述管理步骤包括步骤 在所述编码器处在所述视频比特流中发送附加语法;以及 在所述解码器处接收所述视频比特流中的所述附加语法; 其中,所述附加语法指示所述新的自适应滤波器是否要被添加到所述新的自适应滤波器所关联的所述滤波器缓冲区,以及进行以下操作中的至少之一 在所述附加语法具有至少两个值中的第一值时,至少部分地基于所述附加语法的所述第一值来将所述新的自适应滤波器添加到所述新的自适应滤波器所关联的所述滤波器缓冲区;或者 在所述附加语法具有所述至少两个值中的第二值时,至少部分地基于所述附加语法的所述第二值来维持所述滤波器缓冲区的无所述新的自适应滤波器的状态。
10.根据权利要求8所述的方法,其中,所述管理步骤包括以下步骤的一个或更多个 确定所述滤波器缓冲区的容量状态; 指定每个滤波器缓冲区的容量大小,其中,所述滤波器缓冲区中的第一滤波器缓冲区的所述容量大小独立于所述滤波器缓冲区中的第二滤波器缓冲区的所述容量大小; 布置所述至少一个滤波器缓冲区中缓冲滤波器的顺序;或者 指定至少一个默认滤波器。
11.根据权利要求I所述的方法,其中,所述至少一个滤波器缓冲区中的所述一个或更多个滤波器被用于执行运动插值、运动估计、运动补偿、运动估计插值、运动补偿插值、运动预测插值或运动预测之一或更多;以及 其中,所述方法还包括以下步骤中的一个或更多个 使用至少两个(2)参考图片来对当前图片或片段中的一个或更多个进行编码;或 使用至少两个(2)参考图片来对当前图片或片段中的一个或更多个进行解码; 其中,与用于所述至少两个参考图片中的至少第二参考图片的所述自适应滤波器中的至少之一相独立地,通过信号通知用于所述至少两个参考图片中的第一参考图片的所述自适应滤波器中的一个或更多个。
12.根据权利要求11所述的方法 其中,所述使用至少两个(2)参考图片来对当前图片或片段中的一个或更多个进行编码的步骤包括以下步骤 通过信号通知用于所述至少两个(2 )参考图片中的所述第一参考图片的所述一个或更多个自适应滤波器;以及 单独地通过信号通知用于所述至少两个(2 )参考图片中的至少所述第二参考图片的所述至少一个自适应滤波器;或者 其中,所述使用至少两个(2)参考图片对当前图片或片段中的一个或更多个进行编码的步骤包括以下步骤 准确化所述当前图片或片段与所述至少两个(2)参考图片中的每个参考图片之间的运动预测关系;以及 在与准确化的运动预测关系相关联的误差能量减小的情况下补偿比特成本,所述比特成本与所述单独地通过信号通知用于所述至少两个(2 )参考图片中的至少所述第二参考图片的所述至少一个自适应滤波器的步骤相关联。
13.根据权利要求11所述的方法 其中,所述编码步骤或所述解码步骤中的一个或更多个包括双向预测;或者其中,所述编码步骤包括多假设预测,其中,所述预测被形成为至少三个预测信号的组合;或者 其中,所述编码步骤或所述解码步骤中的一个或更多个包括对一个或更多个自适应滤波器进行改善的步骤;或者 其中,所述使用至少两个(2)参考图像对当前图片或片段中的一个或多个进行编码的步骤包括步骤 通过信号通知用于所述至少两个参考图片中的所述第一参考图片的所述一个或更多个自适应滤波器;以及 单独地通过信号通知用于所述至少两个参考图片中的至少所述第二参考图片的所述至少一个自适应滤波器。
14.根据权利要求11所述的方法,其中,为存储在参考图片缓冲区中的至少一个参考图片建立所述至少一个滤波器缓冲区中的至少之一。
15.根据权利要求2至14中的一项或多项所述的方法,其中,所述一个或更多个自适应滤波器包括以下中的至少之一 自适应差值滤波器; 自适应环路滤波器;或者 自适应后环路滤波器。
16.—种系统,包括 用于处理、进行或执行根据权利要求I至15中的一项或更多项所述的一个或更多个处理步骤的装置。
17.—种视频编码器,包括 至少一个处理器;以及 计算机可读存储介质,所述计算机可读存储介质包括编码指令,所述编码指令使得或控制所述至少一个处理器来进行或执行根据权利要求I至15中的一项或更多项所述的一个 或更多个处理步骤。
18.—种视频解码器,包括 至少一个处理器;以及 计算机可读存储介质,所述计算机可读存储介质包括编码指令,所述编码指令使得或控制所述至少一个处理器来进行或执行根据权利要求I至15中的一项或更多项所述的一个或更多个处理步骤。
19.一种计算机装置,包括至少一个处理器;以及 计算机可读存储介质,所述计算机可读存储介质包括编码指令,所述编码指令使得或控制所述至少一个处理器来进行或执行根据权利要求I至15中的一项或更多项所述的一个或更多个处理步骤。
20.一种集成电路(IC)器件,所述集成电路器件进行或执行根据权利要求I至15中的一项或更多项所述的一个或更多个处理步骤。
21.根据权利要求20所述的集成电路器件,包括以下中的至少之一 可编程逻辑器件(PLD); 现场可编程门阵列(FPGA); 数字信号处理器(DSP); 专用集成电路(ASIC);或者 微控制器。
22.—种计算机系统的用途,包括 处理、进行或执行根据权利要求I至15中的一项或更多项所述的一个或更多个处理步骤。
23.一种包括指令的计算机可读存储介质,所述指令在由至少一个处理器执行或进行时,使得或控制所述至少一个处理器来 进行、执行或控制根据权利要求I至15中的一项或更多项所述的一个或更多个处理步骤; 编程、指令或控制以下中的至少一种 根据权利要求16所述的系统; 根据权利要求17所述的视频编码器; 根据权利要求18所述的视频解码器; 根据权利要求19所述的计算机装置; 编程、配置或控制根据权利要求20至21中的一项或更多项所述的集成电路器件中的至少之一;或者 进行、执行或控制根据权利要求22所述的计算机用途。
全文摘要
在视频编码器和/或视频解码器中建立缓冲区。在所建立的缓冲区中缓冲自适应滤波器。使用缓冲的滤波器对输入视频信号进行编码。可以对滤波器缓冲区进行管理,例如,关于缓冲区大小或容量、缓冲区内的滤波器的布置和缓冲的默认滤波器。自适应滤波器可以用信号来通知并且可以针对多个参考图片来缓冲。
文档编号H04N7/26GK102714727SQ201180006242
公开日2012年10月3日 申请日期2011年1月5日 优先权日2010年1月14日
发明者亚历山德罗斯·图拉皮斯, 叶琰 申请人:杜比实验室特许公司