CN103139561A - 半像素与四分之一像素插值滤波器 - Google Patents
半像素与四分之一像素插值滤波器 Download PDFInfo
- Publication number
- CN103139561A CN103139561A CN2011103990739A CN201110399073A CN103139561A CN 103139561 A CN103139561 A CN 103139561A CN 2011103990739 A CN2011103990739 A CN 2011103990739A CN 201110399073 A CN201110399073 A CN 201110399073A CN 103139561 A CN103139561 A CN 103139561A
- Authority
- CN
- China
- Prior art keywords
- pixel
- sub
- coordinate
- interpolation filter
- filter
- 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.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种用于视频编码中半像素、四分之一和四分之三子像素插值的插值滤波器。与当前最优的插值滤波器相比,本发明所描述的插值滤波器在降低计算复杂度的同时提高了编码性能。
Description
技术领域
本发明属于数字视频压缩领域,具体涉及到帧间块预测。
背景技术
数字视频是通过对时域和空域连续的自然场景进行时域和空域连续采样所得。如图1所示,数字视频由一系列时域上的视频帧所组成,每个视频帧表示自然场景在某个时间的空域采样,它由二维均匀采样的视觉像素组成。每个像素由一系列描述像素亮度和色彩的数字组成,在视频编码中,最广泛被使用的格式是YUV格式,这种格式中,每个像素由一个亮度分量Y,两个色差分量U和V组成,一般对U和V分量水平和垂直方向各进行一次下采样,这样每相邻的4个像素共用1个U和V分量,这就是YUV4:2:0格式。视频数据的位深bitdepth一般为8或8以上,如8、10、14等。也就是说,Y或U、V分量的数据用bitdepth位二进制整数表示,其动态范围为[0,(1<<bitdepth)-1],在本文中,动态范围的最大值表示为MAXV=(1<<bitdepth)-1。
最广泛被使用的视频编码技术是块基混合运动补偿DCT变换视频编码技术。如图2所示,输入帧被劈分成一个个16x16的宏块,然后从左到右,从上到下依次进行编码。对每个输入的待编码当前宏块,首先从重构的帧中选择一个对当前块的预测,并与当前块相减,残差依次执行DCT变换、量化,然后反量化、反DCT变换得到重构宏块,存入重构帧序列中,用于对其后编码的宏块产生预测信号。在实际的预测过程中,宏块常常被分割成更小的8x8或4x4块来进行精确的预测。
当编码第一帧时,如图3所示,图中黑色的部分是已编码并已重构的宏块区域,灰色的是当前待编码宏块,白色的部分是未编码宏块区域。当前待编码的宏块的预测只能从黑色的区域选择。当前最流行的帧内预测技术,如图4所示就是4x4块的帧内预测模式示意图。将一个宏块分割为16个4x4块,或4个8x8块或1个16x16块,然后使用仅当前块的相邻像素如图4中4x4块左边和上边的A-L,依照一定的方向产生一个预测块,图4所示是9种预测模式。当A-L如图5所示赋值时,各个模式产生的预测块如图5所示。8x8块和16x16块的帧内预测过程也大致类似于此。
当编码接下去的帧的时候,由于有前面的重构帧存在,帧间预测成为可能。如图6和7所示,时间为t的帧中的黑色块是当前待编码块,t-t0帧和t+t1帧都是重构帧,t0和t1是非零整数。图6所示是单向预测,在重构帧t-t0中围绕当前块位置的一个范围进行运动估计,找到与当前块匹配的块,即图6所示深灰色的块,将其与作为当前块的预测。图7所示是双向预测。在t-t0和t+t1帧中进行运动估计,得到最好的两个预测块,将这两个预测块的加权和作为当前块的预测块。
表示当前块与预测块之间偏移量的叫运动向量,由于运动本身是连续的,所以运动向量可能指向非整数位置。但是因为编码过高的精度需要消耗很多比特,所以实际的视频编码中一般最多用到四分之一像素。由于分数像素位置的像素是不存在的,所以它们需要被计算出来以作为预测块。如图8所示:方框和大写字母表示的是整数像素样点,圆圈和小写字母表示的是二分之一或四分之一像素样点,即子像素样点。每个子像素样点有一个子像素位置坐标,如子像素样点a、b和c的垂直方向坐标即y坐标都是0,而水平方向坐标即x坐标分别是1/4,2/4和3/4这些子像素样点和整数像素样点位于同一水平线上。子像素样点d、h和n的x坐标都是0,y坐标分别是1/4,2/4和3/4,它们和整数像素样点位于同一条垂直线上。在本专利中,称x或y坐标其一为0的子像素点为第一类子像素点,而其余的子像素样点的x和y坐标则都非零,它们称为第二类子像素点。在当前正在制定的国际视频编码标准HEVC中,对所有的子像素样点,其插值采用如下3组8抽头滤波器得出:
四分之一像素位置:-1,4,-10,57,19,-7,3,-1
半像素位置:-1,4,-11,40,40,-11,4,-1
四分之三像素位置:-1,3,-7,19,57,-10,4,-1
其中四分之三像素的插值滤波器是四分之一像素的插值滤波器的转置。四分之一和四分之三像素插值滤波的计算过程都需要进行8次载入操作并进行12次加减法操作,其复杂度较高。对于第一类子像素位置a、b、c、d、h和n,其插值计算过程对与其位于同一行或同一列的整数像素直接应用相应的插值滤波器得到:
a1=-E+4×F-10×G+57×A+19×B-7×H+3×I-J a=clip((a1+32)>>6)
b1=-E+4×F-11×G+40×A+40×B-11×H+4×I-J b=clip((b1+32)>>6)
c1=-E+3×F-7×G+19×A+57×B-10×H+4×I-J c=clip((c1+32)>>6)
d1=-K+4×L-10×M+57×A+19×C-7×N+3×P-R d=clip((d1+32)>>6)
h1=-K+4×L-11×M+40×A+40×C-11×N+4×P-R h=clip((h1+32)>>6)
n1=-K+3×L-7×N+19×A+57×C-10×N+4×P-R n=clip((n1+32)>>6)
第二类子像素样点的计算则需要两次插值过程。下面以子像素位置e、i和p为例说明其计算过程。首先根据子像素样点的x坐标取水平方向插值滤波器。对于子像素位置e、i和p,其x坐标都是1/4,所以取四分之一像素插值滤波器。首先根据四分之一像素插值滤波器进行水平方向插值,计算出子像素位置u、v、w、a、m、x、y和z的值。为了保证第二次插值的精度,第一次插值过程并不进行最终结果的计算。如其中w计算如下:
w1=-U+4×V-10×W+57×M+19×X-7×Y+3×Z-Q
由于第一次插值的结果需要存储在一个缓冲区中以备第二次插值使用,为了降低存储和通信的花费,第一次插值的结果被剪切到15位精度有符号数,以w为例,即w2=(w1>>xshft)-0x2000,其中xshft=bitdepth+6-14。
然后根据子像素位置的y坐标取插值滤波器。e、i和p的y坐标分别是1/4、2/4和3/4,所以分别对子像素位置u、v、w、a、m、x、y和z应用四分之一、二分之一和四分之三滤波器,即可得到e、i和p的值。
e、i和p的计算如下:
e1=-u2+4×v2-10×w2+57×a2+19×m2-7×x2+3×y2-z2
e=clip((e1+(1<<(yshft-1))+0x80000)>>yshft)
i1=-u2+4×v2-11×w2+40×a2+40×m2-11×x2+4×y2-z2
i=clip((i1+(1<<(yshft-1))+0x80000)>>yshft)
p1=-u2+3×v2-7×w2+19×a2+57×m2-10×x2+4×y2-z2
p=clip((p1+(1<<(yshft-1))+0x80000)>>yshft)
其中yshft=12-xshft。
本专利提出一组新的半像素、四分之一及其相应的四分之三像素插值滤波器,和当前用于HEVC的最优插值滤波器相比,本专利所描述的滤波器不仅具有更低的计算复杂度,而且具有略微更高的编码性能。
发明内容
本发明所描述的一系列四分之一像素插值滤波器如图10所示。它们都是图12所示最优浮点滤波器的整数近似。图10所述四分之一像素插值滤波器全部满足以下三条特征:
1.优良的编码性能。全部具有优于当前已知的HEVC插值滤波器的性能。
2.较小的相移误差。对于八抽头或七抽头滤波器来说,相移误差由下式计算:
3.七抽头插值滤波器。由于抽头数较少,所以对内存带宽影响小,计算上也更简单一些。
本发明所描述的一系列半像素插值滤波器如图9所示。其中的八抽头滤波器具有相比当前最好的HEVC半像素滤波器略好的性能,而六抽头的则具有较低的复杂度。
如图8所示,对于第一类子像素点,a、b、c、d、h和n计算如下:
a1=y0×E+y1×F+y2×G+y3×A+y4×B+y5×H+y6×I a=clip((a1+64)>>7)
b1=x0×E+x1×F+x2×G+x3×A+x4×B+x5×H+x6×I+x7×J b=clip((b1+64)>>7)
c1=y0×J+y1×I+y2×H+y3×B+y4×A+y5×G+y6×F c=clip((c1+64)>>7)
d1=y0×K+y1×L+y2×M+y3×A+y4×C+y5×N+y6×P d=clip((d1+64)>>7)
h1=x0×K+x1×L+x2×M+x3×A+x4×C+x5×N+x6×P+x7×R h=clip((h1+64)>>7)
n1=y0×R+y1×P+y2×N+y3×C+y4×A+y5×M+y6×L n=clip((n1+64)>>7)
其中y0-7表示四分之一像素插值滤波器,取自图10,而x0-7表示半像素插值滤波器,取自图9。对于四分之三像素点,将四分之一像素插值滤波器转置应用于整数像素得出。
如图8所示,对于第二类子像素点,需要两步插值来得出最终的结果。第一步根据子像素x坐标来选择水平方向插值滤波器。图8中的第二类子像素点中,e、i和p的x坐标为四分之一,所以选择本发明图10所述四分之一滤波器;g、k和r的x坐标为四分之三,所以选择本发明图10所述四分之一滤波器的转置;f、j和q的x坐标是二分之一,所以选择本发明图9所述半像素插值滤波器。第二步根据子像素的y坐标选择垂直方向插值滤波器。图8中的第二类子像素点中,e、f和g的y坐标为四分之一,所以选择本发明图10所述的四分之一滤波器;p、q和r的y坐标为四分之三,所以选择本发明图10所述的四分之一滤波器并将其翻转作为垂直滤波器;i、j和k的y坐标是二分之一,所以选择本发明图9所述的半像素插值滤波器。下面以e、i和p为例说明当采用新的插值滤波器后的计算过程:
首先使用四分之一像素水平插值滤波器,计算出与e、i和p位于同一列的第一类子像素u、v、w、a、m、x、y和z的值,并剪切到15位精度有符号数。以w为例,其计算如下:
w1=y0×U+y1×V+y2×W+y3×M+y4×X+y5×Y+y6×Z
w2=(w1>>xshft)-0x2000,其中xshft=bitdepth+7-14
然后选择相应的垂直方向滤波器(e为四分之一像素滤波器,i为二分之一像素滤波器,p为四分之三像素滤波器),计算出e、i和p的值:
e1=y0×u2+y1×v2+y2×w2+y3×a2+y4×m2+y5×x2+y6×y2
e=clip((e1+(1<<(yshft2-1))+0x100000)>>yshft2)
i1=x0×u2+x1×v2+x2×w2+x3×a2+x4×m2+x5×x2+x6×y2+x7×z2
i=clip((i1+(1<<(yshft1-1))+0x80000)>>yshft1)
p1=y6×v2+y5×w2+y4×a2+y3×m2+y2×x2+y1×y2+y0×z2
p=clip((p1+(1<<(yshft2-1))+0x100000)>>yshft2)
其中yshft1=20-bitdepth,yshft2=21-bitdepth.
y0-7表示四分之一像素插值滤波器,取自图10,而x0-7表示半像素插值滤波器,取自图9。
附图说明
图1为数字视频示例。
图2为块基运动补偿DCT变换视频编码器。
图3为帧内编码示意图。
图4为4x4块的帧内预测。A,B,C,…H和M表示当前4x4块上面块的重构像素,I,J,K和L表示当前块左边块的重构像素。
图5为4x4块帧内预测数字效果图。
图6:块的运动估计与补偿。黑色块是当前待编码块,具有点状边界的浅灰色块是t-1帧中的与当前块位置相同的块。运动估计模块在点状大块区域内搜索得到最佳运动向量,深黑色块是搜索到的预测块,它将被当前块相减,残差接着做DCT变换、量化,得到量化系数编入码流,然后反量化、反DCT并与预测块相加得到当前块的重构
图7:块的双向运动估计与补偿。黑色块是当前待编码块,具有点状边界的浅灰色块是当前块位置相同的块。2个深黑色块是搜索到的预测块,它们的加权和将被当前块相减,残差接着做DCT变换、量化,得到量化系数编入码流,然后反量化、反DCT并与预测块相加得到当前块的重构
图8为子像素位置示例图
图9为本专利所发明的一系列半像素插值滤波器
图10为本专利所发明的一系列四分之一像素插值滤波器
图11为实施方式示例
图12为最优浮点四分之一像素八抽头插值滤波器
实施方式
如图11所示,一种用于视频像素亚像素插值的装置包括5个部分,输入装置A、第一步插值计算装置B、暂时存储装置D、第二步插值计算装置E和输出装置C,他们之间以总线相连以传输数据。输入装置A负责从视频帧缓冲区中取出插值滤波器需要的整数像素数据,并传送给插值第一步计算装置B。第一步插值计算装置首先分类子像素为第一类子像素或第二类子像素,如果是第一类子像素,那么根据其坐标选择相应的插值滤波器,应用于整数像素数据,结果经由总线传送至输出装置C。
如果是第二类子像素点,那么第一步插值装置B首先根据子像素的x坐标选择插值滤波器,应用于整数像素数据,产生一系列和当前子像素位于同一列的第一类子像素的值,结果剪切到14位或15位精度后通过总线传输至暂时存储装置D。然后第二步插值装置E从暂时存储装置D取得数据,然后根据子像素的y坐标选择插值滤波器,应用于从暂时存储装置D取得的第一类子像素数据,结果通过总线传送至输出装置C。
在第一步插值装置B和第二步插值装置E中选择插值滤波器时,如果是四分之一像素,那么所选择的插值滤波器是图10所描述的一系列四分之一像素插值滤波器中的一种。如果是四分之三像素,那么所选择的插值滤波器是图10所描述的一系列四分之一像素插值滤波器中的一种的倒置。如果是半像素,那么所选择的插值滤波器是图9所描述的一系列半像素插值滤波器中的一种。第一步插值装置B和第二步插值装置E中的插值计算电路由加法器、乘法器和移位器所组成。
上述装置可以是软件方式实现。但定制集成电路、FPGA或者其他可配置处理器等都可以是本发明的实现载体。
为了方便起见,这些操作被描述成不同的互连功能单元或者互连的软件模块。但这并不是必要的。在一些应用中,这些模块或者功能单元被集成到单一的逻辑器件、程序或操作中,而没有明显的界限。在任何情况下,这些功能单元或模块或描述的特征可以单一实现,或与其他模块或功能单元共同实现。
Claims (4)
1.一种视频图像亚像素插值的方法,其特征在于:
1)根据子像素的坐标选择插值计算的方式,如果当前子像素与整数像素位于同一行(如图8中子像素a、b和c)或同一列(如图8中子像素d、h和n)上(即第一类子像素),那么根据子像素在相应的行或列上的坐标选择相应的子像素插值滤波器,应用于对应行或列整数像素上计算得出。
2)如果当前子像素既不与整数像素位于同一行,也不与整数像素位于同一列(即第二类子像素),那么子像素的插值计算由2步完成,首先根据子像素的水平方向坐标选择相应的子像素插值滤波器,应用于整数像素行进行水平滤波计算,得到与当前子像素位于同一列,并和整像素位于同一行的第一类子像素的值,并将结果剪切至14位精度或13位精度;然后根据当前子像素的垂直方向坐标,选择相应的子像素插值滤波器,应用于和当前子像素位于同一列的第一类子像素,进行垂直滤波计算,得到当前子像素的值。
2.根据权利要求1所述方法,其特征在于,在计算第一类子像素的值时,如果其坐标为四分之一,其计算所选择的插值滤波器为说明书附图10所列的任意一种;当第一类子像素的坐标为四分之三时,其计算所选择的插值滤波器为说明书附图10所列的任意一种的转置;当第一类子像素的坐标为二分之一时,其计算所选择的插值滤波器为说明书附图9所列的任意一种。
3.根据权利要求1所述方法,其特征在于,在计算第二类子像素的值时,如果其水平方向坐标为四分之一,那么第一步计算所使用的水平方向滤波器为说明书附图10所列的任意一种;如果第二类子像素的水平方向坐标为四分之三,那么第一步计算所使用的水平方向滤波器为说明书附图10所列的任意一种的转置;如果第二类子像素的水平方向坐标为二分之一时,其计算所选择的插值滤波器为说明书附图9所列的任意一种。
4.根据权利要求1所述方法,其特征在于,在计算第二类子像素的值时,如果其垂直方向坐标为四分之一,那么第二步计算所使用的垂直方向滤波器为说明书附图10所列的任意一种;如果第二类子像素的垂直方向坐标为四分之三,那么第二步计算所使用的垂直方向滤波器为说明书附图10所列的任意一种的转置;如果第二类子像素的垂直方向坐标为二分之一,其计算所选择的插值滤波器为说明书附图9所列的任意一种。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103990739A CN103139561A (zh) | 2011-12-05 | 2011-12-05 | 半像素与四分之一像素插值滤波器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103990739A CN103139561A (zh) | 2011-12-05 | 2011-12-05 | 半像素与四分之一像素插值滤波器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103139561A true CN103139561A (zh) | 2013-06-05 |
Family
ID=48498796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011103990739A Pending CN103139561A (zh) | 2011-12-05 | 2011-12-05 | 半像素与四分之一像素插值滤波器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103139561A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106791881A (zh) * | 2016-12-28 | 2017-05-31 | 北京奇艺世纪科技有限公司 | 一种滤波方法及装置 |
CN108322759A (zh) * | 2018-02-24 | 2018-07-24 | 北京奇艺世纪科技有限公司 | 一种像素值获取方法及装置 |
CN109309837A (zh) * | 2018-10-29 | 2019-02-05 | 珠海市杰理科技股份有限公司 | 图像帧数据的运动估计方法、装置 |
US10462480B2 (en) | 2014-12-31 | 2019-10-29 | Microsoft Technology Licensing, Llc | Computationally efficient motion estimation |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863319A (zh) * | 2005-07-21 | 2006-11-15 | 华为技术有限公司 | 一种分数像素插值方法和编解码设备 |
US20090016634A1 (en) * | 2007-07-09 | 2009-01-15 | Analog Devices, Inc. | Half pixel interpolator for video motion estimation accelerator |
CN101816016A (zh) * | 2007-10-05 | 2010-08-25 | 诺基亚公司 | 利用像素对准的方向性自适应插值滤波器的视频编码 |
CN101990760A (zh) * | 2008-04-10 | 2011-03-23 | 高通股份有限公司 | 用于视频译码中的运动补偿的高级内插技术 |
-
2011
- 2011-12-05 CN CN2011103990739A patent/CN103139561A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863319A (zh) * | 2005-07-21 | 2006-11-15 | 华为技术有限公司 | 一种分数像素插值方法和编解码设备 |
US20090016634A1 (en) * | 2007-07-09 | 2009-01-15 | Analog Devices, Inc. | Half pixel interpolator for video motion estimation accelerator |
CN101816016A (zh) * | 2007-10-05 | 2010-08-25 | 诺基亚公司 | 利用像素对准的方向性自适应插值滤波器的视频编码 |
CN101990760A (zh) * | 2008-04-10 | 2011-03-23 | 高通股份有限公司 | 用于视频译码中的运动补偿的高级内插技术 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10462480B2 (en) | 2014-12-31 | 2019-10-29 | Microsoft Technology Licensing, Llc | Computationally efficient motion estimation |
CN106791881A (zh) * | 2016-12-28 | 2017-05-31 | 北京奇艺世纪科技有限公司 | 一种滤波方法及装置 |
CN106791881B (zh) * | 2016-12-28 | 2019-09-17 | 北京奇艺世纪科技有限公司 | 一种滤波方法及装置 |
CN108322759A (zh) * | 2018-02-24 | 2018-07-24 | 北京奇艺世纪科技有限公司 | 一种像素值获取方法及装置 |
CN108322759B (zh) * | 2018-02-24 | 2021-02-05 | 北京奇艺世纪科技有限公司 | 一种像素值获取方法、装置及电子设备 |
CN109309837A (zh) * | 2018-10-29 | 2019-02-05 | 珠海市杰理科技股份有限公司 | 图像帧数据的运动估计方法、装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105959706B (zh) | 图像编码装置和方法、以及图像译码装置和方法 | |
CN104935938B (zh) | 一种混合视频编码标准中帧间预测方法 | |
RU2544799C2 (ru) | Устройство кодирования движущихся изображений, устройство декодирования движущихся изображений, способ кодирования движущихся изображений и способ декодирования движущихся изображений | |
CN104320666B (zh) | 图像处理设备和方法 | |
CN104125466B (zh) | 一种基于gpu的hevc并行解码方法 | |
CN101790092B (zh) | 基于图像块编码信息的智能滤波器设计方法 | |
US20060222074A1 (en) | Method and system for motion estimation in a video encoder | |
US7958177B2 (en) | Method of parallelly filtering input data words to obtain final output data words containing packed half-pel pixels | |
Guillotel et al. | Comparison of motion vector coding techniques | |
RU2573747C2 (ru) | Способ и устройство кодирования видео, способ и устройство декодирования видео и программы для них | |
CN103248895B (zh) | 一种用于hevc帧内编码的快速模式估计方法 | |
KR20140096394A (ko) | 화상 복호 장치, 화상 복호 방법, 화상 부호화 장치 및 화상 부호화 방법 | |
CN103327327B (zh) | 用于高性能视频编码hevc的帧间预测编码单元选择方法 | |
CN113615194B (zh) | 使用抽取预测块的dmvr | |
CN111800629A (zh) | 视频解码方法、编码方法以及视频解码器和编码器 | |
CN103069803B (zh) | 视频编码方法、视频解码方法、视频编码装置、视频解码装置 | |
CN103139561A (zh) | 半像素与四分之一像素插值滤波器 | |
CN101765011A (zh) | 缩放运动估计的方法和装置 | |
JPH08265765A (ja) | イメージ符号化システムとこれに用いる動き補償装置 | |
CN104333755B (zh) | HEVC中B帧的基于SKIP/Merge RD Cost的CU提前终止方法 | |
CN104702959A (zh) | 一种视频编码的帧内预测方法及系统 | |
CN102647595A (zh) | 一种基于avs的亚像素运动估计的装置 | |
CN101547350A (zh) | 高效平面与立体数字视频编码及解码方法 | |
KR100926752B1 (ko) | 동영상 부호화를 위한 미세 움직임 추정 방법 및 장치 | |
CN110139099A (zh) | 基于预编码和编码satd值加权的帧间预测模式选择方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130605 |