首页> 中国专利> 基于SATD的HEVC帧内预测的新型快速算法

基于SATD的HEVC帧内预测的新型快速算法

摘要

此发明名称:基于SATD的HEVC帧内预测的新型快速算法具体来说,我们提出了一种可跳过CU中的所有RDcost计算,决定提前划分和提前修剪的快速算法。该方法的基本概念是:确定当前划分深度的当前块的最优模式的SATD值,如果基于SATD值当前块能确定是要划分的,则直接跳过该块的预测,直接做当前块的子块部分的预测,这样就省了预测大块的时间。如果基于SATD值确定当前块如果比较光滑,则不需要再继续划分下去,我们不再递归下去,即终止划分,节省了预测当前块的子块的时间。

著录项

  • 公开/公告号CN106899850A

    专利类型发明专利

  • 公开/公告日2017-06-27

    原文格式PDF

  • 申请/专利权人 北方工业大学;

    申请/专利号CN201710119718.6

  • 发明设计人 张萌萌;

    申请日2017-03-02

  • 分类号H04N19/96;H04N19/176;H04N19/11;H04N19/122;

  • 代理机构

  • 代理人

  • 地址 100144 北京市石景山区晋元庄路5号北方工业大学

  • 入库时间 2023-06-19 02:41:27

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-08-14

    授权

    授权

  • 2017-08-25

    实质审查的生效 IPC(主分类):H04N19/96 申请日:20170302

    实质审查的生效

  • 2017-06-27

    公开

    公开

说明书

联合研究

本申请由北方工业大学与北京交通大学信息所联合研究,并得到以下基金资助:国家自然科学基金(No. 61103113,No.60903066),北京市属高等学校人才强教深化计划项目(PHR201008187);江苏省自然科学基金(BK2011455), 北京市自然科学基金(No.4102049),教育部新教师基金(No. 20090009120006);国家973计划 (2012CB316400),中央高校基础研究基金(No.2011JBM214)。

技术领域

本发明涉及图像与视频处理领域,更具体而言,涉及高效视频编码(HEVC),再更具体而言,涉及一种基于SATD的HEVC帧内预测的新型快速算法。

背景技术

2010年4月,两大国际视频编码标准组织 VCEG和MPEG成立视频压缩联合小组JCT-VC(Joint collaborative Team on Video Coding),一同开发高效视频编码HEVC(Highefficiency video coding)标准,其也称为H.265。HEVC标准主要目标是与上一代标准H.264/AVC实现大幅度的编码效率的提高,尤其是针对高分辨率视频序列。其目标是在相同视频质量(PSNR)下码率降为H.264标准的50%。

就目前阶段,HEVC依然沿用H.264就开始采用的混合编码框架。帧间和帧内预测编码:消除时间域和空间域的相关性。变换编码:对残差进行变换编码以消除空间相关性。熵编码:消除统计上的冗余度。HEVC将在混合编码框架内,着力研究新的编码工具或技术,提高视频压缩效率。

目前,JCT-VC组织的讨论中已经提出的许多编码的新特性,有可能会加入HEVC标准中,各次讨论的具体文献可以从http://wftp3.itu.int获得。

HEVC标准的第一版已经在2013年的一月份完成。并于2013年4月、2014年10月和2015年4月相继发布的3个版本,这些版本能够很容易地从网络上获得,并且本申请将上述HEVC标准的三个版本并入本说明书中作为本发明的背景技术。

与H.264/AVC相比,HEVC压缩效率提高了50%。递归树结构作为HEVC的一个强大的功能,已经取代了先前视频编码标准中的宏模块。在最大的编码单元(LCU)结构中包括多种尺寸,范围从64×64到8×8。LCUs确保平滑区的高压缩率,小编码单位(CUs)则处理复杂区域。每一个编码单元都被划分为预测单元(PUs)和变换单元(TU)。帧内预测支持35种模式,包括DC模式、平面模式和33个角度预测模式。通过四叉树结构计算出全部的率失真代价(RDcost)得到最优的CU尺寸大小。

HEVC中关于帧内预测模式的改动显著提高了压缩效率但也不可避免的导致了计算的复杂性,因此,减少帧内编码的复杂度变得至关重要,也成为广泛的研究课题。特别是,对LCU中的CU的划分过程花费了帧内编码相当多的时间,需要改进的算法来进一步降低CU划分的复杂度和计算量。

发明内容

在本发明中,我们提出一种提前决定HEVC帧内编码CU的尺寸大小的快速划分(split)和修剪(prune)的结合方法。哈达码变换的绝对误差和(SATD)的值被用作CU划分和修剪过程的阈值来减少编码的复杂度。

作为另一个发明点,我们提出了自适应地设置用于提前划分和提前修剪的阈值,并且所述阈值会随着与量化步长(QP)相关的边界值变化而变化。

作为公知常识,SATD(Sum of Absolute Transformed Difference)即hadamard变换后再绝对值求和。

根据一个方面,提出了一种在高效视频编码(HEVC)中的快速帧内预测方法,包括:

针对一个帧的前M(M是可设置的数量)个LCU中的每一个LCU:

以该LCU作为参考,来自适应地确定每一划分深度的提前划分阈值和提前修剪阈值;

针对一个帧的剩余的一个或多个LCU中的每一个LCU的每一划分深度:

确定当前划分深度的当前CU的最优模式的SATD值;

基于所述SATD值与当前划分深度的提前划分阈值的比较,来判断当前CU是否应该提前划分,如果应该提前划分,则跳过该CU的预测,直接进行当前CU的下一深度的预测;以及

基于所述SATD值与当前划分深度的提前修剪阈值的比较,来判断当前CU是否应该提前修剪,如果应该提前修剪,则终止该CU的划分;

如果基于所述SATD值与当前划分深度的提前划分阈值和提前修剪阈值的比较,确定当前CU不应该提前划分和提前修剪,则使用所述SATD值来自适应地更新当前划分深度的提前划分阈值和提前修剪阈值。

根据进一步的方面,对提前划分阈值和提前修剪阈值的自适应确定和更新还基于与量化步长(QP)相关的边界值变化。

根据进一步的方面,针对每一划分深度,设置不同的M值来自适应地确定每一划分深度的提前划分阈值和提前修剪阈值,并且采用不同的算法来自适应地确定或更新每一划分深度的提前划分阈值和提前修剪阈值。

根据进一步的方面,针对一个帧的剩余的一个或多个LCU中的每一个LCU:通过初选模式确定获得最佳模式候选列表,并采用率失真优化来选择最优模式。

根据进一步的方面,如果基于所述SATD值与当前划分深度的提前划分阈值和提前修剪阈值的比较,确定当前CU不应该提前划分和提前修剪,则使用HEVC标准过程执行预测。

根据进一步的方面,针对一个帧的前M(M是可设置的数量)个LCU中的每一个LCU,使用HEVC标准过程执行预测。

根据进一步的方面,针对一个帧的剩余的一个或多个LCU中的每一个LCU,如果该LCU的PartMode不是2 N×2 N,则使用HEVC标准过程执行预测。

根据另一方面,提出了一种在高效视频编码(HEVC)中的快速帧内预测装置,包括:

用于针对一个帧的前M(M是可设置的数量)个LCU中的每一个LCU进行如下操作的单元:

以该LCU作为参考,来自适应地确定每一划分深度的提前划分阈值和提前修剪阈值;

用于针对一个帧的剩余的一个或多个LCU中的每一个LCU的每一划分深度进行如下操作的单元:

确定当前划分深度的当前CU的最优模式的SATD值;

基于所述SATD值与当前划分深度的提前划分阈值的比较,来判断当前CU是否应该提前划分,如果应该提前划分,则跳过该CU的预测,直接进行当前CU的下一深度的预测;以及

基于所述SATD值与当前划分深度的提前修剪阈值的比较,来判断当前CU是否应该提前修剪,如果应该提前修剪,则终止该CU的划分;

如果基于所述SATD值与当前划分深度的提前划分阈值和提前修剪阈值的比较,确定当前CU不应该提前划分和提前修剪,则使用所述SATD值来自适应地更新当前划分深度的提前划分阈值和提前修剪阈值。

根据另一方面,提出了实现上述方法或装置的视频编解码器。

根据另一方面,本发明提出了相应的装置权利要求。

根据另一个方面,本发明提出了一种计算机程序产品,其包含指令,所述指令当由处理器执行时,执行上述方法。

附图说明

图1示出了HEVC的编码器框图的一个实施例。

图2示出了HEVC中利用四叉树对LCU进行逐步分割的原理图。

图3示出了用于表述最小分割深度4×4的像素位置以及平滑判断的示意图。

具体实施方式

现在参考附图来描述各种方案。在以下描述中,为了进行解释,阐述了多个具体细节以便提供对一个或多个方案的透彻理解。然而,显然,在没有这些具体细节的情况下也能够实现这些方案。

如在本申请中所使用的,术语“组件”、“模块”、“系统”等等旨在指代与计算机相关的实体,例如但不限于,硬件、固件、硬件和软件的组合、软件,或者是执行中的软件。例如,组件可以是但不限于:在处理器上运行的进程、处理器、对象、可执行体(executable)、执行线程、程序、和/或计算机。举例而言,运行在计算设备上的应用程序和该计算设备都可以是组件。一个或多个组件可以位于执行进程和/或者执行线程内,并且组件可以位于一台计算机上和/或者分布在两台或更多台计算机上。另外,这些组件可以从具有存储在其上的各种数据结构的各种计算机可读介质执行。组件可以借助于本地和/或远程进程进行通信,例如根据具有一个或多个数据分组的信号,例如,来自于借助于信号与本地系统、分布式系统中的另一组件交互和/或者与在诸如因特网之类的网络上借助于信号与其他系统交互的一个组件的数据。

图1示出了高效视频编码(HEVC)所实现的视频编码器的大致结构图。HEVC的编码器架构与H.264所使用的编码器架构大致相同,主要是针对各个模块中所使用的算法进行了进一步的研究、改进,尤其是针对高分辨率视频序列,其改进的目标是在相同视频质量(PSNR)下码率降为H.264标准的50%。

由于HEVC的编码器架构与H.264所使用的编码器架构大致相同,因此不混淆本发明,本申请中不对图1中的整体架构进行描述,而仅关注于基于HEVC标准的CU分割。

A. 方案概述

在HEVC中,输入的视频首先被分割成一些小块叫做编码树单元(coding tree units,CTU)。本领域技术人员可以理解,CTU相当于之前标准的宏块(macroblock)的概念。CU是一个拥有一个预测模式(帧内、帧间或者跳过)的正方形的(像素)单元。通常,编码端花费了很长的时间在CTU中寻找最佳的CU分割。

CU是四叉树的叶节点。一个CU的区域可以作为一个预测单元(prediction unit,PU),也可以分成4个PU。PU是一个共用预测信息的一个 区域。图2示出了HEVC中的CU分割的四叉树结构。如果一个CU的深度不等于3,它可以分成4个更小的CU,如果这些更小的CU深度仍然小于3,它还可以再分割,直到CU的深度等于3为止。对于帧内预测的编码,一个CU中的亮度块的大小可以从8x8到64x64的CU。在本发明中,深度为0的CU即CTU。

在HEVC中,编码端通过率失真(rate-distortion,RD)准则来判定是使用一个大的CU还是将其分裂为更小的CU。这种基于四叉树的CU分块结构能够很灵活的适应图像的各种纹理结构。然而,为了找到最佳的CU划分需要大量的计算复杂度,这是因为编码端需要查看每种大小CU的RD才能找到最优划分。大部分的编码时间都花在了大量的RD检查上。如果CU的划分方法能够提前知道,我们将能节省大量的编码时间。

帧内预测编码的计算复杂度主要由两个部分:即,四叉树结构下的CU递归划分以及所有候选帧内预测模式的RDcost的计算。SATD能反映出残差在频域的大小。因此,我们选择相应的SATD值作为提前划分和提前修剪的阈值来跳过CU所有RDcost的计算和终止CU继续划分。

在本文中,“提前划分”是指当前块最终是划分成小块的,那么可以提前划分,跳过当前块的所有计算RDcost的操作直接只做当前块的子块的划分操作。“提前裁剪”是当前区域属于比较平坦的区域,所以没必要再遍历下层子块而直接确定当前块为最优划分,直接终止继续划分,形象地比喻为修剪四叉树的小枝丫。

在本文中,考虑帧内预测模式的两种PartMode模式(2 N×2 N和N×N), PU的大小都是基于CU的PartMode。2 N×2 N模式的64×64、32×32和16×16的CU会被分为四个子CU,而N×N模式的8×8的CU被划分为四个PU。

帧内预测中每个CU有35种预测模式,如上所述。对于每一个LCU,通过初选模式确定(RMD),可以为64×64、32×32和16×16块选出3个候选模式以及为8×8和4×4块选出8个候选模式。再与相邻块的最可能模式的结合使PU获得最佳的模式候选列表(MPM)。针对候选列表中的每一个模式,我们通过率失真优化(RDO)选择最优模式Best Mode (BM)。最优模式选择的过程是基于自上而下四叉树结构方式进行的。经过自上而下的遍历进行变换量化得到RDcost最小的最优模式。在当前PU和它的四个子PU完成预测之后,CU通过自底向上方式四叉树结构进行编码。通过比较当前CU的RDcost和四个子CU的RDcost之和,选出拥有较小RDcost的次最优CU。更具体而言,当四个子CU完成预测之后会和当前CU的进行比较,来决定此时次最优的划分方式,这是自底向上的方式来进行。例如,当当前8×8块的四个4×4的块帧内预测完之后,会与当前8×8块的RDcost作比较,来确定这个8×8块是否划分,这时是次最优的划分方式。16×16块会和它的四个8×8作比较,以此类推,一直到64×64块和它的四个32×32作比较,这是由底向上的四叉树结构进行的,从深度最大的开始,每做一次比较,则将次最优的部分保存下来,一直到深度为0时,得到这个LCU的最优划分模式。

根据本发明,CU的提前划分作用在RMD之后所有的自上而下方式RDcost的计算,提前划分可以节省遍历大块的时间。CU提前修剪是在比较所有自底而上RDcost 得到最优CU中起作用,提前修剪可以节省做小块的时间。换言之,CU的提前划分是为了跳过当前块的预测,CU的修剪是为了终止CU继续划分,如上所述。如果一个CU最有可能提前划分,则我们跳过当前的帧内预测所有的计算RDcost的过程。否则,如果CU能提前修剪,则其不再划分。

B. 本申请的快速算法方案

为了减少计算复杂度,我们提出了一种跳过CU的所有RDcost计算,决定提前划分和提前修剪的快速算法。

该方法的基本概念是:如果当前块能确定是要划分的,则直接跳过该块的预测,直接做当前块的子块部分的预测(即提前划分),这样就省了预测大块的时间。如果当前块如果比较光滑,则不需要再继续划分下去,我们不再递归下去,即终止划分,省了预测当前块的子块的时间(即提前裁剪)。

该方法的另一方面在于,自适应地设置用于提前划分和提前修剪的阈值。

该方法的另一方面在于,所述阈值会随着与量化步长(QP)相关的边界值变化而变化。

该方法的另一方面在于,根据各个深度的块大小,自适应地选择各个参数(例如参考LCU数量)和阈值确定算法。

图3示出了根据本发明的用于进行提前划分和提前修剪的示例性实施例的图示说明。

如图3所示,选取按原编码方式编码的LCU作为参考样本,是用来保存每个对应深度CU的最优模式的SATD值(SATDBM)。其中,“原编码方式”就是不改变根据HEVE标准的编码过程,不进行提前划分和提前修剪。每个帧内编码帧包含多个LCU。在一个具体实施例中,在对一个帧进行帧内编码时,如果判定一个LCU是该帧的前几个(该数量可设置)LCU,则该LCU是“参考LCU”,不改变该LCU的编码方式,而是采用标准HEVC编码过程。其中,每个对应深度CU的最优模式即上述35个帧内预测模式中的最终被选中的预测模式。对于每个对应深度CU的SATDBM,当当前块(即对应深度CU)和四个子块(即下一深度的CU或PU)进行比较时,可以确定是否应对当前块进行划分,若应该划分,则此时保存的是当前块的子块的最优模式的SATD值,若不划分则保存的是不分块情况下的当前块最优模式的SATD值。

通过每个深度的次最优CU分类处理,我们得到当前深度CU的分(划分)和不分(不划分)情况下的SATDBM。即,对于每个深度,将当前块和四个子块进行比较,以决定是否对当前块进行划分,把当前块对应的SATD值分两部分(划分和不划分)分别进行存储。

经过分析对应的SATDBM,得到TS和TP的值,其中TS代表着提前划分CU的阈值(即提前划分阈值),TP是提前修剪CU的阈值(即提前修剪阈值)。更具体地,根据每个深度所存储的这两部分的值,可以得到每个深度的提前划分和提前修剪的阈值。

如上所述地,针对每一个帧内编码帧,使用该帧的前几个(该数量可设置)LCU来自适应地确定用于提前划分和提前修剪的阈值。以下将详细地描述对所述阈值的确定。另外,如下所述,在随后的LCU,不断地自适应地更新用于每个深度提前划分和提前修剪的阈值。

一旦TS和TP确定并保存下来,我们的算法便开始起作用了。

如果当前LCU不是参考的LCU(即不是一个帧开始几个LCU),则判断其PartMode(划分模式)模式。对于PartMode是2N × 2N的CU,通过RMD的过程中35种预测模式得到最小的SATD值(SATDs)。

如果SATDs大于TS,则当前CU将会划分成更小的CU。在这种情况下,不需要再计算全部的RDcost来得到最优模式,我们只需要跳过当前CU的帧内预测,并将CU深度加1。对于8×8的CU,则是PU深度加1,预测四个小的PU。这里,应该理解,HEVC标准编码方式中是从最大块(例如64x64)到最小块(例如4x4)遍历(即对递归四叉树的遍历)都需要计算RDcost,但是如果确定进行提前划分,则不需要再计算全部的RDcost来得到最优模式。

如果当前CU不提前划分,则可能提前修剪。如果SATDs小于TP,则CU不再往下划分。我们仅需要计算当前CU的全部RDcost,不再计算其四个小块的RDcost。

进一步,如果SATDs的值不满足提前划分和提前修剪的条件,则当前CU按原编码方式(即HEVC标准编码方式)进行编码。当CU和它四个子CU编码完成后,如果得到的次最优CU是划分,则更新TS值,否则则更新TP值。更具体而言,如果SATDs介于这两个阈值之间,不能判断提前划分和修剪,则按照原编码方式的过程遍历整个四叉树结构,在遍历的过程中,当当前CU和它四个子CU的帧内预测完成之后,开始比较和确定当前CU到底划分还是不划分,如果划分,则更新提前划分阈值,如果不划分则更新提前修剪阈值。这是因为,提前划分或提前修剪的阈值没能决定这一部分CU是否划分,说明提前划分阈值大了或者提前修剪的阈值小了,阈值不够准确,所以需要用前面不能判断的部分进行更新。

接下来,介绍参考LCU及TS和TP阈值的抉择。

C.TS和TP阈值的确定

在这部分,我们论述提前划分阈值和提前修剪阈值的决定。

对于一个LCU,我们能得到一个64×64的值,四个32×32块的值,16个16×16块的值,64个8×8块的值。实验表明对于8×8块参考一个LCU可以精确的确定阈值。通过对四叉树结构中次最优CU的研究,能得到不同深度CU全部的值。更具体而言,通过对当前块与四个子块的比较得到的是次最优CU,通过次最优CU我们知道对当前CU划分与不划分所对应的SATD值。

对于不同深度,我们选取自适应的LCU数量(可设置数量M)作为相应的参考样本。我们知道参考LCU数量设置的越多,我们得到的阈值将会越精确。然而,选取过多的LCU作为参考会增加计算的复杂度。通过在不同序列上广泛的实验,我们观察到用每一帧前六个LCU作为64×64和32×32块的参考,三个LCU作为16×16块的参考,一个LCU作为8×8块的参考。从这些参考LCU中得到的值足以确定每个深度的TS和TP

当从参考样本中得到的TP越大TS越小(TS大于TP),我们能提前判定的CU就越多,通过提前划分和修剪而减少的编码时间也越多。其中,容易理解,提前划分的阈值肯定是大于提前修剪的阈值,就相当于一个带通滤波器,中间的部分是我们不能决定的,左边是提前修剪的部分,右边是提前划分的部分。

但是,应该看到,提前判断CU越多,因误判而导致质量下降的可能也就越大。所以,TS和TP阈值的确定对提前划分和提前修剪至关重要。为了提高TS和TP的准确度,分析参考值和设置相关条件来确定及更新阈值是必不可少的工作。为防止不同帧之间阈值的相互影响,测试序列的每一帧都按照上面的流程来决定和更新TS和TP的值。

划分与不划分(其通过次最优CU判断,如上所述)的比例在不同序列的每帧中是不同的。表1中展示了每类标准序列的一个代表序列的一帧中不同的CU大小所对应分的比例。显而易见,划分的比例随着CU的大小而降低。

表I每类的一个代表序列中一帧中不同的CU大小所对应的划分的比例

在图1中,所述划分的比例等于CU划分的个数除以CU总数;例如64x64的块,大部分都是要继续划分的,不划分个数极少,用划分的个数除以一帧中64x64的块的个数得到该比例。

理论上而言, 当一个CU的SATDBM小于所有划分的CU的最小SATDBM时,则其必然是不划分。当其大于所有不划分CU的最大SATDBM值,则这个CU肯定会继续划分。基于这个准则,我们为每一个深度设置自适应阈值并更新。

1) 源于参考LCU的阈值:对于8×8的块,绝大部分的PU是不分的,在表1 中8×8块的PU分的比例远小于不分的比例。从第一个LCU中我们会得到64个8×8块的SATDBM。小于参考样本中不划分的均值的8×8块占大部分,所以选取不划分的均值作为提前修剪的阈值是很明智的。经过对所有序列进行实验,如果8×8块参考样本中存在划分的块,且划分的块最大值大于2500,则选取最大值作为提前划分的阈值,否则的话,设置提前划分的阈值为最大值。

对于16×16的块,除了特殊的序列,划分与不划分的比例相当。16×16块的参考样本是从前三个LCU中取得。很多划分与不划分的值有交集,我们设置不划分的最大值作为提前划分的阈值,划分的最小值作为提前修剪的阈值。并且,当参考中的每个划分的值都大于全部不划分的值,那么就分别设置它们的均值作为划分或不划分的阈值。实验表明,必须要保证16×16块的修剪阈值和3倍的8×8块的修剪阈值差的绝对值要小于10倍的QP。

以basketballdrill这个序列为例。通过前三个LCU,我们将提前划分的阈值设定为不划分样本中的最大值,由于划分的最小值远大于3倍的8×8块的提前修剪阈值,16×16块的提前修剪阈值设置为参考中不划分的最小值。经过分析,提前划分和提前修剪的阈值很准确。

对于32×32的块,大部分划分的比例大于不划分的比例。32×32块的参考值从前6个LCU取得。通过对参考值的分析,发现划分的SATDBM值比不划分的SATDBM值要大得多。大部分的序列的TS设定为划分的均值,TP是不划分的最小值,且通过观察设定这个值小于3000。对于不满足条件的序列,例如,表1中Kimono32×32块划分的比例小于不划分的比例,且不划分的均值大于划分的均值,在这种情况下,我们选取划分的最大值作为提前划分的阈值是可行的。另外,对于vi于iyu这个序列,划分的值并不能满足提前划分的阈值。所以我们通过观察设定划分的阈值为30000。

对于64×64的块,几乎都是继续划分的,只有一些序列存在不划分的块。所以我们只设置提前划分的阈值,将提前修剪的阈值设为0。如果6个参考样本都是划分的,设置提前划分阈值为参考的划分的最小值。如果存在不划分的块,则设提前划分阈值为参考样本的划分的均值。

(2)更新阈值:根据流程图,用未处理的CU来更新阈值。在表II中观察到Basketballdrill的前三个LCU中不划分的数量和SATDBM的均值都随QP的增加而增加。根据这一发现,我们通过在不同序列上的实验为阈值设置与QP相关的边界值。JBS代表划分的边界值,JBP代表不划分的边界值。

表 II Basketballdrill的前三个LCU中8 × 8不划分的数量和SATDBM的均值

不划分的SATDBM值大于JBS的只占小部分,划分的SATDBM值小于JBP的也只占小部分。所以,我们以这小部分的均值作为更新阈值的限制。JPAB代表大于划分的边界值的不划分的均值,JSAS代表小于不划分边界值的划分的均值。

通过实验,我们按公式(1)和(2)设置8×8块的边界值JBS和JBP

>

>

以8×8块为例,以basketballdrill序列为例,如果未判定的8×8块最终会划分为四个PU,并且SATDBM小于JBP,那么JSAS会更新。

对于16×16的块,用8×8块的阈值来设置边界值。划分的边界值是1.5倍的8×8块的TS,不划分的边界值是3倍的8×8块的TP

对于32×32的块,设置划分的边界值为参考样本的划分的均值和不划分均值的均值,不划分的边界值为2倍的16×16块的TP

对于64×64的块,设置划分的边界值为不划分参考值的最大值,并且这个值小于提前划分阈值,否则,设置其为划分参考值的最小值。序列Traffic参考样本全部分,但是一帧内存在一小部分不划分的CU。所以我们通过观察,将划分的边界值设置为30000.

当未处理的块是划分的,且SATDBM满足条件,我们根据公式(3)更新TS。如果TS是最大值,那么将TS设为SATDBM。当未处理的块是不分的,且SATDBM小于JSAS,我们则根据公式(4)更新TP。如果TP为0,那么将TP设为SATDBM。为了防止TS发生巨变,我们用SATDBM和TS的均值来更新划分的阈值,TP也采用同种方式更新。当JPAB或JSAS不存在时,如果SATDBM和当前阈值的绝对值小于10倍的QP,则更新阈值。

>

>

综上所述,本发明提出了一种在高效视频编码(HEVC)中的快速帧内预测方法。更具体而言,本发明提出了在帧内预测模式中的改进的LCU划分预测的方法。

每一个帧内编码帧皆包含多个LCU。选取前M(M是可设置的数量)个LCU作为参考来确定后续LCU的提前划分阈值和提前修剪阈值。具体而言,针对一个帧的前M个LCU中的每一个LCU,以该LCU作为参考,来自适应地确定每一划分深度的提前划分阈值和提前修剪阈值。在一个实施例中,可以采用如上所述的具体设置过程,针对不同划分深度采用不同M值且采用不同的确定算法,来分别地确定每一划分深度的提前划分阈值和提前修剪阈值。

如上所述地,作为一个优选实施例,针对每一划分深度(对应于不同的块大小),可以设置不同的M值来自适应地确定每一划分深度的提前划分阈值和提前修剪阈值。在另一实施例中,可以对于所有划分深度采用相同的M值。

作为一个优选实施例,针对每一划分深度(对应于不同的块大小),可以采用不同的算法来自适应地确定或更新每一划分深度的提前划分阈值和提前修剪阈值。

根据一个优选实施例,针对一个帧的剩余的一个或多个LCU中的每一个LCU,如果该LCU的PartMode不是2 N×2 N,则可以使用HEVC标准过程执行预测。

进一步,针对一个帧的剩余的一个或多个LCU中的每一个LCU的每一划分深度,首先,可以确定当前划分深度的当前CU的最优模式的SATD值。

其次,可以基于所述SATD值与当前划分深度的提前划分阈值的比较,来判断当前CU是否应该提前划分,如果应该提前划分,则跳过该CU的预测,直接进行当前CU的下一深度的预测。

再次,可以基于所述SATD值与当前划分深度的提前修剪阈值的比较,来判断当前CU是否应该提前修剪,如果应该提前修剪,则终止该CU的划分

最后,如果基于所述SATD值与当前划分深度的提前划分阈值和提前修剪阈值的比较,确定当前CU不应该提前划分和提前修剪,则使用所述SATD值来自适应地更新当前划分深度的提前划分阈值和提前修剪阈值。

根据一个优选实施例,针对一个帧的剩余的一个或多个LCU中的每一个LCU:通过初选模式确定获得最佳模式候选列表,并采用率失真优化来选择最优模式。

根据一个优选实施例,如果基于所述SATD值与当前划分深度的提前划分阈值和提前修剪阈值的比较,确定当前CU不应该提前划分和提前修剪,则使用HEVC标准过程执行预测。

根据一个优选实施例,对提前划分阈值和提前修剪阈值的自适应确定和更新还基于与量化步长(QP)相关的边界值变化。

根据一个优选实施例,针对一个帧的前M(M是可设置的数量)个LCU中的每一个LCU,使用HEVC标准过程执行预测。

另一方面,本发明还提出了一种在高效视频编码(HEVC)中的快速帧内预测装置,包括:用于针对一个帧的前M(M是可设置的数量)个LCU中的每一个LCU进行如上所述操作的单元;以及用于针对一个帧的剩余的一个或多个LCU中的每一个LCU的每一划分深度进行如上所述操作的单元。

本发明还提出了实现上述方法或装置的视频编解码器。

本发明还提出了相应的装置权利要求。

本发明还提出了一种计算机程序产品,其包含指令,所述指令当由处理器执行时,执行上述方法。

本领域技术人员应该理解,本文中所称的对块进行“分裂”、“分割”、“划分”都表示将较大的像素块分割(divide)为较小的像素块的操作,这在图像处理中是公知的。

另外,本领域技术人员应该理解,本文中所称的“CU”、“LCU”、“PU”“块”、“子块”、“大块”和“小块”等等都表示具有特定大小的像素块,而并不表示这些表述之间有任何隶属关系。根据上下文能够容易理解其具体含义。例如,在本文中通常将“CU”也称为“块”。

另外,本领域技术人员应该理解,“划分级别”、“划分深度”、“深度”等等表示相同的含义,即对于每一个LCU采用四叉树结构进行的每一次递归划分。

另外,本领域技术人员应该理解,虽然本发明是针对HEVC作出的,但是在HEVC之后的任何采用CU分块技术的视频编码技术都可以应用本发明。

本发明的上述实施例皆可实现为基于HEVC的编码器,特别是其中的帧内预测编码器。该基于HEVC的编码器的内部结构可以如图1所示,并且其中的帧内预测选择框和帧内预测框构成了所述帧内预测编码器。本领域技术人员应该理解,该解码器可以实现为软件、硬件和/或固件。

当用硬件实现时,视频编码器可以用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或晶体管逻辑器件、分立硬件组件或者设计为执行本文所述功能的其任意组合,来实现或执行。通用处理器可以是微处理器,但是可替换地,该处理器也可以是任何常规的处理器、控制器、微控制器或者状态机。处理器也可以实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器的组合、一个或多个微处理器与DSP内核的组合或者任何其它此种结构。另外,至少一个处理器可以包括可操作以执行上述的一个或多个步骤和/或操作的一个或多个模块。

当用ASIC、FPGA等硬件电路来实现视频编码器时,其可以包括被配置为执行各种功能的各种电路块。本领域技术人员可以根据施加在整个系统上的各种约束条件来以各种方式设计和实现这些电路,来实现本发明所公开的各种功能。

尽管前述公开文件论述了示例性方案和/或实施例,但应注意,在不背离由权利要求书定义的描述的方案和/或实施例的范围的情况下,可以在此做出许多变化和修改。而且,尽管以单数形式描述或要求的所述方案和/或实施例的要素,但也可以设想复数的情况,除非明确表示了限于单数。另外,任意方案和/或实施例的全部或部分都可以与任意其它方案和/或实施例的全部或部分结合使用,除非表明了有所不同。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号