1. H265/HEVC 编码标准概述
各位同学,咱们今天聊聊 H265。说实话,我在视频编解码这行干了十几年,H265 算是我看着长大的。从它还是草案的时候我就开始折腾,踩过不少坑,也攒了不少经验。今天这一章,咱们先把 H265 的来龙去脉、它跟 H264 到底差在哪、以及它凭什么能成为现在的主流,掰扯清楚。
1.1 H265/HEVC 的发展历史
H265 的正式名字叫 HEVC(High Efficiency Video Coding),高效视频编码。你想想看,H264 是 2003 年定稿的,到了 2010 年左右,4K 电视开始冒头,H264 明显扛不住了。码率太高,带宽撑不住。
所以 2010 年,ITU-T 和 ISO/IEC 这俩老大哥又凑到一起,搞了个联合视频编码小组(JCT-VC)。我记得当时我还在做 H264 的嵌入式优化,听说要搞新标准,心里既兴奋又忐忑——新标准意味着新机会,但也意味着又要重新学一遍。
2013 年 1 月,HEVC 正式成为国际标准。从立项到定稿,差不多三年时间。这个速度在视频编码标准里算快的了。为什么这么快?说白了,就是市场需求逼的。4K 视频、流媒体、视频会议,哪个不需要更高的压缩率?
关键时间节点:
- 2010 年 4 月:JCT-VC 成立,开始 HEVC 标准化工作
- 2012 年 7 月:HEVC 草案完成,进入最终评审
- 2013 年 1 月:HEVC 正式成为 ITU-T H.265 和 ISO/IEC 23008-2 标准
- 2014 年:首个商用 HEVC 编码器/解码器出现
- 2017 年:HEVC 在 4K 蓝光、直播、视频会议中大规模部署
1.2 H265 与 H264 的核心对比
很多刚入行的同学问我:H265 到底比 H264 强在哪?我一般会反问一句:你见过 H264 压 4K 视频吗?那码率,啧啧,简直感人。
咱们直接上对比表,一目了然:
| 对比维度 | H264/AVC | H265/HEVC |
|---|---|---|
| 编码效率 | 基准 | 同等画质下码率降低 50% |
| 最大分辨率 | 4K(3840×2160) | 8K(7680×4320) |
| 最大帧率 | 60fps | 300fps |
| 宏块/编码树单元 | 16×16 宏块 | 64×64 编码树单元(CTU) |
| 帧内预测模式 | 9 种 | 35 种 |
| 运动补偿精度 | 1/4 像素 | 1/4 像素 + 1/8 像素 |
| 变换块大小 | 4×4, 8×8 | 4×4 到 32×32 |
| 环路滤波 | 去块滤波 | 去块滤波 + SAO(样点自适应补偿) |
| 并行处理 | 有限 | Tile、WPP、Slice 多级并行 |
| 编码复杂度 | 1x | 约 2-4x |
看到没?H265 在编码效率上直接翻倍。我做过一个实际测试:同样一段 4K 视频,H264 需要 40Mbps 才能达到的视觉质量,H265 用 20Mbps 就搞定了。这在流媒体场景下,意味着带宽成本直接砍半。
1.3 核心技术优势
H265 能这么强,不是靠玄学,是实打实的技术改进。我挑几个最关键的说说。
1.3.1 更大的编码树单元(CTU)
H264 用的是 16×16 的宏块,H265 换成了 64×64 的编码树单元。你想想看,一个 64×64 的块,可以递归划分成更小的子块,灵活性比 H264 高太多了。
我在做 4K 视频编码优化时发现,对于大面积的平坦区域(比如天空、墙壁),H265 可以用 64×64 的大块一次性编码,码率省得飞起。而 H264 只能用 16×16 的块,还得一个个处理,效率差远了。
1.3.2 更精细的帧内预测
H264 只有 9 种帧内预测模式,H265 扩展到了 35 种。多了 26 种方向预测,对于纹理复杂的区域,预测精度大幅提升。
我记得有一次做屏幕内容编码,H264 在文字区域总是出现锯齿,换了 H265 之后,文字边缘平滑多了。这就是帧内预测模式多的好处。
1.3.3 样点自适应补偿(SAO)
这是 H265 新增的环路滤波技术。H264 只有去块滤波,处理完块效应之后,图像边缘还是会有一些振铃效应。SAO 就是专门干这个的——它对重建后的像素做自适应补偿,让图像更干净。
我做过对比:同样码率下,开了 SAO 的 H265 视频,主观质量明显比 H264 好。尤其是在低码率场景下,SAO 能减少很多视觉伪影。
1.3.4 多级并行架构
H265 引入了 Tile、WPP(Wavefront Parallel Processing)和 Slice 三种并行机制。这在多核 CPU 和 GPU 上特别有用。
我当年在做一个 8K 实时编码项目时,就是靠 Tile 把画面切成 4 块,每块分配给一个编码核心,才勉强跑到了 60fps。要是用 H264,单核编码根本不可能实时。
个人经验: 在实际项目中,我建议优先使用 WPP 并行模式。它比 Tile 的码率损失小,而且对编码器改动最小。Tile 虽然并行度高,但会引入块边界质量下降的问题,需要额外处理。
1.4 应用场景分析
H265 的应用场景,说白了就是「H264 搞不定的地方」。我列几个典型的:
- 4K/8K 超高清视频:流媒体、蓝光、电视广播。H264 压 4K 码率太高,H265 是唯一现实的选择。
- 视频会议/远程协作:低带宽下保持清晰画质。我做过测试,H265 在 1.5Mbps 下能达到 H264 在 3Mbps 下的质量。
- 视频监控:长时间录制,存储成本是关键。H265 能省一半的存储空间。
- 移动端视频:手机流量贵,H265 能帮用户省流量,同时保持画质。
- VR/AR 视频:高分辨率、高帧率,H265 的 8K 支持是刚需。
避坑指南: 我曾经在一个项目中,为了省授权费,强行用 H264 压 4K 视频。结果码率飙到 60Mbps,客户直接投诉。后来换成 H265,码率降到 25Mbps,问题解决。所以,选编码标准时别只看授权费,要算总账——带宽和存储成本往往更贵。
1.5 H265/HEVC 知识体系总览
下面这张图,是我自己整理的 H265 知识体系框架。你可以把它当成整个课程的地图,后面每一章都会对应到其中的一个模块。
这张图把 H265 的核心知识点分成了四个大块:编码结构、预测技术、变换与量化、环路滤波。每个大块下面又有子模块,再往下是编码工具和应用场景。后面的课程,咱们会按照这个框架,一层一层往下拆。