1. H264 基础概念:视频编码原理、标准发展史与 H265 对比

各位同学好,我是你们这门课的老朋友。今天咱们正式开篇,聊聊 H264 的基础概念。

说实话,我入行那会儿,H264 刚出来没多久。那时候大家还在用 MPEG-2 做 DVD,H264 简直就是黑科技。现在呢?它成了视频领域的“普通话”。你手机拍的视频、看的直播、刷的短视频,底层几乎都是它。

这一章,我带你从三个角度把它吃透:视频编码到底在干嘛、H264 是怎么一步步成为霸主的、以及它跟老大哥 H265 比,到底差在哪。

1.1 视频编码原理:我们为什么要压缩?

先问个问题:一段 1080p、30fps、时长 90 分钟的电影,原始数据有多大?

算一下:1920 × 1080 × 3(RGB)× 30 × 90 × 60 ≈ 806 GB。一张蓝光碟才 50GB,这还没算音频。所以,不压缩根本没法存、没法传。

视频编码的核心,就是干掉冗余。冗余分四种:

  • 空间冗余:同一帧里,天空一大片蓝色,没必要每个像素都存。
  • 时间冗余:前后两帧画面差不多,只存变化的部分。
  • 视觉冗余:人眼对高频细节不敏感,丢掉一些你根本看不出来。
  • 统计冗余:用更短的码字表示出现频率高的数据(熵编码)。

核心思路:编码器通过“预测 + 变换 + 量化 + 熵编码”四步走,把原始视频从几百 GB 压到几 GB。解码器反向操作,还原画面。

我个人习惯把编码器比作“厨师”:原材料(原始帧)进来,先切块(分宏块),再预测味道(帧内/帧间预测),然后调味(变换量化),最后装盘打包(熵编码)。解码器就是“食客”,拆开包装,还原味道。

1.2 H264 标准发展史:从 MPEG-2 到 H264 的进化

H264 的官方名字叫 MPEG-4 AVC(Advanced Video Coding)。它是 ITU-T 和 ISO/IEC 两大组织在 2003 年联合推出的标准。

为什么它这么牛?我列几个关键节点:

时间 事件 意义
2003 H264 第一版发布 比 MPEG-2 节省 50% 码率,画质相当
2005 H264 High Profile 推出 支持 8x8 变换、自定义量化矩阵,压缩率再提升
2007 蓝光光盘采用 H264 正式取代 MPEG-2,成为高清存储标准
2010 H264 成为 YouTube 默认编码 互联网视频全面转向 H264
2014 H264 被 H265 挑战 但 H264 凭借生态优势,至今仍是主流

我记得刚入行时,公司还在用 MPEG-2 做编码器。后来换 H264,同样的码率,画质直接提升一个档次。那时候我就知道,这玩意儿要火。

避坑指南:我曾经在项目中遇到过 H264 的 Profile 选择问题。用 Baseline Profile 做直播,结果移动端解码器不支持 B 帧,画面卡成 PPT。后来我统一用 High Profile,兼容性最好。

1.3 H264 与 H265 对比:到底差在哪?

H265(HEVC)是 2013 年推出的继任者。它的目标是:在同等画质下,码率再降 50%。

但理想很丰满,现实很骨感。我直接给你上对比表:

对比项 H264 (AVC) H265 (HEVC)
编码单元 宏块(16x16 固定大小) CTU(最大 64x64,可递归划分)
帧内预测 9 种模式 35 种模式
运动补偿 1/4 像素精度 1/4 和 1/8 像素精度
变换大小 4x4 / 8x8 4x4 / 8x8 / 16x16 / 32x32
熵编码 CAVLC / CABAC CABAC(改进版)
压缩率 基准 提升 30%~50%
编码复杂度 低 高(约 2~4 倍)
专利许可 成熟,费用透明 混乱,专利池多
生态支持 所有设备都支持 较新设备才支持

说白了,H265 在技术上确实更先进,但代价是编码复杂度飙升。你想想看,一个 CTU 最大 64x64,还能递归划分成各种形状,编码器要遍历所有可能性才能找到最优解。这计算量,不是一般设备扛得住的。

我在做移动端编码器时,对比过 H264 和 H265 的实时编码。同样在骁龙 865 上,H264 能跑 1080p@30fps,H265 只能跑 720p@30fps,功耗还高 30%。所以,不是 H265 不好,是时机未到。

注意:H265 的专利问题是个大坑。我曾经有个项目,因为用了 H265,被专利池追着要授权费。后来我们切回 H264,虽然码率高了点,但省心多了。如果你做商业产品,务必先搞清楚专利授权。

1.4 本章知识体系图

下面这张图,帮你把本章的核心逻辑串起来:

H264 基础概念知识体系 H264 基础概念知识体系 H264 视频编码 编码原理 空间冗余 → 帧内预测 时间冗余 → 帧间预测 视觉冗余 → 量化 统计冗余 → 熵编码 发展史 2003: H264 第一版 2005: High Profile 2007: 蓝光采用 2010: YouTube 默认 H264 vs H265 编码单元: 16x16 vs 64x64 压缩率: 基准 vs 提升50% 复杂度: 低 vs 高2~4倍 生态: 全支持 vs 部分支持 核心结论:H264 是当前最平衡的编码标准 压缩率、复杂度、生态支持三者兼顾

嗯,这张图把本章的三个核心模块串起来了。你仔细看,编码原理是基础,发展史是脉络,H264 vs H265 是现实选择。三者缺一不可。

好了,第一章就到这里。记住:H264 不是最先进的,但一定是最实用的。后面我们会深入码流结构,从 NAL 单元开始,一步步拆解 H264 的每一比特。