)
摘要信息率失真函数 R(D) 描述在允许平均失真不超过 D 的条件下信源压缩所需的最小信息率。它把“压缩多少”和“允许损失多少”放在同一个数学框架中是有失真信源编码理论的核心。本文依据所学内容关于平均失真、允许试验信道、R(D) 定义及其曲线性质的内容推导出离散系统与连续系统的信息率失真函数。离散部分以二元等概信源和汉明失真为代表推出连续部分以高斯信源和均方误差失真为代表推出。最后结合 MATLAB 曲线说明两类系统在 D0 附近、Dmax 处以及曲线形态上的差异。关键词信息率失真函数平均失真离散信源高斯信源有失真压缩MATLAB1. 研究背景无失真编码要求接收端完全恢复原信源因此最低平均码长与熵 H(X) 紧密相关。但在图像、语音、测量数据等实际系统中完全无误地恢复每一个样本往往既不必要也会造成过高的码率。有失真编码允许恢复符号 Y 与原符号 X 存在一定差别只要这种差别的平均程度控制在给定范围内即可。因此信息率失真理论要回答的问题不是“能否完全恢复”而是在允许失真 D 的条件下至少还需要保留多少关于 X 的信息。图片中的框图把信源编码器看成一个假想信道输入为信源 X输出为重构符号 Y编码方案对应某种条件概率 p(y|x)。这个视角把压缩问题转化为互信息最小化问题。与信道容量 Cmax I(X;Y) 不同率失真函数是在失真约束下求 min I(X;Y)。前者追求信道能传多少后者追求在可接受失真下最少要传多少。2. 平均失真与信息率失真函数的定义2.1 离散信源的平均失真设离散无记忆信源 X 的符号集为重构符号集为。若采用有失真编码则原符号可以被恢复为。失真函数用来度量这一次恢复的损失大小。当编码器或等效试验信道的转移概率为时单符号平均失真为如果对长度为 L 的序列进行编码并且每个位置的失真函数相同则序列平均失真可以写成各位置平均失真的算术平均这个定义强调失真不是某一次编码的偶然误差而是在概率意义下长期平均的损失。2.2 连续信源的平均失真对于连续随机变量求和需要换成积分。若 X 和 Y 的联合概率密度为则平均失真为连续系统中常用的失真函数是均方误差。它不仅便于数学分析也符合许多模拟信号处理中对误差能量的度量方式。2.3 R(D) 的数学定义给定一个允许失真上限 D所有满足的条件分布构成允许试验信道集合。在这些候选方案中选择使互信息最小的方案其最小值就定义为信息率失真函数其中互信息可写为从这个定义可以看出R(D) 不是某个具体编码器的码率而是理论上所有有失真编码方案能达到的最低信息率。实际编码器越接近 R(D)说明它在给定失真下越接近理论极限。3. R(D) 的基本性质3.1 非负性与端点互信息始终非负因此 R(D)≥0。若 D 很大大到接收端不需要依赖 X 也能满足失真要求就可以让 Y 与 X 独立此时 I(X;Y)0所以 R(D)0。这个临界失真通常记为 Dmax。对离散信源而言若零失真要求每个符号都被唯一恢复则 D0 时必须完整保留信源信息因而 R(0)H(X)。对连续信源而言若要求均方误差趋近 0就相当于要求无限精度地描述连续值因此 R(D) 在 D→0 时通常趋于无穷大。3.2 单调不增性若 D1D2则满足的编码方案一定也满足。也就是说D2 对应的可选方案集合更大最小互信息不可能更大。因此有D1 D2 R(D1) ≥ R(D2).这说明允许的失真越大所需信息率越小但是减小的速度并不是固定的这一点由凸性进一步刻画。3.3 凸性推导取两个失真水平 D1、D2 及其近似最优试验信道。若以概率使用第一种方案以概率使用第二种方案就得到一个混合编码策略。该策略的平均失真为互信息对试验信道是凸函数因此混合方案的信息率不超过两个方案信息率的加权和所以 R(D) 是关于 D 的下凸函数。这个性质表明在低失真区域继续降低失真需要付出很高码率在高失真区域再放宽一点失真带来的码率下降较小。4. 离散系统的信息率失真曲线推导4.1 二元等概信源与汉明失真模型考虑最典型的离散系统二元等概信源 X∈{0,1}且 P(X0)P(X1)1/2。重构符号 Y 也取 0 或 1。采用汉明失真若 YX失真为 0若 Y≠X失真为 1。于是平均失真就是恢复错误的概率D P(Y ≠ X).因为二元等概信源的熵为 H(X)1 bit/symbol所以 D0 时必须用 1 bit/symbol 表示当 D1/2 时即使完全不看 X 而随机猜测也能达到平均错误率 1/2此时不需要传输关于 X 的信息R(D)0。4.2 下界推导互信息可写为 I(X;Y)H(X)-H(X|Y)。为了让 I(X;Y) 尽量小需要让 H(X|Y) 尽量大。设错误指示变量 EX⊕Y其中 E1 表示恢复错误E0 表示恢复正确。因为 P(E1)D故给定 Y 后如果还知道 E就能确定 X因为 XY⊕E。因此 X 的剩余不确定性不会超过错误指示变量 E 的不确定性即。于是得到由于 R(D) 是所有满足失真约束的互信息最小值所以必有。4.3 可达性说明下面说明这个下界可以达到。构造一个对称试验信道以概率 1-D 正确输出 X以概率 D 翻转 X。也就是 YX⊕E且 E 与 X 独立P(E1)D。由于 X 等概Y 仍然等概因此 H(Y)1。同时于是下界可达所以二元等概信源在汉明失真下的信息率失真函数为这条曲线从 R(0)1 开始随 D 增大而下降并在 D0.5 处降为 0。5. 连续系统的信息率失真曲线推导5.1 高斯信源与均方误差模型连续系统以高斯信源为代表。设采用均方误差失真。若只输出一个与 X 无关的常数最佳常数是均值 0此时最小平均失真。因此并且时 R(D)0。5.2 下界推导对任意重构变量 Y记误差 ZX-Y。若平均均方误差不超过 D则。互信息可以由微分熵表示在给定 Y 时X 的不确定性等价于误差 X-Y 的不确定性因此 h(X|Y)h(X-Y|Y)。条件只会减少熵所以 h(X-Y|Y)≤h(X-Y)。又因为在给定方差限制下高斯分布的微分熵最大若则而高斯信源本身的微分熵为代入互信息表达式得到任意方案都必须满足5.3 可达性说明取再令 Z~N(0,D)且 Y 与 Z 独立并设 XYZ。这样 X 的方差为重构误差 X-YZ 的均方值正好为 D。由于误差为高斯且与重构量独立上述下界取等号。因此高斯信源在均方误差下的信息率失真函数为当 D 趋近 0 时趋近无穷大。这反映了连续信源的本质若要求几乎无误差地描述连续取值就需要无限精度理论码率会无限增长。6. 离散系统与连续系统曲线对比图 1 离散二元信源与连续高斯信源的信息率失真曲线示意图 1 根据 MATLAB 绘制。左图为二元等概离散信源在汉明失真下的曲线右图在归一化失真尺度下比较离散二元信源和连续高斯信源。从图形和公式可以归纳出以下差异。1.零失真附近离散信源 R(0)H(X)二元等概时为 1 bit/symbol连续高斯信源在 D→0 时 R(D)→∞。2.最大失真处离散二元信源 Dmax0.5高斯信源 Dmaxσ^2达到或超过 Dmax 后均有 R(D)0。3.曲线形态两者都随 D 增大而下降且具有凸性说明越追求低失真单位失真改善所需的码率代价越高。4.物理含义离散符号的精确恢复只需有限信息量而连续幅值的精确恢复需要无限精度这是两类曲线在原点附近差别最大的原因。比较项目离散系统连续系统研究对象有限符号集合例如 {0,1}连续取值例如高斯随机变量常用失真度量汉明失真 d(x,y)0 或 1均方误差 d(x,y)(x-y)^2零失真极限R(0)H(X)通常有限D→0 时 R(D)→∞最大失真可由不传信息时的最优重构得到高斯零均值时 Dmaxσ^2典型公式7. MATLAB 验证思路与数值说明实现代码如下function RD_report_curve_comparison_cn() clc; close all; set(groot, defaultAxesFontName, Microsoft YaHei); set(groot, defaultTextFontName, Microsoft YaHei); %% 2. 参数设置 % 离散系统二元等概信源 X in {0,1} pOne 0.5; % P(X1) DmaxDiscrete min(pOne, 1 - pOne); % 二元等概信源的最大有效失真等于 0.5 % 连续系统高斯信源 X ~ N(0, sigma^2) sigma2 1; % 高斯信源方差 DmaxContinuous sigma2; % 高斯信源均方误差下的最大有效失真 %% 3. 离散二元信源的 R(D) % 二元等概信源 汉明失真 % R(D) 1 - H2(D), 0 D 0.5 % R(D) 0, D 0.5 Ddiscrete linspace(0, DmaxDiscrete, 800); Rdiscrete binaryDiscreteRD(Ddiscrete, pOne); %% 4. 归一化失真下的离散/连续对比 % 为了把离散系统和连续系统画在同一横轴上使用归一化失真 % d D / Dmax dNorm linspace(1e-4, 1, 800); RdiscreteNorm binaryDiscreteRD(dNorm * DmaxDiscrete, pOne); RcontinuousNorm gaussianContinuousRD(dNorm * DmaxContinuous, sigma2); %% 5. 绘制报告中的曲线对比图 fig figure(Color, w, ... Name, 信息率失真函数曲线示意, ... Position, [100, 100, 1250, 620]); t tiledlayout(1, 2, TileSpacing, compact, Padding, compact); % 子图 1离散二元信源 R(D) nexttile; plot(Ddiscrete, Rdiscrete, r-, LineWidth, 2.2); hold on; plot([DmaxDiscrete DmaxDiscrete], [0 1], k:, LineWidth, 1.1); grid on; xlabel(失真 D); ylabel(信息率 R(D) / 比特每符号); title(离散二元信源的率失真曲线); legend(R(D)1-H_2(D), D_{max}0.5, Location, northeast); xlim([0 DmaxDiscrete]); ylim([0 1.05]); % 子图 2归一化坐标下离散/连续系统对比 nexttile; plot(dNorm, RdiscreteNorm, r-, LineWidth, 2.2); hold on; plot(dNorm, RcontinuousNorm, b--, LineWidth, 2.2); grid on; xlabel(归一化失真 d D / D_{max}); ylabel(信息率 R(D)); title(离散系统与连续系统曲线对比); legend(离散二元信源, 连续高斯信源, Location, northeast); xlim([0 1]); ylim([0 4]); title(t, 信息率失真函数曲线示意, ... FontSize, 18, FontWeight, bold); %% 6. 可选保存图片 % 自动保存到 output 文件夹方便插入报告。 outDir fullfile(pwd, output); if ~exist(outDir, dir) mkdir(outDir); end outFile fullfile(outDir, RD_report_curve_comparison_matlab.png); exportgraphics(fig, outFile, Resolution, 250); fprintf(曲线对比图已保存到%s\n, outFile); end function R binaryDiscreteRD(D, pOne) % 二元 Bernoulli 离散信源在汉明失真下的率失真函数。 % 当 pOne0.5 时R(D)1-H2(D), 0D0.5。 p min(pOne, 1 - pOne); Dmax p; Dclip min(max(D, 0), Dmax); R binaryEntropy(p) - binaryEntropy(Dclip); R(D Dmax) 0; R max(R, 0); end function R gaussianContinuousRD(D, sigma2) % 高斯连续信源在均方误差失真下的率失真函数 % R(D)1/2*log2(sigma^2/D), 0Dsigma^2。 Dsafe max(D, realmin); R 0.5 * log2(sigma2 ./ Dsafe); R(D sigma2) 0; R max(R, 0); end function H binaryEntropy(p) % 二元熵函数 H2(p)。 p min(max(p, 0), 1); H zeros(size(p)); mask p 0 p 1; H(mask) -p(mask) .* log2(p(mask)) ... - (1 - p(mask)) .* log2(1 - p(mask)); endMATLAB 程序采用解析公式直接计算两类曲线。离散部分设置 p0.5计算失真范围为 0≤D≤0.5连续部分设置 σ^21计算失真范围为 0D≤1。为了便于同图比较程序还使用归一化失真 dD/Dmax。二元熵函数和两类 R(D) 函数的核心计算式为归一化/实际失真 D离散二元信源 R(D)连续高斯信源 R(D), σ^2101.000趋于无穷大0.100.5311.6610.200.2781.1610.300.1190.8680.500.0000.5001.00不适用0.000表中的数值显示在同样的相对失真水平下连续高斯信源通常需要更高的信息率尤其是在失真很小的区域。 不能单凭“高斯信源更复杂”直观解释此结论它是连续变量无限取值特性与微分熵理论推导共同作用的结果。8. 结论信息率失真函数 R(D) 是有失真信源编码的理论边界。它以平均失真 D 为横轴以最小必要信息率为纵轴定量描述了压缩率和重构质量之间的折中关系。从定义上看R(D) 是在允许试验信道集合中对互信息求最小值从曲线上看它具有非负、单调不增和凸的基本性质。离散二元信源在汉明失真下的说明允许错误概率越大必须保留的信息越少。连续高斯信源在均方误差下的说明若要求连续幅值接近无误差地恢复理论码率会迅速增大并趋向无穷。两类曲线都体现了同一条基本规律失真容忍度越高压缩可以越强但在低失真区域任何进一步的质量提升都需要付出更大的码率代价。