本申请按照35U.S.C.§119(e)要求在先提交的美国临时申请No.61/835,340(2013年6月14日提交)和美国临时申请No.61/847,070(2013年7月16日提交)的优先权,在此通过引用将其全部内容合并于此。
具体实施方式
如下更详细所述,用于上采样过程期间使用的滤波器的系数的特定集合可以提供最佳结果。首先一般性描述上采样过程,然后描述特定系数的使用。
上采样概述
图3示出根据一个实施例的用于实现上采样过程的一般性方框图。上采样过程可以在编码或解码中使用。可以确定上采样过程或重采样过程以将上采样数据y’与全分辨率数据y之间的误差E(例如均方差)最小化。图3的系统包括选择输入样本模块300,其对输入视频信号进行采样。该系统进一步包括选择滤波器模块302来从随后的滤波器输入样本模块304中选择一个滤波器以对来自模块300的选择输入样本进行上采样。
在模块300中,首先选择视频信号x中的输入样本的集合。一般而言,样本可以是x中样本的二维子集,并且可将二维滤波器应用于样本。模块302从模块300接收x中的数据样本,并根据它所接收的数据识别每个样本的位置,使得模块302能够选择适当的滤波器以将样本引导到随后的滤波器模块304。模块304中的滤波器被选择为对输入样本进行滤波,其中所选择的滤波器被挑选或配置为具有与所期望的特定输出样本位置相对应的相位。此外,特定实施例选择的滤波器系数值提供最佳上采样结果。
滤波器输入样本模块304可包括分立的行和列滤波器。本文将滤波器的选择表示为滤波器h[n;p],其中所述滤波器可以是沿着每个行或列分立的,并且p代表对于滤波器的相位指数选择。使用所选择的输入样本上的所选择的滤波器h[n;p]的滤波过程的输出产生输出值y’。
图4示出对于具有固定滤波器的系统,图3的选择样本模块302(在图4中标记为302a)以及图3的滤波器模块304(在图4中标记为304a)的组件的细节。对于分立的滤波,输入样本可以沿着数据的行或列。为了从选择输入样本模块300提供输入样本的集合,选择滤波器模块302a包括选择控制400,其识别输入样本x[m]并将信号提供给选择器402,通过选择器402将它们引导到期望的滤波器。输入样本可以来自基层并且在增强层的编码过程中使用,或者在解码过程中用于对增强层进行解码并利用增强层产生全分辨率视频。如同本文使用的,“代码化”可以是指编码或解码过程。然后,滤波器模块304a包括可应用于输入样本的不同滤波器h[n;p],其中根据期望的输出样本n,可以在来自每个行或列元素的p个相位中,选择滤波器相位。如图所示,基于来自选择控制400的“Filter(n)SEL”信号,模块302a的选择器402将输入样本引导到304a中期望的列或行滤波器。分立的选择控制400信号“Phase(p)SEL”针对每个行或列元素选择适当的滤波器相位,并且还选择系数值。滤波器模块304a的输出产生输出y’[n]。
在图4中,来自个体滤波器组件h[n;p]的输出被示出为增加“+”以产生输出y’[n]。这说明每个方框(例如h[0;p])表示具有相位p的滤波器中的一个系数或号码。因此,用h[0;p],…,h[n;p]中的全部n+1个号码来代表具有相位p的滤波器。这是应用于所选择的输入样本以产生输出值y’[n]的滤波器,例如y’[0]=h[0,p]*x[0]+h[1,p]*x[1]+…+h[n,p]*x[n],要求所图示的加法功能“+”。作为图4中加法的替选,可以用实线连接代替“+”,并且可以从表示p个相位的p个滤波器的库的一个输出中选择输出y’[n],模块304a中的方框h[n;p]例如被重新标记为h[n;0],h[n,1],…,h[n,p-1],并且现在每个方框将具有形成y’[n]所需的全部滤波器系数,不需要所要求的加法元素。
虽然模块304a中的滤波器h[n;p]被示出为分立的相位固定装置,但是也可以利用具有所选择并且自适应控制的相位p的单个滤波器来实现它们。自适应相位滤波器可通过软件重新配置。因此可将自适应滤波器设计为使得每个滤波器h[n;p]对应于期望的相位p。可以在来自编码器的EL中发信号通知滤波器系数h[n;p],使得解码器可将预测重构为FR数据。
对于滤波器h[n;p]的相位选择使得能够根据BL数据重建FR层。例如,如果通过从FR移除数据的每个其他像素来创建BL数据,以根据所述BL数据重建FR数据,则必须根据可用的BL数据来复制或插值所移除的数据。在这种情况下,根据所移除的是偶数指数样本还是奇数指数样本,可以使用具有相位p的适当滤波器h[n;p]来对新数据进行插值。从滤波器h[n;p]中选择p个不同相位滤波器允许挑选适当的相位移位以根据如何从FR数据下采样BL数据来重建丢失的数据。此外,滤波器系数的选择提供最佳上采样结果。
滤波器系数
根据可缩放性比率和任何相位偏差,可以挑选不同的相位用于上采样(重采样)操作。在一个实施例中,HEVC扩展指定具有可以使用的1/16分辨率的16个可能的相位0-15。对于亮度分量,可以使用相位0(0/16)、1(1/16)、2(2/16)、3(3/16)、4(4/16)、5(5/16)、6(6/16)、7(7/16)、8(1/2)、9(-7/16)、10(-6/16)、11(-5/16)、12(-4/16)、13(-3/16)、14(-2/16)以及15(-1/16)。在一个实施例中,对于上采样滤波,特定实施例使用+/-1/6相位偏差滤波器的集合来从基层分辨率到全分辨率插值上采样值。在一个实施例中,对于1.5X的可缩放性,其中全分辨率处于相比基层高1.5X的分辨率,用于基层的下采样滤波可以引入1/4的相位偏差。在这种情况下,以1/4的相位偏差将像素从视频的全分辨率版本移除。使用{-1/6,1/2,1/6}的1/6滤波器集合的上采样滤波可以补偿该相位偏差。在一个实施例中,可将表I中的以下系数用于滤波器:
-1/6 |
-1 |
3 |
-6 |
14 |
58 |
-5 |
1 |
0 |
1/2 |
-1 |
4 |
-11 |
40 |
40 |
-11 |
4 |
-1 |
1/6 |
0 |
1 |
-5 |
58 |
14 |
-6 |
3 |
-1 |
表1
在表I中,也可以使用用于1/2相位滤波器的其他系数。此外应当理解,可以单独使用1/6滤波器集合中的相位,或者也可以与用于其他相位的其他系数一起使用。也就是说,这些滤波器系数不需要同时使用。下面将描述使用以上滤波器的过程。
图5描绘出根据一个实施例的用于执行上采样滤波的方法的简化流程图500。如上所述,上采样可用于对来自用于可缩放视频中相比基层更高的层的样本值的上采样值进行插值。在502处,选择样本模块302a接收样本值。例如,样本值可以是来自基层的值,诸如来自像素的行或列。在504处,选择样本模块302a可以选择1/6滤波器集合中的一个滤波器。例如,对于1/6滤波器集合中的每个滤波器可以执行以下过程以产生用于行或列的三个上采样值。一旦选择了滤波器,在506处,选择样本模块302a就可以选择用于该滤波器的系数。例如,如果选择样本模块302a选择-1/6滤波器,则选择系数[-1,3,-6,14,58,-5,1,0]作为系数。可以确定这些系数以产生最佳插值结果,用于从样本值产生上采样值。然后,滤波器模块304a可将所述系数分配给滤波器以加权样本值。在508处,滤波器模块304a通过将系数应用于样本值来计算用于-1/6滤波器的上采样值以对上采样值进行插值。
在510处,然后滤波器模块304a输出上采样值。在用于视频的亮度分量的行或列中,该上采样值可以是用于-1/6位置的值。如上所述,上采样值可以对在产生基层时从全分辨率视频移除的值进行插值。然后编码器或解码器可以在对来自基层的视频的更高层的对应视频进行编码或解码时使用上采样值。例如,可以使用上采样值或者经进一步处理的上采样值作为预测更高分辨率视频的基础。
然后,对于1/2相位偏差以及1/6相位偏差可以重复上述过程,其中输出用于1/2相位偏差以及1/6相位偏差的上采样值。图6A描绘出根据一个实施例的对于整个1/6滤波器集合执行上采样的方法的更详细的流程图600。在602处,滤波器模块304a分配用于-1/6滤波器的系数[-1,3,-6,14,58,-5,1,0]。在这种情况下,系数加权-1/6滤波器的对应抽头中的对应样本值。例如,可将每个系数与从基层接收对应样本值的滤波器抽头相关联。在604处,滤波器模块304a通过将所述样本值应用于-1/6滤波器系数来计算用于-1/6相位偏差的上采样值。
在606处,滤波器模块304a将1/2滤波器系数[-1,4,-11,40,40,-11,4,-1]分配给1/2滤波器抽头。此外如上所述,可以使用用于1/2滤波器的不同系数。在608处,滤波器模块304a通过将所述样本值应用于1/2滤波器的系数来计算用于1/2相位偏差的上采样值。
在610处,滤波器模块304a分配用于1/6滤波器的系数[0,1,-5,58,14,-6,3,-1]。在612处,滤波器模块304a通过将所述样本值应用于1/6滤波器中的对应系数来计算用于1/6相位偏差的上采样值。
在614处,滤波器模块304a输出用于-1/6相位偏差、1/2相位偏差、以及1/6相位偏差的上采样值。然后在编码或解码过程中使用这些值。
例如,利用空间相邻全图元像素L3、L2、L1、L0、R0、R1、R2和R3的值,将1/6相位偏差位置FL和-1/6相位偏差位置FR进行插值,如下:
FL=(0*L3+1*L2-5*L1+58*L0+14*R0-6*R1+3*R2-1*R3+offset)>>shift;
FR=(-1*L3+3*L2-6*L1+14*L0+58*R0-5*R1+1*R2+0*R3+offset)>>shift.
在上文中,FL是像素L0与像素R0之间的左全分辨率像素,而FR是像素L0与像素R0之间的右全分辨率像素。L1、L2、L3是左邻像素,而R1、R2、R3是右邻像素。
这里为了完整起见,给出与零滤波器系数的乘法。但是在一个实施方式中不必执行运算,并且可以降低复杂程度。通过将系数值应用于全图元像素值(L3、L2、L1、L0、R0、R1、R2和R3)来计算相位偏差。例如将全图元像素值乘以对应的系数值。然后,将相乘结果加总。加入“偏差(offset)”的值并且结果右移“移位(shift)”。例如,根据所期望的不同舍入操作,偏差和移位的值可以不同。例如利用偏差(offset)=32和移位(shift)=6,加上“32”和向右移位(6位)等同于加32和除以64,这样将值缩减。也可将所得值缩减到允许值的范围。也可以考虑其他操作。例如可将系数应用于不同的全图元像素值(例如,一个系数值应用于多个全图元值,或者多个系数值应用于一个全图元值等),也可以执行不同的缩减操作。
作为+/-1/6相位的替选,可以如下使用近似的第+/-3/16个上采样相位偏差来代替-1/16滤波器和1/16滤波器:
-3/16 |
0 |
1 |
-4 |
13 |
60 |
-8 |
3 |
-1 |
3/16 |
-1 |
3 |
-8 |
60 |
13 |
-4 |
1 |
0 |
图6B描绘出根据一个实施例的对于整个3/16滤波器集合执行上采样的方法的更详细流程图620。应当理解,可以单独地使用3/16滤波器集合中的相位,也可以与用于其他相位的其他系数一起使用。也就是说,这些滤波器系数不需要一起使用。在622处,滤波器模块304a分配用于-3/16滤波器的系数[0,1,-4,13,60,-8,3,-1]。在这种情况下,系数加权-3/16滤波器的对应抽头中的对应样本值。例如,可将每个系数与从基层接收对应样本值的滤波器抽头相关联。在624处,滤波器模块304a通过将样本值应用于-3/16滤波器系数来计算用于-3/16相位偏差的上采样值。
在626处,滤波器模块304a将1/2滤波器系数[-1,4,-11,40,40,-11,4,-1]分配给1/2滤波器抽头。此外如上所述,可以使用用于1/2滤波器的不同系数。在628处,滤波器模块304a通过将样本值应用于1/2滤波器的系数来计算用于1/2相位偏差的上采样值。
在630处,滤波器模块304a分配用于3/16滤波器的系数[-1,3,-8,60,13,-4,1,0]。在632处,滤波器模块304a通过将样本值应用于3/16滤波器中的对应系数来计算用于3/16相位偏差的上采样值。
在634处,滤波器模块304a输出用于-3/16相位偏差、1/2相位偏差、以及3/16相位偏差的上采样值。然后在编码或解码过程中使用这些值。
例如,利用空间相邻全图元像素L3、L2、L1、L0、R0、R1、R2和R3的值,将3/16相位偏差FL(相位3或+3/16)和FR(相位13或-3/16)进行插值,如下:
FL=(-1*L3+3*L2-8*L1+60*L0+13*R0-4*R1+1*R2+0*R3+offset)>>shift;
FR=(0*L3+1*L2-4*L1+13*L0+60*R0-8*R1+3*R2+-1*R3+offset)>>shift.
如上所述,将上述滤波器集合用于亮度上采样。对于+/-1/6和+/-3/16相位偏差,用于色度上采样的对应滤波器可以如下:
-1/6 |
-4 |
16 |
53 |
-1 |
1/2 |
-4 |
36 |
36 |
-4 |
1/6 |
-1 |
53 |
16 |
-4 |
-3/16 |
-4 |
17 |
53 |
-2 |
3/16 |
-2 |
53 |
17 |
-4 |
在另一个实施例中,可以使用用于+/-6/16相位偏差的不同系数值。例如,用于6/16滤波器系数的值可以是[-1,3,-9,47,31,-10,4,-1],而用于-6/16相位偏差的系数值可以是[-1,4,-10,31,47,-9,3,-1]。此外,在一个实施例中,可以使用以下系数:
亮度:
Phase2{-13-7638-310}
Phase5{-14-115423-73-1}
Phase6{-13-94731-104-1}
Phase10{-14-103147-93-1}
Phase11{-13-72354-114-1}
Phase14{01-3863-73-1}
色度
Phase1{0588-2}or{-26420}
Phase3{-45812-2}or{-25317-4}
Phase5{-44824-4}
Phase6{-44428-4}
Phase7{-64430-4}
Phase9{-43044-6}
Phase10{-42844-4}
Phase11{-42448-4}
Phase13{-21258-4}or{-41753-2}
Phase15{-28580}or{0264-2}
在上文中,用于亮度分量的相位6和相位10滤波器系数对应于6/16和-6/16滤波器系数。图7描绘出根据一个实施例的对于另一个6/16滤波器集合,针对不同系数执行上采样的方法的更详细流程图700。在702处,滤波器模块304a分配用于6/16滤波器的系数[-1,3,-9,47,31,-10,4,-1]。在704处,滤波器模块304a通过将样本值应用于6/16滤波器系数来计算用于6/16相位偏差的上采样值。
在706处,滤波器模块304a将1/2滤波器系数[-1,4,-11,40,40,-11,4,-1]分配给1/2滤波器抽头。这些系数可以与上文使用的相同,也可以不同。在708处,滤波器模块304a通过将样本值应用于1/2滤波器的系数来计算用于1/2相位偏差的上采样值。
在710处,滤波器模块304a分配用于-6/16滤波器的系数[-1,4,-10,31,47,-9,3,-1]。在712处,滤波器模块304a通过将样本值应用于-6/16滤波器中的对应系数来计算用于-6/16相位偏差的上采样值。
在714处,滤波器模块304a输出用于6/16相位偏差、1/2相位偏差、以及-6/16相位偏差的上采样值。然后可以在对于更高层的编码或解码过程中使用这些值。
例如,利用空间相邻全图元像素L3、L2、L1、L0、R0、R1、R2和R3的值,将6/16相位偏差FL(相位6或+6/16)和FR(相位10或-6/16)进行插值,如下:
FL=(-1*L3+3*L2-9*L1+47*L0+31*R0-10*R1+4*R2+-1*R3+offset)>>shift;
FR=(-1*L3+4*L2-10*L1+31*L0+47*R0-9*R1+3*R2-1*R3+offset)>>shift.
在另一个实施例中,可以使用以下系数:
亮度:
Phase0{0,0,0,64,0,0,0,0},
Phase1{0,1,-3,63,4,-2,1,0},
Phase2{0,2,-6,61,9,-3,1,0},
Phase3{-1,3,-8,60,13,-4,1,0},
Phase4{-1,4,-10,58,17,-5,1,0},
Phase5{-1,4,-11,52,26,-8,3,-1},
Phase6{-1,4,-11,50,29,-9,3,-1},
Phase7{-1,4,-11,45,34,-10,4,-1},
Phase8{-1,4,-11,40,40,-11,4,-1},
Phase9{-1,4,-10,34,45,-11,4,-1},
Phase10{-1,3,-9,29,50,-11,4,-1},
Phase11{-1,3,-8,26,52,-11,4,-1},
Phase12{0,1,-5,17,58,-10,4,-1},
Phase13{0,1,-4,13,60,-8,3,-1},
Phase14{0,1,-3,9,61,-6,2,0},
Phase15{0,1,-2,4,63,-3,1,0}
色度:
Phase0{0,64,0,0},
Phase1{-2,62,4,0},
Phase2{-2,58,10,-2},
Phase3{-4,56,14,-2},
Phase4{-4,54,16,-2},
Phase5{-6,52,20,-2},
Phase6{-6,46,28,-4},
Phase7{-4,42,30,-4},
Phase8{-4,36,36,-4},
Phase9{-4,30,42,-4},
Phase10{-4,28,46,-6},
Phase11{-2,20,52,-6},
Phase12{-2,16,54,-4},
Phase13{-2,14,56,-4},
Phase14{-2,10,58,-2},
Phase15{0,4,62,-2}.
系数信令
在一个实施例中,解码器要知道在编码器中使用了哪些系数以对视频的全分辨率进行解码。可以使用不同的方法将编码器所使用的系数通知解码器。图8描绘出根据一个实施例的用于传递在编码过程期间使用哪些系数的系统的示例。编码器802可以类似于图1所示出的编码器E1和E0。解码器804可包括一个或多个解码器(例如解码器D0和D1),解码器可对基层和其他增强层进行解码以提供更高分辨率图片或全分辨率图片。
编码器802中的系数管理器806-1可以确定如何将编码过程中所使用的系数通知解码器804。然后解码器804的系数管理器806-2可以确定系数。编码器802可以明确地传送滤波器系数。在一个实施例中,编码器802可以使用不同的方法来通知解码器804。例如,编码器802可将用于1/6滤波器集合的每个系数传送给解码器804。在另一个实施例中,可以明确地传送滤波器系数与滤波器的一些其他参考集合之间的差异。在这种情况下,系数管理器806-1可以确定1/6滤波器集合系数与另一个集合之间的差异。例如,系数管理器806-1可以从另一个集合的值减去用于1/6滤波器集合的系数值。然后,编码器802将差异发送给解码器804。发送差异可以节约比特。然后系数管理器806-2可以基于差异以及其他滤波器确定系数。
在另一个实施例中,一些滤波器系数可以是其他滤波器的时间反转版本。例如,对于上述-1/6滤波器和1/6滤波器,系数是反转的。也就是说,用于-1/6滤波器的值与用于1/6滤波器的值是反转的,如用于-1/6滤波器第一位置的值为-1且用于1/6滤波器最末位置的值为-1,用于-1/6滤波器第二位置的值为3且用于1/6滤波器倒数第二位置的值为3,等等。在一个实施例中,系数管理器806-1可以促使编码器802发信号通知指示时间反转的标记。
在一个示例中,对于集合中的N个滤波器(例如,在1/6滤波器集合中N=3),对于最后N/2个滤波器,(N+1)/2<=i<N,编码器802可以发送指示滤波器系数是否为时间反转版本的标记。如果针对滤波器i对标记进行设置,(N+1)/2<=i<N,则将滤波器i设置为滤波器N-1-i的时间反转版本。如果没有针对滤波器i对所述标记进行设置,则编码器802将系数发信号通知滤波器i。替选地,可以在单个父系多相滤波器中反映滤波器中的对称。利用对称,父系多相滤波器系数只有第一半需要发信号通知(对于奇数长度的滤波器包括中点),并且解码器804中的系数管理器806-2可以利用对称推导出其余滤波器系数。系数管理器806-2可以检测标记,然后基于时间反转确定系数值。在这种情况下,编码器802只需要发信号通知时间反转系数的一半(以及奇数数目系数的附加系数),然后系数管理器806-2可以确定另一半。
图9描绘出根据一个实施例的用于发信号通知滤波器系数的方法的简化流程图900。在902处,编码器802确定在上采样过程期间要使用的滤波器系数。例如,确定用于1/6滤波器集合的系数。
在904处,编码器802确定信令方法。例如,编码器802可以分析系数值以确定是所有系数都需要明确地发信号通知还是只有一些系数需要发信号通知。此外,可能只需要发送系数与另一个滤波器集合的差异。编码器802可以动态地确定信令方法,或者可以对于正在使用的特定滤波器集合使用预设的信令方法。
在906处,编码器802将编码过程中用于对样本值进行上采样的系数发信号通知解码器804。此外在908处,编码器802可以将信息(例如标记)发信号通知解码器804,所述信息指示如何确定滤波器系数。例如,标记可以指示滤波器系数是时间反转的。然后解码器804可以确定要使用的系数值。
在其他实施例中,可以通过编码器802和解码器804隐含地确定所使用的系数。例如,编码器802和解码器804可以独立地分析视频流中的信息以确定使用哪个系数。
可以在非暂时性计算机可读存储介质中实现特定实施例,所述计算机可读存储介质由指令执行系统、设备、系统或机器使用或与其结合使用。所述计算机可读存储介质包含控制计算机系统以执行特定实施例所述的方法的指令。计算机系统可包括一个或多个计算装置。所述指令在由一个或多个计算机处理器执行时,可操作以执行特定实施例所述的方法。
如同本文描述中使用的并且在后附整个权利要求中,“一个”和“所述”包括复数含义,除非上下文明确地另有所指。此外,如同本文描述中使用的并且在后附整个权利要求中,“在其中”的含义包括“在其中”和“在其上”,除非上下文明确地另有所指。
以上描述连同可以如何实现特定实施例的方面一起说明了各种实施例。以上示例和实施例不应当视为仅仅是实施例,并且被呈现以说明后附权利要求书所限定的特定实施例的灵活性和优点。基于以上公开和后附权利要求书,在不脱离权利要求书所限定范围的情况下,可以采用其他布置、实施例、实施方式和等同物。