English  

首页 > 行业资讯

HEVC/H.265编码变换单元TU

2015-01-09 17:27:33  

    CABAC中,变换系数的位置以“关键度表”的形式编码。系数的level信息存大于1的系数信息中,并不是所有非零系数信息都包含系数的符号。

1、关键度表:

    在H.264中,会传递一个标志位SCF来表明每一个非零系数的位置(采用之字形扫描),随后会传递一个last_significant_coeff_flag来指示当前是否是最后一个SCF。对4×48×8TU中不同位置以及bin是否表示SCFLSCF,采用不同的上下文。SCFLSCF是交错分布的,因此在上下文选择过程中,H.264的算法存在大量的二进制依赖关系。

    为了减小这种依赖关系,HEVC采用了减少参考邻域的做法,在HM模型不同的阶段,采用了10865个等不同的参考邻域。在HM2.0及其以前的版本中,由于关键度表采用之字形扫描,所以取消对角方向的块作为参考邻域会造成比较明显的影响。

    在HM4.0模型中,采用了对角线扫描的方式处理SCF。此方法对编码效率有一定的影响,但是却解除了SCF处理中的依赖关系。在HM7.0中,对16×1632×32TU进行了分割处理,将TU分割成了4×4的子块,并引入了coded_sub_block_flag这个参数。在HM8.08×8TU也被分割成了4×4子块,因此之后所有的TU都是基于4×4子块组成的。

    在对8×816×1632×32TU的处理中,每个块都被划分为DC、低频区和高频区三部分,每部分都采用不同的上下文。同时为了节约内存,16×1632×32SCF共享内存空间。

    对于处理帧内预测的CU时,引入了一种“依赖模式系数扫描”(MDCS),根据帧内预测模式选择水平、垂直和对角线扫描。

“最末位”编码:

    由于H.264SCFLSCF相互交错,它们之间存在较强的相互依赖性。主要解决方法有:将数个SCF组合,并为这NSCF传递一个LSCF;或者避免将SCFLSCF交替出现;以及将一个LSCF分离成x,y两个分量传输。“最末位”由一个前缀和后缀两部分组成。前缀对xy分别采用cMax的截断一元编码码,以TU的宽度和高度为上下文;后缀采用定长旁路编码。

编码子块标志位(CSBF)

    每一个TU被分割成4×4大小的子块。CSBF用于标识某个子块是否包含非零系数。若该参数为1,则该子块中含有SCF;反之,若子块中仅仅包含0系数,则不存在SCF的值。该方法在HM7.0中扩展,用以降低16×1632×32TU的上下文选择中的依赖性,并且在HM8.0中应用到了8×8TU中。同时,分别采用了四种模式,将不同位置的邻域子块中的元素同上下文模型的选择结合,以解除对其的依赖性。

2、系数的等级和符号

   在H.264中,系数等级由两部分组成。前14位由截断一元二值化生成,采用上下文编码,剩余位由0阶指数哥伦布编码产生,采用旁路编码。在系数等级编码完成后,采用旁路编码处理系数的符号。

1)等级编码:

    在HEVC编码/H.265编码,系数等级仅仅有前两位(coeff_abs_level_greater1_flagcoeff_abs_level_greater2_flag)采用上下文编码,剩余部分(coeff_abs_level_ramaining)采用旁路编码。这样可以极大程度地降低了整个CABAC中上下文编码的码子数量。coeff_abs_level_ramaining的前缀的二值化方法采用一元码,后缀则采用定长码,码长取决于前缀的值。同时,定长码子的数目还依赖于cRiceParam这个参数,该参数根据之前的非零系数的等级变化。coeff_abs_level_ramaining的最大取值为32.

   对于每一个4×4子块而言,每一个子块最多包含8coeff_abs_level_greater1_flag1coeff_abs_level_greater2_flag。减少这两个flag的数量将有效减少上下文的的数量。

对系数等级进行上下文选择,主要经过以下步骤:

1)对子块中的16个系数进行扫描;——>2)根据前一个子块中大于1的系数的个数,为当前子块选定上下文集合;——>3)根据当前块内的1系数,在集合中选择上下文模型。

HM3.0中,每个上下文集合包含5个上下文,共6种集合备选;低频/非低频部分,亮度/色度分量,以及coeff_abs_level_greater1_flagcoeff_abs_level_greater2_flag均需要不同的上下文,因此共需要120种不同的上下文模型。而发展到了HM6.0,所需的上下文模型减少到了仅需要30个。

2)符号编码:

每一个4×4子块内的16个系数的符号被聚合在一起处理,这些系数的符号位码元位于coeff−abs−level−remaining的码元之前,并且在该元素解码完成之后可以立刻获取。

除此之外,还采用了数据隐藏的方法提高编码的效率。若一个子块内非0系数的个数超过了某一阈值,则符号位可由非零系数个数的奇偶性推测。

 

 

下一篇:HEVC (H.265)编解码标准的播放市场                                                            上一篇:HEVC快速CU深度遍历选择和早期CU裁剪新