用C++写的压缩程序的原理是什么?

用C++写的压缩程序的原理是什么?,第1张

数据压缩目前主要有如下几大类算法

1 统计编码,主要包括霍夫曼编码和算术编码,用途广泛

2 字典编码,主要包括lz77,lz78,lzw等,zip,rar等压缩软件基本用这类算法

3 变换编码,主要包含傅里叶变换、离散余弦变换(DCT)、小波变换等,图像、视频领域使用

4 预测编码,ADPCM等,语音、图像、视频领域使用

你问的压缩程序应该指的是字典编码,这种压缩编码就是扫描待压缩数据,每次都到前面去找,当前的字符串是否在前面出现过,如果出现过就用一个距离和长度来代替这个字符串,例如:

外星人遇到另一个外星人

那么最后这个 "外星人" 就保存为 (-8, 3),表示 "外星人"这个字符串在前面出现过,位置是前面禅搭顷的第8个字符,长度为3。

这种算法就是以色列人1977年提出的算法,实际上现在的压缩软件都是从这种算法改进来的,无论他怎样改,就没枝敏有脱离这个思路。

当贺陆然,目前实际上已经有了更好的算法,但是都无法推广,因为这些更好的算法都有专利。

三种逗拿圆解压命令分别为:unzip,bzip2 -d,unzip text.zip 针对敏闹linux平台下不同的压缩文件类型选择不同的解压文件命令:

1、gzip,gzip是GNUzip的缩写,它是一个GNU自由软件的文件压缩程序。它是Jean-loupGailly和MarkAdler一起开山塌发的。gzip压缩文件名:zip或gz,gzip的解压命令:unzip

2、bzip2,bzip2 是一个基于Burrows-Wheeler 变换的无损压缩软件,压缩效果比传统的LZ77/LZ78压缩算法来得好。bzip2压缩文件名:bz,bzip2解压命令;bzip2 -d。

3、unzip text.zip ,语法为:unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][zip文件][文件][-d <目录>][-x <文件>] 或 unzip [-Z] ,将压缩文件text.zip在当前目录下解压缩

扩展资料

linux解压缩zip文件命令参数

-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。

-f 更新现有的文件。

-l 显示压缩文件内所包含的文件。

-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。

-t 检查压缩文件是否正确。

-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。

参考资料:百度百科—unzip

DD文件是压缩软件DiskDoubler创建的压缩文件存档。DiskDoubler是旧版Mac *** 作系统(Classic Mac OS)使用的文件压缩程序,DD文件现在也已经不再使用。

DiskDoubler使用称为LZ78的压缩算法来压宴斗缩和存档Mac计算机中的文件,打开压缩局祥握的DD文件将立即展开。

DiskDoubler后来被Now Compress和Stuffit SpaceSaver取代。DiskDoubler在Mac OS X不再使用桐庆。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12336308.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存