h264编码算法由浅入深(二)霍夫曼编码

H264压缩中有个重要的算法,熵编码,熵编码分为两种cavlc(哈夫曼编码也叫变长编码)和cabac(算术编码),这些都是无损压缩编码

要弄懂哈夫曼编码之前先了解一下哈夫曼树

给定n个权值座位n个叶子节点,构造一颗二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树。

 

哈夫曼树构建方法

1 将整个数据排好序

2 每次取两个最小的数构成两个叶子,计算出根值,存入数据中。

3 删除两个叶子值

4 得到新的数据重复步骤1

图示例



哈夫曼编码

得到哈夫曼树之后,哈夫曼编码就容易了

做子树记为0,右子树记为1

所以A,B,C,D的哈夫曼编码分别为

111,10,110,0

 

哈夫曼解码

解码先构建一颗哈夫曼树,一般是编码后的数据对应的表也会存起来,供解码时候查询。

Bit0表示查询左子树,bit1表示查询又子树,叶子的权值存放的是实际的数据。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值