视频编解码

张开发
2026/4/16 12:08:43 15 分钟阅读

分享文章

视频编解码
H2641.1概述H264是比较老的编码格式优点是兼容性好。下面的介绍以改图为参考1.2编码顺序编码和解码顺序是一样的但跟显示顺序不一样编解码是先编码I帧再编码P帧最后编码B帧。1. 显示顺序播放顺序就是我们肉眼看到的画面顺序完全对应图中「原始图片」的从左到右第 1 帧显示序号 1绿底 蓝色三角形无椭圆、无矩形第 2 帧显示序号 2绿底 蓝三角 橙色椭圆 粉色矩形第 3 帧显示序号 3绿底 蓝三角 粉色矩形椭圆消失解编码顺序为第 1 个编码显示序号 1 →I 帧基准关键帧无依赖先编码第 2 个编码显示序号 3 →P 帧B 帧的后向参考帧必须先编完B 帧才能参考第 3 个编码显示序号 2 →B 帧双向参考 I 帧和 P 帧最后编码专门名词介绍I帧I帧不需要参考其它帧只需要在空间上进行压缩P帧前向预测编码帧predictive-frameP帧表示的是这一帧跟之前的一个I帧或P帧的差别解码时需要用之前缓存的画面叠加上本帧定义的差别生成最终画面。P帧需要参考其前面的一个I帧或者P帧来解码成一张完整的视频画面。B帧双向预测内插编码帧bi-directional interpolated prediction frame以前面的I或P帧和后面的P帧为参考帧。GOP:Group Of Picture,图像组:指两个I帧之间的距离Reference参考周期指两个P帧之间的距离。IDR 图像立即刷新图像:在H264中图像以序列为单位进行组织一个序列是一段图像编码后的数据流。 一个序列的第一个图像叫做IDR 图像立即刷新图像IDR 图像都是 I 帧图像。DTSDecoding Time Stamp,解码时间戳:这个时间戳的意义在于告诉播放器该在什么时候解码这一帧的数据。PTSPresentation Time Stamp显示时间戳这个时间戳用来告诉播放器该在什么时候显示这一帧的数据。模块介绍一、PTS和DTSP帧需要参考前面的I帧或P帧才可以生成一张完整的图片而B帧则需要参考前面I帧或P帧及其后面的一个P帧才可以生成一张完整的图片。这样就带来了一个问题在视频流中先到来的 B 帧无法立即解码需要等待它依赖的后面的 I、P 帧先解码完成这样一来播放时间与解码时间不一致了顺序打乱了。虽然 DTS、PTS 是用于指导播放端的行为但它们是在编码的时候由编码器生成的。

更多文章