音视频 day26 H264 的编码过程与原理

2,155 阅读3分钟

1. GOP出现的背景是什么?GOP 的全称是什么?

  • 有统计结果表明:在连续的几帧图像中,一般只有 10% 以内的像素有差别,亮度的差值变化不超过 2%,而色度的差值变化只在 1%以内。
  • 可以将一串连续的相似的帧归到一个图像群组(Group Of Pictures,GOP)。

2. GOP 中的 I 帧是什么?一个 GOP 可以有几个 I 帧?怎么编码?怎么解码?

  • I 帧(I Picture、I Frame、 Intra Coded Picture),译为:帧内编码图像,也叫关键帧(Keyframe)
  • 它是视频的第一帧,也是 GOP 的第一帧,一个 GOP 只有一个 I 帧?
  • 编码:对整帧图片数据进行编码
  • 解码:仅用当前 I 帧的编码数据就可以解码出完整的图像
  • 是一种自带全部信息的独立帧,无需参考其他图像便可以独立进行解码,可以简单理解为一张静态图像。

3. GOP 中的 P 帧是什么?怎么编码?怎么解码?

  • P 帧(P Picture、P Frame、Predictive Coded Picture),翻译为:预测编码图像
  • 编码: ①并不会对整帧图像数据进行编码 ②以前面I 帧或 P 帧作为参考帧,只编码当前 P 帧与参考帧的差异数据
  • 解码:需要先解码出前面的参考帧,再结合差异数据解码出当前 P 帧完整的图像

4. GOP 中的 B 帧是什么?怎么编码?怎么解码?

  • B 帧(B Picture、B Frame、Bipredictive Coded Picture),翻译为:前后预测编码图像
  • 编码: ①并不会对整帧图像数据进行编码 ②同时以前面、后面I 帧或 P 帧作为参考帧,只编码当前 B 帧与前后参考帧的差异数据 ③因为可参考的帧变多了,所以只需要存储更好的差异数据
  • 解码:需要先解码出前面、后面的参考帧,再结合差异数据解码出当前 B 帧完整的图像

5. GOP 中,通常情况下,I 帧、P 帧、B 帧数据大小是怎么排列的?再结合下图,理解一下为什么编码顺序不等于显示顺序

  • I 帧 > P 帧 > B 帧

image.png

6. GOP 的长度是什么意思?GOP 长度是越长越好吗(举出两方面即可)?

  • GOP的长度表示 GOP 的帧数。
  • GOP 过长的缺点:加大GOP长度有利于减小视频文件大小,但也不宜设置过大,太大则会导致GOP后部帧的画面失真,影响视频质量
  • GOP 过长的缺点:由于P、B帧的复杂度大于I帧,GOP值过大,过多的P、B帧会影响编码效率,使编码效率降低
  • GOP 过长的缺点:GOP长度也是影响视频seek响应速度的关键因素,seek时播放器需要定位到离指定位置最近的前一个I帧,如果GOP太大意味着距离指定位置可能越远(需要解码的参考帧就越多)、seek响应的时间(缓冲时间)也越长

7.哪些帧是帧内编码?哪些帧是帧间编码?

  • I 帧采用的是帧内(Intra Frame)编码,处理的是空间冗余。
  • P 帧、B 帧采用的是(Inter Frame)帧间编码,处理的是时间冗余。