数据安全提示: 所有数据均在您的浏览器本地处理,不会上传到服务器,确保您的数据安全。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树的步骤

  1. 统计字符频率
  2. 为每个字符创建叶节点,权重为频率
  3. 将所有节点放入优先队列(最小堆)
  4. 重复取出两个最小节点合并,放回队列,直到只剩一个根节点

编码过程示例 ("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编码应用场景

文件压缩 (ZIP/GZIP)

作为DEFLATE算法的一部分,用于文本文件压缩。

图像压缩 (JPEG/PNG)

对DCT系数或颜色索引进行熵编码。

视频编码 (H.264/MPEG)

压缩运动向量、变换系数。

通信协议 (HTTP/2)

头部压缩使用Huffman编码。

快速提示

  • 无损压缩,完全恢复
  • 高频字符用短编码
  • 产生前缀码,无歧义
  • 编码表需要随结果保存
  • Ctrl+Enter快速转换

技术信息

算法类型:贪心算法
压缩类型:无损压缩
编码类型:前缀码
时间复杂度:O(n log n)
提出时间:1952年

需要其他编码工具?

免费为您开发定制化工具