熵编码-熵编码概述

熵编码系列目录
熵编码-熵编码概述
熵编码-指数哥伦布熵编码
熵编码-霍夫曼变长编码
熵编码-CABAC算术编码
熵编码-CAVLC算术编码


1. 什么是熵

熵是什么? 熵是系统混乱程度的度量。在信息论中,则是信息熵。
信息熵表示信息的规律程度。信息熵值越高,说明信息的规律越少,越杂乱,也就越难以压缩。信息熵概念通常应用在数字图像编码中,因为图像像素信息、码流的句法元素值都属于信息。

2. 信息熵和熵编码

信息熵是信息中排出冗余后的平均信息量,信息熵的提出解决了对信息的量化度量问题。
熵编码:利用信源的统计特性进行码率压缩的编码,称之为熵编码,也叫做统计特性。
熵编码基本思想:使前后的码字之间尽量更加随机,减少前后相关性,使编码后码字的平均码长逼近熵极限。

  • 熵编码具有消除数据之间冗余的功能。编码器的最后一道工序,将句法元素写入输出码率
  • 熵解码是解码器的第一道工序,将码流解析出句法元素用于后续的图像重建

编码后的平均码长越接近熵,熵编码的效率越高。熵编码是一种无损编码方法,包含:香农-范诺编码、霍夫曼编码、指数哥伦布熵编码,CAVLC、CABAC等

3. 熵编码分类

算法代表
变长编码香农-范诺编码、霍夫曼编码、指数哥伦布编码、CAVLC
算术编码CABAC

4. 变长编码

变长编码是一种数据编码方式,其中编码的长度根据需要变化。将一串输入信源分割成码字,对出现概率大的码字分配短字长的二进制码,对于出现概率小的码字分配长字长的二进制码,得到平均码长最短的码流

  • 指数哥伦布编码:属于可变长前缀码的一种
  • 霍夫曼编码:属于可变字长编码(VLC)的一种,使用通过评估源码字出现的概率得到的变长码表对源码字进行编码
  • CAVLC:基于上下文自适应的变长编码。根据已编码句法元素的情况动态的选择编码中使用的码表,并且随时更新拖尾系数的后缀长度,从而获得极高的压缩比
指数哥伦布编码霍夫曼编码
信源相关性信源无关性依赖信源的概率分布
额外信息无需携带额外信息需存在与信源匹配的编码码表
压缩效率压缩效率较低,甚至毫无压缩效果压缩效率高

5. 算术编码

算术编码和变长编码不同,不采用将一串输入信源分割成码字再对码字编码的方式,而采用将一串输入信源编码成一个满足(0.0<= N <1.0)的浮点数N

  • CABAC:基于上下文自适应的二进制算术编码,CABAC是H264/AVC标准中两种熵编码的一种,它的核心编码算法就是算术编码
  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值