数据压缩算法----游程编码和霍夫曼编码

本文介绍了数据压缩中的游程编码和霍夫曼编码。游程编码通过替换连续的相同符号来减少数据长度,适用于图像和扫描文档。霍夫曼编码利用频率构建编码表,频繁字符编码短,减少总比特数。文章详细阐述了两种编码的原理、操作步骤,并提供了代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

游程编码

定义:

用一个 符号值/串 代替具有相同值的连续符号(连续符号构成了一段连续的“游程”。游程编码因此而得名),使符号长度少于原始数据的长度。

应用场景:

游程编码经典应用场景就是比特流中的冗余情况。例如有一串比特流:0000000000000001111111000000011111111111,该比特流中有15个0,然后是7个1,然后是7个0,然后是11个1。因为0和1总是交替出现的,我们只要表示出游程长度即可。上面的比特流可用游程编码压缩为:1111011101111011(15=1111,7=0111,7=0111,11=1011)。

游程编码被广泛使用于保存图像和扫描文档。不适用于比特流不含较长游程的情况(比如典型的英文文档)。

Q:

  1. 应该用多少比特记录游程长度?
  2. 某个游程长度超过了能够记录的最大长度怎么办?
  3. 当游程长度所需的比特数小于记录长度的比特数怎么办?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值