VPU Spec

I 帧是什么缩写?

I = Intra-coded Frame(帧内预测帧)

意思:

  • 只使用当前帧内部的信息进行编码
  • 不参考任何其他帧
  • 相当于一张完整的图片
  • 体积最大,但可以独立解码

P 帧是什么缩写?

P = Predictive frame(预测帧)

意思:

  • 参考前面的帧(I 帧或 P 帧)
  • 只记录与参考帧的差异
  • 体积比 I 帧小很多
  • 解码时必须依赖前面的帧

B 帧是什么缩写?

B = Bi-directional predictive frame(双向预测帧)

意思:

  • 同时参考前面和后面的帧
  • 压缩率最高(体积最小)
  • 解码最复杂
  • 播放顺序 ≠ 编码顺序

三者一句话总结

  • I 帧:Intra,帧内预测,完整画面
  • P 帧:Predictive,前向预测,参考过去
  • B 帧:Bi-directional,双向预测,参考过去 + 未来

  • 解码过程先从I帧开始,依次解码P帧和B帧。I帧是独立帧,先被解码。然后,解码器利用I帧的信息来解码P帧,最后结合I帧和P帧的信息来解码B帧。这种顺序确保了视频帧能够按照正确的时间顺序显示。

二、用一个具体例子说明(最清楚)

假设播放顺序是:

1(I) → 2(B) → 3(B) → 4( P) → 5(B) → 6(B) → 7( P)


1)编码顺序(编码器实际处理顺序)

因为 B 帧要参考未来帧,所以顺序变成:

1(I) → 4( P) → 2(B) → 3(B) → 7( P) → 5(B) → 6(B)

编码器必须先编码未来的 P 帧,再回来编码 B 帧。


2)解码顺序(解码器接收并解码的顺序)

解码器必须按编码器输出的顺序来解码:

1(I) → 4( P) → 2(B) → 3(B) → 7( P) → 5(B) → 6(B)

因为解码器必须先拿到 B 帧依赖的所有参考帧。


3)播放顺序(最终显示给用户的顺序)

播放器会把解码后的帧重新排序成时间顺序:

1(I) → 2(B) → 3(B) → 4( P) → 5(B) → 6(B) → 7( P)


四、一句话总结(最重要)

  • 编码顺序 = 解码顺序(都是 I → P → B)
  • 播放顺序 = 时间顺序(I → B → B → P → B → B → P)
  • B 帧导致了这种差异

reference

相关推荐
GeW5 小时前
国产化替代进入深水区之后Linux 与数据库为什么必须走向重建
linux
女神下凡8 小时前
芯参谋(85):Linux_PPI_NAND_驱动开发指南
linux·运维·arm开发·驱动开发·单片机·嵌入式硬件·设计规范
12.=0.9 小时前
【持续更新】shell脚本 + Linux命令
linux·运维·服务器
Escalating_xu9 小时前
【Linux 网络编程】五种 I/O 模型与非阻塞 I/O:从“等数据”到正确处理 EAGAIN
java·linux·网络
无言听风雨丶10 小时前
Linux 容器本质探秘:Cgroup 与 Namespace 深度解析与实战
linux·运维·服务器·kubernetes
万联WANFLOW10 小时前
CVE-2026-98432 等漏洞自查:AI 查出的 Linux、Windows 漏洞,运维怎么确认受不受影响
linux·运维·windows·网络安全
OPEN-F10 小时前
Ubuntu 自动登录后 GNOME 远程桌面连不上?一次登录钥匙环锁定的排查与永久修复
linux·运维·ubuntu
硅基手札10 小时前
【Linux 内核专栏 19】20 · 嵌入式子系统 — GPIO·pinctrl·clock·regulator
linux·运维·单片机·linux内核·嵌入式开发·调试定位
默|笙10 小时前
【Linux网络】传输层协议TCP(3)滑动窗口、流量控制
linux·网络·tcp/ip
Linux界最忧郁之人12 小时前
华为云ECS&IMS&AS实战|弹性云服务器、私有镜像、弹性伸缩完整实验
linux·运维·服务器·centos·华为云·openstack