HEVC编码结构:Slice和Tile
2016-10-07 11:32
2839 查看
1、Slice片段层
一幅图像可以被划分为一个或多个片或称为条带(Slice),每个片的数据编码都是独立的。如下图,一幅图像被划分为N个Slice,Slice成条带形。在编码时,每一个Slice中的CTU按光栅扫描顺序进行编码。
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之间可以相互参考。
2、Tile单元
在HEVC中一幅图像可以划分为若干个Tile(这是相比AVC的优化改进),即从从水平和垂直方向将图像分割为若干个矩形区域,把这些矩形区域称为Tile。下图是一种划分的示例,划分的Tile并不要求均匀分布,整幅图像被划分为9个Tile,每个Tile都是矩形。通常每个Tile包含的CTU数据近似相等。
每个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。
(2)一个Tile中所有CTU属于同一个Slice/SS。
如下图,一幅图像在垂直方向被划分为三个Tile,这三个Tile中各自的所有CTU都属于同一个Slice。
相关文章推荐
- HEVC的并行解码语法和条带结构Slice和Tile
- HEVC编码结构:序列参数集SPS、图像参数集PPS、视频参数集VPS
- HEVC编码结构
- HEVC编码结构分析
- HEVC—参数GOP,SLICE,TILE解疑
- H.265/HEVC学习笔记之一:编码结构
- HEVC学习之琐事(一):HEVC编码结构分析
- HEVC学习之琐事(一):HEVC编码结构分析
- 数据结构之哈弗曼编码的(Huffman Coding)加密解密压缩
- 深入浅出理解视频编码H264结构
- FFmpeg源代码结构图 - 编码
- FFmpeg源代码结构图 - 编码
- 数据结构(六)霍夫曼树与编码
- 【HEVC学习与研究】41、HEVC帧内编码的原理和实现(中)
- 【HEVC学习与研究】12.HEVC的高层语法结构
- 回顾各种编码的创新和异同-MEPG2, MPEG4, H.264/AVC以及H.265/HEVC比较(转)
- paip.提升性能----java 无锁结构(CAS, Atomic, Threadlocal, volatile, 函数式编码, 不变对象)
- H264参数结构二:网络提取层NAL (Net Abstraction Layer) & 视频编码层VCL (Video Coding Layer) .
- 从零开始实现一个电子商务网站----编码实现之N层类目结构(七)