使用 MediaInfo 软件 打开一个 mp4 文件 , 查看其属性 ;
该视频的属性如下 :
I 帧 , 完整名称是 " Intra Coded Frames " , " 内部编码帧 " , 指的是 不需要 参考 其它 视频帧 , 就可以 独立进行解码 , 生成 完整图像 ;
" 关键帧压缩法 " 是 基于 " 离散余弦变换 ( DCT ) " 实现的 , 与 JPEG 压缩算法类似 ;
通过 进行帧内压缩 , I 帧 可以达到较高的压缩比 , 而不会产生明显的压缩痕迹或模糊现象 ; 如 : 压缩效果达到 6:1 ;
" 关键帧压缩法 " 可以有效地去除 视频的 " 空间冗余信息 " ;
P 帧 全称 " 前向预测帧 ( Predicted Frames ) " , 是 视频编码 中的一种 帧类型 ,
P 帧 中的 图像数据并不是完整的 , 而是相对于前面的参考帧的差异数据 ;
在解码时 , 需要将 参考帧的数据 I 帧 与 P 帧 的差异数据进行合并 , 才能还原出完整的图像 ;
P 帧 解码 , 需要 依赖于 I 帧 才能完成解码 ;
P 帧 只记录了 与 I 帧 不同的内容 , 也就是 只有 与 I 帧的 差异部分 , 相同的部分没有 ;
解码 P 帧 , 必须 先解码 I 帧 ;
I 帧 解码完成后 , 将 I 帧 与 P 帧 合并 , 才能得到完整的 P 帧 ;
P 帧 的 压缩效率较高 , 因为它 只 包含了 与参考帧 I 帧 的差异数据 , 而不是完整的 画面帧数据 ;
由于 P 帧 依赖于前面的 I 帧 或 P 帧 , 因此在视频流中 , P帧必须按照正确的顺序进行传输和解码 , 否则会导致图像出现错误 ;
下图中 , P1 帧 解码 依赖于 I 帧 , P2 帧解码 依赖于 P1 帧 , 但是 如果 P2 帧 与 P1 帧 出现颠倒 , 解码出来的视频信息 , 就会出现部分区域乱码或马赛克 ;