失真理论(第四章)
失真矩阵、率失真函数与转移概率矩阵
第4章 失真理论
〇、本章导读
核心问题
允许一定失真的情况下,最少需要多少比特来编码?
在实际应用中,我们常常不需要完全无损的重构,而是允许一定程度的失真来换取更高的压缩率。率失真理论就是研究这个权衡关系的。
知识框架
失真矩阵 [D] → 度量工具:量化"输入→输出"的代价
↓
最小失真 D_min → 理论下界:能达到的最小平均失真
↓
率失真函数 R(D) → 核心结论:失真约束 D 下的最小编码率
↓
转移概率矩阵 [P] → 实现工具:描述编码/信道的随机特性
两个关键极值
| 极值点 | 失真 | 编码率 | 物理含义 |
|---|---|---|---|
| 无损编码 | \(D_{\min} = 0\) | \(R(D_{\min}) = H(X)\) | 不允许任何失真,需传输全部信息 |
| 固定输出 | \(D_{\max}\) | \(R(D_{\max}) = 0\) | 允许最大失真,无需传输任何信息 |
一、失真矩阵:量化"差异"的工具
1.1 基本概念
失真(Distortion):信源符号经编码或传输后,输出与原始输入之间的差异程度。
失真函数 \(d(x_i, y_j)\) :度量输入 \(x_i\) 被重构为 \(y_j\) 时产生的失真大小。
1.2 符号约定
| 符号 | 含义 | 示例 |
|---|---|---|
| \(X = \{x_1, x_2, \ldots, x_n\}\) | 信源输入符号集 | \(X = \{x_1, x_2\}\) |
| \(Y = \{y_1, y_2, \ldots, y_m\}\) | 重构输出符号集 | \(Y = \{y_1, y_2, y_3\}\) |
| \(P(x_i)\) | 输入符号的概率分布 | \(P(x_1) = \frac{1}{2}\) |
| \(d(x_i, y_j)\) | 失真函数 | \(d(x_1, y_2) = 1\) |
| \([D]\) | 失真矩阵 | \(n \times m\) 阶矩阵 |
1.3 失真矩阵的结构
将所有失真函数值排列为 \(n \times m\) 阶矩阵( \(n\) 个输入, \(m\) 个输出):
读法:第 \(i\) 行第 \(j\) 列 = 输入 \(x_i\) 重构为 \(y_j\) 的失真值
1.4 失真矩阵的性质
| 性质 | 说明 | 备注 |
|---|---|---|
| 非负性 | \(d(x_i, y_j) \geq 0\) | 失真不可能为负 |
| 对角线为零(方阵) | \(d(x_i, x_i) = 0\) | 完全匹配时无失真 |
| 非对角线为正 | \(x_i \neq y_j\) 时, \(d(x_i, y_j) > 0\) | 不匹配时存在失真 |
1.5 常见失真度量
| 失真类型 | 公式 | 适用场景 | 特点 |
|---|---|---|---|
| 汉明失真 | \(d(x_i, y_j) = \begin{cases} 0, & x_i = y_j \\ 1, & x_i \neq y_j \end{cases}\) | 离散符号 | 只关心"对不对",不关心"差多少" |
| 平方误差 | \(d(x_i, y_j) = (x_i - y_j)^2\) | 连续信源 | 对大误差惩罚更重 |
| 绝对误差 | \(d(x_i, y_j) = \lvert x_i - y_j \rvert\) | 连续信源 | 线性惩罚 |
二、贯穿全章的示例
为便于理解,我们将在各节使用同一个失真矩阵示例。
2.1 失真矩阵
信源: \(X = \{x_1, x_2\}\) ,概率分布 \(P(x_1) = P(x_2) = \frac{1}{2}\)
重构集: \(Y = \{y_1, y_2, y_3\}\)
失真矩阵:
2.2 失真矩阵的读法
表格形式:
| \(y_1\) | \(y_2\) | \(y_3\) | |
|---|---|---|---|
| \(x_1\) | 0 | 1 | \(\frac{1}{4}\) |
| \(x_2\) | 1 | 0 | \(\frac{1}{4}\) |
逐项解读:
| 映射 | 失真值 | 含义 |
|---|---|---|
| \(x_1 \to y_1\) | \(d(x_1, y_1) = 0\) | 最佳选择:无失真 |
| \(x_1 \to y_2\) | \(d(x_1, y_2) = 1\) | 最差选择:失真最大 |
| \(x_1 \to y_3\) | \(d(x_1, y_3) = \frac{1}{4}\) | 折中选择:有失真,但可接受 |
| \(x_2 \to y_1\) | \(d(x_2, y_1) = 1\) | 最差选择:失真最大 |
| \(x_2 \to y_2\) | \(d(x_2, y_2) = 0\) | 最佳选择:无失真 |
| \(x_2 \to y_3\) | \(d(x_2, y_3) = \frac{1}{4}\) | 折中选择:有失真,但可接受 |
观察:
- 每个输入都有一个"无失真"的对应输出( \(x_1 \leftrightarrow y_1\) , \(x_2 \leftrightarrow y_2\) )
- \(y_3\) 是"通用输出":对两个输入的失真都是 \(\frac{1}{4}\)
三、最小失真 \(D_{\min}\) :理论下界
3.1 定义
最小失真 \(D_{\min}\) :在最优编码策略下,能够达到的最小平均失真。
3.2 计算公式
简化形式(每个输入选择失真最小的输出):
一般形式(通过转移概率优化):
3.3 计算步骤
以式 \((2)\) 的失真矩阵为例:
第一步:对每个输入,找出最小失真值
| 输入 | 各输出的失真 | 最小失真 | 最优输出 |
|---|---|---|---|
| \(x_1\) | \(0,\; 1,\; \frac{1}{4}\) | \(\min = 0\) | \(y_1\) |
| \(x_2\) | \(1,\; 0,\; \frac{1}{4}\) | \(\min = 0\) | \(y_2\) |
第二步:按概率加权求和
3.4 \(D_{\min} = 0\) 的充要条件
关键结论: \(D_{\min} = 0\) \(\Leftrightarrow\) 失真矩阵 \([D]\) 的每一行至少有一个零元素
物理含义:
- 当 \(D_{\min} = 0\) 时,每个输入都能找到一个无失真的输出
- 意味着理论上可以实现完全无损编码
- 此时编码系统不允许有任何信息损失
在我们的示例中:
- \(x_1\) 可以无失真地重构为 \(y_1\) ( \(d(x_1, y_1) = 0\) )
- \(x_2\) 可以无失真地重构为 \(y_2\) ( \(d(x_2, y_2) = 0\) )
- 因此 \(D_{\min} = 0\) ,可以实现无损编码
四、率失真函数 \(R(D)\) :核心理论
4.1 定义
率失真函数 \(R(D)\) :在平均失真不超过 \(D\) 的约束下,所需的最小编码速率(单位:比特/符号)。
其中:
- \(I(X; Y)\) 是互信息,表示编码速率
- \(\bar{D} = \sum_i \sum_j P(x_i) p(y_j|x_i) d(x_i, y_j)\) 是平均失真
- 约束条件: \(\bar{D} \leq D\)
核心思想:在所有满足失真约束的编码策略中,找到需要传输信息量最少的那个。
4.2 直观理解
\(R(D)\) 曲线的性质:
| 失真约束 \(D\) | 编码率 \(R(D)\) | 物理含义 |
|---|---|---|
| \(D = D_{\min}\) (最小) | \(R(D)\) 最大 | 几乎不允许失真 → 需要传输更多信息 |
| \(D\) 逐渐增大 | \(R(D)\) 递减 | 允许更多失真 → 可以更大程度压缩 |
| \(D = D_{\max}\) (最大) | \(R(D) = 0\) | 失真无所谓 → 不需要传输信息 |
权衡关系:
失真 D ↓ (更低失真) → 编码率 R(D) ↑ (需要更多比特)
失真 D ↑ (更高失真) → 编码率 R(D) ↓ (需要更少比特)
4.3 两个极值点
(1) 极值点一: \(R(D_{\min})\) (无损编码)
当 \(D = D_{\min} = 0\) 时(完全无失真重构):
计算示例(沿用式 \((2)\) 的失真矩阵):
因此:
物理含义:
- 不允许任何失真时,必须传输信源的全部信息
- 每个信源符号至少需要 \(H(X)\) 比特来编码
- 这正是香农信源编码定理的结论
(2) 极值点二: \(R(D_{\max})\) (固定输出)
最大失真 \(D_{\max}\) :当允许的失真大到某个程度后,不再需要传输任何信息。
计算公式:
计算步骤(沿用式 \((2)\) 的失真矩阵):
假设接收端固定输出某个 \(y_j\) ,不管输入是什么,计算每个策略的平均失真:
策略 1:固定输出 \(y_1\)
策略 2:固定输出 \(y_2\)
策略 3:固定输出 \(y_3\)
选择最小失真的策略:
此时的编码率:
物理含义:
- 当允许的失真达到 \(D_{\max} = \frac{1}{4}\) 时
- 接收端可以直接固定输出 \(y_3\) ,不需要知道输入是什么
- 因此无需传输任何信息,编码率为 0
五、转移概率矩阵:实现编码策略
5.1 定义
转移概率 \(p(y_j \mid x_i)\) :已知输入为 \(x_i\) 时,输出为 \(y_j\) 的概率。
转移概率矩阵 \([P]\) :描述编码器或信道的随机特性。
约束条件:每一行的元素之和为 1(给定输入后,输出必定是 \(Y\) 中的某一个)
5.2 两个极值点的转移概率矩阵
(1) \(D = D_{\min} = 0\) 时(无损编码)
最优策略: \(x_1 \to y_1\) , \(x_2 \to y_2\) (确定性映射)
含义:
- \(p(y_1 \mid x_1) = 1\) :输入 \(x_1\) 时,100% 输出 \(y_1\)
- \(p(y_2 \mid x_2) = 1\) :输入 \(x_2\) 时,100% 输出 \(y_2\)
- 输出完全由输入决定, \(I(X; Y) = H(X) = 1\) bit
(2) \(D = D_{\max} = \frac{1}{4}\) 时(固定输出)
最优策略:不管输入是什么,都输出 \(y_3\)
含义:
- \(p(y_3 \mid x_1) = 1\) :输入 \(x_1\) 时,100% 输出 \(y_3\)
- \(p(y_3 \mid x_2) = 1\) :输入 \(x_2\) 时,100% 输出 \(y_3\)
- 输出不携带任何关于输入的信息, \(I(X; Y) = 0\)
5.3 经典示例:二进制对称信道(BSC)
信道模型:输入输出均为 \(\{0, 1\}\) ,交叉错误概率为 \(p\)
| 输入 | 输出 0 | 输出 1 |
|---|---|---|
| 0 | \(1-p\) | \(p\) |
| 1 | \(p\) | \(1-p\) |
信道质量分析:
| \(p\) 的值 | 信道特性 | 互信息 \(I(X;Y)\) |
|---|---|---|
| \(p \to 0\) | 信道质量好,几乎无错传输 | 接近 1 bit |
| \(p = 0.5\) | 信道完全随机,信息全部丢失 | \(I(X;Y) = 0\) |
| \(p = 1\) | 确定性反转(可通过取反纠正) | \(I(X;Y) = 1\) bit |
六、失真矩阵 vs 转移概率矩阵
6.1 对比表
| 对比维度 | 失真矩阵 \([D]\) | 转移概率矩阵 \([P]\) |
|---|---|---|
| 元素含义 | 失真值(代价) | 概率值 |
| 元素范围 | \([0, +\infty)\) | \([0, 1]\) |
| 行/列约束 | 无约束 | 每行之和 = 1 |
| 角色 | 设计目标 | 实现手段 |
| 用途 | 度量编码质量 | 描述编码策略 |
| 关注点 | “偏了多少” | “变成什么的概率” |
6.2 两者的关系
失真矩阵 \([D]\) 定义了"代价函数",告诉我们每种映射的失真有多大。
转移概率矩阵 \([P]\) 定义了"编码策略",告诉我们实际采用哪种映射方式。
联系:通过选择合适的转移概率矩阵 \([P]\) ,可以在失真矩阵 \([D]\) 约束下最小化编码率。
平均失真的计算:
七、本章核心总结
7.1 关键概念一览
| 概念 | 符号 | 公式/定义 | 物理含义 |
|---|---|---|---|
| 失真矩阵 | \([D]\) | \(n \times m\) 矩阵 | 度量工具 |
| 最小失真 | \(D_{\min}\) | \(\sum_i P(x_i) \min_j d(x_i, y_j)\) | 理论下界 |
| 最大失真 | \(D_{\max}\) | \(\min_j \sum_i P(x_i) d(x_i, y_j)\) | 固定输出策略 |
| 率失真函数 | \(R(D)\) | \(\min I(X;Y)\) s.t. \(\bar{D} \leq D\) | 失真-速率权衡 |
| 转移概率矩阵 | \([P]\) | \(p(y_j \mid x_i)\) | 编码策略 |
7.2 两个极值点
7.3 率失真函数的单调性
R(D)
↑
H(X)|● (D_min, H(X))
| ╲
| ╲___
| ╲___
| ╲___
| ╲___
0 |____________________●______> D
D_max
性质:
- \(R(D)\) 是 \(D\) 的单调递减凸函数
- \(D\) 越小(允许失真越小) → \(R(D)\) 越大(需要更多比特)
- \(D\) 越大(允许失真越大) → \(R(D)\) 越小(需要更少比特)
- 当 \(D \geq D_{\max}\) 时, \(R(D) = 0\)
7.4 关键要点
- 失真矩阵是率失真理论的基础,量化了"输入→输出"的代价
- \(D_{\min}\) 是理论下界:每行选最小值,按概率加权
- \(D_{\min}=0\) 的充要条件:失真矩阵每行至少有一个零元素
- 率失真函数 \(R(D)\) 给出了失真约束下的最小编码率
- 转移概率矩阵描述编码/信道的随机特性,是实现 \(R(D)\) 的工具
- 选择不同的失真度量(汉明/平方误差/绝对误差)会影响系统设计
7.5 本章示例的完整结果
基于失真矩阵:
我们得到:
| 参数 | 值 | 对应策略 |
|---|---|---|
| \(D_{\min}\) | \(0\) | \(x_1 \to y_1, x_2 \to y_2\) (确定映射) |
| \(R(D_{\min})\) | \(1\) bit | 无损编码,需传输全部信息 |
| \(D_{\max}\) | \(\frac{1}{4}\) | 固定输出 \(y_3\) |
| \(R(D_{\max})\) | \(0\) bit | 无需传输任何信息 |
附录:常用符号总结
| 符号 | 含义 |
|---|---|
| \(X, Y\) | 输入和输出符号集 |
| \(P(x_i)\) | 输入符号的概率分布 |
| \(d(x_i, y_j)\) | 失真函数 |
| \([D]\) | 失真矩阵 |
| \(p(y_j \mid x_i)\) | 转移概率 |
| \([P]\) | 转移概率矩阵 |
| \(\bar{D}\) | 平均失真 |
| \(D_{\min}, D_{\max}\) | 最小/最大失真 |
| \(R(D)\) | 率失真函数 |
| \(I(X;Y)\) | 互信息 |
| \(H(X)\) | 信源熵 |
GitHub Discussions
评论区
使用 GitHub 登录,欢迎友好交流。