WeCodec 知识库 · 视频编码
四代主流视频编码标准的来历、效率、块大小和授权
四个标准用的是同一套思路:切块、预测、变换、量化、熵编码。每往后一代,同画质下码率大约再省 25% 到 50%,编码计算量也跟着上涨。
授权方式差别很大:H.264、H.265、H.266 都要专利授权,AV1 免版税。
先看名字和来历。同一个标准常有两三个名字,因为 ITU-T 和 ISO/IEC 两个组织各给一个编号。
| 标准 | 别名 | 制定方 | 首版定稿 |
|---|---|---|---|
| H.264 | AVC,MPEG-4 Part 10 | ITU-T VCEG 与 ISO/IEC MPEG 联合组成的 JVT | 2003 年 5 月 |
| H.265 | HEVC,MPEG-H Part 2 | ITU-T 与 ISO/IEC 联合制定 | 2013 年发布 |
| AV1 | AOMedia Video 1 | 开放媒体联盟 AOMedia | 2018 年 3 月 28 日 |
| H.266 | VVC,MPEG-I Part 3 | ITU-T 与 ISO/IEC 联合组成的 JVET | 2020 年 7 月 6 日 |
表中信息来自各标准的维基百科条目,点标准名可以跳转。H.264、H.265、H.266 的正式文本由 ITU-T 发布(ITU-T H.264、ITU-T H.265、ITU-T H.266),AV1 的规范由 AOMedia 公开(AV1 Bitstream & Decoding Process Specification)。
首版之后标准还会继续修订。H.264 在 2003 年定稿后,后续版本陆续加入了多项扩展功能(维基百科:AVC)。AV1 在 2018 年 6 月 25 日发布了经过验证的 1.0.0 版规范(维基百科:AV1)。
H.264 到 H.265 隔了 10 年,之后 7 年内又出了 AV1 和 H.266。AV1 出现的直接原因是 HEVC 的专利授权费用高、条件不明朗。开放媒体联盟希望用开源、免版税的格式消除这种不确定性(维基百科:AV1)。
AV1 也不是从零开始。它以 Google 的 VP9 代码为基础,又吸收了几个实验格式的技术,包括 Google 的 VP10、Xiph 和 Mozilla 的 Daala,以及 Cisco 的 Thor(同上)。
比较压缩效率,一般看画质相同时新标准少用多少码率。
H.265 比 H.264 省 25% 到 50%(维基百科:HEVC),H.266 比 H.265 约省 50%(维基百科:VVC)。AV1 的数字来自 Facebook 2018 年的测试:按 PSNR 算,AV1 比 x264 High 档次平均省 45.8%,比 libvpx 的 VP9 省 32.9%(AV1 beats x264 and libvpx-vp9 in practical use case)。
这些数字很依赖测试条件。编码器实现、速度档位、画质指标一换,结论就会变。PSNR(峰值信噪比)按像素误差打分,和人眼观感并不完全一致。
省下的码率要用算力换。HEVC 征集方案时,一些方案能以 AVC 一半的码率做到同等画质,计算复杂度却增加 2 到 10 倍(维基百科:HEVC)。AV1 早期的参考编码器比当时的 HEVC 编码器慢好几个数量级(维基百科:AV1)。
分辨率越来越高,编码块也跟着变大。大块能用更少的比特描述大片平坦的画面。
| 标准 | 最大编码块 | 变换 |
|---|---|---|
| H.264 | 16×16 宏块 | 整数变换,4×4 和 8×8 |
| H.265 | 64×64 CTU | 整数 DCT 4×4 到 32×32,另有 DST |
| AV1 | 128×128 超级块 | 方形和长方形 DCT,另有非对称 DST |
| H.266 | 128×128 CTU | 在 H.265 基础上增加长方形变换块 |
大块还能降低解码开销。同一组 HEVC 测试里,CTU 限制为 16×16 时,解码时间比用 64×64 长 60%。HEVC 也因此规定,level 5 及以上的码流只能用 32×32 或 64×64 的块(维基百科:Coding tree unit)。level(级别)是标准里对分辨率、码率这类参数设的上限,级别越高,允许的分辨率越大。
H.264 的信息来自维基百科:Macroblock和维基百科:AVC,H.265 来自维基百科:HEVC,AV1 来自维基百科:AV1。H.266 的 CTU 尺寸来自 Cerveira 等人 2020 年的论文(Memory Assessment of Versatile Video Coding),变换块来自维基百科:VVC。CTU(coding tree unit,编码树单元)和变换的原理见《块划分、变换与量化》。
技术之外,授权方式往往决定能不能用。
| 标准 | 授权情况 | 什么时候选 |
|---|---|---|
| H.264 | 需专利授权,有 MPEG LA 专利池 | 要照顾老设备和老播放器时 |
| H.265 | 需专利授权,授权流程比 H.264 更复杂 | 目标设备支持,且能处理授权时 |
| AV1 | 免版税 | 网页和流媒体分发,想避开授权费时 |
| H.266 | 按合理无歧视条款授权,有 Access Advance 和 Via-LA 两个专利池 | 较新,适合先评估设备支持再决定 |
H.264 和 H.265 的授权信息来自维基百科:AV1,H.266 的来自维基百科:VVC。为了避免重演 HEVC 的授权乱局,业界在 VVC 推出时专门成立了媒体编码产业论坛 MC-IF(同上)。最右一列是本文的建议,不是标准规定。
选标准先看播放端能不能解码。播放端解不了,压缩率再高也没用。各浏览器支持哪些编码格式,可以查 MDN 的视频编码指南(MDN:Web video codec guide)。