熵(shang)编码
哈夫曼编码
用很小的一串01二进制数来代替一个特别长的字符,频率越高,编码越小,频率越低,编码越长,这是它的一个特点。
感谢分享
哈夫曼树+哈夫曼编码
哈夫曼编码
算术编码
通过二进制的小数,来进行编码。在香农编码基础上改进而来的。
算数编码详解
香农编码
熵(shang)编码包括很多种编码,它就是一种无损编码。不需要我们自己写编码算法,都是由现成的编码,直接用就行。
哈夫曼编码详解
1.png左边是平衡二叉树,一个数,左边的小于它,右边的大于他,每一个节点都有2个叶子节点。
右边是哈夫曼树,是一个非平衡二叉树,会根据你的使用频率去计算,你到底是在哪个位置,比如说,40位很高的节点,那么从80到40,就编码为1,比如说160,使用的频率不高,我们就给他编码为2,通过这种方式,编码出来的数据量,就比之前少很多,
例如:在一篇文章中,40所代表的的字母或者单词出现的频率特别高,需要用1表示他,那么编码完之后,数据量也就会变的很少,我们再附上一个编码对应的词或者表,通过一个映射,我们很容易恢复原来的文章了,这是一个很简单的哈夫曼应用。
无损编码方法:用短的编码代替频次高的东西,用长的代替低频次,这样压缩后,数据就会很小。
音频编码过程
1.png当采集到一段声音之后,会给2个模块进行处理,
- 一个是时域转频域,将一个长时间的数据,交给频域转换器,然后转换成多种频段的数据,拆出来那些是我们需要的数据,那些不是我们需要的数据。
- 二是心理声学模型,低于20hz,高于2whz,要去掉,这段声音的复合声音,被遮蔽的声音,那些是可以去掉,
- 最后将2种,汇总在一起,把我们可以去掉的数据,去掉,留下我们需要编码的数据,经过量化,再经过熵编码(可以采用哈夫曼等),编码之后,
形成比特流数据,比特流数据就是压缩好的
,可以经过网端,传输给服务器。
网友评论