HEVC编码结构:Slice和Tile

1、Slice片段层

一幅图像可以被划分为一个或多个片或称为条带(Slice),每个片的数据编码都是独立的。

如下图,一幅图像被划分为N个Slice,Slice成条带形。在编码时,每一个Slice中的CTU按光栅扫描顺序进行编码。

HEVC编码结构:Slice和Tile_第1张图片

Slice头信息无法通过前一个Slice的头信息推断得到,这就要求Slice不能跨过它的边界来进行帧内或帧间预测,但环路滤波器可以跨越Slice进行滤波。使用Slice的主要目的是当数据丢失后能再次保证解码同步。


根据编码类型,Slice可以分为:

(1)I Slice:该Slice中所有CU的编码过程都使用帧内预测。

(2)P Slice:在I Slice的基础上,该Slice中的CU还可以使用帧间预测,每个预测块(PB)使用至多一个运动补偿预测信息。P Slice只使用图像参考列表list0。

(3)B Slice:在P Slice的基础上,B Slice中的CU也可以使用帧间预测,但是每个PB可以使用至多两个运动补偿预测信息。B Slice可以使用图像参考列表list 0和list 1。


一个独立的Slice可以进一步划分为若干个条带片段Slice segment(SS),包括一个独立SS和若干个依赖SS。

如图Slice以独立SS作为开始,一个SS包含整数个CTU(至少一个)。预测过程不可以跨越Slice边界,但是可以跨越依赖SS边界,一个Slice中的SS之间可以相互参考。

HEVC编码结构:Slice和Tile_第2张图片



2、Tile单元

在HEVC中一幅图像可以划分为若干个Tile(这是相比AVC的优化改进),即从从水平和垂直方向将图像分割为若干个矩形区域,把这些矩形区域称为Tile。

下图是一种划分的示例,划分的Tile并不要求均匀分布,整幅图像被划分为9个Tile,每个Tile都是矩形。通常每个Tile包含的CTU数据近似相等。

HEVC编码结构:Slice和Tile_第3张图片

每个Tile包含整数个CTU,其可以独立编码,在编码时,每一个Tile包含的CTU按照扫描顺序进行编码。划分Tile的主要目的是增强并行处理能力而不引入新的错误扩散。



3、Slice与Tile的关系

一幅图像可以被划分为若干个Slice,也可以划分为若干个Tile,两者划分的目的都是为了进行独立编码。某些Slice中可以包含多个Tile,同样某些Tile中也可以包含多个Slice。Tile包含的CTU个数和Slice中的CTU个数互不影响。


不同点:

划分方式:Tile为矩形,Slice为条带形。

组成结构:Slice由一系列的SS组成,一个SS由一系列的CTU组成。而Tile直接由一系列CTU组成。


Slice/SS和Tile要遵循的一些基本原则,每个Slice/SS和Tile之间至少满足以下两个条件之一:

(1)一个Slice/SS中的所有CTU属于同一个Tile。

例如下图中一幅图像的每一个Slice的所有CTU都属于同一个Tile。

HEVC编码结构:Slice和Tile_第4张图片

(2)一个Tile中所有CTU属于同一个Slice/SS。

如下图,一幅图像在垂直方向被划分为三个Tile,这三个Tile中各自的所有CTU都属于同一个Slice。

HEVC编码结构:Slice和Tile_第5张图片


你可能感兴趣的:(HEVC,视频编码)