
霍夫曼编码的文档压缩比计算基于字符频率的最优编码分配,以下是详细步骤及相关案例:
[ \text{压缩比} = \frac{\text{压缩前总比特数}}{\text{压缩后总比特数 + 编码表存储开销}} ] 通常以 比率(如 3:1) 或 百分比(如 33%) 表示。 注:实际应用中需包含编码表的存储开销,但理论计算常忽略此部分以简化。
假设一篇英文文档包含字符 A, B, C, D,出现频率如下:
字符 | 出现次数 | 频率(%) |
|---|---|---|
A | 5 | 12.8% |
B | 9 | 23.1% |
C | 12 | 30.8% |
D | 13 | 33.3% |
总字符数:39。 |
A(5), B(9), C(12), D(13)。A(5) 和 B(9) → 新节点 14。14 和 C(12) → 新节点 26。26 和 D(13) → 根节点 39。
霍夫曼树结构: 39
/ \
26 13 (D)
/ \
14 12 (C)
/ \
5 (A) 9 (B)0003位B0013位C012位D11位 字符(8位) + 编码长度(4位) + 编码内容(变长)。4字符 × (8+4+3)位 ≈ 60位(近似值)。若忽略编码表存储,仅计算数据部分: [ \text{压缩比} = \frac{312}{79} \approx 3.95:1 \quad \text{或} \quad 25.3% ]
D 仅需1位)。霍夫曼编码通过为高频字符分配短码,显著降低文档存储空间。实际压缩比需综合考虑字符分布和编码表开销,理论最大压缩比由字符熵决定。