一种HEVC帧内预测方法及系统与流程

文档序号:17489648发布日期:2019-04-23 20:20阅读:123来源:国知局
一种HEVC帧内预测方法及系统与流程

本发明涉及一种hevc帧内预测方法,尤其涉及一种基于码率预测的hevc帧内预测方法,同时涉及实现该方法的hevc帧内预测系统,属于视频编码技术领域。



背景技术:

视频编码器对原始数据进行编码压缩以获得尽可能小的重建失真,或者得到尽可能低的码率。为此采用了很多新技术如更复杂的帧间/内预测算法、可变块大小运动补偿、多模式块的划分、变尺寸块变换、支持1/4像素精度的运动矢量、率失真优化技术等。而这些压缩性能的提升,都是以增加大量的计算量为代价,给视频实时编码带来极大的不便。hevc(highefficiencyvideocoding,高效视频编码)是一种新型的视频压缩标准,用来以替代h.264/avc标准。hevc的主要目标是在h.264/avc标准的基础上将高分辨率/高保真的视频图像压缩效率提高一倍,即在保证相同视频图像质量的前提下,使视频流的码率减少50%。然而,hevc在获得高压缩性能的同时也带来了极高的计算复杂度这一问题,这对于实际应用和视频编码技术的长期发展来说是相当不利的。

相对于h.264/avc,hevc在帧内编码方面有了明显的改进。hevc提出了基于四叉树结构的编码单元递归划分技术和多角度帧内预测模式选择技术,采用三个基本单元,cu(编码单元),pu(预测单元)和tu(变换单元)。根据率失真代价值(rate-distortioncost,rdcost)从35种帧内预测模式中进行最佳帧内预测模式的选择。三种基本单元的单独划分和多角度帧内预测模式选择技术的引用,能够更加灵活和精细地进行预测、变换和编码,压缩编码后的效果更能符合视频图像本身的特性。但是,同时也带来了极高的编码复杂度,增加了编码时间,不利于hevc在实际环境中的大范围应用。因此,在不影响hevc编码性能的基础上,降低帧内编码复杂度成为当前hevc的研究热点。



技术实现要素:

针对现有技术的不足,本发明所要解决的首要技术问题在于提供一种hevc帧内预测方法。

本发明所要解决的另一技术问题提供一种hevc帧内预测系统。

为实现上述发明目的,本发明采用下述的技术方案:

根据本发明实施例的第一方面,提供一种hevc帧内预测方法,包括如下步骤:

s1,获取候选预测模式列表;

s2,将深度为i的编码单元,依次对候选预测模式列表中的预测模式进行率失真代价值计算,获取率失真代价值最小的预测模式的第i率失真代价,i=0,1,2……,当i=0时,所述深度为i的编码单元为最大编码单元;

s3,将深度为i的编码单元进行划分,计算深度为i+1的所有编码单元的第i+1率失真代价之和;

s4,将第i+1率失真代价之和与第i率失真代价进行权重比较,如果带权重的第i率失真代价小于第i+1率失真代价之和,则当前编码模块不进行划分,转向步骤s6;否则,转向步骤s5;

s5,i=i+1,判断深度为i的编码单元是否为最小编码单元,如果是,则转向步骤s6;否则,转向步骤s3;

s6,得到最小的率失真代价值对应的最优编码单元划分方式和最佳预测方向。

其中较优地,所述获取候选预测模式列表,包括如下步骤:

获取当前帧的帧内编码块的最佳预测模式,得到初步的候选预测模式列表;

将当前待预测单元左侧和上侧已预测编码完成的预测单元的最优帧内预测模式添加到初步的候选预测模式列表中得到候选预测模式列表。

其中较优地,所述获取当前帧的帧内编码块的最佳预测模式,得到初步的候选预测模式列表,包括如下步骤:

对当前帧进行亚取样得到一个亚取样平面;

获取亚取样平面中的每一个8×8块的最佳帧内预测模式,将作为帧内编码块的最佳预测模式;

将获取的每一个8×8块的最佳帧内预测模式,作为最佳帧内预测模式保存在初步的候选预测模式列表中。

其中较优地,所述获取亚取样平面中的每一个8×8块的最佳帧内预测模式,包括如下步骤:

对于亚取样平面中的每一个8×8块,依次计算35种帧内预测模式基于哈德玛变换值的代价值;

将所有帧内预测模块的代价值按照递增的顺序进行排序;

选出代价值最小的帧内预测模式为最佳帧内预测模式。

其中较优地,所述将深度为i的编码单元进行划分,计算深度为i+1的所有编码单元的第i+1率失真代价之和,包括如下步骤:

将深度为i的编码单元进行划分,得到四个深度为i+1的编码单元;

将深度为i+1的编码单元,依次对候选预测模式列表中的预测模式进行率失真代价值计算,获取率失真代价值最小的预测模式的第i+1率失真代价。

将深度为i+1的所有编码单元的第i+1率失真代价求和,得到第i+1率失真代价之和。

其中较优地,将第i+1率失真代价之和与第i率失真代价进行权重比较是分别为第i+1率失真代价之和与第i率失真代价设置权重,第i+1率失真代价之和与第i率失真代价与各自的权重相乘之后,在进行比较。

根据本发明实施例的第二方面,提供一种的hevc帧内预测系统,包括处理器和存储器;所述存储器上存储有可用在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时实现如下步骤:

s1,获取候选预测模式列表;

s2,将深度为i的编码单元,依次对候选预测模式列表中的预测模式进行率失真代价值计算,获取率失真代价值最小的预测模式的第i率失真代价,i=0,1,2……,当i=0时,所述深度为i的编码单元为最大编码单元;

s3,将深度为i的编码单元进行划分,计算深度为i+1的所有编码单元的第i+1率失真代价之和;

s4,将第i+1率失真代价之和与第i率失真代价进行权重比较,如果带权重的第i率失真代价小于第i+1率失真代价之和,则当前编码模块不进行划分,转向步骤s6;否则,转向步骤s5;

s5,i=i+1,判断深度为i的编码单元是否为最小编码单元,如果是,则转向步骤s6;否则,转向步骤s3;

s6,得到最小的率失真代价值对应的最优编码单元划分方式和最佳预测方向。

本发明所提供的hevc帧内预测方法,针对hevc帧内预测中编码单元(cu)划分复杂度过高和35种帧内预测方向的运算量过大的问题,通过简化获取候选预测模式列表的过程以及提前终止编码单元进一步划分过程,实现了对帧内编码进行简洁高效的运算,同时获得极小的重建失真和极大的编码速度提速。

附图说明

图1为本发明所提供的hevc帧内预测方法的流程图;

图2为本发明所提供的一个实施例中,当前编码单元与相邻已编码的编码单元的结构示意图;

图3为本发明所提供的hevc帧内预测系统的结构示意图。

具体实施方式

下面结合附图和具体实施例对本发明的技术内容进行详细具体的说明。

本发明针对hevc帧内预测中编码单元(cu)划分复杂度过高和35种帧内预测方向的运算量过大的问题,提出了一种hevc帧内预测方法,对帧内编码进行简洁高效的运算,获得极小的重建失真和极大的编码速度提速。

如图1所示,本发明所提供的hevc帧内预测方法,包括如下步骤:首先,获取当前帧的帧内编码块的最佳预测模式,并将该最佳帧内预测模式保存在候选预测模式列表中;将当前待预测单元左侧和上侧已预测编码完成的预测单元的最优帧内预测模式保存在候选预测模式列表中;其次,将深度为depth=0的最大编码单元,依次对候选预测模式列表中的各个预测模式进行率失真代价值rdcost计算,获取率失真代价值最小的预测模式的率失真代价定义为rdcost_0;然后,将最大编码单元进行划分获得四个深度为depth=1的编码单元,将四个编码单元各自代价最小的模式的率失真代价之和定义为rdcost_1;比较rdcost_0和rdcost_1的大小,如果rdcost_0×0.9<rdcost_1,说明当前尺寸cu不需要进行划分。否则,对当前每一个子块(depth=1)进行划分,深度加1即depth+1。按照这种方法依次类推直到得到最小编码单元,找到最小的率失真代价值对应的最优cu划分方式和最佳预测方向。下面对这一过程进行详细具体的说明。

s1,获取候选预测模式列表。

获取候选预测模式列表可以通过现有的hevc帧内预测方法中采用的任意一种获取候选预测模式列表的方式获得,在本发明所提供的实施例中,获取候选预测模式列表,包括如下步骤:

s11,获取当前帧的帧内编码块的最佳预测模式,得到初步的候选预测模式列表;具体包括如下步骤:

s111,对当前帧进行亚取样得到一个亚取样平面。

s112,获取亚取样平面中的每一个8×8块的最佳帧内预测模式,将作为帧内编码块的最佳预测模式;

在本发明所提供的实施例中,获取亚取样平面中的每一个8×8块的最佳帧内预测模式包括如下步骤:

对于亚取样平面中的每一个8×8块,依次计算35种帧内预测模式基于哈德玛变换值satd的代价值cost;

将所有帧内预测模块的代价值按照递增的顺序进行排序;

选出代价值最小的帧内预测模式为最佳帧内预测模式。

s113,将获取的每一个8×8块的最佳帧内预测模式,作为最佳帧内预测模式保存在初步的候选预测模式列表中。

视频编码器中,首先需要进行码率控制。码率控制的最终目的就是得到每一帧的量化步长和每一个块的量化步长。为此,在码率控制阶段,需要对当前帧进行亚取样得到一个亚取样平面,并对亚取样平面中的每一个8×8块都进行35种方向的帧内预测,得到一个最佳帧内预测模式,将其作为帧内编码块的最佳预测模式,将这个帧内编码块的最佳预测模式保存在初步的候选预测模式列表中。对于每一个lcu(largestcodingunit,最大编码单元)块就节约了1×35+4×35+16×35+64×35+256×35=11935次基于satd代价值cost的计算。

s12,将当前待预测单元左侧和上侧已预测编码完成的预测单元的最优帧内预测模式添加到初步的候选预测模式列表中得到候选预测模式列表。

在码率控制阶段,将当前待预测单元左侧和上侧已预测编码完成的预测单元的最优帧内预测模式即最有可能预测模式mpm,如图2,包含在初步的候选列表中得到候选预测模式列表。从候选列表中的候选预测模式数量看,对于每一个lcu块这里就节约了1×3+4×3+16×3+64×8+256×8(=2623)-1×1+4×1+16×1+64×1+256×1(=341)=2282次率失真代价值rdcost的计算。

s2,将深度为i的编码单元,依次对候选预测模式列表中的预测模式进行率失真代价值计算,获取率失真代价值最小的预测模式的第i率失真代价,i=0,1,2……,当i=0时,该深度为i的编码单元为最大编码单元。

在帧内预测编码阶段,对深度为i=depth=0的lcu(在本发明所提供的实施例中,以64×64为例进行说明),依次对候选预测模式列表中的各个预测模式进行率失真代价值rdcost计算,其中率失真代价值最小的预测模式的第i率失真代价定义为rdcost0。

s3,将深度为i的编码单元进行划分,计算深度为i+1的所有编码单元的第i+1率失真代价之和,定义为rdcost_1;即将深度为i的编码单元进行划分,得到四个深度为i+1的编码单元,获取深度为i+1的编码单元的率失真代价值最小的预测模式的第i+1率失真代价之和。具体包括如下步骤:

s31,将深度为i的编码单元进行划分,得到四个深度为i+1的编码单元;

s32,将深度为i+1的编码单元,依次对候选预测模式列表中的预测模式进行率失真代价值计算,获取率失真代价值最小的预测模式的第i+1率失真代价。

s33,将深度为i+1的所有编码单元的第i+1率失真代价求和,得到第i+1率失真代价之和。

具体的,将lcu进行划分获得四个深度为depth=1的cu(32×32),每个cu依次对候选预测模式列表中的各个预测模式进行率失真代价值rdcost计算,获取4个cu各自率失真代价值最小的预测模式的第i+1率失真代价。将4个cu各自最小的率失真代价值之和定义为rdcost_1。

s4,将第i+1率失真代价之和与第i率失真代价进行权重比较,如果带权重的第i率失真代价小于第i+1率失真代价之和,则当前编码模块不进行划分,转向步骤s6;否则,转向步骤s5。

将第i+1率失真代价之和与第i率失真代价进行权重比较是分别为第i+1率失真代价之和与第i率失真代价设置权重,第i+1率失真代价之和与第i率失真代价与各自的权重相乘之后,在进行比较。

具体的,分别为rdcost0和rdcost1设置权重,比较带权重的rdcost0和rdcost1的大小,在本发明所提供的实施例中,设置rdcost0的权重为0.9,rdcost1的权重为1,如果rdcost0×0.9<rdcost1,说明当前尺寸cu(64×64)不需要再进行进一步划分,找到了最小的率失真代价值对应的最优cu划分方式和最佳预测方向。否则,对当前每一个子块(32×32)进行进一步划分,深度加1即depth+1。按照这种方法依次类推直到码单元是否为最小编码单元,即depth=3,找到最小的率失真代价值对应的最优cu划分方式和最佳预测方向。

s5,i=i+1,判断深度为i的编码单元是否为最小编码单元,如果是,则转向步骤s6;否则,转向步骤s3。

s6,得到最小的率失真代价值对应的最优编码单元划分方式和最佳预测方向。

针对hevc帧内预测中编码单元(cu)划分复杂度过高和35种帧内预测方向的运算量过大的问题,本发明提出的hevc帧内预测方法,对帧内编码进行简洁高效的运算,获得极小的重建失真和极大的编码速度提速。

本发明还提供了一种hevc帧内预测系统。如图3所示,该系统包括处理器32以及存储有处理器32可执行指令的存储器31;

其中,处理器32可以是通用处理器,例如中央处理器(cpu),还可以是数字信号处理器(dsp)、专用集成电路(asic),或者是被配置成实施本发明实施例的一个或多个集成电路。

其中,存储器31,用于存储程序代码,并将该程序代码传输给cpu。存储器31可以包括易失性存储器,例如随机存取存储器(ram);存储器31也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器31还可以包括上述种类的存储器的组合。

具体地,本发明实施例所提供的一种hevc帧内预测系统,包括处理器32和存储器31;存储器31上存储有可用在处理器32上运行的计算机程序,当计算机程序被处理器32执行时实现如下步骤:

s1,获取候选预测模式列表;

s2,将深度为i的编码单元,依次对候选预测模式列表中的预测模式进行率失真代价值计算,获取率失真代价值最小的预测模式的第i率失真代价,i=0,1,2……,当i=0时,所述深度为i的编码单元为最大编码单元;

s3,将深度为i的编码单元进行划分,计算深度为i+1的所有编码单元的第i+1率失真代价之和;

s4,将第i+1率失真代价之和与第i率失真代价进行权重比较,如果带权重的第i率失真代价小于第i+1率失真代价之和,则当前编码模块不进行划分,转向步骤s6;否则,转向步骤s5;

s5,i=i+1,判断深度为i的编码单元是否为最小编码单元,如果是,则转向步骤s6;否则,转向步骤s3;

s6,得到最小的率失真代价值对应的最优编码单元划分方式和最佳预测方向。

其中,当获取候选预测模式列表时,计算机程序被处理器32执行实现如下步骤;

获取当前帧的帧内编码块的最佳预测模式,得到初步的候选预测模式列表;

将当前待预测单元左侧和上侧已预测编码完成的预测单元的最优帧内预测模式添加到初步的候选预测模式列表中得到候选预测模式列表。

其中,当获取当前帧的帧内编码块的最佳预测模式,得到初步的候选预测模式列表时,计算机程序被处理器32执行实现如下步骤;

对当前帧进行亚取样得到一个亚取样平面;

获取亚取样平面中的每一个8×8块的最佳帧内预测模式,将作为帧内编码块的最佳预测模式;

将获取的每一个8×8块的最佳帧内预测模式,作为最佳帧内预测模式保存在初步的候选预测模式列表中。

其中,当获取亚取样平面中的每一个8×8块的最佳帧内预测模式时,计算机程序被处理器32执行实现如下步骤;

对于亚取样平面中的每一个8×8块,依次计算35种帧内预测模式基于哈德玛变换值的代价值;

将所有帧内预测模块的代价值按照递增的顺序进行排序;

选出代价值最小的帧内预测模式为最佳帧内预测模式。

其中,当将深度为i的编码单元进行划分,计算深度为i+1的所有编码单元的第i+1率失真代价之和时,计算机程序被处理器32执行实现如下步骤;

将深度为i的编码单元进行划分,得到四个深度为i+1的编码单元;

将深度为i+1的编码单元,依次对候选预测模式列表中的预测模式进行率失真代价值计算,获取率失真代价值最小的预测模式的第i+1率失真代价。

将深度为i+1的所有编码单元的第i+1率失真代价求和,得到第i+1率失真代价之和。

其中,当计算机程序被处理器32执行时实现如下步骤;

将第i+1率失真代价之和与第i率失真代价进行权重比较是分别为第i+1率失真代价之和与第i率失真代价设置权重,第i+1率失真代价之和与第i率失真代价与各自的权重相乘之后,在进行比较。

本发明实施例还提供了一种计算机可读存储介质。这里的计算机可读存储介质存储有一个或者多个程序。其中,计算机可读存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。当计算机可读存储介质中所述一个或者多个程序可被一个或者多个处理器执行,以实现上述的用于实现上述方法实施例中hevc帧内预测方法的部分步骤或者全部步骤。

上面对本发明所提供的hevc帧内预测方法及系统进行了详细的说明。对本领域的一般技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。

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