HUFFMAN三元编码 MATLAB

上次老师布置了作业,根据二元编码写三元的,我在网上下了一个然后把三元的也弄出来了,今天想把结果放到这里,希望对大家有用。

霍夫曼编码方法(最佳编码方法) 的算法

(1)       将信源消息符号按其出现的概率大小依次排列

(2)       取两个概率最小的字母分别配以01两个码元,并将两个概率相加作为一个新字母的概率,与未分配的二进符号的字母重新排队

(3)       对重排后的两个概率最小符号重复步骤(2)的过程

(4)       不断继续上述过程,直到最后两个符号配以01为止

(5)       从最后一级开始,向前返回得到各个信源符号所对应的码元序列,即相应的码字

1.     合并概率后,不考虑相同概率的摆放顺序的算法

二元码的源代码

function [h,l]=huffman(p)               %h每个符号概率的码字,l为输出码字的平均码长

if (length(find(p<0))~=0) 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
三元Huffman编码是一种用于压缩数据的编码方式,它是对三个符号的序列进行编码三元Huffman编码主要有两个步骤:构建Huffman树和生成编码表。 首先,构建Huffman树的过程如下: 1. 统计文本中出现的三个符号的频率。 2. 将三个符号的频率排序,以便找到频率最低的两个符号。 3. 创建一个包含这两个符号频率之和的新节点作为根节点,并将这两个符号作为左右子节点。 4. 将新节点的频率加入频率列表,并将它插入到相应的位置。 5. 从频率列表中删除这两个符号的频率。 6. 重复2-5步骤,直到合并所有的节点为一个根节点。 完成Huffman树的构建后,可以生成编码表: 7. 从根节点出发,遍历整个Huffman树。 8. 每次向左走时,将路径的编码设置为0;每次向右走时,将路径的编码设置为1。 9. 当到达叶节点时,记录路径的编码,形成编码表。 最后得到的编码表可以用来压缩数据: 10. 将文本中的符号按照编码表进行替换,得到编码后的数据。 11. 将编码后的数据进行存储或传输。 三元Huffman编码可以通过减少重复的数据来实现对数据的压缩,因为经常出现的符号可以用较短的编码表示,而不常出现的符号可以用较长的编码表示。这样可以减小数据的存储空间和传输带宽的使用,提高数据传输的效率。 总结起来,三元Huffman编码通过构建Huffman树和生成编码表,将三个符号的序列压缩成更短的编码,从而实现对数据的高效压缩。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值