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

DiffJSCC

Diffusion-Aided JSCC · arXiv 2024/2025
把无线图像传输的接收端改造成一个条件扩散生成器
2Stage
4Conditions
14×Fewer Symbols
56.7%FID Gain
Paper · 论文信息
这篇论文解决什么问题?

Diffusion-Aided Joint Source Channel Coding For High Realism Wireless Image Transmission(Yang, Liu, Wang, Kim)提出了 DiffJSCC:一个把 Deep JSCC 初始重建Stable Diffusion 条件生成 结合起来的无线图像传输框架。

传统 DeepJSCC 能避免 JPEG/BPG + LDPC 等分离式系统在低 SNR 下的 cliff effect,但它通常用 MSE、SSIM、MS-SSIM 优化,低码率下容易输出模糊图像。DiffJSCC 的出发点是 perception-distortion trade-off:像素保真和感知真实度不是同一个目标

一句话:DiffJSCC 把无线图像传输的接收端从“像素回归器”升级成“受信道条件控制的生成式先验解码器”。

论文链接:arXiv:2404.17736;代码:mingyuyng/DiffJSCC

Terms · 术语速查
读本文前你需要知道的概念
术语含义类比/例子
JSCC(联合信源信道编码)把图像压缩和信道纠错合并成一个端到端系统传统方式像先打包再贴快递单,JSCC 像直接在包裹上写地址
Deep JSCC用神经网络实现 JSCC,编码器把图像直接映射为复数信道符号编码器是一个“会抗噪的压缩器”
复数信道符号无线物理层的传输单位,每个符号是 I/Q 两路信号的数学表示 $y=a+jb$就像在二维平面上发一个点 $(a,b)$,复数只是方便的写法
CSI(信道状态信息)描述当前信道条件,包括 SNR $\gamma$ 和信道增益 $h$就像知道当前路况(堵车程度),可以据此调整行驶策略
SNR $\gamma$信噪比,信号功率与噪声功率的比值SNR 高 = 安静房间说话;SNR 低 = 演唱会现场说话
CBR $\rho$Channel Bandwidth Ratio,每个像素平均消耗多少信道符号$\rho$ 越小,压缩越激进,传输越快但重建越难
Cliff Effect(悬崖效应)传统系统 SNR 低于阈值后,质量断崖式下降就像考试 60 分及格,59 分和 1 分的效果一样差
MSE / PSNR像素级失真/保真度指标PSNR 高 = 每个像素都接近原图,但可能整体看起来模糊
LPIPS / FID感知质量指标,衡量“看起来真不真”LPIPS 低 = 人眼觉得像;FID 低 = 生成图像分布接近真实分布
Stable DiffusionLatent Diffusion Model,在 VAE latent 空间中做扩散去噪的生成模型就像一个“会画画的去噪器”:从纯噪声开始,逐步去噪出清晰图像
ControlNet给预训练扩散 UNet 增加可训练控制分支的架构就像给画家一个“参考图”,画家在参考图的约束下自由创作
Intermediate Guidance(中间引导)在扩散去噪过程中,把中间估计拉向初始重建 $\lambda$ 越大,画家越忠实于参考图;$\lambda=0$,画家完全自由发挥
DeepJSCC 为什么输出复数?无线通信的物理层传输单位是复数基带符号(I/Q 两路实信号的数学表示)。每个信道使用传一个复数 $y = a + jb$,实部和虚部分别对应同相和正交分量。DeepJSCC 编码器直接输出复数符号,是为了对接无线信道模型 $\hat{y} = hy + n$,避免额外的调制映射。代码实现中,CNN 输出前后两半通道,前半为实部、后半为虚部。
Background · 相关工作
从 DeepJSCC 到生成式 JSCC

传统无线图像传输一般是两段式:先用 JPEG/BPG 压缩,再用 LDPC/Polar 等信道编码纠错。它的问题是压缩码流对 bit error 极其敏感,一旦信道编码无法完全纠错,图像质量会断崖式下降。

DeepJSCC 用神经网络自编码器直接把图像映射到复数信道符号,把压缩和抗噪声合并成一个端到端学习问题。后续工作扩展出反馈、OFDM、MIMO、Swin Transformer、adaptive rate control 等方向。

但这些方法大多仍以 MSE/PSNR/MS-SSIM 为主目标。低码率下,MSE 最安全的输出常常是“平均化”的模糊图。GAN-JSCC 试图用 PatchGAN 改善纹理,但 GAN 在信道条件变化下训练不稳。Yilmaz et al. 的 zero-shot diffusion JSCC 用 DDNM 后处理 JSCC 初始重建,但条件单一,当初始重建严重失真时约束不足。

路线生成先验条件来源优点问题
DeepJSCC接收符号抗噪声,无 cliff effect低码率下模糊
DeepJSCC-advGAN图像特征纹理更锐训练不稳,FID 改善有限
Yilmaz et al.DDNM diffusion初始重建zero-shot 简洁条件单一
DiffJSCCStable Diffusion空间 + 文本 + CSI真实感强,下游语义更好推理重,可能 hallucinate
Method · 总体架构
两阶段:先粗重建,再条件生成

DiffJSCC 的 pipeline 很清晰:

  1. 发送端用 JSCC encoder 把图像编码为复数信道符号。
  2. 符号经过 AWGN 或 Rayleigh fading 信道。
  3. 接收端用 JSCC decoder 得到初始重建图像 \(\hat{x}\)
  4. \(\hat{x}\) 提取空间特征 \(f_v\) 和文本特征 \(f_t\)
  5. \(f_v,f_t,h,\gamma\) 组成条件集合,控制 Stable Diffusion 去噪生成最终图像。

关键点:扩散模型不是直接处理接收符号,也不是从加噪原图恢复。推理时它从纯高斯 latent 噪声开始采样,JSCC 初始重建只是作为 ControlNet 的 spatial hint 和 optional guidance target。

DiffJSCC framework overview
DiffJSCC 总体框架:JSCC 初始重建、多模态条件生成和条件 latent diffusion。来源:官方 GitHub 仓库。
Stage 1 · JSCC
Initial Deep JSCC Reconstruction

输入图像为 \(x\in\mathbb{R}^{C\times H\times W}\),JSCC encoder \(E_c\) 生成 \(K\) 个复数信道符号。传输率定义为:

$$\rho = \frac{K}{C\times H\times W}.$$

发送符号需要满足平均功率约束:

$$y = \sqrt{K\bar{P}}\frac{\tilde{y}}{\sqrt{\tilde{y}'\tilde{y}}}.$$

信道模型为:

$$\hat{y}=hy+n,\quad n\sim\mathcal{CN}(0,\sigma^2I_K).$$

其中 AWGN 下 \(h=1\),Rayleigh fading 下 \(h\) 是复数随机增益。SNR 为:

$$\gamma=\frac{\bar{P}\mathbb{E}[|h|^2]}{\sigma^2}.$$

接收端先均衡:

$$\tilde{y}=\frac{h^*}{|h|^2}\hat{y}.$$

然后解码:

$$y=E_c(x,h,\gamma),\quad \hat{x}=D_c(\hat{y},h,\gamma).$$

第一阶段仍用 MSE 训练:

$$\mathcal{L}_{JSCC}=\mathbb{E}_{x,h,n}\left[\lVert x-\hat{x}\rVert_2^2\right].$$
作用:这一阶段不追求最终真实感,而是给扩散模型提供一个内容大致对齐、空间结构可靠的初始锚点。
Stage 2 · Conditions
多模态条件:\(f_v, f_t, h, \gamma\)

DiffJSCC 不只把初始图像作为条件,而是构造一个多模态条件集合:

$$\bar{c}=\{f_v,f_t,h,\gamma\}.$$

空间条件来自 Stable Diffusion 的 VAE encoder:

$$f_v = E_{ldm}(\hat{x}),\quad f_v\in\mathbb{R}^{4\times H/8\times W/8}.$$

它提供布局、低频结构和物体位置,是 fidelity anchor。

文本条件由 BLIP2 对初始重建生成 caption,再经 CLIP text encoder 编码:

$$f_t=E_{clip}(E_{blip}(\hat{x})),\quad f_t\in\mathbb{R}^{77\times768}.$$

即使 \(\hat{x}\) 模糊,caption 往往还能抓住 lighthouse、house、parrot 等关键词,帮助扩散模型恢复物体级语义。

信道条件包括 SNR \(\gamma\) 和 channel gain \(h\)。它们告诉 denoiser 当前初始重建有多可信。低 SNR 时,模型应更多依赖生成先验和文本语义;高 SNR 时,可以更相信 \(\hat{x}\) 的细节。

Diffusion · 条件扩散
ControlNet 如何接管 Stable Diffusion

标准 latent diffusion 的前向加噪为:

$$z_t=\sqrt{\bar{\alpha}_t}z_0+\sqrt{1-\bar{\alpha}_t}\epsilon.$$

标准 LDM 噪声预测损失是:

$$\mathcal{L}_{ldm}=\mathbb{E}_{z_0,c,t,\epsilon}\left\lVert\epsilon-\epsilon_\theta(\sqrt{\bar{\alpha}_t}z_0+\sqrt{1-\bar{\alpha}_t}\epsilon,c,t)\right\rVert_2^2.$$

DiffJSCC 把条件 \(c\) 换成多模态信道条件 \(\bar{c}\)

$$\mathcal{L}_{diff}=\mathbb{E}_{z_0,\bar{c},t,\epsilon}\left\lVert\epsilon-\epsilon_\theta(\sqrt{\bar{\alpha}_t}z_0+\sqrt{1-\bar{\alpha}_t}\epsilon,\bar{c},t)\right\rVert_2^2.$$

实现上,论文冻结 Stable Diffusion 2.1-base 的主 UNet,训练一个 ControlNet 风格的控制模块。控制模块把当前 noisy latent \(z_t\) 和空间特征 \(f_v\) 拼接,把 SNR embedding 加到 diffusion time embedding 中,并把文本特征 \(f_t\) 作为 cross-attention 条件。

Guidance · 保真约束
Intermediate Guidance:在真实感和保真度之间调 λ

扩散模型可能生成“看起来真实但不是原图”的内容。为降低内容漂移,论文加入可选 intermediate guidance。先根据当前 \(z_t\) 估计 clean latent:

$$\tilde{z}_0=\frac{z_t-\sqrt{1-\bar{\alpha}_t}\epsilon_\theta(z_t,\bar{c},t)}{\sqrt{\bar{\alpha}_t}}.$$

再把它向空间条件 \(f_v\) 拉近:

$$\hat{z}_0=\tilde{z}_0-\frac{\lambda}{C_lH_lW_l}(\tilde{z}_0-f_v).$$

\(\lambda=0\) 时,模型自由生成,感知质量通常最好;当 \(\lambda\) 增大时,输出更贴近 JSCC 初始重建,PSNR/MS-SSIM 通常上升,但 LPIPS/FID 可能变差。CelebAHQ 实验显示,在存在 domain gap 时,适当增大 \(\lambda\) 可以抑制 artifact。

DiffJSCC CelebAHQ visualization results
CelebAHQ 人脸图像在极低码率和低 SNR 下的可视化结果。人脸场景也展示了 domain gap 与 intermediate guidance 的必要性。来源:官方 GitHub 仓库。
Code · 代码映射
仓库结构与推理数据流

代码已下载到本地:~/Org/perturbed-transmission/repos/DiffJSCC。核心文件如下:

文件对应模块作用
model/deepjscc_cnn.pyJSCC encoder/decoderCNN 版 JSCC,含复数信道、功率归一化、AWGN/Rayleigh
model/deepjscc_swin.pySwinJSCCSwin 版初始重建模型
model/cldm.pyControlLDM / ControlNet核心条件扩散实现
model/cond_fn.pyIntermediate guidanceMSEGuidance,采样时拉近初始重建
model/spaced_sampler.py采样器把 1000-step diffusion 压缩到指定 steps
inference_cldm.py推理入口串联 JSCC → BLIP2 → diffusion → metric

推理流程:输入图像先 resize 到 512 并 pad 到 64 的倍数;preprocess_model 固定 SNR 后执行 encode → channel simulation → decode 得到 img_init;BLIP2 从 img_init 生成 caption;CLIP 得到文本条件;SpacedSampler 从纯高斯 latent 开始采样;最后用 wavelet/adain 做颜色校正,再 crop/resize 回原图尺寸。

运行坑点:依赖较旧,要求 PyTorch 1.13.1 + CUDA 11.6;BLIP2-opt-2.7b 内存压力大;代码中部分 metric 仍有 .cuda() 调用,CPU/MPS 复现需要改。
Training · 训练设置
数据集、SNR 与训练超参数
用途数据集规模尺寸
通用图像训练OpenImages约 300,000 张随机 crop 256×256
通用图像测试Kodak24 张768×512
语义分割测试ADE20K val2000 张原文未统一说明
人脸训练CelebAHQ27,000 张512×512
人脸测试CelebAHQ3,000 张512×512

JSCC 第一阶段使用 Adam,初始学习率 \(10^{-3}\),余弦退火到 \(10^{-5}\),训练 100,000 iterations;通用图像 batch size 32,人脸 batch size 16。Control module 基于 Stable Diffusion 2.1-base,学习率 \(10^{-4}\),训练 25,000 iterations。论文称 control module batch size 16,但仓库 CLDM_OpenImage_train.yaml 中为 8,复现时需要核对。

通用图像 SNR 在 [0,14] dB 中采样;人脸场景论文描述为 [-5,5] dB。推理通常使用 50-step spaced DDPM 作为效率和质量的折中。

Experiments · 实验结果
低码率下的感知质量优势

论文使用 PSNR、MS-SSIM 衡量失真,用 LPIPS、FID 衡量感知质量,用 mIoU 衡量语义分割下游任务。

场景结果含义
Kodak, AWGN 1dB, ρ=1/384DiffJSCC FID=117.9;BPG+Capacity FID=165.4 且 ρ=0.037714× 更少符号,FID 仍好 28.7%
Kodak, ρ=0.0026FID 相比 DeepJSCC 提升 64.3%,相比 BPG+Capacity 提升 70.7%极低码率下生成先验优势明显
AWGN, ρ=1/384LPIPS 提升 41.4%,FID 提升 56.7%相比标准 DeepJSCC
AWGN, ρ=1/96LPIPS 提升 43%,FID 提升 53.2%高一点码率仍有效
ADE20K, ρ=1/384FID 降低 69.2%,mIoU 提升 52.5%不只是好看,下游语义也更好
CelebAHQ, λ=50, ρ=1/768LPIPS 相比 InverseJSCC 提升 15.9%人脸极低码率有效

值得注意的是,DiffJSCC 不一定提升 PSNR/MS-SSIM。它的目标是更好的 perceptual quality 和 semantic utility,而非逐像素复原。

DiffJSCC Kodak visualization results
Kodak 图像在低码率、低 SNR 条件下的重建对比。DiffJSCC 的优势主要体现在纹理真实感和语义结构保留。来源:官方 GitHub 仓库。
Ablation · 消融
文本和 SNR 条件真的有用吗?

消融实验显示,仅用空间特征 \(f_v\) 效果有限。加入 SNR 信息后,平均 FID 改善约 2%,低 SNR 时更明显。再加入文本 prompt \(f_t\) 后,FID 额外改善 4.3%。如果 caption 来自无失真原图,提升更大,说明文本条件有较高上限。

采样步数方面,25 → 50 steps 提升明显,50 → 100 steps 收益下降。SNR=13dB 时,25 → 50 steps 带来 LPIPS 0.02、FID 6.5 的改善;50 → 100 steps 只带来 LPIPS 0.004、FID 2.5 的改善。

Implication · 电缆缺陷图像
迁移到工业缺陷传输时要小心什么?

DiffJSCC 对电缆缺陷图像传输很有启发:工业现场常有低码率、强干扰、边缘设备能耗受限等问题,而 DiffJSCC 把复杂计算放在接收端,发送端几乎不增加负担。

但不能直接照搬。自然图像中“好看”的纹理补全,在电缆缺陷场景中可能是危险的。裂纹、腐蚀、放电痕迹往往是细小异常,Stable Diffusion 的自然图像先验可能把它们当噪声修掉,或者生成并不存在的伪缺陷。

研究启发:保留 DiffJSCC 的两阶段结构,但把条件和损失改成 defect-aware。比如加入缺陷 mask、边缘图、高频纹理特征、检测/分割 backbone feature loss,并用 mIoU、边缘 F1、异常检测 AUC 等任务指标替代单纯 FID/LPIPS。

对于电缆缺陷传输,核心目标不是“生成最自然的电缆图像”,而是“在强干扰信道下保留任务关键异常”。这正是 DiffJSCC 后续可拓展的研究空白。

Conclusion · 结论
从通信恢复到生成式后验推断

DiffJSCC 的真正意义在于:它把无线图像传输的接收端定义为一个 posterior generative decoder。信道传来的不再是必须逐像素还原的压缩码流,而是约束大规模视觉先验的条件。接收端根据粗重建、文本语义和信道状态,从自然图像先验中采样一个语义一致、视觉真实的图像。

这代表了 Deep JSCC、语义通信、生成式压缩和扩散模型的一次汇合。它非常适合低码率、低 SNR、语义任务优先的场景;但在医学、工业缺陷、遥感异常等要求事实细节保真的任务中,需要额外的任务约束来防止 hallucination。