当前位置: 首页 > news >正文

[信息论与编码理论专题-39]:算术编码不是给每个符号分配一个“码字”,而是把整个消息压缩成一个“小数”——这个小数越精确,信息量越大。

一、对比哈夫曼编码:为什么需要算术编码?

先看大家熟悉的哈夫曼编码

  • 每个字符单独编码,比如:
    A → 0B → 10C → 11
  • 编码长度必须是整数位(1位、2位……)
  • 问题:如果某个字符概率是 0.9(比如英文中空格很常见),理论上它只需要不到 1 位就能表示(香农熵 ≈ 0.47 bit),但哈夫曼最少也得用 1 位,浪费了!

算术编码的突破
不再限制每个符号必须用整数位,而是把整条消息映射到一个0 到 1 之间的实数区间,用这个区间的任意一个数(比如 0.3527)来代表整条消息!


二、通俗例子:用“猜数字”理解算术编码

想象你在玩一个猜数字游戏

我心里想一个 0 到 1 之间的数,你要通过我的提示不断缩小范围,最后猜中它。

现在,我们用这个思路来“编码”一条消息,比如:"AB"

假设我们知道每个字母出现的概率:

  • A:80%(0.8)
  • B:20%(0.2)

第一步:划分初始区间 [0, 1)

  • 把 [0, 1) 按概率切分:
    • A 占前 80% → [0, 0.8)
    • B 占后 20% → [0.8, 1)
10 ────────┬─────────────── 1 2 │ 3 A(0.8) B(0.2)

第二步:处理第一个字符 'A'

  • 因为第一个字符是 A,所以新范围缩小到 [0, 0.8)

第三步:在 [0, 0.8) 内,再按概率细分

  • 在这个小区间里,继续按 A:80%、B:20% 划分:
    • A 的子区间:0 + 0.8 × 0.8 = 0.64 → [0, 0.64)
    • B 的子区间:0.64 到 0.8 → [0.64, 0.8)
10 ────────┬─────────────── 0.8 2 │ 3 A(0.64) B(0.16)

第四步:处理第二个字符 'B'

  • 所以最终区间是[0.64, 0.8)

第五步:选一个数代表整个消息

  • 只要选这个区间里的任意一个数,比如0.7,就可以代表 "AB"!
  • 解码时,从 0.7 出发,反向推回去:
    • 0.7 在 [0, 0.8) → 第一个是 A;
    • 在 A 的区间里0.7 落在 B 的子区间→ 第二个是 B;
    • 得到 "AB" ✅

三、为什么更高效?

  • 哈夫曼编码 "AB" 可能需要:A=0(1位),B=1(1位)→ 共2 位
  • 算术编码用一个小数(如 0.7)表示,实际存储时只需足够精度的二进制小数,比如:
    • 0.7 的二进制 ≈ 0.101100110011...
    • 只需 约 1.32 位(理论极限 = -log₂(0.8×0.2) ≈ 2.64 bits / 2 chars = 1.32 bpc)

✅ 算术编码可以逼近香农熵的理论极限,比哈夫曼更省空间!


四、关键特点总结

表格

特点说明
整条消息一个数不是逐个字符编码,而是整体映射到一个区间
支持非整数码长高频符号“贡献”的区间大,所需精度低,节省比特
接近理论最优平均码长 ≈ 信息熵,优于哈夫曼
适合高冗余数据如文本、DNA序列、传感器数据

五、现实中的应用

虽然算术编码更优,但因涉及浮点运算和专利问题,早期用得少。如今广泛用于:

  • JPEG 图像压缩(可选算术编码,但多用哈夫曼)
  • H.264/HEVC 视频编码(CABAC:基于上下文的自适应算术编码)
  • 数据压缩工具(如 bzip2 的部分变种)

✅ 最后一句话记住它:

算术编码就像把一整句话“折叠”进 0 到 1 之间的一个小缝隙里,缝隙越小,信息越密集;只要记住缝隙里的任意一个点,就能还原整句话。

字符串的长度决定了浮点区间计算的次数,决定了嵌套的子区间的个数。

字符的个数决定了最外层区间的个数。

第一个字符决定了数值所在的第一个区间位置。

http://www.jsqmd.com/news/357294/

相关文章:

  • 2026苏州设计免费的全屋整装装修公司是哪些,价格如何 - 工业品网
  • Java如何编写文档注释,实现javadoc编程
  • 强得起飞!WPS Excel里写Python,但金山系表格才是真升级!
  • 鞍山律师事务所民事诉讼费用多少钱,靠谱的怎么选 - 工业品牌热点
  • ‌模糊测试增强:遗传算法驱动的API边界用例生成工具‌
  • 中国VCD曾有望称霸,却被国外联合消灭,国产软件不怕这事!
  • 测试预言机AI化的挑战与Diffusion模型机遇
  • 模型量化十年演进
  • 模型压缩十年演进
  • 一篇搞定全流程,AI论文软件 千笔ai写作 VS 笔捷Ai
  • 软件测试公众号内容热度解析:多模态技术驱动的专业洞察
  • React2Shell漏洞实战指南:使用react2shell-guard的完整防护方案
  • 字节:解耦LLM检索与推理能力
  • 在RK3566鲁班猫部署模型全流程
  • comsol亚波长超声聚焦 仿真 生物超声、高强度聚焦换能器 超声换能器 超声传感器 MEMS...
  • 无锡地区气流超微粉碎机价格多少,品牌选购攻略 - 工业推荐榜
  • blender 视角调整技巧
  • 【AI智能体】31-MetaGPT框架:多角色协同与标准化输出
  • 你没抄、没用AI,却被系统“判了刑”?百考通「降重+降AI」,专治学术审核“误伤症”
  • 你写得越认真,系统越不信你是人?百考通「降重+降AI」,专治“好论文被算法冤枉”
  • 基于飞秒激光模型与Comsol仿真的研究与应用
  • 讲讲家庭防水服务选购,乌鲁木齐家修防水口碑如何,选哪家? - myqiye
  • 利用Abaqus和Matlab软件软件实现相场法模拟裂纹扩展,扩展有限元XFEM等断裂力学领域...
  • 你写得越像“人”,系统越觉得你像AI?百考通「降重+降AI」,专治“好论文被算法误判”
  • 你写得越规范,系统越不信你是人?百考通「降重+降AI」,专治“好学生被算法误判”
  • 聊聊国内盐湖提锂企业口碑排名,杭州蓝然排第几 - 工业品网
  • 直接开撸PMSM的无感控制仿真!今天咱们玩点硬核的——IF控制结合反正切位置估算。别看名字高大上,实际操作起来你会发现这玩意儿其实挺有机械美感的
  • 北京大型离婚律师事务所哪家口碑好 - 工业品牌热点
  • 你没用AI,但系统说你“不像真人写的”?百考通「降重+降AI」,专治“好论文被算法冤枉”
  • ​你写得越规范,系统越不信你是人?百考通「降重+降AI」,专治“好论文被算法冤枉”