解压缩原理
‘壹’ 什么是解压缩
一、什么是文件压缩、解压缩
当 我 们 从 Internet 下 载 文 件 时 , 许 多 文 件 通 常 都 是 所 谓 的 压 缩 文 件 , 那 到 底 什 么 是 压 缩 文 件 呢 ? 最 直 接 的 讲 法 是 , 一 个 较 大 的 文 件 经 压 缩 后 , 产 生 了 另 一 个 较 小 容 量 的 文 件 。 而 这 个 较 小 容 量 的 文 件 , 我 们 就 叫 它 是 这 些 较 大 容 量 的 ( 可 能 一 个 或 一 个 以 上 的 文 件 ) 的 压 缩 文 件 。
要 使 用 这 些 经 过 压 缩 的 文 件 , 您 就 必 须 将 这 些 经 过 压 缩 处 理 的 文 件 还 原 成 可 以 处 理 或 执 行 的 文 件 格 式 。
目 前 互 联 网 络 上 大 家 常 用 的 FTP文 件 服 务 器 上 的 文 件 大 多 属 于 压 缩 文 件 , 文 件 下 载 后 必 须 先 解 压 缩 才 能 够 使 用 ; 另 外 在 使 用 电 子 邮 件 附 加 文 件 功 能 的 时 候 , 最 好 也 能 事 先 对 附 加 文 件 进 行 压 缩 处 理 。 这 样 做 的 结 果 , 除 了 减 轻 网 络 的 负 荷 , 更 能 省 时 省 钱 , 利 人 又 利 己 , 何 乐 而 不 为 呢 ?
二、压 缩 文 件 的 类 型
目 前 网 络 上 有 两 种 常 见 的 压 缩 格 式 : 一 种 是 Zip, 另 一 种 是 EXE。 其 中 Zip的 压 缩 文 件 可 以 通 过 WinZip这 套 解 压 缩 工 具 进 行 解 压 缩 ,而 EXE则 是 属 于 自 解 压 文 件 ,只 要 用 鼠 标 双 击 这 类 下 载 后 的 文 件 图 标 (若 您 的 Windows98属 于 web风 格 , 则 只 需 按 一 下 ), 便 可 以 自 动 解 压 缩 。 因 为 EXE 文 件 内 含 解 压 缩 程 序 ,因 此 会 比 Zip 略 大 一 些 。 若 想 充 分 考 虑 到 文 件 容 量 的 大 小 , 其 实 Zip是 一 个 较 佳 的 选 择 。
三、用 WinZip解 压 缩
在 这 里 , 我 们 以 njcom210.zip为 例 , 说 明 如 何 利 用 WinZip进 行 文 件 解 压 缩 。
在 资 源 管 理 器 中 双 击 *.zip 文 件 ,就 会 自 动 打 开 WinZip 程 序 , 显 示 出 此 压 缩 文 件 内 含 的 文 件 内 容 。
①决 定 解 压 缩 后 文 件 的 储 存 路 径
②选 此 项 表 示 解 压 所 有 的 文 件
③此 处 也 可 以 用 鼠 标 点 选,直 接 选 择 解 压 缩 文 件 的 储 存 位 置
四、制 作 一 个 压 缩 文 件
首 先 请 利 用 资 源 管 理 器 选 中 要 压 缩 的 文 件 或 文 件 夹,然 后 单 击 鼠 标 右 键,选 择“Add to WEB zip”。系 统 就 会 在 同 一 个 文 件 夹 中 自 动 产 生 该 文 件 或 文 件 夹 的 压 缩 文 件 。
五、把 多 个 文 件 夹 压 缩 成 一 个 文 件
打 开 资 源 管 理 器 , 选 中 要 压 缩 的 文 件 夹 , 然 后 单 击 鼠 标 右 键, 选 择 “Add to Zip”:
①输 入 压 缩 文 件 名 及 所 在 文 件 夹
②包 括 子 文 件 夹 返 回 主 列 表
③记 录 路 径 关 系
④点 这 里
六、制 作 自 解 压 文 件
WinZip可 以 将 压 缩 文 件 制 作 成 一 个 执 行 文 件 。 当 别 人 取 得 这 类 文 件 , 自 己 并 不 需 要 拥 有 解 压 缩 的 程 序 , 只 需 要 直 接 执 行 这 个 执 行 文 件 便 可 解 压 。
要 建 立 一 个 自 解 压 文 件 , 选 中 文 件 后 点 击 鼠 标 右 键 ,执 行:“Create Self Extractor(.EXE) ”指 令 即 可 。
‘贰’ 压缩和解压缩的原理是什么
目前压缩技术可分为通用无损数据压缩与有损压缩两大类,但不管是采用何种技术模型,其本质内容都是一样的,即都是通过某种特殊的编码方式将数据信息中存在的重复度、冗余度有效地降低,从而达到数据压缩的目的。比如:“中国”是“中华人民共和国”的简称,但前者的字数是2,后者则是7,但我们都不会对它们俩所要表达的意思产生误解,这是因为前者保留了信息中最“关键点”。同时,作为有思维能力的人类,我们可以根据前后词汇关系和知识积累,就可推断出其原来的全部信息。压缩技术也一样,在不影响文件的基本使用的前提下,只保留原数据中一些“关键点”,去掉了数据中的重复的、冗余的信息,从而达到压缩的目的。这就是文件压缩技术所要遵循的最基本原理。
‘叁’ 解压是为了干什么
要理解解压首先的先知的压缩 压缩:是把原文件按照一定的编码方式进行重组,优点很多,比如,防止文件被破坏,和方便传输,还可以设置密码,起着保护隐私的作用。 解压:是压缩的逆运算。 有些人经常会使用压缩工具,他们大多都会这样认为,压缩就是把原有文件变小,方便存储。 这也是一个优点,但,比如图片或者一些软件生成的文件,经过压缩后的文件和源文件相差无几。 像,视频、音频这一类文件压缩后才可以释放很大的空间。但是,最好是不要压缩,因为,解压的是后,不是百分之百的还原,所以质量得不到保证,而且还会解压错误,或者,损坏文件。
希望采纳
‘肆’ zip 的压缩原理与实现
文件压缩原理
我们使用计算机所做的事情大多都是对文件进行处理。每个文件都会占用一定的磁盘空间,我们希望一些文件,尤其是暂时不用但又比较重要不能删除的文件(如备份文件,有点像鸡肋呀),尽可能少的占用磁盘空间。但是,许多文件的存储格式是比较松散的,这样就浪费了一些宝贵的计算机存储资源。这时,我们可以借助压缩工具解决这个问题,通过对原来的文件进行压缩处理,使之用更少的磁盘空间保存起来,当需要使用时再进行解压缩操作,这样就大大节省了磁盘空间。当你要拷贝许多小文件时,通过压缩处理可以提高执行效率。如果小文件很多,操作系统要执行频繁的文件定位操作,需要花费很多的时间。如果先把这些小文件压缩,变成一个压缩文件后,再拷贝时就很方便了。由于计算机处理的信息是以二进制数的形式表示的,因此压缩软件就是把二进制信息中相同的字符串以特殊字符标记来达到压缩的目的。为了有助于理解文件压缩,请您在脑海里想象一幅蓝天白云的图片。对于成千上万单调重复的蓝色像点而言,与其一个一个定义“蓝、蓝、蓝……”长长的一串颜色,还不如告诉电脑:“从这个位置开始存储1117个蓝色像点”来得简洁,而且还能大大节约存储空间。这是一个非常简单的图像压缩的例子。其实,所有的计算机文件归根结底都是以“1”和“0”的形式存储的,和蓝色像点一样,只要通过合理的数学计算公式,文件的体积都能够被大大压缩以达到“数据无损稠密”的效果。总的来说,压缩可以分为有损和无损压缩两种。如果丢失个别的数据不会造成太大的影响,这时忽略它们是个好主意,这就是有损压缩。有损压缩广泛应用于动画、声音和图像文件中,典型的代表就是影碟文件格式mpeg、音乐文件格式mp3和图像文件格式jpg。但是更多情况下压缩数据必须准确无误,人们便设计出了无损压缩格式,比如常见的zip、rar等。压缩软件(compression software)自然就是利用压缩原理压缩数据的工具,压缩后所生成的文件称为压缩包(archive),体积只有原来的几分之一甚至更小。当然,压缩包已经是另一种文件格式了,如果你想使用其中的数据,首先得用压缩软件把数据还原,这个过程称作解压缩。常见的压缩软件有winzip、winrar等
‘伍’ 压缩和解压有什么区别
压缩是将一个或者多个文件集合成一个压缩包 将原有文件所占空间(也就是文件大小)缩小 并且较多的文件压缩成包之后 文件的传输率也变高 对于EXE文件 也可以比较有效的防止病毒感染 压缩率越高 压缩包越小 解压是将压缩包中的文件释放回原来的状态 其实说白了就是加减的关系 常见的压缩格式有ZIP RAR 7Z (其中ZIP压缩率最低 多数是原文件大小) 压缩与解压都是通过压缩软件操作 顺便一提 不是压缩率越高越好 有些文件强制压缩之后 可能会在压缩过程中造成文件损坏 再解压就会出现错误中断 如果你需要的压缩的文件不大 推荐还是用ZIP比较保险
‘陆’ 压缩文件的运行原理
有损压缩和无损压缩。 如果您从互联网上下载了许多程序和文件,可能会遇到很多ZIP文件。这种压缩机制是一种很方便的发明,尤其是对网络用户,因为它可以减小文件中的比特和字节总数,猜桐使文件能够通过较慢的互联网连接实现更快传输,此外还可以减少文件的磁盘占用空间。在下载了文件后,计算机可使用WinZip或Stuffit这样的程序来展开文件,将其复原到原始大小。如果一切正常,展开的文件与压缩前的原桐档始文件将完全相同。
乍一听好像很神秘:您是怎样减少比特和字节的数量并将它们原封不动地还原回去的呢?等一切水落石出之后,您会发现这个过程背后的基本理念其实非常简单明了。在本文中,我们将讨论这种通过简单压缩来明显减小文件的方法。
大多数计算机文件类型都包含相当多的冗余内容——它们会反复列出一些相同的信息。文件压缩程序就是要消除这种冗余现象。与反复列出某一块信息不同,文件压缩程序只列出该信息一次,然后当它在原始程序中出现时再重新引用它。
以我们熟悉的信息类型——单词——为例子。
肯尼迪(John F. Kennedy)在1961年的就职演说中曾说过下面这段着名的话:
Ask not what your country can do for you——ask what you can do for your country.(不要问国家能为你做些什么,而应该问自己能为国家做些什么。)
这段话有17个单词,包含61个字母、16个空格、1个破折号和1个句点。如果每个字母、空格或标点都占用1个内存单元,那么文件的总大小为79个单元。为了减小文件的大小,我们需要找出冗余的部分。
我们立刻发现:
如果忽略大小写字母间的区别,这个句子几乎有一半是冗余的。九个单词(ask、not、what、your、country、can、do、for、you)几乎提供了组成整句话所需的所有东西。为了构造出另一半句子,我们只需要拿出前半段句子中的单词,然后加上空格和标点就行了。
大多数压缩程序使用基于自适应字典的LZ算法来缩小文件。“LZ”指的是此算法的发明者Lempel和Ziv,“字典”指的是对数据块进行归类的方法。
排列字典的机制有很多种,它也可以像编号列表那样简单。在我们检查肯尼迪这句着名讲话时,可以挑出重复的单词,并将它们放到编号索引中。然后,我们直接写入编号而不是写入整个单词。
因此,如果我们的字典是:
ask
what
your
country
can
do
for
you
我们的句子现在就应该是这样的:
1 not 2 3 4 5 6 7 8-- 1 2 8 5 6 7 3 4
如果您了解这种机制,那么只需使用该字典和编号模式即可轻松重新构造出原始句子。这就是在展开某个下载文件时,计算机中的解压缩程序所做的工作。你可能还遇到过能够自行解压缩的压缩文件。若要创建这种文件,编程人员需要在被压缩的文件中设置一个简单的解压缩程序。在下载完毕后,它可以自动重新构造出原始文件。
但是使用这种机制究竟能够节省多少空间呢?“1 not 2 3 4 5 6 7 8——1 2 8 5 6 7 3 4”当然短于“Ask not what your country can do for you-- ask what you can do for your country.”,但应注意的是,我们需要随文件一起保存这个字典。
在实际压缩方案中,计算出各种文件需求是一个相当复杂的过程。让我们回过头考虑一下上面的例子。每个字符和空格都占用1个内存单元,整个原句要占用79个单元。压缩后的句子(包括空格)占用了37个单元,而字典(单词和编号)也占用了37个单元。也就是说,文件的大小为74个单元,因此我们并没有把文件大小减少很多。
但这只是一个句子的情况!可以想象的是,如果用该压缩程序处理完肯尼迪讲话的其余部分,我们会发现这些单词以及其他单词重复了更多次。而且,正如下一节所言,为了得到尽可能高的组织效率,可以对字典进行重写。
在上一个的例子中,我们挑出了所有重复的单词并将它们放在一个字典中。对于我们来说,这是最显而易见的字典编写方法。但是压缩程序却不这样认为:它对单词没有概念——它只会寻找各个模式。为了尽可能减小文件的大小,它会仔细挑选出最优模式。
如果从这穗轮坦个角度处理该句子,我们最终会得到一个完全不同的字典。
如果压缩程序扫描肯尼迪的这句话,它遇到的第一个冗余部分只有几个字母长。在ask not what your中,出现了一个重复的模式,即字母t后面跟一个空格——在not和what中。如果压缩程序将此模式写入字典,则每次出现“t”后面跟一个空格的情况时,它会写入一个“1”。但是在这个短句中,此模式的出现次数不够多,不足以将其保留为字典中的一个条目,因此程序最终会覆盖它。
程序接下来注意到的内容是ou,在your和country中都出现了它。如果这是一篇较长的文档,将此模式写入字典会节省大量空间——在英语中ou是一个十分常见的字母组合。但是在压缩程序看完整个句子后,它立即发现了一个更好的字典条目选择:不仅ou发生了重复,而且your和country整个单词都发生了重复,并且它们实际上是作为一个短语your country一起发生重复的。在本例中,程序会用your country条目覆盖掉字典中的ou条目。
短语can do for也发生了重复,一次后面跟着your,另一次跟着you,因此我们又发现can do for you也是一种重复模式。这样,我们可以用一个数字来代替15个字符(包含空格),而your country只允许我们用一个数字代替13个字符(包含空格),所以程序会用r country条目覆盖your country条目,然后再写入一个单独的can do for you条目。程序通过这种方式继续工作,挑出所有重复的信息,然后计算应该将哪一种模式写入字典。基于自适应字典的LZ算法中的“自适应”部分指的就是这种重写字典的能力。程序执行此工作的过程实际上非常复杂。
无论使用什么方法,这种深入搜索机制都能比仅仅挑出单词这种方法更有效率地对文件进行压缩。如果使用我们上面提取出的模式,然后用“__”代替空格,最终将得到下面这个更大的字典:
ask__
what__­
you
r__country
__can__do__for__you
而句子则较短:
“1not__2345__--__12354”
句子现在占用18个内存单元,字典占用41个单元。所以,我们将文件总大小从79个单元压缩到了59个单元!这仅仅是压缩句子的一种方法,而且不一定是最高效的方法。(您能找到更好的方法吗?)
文件压缩率取决于多种因素,包括文件类型、文件大小和压缩方案。
在世界上的大多数语言中,某些字母和单词经常以相同的模式一起出现。正是由于这种高冗余性,而导致文本文件的压缩率会很高。通常大小合适的文本文件的压缩率可以达到50%或更高。大多数编程语言的冗余度也很高,因为它们的命令相对较少,并且命令经常采用一种设定的模式。对于包含大量不重复信息的文件(例如图像或MP3文件),则不能使用这种机制来获得很高的压缩率,因为它们不包含重复多次的模式。
如果文件有大量重复模式,那么压缩率通常会随着文件大小的增加而增加。从我们的例子中就可以看出这一点——如果我们摘录的肯尼迪讲话再长一些,您会发现又多次出现了我们字典中的模式,因此能够通过每个字典条目节省更多的文件空间。此外,对于更大的文件,还可能出现具有更大普遍性的模式,从而能够创建出效率更高的字典。
此外,文件压缩效率还取决于压缩程序使用的具体算法。有些程序能够在某些类型的文件中更好地寻找到模式,因此能更有效地压缩这些类型的文件。其他一些压缩程序在字典中又使用了字典,这使它们在压缩大文件时表现很好,但是在压缩较小的文件时效率不高。尽管这一类的所有压缩程序都基于同一个基本理念,但是它们的执行方式却各不相同。程序开发人员始终在尝试建立更好的压缩机制。 我们在上文中讨论的压缩类型称为无损压缩,因为您重新创建的文件与原始文件完全相同。所有无损压缩都基于这样一种理念:将文件变为“较小”的形式以利于传输或存储,并在另一方收到它后复原以便重新使用它。
有损压缩则与此大不相同。这些程序直接去除“不必要”的信息,对文件进行剪裁以使它变得更小。这种类型的压缩大量应用于减小位图图像的文件大小,因为位图图像的体积通常非常庞大。为了了解有损压缩的工作原理,让我们看看你的计算机如何对一张扫描的照片进行压缩。
对于此类文件,无损压缩程序的压缩率通常不高。尽管图片的大部分看起来都是相同的——例如,整个天空都是蓝色的——但是大部分像素之间都存在微小的差异。为了使图片变得更小同时不降低其分辨率,您必须更改某些像素的颜色值。如果图片中包含大量的蓝色天空,程序会挑选一种能够用于所有像素的蓝色。然后,程序重写该文件,所有天空像素的值都使用此信息。如果压缩方案选择得当,您不会注意到任何变化,但是文件大小会显着减小。
当然,对于有损压缩,在文件压缩后您无法将其复原成原始文件的样子。您必须接受压缩程序对原始文件的重新解释。因此,如果需要完全重现原来的内容(例如软件应用程序、数据库和总统就职演说),则不应该使用这种压缩形式。
‘柒’ 解压文件的目的是什么为什么要解压
解压文件的目的是将一个通过软件压缩的文档、文件等各种东西恢复到压缩之前的样子。未解压的压缩包无法使用其中的数据。解压完成以后就会在压缩文件所在目录出现一个新的文件,这个文件就是解压出来的文件,但其也有可能不是一个文件,是由多个文件组成的东西。
(7)解压缩原理扩展阅读:
对于有损压缩,在文件压缩后无法将其解压复原成原始文件的样子。必须接受压缩程序对原始文件的重新解释。因此,如果需要完全重现原来的内容,例如软件应用程序、数据库,则不应该使用这种压缩形式。
一般压缩软件的解压缩速度为30M/S左右。与计算机配置有关,一般认为与内存、CPU、硬盘关系较大,在一般实际情况下,解压速度速度主要受到硬盘影响。