1.视频编码
帧编码技术客户去除时间上的冗余信息,包含以下几个部分:
- 运用补偿:通过先前的局部图像来预测,补偿当前的局部图像,减少帧序列冗余信息的有效方法
- 运动表示:不同区域的图像需要不同的运动矢量来描述运动信息。
- 运动估计:从视频序列中抽取运动信息的一整套技术。
使用帧内编码技术可以出去空间上的冗余信息。
2.编码概念:
- I帧:
- 帧内编码,I帧通常是每个GOP(一种视频压缩技术)的第一个帧,
- I帧压缩可以得到6:1的压缩比,而不会产生任何可察觉的模糊现象。
- I帧压缩可以去掉视频的空间冗余信息。
- P帧:
- 前项预测编码帧(predictive-frame)通过将图像序列中前面已编码帧的时间冗余信息充分去除来压缩传输数据量的编码图像,也称为预测帧。
- P帧需要参考前面一个I帧或P帧来解码成为一张完整的视频画面。
- B帧:
- 双向预测内插编码帧(bi-directional interpolated prediction frame)既考虑源图像序列前面已编码帧,又顾及源图像序列后面的已编码帧之间的时间冗余信息,来压缩传输数据量的编码图像,也称为双向预测帧。
- 需要参考其前一个I帧或P帧,及其后面的一个P帧来生成一张完整的视频画面。
P帧和B帧去掉的是视频在时间维度上的冗余信息。
- IDR帧:
- H264中存在,因为H264中采用了多帧预测,所以I帧之后的P帧有可能会参考I帧之前的帧,这使得随机访问时不能够找到I帧作为参考条件,因为即使找到I帧,I帧之后的帧还是有可能解析不出来。
- IDR是一种特殊的I帧,这一帧后的所有参考帧知会参考这个IDR帧,而不会再参考前面的帧。
- 在解码器中,一旦收到一个IDR帧。就会立即清理参考帧缓冲区,并将IDR帧作为被参考帧。
- PTS与DTS:
- DTS(Decoding Time Stamp),主要用于在视频的解码。
- PTS(Presentation Time Stamp)主要用于在解码阶段进行视频的同步和输出。
- 在没有B帧的情况下DTS和PTS的输出顺序是一样的,因为B帧打乱了解码和显示的顺序,有B帧,PTS和DTS就会不同。
- GOP
- 两个I帧之间形成的一组图片,就是GOP(Group Of Picture)的概念。代表两个I帧之间的帧数目。
- 通常在编码器设置参数时,要是指gop_size的值。一个GOP中容量最大的就是I帧,所以gop_size设置越大,整个画面质量就会越好。