微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 无损压缩算法有哪些

无损压缩算法有哪些

时间:09-18 来源:互联网 点击:

G、TIFF和PDF等编码之中,还被用于传真机。

  LZW编码

  LZW通过建立一个字符串表,用较短的代码来表示较长的字符串来实现压缩。字符串和编码的对应关系是在压缩过程中动态生成的,并且隐含在压缩数据中,解压的时候根据表来进行恢复,是一种无损压缩,全称 Lempel-ziy- Welch encoding,简称LZW的压缩算法 。

  基本原理

  提取原始文本文件数据中的不同字符,基于这些字符创建一个编译表,然后用编译表中的字符的索引来替代原始文本文件数据中的相应字符,减少原始数据大小。看起来和调色板图象的实现原理差不多,但是应该注意到的是,我们这里的编译表不是事先创建好的,而是根据原始文件数据动态创建的,解码时还要从已编码的数据中还原出原来的编译表 。

  LZW编码算法的具体执行步骤如下步骤:

  1、开始时的词典包含所有可能的根(Root),而当前前缀P是空的;

  2、当前字符(C):=字符流中的下一个字符;

  3、判断级-符串P+C是否在词典中

  (1)如果"是":P:=P+C//(用C扩展P)

  (2)如果"否

  ①把代表当前前缀P的码字输出到码字流

  ②把缀-符串P+C添加到词典;

  ③令P:=C/(现在的P仅包含一个子符C)

  4、判断码字流中是否还有码字要译

  (1)如果"是",就返回到步骤2

  (2)如如果"否"

  ①把代表当前前缀P的码输出到码字流

  ②结束

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top