HEVC中名词的解释

来源:互联网 发布:ubuntu wine qq乱码 编辑:程序博客网 时间:2024/05/16 17:36

HEVC中名词的解释

名词解释

为了弄清HEVC的编码器的细节,必须对以下的名词有清楚的理解。

1) LCU

一个编码图像通常划分成若干大小可以自行设定的基本单元,称之为LCU(Largist Coding Unit)。LCU的大小可以设置的范围是16×16—64×64。

2) Slice

Slice是一帧中按光栅扫描顺序排列的CTU序列,一帧可以由多个slice组成,每个Slice可以独立解码,因为slice内像素的预测不能跨越slice的边界。每个slice可按照编码类型的不同分成I/P/B slice。该结构的主要目的是实现在传输中遭遇数据丢失后的重新同步。每个slice可携带的最大比特数通常受限,因此根据视频场景的运动程度,slice所包含的CTU数量可能有很大不同。


3) Dependent Slice

Dependent slice,其解码或编码的起始熵编码CABAC上下文状态是以上一个slice为基础,因此它不能完成数据丢失后的重新同步,该技术可以理解为对原先NALU数据的进一步拆分,可以适合更加灵活的打包方式。

4) Tile

Tile是帧内可以独立进行解码的矩形区域,包含多个按矩形排列的CTU的(数目不要求一定相同),定义这一结构的初衷是增强编解码的并行处理性能,同一个slice内的多个tiles可以共享相同的头信息,一个tile也可以包含多个slice,不管是slice包含tile,还是tile包含slice都必须是整数包含的关系,tile的示意图如下:


5)WPP

WPP的并行技术是以一行LCU块为单位进行的,但是不完全截断LCU行之间的关系,如下图,Thread1的第二个块的CABAC状态保存下来,用于Thread2的起始CABAC状态,依次类推进行并行编码或解码,因此行与行之间存在很大的依赖关系。通常该方法的压缩性高于tiles。



6) CU

一个LCU通常划分成若干个CU (Coding Unit),一个LCU通过cu_split flag标志来表示是否需要向下分割。如果cu_split flag=1,LCU进行四叉树分割,得到四个大小一样的CU(长宽是分割前的一半)。每向下分割一次,记录分割深度的Depth加1。一个CU由亮度像素块和附加的一个Cb和一个Cr彩色像素块组成(色度像素的长宽是亮度的一半)。



7) PU

PU(Prediction Unit),每个CU的预测模式可能为帧内或者帧间。

若预测模式为帧内,除了最小尺寸模式外,PU的尺寸等于CU。若是最小尺寸模式,则用标志位表示是否将CU分割成四个PU块。这样最小可以支持到4*4大小的帧内预测块(此时色度分量PU也为4*4)。

若预测模式为帧间预测,亮度和色度CU可能分割成1/2/4个PU。只有CU为最小尺寸模式时才能分割为4个PU块(且最小尺寸不是8*8)。CU分割为四个PU时,每个PU占据CU的1/4;CU分为两个PU时,可选择6种分割模式的一种,其中包含不平均分割模式AMP(只针对16*16及以上的亮度块)。每个帧间预测PU包含一个或者两个运动矢量和参考帧索引。

8) TU

在CU的基础上可以进行TU块的递归划分,TU允许的尺寸范围和32*32-4*4,但是最大不能超过当前TU块所在的CU块的尺寸,所以通常TU块的范围为CU-SIZE-4的数值,当帧内PU是N*N的时候,TU必须向下一层划分;当帧间模式是非2N*2N,且TU深度为0的时候,必须向下一层划分。

9) Z扫描

HEVC中也有光栅扫描顺序,但它对CU采用的递归划分的方式,如果仍用光栅扫描顺序,对CU的寻址会很不方便。因此,HEVC定义了Z扫描顺序。


0 0
原创粉丝点击