详细分析 HEVC/H265编码框架原理(入门)

1、HEVC混和编码架框

网上的HEVC框架图出自Overview of the High Efficiency Video Coding  (HEVC) Standard,如下图所示。但是这张图初看起来非常复杂,而网上也没有解释得比较详细的文章,因此本文的目的就是来详细分析这张图,即分析HEVC编码过程中大致流程,谬误处请各位批评指正。

首先第一个问题:何为混合编码?我理解的是对同一帧数据使用帧内编码和帧间编码多个编码策略,那么上图综合了两种编码策略,自然看起来十分复杂,下面将分别分析帧内编码和帧间编码,用化繁为简的方式进行讨论。

2、帧内编码

这里把帧内编码部分分离出来,视频第一帧的编码过程也只采用帧内编码,并忽略其他辅助因素的干扰,绘制以下框架图。

详细分析 HEVC/H265编码框架原理(入门)_第1张图片黑色线条部分不论是帧内/帧间都一样,蓝色线条是帧内编码走的路径。编码步骤如下:

  1. 图像首先被分割为块状区域;
  2. 数据进行帧内估算(编码器),进行帧内编码;
  3. 进行帧内预测(反编码),注意,此时帧内预测得到数据与分块原图像帧应有些许偏差;
  4. 分块原图像帧减去帧内预测结果,得到帧内残差信号;
  5. 残差信号经过线性变换,变换后的系数再经过缩放、量化;
  6. 将处理后的残差信号系数经过反处理,得到残差信号,注意与原残差存在偏差;
  7. 将残差信号加上帧内预测信号,可得到分块预测图像帧;
  8. 最终通过环路滤波和自适应补偿,去除“分块效应”,得到未经分块的图像帧;
  9. 帧内编码信号和残差信号系数一起进行熵编码后输出。

3、帧间编码

大部分图像帧需要进行帧间编码过程,帧间编码框架图如下图所示。

详细分析 HEVC/H265编码框架原理(入门)_第2张图片

同样,绿色线条为帧间编码专属过程,编码过程如下:

  1. 分块图像帧数据输入运动估算模块(编码器),再结合上一步帧内预测获得的上/下一幅图像帧数据,进行帧间编码;
  2. 对帧间编码数据进行运动补偿(帧间预测,解码器),注意,解码得到的图像帧与原图像块数据存在残差;
  3. 分块原图像帧减去帧间预测结果,得到帧内残差信号;
  4. 残差信号经过线性变换,变换后的系数再经过缩放、量化;
  5. 将处理后的残差信号系数经过反处理,得到残差信号,注意与原残差存在偏差;
  6. 将残差信号加上帧间预测信号,可得到分块预测图像帧;
  7. 最终通过环路滤波和自适应补偿,去除“分块效应”,得到未经分块的图像帧;
  8. 帧间编码信号和残差信号系数一起进行熵编码后输出。

4、混合编码

第2节和第3节分别说明了帧内编码和帧间编码涉及模块,主要过程已经分析完毕,但注意到图2、3和图1之间仍有较大差异,接下来就将全局考量,并说明剩余部分的作用,重绘混合编码框架如下图所示。

详细分析 HEVC/H265编码框架原理(入门)_第3张图片

图中红色内容是前面的图省略的,省略的模块有两部分,包括编码控制模块和滤波控制模块,其中编码控制模块对框架内的编码和量化过程进行控制,因为编码和量化过程可以使用多种不同的策略,滤波控制模块也是必须的。熵编码输入数据很多,必要的图像帧和熵编码一同输出,因为帧间编码时需要参考其他图像帧。

这样,图一的复杂框架就被分解完了,是不是感觉清晰了许多?

你可能感兴趣的:(视频相关)