EF-LIC
学习式图像压缩 (Learned Image Compression, LIC) 近年来取得了显著进展。2018 年,Ballé 等人 [Ballé et al., 2018] 将变分自编码器 (VAE) 引入图像压缩,开创了端到端优化的范式。随后,Minnen 等人 [Minnen et al., 2018] 引入自回归先验,进一步提升了压缩效率。生成式压缩方法如 HiFiC [Mentzer et al., 2020] 和 MS-ILLM [Muckley et al., 2023] 则通过对抗训练优化感知质量,在视觉效果上超越了传统编解码器。
然而,几乎所有 LIC 系统都依赖熵编码(如 rANS [Duda, 2013])将量化后的 latent 转换为紧凑比特流。熵编码的核心作用是利用 latent 的非均匀分布特性:出现概率高的值用短码字,概率低的用长码字,从而消除统计冗余。同时,上下文模型 [Minnen et al., 2018] 通过自回归方式捕捉 latent 间的依赖关系,消除相关性冗余。
问题在于,熵编码的串行控制流难以并行化。rANS 的编解码过程必须逐符号进行,每个符号的编码依赖前一个符号的状态,这种串行依赖使其无法充分利用 GPU 的并行计算能力。实际系统中,熵编码通常在 CPU 上执行,单图编解码可超过 100ms [Cao et al., 2026],超过了 LIC 流水线中其他所有模块的总和。这成为实时应用(如视频通话、云游戏)的主要瓶颈。
典型学习式图像压缩 (LIC) 的核心流水线为:分析变换 → 量化 → 熵编码 → 合成变换。其中熵编码(如 rANS [Duda, 2013])将量化后的非均匀分布 latent 转换为紧凑比特流,但其串行控制流难以并行化,通常必须在 CPU 上执行,成为端到端延迟的主要瓶颈。rANS 单图可超 100ms [Cao et al., 2026],超过其他模块总和。
去除或简化熵编码的先驱方法要么性能仅达 JPEG 级别(COIN [Dupont et al., 2021]),要么推理成本极高(OSCAR [Guo et al., 2025])。核心矛盾在于:熵编码 = 压缩效率 vs 无熵编码 = 低延迟,二者似乎不可兼得。
EF-LIC (Entropy-Coding Free Learned Image Compression) 通过两把钥匙打破上述矛盾:
- 无约束向量量化 (Unconstrained VQ):从信息论上证明,当 VQ 逼近最小重建失真时,其索引分布自然趋近最大熵边界(均匀分布),从而消除统计冗余。这是"让分布本身接近均匀"的范式转变,替代了"用熵编码压缩非均匀分布"。
直觉类比:想象你有一堆不同大小的积木要放进固定格子的收纳盒。如果积木大小差异很大(非均匀分布),有些格子会空着,有些会挤不下。但如果你把积木重新塑形,让每个格子刚好装一个(最优失真量化),那么每个格子被占用的概率就趋近均匀--这就是"最大熵边界"。 - 表示域去相关 (Representation-Domain Decorrelation):通过上下文条件仿射变换直接重参数化 latents,消除组间相关性冗余。不同于传统 LIC 在概率域预测条件分布,EF-LIC 直接在表示域做变换。
直觉类比:传统 LIC 的上下文模型像一个"预测器":它猜下一个 latent 可能是什么值,然后用熵编码压缩"猜错的部分"。EF-LIC 换了个思路:不猜了,直接把 latent 变换成彼此独立的形式,然后用固定长度编码。就像把一串相互依赖的密码(知道前几个就能猜出后面的)打散成一串独立的随机数。
graph TD
subgraph 传统LIC
A1[输入图像] --> B1[分析变换]
B1 --> C1[量化]
C1 --> D1[上下文模型]
D1 --> E1[概率估计]
E1 --> F1[熵编码]
F1 --> G1[比特流]
end
subgraph EF-LIC
A2[输入图像] --> B2[分析变换]
B2 --> C2[RD去相关]
C2 --> D2[无约束VQ]
D2 --> E2[固定长度索引]
E2 --> F2[直接存储]
end
论文进一步给出三个定理,构成完整的理论框架:(1) 最优 VQ 索引熵 $H(J^*) = R$;(2) RD 方案严格优于独立量化 IQ;(3) RD 方案可以以任意小的码率开销逼近带熵编码 LIC 的 R-D 性能。
Theorem 3.1 (最大熵概率整形) [Cao et al., 2026]:对于码本大小 $K$、目标码率 $R = \log K$ 的无约束 VQ,任何最优失真量化器 $Q^*$ 满足 $H(J^*) = R = \log K$。
证明采用反证法:若 $H(J^*) < R$,取 $R' \in (H(J^*), R)$,则 $Q^*$ 也是 $D_X(R')$ 的可行解,故 $D_X(R') \leq D_X(R)$;但 $R' < R$ 时 R-D 函数严格递减,$D_X(R') > D_X(R)$,矛盾。直觉上,最优量化器会充分利用所有码率预算,任何非均匀性都意味着码率浪费。
Theorem 3.3 (RD 严格优于 IQ) [Cao et al., 2026]:若存在组 $i$ 使 $I(\hat{Y}_i; S) > 0$,则 $D_X^{RD}(R) < D_X^{IQ}(R)$。
IQ(独立量化)是 RD 的特例(恒等映射),当侧信息有意义时,利用数据处理不等式和条件 R-D 函数的严格性可证严格改善。
Theorem 3.5 (RD 逼近 CM 上界) [Cao et al., 2026]:对任意 $\varepsilon \in (0,1)$,存在固定长度码率 $R' = R/(1-\varepsilon)$ 的 RD 方案,使 $\Delta_{\bar{H}} \leq \varepsilon$ 且 $D_X^{RD}(R') \leq D_X^{CM}(R)$。
构造性证明:通过条件概率积分变换 (CPIT) 从 $Y_i | (Z_i, S_i)$ 中提取均匀随机变量 $U_i \sim \text{Unif}[0,1]$,将 $(S_i, B_i)$ 单射编码为固定长度索引 $J_{RD}^i$,精确恢复 CM 的重建。核心洞察:概率域条件概率建模和表示域重参数化在理论上可达相同压缩效果。
输入图像 $x \in \mathbb{R}^{3 \times H \times W}$ 经过以下处理:
graph LR
A[输入图像 x] --> B[分析变换 g_a]
B --> C[y: latent]
C --> D[超先验分支 h_a]
D --> E[z → Q_z → φ]
C --> F[分组 y1,y2,y3,y4]
E --> G[上下文条件仿射变换]
F --> G
G --> H[无约束 VQ]
H --> I[固定长度索引 J]
I --> J[直接存储]
J --> K[解码器 g_s]
K --> L[重建图像 x̂]
- 分析变换 $g_a$(基于 DCVC-RT 的 DC Block):$y = g_a(x)$,空间下采样 $f_y = 16$,通道 $C_y = 256$。
- 超先验分支:$z = h_a(y)$,下采样 $f_z = 64$,$\hat{z} = Q_z(z)$(RVQ 量化),$\phi = h_s(\hat{z})$。
- 表示域去相关 (RD):将 $y$ 分为 $N=4$ 组 $(y_1, y_2, y_3, y_4)$(quadtree-based)。对第 $i$ 组:
- 参考上下文:$\psi_i = \text{concat}(\hat{y}_{<i}, \phi)$
- 上下文提取器:$f_{RD}^i(\psi_i) \to (\mu_i, \sigma_i)$
- 仿射编码:$y'_i = (y_i - \mu_i) \odot \sigma_i^{-1}$
- VQ 量化:$\hat{y}'_i = Q_{RD}^i(y'_i)$
- 仿射解码:$\hat{y}_i = \hat{y}'_i \odot \sigma_i + \mu_i$
- 残差向量量化 (RVQ):每个量化器使用 $m \in \{1,2,3,4,5\}$ 个 codebook,码本尺寸 $[K_1, K_2, K_3, K_4, K_z] = [1024, 512, 256, 128, 1024]$。非对称设计基于核心发现:后组 latent 信息量递减。
- 合成变换 $g_s$:$\hat{x} = g_s(\hat{y})$
Bitstream 格式极为简洁:Header(H, W, q) + flatten($Q_z$) + flatten($Q_1$) + ... + flatten($Q_4$)。固定长度,无串行依赖,打包耗时 < 1ms。
在 Kodak 数据集上以 LPIPS 为指标的 BD-rate(锚点 MS-ILLM [Muckley et al., 2023]):
| 方法 | BD-rate | 编码 (ms) | 解码 (ms) | FLOPs (G) | Params (M) |
|---|---|---|---|---|---|
| VTM-23.10 | +313.84% | >10s | 150.30 | - | - |
| HiFiC | +45.82% | 526.51 | 1408.60 | 599.51 | 181.60 |
| MS-ILLM | 0.00% | 165.38 | 147.79 | 599.52 | 181.40 |
| OSCAR | -37.31% | 53.04 | 167.56 | 6485.61 | 1009.30 |
| RDEIC | -52.08% | 157.25 | 426.68 | 7767.46 | 1380.27 |
| EF-LIC-s | -55.38% | 9.94 | 6.26 | 179.19 | 11.51 |
| EF-LIC | -67.86% | 17.62 | 13.72 | 279.61 | 35.74 |
EF-LIC 是唯一在 Kodak、Tecnick、DIV2K、CLIC2020 四个数据集上均优于 MS-ILLM 的方法 [Cao et al., 2026]。
为什么 EF-LIC 在感知指标上表现如此突出? 这与 RVQ 的优化目标有关。EF-LIC 的损失函数直接优化 LPIPS(感知失真)而非像素级 MSE,因此在感知质量上优势明显。但在 PSNR 等像素级指标上,EF-LIC 的表现相对较弱,这也是作者承认的局限性之一。
延迟优势的来源:EF-LIC 的低延迟不仅仅是因为去掉了熵编码。固定长度编码带来了三个关键优势:(1) 零串行依赖,可以完全并行化;(2) 无需构建和查询累积分布函数 (CDF);(3) 索引可以直接拼接,打包耗时 < 1ms。这些优势使得 EF-LIC 在 GPU 上实现了真正的端到端并行推理。
分辨率扩展:
| 分辨率 | EF-LIC 解码 | MS-ILLM 解码 | 加速比 | 显存 |
|---|---|---|---|---|
| 512×768 | 13.72 ms | 147.79 ms | ~10.8× | 0.25 GB |
| 1080×1920 | 35.62 ms | 379.01 ms | ~10.6× | 0.65 GB |
| 1440×2560 | 55.50 ms | 601.18 ms | ~10.8× | 1.04 GB |
| 2160×3840 | 116.28 ms | 1613.82 ms | ~13.9× | 2.10 GB |
| 变体 | BD-rate (vs VQ) | 编码 (ms) | 解码 (ms) |
|---|---|---|---|
| VQ (无去相关) | 0.00% | 5.51 | 7.06 |
| VQ+EC | -14.73% | 362.07 | 300.83 |
| UQ+EC (典型 LIC) | -20.73% | 63.12 | 71.72 |
| EF-LIC | -22.20% | 17.62 | 13.72 |
关键发现 [Cao et al., 2026]:
- 加入 Hyperprior:-9.37%
- 加入 Autoregressive transform(均等码本):-16.72%
- 非对称码本 [10,9,8,7,10]:-28.60%(最佳)
- VQ+EC 失败:VQ 硬量化阻断梯度,context model 优化不充分;且 EC 时间极长(507.89ms)
运行时分解:EF-LIC 的 VQ 时间 (9.16ms) 虽比 UQ (0.01ms) 长,但完全消除了 EC 时间。Autoregressive 模块仅 4.38ms,比 EC 低 1~2 个数量级。
与生成式编解码器对比:EF-LIC 在参数量(35.74M vs OneDC 1406M)和 FLOPs(279G vs 7142G)上少一个数量级以上,同时 BD-rate 更优(-3.33% vs 0.00%)。
| 参数 | 值 |
|---|---|
| 优化器 | Adam ($\beta_1=0.5, \beta_2=0.9$) |
| 初始学习率 | $10^{-4}$ → $10^{-5}$ (1.5M steps) |
| Batch size | 16 |
| 总迭代 | 2M (主实验); 1M (消融) |
| 数据集 | ImageNet(每 epoch 采样 1%) |
| 训练硬件 | 1× NVIDIA A100 (~10.5 GB 显存) |
损失函数 [Cao et al., 2026]:$\mathcal{L} = \sum_{m \in \mathcal{M}} [\lambda_{per} \cdot \mathcal{L}_{per}^m + \lambda_{adv} \cdot \mathcal{L}_{adv}^m + \lambda_{cb} \cdot \mathcal{L}_{cb}^m]$,其中 $\mathcal{L}_{per}$ 为 LPIPS,$\mathcal{L}_{adv}$ 为 adaptive PatchGAN,$\mathcal{L}_{cb}$ 为 commitment + codebook update。关键区别:无显式码率项 $R$。
工程技巧:
- 码本通过梯度下降直接优化(非 EMA),是实现最大熵的关键前提
- 仿射变换确保编解码对称性和高效 GPU 并行
- 非对称码本:后组 latent 信息量递减,最佳配置 [1024, 512, 256, 128, 1024]
- 零串行依赖打包:索引按预定义顺序拼接,编解码均 < 1ms
- 全流程 GPU 友好,可导出 ONNX/TorchScript,已部署到嵌入式设备和智能手机
- 消除 GPU-CPU 混合执行的数值同步问题(传统 LIC 的 CDF 精度失配可导致解码失败)
- 码本尺寸手工设计:未实现自动搜索或学习
- RVQ 运行时间仍不可忽略:高分辨率时占编码时间主要比例
- PSNR 性能较弱:主要面向感知质量(LPIPS/DISTS)优化
- 4 组 quadtree 分组仍有顺序依赖:并行度受限
- 仅针对静态图像:未扩展至视频时域预测
Negative Results [Cao et al., 2026]:VQ+EC(对 VQ 索引做熵编码)的 BD-rate 仅 -14.73%,远不如 EF-LIC 的 -22.20%。原因是 VQ 硬量化阻断梯度,且对离散索引构建 CDF 的编码时间极长(507.89ms)。论文还发现 rANS 实际引入约 3.28% 额外 BD-rate 损失,几乎抵消了理论上的 3.42% 熵编码优势。
- 信息论视角的范式转变:与其优化熵编码的速度,不如从根本上消除对熵编码的需求。这一思路可推广到其他需要离散表示的生成任务 [Cao et al., 2026]。
- 表示域 vs 概率域:直接对表示做变换可能比预测条件概率更简洁高效。这种"跳过概率估计"的思路在实时系统中尤其有价值。
- 非对称资源分配:后组 latent 信息量递减的观察启发了非对称码本设计,这种"按需分配"的思想可推广到多层级特征压缩。
- 工程部署优势:去除熵编码不仅加速,还消除了 GPU-CPU 混合执行的复杂性,使模型可导出为单一计算图,大幅简化边缘部署。
- 理论与实践的精确对应:3.42% 熵差距与 rANS 实际引入的 ~3.28% 冗余几乎抵消,说明理论预测与实际工程损失高度吻合。
参考来源
- arXiv:2605.23323 - Efficient Learned Image Compression without Entropy Coding
- GitHub: SevenCTHU/EF-LIC (官方实现)
- Ballé et al., 2018 - Variational Image Compression with a Scale Hyperprior
- Minnen et al., 2018 - Joint Autoregressive and Hierarchical Priors
- van den Oord et al., 2017 - Neural Discrete Representation Learning (VQ-VAE)
- Muckley et al., 2023 - MS-ILLM
- Kumar et al., 2023 - High-Fidelity Audio Compression with Improved RVQGAN
- Cao et al., 2026 - ProGIC (前作)