数据安全提示: 所有数据均在您的浏览器本地处理,不会上传到服务器,确保您的数据安全。Huffman编码为无损压缩算法,可以完全恢复原始数据。
Huffman转换工具
本地算法运行中
当前操作:文本 → Huffman编码
输入文本
字符数: 0
不同字符: 0
熵估计: 0 bits
字符频率分析
| 字符 | ASCII码 | 出现次数 | 频率 (%) | 理论编码长度 |
|---|
转换结果
转换结果将显示在这里...
等待输入...
使用示例
"ABRACADABRA" → Huffman编码
经典示例,压缩率约74%
"hello world" → Huffman编码
简单文本,压缩率约45%
"aaaaabbbbbccccc" → Huffman编码
重复字符,高压缩率
"中华人民共和国" → Huffman编码
中文字符压缩
Huffman算法原理
Huffman编码是一种用于无损数据压缩的熵编码算法,由David A. Huffman在1952年提出,是贪心算法在数据压缩领域的经典应用。
构建Huffman树的步骤
- 统计字符频率
- 为每个字符创建叶节点,权重为频率
- 将所有节点放入优先队列(最小堆)
- 重复取出两个最小节点合并,放回队列,直到只剩一个根节点
编码过程示例 ("ABRACADABRA")
字符频率: A(5), B(2), R(2), C(1), D(1)
构建Huffman树后生成编码表:
A: 0, B: 100, R: 101, C: 110, D: 111
编码结果: 0 100 101 0 110 0 111 0 100 101 0 (23位)
压缩率: 73.9% (原始88位)
构建Huffman树后生成编码表:
A: 0, B: 100, R: 101, C: 110, D: 111
编码结果: 0 100 101 0 110 0 111 0 100 101 0 (23位)
压缩率: 73.9% (原始88位)
Huffman编码应用场景
文件压缩 (ZIP/GZIP)
作为DEFLATE算法的一部分,用于文本文件压缩。
图像压缩 (JPEG/PNG)
对DCT系数或颜色索引进行熵编码。
视频编码 (H.264/MPEG)
压缩运动向量、变换系数。
通信协议 (HTTP/2)
头部压缩使用Huffman编码。