登录
首页 » 算法 » LZW压缩算法c++实现

LZW压缩算法c++实现

于 2022-03-11 发布 文件大小:24.81 kB
0 285
下载积分: 2 下载次数: 1

代码说明:

应用背景本程序是一个使用C++实现的压缩算法,LZW算法,LZW压缩算法是Lempel-Ziv-Welch 3个人共同发明的,简称 LZW 的压缩算法,可以用任何一种语言来实现它. LZW是GIF图片文件的压缩算法,而且zip压缩的思想也是基于LZW实现的,所以LZW对文本文件具有很好的压缩性能。 LZW压缩算法的基本原理:提取原始文本文件数据中的不同字符,基于这些字符创建一个编码表,然后用编码表中的字符的索引来替代原始文本文件数据中的相应字符,减少原始数据大小。看起来和调色板图象的实现原理差不多,但是应该注意到的是,我们这里的编码表不是事先创建好的,而是根据原始文件数据动态创建的,解码时还要从已编码的数据中还原出原来的编码表. 关键技术编码表中每一项的大小一般为12位,用来代表一个字符串。这样编码表有2**12=4096项,编码值是0~4095。通常情况下0~255是固定的,用 来代表单个字符0~255。而值256通常用来表示开始新的编码表,因为如果编码表的4096项都用完了,而待压缩文件还没有处理完,那么就需要生成新的 编码表继续压缩;257表示压缩结束,用来写到压缩文件尾。从258开始,每个值都代表一个字符串(至少2个字符)。 举个例子,有下面的字符串:ababcdefgefg。(a的ascii码是0x61=97) 压缩后的数据是:97 98 258 99 100 101 102 103 263 103。 请点击左侧文件开始预览 !预览只提供20%的代码片段,完整代码需下载后查看 加载中 侵权举报

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • BLDC源码
    使用AVR的无刷马达控制程序,无感BLDC算法。实现了无刷直流电机的速度环PID控制,效果可以。供大家参考交流使用
    2022-03-03 11:31:46下载
    积分:1
  • apriori
    apriori算法,一种改进的关联规则算法,提高算法运算的速度-apriori
    2022-08-11 20:38:38下载
    积分:1
  • 拉格朗-牛顿算法
    拉格朗-牛顿算法-LaGrand-Newton algorithm
    2022-01-23 10:20:33下载
    积分:1
  • 启动 NS_2.35
    在 NS 2.35 启动 tcl 代码简单启动。你可以轻松学会它的形式如何 tcl 文件中的代码。什么会的参数。值。只是用户友好的代码。
    2022-06-21 15:03:09下载
    积分:1
  • 发现主机网络
    测试一个给定IP地址是否可以在本地使用,并且可以获得更多信息的设备使用的地址,使用ICMP探测网络层,在链路层只在本地网络上使用ARP探测主机
    2023-01-18 23:15:04下载
    积分:1
  • AES128源代码实现
    AES128源代码实现
    2022-02-01 22:45:38下载
    积分:1
  • 有限差分算法
    有限差分算法,在linux下运行,可以提高对有限差分算法的理解,很简单,里面的参数文件设置很详细,都有很好的注释,希望能给新手带去知道
    2022-08-14 19:12:43下载
    积分:1
  • This is a book commonly used algorithms and model introduction, there are BP net...
    这是书上的常用算法和模型介绍,有BP网络的C语言实现,HMM的C语言实现,失量量化的C语言实现。-This is a book commonly used algorithms and model introduction, there are BP networks realize the C language, HMM of the C language, loss of the C language to quantify.
    2022-01-31 08:49:34下载
    积分:1
  • K-Means算法 mapreduce
    public class KmeansMapper extends MapReduceBase implements   Mapper {  // one coodinate(data)  private List coordinate = new ArrayList();  private BasicKMeansTool basicKmeans = new BasicKMeansTool();  public void map(LongWritable key, Text value,    OutputCollector midoutput,    Reporter arg3) throws IOException {   // TODO Auto-generated method stub   String line = value.toString();   String[] dataList = line.split(",");   List distances = null;   StringTokenizer itr;   for (int i = 0; i < dataList.length; i++) {    itr = new StringTokenizer(dataList[i]);  &nbs
    2023-02-01 17:45:04下载
    积分:1
  • 2022-04-26 09:25:16下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载