第 4 章 压缩与纠错:香农世界里的两大技术支柱
4.1 为什么传统通信要把“压缩”和“纠错”分开
传统通信系统通常这样设计:
- 信源编码:去掉冗余,得到尽可能短的比特串。
- 信道编码:再加一些冗余,使接收端能纠正由噪声引起的错误。
为什么分开?因为在渐进极限下,香农证明了:
- 如果信源熵 $H(X)$ 小于信道容量 $C$,可以先压缩再编码,仍然可以可靠传输。
- 分开设计在理论上不损失最优性能。
但“理论渐近最优”不等于“具体系统最优”。真实系统有有限码长、有限复杂度、有限延迟和特定的任务目标,因此今天越来越多研究者重新选择联合信源信道编码,尤其是用深度学习实现的 JSCC。
4.2 无损压缩:熵是下限
无损压缩的目标是:压缩后还能精确恢复原文。
熵 $H(X)$ 给出了平均码长的理论下限。常见算法有:
- Huffman 编码:给高频符号分配短码、低频符号分配长码。
- 算术编码:把整段序列看成一个区间,用区间内一个实数表示整段序列。
- LZ77/LZ78/LZW:基于重复片段和字典进行压缩,常见于文本、压缩文件格式中。
Huffman 编码的直觉:
假设符号概率为:
$$ p(\mathrm{a})=0.5,\quad p(\mathrm{b})=0.25,\quad p(\mathrm{c})=0.25 $$我们可以给 a 分配 1 位,b 和 c 各分配 2 位,例如:
$$ \mathrm{a}\to 0,\quad \mathrm{b}\to 10,\quad \mathrm{c}\to 11 $$平均码长为:
$$ R=0.5\times 1+0.25\times 2+0.25\times 2=1.5 $$而信息熵为:
$$ H=1.5 $$这说明 Huffman 编码可以达到熵的极限。这不是巧合,而是它尽量把码树按概率合并的结果。
4.3 有损压缩:允许一点失真,换取更低速率
如果允许重建的内容和原始内容不完全一样,通常可以用更少的比特表示。
经典做法:
$$ \text{原始数据} \to \text{变换} \to \text{量化} \to \text{熵编码} $$比如 JPEG 对图像先做 DCT 变换,再对频率系数量化。高频细节被削减,人眼未必能察觉,但文件大小显著下降。
有损压缩的理论基础就是率失真函数:
$$ R(D)=\min_{\mathbb{E}[d(X,\hat X)]\le D} I(X;\hat X) $$失真度量常见例子:
- 均方误差:$d(x,\hat x)=(x-\hat x)^2$
- 平均绝对误差:$d(x,\hat x)=|x-\hat x|$
- 图像:PSNR、SSIM
- 语义:任务正确率、语义相似度等
4.4 变换编码:把相关性去掉
自然图像、音频中相邻样本通常很相似。变换编码通过正交变换把样本变成近似不相关的系数,然后只保留重要系数。
例如离散余弦变换:
$$ X_k=\sum_{n=0}^{N-1}x_n\cos\left[\frac{\pi}{N}\left(n+\frac12\right)k\right] $$其中 $k=0,1,\dots,N-1$。
一个很重要的直觉:很多自然信号的“能量”集中在低频,高频部分往往是细节或噪声。因此先变换、再量化、再熵编码,往往比直接压缩原始采样点更有效。
4.5 信道编码的目标
信道编码给信息加冗余,使接收端能在噪声或信道差错下恢复原始信息。
一个线性分组码可以写成:
$$ \mathbf{c}=\mathbf{u}\mathbf{G} $$其中:
- $\mathbf{u}$ 是信息向量;
- $\mathbf{G}$ 是生成矩阵;
- $\mathbf{c}$ 是码字。
码字长度为 $n$,信息长度为 $k$,码率为:
$$ R_c=\frac{k}{n} $$码率越低,冗余越多,通常纠错能力越强,但实际信息速率越低。
4.6 汉明距离与最小距离
两个码字的汉明距离是它们不同的比特数:
$$ d_H(\mathbf{c}_1,\mathbf{c}_2)=\left|\{i:c_{1,i}\ne c_{2,i}\}\right| $$一个码的最小汉明距离记为 $d_{\min}$。它决定了纠错能力:
- 最多可以检测 $d_{\min}-1$ 个错误;
- 最多可以纠正 $\lfloor (d_{\min}-1)/2\rfloor$ 个错误。
直觉:码字之间离得越远,噪声把一个码字推成另一个码字的可能性越小。
4.7 常见信道编码
| 编码 | 特点 | 典型应用 |
|---|---|---|
| 汉明码 | 简单,能纠正 1 个错误 | 教学、存储 |
| Reed-Solomon 码 | 纠突发错误能力强 | 光盘、存储、通信 |
| 卷积码 | 有记忆,适合软判决 | 移动通信、卫星 |
| Turbo 码 | 接近香农极限 | 3G/4G |
| LDPC 码 | 接近香农极限、并行译码 | 5G、Wi-Fi、卫星 |
| Polar 码 | 理论上可达到香农极限 | 5G 控制信道 |
关键问题:为什么已经接近香农极限,还需要语义通信?因为“接近香农极限”指的是“按比特传输”的极限,而不是“按任务成功传输”的极限。比如传一张图,如果最终目标是识别猫,那么很多像素对任务而言并不重要。
4.8 硬判决与软判决
硬判决:接收端直接把每个符号变成一个 0/1,再做纠错。
软判决:接收端保留“这个符号更像 0 还是更像 1”的概率信息,再把概率信息交给译码器。
软判决通常性能更好,因为它没有过早丢弃关于信道的可信度信息。深度神经网络天然适合端到端学习软信息,这也是深度学习语义通信的一个优势。
4.9 有限码长与联合设计的价值
香农定理的极限是“码长趋于无穷”得到的。实际中:
- 码长越长,译码延迟和复杂度越高;
- 对于短包、低延迟任务,理论极限往往不能直接达到;
- 用户任务可能不是“恢复原始比特”,而是“完成任务”。
因此出现两个研究方向:
- 深度学习联合信源信道编码(Deep JSCC):用一个神经网络直接把源数据映射到信道输入,接收端直接从信道输出映射到任务结果,不再人为划分为压缩、纠错、调制等独立模块。
- 语义通信:在这个基础上进一步研究“哪些特征才值得传”。
第 4 章小结
- 熵是无损压缩的理论下限。
- 率失真函数是有损压缩的理论下限。
- 信道编码通过加冗余换取可靠性。
- 码率、最小距离、硬/软判决是理解的三个关键词。
- 传统代价函数的对象是“比特”,语义通信把对象换成“语义/任务”。