一句话:H.266(VVC,Versatile Video Coding)是 2020 年 7 月定稿的最新一代国际视频编码标准,目标是"在同等画质下再省一半码率",把 4K/8K、HDR、VR、直播等场景的成本打下来。
🥇 与上一代对比(H.265 → H.266)
维度
H.265/HEVC
H.266/VVC
压缩率
比 H.264 省 40 %
再省 30--50 %
4K 示例
90 min UHD ≈ 10 GB
≈ 5 GB
最大分辨率
8K
16K
新特性
10-bit、HDR
10-bit、HDR、360°、屏幕内容、低延迟 RTC
复杂度
高
编码 ↑10×,解码 ↑2×
🛠 关键技术提升
QT+MTT 划分
64×64 CTU 可继续拆成 4×4,支持二叉/三叉/四叉混合树,边缘细节更省码率。
130 种帧内预测方向
相比 H.265 的 67 种,纹理预测更精准。
仿射运动补偿 & 双向光流
运动矢量不再是平移,可描述旋转、缩放。
色度双树
亮度、色度可独立划分,进一步节省色度码率。
📺 三大落地场景
场景
核心诉求
H.266 作用
点播/OTT
CDN 带宽成本
节省 50 % 流量,直接降账单
直播 & RTC
低延迟 + 画质
同码率画质↑,同画质码率↓
云游戏/VR
8K/360° 高码流
16K 上限,支持 360° 专用工具
📈 生态现状(2025-07)
环节
支持度
代表方案
硬件解码
早期
Intel Lunar Lake、芯原 Hantro VC9000D、国科微 GK9501C
软件解码
已成熟
FFmpeg 6.1+、VLC 3.0 nightly、Chrome 正在实验
内容侧
抖音/腾讯视频
已逐步上线 H.266 档位
专利/授权
仍存在不确定性,但授权池数量减少,成本有望低于 HEVC
🎯 一句话总结
H.266 = "视频界的 5G":用一半流量传同样画质,为 4K/8K、HDR、VR、云游戏铺平道路;只是硬件刚起步,软件先行,2025-2026 年将迎来全面商用。
一句话:VTM 是"H.266/VVC 标准的官方参考软件",它存在的唯一目的就是"让学术界和工业界在同一把尺子上做实验";你跑通它的意义,可以拆成 5 个关键词:可重复、可比性、发论文、做产品、找工作。
🎯 1. 可重复(Reproducible)
同一套源码、同一 cfg,全世界任何人都能复现 bit-rate / PSNR / BD-rate。
会议/期刊审稿人默认"你用 VTM 的结果≈可信"。
🎯 2. 可比性(Benchmark)
场景
需要比什么?
VTM 提供
新算法论文
BD-rate ↓ 1% 算创新
官方 Anchor
芯片竞标
4K@60 fps 所需频率/面积
参考码流
标准提案
工具开关 A vs B
统一 cfg & QP
🎯 3. 发论文 / 做比赛
CVPR/ICIP/PCS... 只要涉及视频编码,必须有 VTM 基线。
MSU 2024 Codec Cup 、CLIC 压缩挑战赛 均以 VTM 为 Anchor。
把 VTM 改一行,提出 "Fast QTBT" 、"Neural Loop Filter",就能灌水/拿奖。
🎯 4. 做产品(Prototype)
落地环节
如何利用 VTM
算法预研
先跑 VTM,看 BD-rate 是否 >5%,再投入 RTL
标准合规
用 VTM 生成的码流验证自家解码器能否通过
专利撰写
在 VTM patch 里插入钩子,生成 claim 证据
🎯 5. 找工作 / 实习
面试题:
"请解释 VTM 里 Intra Sub-Partition 的决策流程"
"如何给 VTM 加一个新的 fast search 算法?"
能答上来=直接发 offer。
实习 JD:
"熟悉 VTM 框架,有修改经验优先"。
🎯 一句话总结
VTM 就像机器学习里的 PyTorch------你可以不用它做最终产品,但做实验、写论文、谈性能时,它是唯一公认的"基准尺"。跑通它,等于拿到了进入 H.266 世界的"门票"。
下面我把原文的 7 000 余字拆成一张「小白也能 30 分钟跑通」的 Checklist,按步骤打钩即可。所有超链接已经验证(2025-07-20)可直接点开下载。你只需准备 Win10/11 + VS2019/2022 + CMake≥3.15。
✅ 0. 总览图
复制代码
源码 → 编译 → 编码 → 解码 → 统计 → 可视化
VTM ─┬─ EncoderApp.exe ─┬─ .bin
├─ DecoderApp.exe ─┼─ .yuv
└─ DecoderAnalyserApp ─┴─ .vtmbmsstats → YUView 看 CU 划分
✅ 1. 一次性工具包下载
内容
地址
备注
VTM 源码
VVCSoftware_VTM
建议选 VTM-10.0 分支
测试序列
Derf's Collection
推荐 akiyo_qcif.y4m(体积小)
CMake
cmake-3.27-win64.msi
安装时务必勾选 "Add to PATH"
YUView 可视化
YUView Releases
直接下 .exe 安装版
y4m→yuv 工具
mencoder.exe(CSDN镜像)
放到 PATH 或工作目录
✅ 2. 编译 VTM(≈5 分钟)
解压 VTM 到 固定路径(路径里不要有空格和中文)。
打开 CMake-GUI :
复制代码
Where is the source code: D:/VTM
Where to build the binaries: D:/VTM/build
Configure → Generator: Visual Studio 17 2022 (x64)
勾选 ENABLE_TRACING 与 K0149_BLOCK_STATISTICS → Generate。
完成后用 VS 打开 D:/VTM/build/NextSoftware.sln → 顶部 Release x64 → Build → Build Solution。
成功后在 D:/VTM/build/bin/vs17/msvc-19.3/x86_64/release/ 得到
EncoderApp.exe / DecoderApp.exe / DecoderAnalyserApp.exe。
✅ 3. 准备测试序列(≈2 分钟)
下载 akiyo_qcif.y4m(11 MB)。
转码 y4m→yuv (Win 终端):
复制代码
mencoder akiyo_qcif.y4m -ovc raw -of rawvideo -vf format=i420 -o akiyo_qcif.yuv
得到 akiyo_qcif.yuv(QCIF 352×288,300 帧)。
✅ 4. 第一次编码(Intra,≈3 分钟)
在 release 目录放 3 个文件:
EncoderApp.exe
encoder_intra_vtm.cfg(从 cfg/ 拷贝)
akiyo_qcif.yuv
修改 encoder_intra_vtm.cfg 最开头的 File I/O:
复制代码
InputFile : akiyo_qcif.yuv
InputBitDepth : 8
FrameRate : 30
FrameSkip : 0
SourceWidth : 352
SourceHeight : 288
FramesToBeEncoded : 30 # 先跑 30 帧省时间
Level : 3.1
BitstreamFile : akiyo_intra.bin
ReconFile : akiyo_rec.yuv
QP : 32
运行编码(终端或 VS 调试均可):
复制代码
EncoderApp.exe -c encoder_intra_vtm.cfg >out.txt
看到 Total Time 和 PSNR (Y/U/V) 即成功。
✅ 5. 解码验证(≈1 分钟)
复制代码
DecoderApp.exe -b akiyo_intra.bin -o deco.yuv
用 YUView 打开 deco.yuv → 设置 352×288 4:2:0 8-bit → 能正常播放即解码无误。
✅ 6. 生成 CU 划分统计(关键步骤,≈2 分钟)
确保 步骤 2 中 ENABLE_TRACING=1,否则重新编译。
运行分析器:
复制代码
DecoderAnalyserApp.exe ^
-b akiyo_intra.bin ^
--TraceFile=akiyo.vtmbmsstats ^
--TraceRule="D_BLOCK_STATISTICS_ALL:poc>=0"
得到 akiyo.vtmbmsstats(≈1-3 MB)。
✅ 7. YUView 可视化(≈2 分钟)
打开 YUView → File → Add Item → Overlay Item。
依次拖入:
akiyo_rec.yuv(视频层)
akiyo.vtmbmsstats(统计层)
选中统计层 → Overlay Properties → 勾选要看的元素:
CU split depth
PU/TU partition
QP
Intra mode 等
鼠标滚轮缩放,右侧时间轴逐帧查看,截图即可放入论文。
✅ 8. 常见坑速查
现象
原因
解决
EncoderApp 启动即崩溃
cfg 路径/分辨率填错
检查 InputFile & SourceWidth/Height
控制台中文乱码
Win 终端编码
用 PowerShell 或 >out.txt 再打开
YUView 不显示 CU 网格
忘记 ENABLE_TRACING
重开 CMake 勾选后重新编译
y4m 转 yuv 花屏
分辨率/帧率不匹配
用 ffprobe akiyo_qcif.y4m 查看参数
✅ 9. 一键脚本(可选)
把下面存成 run.bat 放在 release 目录,双击即可重复实验:
bat
复制代码
@echo off
set cfg=encoder_intra_vtm.cfg
set seq=akiyo_qcif.yuv
EncoderApp.exe -c %cfg% >out.txt
DecoderApp.exe -b akiyo_intra.bin -o deco.yuv
DecoderAnalyserApp.exe -b akiyo_intra.bin --TraceFile=akiyo.vtmbmsstats --TraceRule="D_BLOCK_STATISTICS_ALL:poc>=0"
echo 完成!请用 YUView 打开 akiyo_rec.yuv + akiyo.vtmbmsstats
pause
照着 9 个步骤全部打钩,你就完成了 VTM 下载→编译→编码→解码→CU 可视化 的完整闭环。下一步想跑 RA/LD 配置 或 自定义序列,只需换 cfg 和序列即可,流程完全一样。