Efficient Learned Image Compression without Entropy Coding¶
会议: ICML 2026
arXiv: 2605.23323
代码: 待确认
领域: 模型压缩 / 学习型图像编解码 / 生成式压缩
关键词: 学习型图像压缩, 无熵编码, 向量量化, 上下文重参数化, GPU 并行
一句话总结¶
EF-LIC 用"无约束向量量化最大化索引熵 + 表征域上下文重参数化消除潜变量间相关性"两步替代了 learned image compression 流水线里慢且串行的熵编码模块,理论证明其 R–D 性能可逼近熵编码方案,实际在 Kodak/LPIPS 上比 MS-ILLM 省码 67.86% 且解码快 10 倍。
研究背景与动机¶
领域现状:现代 learned image compression (LIC) 都遵循 Ballé 2018 的 VAE 编码器 + 量化 + 熵编码三段式范式,性能上已经超越 JPEG/VVC,最强的还在 perceptual 指标上吊打传统编码器。熵编码(rANS)配合 context model 同时消除统计冗余和相关性冗余,是性能的"最后一公里"。
现有痛点:熵编码(尤其 rANS)控制流复杂、本质串行,必须跑在 CPU 上,一次 forward 中熵编码可能花掉 100+ ms,比其他所有 GPU 模块加起来还多。简化或去掉熵编码立刻掉性能——COIN 用 INR 绕过熵编码但只能打到 JPEG 水平,OSCAR 用 diffusion 绕过但推理成本天价。
核心矛盾:从信息论看,端到端编码长度 \(R\ge H(X)\),熵编码的存在就是为了让实际码长贴近熵下界。一旦去掉,索引就只能定长编码,码长被强制等于 \(\log K^n\);要想这条上界不浪费,就得让索引分布逼近均匀分布(最大熵)并且让相邻 latent 之间没有可被预测的相关性——历史上没人系统做过这两件事。
本文目标:构造一个完全 GPU-friendly、不调用任何熵编码的 LIC 框架,同时保持与熵编码方案相当的 R–D 性能。
切入角度:把 LIC 的冗余拆成"统计冗余 (statistical)" + "相关性冗余 (correlation)"两类分别治疗——前者用 unconstrained VQ 把索引推到最大熵,后者用 representation-domain 的上下文 affine 重参数化把相关性"洗"掉,两者都是张量算子、天然 GPU 并行。
核心 idea:不去预测条件分布并把 logits 送熵编码器,而是直接在表征域用上下文驱动的 \((\bm\mu_i,\bm\sigma_i)\) 把当前 latent 组 \(\bm y_i\) 仿射变换到去相关空间再量化,量化用足够大的 VQ codebook,理论上保证 \(\Delta H\to 0\)。
方法详解¶
整体框架¶
EF-LIC pipeline 为:
- 主编码器 \(g_a\):图像 \(\bm x\in\mathbb{R}^{3\times H\times W}\) → 潜变量 \(\bm y\),下采样因子 \(f_y=16\)。
- 超先验分支:\(\bm z=h_a(\bm y)\),下采样因子 \(f_z=64\),RVQ 量化得 \(\hat{\bm z}\),解码出上下文特征 \(\bm\phi=h_s(\hat{\bm z})\)。
- 潜变量分组:把 \(\bm y\) 按 quadtree 拆成 \(N=4\) 组 \((\bm y_1,\bm y_2,\bm y_3,\bm y_4)\)。
- Representation-domain Decorrelation (RD):对每组 \(\bm y_i\),从已解码组 \(\hat{\bm y}_{<i}\) 和 \(\bm\phi\) 算参考上下文 \(\bm\psi_i\)、再算仿射参数 \((\bm\mu_i,\bm\sigma_i)=f_i^{\text{RD}}(\bm\psi_i)\),把 \(\bm y_i\) 仿射变换为 \(\bm y_i'=\bm\sigma_i^{-1}\odot(\bm y_i-\bm\mu_i)\)。
- VQ 量化:对 \(\bm y_i'\) 用 RVQ 量化得 \(\hat{\bm y}_i'\),再仿射逆变换回 \(\hat{\bm y}_i=\bm\sigma_i\odot\hat{\bm y}_i'+\bm\mu_i\)。
- 主解码器 \(g_s\):\(\hat{\bm y}\to\hat{\bm x}\)。
- 多率支持:所有 RVQ 共享同一 codebook 数集合 \(\mathcal{M}=\{1,2,3,4,5\}\),推理时选 \(m\in\mathcal{M}\) 给出不同 BPP:\(\text{BPP}=\frac{m}{f_y^2}\left(\frac{f_y^2}{f_z^2}\log K_{\bm z}+\frac{1}{N}\sum_i \log K_i\right)\)。
整个流水线没有任何熵编码器/解码器,所有索引以定长码送出,全部模块均可在 GPU 上一次性 batch 化执行。
关键设计¶
-
Unconstrained VQ as Maximum-Entropy Probabilistic Shaping:
- 功能:让定长编码的 VQ 索引序列 \(J\) 的熵贴近上界 \(n\log K\),使统计冗余 \(\Delta H=\frac{n\log K-H(J)}{n\log K}\to 0\)。
- 核心思路:训练时不施加任何率约束,只用 codebook commitment + 更新 loss + 重建损失 (L1 + LPIPS + PatchGAN),仅约束量化误差不强制索引分布。Proposition 3.1 用反证法证明:在 \(R=\log K\) 的定长预算下,任何 distortion-optimal 的 \(Q^*\) 一定满足 \(\Delta H=0\);Gersho 1979 的高率公式给出弱版本 \(p_J(j)\propto p_Y(\bm c_j)^{2/(C+2)}\),C=8 时 \(\Delta H\le 5\%\)。
- 设计动机:经验上 VQ-VAE / DAC 训练收敛后索引分布本就接近均匀,本文把这一现象升格为定理,说明用足够大的 codebook + 端到端重建损失,VQ 索引序列理论上不再需要熵编码——这是去掉熵编码的合法性根基。
-
Representation-Domain Decorrelation 而非 Probability-Domain Context Modeling:
- 功能:在不预测条件概率分布、不调用熵编码的前提下,去掉 latent 组间相关性。
- 核心思路:传统 LIC 用 context model \(f_i^{\text{CM}}\) 输出条件分布参数 \((\bm\mu_i,\bm\sigma_i)\),再让熵编码用 \(P_{\hat Y_i\mid\hat Y_{<i}}(\cdot;\bm\mu_i,\bm\sigma_i)\) 压;EF-LIC 直接在表征域用同样的 \((\bm\mu_i,\bm\sigma_i)\) 做仿射变换 \(\bm y_i'=\bm\sigma_i^{-1}\odot(\bm y_i-\bm\mu_i)\),把"用上下文预测概率"换成"用上下文白化潜变量"。Theorem 3.5 证明:当 codebook 足够大、\(\varepsilon\in(0,1)\) 任取,存在实现使得定长预算 \(R'=R/(1-\varepsilon)\) 下 \(D_X^{\text{RD}}(R')\le D_X^{\text{CM}}(R)\),即用稍大码率换 R–D 上界吻合。
- 设计动机:把"context modeling"从概率域搬到表征域后,整个流水线变成纯张量算子,可一次 forward batch 完成,无需 CPU-GPU 之间反复传 logits/概率。这是 EF-LIC 速度暴涨的真正来源。
-
Residual VQ + 共享多码本配置实现单模型多率:
- 功能:单一模型支持 5 个码率点,运行时挑 \(m\in\mathcal{M}\) 即可。
- 核心思路:把所有量化器 \(Q_{\bm z},\{Q_i^{\text{RD}}\}\) 都实现为 Residual VQ,每个 RVQ 包含 \(m\) 个 codebook;训练时对 \(\mathcal{M}=\{1,...,5\}\) 中每个 \(m\) 都算一遍重建损失并平均 (Eq. 8)。codebook 大小按层递减 \(K_1{=}1024,K_2{=}512,K_3{=}256,K_4{=}128,K_{\bm z}{=}1024\),自然形成 coarse-to-fine 的多码率梯度。
- 设计动机:多率部署对实际编解码器至关重要,RVQ 的 "可堆叠码本"结构让 multi-rate 训练几乎零额外参数,且推理时切换码率不需要换 checkpoint。
损失函数 / 训练策略¶
\(\mathcal{L}=\frac{1}{|\mathcal{M}|}\sum_{m\in\mathcal{M}}\big(\|\bm x-\hat{\bm x}_m\|_1+\lambda_{\text{per}}\mathcal{L}_{\text{per}}+\lambda_{\text{adv}}\mathcal{L}_{\text{adv}}+\lambda_{\text{cb}}\mathcal{L}_{\text{cb}}^m\big)\),其中 \(\mathcal{L}_{\text{per}}\) 用 VGG-LPIPS、\(\mathcal{L}_{\text{adv}}\) 用 adaptive PatchGAN、\(\mathcal{L}_{\text{cb}}\) 是 VQ-VAE 的 commitment + codebook 更新。ImageNet 1% 子集每 epoch 重采,256×256 随机裁剪,Adam \((\beta_1,\beta_2)=(0.5,0.9)\),batch 16,2M iter,lr \(10^{-4}\to 10^{-5}\)@1.5M,单卡 A100、峰值显存 ~10.5 GB。
实验关键数据¶
主实验(BD-rate vs. MS-ILLM,LPIPS,越负越好)¶
| 方法 | Enc. (ms) | Dec. (ms) | Params (M) | Kodak | DIV2K |
|---|---|---|---|---|---|
| VVC (VTM-23.10) | >9999 | 150.30 | — | +313.84% | +285.10% |
| HiFiC | 526.51 | 1408.60 | 181.6 | +45.82% | +46.36% |
| MS-ILLM | 165.38 | 147.79 | 181.4 | 0.00% | 0.00% |
| DiffEIC | 210.18 | 4661.74 | 1379.5 | −37.71% | −15.76% |
| OSCAR (diffusion, no EC) | 53.04 | 167.56 | 1009.3 | −37.31% | −14.51% |
| RDEIC | 157.25 | 426.68 | 1380.3 | −52.08% | −35.70% |
| EF-LIC-s | 9.94 | 6.26 | 11.51 | −55.38% | −47.36% |
| EF-LIC | 17.62 | 13.72 | 35.74 | −67.86% | −62.33% |
EF-LIC 在 Kodak / Tecnick / DIV2K / CLIC2020 四个基准上 BD-rate 全面最优;EF-LIC-s 在小 10 倍参数量下仍超过 RDEIC。
消融(Kodak / LPIPS / 1M iter)¶
| 配置 | BD-rate | ΔFLOPs | Enc. (ms) | Dec. (ms) |
|---|---|---|---|---|
| VQ baseline (无 decorr) | 0.00% | 0.00% | 5.51 | 7.06 |
| VQ + EC | −14.73% | +4.30% | 362.07 | 300.83 |
| UQ + EC(典型 LIC) | −20.73% | +7.53% | 63.12 | 71.72 |
| EF-LIC | −22.20% | +7.54% | 17.62 | 13.72 |
| EF-LIC-s | −10.76% | −56.30% | 9.94 | 6.26 |
per-module 运行时分解:UQ+EC 的熵编码单独占 108.60 ms(解码 71.72 ms 的绝大头),VQ+EC 更夸张到 507.89 ms;EF-LIC 完全跳过这一段。
关键发现¶
- EF-LIC 的 R–D 甚至略好于其熵编码变体 UQ+EC(−22.20% vs −20.73%),同时编码快 3.6×、解码快 5.2×,验证 Theorem 3.5 的"无 EC 不掉点"理论确实可达。
- 熵编码就是延迟瓶颈:VQ+EC 的 EC 模块占总解码时间 96.7%(507.89/525.09),去掉它解码立刻从 525 ms 掉到 12.5 ms。
- representation-domain 重参数化贡献 22.2% BD-rate:仅在 VQ baseline 上加 RD 模块(不加熵编码),码率降幅与 UQ+EC 等价,说明 affine 白化和概率域 context modeling 效果对等。
- EF-LIC-s 显示降幅来自去相关本身而非算力:把 EF-LIC-s 砍到与 VQ baseline 同等解码延迟(6.26 vs 7.06 ms)仍能多省 10.76%,排除"加算力换性能"嫌疑。
亮点与洞察¶
- 把熵编码这个"必备"模块第一次从理论上拆掉:以前业界默认"无熵编码 = 性能差",本文用 Proposition 3.1 + Theorem 3.5 给出干净证明——只要 codebook 够大且训练充分,定长 VQ 索引的码率上界可以无损逼近熵编码下界,重新定义了 LIC 的可能性边界。
- 概率域 ↔ 表征域的对偶非常优雅:传统 context model 把 \((\bm\mu,\bm\sigma)\) 用作 likelihood 参数喂熵编码;EF-LIC 把同一对 \((\bm\mu,\bm\sigma)\) 用作仿射白化参数喂 VQ,用相同的 context network 产生等价的去相关效果,但流水线从串行变并行。这种"把概率建模变成表征变换"的思路可迁移到 audio/video codec。
- 小模型也能打爆扩散模型:EF-LIC 35.7M 参数全面碾压 1380M 的 RDEIC、1009M 的 OSCAR,说明无熵编码瓶颈后编码-解码不对称的设计预算可以重新分配给主编解码器/上下文,而不是堆生成器。
- 代码即时部署性极强:所有模块都是 conv / attention / vector-quantize,无 CPU bridge、无 rANS 库依赖,端到端在单卡 A100 上 17.6/13.7 ms 完成 768×512 编解码,是实时视频/低延迟流场景的强候选。
局限与展望¶
- 评估完全偏向 perceptual metric (LPIPS/DISTS),PSNR/MS-SSIM 上的表现未在主表呈现,对于需要像素精度的医学/科学影像应用,本方案的优势可能缩水。
- 理论 Theorem 3.5 依赖 "\(K\) 足够大且 \(e^{\text{RD}}, d^{\text{RD}}, Q^{\text{RD}}\) 表达力足够",对小 codebook、有限层数 transformer 下的实际 gap 缺乏量化。
- VQ 失败案例(index collapse、codebook 死代码)在论文中未深入讨论,工程上是已知风险点,尤其是 RVQ 高残差层级。
- 论文只在 image 上验证,video / audio等具有时间维度的更高维 latent 是否也满足"unconstrained VQ → \(\Delta H \to 0\)"的最大熵假设,需要进一步检验。
- 没有讨论位流抗错性,熵编码的 rANS 实现至少给出明确的字节流;定长 VQ 索引序列在信道丢包/比特错误下的退化曲线缺失。
相关工作与启发¶
- vs MS-ILLM / HiFiC:传统 generative LIC 用 GAN 改善视觉质量但都依赖熵编码,EF-LIC 在保留 perceptual 优势的同时省掉 EC,BD-rate 进一步好 50%+。
- vs OSCAR / DiffEIC / RDEIC:扩散类方法虽然也能"绕过熵编码",但要么靠 INR、要么靠多步扩散,推理 100×–1000× 慢于 EF-LIC,参数量大一个量级。
- vs Control-GIC / Mao 2024 等 VQ-GAN 类 LIC:它们用 VQ 但忽略 latent 组间相关性(即 Definition 3.2 的 Independent Quantization),Proposition 3.3 直接给出"加 RD 永不变差"的理论保证,实验也验证 RD 带来 22.2% BD-rate。
- vs UQ + 上下文 + EC (LIC-HPCM / DCVC-RT):本文用 affine 重参数化在表征域复刻 EC 的功效,跳过 CPU-GPU 切换;启发是任何"GPU 推理时被 CPU 熵编码卡脖子"的 codec 都可考虑同样思路。
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ 第一次给"无熵编码 LIC 不掉性能"做出干净的信息论证明并落地到 SOTA 模型,研究范式级别的贡献。
- 实验充分度: ⭐⭐⭐⭐⭐ 4 个标准基准 + LPIPS/DISTS 双指标 + 充分消融(VQ / VQ+EC / UQ+EC / EF-LIC / EF-LIC-s)+ per-module 计时拆解。
- 写作质量: ⭐⭐⭐⭐⭐ 理论 (Prop 3.1, 3.3, Theorem 3.5) 与实验对位清晰,三个核心 claim 都有对应实验验证。
- 价值: ⭐⭐⭐⭐⭐ 工业可用,35M 参数、17 ms 编码、13 ms 解码、67% 码率收益,直接威胁现有 LIC 部署管线。