数据压缩及编码问题问题

(本文章用于自学和分享)

 

数据压缩

 

数据压缩及编码问题问题_第1张图片

 

无损压缩

游程长度编码(无需知道字符出现频率)

方式一:

         出现连续重复的符号  如BBBBBBBB 可以用 B08表示  

注意:我们使用固定位数(2位)的数字来表示

数据压缩及编码问题问题_第2张图片

 

方式二:

         用于只使用01表示的数据中,用4位二进制(无符号)来表示两个1中间0的个数

         注意:若连续的0多于15,它们就被分为2组或更多组。如:连续的25个0的编码为 1111  1010.      若刚好是150, 则表示为 1111  0000.

数据压缩及编码问题问题_第3张图片

 

赫夫曼编码(需计算字符出现频率)

第一步:计算字符频率

数据压缩及编码问题问题_第4张图片

第二步:构建赫夫曼树

数据压缩及编码问题问题_第5张图片

数据压缩及编码问题问题_第6张图片

数据压缩及编码问题问题_第7张图片

数据压缩及编码问题问题_第8张图片

数据压缩及编码问题问题_第9张图片

第三步:分配编码

数据压缩及编码问题问题_第10张图片

第四步:编码

数据压缩及编码问题问题_第11张图片

 

Lempel  Ziv 编码

         LZ编码是称为基于字典的编码的那一类算法的一个例子

 

压缩原理:需要同时做两件事:建立字典索引和压缩字符串。 从未压缩的字符串中选取最小字符串,这些字符串在字典中不存在,然后为其分配索引值,用索引值代替出现的字符。如:ABBB 在下图中在字典中找到ABB和它的索引值4, 得到的压缩字符串就是4B。

数据压缩及编码问题问题_第12张图片

 

 

 

你可能感兴趣的:(计算机基本原理学习,LZ编码,赫夫曼编码,压缩,编码,游程编码)