深度学习增强的视频压缩框架:Neutron Star 如何超越 VVC

📅 2026/7/31 17:07:04
深度学习增强的视频压缩框架:Neutron Star 如何超越 VVC
论文标题: A Neural-Network Enhanced Video Coding Framework Beyond VVC作者: Junru Li, Yue Li, Chaoyi Lin, Kai Zhang, Li Zhang团队: 字节跳动多媒体实验室 (Bytedance Multimedia Lab)发表: CVPR 2022 Workshop (CLIC 2022)平台: Neutron Star (中子星) — 传统智能混合编码框架一、引言视频压缩到头了” — 这是我刚入行时听到最多的论调。2020 年 VVC/H.266 刚定稿很多人觉得混合编码框架已经榨干了最后一滴油。但字节跳动多媒体实验室在 CVPR 2022 CLIC 挑战赛上扔出了一颗重磅炸弹他们提出的Neutron Star混合框架相比 VVC 参考软件 VTM-11.0在 Random Access 配置下实现了亮度 25.81%、色度 Cb 35.08%、Cr 37.54% 的 BD-rate 节省。注意这个数字 — 它不是跟 HEVC 比是跟VVC比。VVC 本身相比 HEVC 已经省了约 50% 的码率Neutron Star 在此基础上又砍掉了四分之一。更关键的是这不是一个纯端到端学习方案而是传统编码工具 深度学习增强工具的融合体。这个思路后来深刻影响了 JVET 的 Exploration Experiment (EE) 以及下一代标准 H.267 的路线选择。2024 年团队进一步将框架升级到 ECM-10.0 基准上再次验证了架构的有效性。本文将从块划分、帧内预测、帧间预测、环路滤波、超分辨率、块重要性映射六个维度对该框架进行源码级拆解。二、整体框架传统为骨智能为翼2.1 架构全景Neutron Star 的核心设计理念是“传统部分更传统智能部分更智能”┌──────────────────────────────────────────────────────────┐ │ Neutron Star 框架 │ ├──────────────────────────────────────────────────────────┤ │ │ │ 输入视频 → ┌─ 传统编码工具 ─────────────────┐ → 码流 │ │ │ ├── 非对称四叉树划分 (UQT) │ │ │ │ ├── 增强帧内预测 (MIP/CCLM等) │ │ │ │ ├── 增强帧间预测 (仿射继承等) │ │ │ │ └── 变换/量化/熵编码 │ │ │ └─────────────────────────────────┘ │ │ │ │ ┌─ 深度学习增强工具 ──────────────┐ │ │ │ ├── CNN 环路滤波器 (DAM) │ │ │ │ ├── 自适应超分辨率 (SR) │ │ │ │ └── 块重要性映射 (BIM) │ │ │ └─────────────────────────────────┘ │ │ │ │ 基础参考: ECM 3.1 (Enhanced Compression Model) │ │ 对比基准: VTM-11.0 (VVC Test Model) │ └──────────────────────────────────────────────────────────┘ECM (Enhanced Compression Model) 是 JVET 在 VVC 定稿后启动的“Beyond VVC”探索软件集成了大量超出 VVC 标准的实验性工具。Neutron Star 基于 ECM-3.1 版本进行增强一方面改进了传统编码工具块划分、预测另一方面引入了深度学习技术环路滤波、超分。这种双轨并行的策略恰好也是 JVET 当前推进 H.267 的两条路线传统增强路线ECM AI 原生路线NNVC。三、块划分非对称四叉树 (UQT)3.1 VVC 的划分体系回顾VVC 的块划分采用QTMTT(Quadtree Multi-Type Tree) 体系CTU (128×128) ├── QT Split → 4个等大子块 ├── BT-H Split → 水平二分 (M×N → M/2×N, M/2×N) ├── BT-V Split → 垂直二分 ├── TT-H Split → 水平三分 (比例 1:2:1) └── TT-V Split → 垂直三分约束规则一旦进行了 BT/TT 划分子块就不能再 QT 划分。MTT 的最大深度为 3 或 4。// VTM 中的划分类型枚举 (UnitPartitioner.h)enumPartSplit{CU_QUAD_SPLIT0,// QTCU_HORZ_SPLIT1,// BT-HCU_VERT_SPLIT2,// BT-VCU_TRIH_SPLIT3,// TT-HCU_TRIV_SPLIT4,// TT-V};3.2 UQT 的动机QTMTT 的问题在于一次划分只能触及有限深度。对于一个 128×128 的 CTU第一次 BT 划分产生两个 64×128 块如果我们需要一个 32×128 和两个 16×128 的子块就需要至少两次 BT 划分才能达到。UQT 的核心思想一次划分直达深层。一次 UQT 分裂可以同时产生比例为 1/2、1/4、1/8、1/8 的四个子块。3.3 UQT 的四种结构水平方向 UQT 垂直方向 UQT ┌─────────────────────┐ ┌──────┬──────┬───┬───┐ │ │ │ │ │ │ │ │ M × N/2 │ │M/2×N │M/4×N │ . │ . │ │ │ │ │ │ . │ . │ ├──────────┬────┬─────┤ │ │ │ . │ . │ │ M×N/4 │ .. │ .. │ │ │ │ │ │ └──────────┴────┴─────┘ └──────┴──────┴───┴───┘ UQT-H1 / UQT-H2 UQT-V1 / UQT-V2 详细结构: UQT-H1: M×N → [M×(N/2)] [M×(N/4)] 2×[M×(N/8)] UQT-H2: M×N → 2×[M×(N/8)] [M×(N/4)] [M×(N/2)] UQT-V1: M×N → [(M/2)×N] [(M/4)×N] 2×[(M/8)×N] UQT-V2: M×N → 2×[(M/8)×N] [(M/4)×N] [(M/2)×N]UQT-H1 和 UQT-H2 的区别在于最大子块的位置H1 的最大子块在顶部H2 的最大子块在底部V1/V2 类似。3.4 UQT 的技术优势1. 一次划分就能产生更小的子块QT 一次划分128→4×64UQT 一次划分128→{64, 32, 16, 16}2. 无法被 QTBTTT 组合替代举例UQT 产生的 {1/2, 1/4, 1/8, 1/8} 形状模式用 QTBTTT 的组合也无法在相同划分次数下复现。3. 子块尺寸保持在 2 的幂次方不需要引入新的变换核尺寸。所有子块的宽/高仍然是 2 的幂次可以直接复用现有的 DCT-II/DST-VII/DCT-VIII 变换。3.5 编码器修改要点// 伪代码在 VTM 的 CU 划分决策中加入 UQT 模式voidxCompressCU(CodingStructurecs,Partitionerpartitioner){// 原有 QT/BT/TT 模式遍历for(autosplit:{CU_QUAD_SPLIT,CU_HORZ_SPLIT,...}){...}// 新增 UQT 模式遍历if(partitioner.currArea().width16partitioner.currArea().height16){for(autouqt_split:{UQT_H1,UQT_H2,UQT_V1,UQT_V2}){// RD cost 计算// 码流标志位写入}}}码流语法需要新增uqt_split_flag和uqt_split_dir等标志解码端解析后恢复划分结构。四、帧间预测增强历史仿射模型继承4.1 VVC 的仿射运动补偿VVC 支持两种仿射模式4 参数仿射: (v₀, v₁) 两个控制点模拟旋转 缩放6 参数仿射: (v₀, v₁, v₂) 三个控制点额外支持剪切变形4参数: vx (v1x-v0x)/w * x - (v1y-v0y)/w * y v0x vy (v1y-v0y)/w * x (v1x-v0x)/w * y v0y 6参数: vx (v1x-v0x)/w * x (v2x-v0x)/h * y v0x vy (v1y-v0y)/w * x (v2y-v0y)/h * y v0y仿射模式的运动矢量预测有两种方式继承模式 (Affine Merge): 从相邻已编码块的仿射模型中继承构造模式 (Affine AMVP): 从相邻块的平移 MV 中构造仿射模型4.2 历史仿射模型继承Neutron Star 对帧间预测的增强重点在于扩展仿射继承的来源范围。VVC 中仿射合并只能从空间相邻块继承模型而 Neutron Star 引入了历史仿射模型列表HMVP for Affine┌──────────────────────────────────────────┐ │ 仿射模型继承来源 │ ├──────────────────────────────────────────┤ │ ┌────────┐ ┌────────┐ ┌──────────────┐ │ │ │ 空间相邻│ │ 时间同位│ │ 历史仿射模型 │ │ │ │ A0,A1 │ │ Col-CTU│ │ HMVP-Affine │ │ │ │ B0,B1,B2│ │ │ │ (FIFO Queue) │ │ │ └────────┘ └────────┘ └──────────────┘ │ │ VVC 原有 Neutron Star 新增 │ └──────────────────────────────────────────┘技术实现维护一个 FIFO 历史队列存储最近使用过的仿射模型参数{v₀, v₁, v₂}当前 CU 编码时先尝试从历史队列中搜索匹配的仿射模型找到一个 RD cost 最小的候选写入对应的索引到码流// 伪代码历史仿射模型继承structHmvpAffineCandidate{Mv mv0,mv1,mv2;// 最多 6 参数仿射intrefIdx;};std::listHmvpAffineCandidatehmvpAffineList;// FIFO长度 5~6voidupdateHmvpAffineCand(constCodingUnitcu){if(cu.affine){hmvpAffineList.push_front({cu.mv0,cu.mv1,cu.mv2,cu.refIdx[0]});if(hmvpAffineList.size()MAX_NUM_HMVP_AFFINE)hmvpAffineList.pop_back();}}这个设计的巧妙之处仿射模型通常对应的是持续性的相机运动或物体运动如平移、旋转、缩放。在一个场景中相同的运动模式往往持续多帧历史队列天然适合捕获这种时序一致性。五、深度学习环路滤波DAM (Deep-filtering with Adaptive Model-selection)这一节是论文的核心亮点之一。DAM 技术早在 2021 年的 JVET-U0068 提案中就引起了广泛关注是当时业界公开的单个智能编码工具中性能增益最高的。5.1 为什么 DL 滤波优于传统滤波传统 VVC 的环路滤波管线重建帧 → Deblocking Filter (DBF) → SAO → ALF → 参考帧缓冲这三个滤波器各有分工DBF: 消除块边界的不连续SAO: 补偿振铃效应和带状偏移ALF: 基于维纳滤波的最小二乘估计但它们有一个共同的局限都是线性或准线性的。视频压缩引入的失真量化噪声、高频丢失本质上是一个非线性过程用线性滤波去修复非线性失真天花板是可预见的。CNN 的出现改变了这个局面。非线性激活函数 多层特征提取 大感受野让 CNN 能够学习到远比线性滤波器更复杂的失真模式。5.2 DAM 网络架构输入: 重建帧 辅助信息 │ ┌────────────▼────────────┐ │ Conv 3×3, stride2 │ 特征图数: 128 │ PReLU │ 空间分辨率: H/2 × W/2 └────────────┬────────────┘ │ ┌────────────▼────────────┐ │ 残差单元 × N │ 每个残差单元: │ ┌─────────────────────┐│ Conv3x3→PReLU→Conv3x3 │ │ Conv3x3 → PReLU ││ │ │ │ ↓ ││ ↓ ( identity) │ │ Conv3x3 ││ PReLU → 下一层 │ │ ↓ ↓ ││ │ │ identity → PReLU││ │ └─────────────────────┘│ └────────────┬────────────┘ │ ┌────────────▼────────────┐ │ Conv 3×3 │ 输出: 4 × 子特征图 └────────────┬────────────┘ │ ┌────────────▼────────────┐ │ Pixel Shuffle │ 恢复空间分辨率 │ (depth-to-space) │ H × W └────────────┬────────────┘ │ 输出: 滤波后图像 (残差)架构关键参数:卷积核: 统一使用 3×3内部特征图数: M 128激活函数: PReLU (Parametric ReLU)下采样层: stride2 的卷积将空间分辨率降至 1/2增大感受野同时降低计算量Pixel Shuffle: 将 4 个子特征图重组为原分辨率输出5.3 辅助信息输入DAM 的输入不仅仅是重建像素还融合了丰富的编码端先验信息输入通道组成: ┌──────────────────────────────────────┐ │ 1. 重建像素 (Y / Cb / Cr) │ │ 2. 预测信号 (Intra/Inter Prediction) │ │ 3. 划分信息 (CU/PU Partition Map) │ │ 4. 边界强度 (Boundary Strength, BS) │ │ 5. 量化参数 (QP Map) │ └──────────────────────────────────────┘ 对于 Intra Slice: → 额外输入: 预测模式信息 (Planar/DC/Angular 等) 对于 Inter Slice: → 额外输入: 运动矢量、参考帧索引设计哲学: 传统滤波器的输入只有重建像素这等价于让网络盲猜哪里是块边界、哪里是高频区域。加入划分信息、BS、QP 后网络明确知道哪些区域有块效应风险、哪些区域量化更粗糙从而有针对性地滤波。这本质上是增强了网络的注意力机制— 不需要网络自己去推断而是直接喂给它结构信息。5.4 自适应模型选择 (Adaptive Model Selection)这是 DAM 名字中 “A” 的来历也是最精妙的部分。核心思想: 不同 QP 下的压缩失真特性不同用同一套参数去处理所有质量级别显然不是最优的。训练策略: 训练 6 个基础模型分别对应 QP ∈ {17, 22, 27, 32, 37, 42} 推理时的候选模型选择: 设当前编码 QP q 候选模型池 {Model_q, Model_{q-5}, Model_{q-10}} 例如: 当前 QP32 → 候选模型 {Model_32, Model_27, Model_22} 选择机制: 对每个候选模型在 Slice/CTU 级别计算 RD cost 选择 RD cost 最小的模型将模型索引写入码流粒度: 两个级别可选Slice 级别: 整个 Slice 共用一个模型开销最小CTU 级别: 每个 CTU 独立选择模型更精细但开销更大5.5 训练策略分层迭代训练 (Hierarchical Iterative Training):这是本文在训练策略上最值得关注的点。VVC 使用分层参考结构GOP 内的不同 Temporal Layer高层帧参考低层高质量帧进行编码。这带来一个问题如果用原始图像做训练标签网络学到的是修复到无损的能力但实际解码端参考的是有损重建帧存在分布不匹配。GOP 结构示意 (RA, GOP16): Temporal Layer 0: I/P 帧 (最高质量被所有帧参考) Temporal Layer 1: B 帧 (参考 TL0) Temporal Layer 2: B 帧 (参考 TL0, TL1) Temporal Layer 3: B 帧 (参考 TL0, TL1, TL2) 迭代训练流程: Step 1: 训练 TL0 滤波模型 → 用原始图像做标签 (因为 I 帧不参考其他帧) Step 2: 加载 TL0 滤波模型对参考帧做滤波 → 用滤波后的参考帧编码 TL1 帧 → 用编码滤波后的 TL1 帧做标签训练 TL1 滤波模型 Step 3: 加载 TL0 和 TL1 滤波模型 → 用滤波后的参考帧编码 TL2 帧 → ... (以此类推)数据集:图像训练集: DIV2K (800 张 2K 分辨率高质量图像)视频训练集: BVI-DVC针对 Intra Slice 和 Inter Slice 分别训练关闭传统滤波器: DAM 被启用时DBF 和 SAO 被关闭ALF/CCALF 放置在 DAM 之后。这意味着 DAM 代替了 DBFSAO 的功能而 ALF 作为补充处理 DAM 未完全消除的残余失真。5.6 性能数据DAM 单独性能 (VTM-9.0 基准): RA (Random Access) 配置: Y: -10.28% BD-rate 节省 Cb: -28.22% Cr: -27.97% AI (All Intra) 配置: Y: -8.33% Cb: -23.11% Cr: -23.55%注意色度分量的节省远大于亮度 — 这是因为人眼对色度信息更不敏感VVC 本身对色度编码的优化相对较少压缩失真在色度通道上更严重DL 滤波的提升空间也就更大。六、超分辨率 (Super Resolution)6.1 动机Neutron Star 在低码率场景下引入了自适应超分辨率技术。基本思路是编码端: 原始分辨率 → 下采样 → 编码 → 传输 解码端: 解码 → 超分辨率重建 → 原始分辨率在低码率下用低分辨率编码 高质量 SR 重建通常比直接编码高分辨率更有效。这是因为码率预算有限时高分辨率编码会引入严重的量化噪声而低分辨率保留更多结构信息SR 再去补足高频细节。6.2 自适应下采样策略不是所有帧都适合下采样编码。论文采用了内容自适应的下采样决策对每帧进行评估: R_full 原始分辨率编码的 RD cost R_down 下采样→编码→SR重建的 RD cost if R_down R_full → 使用超分辨率模式 else → 保持原始分辨率6.3 SR 网络论文对 SR 网络的具体结构描述较少但根据火山引擎后续公开的技术报告Neutron Star 采用的是基于残差学习的轻量级 SR 网络支持 2× 和自适应比例的上采样。七、块重要性映射 (BIM)BIM 在 ECM 中已有定义但默认关闭。Neutron Star 激活了它并对其进行了调优。7.1 原理在随机访问 (RA) 编码结构中不同帧的重要性是不对等的GOP16 RA 结构中的层级关系: Frame 0 (I, TL0) ← 被所有帧参考最重要 Frame 16 (P, TL0) ← 被 B 帧参考 Frame 8 (B, TL1) ← 被 TL2/TL3 帧参考 Frame 4/12 (B, TL2) ← 重要性较低 Frame 2/6/10/14 (B, TL3) ← 重要性最低BIM 的思想是对后续帧参考价值越大的区域分配越多的码率。7.2 重要性计算重要性估计流程: 1. 使用 MCTF (Motion Compensated Temporal Filter) 估计每个 CTU 在时域上的传播影响力 2. 传播权重计算: - 一个 CTU 被多少后续帧的多少个块引用为参考 - 每次引用的权重取决于运动补偿后的像素数量占比 3. 重要性得分归一化到 [0, 1] 区间7.3 QP 偏移映射重要性 → ΔQP 映射: ┌──────────────────┬────────────┐ │ 重要性得分 │ ΔQP 偏移 │ ├──────────────────┼────────────┤ │ High (top 20%) │ -2 │ ← 给更多码率 │ Medium-High │ -1 │ │ Medium │ 0 │ │ Medium-Low │ 1 │ │ Low (bottom 20%) │ 2 │ ← 省码率 └──────────────────┴────────────┘ ΔQP 范围: [-2, 2]相对于帧级 QP关键约束: 每个 CTU 的 ΔQP 需要写入码流所以范围限制在 [-2, 2] 是为了控制语法开销。实验表明这个范围已经足够捕捉主要的 ROI 区域。八、实验结果8.1 CLIC 2022 竞赛成绩CLIC 2022 视频压缩赛道 (Neutron Star): ┌──────────────┬──────────────┬──────────────┐ │ 赛道 │ PSNR (dB) │ 主观 MOS │ ├──────────────┼──────────────┼──────────────┤ │ 1 Mbps (高) │ 39.313 │ 第 1 名 │ │ 0.1 Mbps (低)│ 32.050 │ 第 1 名 │ └──────────────┴──────────────┴──────────────┘ CLIC 2022 图像压缩赛道: ┌──────────┬──────────┐ │ bpp │ PSNR(dB) │ ├──────────┼──────────┤ │ 0.3 │ 33.522 │ │ 0.15 │ 30.758 │ │ 0.075 │ 28.300 │ └──────────┴──────────┘8.2 通用测试条件性能RA (Random Access) 配置, VTM-11.0 基准: ┌──────────────────────────┬──────────────┐ │ 分量 │ BD-rate 节省 │ ├──────────────────────────┼──────────────┤ │ Y (亮度) │ -25.81% │ │ Cb (色度蓝) │ -35.08% │ │ Cr (色度红) │ -37.54% │ └──────────────────────────┴──────────────┘8.3 演进到 ECM-10.0 基准 (2024 版)2024 年 arXiv 论文, ECM-10.0 基准, RA 配置: ┌──────────────────────────┬──────────────┐ │ 分量 │ BD-rate 节省 │ ├──────────────────────────┼──────────────┤ │ Y (亮度) │ -6.26% │ │ U (色度蓝) │ -13.33% │ │ V (色度红) │ -12.33% │ └──────────────────────────┴──────────────┘注意ECM-10.0 本身已经比 VTM-11.0 强很多ECM 包含大量实验性工具所以在 ECM 基准上再提升 6% 是非常困难的。这也说明了 Neutron Star 框架的基准无关性— 无论底层用什么编码器这套增强工具都能贡献稳定增益。8.4 各技术模块的贡献分解技术模块作用域BD-rate 贡献UQT 块划分编码端~2-3% (融合在框架中)增强帧内/帧间预测编码端~3-5% (融合在框架中)CNN 环路滤波 (DAM)编解码两端~10% (Y) ~28% (Cb/Cr)自适应超分辨率 (SR)编解码两端低码率场景显著BIM 块重要性映射编码端~1-2% (RA 场景)九、技术洞察与踩坑点9.1 为什么是传统智能混合而不是端到端这是个灵魂拷问。2022 年时端到端学习视频压缩如 DCVC、AlphaVC已经开始崭露头角但 Neutron Star 选择了混合路线。原因有三标准化兼容性: 混合方案可以渐进式地融入现有标准流程不需要推倒重来硬件友好度: CNN 环路滤波可以做成固定算子加速而端到端方案的编解码器需要完整的 GPU 推理可解释性: 出了问题你可以定位到具体模块 — 是划分没做好还是滤波没学好端到端方案是个黑盒9.2 DAM 训练中的分布偏移 (Distribution Shift)这是最容易踩的坑。训练时用的 Loss 是对原始图像的 MSE但解码端实际看到的是经过前面所有编码流程处理后的重建帧。训练分布 ≠ 推理分布导致模型泛化能力下降。Neutron Star 的解决方案是迭代训练先训练 TL0 滤波再用训练好的 TL0 滤波模型去编码 TL1用这个真实编码后的结果作为 TL1 滤波器的训练目标。这确保了训练数据与实际推理环境的一致性。9.3 UQT 的速度开销UQT 在编码器侧增加了 4 种划分模式的 RD cost 评估对于每个允许 UQT 的 CU 都要多算 4 次 RD cost。论文没有给出具体的编码时间增加量但根据经验估计这大概会增加 10-25% 的编码时间。这是典型的用复杂度换压缩率的交易。9.4 色度增益远大于亮度的原因DAM 对色度分量的 BD-rate 节省28%远大于亮度10%。这不是因为色度模型更好而是因为VVC 将主要的码率预算分配给了亮度分量色度分量本身就压缩得更粗糙压缩伪影更严重深度学习滤波器对它修复的空间更大启发: 如果做自己的 DL 滤波方案色度通道可能是最容易出成果的切入点。十、总结与展望核心贡献提出并验证了传统智能混合编码框架的有效性在 VVC 基础上实现 25% BD-rate 节省UQT 非对称四叉树划分扩展了块划分的表达空间DAM 自适应深度学习环路滤波业界最强的单工具性能增益Y: 10%, Cb/Cr: 28%迭代训练策略解决了分层编码结构中滤波分布偏移问题BIM 块重要性映射基于时域传播分析的自适应 QP 调节产业影响Neutron Star 的技术已经通过 BVC 编码器落地到抖音、西瓜视频等字节系产品的视频处理链路中。2024 年的 CLIC 大赛上团队联合北大的 b-2 平台再次夺冠证明了这条技术路线的持续生命力。对 H.267 的影响JVET 目前推进的 H.267 标准有两条平行路线ECM 传统增强路线和 NNVC 神经网络视频编码路线。Neutron Star 的传统智能思路恰好为两条路线的交叉融合提供了实践范本。字节跳动也凭借 645 个相关专利家族位居全球第一深度参与了 H.267 的标准化进程。参考文献Li, J., Li, Y., Lin, C., Zhang, K., Zhang, L. (2022).A Neural-Network Enhanced Video Coding Framework Beyond VVC. CVPR 2022 Workshop (CLIC).Zhao, Y., He, W., Jia, C., et al. (2024).A Neural-network Enhanced Video Coding Framework beyond ECM. arXiv:2402.08397.Li, J. et al. (2021).JVET-U0068: Deep-filtering with Adaptive Model-selection (DAM). JVET Proposal.Bross, B. et al. (2021).Overview of the Versatile Video Coding (VVC) Standard and its Applications. TCSVT.JVET.Enhanced Compression Model (ECM) Software. https://vcgit.hhi.fraunhofer.de/ecm/ECM.