基于层次化灵活块顺序的视频帧内编码方法与流程

文档序号:12479147阅读:222来源:国知局
基于层次化灵活块顺序的视频帧内编码方法与流程

本发明涉及视频编码技术领域,尤其涉及一种基于层次化灵活块顺序的视频帧内编码方法。



背景技术:

在视频编码中,一般定义三种视频帧:I帧,P帧和B帧。I帧表示帧内编码帧,仅仅需要本帧的数据即可进行编解码。I帧可以作为P帧和B帧的参考帧,它的质量影响后续帧的质量。I帧编码占据较大的数据量,因此如何通过提高帧内预测的准确性进而提高I帧的压缩性能是一个重要的问题。

现有的视频编码国际标准High Efficiency Video Coding(HEVC)中,帧内压缩是以四叉树划分为基础的分层分块编码结构:视频帧先划分为LCU(largest Coding Unit,最大编码块),LCU再按照递归的四叉树划分为CU(Coding Unit,编码块)。并且LCU和CU分别按照光栅和Z扫描顺序编码。根据HEVC支持的35种预测模式以及固定的块编码顺序,只能用左侧和上侧的重建像素外插预测。因此,空间相关性从左上到右下的块会比空间相关性在其他方向的块预测更准确。

此前,已有若干算法允许改变LCU的编码顺序,以及LCU内部块的整体的编码顺序。这样不仅可以利用到左/上侧重建像素进行预测,又可以利用到右/下侧的重建像素进行预测,即可以处理所有方向的空间相关性。

然而如果仅考虑改变LCU内部的块编码顺序,上述算法存在一个根本制约,即一个LCU内部所有的块都按照同一个编码顺序。对于自然图像来说,一个LCU内部仅用选定的一种顺序不足以充分描述其复杂的空间相关性。此外,原先的HEVC帧内预测技术已经不适应于编码顺序改变后的预测,最终会限制帧内编码的性能。



技术实现要素:

本发明的目的是提供一种基于层次化灵活块顺序的视频帧内编码方法,可以分层灵活地改变一个LCU内部CU的编码顺序,以适应有不同空间相关性的局部区域,并结合新的帧内预测技术,提高帧内编码的性能。

本发明的目的是通过以下技术方案实现的:

一种基于层次化灵活块顺序的视频帧内编码方法,包括:

从预设的新增编码顺序中选择K种以供当前编码块划分为四个子编码块时选择;

采用HEVC原有的递归算法以四叉树结构划分待编码块,并分别计算当前编码块选择K种新增编码顺序以及HEVC原有编码顺序时的率失真代价,且由当前编码块划分得到的PU和TU的编码顺序与当前编码块一致;

选择率失真代价最小的顺序作为当前编码块划分四个子编码块时最优的编码顺序。

所述预设的新增编码顺序包括:

左下到左上到右下到右上;右下到左下到右上到左上;右上到右下到左上到左下;左上到左下到右上到右下;左下到右下到左上到右上;右下到右上到左下到左上;右上到左上到右下到左下。

所述分别计算当前编码块选择K种编码顺序以及其原有编码顺序时的率失真代价包括:

根据得到当前编码块的划分顺序,预测、编码当前编码块计算率失真代价,具体的:根据选择的编码顺序旋转编码块以及周围重建参考像素;根据旋转后周围重建参考像素预测当前编码块,获得相应的预测块;根据选择的编码顺序旋转该预测块;根据旋转后的预测块以及选择的编码顺序进行编码获得各编码顺序对应的率失真代价。

所述根据选择的编码顺序旋转编码块以及周围重建参考像素包括:

将原有编码顺序,即左上到右上到左下到右下的编码顺序记为(a),将预设的新增编码顺序记为(b)~(h);

上述(a)~(h)编码顺序,与编码块以及周围重建参考像素的旋转关系如下:编码顺序(a)与(e)的编码块连同周围所有填充的重建参考像素顺时针旋转0度;编码顺序(b)与(f)的编码块连同周围所有填充的重建参考像素顺时针旋转90度;编码顺序(c)与(g)的编码块连同周围所有填充的重建参考像素顺时针旋转180度;编码顺序(d)与(h)的编码块连同周围所有填充的重建参考像素顺时针旋转270度;

根据选择的编码顺序与上述关系旋转编码块以及周围重建参考像素。

所述根据旋转后周围重建参考像素预测当前编码块包括:

经过上述旋转且按HEVC原有方法填充编码块左侧和上侧的参考像素;若右侧和下侧都没有重建参考像素,采用HEVC原有帧内预测技术;否则,就采用下述的内/外插预测技术:

对于编码块中的任一像素点M,得到经过该点且和预测方向平行的直线与编码块周围所有参考像素边的交点位置;

若仅有一个交点位置R,得到像素点M预测值公式为:

<mrow> <msub> <mover> <mi>V</mi> <mo>^</mo> </mover> <mi>M</mi> </msub> <mo>=</mo> <msub> <mi>V</mi> <mi>R</mi> </msub> </mrow>

其中VR是交点位置R的像素值。

若有两个交点位置P和Q,得到像素点M预测值公式为:

其中,Vp和VQ是交点位置P和Q的像素值,||P-Q||,||P-M||以及||Q-M||是位置P和Q,P和M,以及Q和M的几何距离;其中若某一交点位置P为非整像素点,则P的像素预测值由相邻的两个整像素点P1和P2插值得到,公式如下:

<mrow> <msub> <mover> <mi>V</mi> <mo>^</mo> </mover> <mi>P</mi> </msub> <mo>=</mo> <mo>|</mo> <mo>|</mo> <msub> <mi>P</mi> <mn>1</mn> </msub> <mo>-</mo> <mi>P</mi> <mo>|</mo> <mo>|</mo> <mo>&times;</mo> <msub> <mi>V</mi> <msub> <mi>P</mi> <mn>2</mn> </msub> </msub> <mo>+</mo> <mo>|</mo> <mo>|</mo> <msub> <mi>P</mi> <mn>2</mn> </msub> <mo>-</mo> <mi>P</mi> <mo>|</mo> <mo>|</mo> <mo>&times;</mo> <msub> <mi>V</mi> <msub> <mi>P</mi> <mn>1</mn> </msub> </msub> </mrow>

其中和是P1和P2的像素值。

所述根据选择的编码顺序旋转当前编码块得到的预测块包括:

将原有编码顺序,即左上到右上到左下到右下的编码顺序记为(a),将预设的新增编码顺序记为(b)~(h);

上述(a)~(h)编码顺序,与当前编码块的预测块的旋转关系如下:编码顺序(a)与(e)的预测块逆时针旋转0度;编码顺序(b)与(f)的预测块逆时针旋转90度;将选择所述编码顺序(c)与(g)的预测块逆时针旋转180度;将选择所述编码顺序(d)与(h)的预测块逆时针旋转270度;

根据选择的编码顺序与上述关系旋转当前编码块的预测块。

所述根据旋转后的预测块以及选择的编码顺序进行编码获得各编码顺序对应的率失真代价包括:

用等长码表示选择的编码顺序,并采用HEVC原有的方法按照选定的编码顺序根据预测块进行编码获得相应的率失真代价。

由上述本发明提供的技术方案可以看出,基于层次化灵活块编码顺序的视频帧内编码方案可以更加高效的压缩I帧。一方面,新增加编码顺序不仅可以利用左侧和上侧的重建参考像素,还可以利用下侧和右侧的重建参考像素进行预测,可以更有效地预测具有各种空间相关性的编码块。另一方面,新的内/外插帧内预测技术充分利用周围可用像素点,比现有预测技术准确性更高。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。

图1为本发明实施例提供的一种基于层次化灵活块顺序的视频帧内编码方法的流程图;

图2为本发明实施例提供的HEVC原有编码顺序与预设的新增编码顺序的示意图;

图3为本发明实施例提供的新的内/外插预测技术的示意图;

图4为本发明实施例提供的一个LCU内编码块分层自适应选择所有顺序中最优的编码顺序效果示意图;

图5为本发明实施例提供的本发明使用8种编码顺序与现有技术HEVC在测试序列PeopleOnStreet上单帧编码效率比较结果图。

图6为本发明实施例提供的本发明使用8种编码顺序与现有技术HEVC在测试序列Foreman上单帧预测效果对比图。

具体实施方式

下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。

本发明实施例提供一种基于层次化灵活块顺序的视频帧内编码方法,如图1所示,其主要包括如下步骤:

步骤11、从预设的新增编码顺序中选择K种以供当前编码块划分为四个子编码块时选择。

本发明实施例中,所述预设的新增编码顺序包括:左下到左上到右下到右上;右下到左下到右上到左上;右上到右下到左上到左下;左上到左下到右上到右下;左下到右下到左上到右上;右下到右上到左下到左上;右上到左上到右下到左下。

根据需要可以从上面7种顺序中选择K种,K∈[1,7]。

步骤12、采用HEVC原有的递归算法以四叉树结构划分待编码块,并分别计算当前编码块选择K种新增编码顺序以及HEVC原有编码顺序时的率失真代价。

在所述递归算法中,根据下述率失真优化算法,计算当前编码块选择K+1种不同编码顺序的率失真代价RD_cost:

RD_cost=D+λ×R

其中,D是原始编码块和重建编码块的平方差的和,R是当前编码块的码率,而λ是预先设定好的拉格朗日因子,K+1种编码顺序包括新增的K种和HEVC原有的编码顺序。

本发明实施例中,设置由当前编码块划分得到的PU(Prediction Unit)和TU(Transform Unit)的编码顺序与当前编码块一致。

本领域技术人员可以理解,编码块CU最小为8*8。当当前编码块为16*16,划分成4个8*8后,CU划分就结束。需要说明,8*8的编码块是可以继续划分为4个4*4的TU或PU的;任意编码块CU(大于8*8)可以以四叉树结构向下划分为TU(最小为4*4)的。但只有在CU划分时才选择多种顺序。

本发明实施例中HEVC原有编码顺序与预设的新增编码顺序的示意图如图2所示。其中,原有编码顺序,即左上到右上到左下到右下的编码顺序记为(a),对应图2(a)。将预设的新增编码顺序按照步骤11描述的先后顺序依次记为(b)~(h),对应图2(b)~图2(h)。本步骤中所述的分别计算当前编码块选择K种编码顺序以及HEVC原有编码顺序时的率失真代价,具体为:根据当前编码块的编码顺序,预测、编码当前编码块并计算率失真代价;其包括如下四个过程:

1)根据选择的编码顺序旋转编码块以及周围重建参考像素;

前述的(a)~(h)编码顺序,与编码块以及周围重建参考像素的旋转关系如下:编码顺序(a)与(e)的编码块连同周围所有填充的重建参考像素顺时针旋转0度;编码顺序(b)与(f)的编码块连同周围所有填充的重建参考像素顺时针旋转90度;编码顺序(c)与(g)的编码块连同周围所有填充的重建参考像素顺时针旋转180度;编码顺序(d)与(h)的编码块连同周围所有填充的重建参考像素顺时针旋转270度;

根据实际所选择的编码顺序与上述关系旋转编码块以及周围重建参考像素。

2)根据旋转后周围重建参考像素预测当前编码块,获得相应的预测块。

经过上述旋转且按HEVC原有方法填充编码块左侧和上侧的参考像素;若右侧和下侧都没有重建参考像素,采用HEVC原有帧内预测技术;否则,就采用下述的内/外插预测技术:

对于编码块中的任一像素点M,得到经过该点且和预测方向平行的直线与编码块周围所有参考像素边的交点位置;

若仅有一个交点位置R,得到像素点M预测值公式为:

<mrow> <msub> <mover> <mi>V</mi> <mo>^</mo> </mover> <mi>M</mi> </msub> <mo>=</mo> <msub> <mi>V</mi> <mi>R</mi> </msub> </mrow>

其中,VR是交点位置R的像素值。

若有两个交点位置P和Q,得到像素点M预测值公式为:

<mrow> <msub> <mover> <mi>V</mi> <mo>^</mo> </mover> <mi>M</mi> </msub> <mo>=</mo> <mfrac> <mrow> <mo>|</mo> <mo>|</mo> <mi>P</mi> <mo>-</mo> <mi>M</mi> <mo>|</mo> <mo>|</mo> <mo>&times;</mo> <msub> <mi>V</mi> <mi>Q</mi> </msub> <mo>+</mo> <mo>|</mo> <mo>|</mo> <mi>Q</mi> <mo>-</mo> <mi>M</mi> <mo>|</mo> <mo>|</mo> <mo>&times;</mo> <msub> <mi>V</mi> <mi>P</mi> </msub> </mrow> <mrow> <mo>|</mo> <mo>|</mo> <mi>P</mi> <mo>-</mo> <mi>Q</mi> <mo>|</mo> <mo>|</mo> </mrow> </mfrac> </mrow>

其中,Vp和VQ是交点位置P和Q的像素值,||P-Q||,||P-M||以及||Q-M||是位置P和Q,P和M,以及Q和M的几何距离;其中若某一交点位置P为非整像素点,则位置P的像素预测值由相邻的两个整像素点P1和P2插值得到,公式如下:

<mrow> <msub> <mover> <mi>V</mi> <mo>^</mo> </mover> <mi>P</mi> </msub> <mo>=</mo> <mo>|</mo> <mo>|</mo> <msub> <mi>P</mi> <mn>1</mn> </msub> <mo>-</mo> <mi>P</mi> <mo>|</mo> <mo>|</mo> <mo>&times;</mo> <msub> <mi>V</mi> <msub> <mi>P</mi> <mn>2</mn> </msub> </msub> <mo>+</mo> <mo>|</mo> <mo>|</mo> <msub> <mi>P</mi> <mn>2</mn> </msub> <mo>-</mo> <mi>P</mi> <mo>|</mo> <mo>|</mo> <mo>&times;</mo> <msub> <mi>V</mi> <msub> <mi>P</mi> <mn>1</mn> </msub> </msub> </mrow>

其中和是位置P1和P2的像素值。

上述内/外插预测技术的示意图请参见图3。

3)根据选择的编码顺序旋转步骤2)中当前编码块的预测块。

前述(a)~(h)编码顺序,与2)中得到的预测块的旋转关系如下:编码顺序(a)与(e)的预测块逆时针旋转0度;编码顺序(b)与(f)的预测块逆时针旋转90度;编码顺序(c)与(g)的预测块逆时针旋转180度;编码顺序(d)与(h)的预测块逆时针旋转270度;

根据实际选择的编码顺序与上述关系旋转当前编码块的预测块。

4)根据旋转后的预测块以及选择的编码顺序进行编码获得各编码顺序对应的率失真代价。

本发明实施例中,用等长码表示选择的编码顺序,并采用HEVC原有的方法按照选定的编码顺序根据预测块进行编码获得相应的率失真代价。

本领域技术人员可以理解,前文所提到的HEVC原有的方法(或者算法)均为常规技术。

步骤13、选择率失真代价最小的顺序作为当前编码块划分四个子编码块时最优的编码顺序。

如图4所示,为分层自适应选择所有8种顺序中最优的编码顺序效果示意图。

如图5所示,为本发明使用8种编码顺序与现有技术HEVC在HEVC标准测试序列PeopleOnStreet上单帧编码效率比较结果图。图5中上部曲线为本发明方案的结果,下部曲线为现有技术的结果;从图5中可以明显看出,本发明方案的效率高于现有技术的方案。

如图6所示,为本发明使用8种编码顺序与现有技术HEVC在测试序列Foreman上单帧预测效果对比图。图6中左侧是本发明的预测效果图,右侧是HEVC的预测效果图。从图6中高亮圈起的边缘部分可以明显看出本发明获得的编码块预测准确度高于现有技术HEVC。

为了便于理解,下面结合一具体示例对上述过程做举例说明。需要强调的是,下述示例所涉及的具体数值均为举例并非构成限制;在实际工作中,用户可根据需要或者经验来设定具体数值。

步骤一、新增编码顺序以供当前待编码块划分选择。

在本示例中,设置K=3,所述预设的新增编码顺序包括:左下到左上到右下到右上;右下到左下到右上到左上;右上到右下到左上到左下

与前文类似的,HEVC原先的编码顺序即左上到右上到左下到右下记为(a),所选择的3种编码顺序依次记为(b)、(c)、(d)。

步骤二、采用HEVC原有的递归算法以四叉树结构划分待编码块,并分别计算当前编码块选择上述3种编码顺序以及HEVC原有编码顺序时的率失真代价。

在所述递归算法中,根据下述率失真优化算法,计算当前CU编码块选择上述4种不同编码顺序的率失真代价RD_cost:

RD_cost=D+λ×R

其中D是原始编码块和重建编码块的平方差的和,R是当前编码块的码率,而λ是预先设定好的拉格朗日因子。

本示例中,设置由当前编码块划分得到的PU和TU与当前的编码块一致。

本步骤中所述的分别计算当前编码块选择3种编码顺序以及HEVC原有编码顺序时的率失真代价具体为:根据当前编码块的编码顺序,预测、编码当前编码块并计算率失真代价;其包括如下四个过程:

a、根据编码顺序旋转编码块以及周围重建参考像素,包括:

前述的(a)~(d)编码顺序,与编码块以及周围重建参考像素的旋转关系如下:编码顺序(a)的编码块连同周围所有填充的重建参考像素顺时针旋转0度;编码顺序(b)的编码块连同周围所有填充的重建参考像素顺时针旋转90度;编码顺序(c)的编码块连同周围所有填充的重建参考像素顺时针旋转180度;编码顺序(d)的编码块连同周围所有填充的重建参考像素顺时针旋转270度;

b、根据旋转后周围重建参考像素预测当前编码块,包括:

经过上述旋转且按HEVC原有方法填充编码块左侧和上侧的参考像素;若右侧和下侧都没有重建参考像素,采用HEVC原有帧内预测技术;否则,就采用下述的内/外插预测技术,具体的:

对于编码块中的任一像素点M,得到经过该点且和预测方向平行的直线与编码块周围参考像素边的交点位置。

若仅有一个交点位置R,得到M预测值公式为:

<mrow> <msub> <mover> <mi>V</mi> <mo>^</mo> </mover> <mi>M</mi> </msub> <mo>=</mo> <msub> <mi>V</mi> <mi>R</mi> </msub> </mrow>

其中VR是交点位置R的像素值。

若有两个交点位置P和Q,得到像素点M预测值公式为:

<mrow> <msub> <mover> <mi>V</mi> <mo>^</mo> </mover> <mi>M</mi> </msub> <mo>=</mo> <mfrac> <mrow> <mo>|</mo> <mo>|</mo> <mi>P</mi> <mo>-</mo> <mi>M</mi> <mo>|</mo> <mo>|</mo> <mo>&times;</mo> <msub> <mi>V</mi> <mi>Q</mi> </msub> <mo>+</mo> <mo>|</mo> <mo>|</mo> <mi>Q</mi> <mo>-</mo> <mi>M</mi> <mo>|</mo> <mo>|</mo> <mo>&times;</mo> <msub> <mi>V</mi> <mi>P</mi> </msub> </mrow> <mrow> <mo>|</mo> <mo>|</mo> <mi>P</mi> <mo>-</mo> <mi>Q</mi> <mo>|</mo> <mo>|</mo> </mrow> </mfrac> </mrow>

其中,Vp和VQ是交点位置P和Q的像素值,||P-Q||,||P-M||以及||Q-M||是位置P和Q,P和M,以及Q和M的几何距离;其中若某一交点位置P为非整像素点,则位置P的像素预测值由相邻的两个整像素点P1和P2插值得到,公式如下:

<mrow> <msub> <mover> <mi>V</mi> <mo>^</mo> </mover> <mi>P</mi> </msub> <mo>=</mo> <mo>|</mo> <mo>|</mo> <msub> <mi>P</mi> <mn>1</mn> </msub> <mo>-</mo> <mi>P</mi> <mo>|</mo> <mo>|</mo> <mo>&times;</mo> <msub> <mi>V</mi> <msub> <mi>P</mi> <mn>2</mn> </msub> </msub> <mo>+</mo> <mo>|</mo> <mo>|</mo> <msub> <mi>P</mi> <mn>2</mn> </msub> <mo>-</mo> <mi>P</mi> <mo>|</mo> <mo>|</mo> <mo>&times;</mo> <msub> <mi>V</mi> <msub> <mi>P</mi> <mn>1</mn> </msub> </msub> </mrow>

其中和是位置P1和P2的像素值。

c、根据选择的编码顺序旋转步骤b中当前编码块的预测块,包括:

前述(a)~(d)编码顺序,与b)中得到的预测块的旋转关系如下:编码顺序(a)的预测块逆时针旋转0度;编码顺序(b)的预测块逆时针旋转90度;编码顺序(c)的预测块逆时针旋转180度;编码顺序(d)的预测块逆时针旋转270度;

d、根据旋转后的预测块以及选择的编码顺序进行编码获得各编码顺序对应的率失真代价,包括:

用等长码表示选择的编码顺序,并采用HEVC原有的方法按照选定的编码顺序根据预测块进行编码获得相应的率失真代价;

3)选择率失真代价最小的顺序作为当前编码块划分为四个子编码块时最优的编码顺序。

本发明提供的技术方案基于HEVC帧内编码的层次化灵活块编码顺序编码方案可以更加高效的压缩I帧。一方面新增加编码顺序不仅可以利用左侧和上侧的重建参考像素,还可以利用下侧和右侧的重建参考像素进行预测,可以更有效地预测具有各种空间相关性的编码块。另一方面,新的内/外插预测技术充分利用周围可用像素点,比现有预测技术准确性更高。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

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