ESC
输入关键词搜索文章
目录

CDC:把扩散模型塞进图像压缩解码器

Lossy Image Compression with Conditional Diffusion Models 深度解读
content latent 负责传输,texture latent 现场合成:生成式压缩的一条关键路线
2024arXiv v8
17主实验解码步
16评估指标
4测试集
Part 1 · 引言
压缩不只是“还原”,也是“合理生成”

传统图像压缩最朴素的目标,是让解码图像尽量接近原图;学习式压缩把这个目标写成 rate-distortion tradeoff:一边压低比特率,一边减少 MSE、MAE、PSNR 意义上的失真。CDC 这篇论文的切入点很直接:如果人眼更在意“看起来像真实图片”,而不只是逐像素对齐,那么压缩解码器是否应该从确定性的 VAE/Gaussian decoder,换成更会生成细节的条件扩散模型?#Yang and Mandt, 2024

这篇论文的完整题目是 Lossy Image Compression with Conditional Diffusion Models,作者 Ruihan Yang 和 Stephan Mandt。它仍然站在 transform coding 的经典框架里:编码器把图像映射到 latent space,latent 被量化并熵编码;解码端根据 latent 重建图像。真正改变的是 decoder:它不再一次性输出一个平均化的图像,而是以传输来的 content latent 为条件,运行一个条件扩散反向过程,现场合成 texture variables。#Yang and Mandt, 2024

CDC 压缩架构总览
图 1:CDC 总览。比特流只保存内容 latent,纹理变量在解码端由条件扩散过程合成。(来源:Yang and Mandt, Fig. 1)
一句话概括:CDC 把“哪些内容必须传输”和“哪些纹理可以生成”拆开了:前者交给熵编码 latent,后者交给扩散模型。
Part 2 · 问题剖析
VAE 压缩为什么容易“糊”

现代学习式图像压缩常用 hierarchical VAE / hyperprior 架构:encoder 产生 latent,hyperprior 估计 latent 分布并用于算术编码,decoder 重建图像。Ballé 的 scale hyperprior 和 Minnen 的 joint autoregressive-hierarchical prior 基本奠定了这条路线的骨架。#Ballé et al., 2018 #Minnen et al., 2018

问题在于,这类模型为了优化 MSE 或 MAE,decoder 往往学习条件均值。条件均值在不确定区域会自然地做“平均”:树叶、毛发、鸟眼周围的细纹理、墙面颗粒,都可能变成更平滑但更安全的重建结果。论文把这个现象和 VAE decoder 的 mode averaging 联系起来,并认为更强的条件生成模型可以缓解低码率下的过度平滑。#Yang and Mandt, 2024

三个目标的三角关系

Rate 是每个像素平均要花多少 bit;Distortion 是重建图和原图在 PSNR、MS-SSIM 等意义上的距离;Perception 是图像是否像真实自然图像,常用 FID、LPIPS、DISTS 等指标近似。Blau 和 Michaeli 证明,感知质量和失真之间存在基本张力:不能在固定架构和分布下同时任意做到最优。#Blau and Michaeli, 2019

CDC 的核心 insight 是:压缩不必把所有细节都传过去。全局结构、物体身份、布局、颜色等“内容”信息必须保存在 latent 里;但很多高频纹理并不需要逐像素传输,只要生成出来的纹理在视觉上合理即可。这样,解码器就从“确定性复原器”变成了“受内容约束的生成器”。#Yang and Mandt, 2024

Part 3 · 模型结构与创新
Content latent 传输,Texture latent 生成

CDC 的概率模型可以写成:

$$p(x_{0:N}, z)=p(x_{0:N}\mid z)p(z)$$

这里的 $z$ 是要被量化和熵编码的 content latent;$x_{1:N}$ 是扩散过程里的 texture variables,不进入 bitstream,而是在解码端从噪声或零初始化出发逐步生成。换句话说,发送方和接收方共享模型参数,只真正传输 $\hat z$#Yang and Mandt, 2024

graph LR
  A[原图 x0] --> B[Encoder]
  B --> C[量化 content latent z_hat]
  C --> D[Entropy coding bitstream]
  D --> E[Entropy decoding]
  E --> F[条件扩散解码器]
  G[texture variables x_N...x_1 现场合成] --> F
  F --> H[重建图 x_hat]

从 ELBO 到扩散失真项

普通 neural compression 常把训练目标写成 $\mathcal{D}+\lambda\mathcal{R}$,其中 distortion 来自重建误差,rate 来自 $-\log p(z)$。CDC 把 decoder 换成条件扩散模型后,用 diffusion model 的 variational upper bound 近似 $-\log p(x_0\mid z)$,于是得到一个由扩散模型诱导出来的新 distortion。论文再用 denoising score matching 简化训练:模型可以预测噪声 $\epsilon$,也可以直接预测干净图像 $x_0$,后者就是本文重点使用的 $\mathcal{X}$-prediction。#Ho et al., 2020 #Yang and Mandt, 2024

$$L_{upper}(x_0\mid z) \approx \mathbb{E}_{x_0,n,\epsilon}\frac{\alpha_n}{1-\alpha_n}\lVert x_0-\mathcal{X}_\theta(x_n,z,n/N_{train})\rVert^2$$
CDC 模型架构细节
图 2:CDC 的模型结构。编码端生成 content latent,扩散 U-Net 在多个尺度接收 conditioning。(来源:Yang and Mandt, Appendix Fig. architecture)

为什么 X-prediction 能加速

扩散模型常被批评“采样太慢”。CDC 的有趣发现是,在压缩场景里 $\mathcal{X}$-prediction 可以用很少的解码步得到可用质量。原因是它的目标很像 autoencoder:当噪声步很大时,$x_n$ 几乎没有信息,模型主要依赖 $z$ 重建整体内容;当噪声步较小时,$x_n$ 已经接近图像,模型用它继续细化纹理。论文主实验中,$\mathcal{X}$-prediction 使用 17 个解码步,而 $\epsilon$-prediction 的对比实验需要数百步。#Salimans and Ho, 2022 #Yang and Mandt, 2024

随机解码:把不可传输的细节“画回来”

解码时,CDC 可以让 $x_N=0$ 做确定性解码,也可以从 $x_N\sim\mathcal{N}(0,\gamma^2 I)$ 开始做随机解码。$\gamma$ 越大,模型越倾向于补出高频纹理;但纹理未必和原图逐像素一致,所以感知指标可能变好,MS-SSIM 等失真指标可能变差。论文在定性实验里发现 $\gamma=0.8$ 能获得较好的纹理观感。#Yang and Mandt, 2024

随机解码 ground truth
图 3:原图 crop,用于比较不同随机解码强度。(来源:Yang and Mandt, stochastic decoding ablation)
gamma=0 确定性解码
图 4:$\gamma=0$ 确定性解码,纹理更平滑,MS-SSIM=0.979,LPIPS=0.078。(来源:Yang and Mandt)
gamma=0.8 随机解码
图 5:$\gamma=0.8$ 随机解码,高频纹理更丰富,MS-SSIM=0.973,LPIPS=0.054。(来源:Yang and Mandt)
Part 4 · 训练方法
一个三方权衡的损失函数

CDC 的完整训练目标包含两部分:一个 compression loss,负责 diffusion reconstruction upper bound 和 bitrate;一个 perceptual loss,论文采用 LPIPS,并用 $\rho$ 控制它的权重。最终目标可以理解为:

$$L=\rho L_p+(1-\rho)L_c$$

$\rho=0$ 时,模型更像传统 rate-distortion codec,distortion 指标更稳;当 $\rho=0.9$ 时,模型更重视感知质量,FID、LPIPS 等指标更有优势。这个设计让 CDC 不只是一个模型,而是一个可调旋钮:根据业务场景选择“更像原图”还是“更像自然图”。#Yang and Mandt, 2024

项目论文设置含义
训练集Vimeo-90k,随机取帧并裁剪到 256×256用自然视频帧训练图像压缩模型
warm-up$\lambda=10^{-5}$,约 500k steps先稳定学习基本重建
主训练再训练约 1M steps对齐目标 bitrate
优化器Adam,batch size 4小 batch 长训练
学习率$5\times10^{-5}$ 起,每 100k steps 衰减 20%,最低 $2\times10^{-5}$缓慢收敛
扩散步数$\epsilon$ 模型 20,000;$\mathcal{X}$ 模型 8,193两种 parameterization 分开训练

代码如何对应论文

官方仓库把实现拆成 epsilonparamxparam 两套。xparam/modules/compress_modules.py 中的 ResnetCompressor 对应 content encoder、hyper encoder/decoder 和 bpp 计算;xparam/modules/denoising_diffusion.py 中的 GaussianDiffusion 负责 beta schedule、DDIM sampling、pred_mode="x" 以及 compressxparam/train.py 组装 ResnetCompressorUnetGaussianDiffusion,并暴露 --beta--sample_steps--aux_weight 等训练控制项。#Yang and Mandt GitHub, 2024

读代码时的抓手

先看 compress_modules.py 理解哪些 latent 真正产生 bpp,再看 denoising_diffusion.pyset_sample_scheduleddim,就能把“少步采样”和“随机解码”对应到代码路径。

Part 5 · 实验验证
CDC 到底赢在哪里

论文在 Kodak、Tecnick、DIV2K、COCO2017 四个测试集上评估,共覆盖 16 个指标。主文展示 8 个常用指标,并把指标分为两类:PSNR、SSIM、MS-SSIM、FSIM 等更偏 distortion;FID、LPIPS、DISTS、PieAPP 等更偏 perceptual realism。FID 计算时,作者遵循 HiFiC 的做法,把图像切成 256×256 non-overlapping patches。#Yang and Mandt, 2024 #Mentzer et al., 2020

模型/设置强项代价论文结论
CDC, $\rho=0$, deterministicFSIM、SSIM、MS-SSIM 等 distortion 指标更稳感知纹理较保守接近强 VAE baseline,但 PSNR 不占优
CDC, $\rho=0.9$, stochasticFID 等感知指标突出失真指标变差三到四个感知指标中表现最强
HiFiCLPIPS 很强,低码率视觉质量好GAN 训练复杂,部分指标不稳定CDC 的主要感知 baseline
DGML / NSC / MS-Hyperrate-distortion 路线成熟更容易平滑PSNR 等传统指标仍有优势

消融实验给出了两个关键信号。第一,增加 $\mathcal{X}$-prediction 的解码步数,对随机解码下的 perceptual quality 更有帮助;但确定性解码的 distortion 并不会随着更多步数显著提升。第二,调大 $\gamma$ 会增加生成纹理,LPIPS 先变好,但过大时感知质量和失真都会恶化;论文实验中 $\gamma=0.8$ 是比较合适的点。#Yang and Mandt, 2024

效率:能用,但还不轻

附录报告了模型规模和解码时间:CDC 有 53.8M 参数;1 step 解码约 0.015 秒,17 steps 解码约 1.04 秒;相比之下,HiFiC 有 181.47M 参数但解码约 0.0051 秒,MS-hyper 和 DGML 更快。这个结果很微妙:CDC 参数量不算夸张,但 iterative denoising 仍然是部署瓶颈。#Yang and Mandt, 2024

低码率生成式压缩的风险

论文明确提醒:感知优先的神经压缩可能在低码率下 hallucinate 细节。对人脸、医学影像、证据图像等场景,这不是“视觉更好”的问题,而是可信度问题。#Yang and Mandt, 2024

Part 6 · 讨论与启发
这篇论文在生成式压缩地图上的位置

CDC 的历史位置很清楚:它不是抛弃 learned compression 的 transform coding,而是在这个框架里替换 decoder。相比 HiFiC 这类 GAN-based perceptual compression,CDC 用扩散模型获得更稳定的生成训练;相比传统 hyperprior/VAE codec,它承认某些纹理不必精确传输,而可以条件生成。#Mentzer et al., 2020 #Yang and Mandt, 2024

路线传输什么解码器主要问题
Hyperprior / VAE codeclatent 内容与细节都尽量编码确定性或简单概率 decoder低码率易平滑
HiFiC / GAN compressionlatent + adversarially realistic detailGAN decoder训练和指标稳定性
CDCcontent latentconditional diffusion decoder解码速度与 hallucination 风险

对后续研究,我认为这篇论文最有价值的不是“扩散一定适合压缩”,而是它提供了一个非常清晰的分工:bitstream 负责语义和结构,生成模型负责符合分布的细节。沿着这个方向,可以继续追问三个问题:第一,能否用 one-step diffusion、consistency model 或 distillation 把 17 steps 降到 1 step;第二,能否用更强 entropy model 降低 content latent 的码率;第三,能否给生成式细节加可信度标注,让用户知道哪些内容是传输来的,哪些是模型补出来的。

如果把图像压缩看成“信息预算管理”,CDC 的启发是:不是所有像素都同等值得传输。真正值得传输的是那些改变语义、结构和用户判断的内容;而视觉系统容忍的纹理不确定性,可以交给生成模型处理。这也是生成式压缩最迷人、也最危险的地方。

从工程角度看,CDC 还提示我们不要只盯着单一指标做模型选择。面向图库预览、社交媒体缩略图、纹理类自然图像时,FID/LPIPS 改善可能比 PSNR 更接近用户感知;但面向档案保存、医学诊断、证据留存时,随机生成细节反而需要被严格限制。一个实际系统也许应该同时提供两种解码模式:默认确定性重建保证可追溯,在用户明确选择“视觉增强”时才启用随机纹理生成,并在界面上标明生成式细节的存在。这个边界,是所有生成式压缩系统上线前都必须讲清楚的产品契约。

参考来源

  • Yang, R. and Mandt, S. (2024). Lossy Image Compression with Conditional Diffusion Models. arXiv:2209.06950. arXiv
  • Yang, R. (2024). CDC_compression official code repository. GitHub
  • Ballé, J. et al. (2018). Variational Image Compression with a Scale Hyperprior. ICLR. arXiv
  • Minnen, D. et al. (2018). Joint Autoregressive and Hierarchical Priors for Learned Image Compression. NeurIPS. arXiv
  • Mentzer, F. et al. (2020). High-Fidelity Generative Image Compression. NeurIPS. arXiv
  • Blau, Y. and Michaeli, T. (2019). Rethinking Lossy Compression: The Rate-Distortion-Perception Tradeoff. ICML. arXiv
  • Ho, J. et al. (2020). Denoising Diffusion Probabilistic Models. NeurIPS. arXiv
  • Salimans, T. and Ho, J. (2022). Progressive Distillation for Fast Sampling of Diffusion Models. ICLR. arXiv