当前位置: 首页 > news >正文

视频编解码与 GOP 结构详解

视频编解码与 GOP 结构详解

1. 帧类型

在 H.264/AVC 编码中,视频由不同类型的帧组成:

  • I 帧 (Intra-coded frame)

    • 关键帧,独立编码,不依赖其他帧。
    • 解码器可以从 I 帧开始解码。
    • 压缩率最低,但解码起点。
  • P 帧 (Predicted frame)

    • 前向预测帧,参考之前的 I/P 帧。
    • 压缩率比 I 帧高。
    • 解码时必须依赖前面的参考帧。
  • B 帧 (Bi-directional predicted frame)

    • 双向预测帧,同时参考前后的 I/P 帧。
    • 压缩率最高,但解码延迟大。
    • 必须等到前后参考帧解码完成后才能解码。

2. GOP (Group of Pictures)

  • 定义:一组图像的结构,通常从一个 I 帧开始,到下一个 I 帧结束。
  • N (Number):GOP 长度,即两个 I 帧之间的总帧数。
    • 例如 N=30 → 每 30 帧一个 I 帧。
  • M (Multiple):参考帧间隔,决定 P 帧之间插入多少 B 帧。
    • M=1 → 没有 B 帧,只有 I/P。
    • M=3 → 每两个 P 帧之间插入 2 个 B 帧。

示例

  • GOP=12, M=3 → 帧序列:
    I B B P B B P B B P B B I

3. 显示顺序 vs 解码顺序

视频播放时的顺序和解码器内部的解码顺序不同,尤其是有 B 帧时。

显示顺序(播放时看到的)

I → B → B → P → B → B → P → B → B → P → B → B → I

解码顺序(解码器内部处理)

I → P → B → B → P → B → B → P → B → B → I → B → B

盒示意图

显示顺序: [ I ][ B ][ B ][ P ][ B ][ B ][ P ][ B ][ B ][ P ][ B ][ B ][ I ] 解码顺序: [ I ][ P ][ B ][ B ][ P ][ B ][ B ][ P ][ B ][ B ][ I ][ B ][ B ]

👉 解码器必须先解码 I 和 P 帧,才能“回头”解码前面的 B 帧,这就是 B 帧带来延迟的原因。


4. 编码参数

  • 码率 (bps):决定画质和压缩程度。
    • 高码率 → 画质好,文件大。
    • 低码率 → 画质差,文件小。
  • GOP 长度 (N):关键帧间隔,影响随机访问和容错能力。
  • M 值:是否插入 B 帧,影响压缩率和延迟。
  • Profile/Level:决定编码器能支持的分辨率和帧率上限。
    • High@L4.0 → 支持 1080p@30fps。
    • High@L4.2 → 支持 1080p@60fps。
  • 参考帧数:影响压缩效率和解码复杂度。
  • 熵编码方式 (CABAC/CAVLC):影响压缩率和解码速度。

5. 常见场景推荐参数

  • 直播/实时编码

    • GOP = 帧率(每秒一个关键帧)。
    • M = 1(无 B 帧,低延迟)。
    • 码率:1080p60 → 8~12 Mbps。
  • 点播/录像

    • GOP 可设为 2 秒或更长。
    • M > 1(有 B 帧,压缩率高)。
    • 码率可适当降低以节省空间。
  • 监控场景

    • GOP 较短(提高容错)。
    • M = 1(低延迟)。
    • 码率中等,保证清晰度。

6. 总结

  • I/P/B是帧类型的缩写,直接对应编码方式。
  • GOP/M/N是结构参数,用来描述关键帧间隔和 B/P 帧分布。
  • 编码效果主要由 GOP、M、码率决定,同时受 Profile/Level、参考帧数、熵编码方式影响。
  • 在实时场景下,通常选择短 GOP、无 B 帧、较高码率;在存储场景下,可以选择长 GOP、有 B 帧、较低码率以提高压缩率。
http://www.jsqmd.com/news/314048/

相关文章:

  • Python全栈项目--基于机器学习的垃圾邮件过滤系统
  • 高新技术产品认证核心指南
  • AI大模型机器学习:Python汽车推荐系统 数据分析 可视化 协同过滤推荐算法 汽车租赁 Django框架 大数据 新能源汽车 毕业设计
  • 【爆肝】传统RAG已凉?图数据库让大模型准确率飙升95%,小白也能秒变AI大神!
  • 程序员必看!AI大模型算力暗战:腾讯阿里字节跳动背后的8家技术支撑企业,让你的AI开发不再缺算力!
  • 炸裂!国产Kimi K2.5多模态大模型开源,代码生成、界面设计一键搞定,小白程序员也能秒变大神!
  • 基于Python的智能房价分析与预测系统(源码+lw+部署文档+讲解等)
  • 基于Python爬虫的网络小说热度分析(源码+lw+部署文档+讲解等)
  • 一阶IIR低通滤波器:从原理到嵌入式实战
  • 布谷鸟科技携AI边缘计算产品线亮相韩国ROSCon KOREA 2026
  • (新卷,100分)- 5键键盘(Java JS Python)
  • (新卷,100分)- 单词接龙(Java JS Python)
  • 吐血推荐研究生必用的10款AI论文工具
  • 宇树机器狗GO2在gazebo驱动仿真
  • 亲测好用10个AI论文网站,助你轻松搞定本科毕业论文!
  • gazebo仿真环境启动velodyne雷达
  • 信号处理仿真:信号处理基础_(3).模拟信号与数字信号转换
  • Thinkphp和Laravel学生宿舍管理系统功能多 echart统计可视化120wq-_
  • 今日,DeepSeek再次“拆掉重做”,开源架构炸场:OCR 2只是起点,这次要重构AI的“眼睛”和“大脑”?
  • 影悦电影推荐系统
  • 基于STM32单片机设计的智能坐垫_431
  • 68344
  • AI大模型数据治理 = 治理过程*AI增强:感知智能化、决策智能化、执行智能化、优化智能化
  • 谷歌和苹果应用商店发现数十款AI去衣应用
  • 冬季风暴考验因AI数据中心而紧张的电网系统
  • 网站建设完整指南:从零开始到跨平台部署
  • 单例模式 懒汉式(双重检查锁)
  • 用Ticker API写一个行情面板:一次完整的实现过程
  • 2026年1月28日
  • 社会网络仿真软件:NetLogo_(8).NetLogo在社会网络建模中的应用