帧间预测模式的快速选择方法、装置及电子设备转让专利

申请号 : CN201711468804.4

文献号 : CN108124154B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张文东张培川钟亮包佳晶

申请人 : 北京数码视讯科技股份有限公司

摘要 :

本发明提供了一种帧间预测模式的快速选择方法、装置及电子设备,包括:判断当前编码单元是否为预设深度的最小编码单元;如果不是,将当前编码单元划分为4个子编码单元;计算当前编码单元在Split模式下的率失真代价和在待选非划分模式下的最小率失真代价;根据Split模式下的率失真代价和待选非划分模式下的最小率失真代价确定当前编码单元的最佳预测模式。该方法根据Split模式下的率失真代价和在待选非划分模式下的最小率失真代价确定最佳预测模式,可有效兼顾编码质量和编码速率,在确保编码质量的前提下,大大提高编码速率,缓解了现有的方法难以同时兼顾编码速率和编码质量的问题。

权利要求 :

1.一种帧间预测模式的快速选择方法,其特征在于,应用于AVS2标准的视频编码器,所述方法包括:获取当前编码单元;

判断所述当前编码单元是否为预设深度的最小编码单元;

如果所述当前编码单元不是所述预设深度的最小编码单元,则将所述当前编码单元划分为4个子编码单元;

计算所述当前编码单元在Split模式下的率失真代价,其中,所述Split模式下的率失真代价为根据所述4个子编码单元的最佳预测模式所对应的率失真代价计算得到的数值;

计算所述当前编码单元在待选非划分模式下的最小率失真代价,其中,所述待选非划分模式为所述4个子编码单元的最佳预测模式;

根据所述Split模式下的率失真代价和所述待选非划分预测模式下的最小率失真代价确定所述当前编码单元的最佳预测模式;

计算所述当前编码单元在Split模式下的率失真代价包括:确定所述4个子编码单元中每个子编码单元的最佳预测模式所对应的率失真代价,得到4个率失真代价;

计算所述4个率失真代价的和;

将所述4个率失真代价的和作为所述当前编码单元在Split模式下的率失真代价;

计算所述当前编码单元在待选非划分模式下的最小率失真代价包括:确定所述4个子编码单元的最佳预测模式;

将所述4个子编码单元的最佳预测模式作为所述待选非划分模式;

根据率失真代价公式计算所述当前编码单元在所述待选非划分模式下的率失真代价;

确定所述当前编码单元在所述待选非划分模式下的率失真代价中的最小率失真代价。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:如果所述当前编码单元为预设深度的最小编码单元,则计算所述当前编码单元在多种预测模式下的率失真代价,其中,所述多种预测模式包括:Skip/Direct模式,2N×2N模式,Intra模式;

根据所述多种预测模式下的率失真代价确定所述当前编码单元的最佳预测模式,其中,所述最佳预测模式为所述多种预测模式下的率失真代价中最小率失真代价对应的预测模式。

3.根据权利要求1所述的方法,其特征在于,根据所述Split模式下的率失真代价和所述待选非划分预测模式下的最小率失真代价确定所述当前编码单元的最佳预测模式包括:将所述Split模式下的率失真代价与所述待选非划分模式下的最小率失真代价进行对比;

如果所述Split模式下的率失真代价小于所述待选非划分模式下的最小率失真代价,则将所述Split模式作为所述当前编码单元的最佳预测模式;

如果所述Split模式下的率失真代价不小于所述待选非划分模式下的最小率失真代价,则将所述最小率失真代价所对应的预测模式作为所述当前编码单元的最佳预测模式。

4.一种帧间预测模式的快速选择装置,其特征在于,所述装置包括:获取模块,用于获取当前编码单元;

判断模块,用于判断所述当前编码单元是否为预设深度的最小编码单元;

划分模块,如果所述当前编码单元不是所述预设深度的最小编码单元,则将所述当前编码单元划分为4个子编码单元;

第一计算模块,用于计算所述当前编码单元在Split模式下的率失真代价,其中,所述Split模式下的率失真代价为根据所述4个子编码单元的最佳预测模式所对应的率失真代价计算得到的数值;

第二计算模块,用于计算所述当前编码单元在待选非划分模式下的最小率失真代价,其中,所述待选非划分模式为所述4个子编码单元的最佳预测模式;

第一确定模块,用于根据所述Split模式下的率失真代价和所述待选非划分模式下的最小率失真代价确定所述当前编码单元的最佳预测模式;

所述第一计算模块包括:

第一确定单元,用于确定所述4个子编码单元中每个子编码单元的最佳预测模式所对应的率失真代价,得到4个率失真代价;

第一计算单元,用于计算所述4个率失真代价的和;

第一设定单元,用于将所述4个率失真代价的和作为所述当前编码单元在Split模式下的率失真代价;

所述第二计算模块包括:

第二确定单元,用于确定所述4个子编码单元的最佳预测模式;

第二设定单元,用于将所述4个子编码单元的最佳预测模式作为所述待选非划分模式;

第二计算单元,用于根据率失真代价公式计算所述当前编码单元在所述待选非划分模式下的率失真代价;

第三确定单元,用于确定所述当前编码单元在所述待选非划分模式下的率失真代价中的最小率失真代价。

5.根据权利要求4所述的装置,其特征在于,所述装置还包括:第三计算模块,如果所述当前编码单元为预设深度的最小编码单元,则计算所述当前编码单元在多种预测模式下的率失真代价,其中,所述多种预测模式包括:Skip/Direct模式,2N×2N模式,Intra模式;

第二确定模块,用于根据所述多种预测模式下的率失真代价确定所述当前编码单元的最佳预测模式,其中,所述最佳预测模式为所述多种预测模式下的率失真代价中最小率失真代价对应的预测模式。

6.一种电子设备,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至3中任一项所述的方法的步骤。

说明书 :

帧间预测模式的快速选择方法、装置及电子设备

技术领域

[0001] 本发明涉及视频编码的技术领域,尤其是涉及一种帧间预测模式的快速选择方法、装置及电子设备。

背景技术

[0002] 当前主流的视频编码过程主要包括帧内预测与帧间预测这两个关键步骤,分别对应I帧、P帧及B帧。I帧是整个GOP中的关键帧,编码I帧主要依靠的是帧内空域的相关特性,解码时也仅需要当期帧的编码数据即可完整重建,不需要参考其它帧的信息;P帧又称为预测帧,它是基于编码单元的运动特性来实现图像压缩,用于降低已编码帧的时间冗余信息,根据基于块的运动估计技术搜索参考帧中的最佳匹配块,并由运功补偿得到对应的预测样本,解码时需要参考帧才能完成P帧的图像重建;B帧与P帧的编码方式类似,但它比P帧多了后向参考的预测方式,所以B帧除了前后与后向预测这两类单向预测外,还可以利用双向预测技术获取与前后帧对应的运动矢量与残差,所以它又被称为双向参考帧。
[0003] 由于编码序列中P帧与B帧占据的比重较大,所以帧间的编码过程是整个视频编码环节中最耗时的部分。帧间预测过程主要包括预测模式与编码单元划分深度的选择,不同预测模式与深度的组合可得到多种不同的编码结果,往往需要遍历所有的组合后确定编码方式,所以帧间预测的选择过程一直也是限制编码速度的瓶颈之一。目前AVS2标准为了满足市场对高图像分辨率的需求,在上一代编码标准的基础上,引入更多预测模式以提升编码效率,以适应大尺寸图像中较大面积的运动平缓区域。这些新的编码模式进一步挖掘与利用视频中时间与空间上的相关性信息,有效提高了编码性能,但同时其编码复杂度也相应的提高很多。
[0004] ASV2标准中对于帧间编码的预测单元(PU)主要定义了三类预测模式:Skip/Direct模式、Intra模式、Inter模式。其中,Skip/Direct模式下运动矢量可由相邻单元预测得到,并且Skip模式的运动补偿残差为零,编码时仅将模式索引写入码流。对于运动平缓的视频序列,Skip/Direct模式可以有效减小码流,提高编码效率。尤其处理4K、8K等高分辨率的视频序列时,如果大部分视频图像纹理平坦、运动缓慢,此时采用较大尺寸的编码单元,同时快速判断最佳预测模式为Skip/Direct模式,即可节省用于遍历其他预测模式来选择最佳预测方式所消耗的时间;如果当前帧与参考帧之间的时域相关性较差,此时帧间预测效果不好,就需要采用类似I帧的编码策略,也就是所谓的Intra模式,利用当前编码单元的邻近像素信息进行预测编码;最后的Inter模式即对应最普遍的帧间预测过程,其中2Nx2N的预测模式即以整个编码单元为预测对象,在参考帧中搜索最佳匹配块。由于AVS2较之前的标准,提供了多种预测模式以及层次多样化的编码单元,例如编码单元大小可从64x64划分至8x8,同时每类不同大小的编码单元又可以选择多种预测模式,所以如何对当前编码单元的最佳预测模式进行快速选择,对于提高帧间预测的搜索速率尤为重要。
[0005] 针对以上的问题及需求,目前还较少发明就AVS2标准针对性地提出相关解决方案,而在已有的HEVC或者AVS关的发明中已提出若干种关于帧间预测模式的快速选择方法,主要判断当前预测单元的最佳预测模式是否为Skip/Direct模式(HEVC中对应的是Merge模式)、2Nx2N模式或Intra模式。根据其选择指标,可以分为两大类:第一种是计算当前编码单元在非划分模式,如Intra模式、2Nx2N模式等预测划分方式下的率失真代价(RD Cost),将RD Cost与某一阈值进行比较,如果小于后者,则认为该预测模式即为最佳预测模式,可得到较优的码率控制效果与视频质量,此时就可直接跳过对其他模式的尝试过程;对于此类方法,阈值的选择就尤为关键,目前此项阈值的获取多依赖于运动矢量差值(MVD)、量化参数QP等参数。第二类方法则是从图像空域与时域的相关性出发,根据图像相邻编码单元的预测信息进行判断,不少采用此类方法的发明还借鉴了统计分析的手段,例如采用构建贝叶斯分类器、支持向量机等策略对当前预测模式进行快速挑选,以取代遍历各类预测模式并计算、比较率失真代价函数的过程。
[0006] 现有算法固然在帧间预测模式的快速选择上达到了较好的效果,但是在具体的选择过程以及选择指标方面依然存在一些不足。
[0007] 已有的HEVC及AVS的帧间预测模式的快速选择算法中,不少方法都是参考了邻边编码单元与参考帧的率失真代价以及预测模式对当前编码单元的预测模式类型进行选择,这固然可以加快算法本身的速率;但较难提出一个合理且具有普适性的阈值,过小会减弱提速效果,过大则可能错过最佳预测模式从而影响视频质量;而且不少发明是在量化参数(QP)确定的条件下才能获得一个相对稳定可供筛选的阈值,而这并不适用于定码率下的编码要求。
[0008] 综上,现有的帧间预测模式快速选择方法难以同时兼顾编码速率和编码质量(即视频质量)的问题。

发明内容

[0009] 有鉴于此,本发明的目的在于提供一种帧间预测模式的快速选择方法、装置及电子设备,以缓解现有的帧间预测模式快速选择方法难以同时兼顾编码速率和编码质量的问题。
[0010] 第一方面,本发明实施例提供了一种帧间预测模式的快速选择方法,应用于AVS2标准的视频编码器,所述方法包括:
[0011] 获取当前编码单元;
[0012] 判断所述当前编码单元是否为预设深度的最小编码单元;
[0013] 如果所述当前编码单元不是所述预设深度的最小编码单元,则将所述当前编码单元划分为4个子编码单元;
[0014] 计算所述当前编码单元在Split模式下的率失真代价,其中,所述Split模式下的率失真代价为根据所述4个子编码单元的最佳预测模式所对应的率失真代价计算得到的数值;
[0015] 计算所述当前编码单元在待选非划分模式下的最小率失真代价,其中,所述待选非划分模式为所述4个子编码单元的最佳预测模式;
[0016] 根据所述Split模式下的率失真代价和所述待选非划分模式下的最小率失真代价确定所述当前编码单元的最佳预测模式。
[0017] 结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述方法还包括:
[0018] 如果所述当前编码单元为预设深度的最小编码单元,则计算所述当前编码单元在多种预测模式下的率失真代价,其中,所述多种预测模式包括:Skip/Direct模式,2N×2N模式,Intra模式;
[0019] 根据所述多种预测模式下的率失真代价确定所述当前编码单元的最佳预测模式,其中,所述最佳预测模式为所述多种预测模式下的率失真代价中最小率失真代价对应的预测模式。
[0020] 结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,计算所述当前编码单元在Split模式下的率失真代价包括:
[0021] 确定所述4个子编码单元中每个子编码单元的最佳预测模式所对应的率失真代价,得到4个率失真代价;
[0022] 计算所述4个率失真代价的和;
[0023] 将所述4个率失真代价的和作为所述当前编码单元在Split模式下的率失真代价。
[0024] 结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,计算所述当前编码单元在待选非划分模式下的最小率失真代价包括:
[0025] 确定所述4个子编码单元的最佳预测模式;
[0026] 将所述4个子编码单元的最佳预测模式作为所述待选非划分模式;
[0027] 根据率失真代价公式计算所述当前编码单元在所述待选非划分模式下的率失真代价;
[0028] 确定所述当前编码单元在所述待选非划分模式下的率失真代价中的最小率失真代价。
[0029] 结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,根据所述Split模式下的率失真代价和所述待选非划分模式下的最小率失真代价确定所述当前编码单元的最佳预测模式包括:
[0030] 将所述Split模式下的率失真代价与所述待选非划分模式下的最小率失真代价进行对比;
[0031] 如果所述Split模式下的率失真代价小于所述待选非划分模式下的最小率失真代价,则将所述Split模式作为所述当前编码单元的最佳预测模式;
[0032] 如果所述Split模式下的率失真代价不小于所述待选非划分模式下的最小率失真代价,则将所述最小率失真代价所对应的预测模式作为所述当前编码单元的最佳预测模式。
[0033] 第二方面,本发明实施例还提供了一种帧间预测模式的快速选择装置,所述装置包括:
[0034] 获取模块,用于获取当前编码单元;
[0035] 判断模块,用于判断所述当前编码单元是否为预设深度的最小编码单元;
[0036] 划分模块,如果所述当前编码单元不是所述预设深度的最小编码单元,则将所述当前编码单元划分为4个子编码单元;
[0037] 第一计算模块,用于计算所述当前编码单元在Split模式下的率失真代价,其中,所述Split模式下的率失真代价为根据所述4个子编码单元的最佳预测模式所对应的率失真代价计算得到的数值;
[0038] 第二计算模块,用于计算所述当前编码单元在待选非划分模式下的最小率失真代价,其中,所述待选非划分模式为所述4个子编码单元的最佳预测模式;
[0039] 第一确定模块,用于根据所述Split模式下的率失真代价和所述待选非划分模式下的最小率失真代价确定所述当前编码单元的最佳预测模式。
[0040] 结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述装置还包括:
[0041] 第三计算模块,如果所述当前编码单元为预设深度的最小编码单元,则计算所述当前编码单元在多种预测模式下的率失真代价,其中,所述多种预测模式包括:Skip/Direct模式,2N×2N模式,Intra模式;
[0042] 第二确定模块,用于根据所述多种预测模式下的率失真代价确定所述当前编码单元的最佳预测模式,其中,所述最佳预测模式为所述多种预测模式下的率失真代价中最小率失真代价对应的预测模式。
[0043] 结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,所述第一计算模块包括:
[0044] 第一确定单元,用于确定所述4个子编码单元中每个子编码单元的最佳预测模式所对应的率失真代价,得到4个率失真代价;
[0045] 第一计算单元,用于计算所述4个率失真代价的和;
[0046] 第一设定单元,用于将所述4个率失真代价的和作为所述当前编码单元在Split模式下的率失真代价。
[0047] 结合第二方面,本发明实施例提供了第二方面的第三种可能的实施方式,其中,所述第二计算模块包括:
[0048] 第二确定单元,用于确定所述4个子编码单元的最佳预测模式;
[0049] 第二设定单元,用于将所述4个子编码单元的最佳预测模式作为所述待选非划分模式;
[0050] 第二计算单元,用于根据率失真代价公式计算所述当前编码单元在所述待选非划分模式下的率失真代价;
[0051] 第三确定单元,用于确定所述当前编码单元在所述待选非划分模式下的率失真代价中的最小率失真代价。
[0052] 第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面中所述的方法的步骤。
[0053] 本发明实施例带来了以下有益效果:本发明实施例提供了一种帧间预测模式的快速选择方法、装置及电子设备,该方法包括:获取当前编码单元;判断当前编码单元是否为预设深度的最小编码单元;如果当前编码单元不是预设深度的最小编码单元,则将当前编码单元划分为4个子编码单元;计算当前编码单元在Split模式下的率失真代价,其中,Split模式下的率失真代价为根据4个子编码单元的最佳预测模式所对应的率失真代价计算得到的数值;计算当前编码单元在待选非划分模式下的最小率失真代价,其中,待选非划分模式为4个子编码单元的最佳预测模式;根据Split模式下的率失真代价和待选非划分模式下的最小率失真代价确定当前编码单元的最佳预测模式。
[0054] 现有的帧间预测模式快速选择方法大都参考了邻边编码单元与参考帧的率失真代价等参数以及对应的最佳预测模式,与预测阈值等设定标准比较后,跳过其中若干种预测模式的计算过程,从而对当前编码单元的预测模式类型进行快速选择。这一过程固然可以加快算法本身的速率,较难提出一个合理且具有普适性的阈值,过小会减弱提速效果,过大则可能错过最佳预测模式从而影响视频质量;而且不少发明是在量化参数(QP)确定的条件下才能获得一个相对稳定可供筛选的阈值,而这并不适用于定码率下的编码要求,也就是现有的帧间预测模式快速选择方法难以同时兼顾编码速率和编码质量。与现有的帧间预测模式快速选择方法相比,本发明的帧间预测模式的快速选择方法中,先判断当前编码单元是否可以向下划分,也就是说,先判断当前编码单元是否为预设深度的最小编码单元,如果不是预设深度的最小编码单元(即可以向下划分),那么将当前编码单元划分为4个子编码单元,然后,计算当前编码单元在Split模式下的率失真代价和在待选非划分模式下的最小率失真代价,进而,根据Split模式下的率失真代价和待选非划分模式下的最小率失真代价确定当前编码单元的最佳预测模式。该方法中根据4个子编码单元的最佳预测模式所对应的率失真代价确定了当前编码单元在Split模式下的率失真代价,并且,确定了在4个子编码单元的最佳预测模式下的当前编码单元的最小率失真代价,进而根据Split模式下的率失真代价和最小率失真代价确定当前编码单元的最佳预测模式,这种方式有效的兼顾了编码质量和编码速率,在确保编码质量的前提下,可以大大提高编码速率,缓解了现有的帧间预测模式快速选择方法难以同时兼顾编码速率和编码质量的问题。
[0055] 本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
[0056] 为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

[0057] 为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0058] 图1为本发明实施例提供的一种帧间预测模式的快速选择方法的流程图;
[0059] 图2为本发明实施例提供的对编码单元进行划分的示意图;
[0060] 图3为本发明实施例提供的计算当前编码单元在Split模式下的率失真代价的方法流程图;
[0061] 图4为本发明实施例提供的计算当前编码单元在待选非划分模式下的最小率失真代价的方法流程图;
[0062] 图5为本发明实施例提供的根据Split模式下的率失真代价和待选非划分模式下的最小率失真代价确定当前编码单元的最佳预测模式的方法流程图;
[0063] 图6为本发明实施例提供的一种帧间预测模式的快速选择装置的结构框图;
[0064] 图7为本发明实施例提供的一种电子设备的示意图。

具体实施方式

[0065] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0066] 为便于对本实施例进行理解,首先对本发明实施例所公开的一种帧间预测模式的快速选择方法进行详细介绍。
[0067] 实施例一:
[0068] 一种帧间预测模式的快速选择方法,参考图1,应用于AVS2标准的视频编码器,该方法包括:
[0069] S102、获取当前编码单元;
[0070] 在本发明实施例中,帧间预测模式的快速选择方法的主要应用于AVS2标准的视频编码器中。
[0071] 当输入当前编码单元后,AVS2标准的视频编码器获取得到当前编码单元。
[0072] S104、判断当前编码单元是否为预设深度的最小编码单元;
[0073] 在得到当前编码单元后,先判断当前编码单元是否可以向下划分,即当前编码单元是否为预设深度的最小编码单元。
[0074] 为了便于理解,进行举例说明,如果对于一个64×64的编码单元来说,预设深度为2,就是对64×64的编码单元进行2次四叉树划分,一次四叉树划分后划分得到4个32×32的编码单元,再对32×32的编码单元进行一次的四叉树划分,如图2所示(图2中只示出了部分编码单元),最终划分得到16个16×16的编码单元。如果当前编码单元为16×16的编码单元,那么该当前编码单元即为预设深度的最小编码单元;如果当前编码单元为32×32的编码单元或者为64×64的编码单元,当前编码单元就不是预设深度的最小编码单元。
[0075] S106、如果当前编码单元不是预设深度的最小编码单元,则将当前编码单元划分为4个子编码单元;
[0076] 继续以上面的例子进行说明。具体的,如果当前编码单元为32×32的编码单元,那么将当前编码单元(即32×32的编码单元)划分为4个子编码单元。
[0077] S108、计算当前编码单元在Split模式下的率失真代价,其中,Split模式下的率失真代价为根据4个子编码单元的最佳预测模式所对应的率失真代价计算得到的数值;
[0078] 将当前编码单元(即32×32的编码单元)划分为4个子编码单元后,根据该4个子编码单元(即4个16×16的编码单元)的最佳预测模式所对应的率失真代价计算得到当前编码单元在Split模式下的率失真代价。具体过程将在下文中进行描述,在此不再赘述。
[0079] Split模式即为按照四叉树结构向下划分编码单元的模式。
[0080] S110、计算当前编码单元在待选非划分模式下的最小率失真代价,其中,待选非划分模式为4个子编码单元的最佳预测模式;
[0081] 在得到当前编码单元在Split模式下的率失真代价后,进一步计算在4个子编码单元的最佳预测模式下当前编码单元的最小率失真代价。具体内容也将在下文中描述,在此不再赘述。
[0082] S112、根据Split模式下的率失真代价和待选非划分模式下的最小率失真代价确定当前编码单元的最佳预测模式。
[0083] 在得到Split模式下的率失真代价和待选非划分模式下的最小率失真代价后,进而确定当前编码单元的最佳预测模式。
[0084] 现有的帧间预测模式快速选择方法大都参考了邻边编码单元与参考帧的率失真代价以及预测模式对当前编码单元的预测模式类型进行选择,这固然可以加快算法本身的速率;但较难提出一个合理且具有普适性的阈值,过小会减弱提速效果,过大则可能错过最佳预测模式从而影响视频质量;而且不少发明是在量化参数(QP)确定的条件下才能获得一个相对稳定可供筛选的阈值,而这并不适用于定码率下的编码要求,也就是现有的帧间预测模式快速选择方法难以同时兼顾编码速率和编码质量。与现有的帧间预测模式快速选择方法相比,本发明的帧间预测模式的快速选择方法中,先判断当前编码单元是否可以向下划分,也就是说,先判断当前编码单元是否为预设深度的最小编码单元,如果不是预设深度的最小编码单元(即可以向下划分),那么将当前编码单元划分为4个子编码单元,然后,计算当前编码单元在Split模式下的率失真代价和在待选非划分模式下的最小率失真代价,进而,根据Split模式下的率失真代价和待选非划分模式下的最小率失真代价确定当前编码单元的最佳预测模式。该方法中根据4个子编码单元的最佳预测模式所对应的率失真代价确定了当前编码单元在Split模式下的率失真代价,并且,确定了在4个子编码单元的最佳预测模式下的当前编码单元的最小率失真代价,进而根据Split模式下的率失真代价和最小率失真代价确定当前编码单元的最佳预测模式,这种方式有效的兼顾了编码质量和编码速率,在确保编码质量的前提下,可以大大提高编码速率,缓解了现有的帧间预测模式快速选择方法难以同时兼顾编码速率和编码质量的问题。
[0085] 上述内容对当前编码单元不是预设深度的最小编码单元的情况进行了介绍,下面对当前编码单元是预设深度的最小编码单元的情况进行介绍。
[0086] 可选地,该方法还包括:
[0087] S114、如果当前编码单元为预设深度的最小编码单元,则计算当前编码单元在多种预测模式下的率失真代价,其中,多种预测模式包括:Skip/Direct模式,2N×2N模式,Intra模式;
[0088] 具体的,继续以图2中的举例进行说明,如果当前编码单元为16×16的编码单元,即当前编码单元为预设深度的最小编码单元,则根据率失真代价公式计算当前编码单元(即16×16的编码单元)在多种预测模式下的率失真代价。
[0089] 率失真代价公式为: 由公式可知,RD是由预测值和真实值的差异+比特数两部分组成,达到有效权衡编码失真与比特率的目的。式中Distortion代表失真值,它是当前编码单元中图像块像素的真实值f(x,y)与当前编码单元在每一种预测模式下图像块像素的预测值fP(x,y)的差值平方和构成,CU代表的是当前编码单元的图像块;另一方面,为衡量编码比特率,则取拉格朗日因子λ与比特数R相乘结果作为附加项。
[0090] 式子中,当前编码单元确定后,f(x,y)也能确定,每一种预测模式下的fP(x,y)也可以确定,每一种预测模式下R也是确定的,所以,就能够求得RD。
[0091] 这样就能够得到当前编码单元(即16×16的编码单元)在Skip/Direct模式下的率失真代价RDSkip/Direct, 在2N×2N模式下的率失真代价RD2N×2N, 在Intra模式
下的率失真代价RDIntra,
[0092] S116、根据多种预测模式下的率失真代价确定当前编码单元的最佳预测模式,其中,最佳预测模式为多种预测模式下的率失真代价中最小率失真代价对应的预测模式。
[0093] 在得到多种预测模式下的率失真代价后,即得到Skip/Direct模式下的率失真代价RDSkip/Direct,2N×2N模式下的率失真代价RD2N×2N,Intra模式下的率失真代价RDIntra后,比较RDSkip/Direct,RD2N×2N和RDIntra的大小,确定三者中的最小率失真代价,并将最小率失真代价对应的预测模式作为当前编码单元的最佳预测模式。
[0094] 上述内容对帧间预测模式的快速选择方法进行了整体介绍,下面对当前编码单元不是预设深度的最小编码单元的情况进行详细介绍。
[0095] 可选地,参考图3,计算当前编码单元在Split模式下的率失真代价包括:
[0096] S301、确定4个子编码单元中每个子编码单元的最佳预测模式所对应的率失真代价,得到4个率失真代价;
[0097] 继续以图2为例进行说明,如果当前编码单元为32×32的编码单元,不是预设深度的最小编码单元(预设深度的最小编码单元为16×16),将该32×32的编码单元划分为4个16×16的编码单元(即4个子编码单元),确定该4个子编码单元中每个子编码单元的最佳预测模式所对应的率失真代价。
[0098] 具体的,该4个子编码单元中每个子编码单元即为预设深度的最小编码单元,所以,该4个子编码单元中每个子编码单元的最佳预测模式可以按照步骤S114至步骤S116的方法确定,同时,也就可以得到该4个子编码单元中每个子编码单元的最佳预测模式所对应的率失真代价,得到了对应于4个子编码单元的4个率失真代价(每个子编码单元对应1个率失真代价)。
[0099] S302、计算4个率失真代价的和;
[0100] 在得到4个率失真代价后,计算该4个率失真代价的和。
[0101] S303、将4个率失真代价的和作为当前编码单元在Split模式下的率失真代价。
[0102] 在得到4个率失真代价的和后,将该4个率失真代价的和作为当前编码单元在Split模式下的率失真代价,记为RDSplit。
[0103] 可选地,参考图4,计算当前编码单元在待选非划分模式下的最小率失真代价包括:
[0104] S401、确定4个子编码单元的最佳预测模式;
[0105] 对于当前编码单元为32×32的编码单元来说,4个子编码单元即为4个16×16的编码单元,它们是预设深度的最小编码单元,可以按照步骤S114至步骤S116的方法确定最佳预测模式。
[0106] 如果4个子编码单元中有3个子编码单元的最佳预测模式为2N×2N模式,有1个子编码单元的最佳预测模式为Skip/Direct模式,那么,记为cnt_2N×2N=3,cnt_Skip/Direct=1,cnt_Intra=0。
[0107] S402、将4个子编码单元的最佳预测模式作为待选非划分模式;
[0108] 如步骤S401中的举例可知,4个子编码单元中有3个子编码单元的最佳预测模式为2N×2N模式,有1个子编码单元的最佳预测模式为Skip/Direct模式,那么,待选非划分模式即为2N×2N模式和Skip/Direct模式。
[0109] 如果4个子编码单元中有4个子编码单元的最佳预测模式都为2N×2N模式,那么,待选非划分模式即为2N×2N模式。
[0110] S403、根据率失真代价公式计算当前编码单元在待选非划分模式下的率失真代价;
[0111] 在得到待选非划分模式后,根据率失真代价公式计算当前编码单元(即32×32的编码单元)在待选非划分模式下的率失真代价,具体过程与步骤S114中的内容相同,在此不再赘述。
[0112] S404、确定当前编码单元在待选非划分模式下的率失真代价中的最小率失真代价。
[0113] 如步骤S402中所述,如果待选非划分模式为2N×2N模式和Skip/Direct模式,在步骤S403中计算得到当前编码单元在待选非划分模式下的率失真代价(也就是当前编码单元在2N×2N模式下的率失真代价和当前编码单元在Skip/Direct模式下的率失真代价)后,确定当前编码单元在待选非划分模式下的率失真代价中的最小率失真代价。
[0114] 在方法实现过程中,具体过程为先给程序初始化一个最佳预测模式Best mode及对应的率失真代价RDbest。初始化最佳预测模式Best mode时,可以初始化为任意一种预测模式(比如Skip模式),将其对应的对应的率失真代价RDbest设置为极大值,这一极大值和数据类型有关,如果为无符号短整型,该极大值即为2^16-1。因为,cnt_2N×2N=3,cnt_Skip/Direct=1,都大于0(也就是待选非划分模式为2N×2N模式和Skip/Direct模式),那么计算当前编码单元在2N×2N模式和Skip/Direct模式下的率失真代价RD2N×2N和RDSkip/Direct,将计算得到的RD2N×2N和RDSkip/Direct分别与RDbest进行比较,如果RD2N×2N
[0115] 可选地,参考图5,根据Split模式下的率失真代价和待选非划分模式下的最小率失真代价确定当前编码单元的最佳预测模式包括:
[0116] S501、将Split模式下的率失真代价与待选非划分模式下的最小率失真代价进行对比;
[0117] 在得到Split模式下的率失真代价和待选非划分模式下的最小率失真代价后,将其进行对比。
[0118] S502、如果Split模式下的率失真代价小于待选非划分模式下的最小率失真代价,则将Split模式作为当前编码单元的最佳预测模式;
[0119] S503、如果Split模式下的率失真代价不小于待选非划分模式下的最小率失真代价,则将最小率失真代价所对应的预测模式作为当前编码单元的最佳预测模式。
[0120] 由上可知,当当前编码单元为32×32的编码单元时,确定其最佳预测模式的过程是依赖4个16×16的编码单元的最佳预测模式以及最佳预测模式对应的率失真代价确定的,也就是详细介绍了确定最小编码单元的(即16×16的编码单元)上一层编码单元的最佳预测模式的过程。
[0121] 即,上述内容只是针对当前编码单元为32×32的编码单元和当前编码单元为16×16的编码单元情况进行了展开详细介绍。对于图2中,如果当前编码单元为64×64的编码单元时,确定最佳预测模式的过程和确定32×32的编码单元的最佳预测模式的过程相类似。
[0122] 参考图2,在得到32×32的编码单元的最佳预测模式后,4个32×32的编码单元的上一层为64×64的编码单元,根据4个32×32的编码单元的最佳预测模式以及最佳预测模式对应的率失真代价按照如上介绍的过程确定出64×64的编码单元的最佳预测模式。
[0123] 也就是说,在进行最佳预测模式的确定时,实际上为从最小编码单元依次向上递归确定得到的。
[0124] 本发明的主要优点在于没有明显降低编码质量的情况下,令编码速度提升了约34%,提速效果明显;并且相较于已有的编码技术,本发明也参考了更深划分层次下的编码单元预测模式信息,将多种预测模式的率失真代价值进行比较之后对预测模式进行选择,有效兼顾了编码速率与质量。在平均码率增加约1.5%的情况下,速度提升大约34%,大大提升了编码的实时性。
[0125] 实施例二:
[0126] 一种帧间预测模式的快速选择装置,参考图6,该装置包括:
[0127] 获取模块20,用于获取当前编码单元;
[0128] 判断模块21,用于判断当前编码单元是否为预设深度的最小编码单元;
[0129] 划分模块22,如果当前编码单元不是预设深度的最小编码单元,则将当前编码单元划分为4个子编码单元;
[0130] 第一计算模块23,用于计算当前编码单元在Split模式下的率失真代价,其中,Split模式下的率失真代价为根据4个子编码单元的最佳预测模式所对应的率失真代价计算得到的数值;
[0131] 第二计算模块24,用于计算当前编码单元在待选非划分模式下的最小率失真代价,其中,待选非划分模式为4个子编码单元的最佳预测模式;
[0132] 第一确定模块25,用于根据Split模式下的率失真代价和待选非划分模式下的最小率失真代价确定当前编码单元的最佳预测模式。
[0133] 本发明的帧间预测模式的快速选择装置中,先判断当前编码单元是否可以向下划分,也就是说,先判断当前编码单元是否为预设深度的最小编码单元,如果不是预设深度的最小编码单元(即可以向下划分),那么将当前编码单元划分为4个子编码单元,然后,计算当前编码单元在Split模式下的率失真代价和在待选非划分模式下的最小率失真代价,进而,根据Split模式下的率失真代价和待选非划分模式下的最小率失真代价确定当前编码单元的最佳预测模式。该装置中根据4个子编码单元的最佳预测模式所对应的率失真代价确定了当前编码单元在Split模式下的率失真代价,并且,确定了在4个子编码单元的最佳预测模式下的当前编码单元的最小率失真代价,进而根据Split模式下的率失真代价和最小率失真代价确定当前编码单元的最佳预测模式,这种方式有效的兼顾了编码质量和编码速率,在确保编码质量的前提下,可以大大提高编码速率,缓解了现有的帧间预测模式快速选择装置难以同时兼顾编码速率和编码质量的问题。
[0134] 可选地,该装置还包括:
[0135] 第三计算模块,如果当前编码单元为预设深度的最小编码单元,则计算当前编码单元在多种预测模式下的率失真代价,其中,多种预测模式包括:Skip/Direct模式,2N×2N模式,Intra模式;
[0136] 第二确定模块,用于根据多种预测模式下的率失真代价确定当前编码单元的最佳预测模式,其中,最佳预测模式为多种预测模式下的率失真代价中最小率失真代价对应的预测模式。
[0137] 可选地,第一计算模块包括:
[0138] 第一确定单元,用于确定4个子编码单元中每个子编码单元的最佳预测模式所对应的率失真代价,得到4个率失真代价;
[0139] 第一计算单元,用于计算4个率失真代价的和;
[0140] 第一设定单元,用于将4个率失真代价的和作为当前编码单元在Split模式下的率失真代价。
[0141] 可选地,第二计算模块包括:
[0142] 第二确定单元,用于确定4个子编码单元的最佳预测模式;
[0143] 第二设定单元,用于将4个子编码单元的最佳预测模式作为待选非划分模式;
[0144] 第二计算单元,用于根据率失真代价公式计算当前编码单元在待选非划分模式下的率失真代价;
[0145] 第三确定单元,用于确定当前编码单元在待选非划分模式下的率失真代价中的最小率失真代价。
[0146] 可选地,第一确定模块包括:
[0147] 对比单元,用于将Split模式下的率失真代价与待选非划分模式下的最小率失真代价进行对比;
[0148] 第三设定单元,如果Split模式下的率失真代价小于待选非划分模式下的最小率失真代价,则将Split模式作为当前编码单元的最佳预测模式;
[0149] 第四设定单元,如果Split模式下的率失真代价不小于待选非划分模式下的最小率失真代价,则将最小率失真代价所对应的预测模式作为当前编码单元的最佳预测模式。
[0150] 实施例三:
[0151] 本发明实施例提供了一种电子设备,参考图7,该电子设备包括:处理器30,存储器31,总线32和通信接口33,处理器30、通信接口33和存储器31通过总线32连接;处理器30用于执行存储器31中存储的可执行模块,例如计算机程序。处理器执行极端及程序时实现如方法实施例中描述的方法的步骤。
[0152] 其中,存储器31可能包含高速随机存取存储器(RAM,RandomAccessMemory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口33(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
[0153] 总线32可以是ISA总线、PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
[0154] 其中,存储器31用于存储程序,处理器30在接收到执行指令后,执行程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器30中,或者由处理器30实现。
[0155] 处理器30可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器30中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器30可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器31,处理器30读取存储器31中的信息,结合其硬件完成上述方法的步骤。
[0156] 本发明实施例所提供的帧间预测模式的快速选择方法、装置及电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
[0157] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0158] 另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0159] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0160] 在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0161] 最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。