(本文章用于自学和分享)
数据压缩
无损压缩
游程长度编码(无需知道字符出现频率)
方式一:
出现连续重复的符号 如BBBBBBBB 可以用 B08表示
注意:我们使用固定位数(2位)的数字来表示
方式二:
用于只使用0和1表示的数据中,用4位二进制(无符号)来表示两个1中间0的个数。
注意:若连续的0多于15个,它们就被分为2组或更多组。如:连续的25个0的编码为 1111 1010. 若刚好是15个0, 则表示为 1111 0000.
赫夫曼编码(需计算字符出现频率)
第一步:计算字符频率
第二步:构建赫夫曼树
第三步:分配编码
第四步:编码
Lempel Ziv 编码
LZ编码是称为基于字典的编码的那一类算法的一个例子
压缩原理:需要同时做两件事:建立字典索引和压缩字符串。 从未压缩的字符串中选取最小字符串,这些字符串在字典中不存在,然后为其分配索引值,用索引值代替出现的字符。如:ABBB 在下图中在字典中找到ABB和它的索引值4, 得到的压缩字符串就是4B。