引言
我们都知道HEVC里有很多语法结构,为什么要设计那么多的语法结构呢?答案是为了增强操作的灵活性和数据损失的鲁棒性。这些语法架构使得HEVC在压缩效率和网络适应性都有显著提升。
编码时的分层处理架构
GOP
视频序列由时间连续的图像构成,这些图像首先会被分成若干组,每一组图像集合就是一个GOP(Group of Pictures)。
GOP分为封闭式GOP和开放式GOP,封闭式的即每个GOP之间独立编解码,开放式的GOP则后面的GOP中的图像可以使用前面的GOP中图像作参考。
封闭式GOP第一帧为IDR图像,开放式GOP第一个GOP第一帧为IDR图像,后续GOP第一个帧内图像为non-IDR图像。所谓IDR图像就是一种特殊的帧内编码图像,其后面的图像不能参考IDR之前的图像。
Slice
一个GOP中有多帧图像,每一帧图像会被划分为一个或多个Slice。每个Slice之间独立编解码,即不需要依靠其他Slice的信息,因此每个Slice都需要进行熵编码的初始化。
划分为Slice的主要目的是为了在数据丢失后能再次保证解码同步,且有利于并行运算。
Slice根据类型可以分为I Slice,P Slice,B Slice。
- I Slic