视频I帧、P帧、B帧详解

目录

一、背景    

二、概念

2.1、I帧(Intra-coded Frame,帧内编码帧)

2.1.1、定义 

2.1.2、编码原理 

2.1.3、特点 

2.1.4、使用场合 

2.2、P帧(Predictive Frame,预测帧)

2.2.1、定义 

2.2.2、编码原理 

2.2.3、特点 

2.2.4、使用场合 

2.3、B帧(Bidirectional Frame,双向预测帧)

2.3.1、定义

2.3.2、编码原理

2.3.3、特点 

2.3.4、使用场合 

三、压缩和GOP

3.1、帧之间的依赖关系

3.2、压缩法与GOP

3.3、编码流程对比 

3.4、解码复杂度

四、 I帧,B帧和P帧的判断

4.1、 I帧,B帧和P帧的判断方法

4.1.1、H.264帧判断

4.1.2、H.265帧判断

4.2、使用C++判断H.264/H.265的帧类型

4.2.1、步骤解析

 4.2.2、解析代码示例

4.2.3、代码说明

五、总结

 参考:


一、背景    

        I帧(Intra frame)、P帧(Predictive frame)和B帧(Bidirectional frame)是视频编码中的三种不同类型的帧,它们有不同的特点和作用,分别在不同的场合下使用。

       视频压缩中,每帧代表一幅静止的图像。而在实际压缩时,会采取各种算法减少数据的容量,其中IPB就是最常见的。 

二、概念

      简单地说,I帧是关键帧,属于帧内压缩。就是和AVI的压缩是一样的。P是向前搜索的意思。B是双向搜索。他们都是基于I帧来压缩数据。

2.1、I帧(Intra-coded Frame,帧内编码帧)

2.1.1、定义 

        独立的关键帧,不依赖其他帧即可解码。 I帧表示关键帧,你可以理解为这一帧画面的完整保留;解码时只需要本帧数据就可以完成(因为包含完整画面)。

2.1.2、编码原理 

  •  仅对当前帧内的空间冗余进行压缩
  •  采用离散余弦变换(DCT) 将像素块转换为频域系数
  •  通过量化和熵编码(如CAVLC/CABAC)进一步压缩

2.1.3、特点 

  •  数据量最大(约占单帧体积的5-10倍)
  •  解码不依赖前后帧
  •  是视频的随机访问点(Seek操作的基础)

2.1.4、使用场合 

  • 视频的起始处:每个视频序列通常以I帧开头。
  • 场景切换:在场景变化明显的地方插入I帧,有助于提高视频质量。
  • 随机访问点:需要频繁的随机访问时,增加I帧的频率。

2.2、P帧(Predictive Frame,预测帧)

2.2.1、定义 

        基于前向参考帧(I帧或P帧)预测的帧。P帧表示的是这一帧跟之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。(也就是差别帧,P帧没有完整画面数据,只有与前一帧的画面差别的数据)。

2.2.2、编码原理 

  • 通过运动估计(Motion Estimation) 寻找与参考帧的相似块
  • 计算运动矢量(MV) 描述块位移
  • 对预测残差(当前块 - 参考块)进行DCT+熵编码

2.2.3、特点 

  •  数据量约为I帧的1/3~1/2
  •  依赖前序参考帧(形成单向依赖链)
  •  包含运动补偿信息

2.2.4、使用场合 

  • 连续场景:适用于场景变化不大的连续帧。
  • 减少带宽:通过减少数据量来节省带宽和存储空间。

    2.3、B帧(Bidirectional Frame,双向预测帧)

    2.3.1、定义

            同时参考前后帧的帧。B帧是双向差别帧,也就是B帧记录的是本帧与前后帧的差别(具体比较复杂,有4种情况),换言之,要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。B帧压缩率高,但是解码时CPU会比较累。

    2.3.2、编码原理

    • 双向运动预测:综合前向+后向参考帧信息
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包

    打赏作者

    大王算法

    你的鼓励将是我创作的最大动力

    ¥1 ¥2 ¥4 ¥6 ¥10 ¥20
    扫码支付:¥1
    获取中
    扫码支付

    您的余额不足,请更换扫码支付或充值

    打赏作者

    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值