Multimedia-Ajax-Lecture4

本期主题:数据压缩基础
重点掌握:RLC行程编码,VLC可变长度编码,算术编码。

无损压缩,有损压缩,字面意思

压缩比 C_ratio = Bit_before/Bit_after

常见的熵编码有:香农(Shannon)编码、哈夫曼(Huffman)编码和算术编码(arithmetic coding)。RLC不算熵编码。  

Information Theory信息论基础

Probability Distribution Function (PDF):概率分布函数,表示数据集中每个元素出现的概率。

信息论之父:香农

信息熵Entropy计算公式:

信息熵计算示范:

信息熵的意义:定义了每个字符占用bit数的下限,可以理解为任何编码存储得到的平均bit数,一定大于等于1.9bits。

对于一个256的灰度图片,如果他的每个像素值出现概率均等,那么可以计算它的熵为

所以对于此图片的元素平均占bit位最少为8.

Run_length Coding行程编码

用数字表示重复字符,重复字符多才有意义

二进制文件总是01,RLC可以有效压缩。



Variable_Length Coding可变长度编码

香隆算法:按照出现频率分割元素树。自上而下
霍夫曼算法:自下而上,合并成树。
霍夫曼code优点:最小冗余码,平均bit长度

可谓非常优秀了


霍夫曼编码Huffman Coding
一个文件中有不同的字母,正常都是占一个字节,但是可能也不需要8bits这么多字节,如果字符数量比较少的的话,而且每个字符出现的频率也是不一样的,那么很朴素的想到,就是使用较少的bit去记录频率比较高的字符,长bit去记录频率低的的字符,这样最后出来的bits用量就经可能少。
要进行huffman编码:
1要知道所以的字符,以及每个字符出现的频率.
2然后计算霍夫曼字典huffmandict
3有了字典就可以对字符串编码和解码

考点,掌握手动计算Huffman字典的方法

Arithmetic Coding算术编码

JPEG and JPEG2000使用了算数编码
非常接近bit下限,但是计算复杂。
算术编码结果是一个十进制小数,在一个左闭右开区间。

需要对结果进行十进制小数到二进制小数转换,找到一个属于区间的二进制小数。


二进制小数在线转换器​​​​​​​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值