求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

「压缩」修訂間的差異檢視原始碼討論檢視歷史

事實揭露 揭密真相
前往: 導覽搜尋
(创建页面,内容为“{| class="wikitable" align="right" |- | style="background: #66CCFF" align= center| '''<big>压缩</big> ''' |- |[[File:|缩略图|居中|[ 原图链接]]] |-…”)
 
行 1: 行 1:
 
{| class="wikitable" align="right"
 
{| class="wikitable" align="right"
 +
|-
 +
| style="background: #FF2400" align= center|  '''<big>压缩</big>'''
 +
|-
 +
|<center><img src=https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fhcbbsftp.oss-cn-hangzhou.aliyuncs.com%2Fforum%2F201903%2F21%2F111733q25avcv47vl91tzl.gif&refer=http%3A%2F%2Fhcbbsftp.oss-cn-hangzhou.aliyuncs.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1654499610&t=6286d2f2704dea40ea497c84cf325b0a width="300"></center>
 +
<small>[https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word=%E5%8E%8B%E7%BC%A9&step_word=&hs=0&pn=8&spn=0&di=7077213605308923905&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&istype=0&ie=utf-8&oe=utf-8&in=&cl=2&lm=-1&st=undefined&cs=1837893421%2C3166018807&os=2696915824%2C1106703988&simid=12054064%2C813635704&adpicid=0&lpn=0&ln=1911&fr=&fmq=1651907612433_R&fm=&ic=undefined&s=undefined&hd=undefined&latest=undefined&copyright=undefined&se=&sme=&tab=0&width=undefined&height=undefined&face=undefined&ist=&jit=&cg=&bdtype=0&oriquery=&objurl=https%3A%2F%2Fgimg2.baidu.com%2Fimage_search%2Fsrc%3Dhttp%3A%2F%2Fhcbbsftp.oss-cn-hangzhou.aliyuncs.com%2Fforum%2F201903%2F21%2F111733q25avcv47vl91tzl.gif%26refer%3Dhttp%3A%2F%2Fhcbbsftp.oss-cn-hangzhou.aliyuncs.com%26app%3D2002%26size%3Df9999%2C10000%26q%3Da80%26n%3D0%26g%3D0n%26fmt%3Dauto%3Fsec%3D1654499610%26t%3D6286d2f2704dea40ea497c84cf325b0a&fromurl=ippr_z2C%24qAzdH3FAzdH3Fooo_z%26e3Bktstktst_z%26e3Bv54AzdH3F6jw1AzdH3Fve899cadm&gsm=9&rpstart=0&rpnum=0&islist=&querylist=&nojc=undefined&dyTabStr=MCwzLDIsMSw2LDQsNSw3LDgsOQ%3D%3D 来自 呢图网 的图片]</small>
 +
|-
 +
| style="background: #FF2400" align= center|  '''<big></big>'''
  
 
|-
 
|-
  
| style="background: #66CCFF" align= center|  '''<big>压缩</big> '''
+
| align= light|
 
 
|-
 
  
|[[File:| 略图|居中|[ 原图链接]]]
+
中文名称;压
  
|-
+
外文名称;compress
  
| style="background: #66CCFF" align= center|
+
拼音;yā suō
  
|-
+
词义;化繁为简,
  
| align= light|
+
解释;加以压力,以减小体积、大小
  
 +
目的;提炼重要信息,并加以组织整合
 
|}
 
|}
  
'''压缩'''是一种通过特定的算法来减小计算机文件大小的机制。这种机制是一种很方便的发明,尤其是对网络用户,因为它可以减小文件的字节总数,使文件能够通过较慢的互联网连接实现更快传输,此外还可以减少文件的磁盘占用空间。<ref>[ ], , --</ref>
+
'''压缩'''是一种通过特定的算法来减小计算机文件大小的机制。这种机制是一种很方便的[[ 发明]] ,尤其是对网络用户,因为它可以减小文件的字节总数,使文件能够通过较慢的互联网连接实现更快传输,此外还可以减少文件的磁盘占用[[ 空间]] 。<ref>[https://xinzhi.wenda.so.com/a/1520951675615390 最简单的方法来压缩图片,改变图片大小],360搜索 , 2018-03-13</ref>
  
 
==基本介绍==
 
==基本介绍==
  
 压缩(compression)是为了减少数据大小以节省保存空间和传输的时间。为了数据的传输,压缩能够作用于单独的数据内容或者所有的传输单元(包括数据头),这取决于一些特定的因素。
+
 压缩(compression)是为了减少数据大小以节省保存空间和传输的[[ 时间]] 。为了数据的传输,压缩能够作用于单独的数据内容或者所有的传输单元(包括数据头),这取决于一些特定的因素。
  
 内容压缩很简单,它就是移除多余的空白字符,插入单个的重复字符指出一个字符串中重复的字符,以及将小型的位串用频繁使用的字符替代。这种类型的压缩能够将文本文件的大小减少50%。压缩由使用特定公式和算法的程序来执行,它确定如何压缩和解压数据。
+
 内容压缩很简单,它就是移除多余的空白字符,插入单个的重复字符指出一个字符串中重复的字符,以及将小型的位串用频繁使用的字符替代。这种类型的压缩能够将文本文件的大小减少50%。压缩由使用特定公式和算法的程序来执行,它确定如何压缩和解压[[ 数据]]
  
 
==原理==
 
==原理==
  
 利用算法将文件有损或无损地处理,以达到保留最多文件信息,而令文件体积变小。压缩文件的基本原理是查找文件内的重复字节,并建立一个相同字节的"词典"文件,并用一个代码表示,比如在文件里有几处有一个相同的词"中华人民共和国"用一个代码表示并写入"词典"文件,这样就可以达到缩小文件的目的软件。由于计算机处理的信息是以二进制数的形式表示的,因此压缩软件就是把二进制信息中相同的字符串以特殊字符标记来达到压缩的目的。为了有助于理解文件压缩,在脑海里想象一幅蓝天白云的图片。对于成千上万单调重复的蓝色像点而言,与其一个一个定义“蓝、蓝、蓝……”长长的一串颜色,还不如告诉电脑:“从这个位置开始存储1117个蓝色像点”来得简洁,而且还能大大节约存储空间。这是一个非常简单的图像压缩的例子。其实,所有的计算机文件归根结底都是以“1”和“0”的形式存储的,和蓝色像点一样,只要通过合理的数学计算公式,文件的体积都能够被大大压缩以达到“数据无损稠密”的效果。
+
 利用算法将文件有损或无损地处理,以达到保留最多文件信息,而令文件体积变小。压缩文件的基本[[ 原理]] 是查找文件内的重复字节,并建立一个相同字节的"词典"文件,并用一个代码表示,比如在文件里有几处有一个相同的词"中华人民共和国"用一个代码表示并写入"词典"文件,这样就可以达到缩小文件的目的[[ 软件]] 。由于计算机处理的信息是以二进制数的形式表示的,因此压缩软件就是把二进制信息中相同的字符串以特殊字符标记来达到压缩的目的。为了有助于理解文件压缩,在脑海里想象一幅蓝天白云的图片。对于成千上万单调重复的蓝色像点而言,与其一个一个定义“蓝、蓝、蓝……”长长的一串颜色,还不如告诉电脑:“从这个位置开始存储1117个蓝色像点”来得简洁,而且还能大大节约存储空间。这是一个非常简单的图像压缩的例子。其实,所有的计算机文件归根结底都是以“1”和“0”的形式存储的,和蓝色像点一样,只要通过合理的数学计算公式,文件的[[ 体积]] 都能够被大大压缩以达到“数据无损稠密”的效果。
  
 总的来说,压缩可以分为有损和无损压缩两种。如果丢失个别的数据不会造成太大的影响,这时忽略它们是个好主意,这就是有损压缩。有损压缩广泛应用于动画、声音和图像文件中,典型的代表就是影碟文件格式mpeg、音乐文件格式mp3和图像文件格式jpg。但是更多情况下压缩数据必须准确无误,人们便设计出了无损压缩格式,比如常见的zip、rar等。压缩软件(compression software)自然就是利用压缩原理压缩数据的工具,压缩后所生成的文件称为压缩包(archive),体积只有原来的几分之一甚至更小。当然,压缩包已经是另一种文件格式了,如果你想使用其中的数据,首先得用压缩软件把数据还原,这个过程称作解压缩。常见的压缩软件有Winzip、WinRAR等。
+
 总的来说,压缩可以分为有损和无损压缩两种。如果丢失个别的数据不会造成太大的影响,这时忽略它们是个好主意,这就是有损[[ 压缩]] 。有损压缩广泛应用于动画、声音和图像文件中,典型的代表就是影碟文件格式mpeg、音乐文件格式mp3和图像[[ 文件]] 格式jpg。但是更多情况下压缩数据必须准确无误,人们便设计出了无损压缩格式,比如常见的zip、rar等。压缩软件(compression software)自然就是利用压缩原理压缩数据的工具,压缩后所生成的文件称为压缩包(archive),体积只有原来的几分之一甚至更小。当然,压缩包已经是另一种文件格式了,如果你想使用其中的数据,首先得用压缩软件把数据还原,这个过程称作解压缩。常见的压缩软件有Winzip、WinRAR等。
  
 
==重复压缩==
 
==重复压缩==
行 39: 行 45:
 
 第一种
 
 第一种
  
 一种是短语形式的重复,即三个字节以上的重复,对于这种重复,zip用两个数字:1.重复位置距当前压缩位置的距离;2.重复的长度,来表示这个重复,假设这两个数字各占一个字节,于是数据便得到了压缩,这很容易理解。
+
 一种是短语形式的重复,即三个字节以上的重复,对于这种重复,zip用两个[[ 数字]] :1.重复位置距当前压缩位置的距离;2.重复的长度,来表示这个重复,假设这两个数字各占一个字节,于是数据便得到了压缩,这很容易理解。
  
 一个字节有 0 - 255 共 256 种可能的取值,三个字节有 256 * 256 * 256 共一千六百多万种可能的情况,更长的短语取值的可能情况以指数方式增长,出现重复的概率似乎极低,实则不然,各种类型的数据都有出现重复的倾向,一篇论文中,为数不多的术语倾向于重复出现;一篇小说,人名和地名会重复出现;一张上下渐变的背景图片,水平方向上的像素会重复出现;程序的源文件中,语法关键字会重复出现,以几十 K 为单位的非压缩格式的数据中,倾向于大量出现短语式的重复。经过上面提到的方式进行压缩后,短语式重复的倾向被完全破坏,所以在压缩的结果上进行第二次短语式压缩一般是没有效果的。
+
 一个字节有 0 - 255 共 256 种可能的取值,三个字节有 256 * 256 * 256 共一千六百多万种可能的情况,更长的短语取值的可能情况以指数方式增长,出现重复的概率似乎极低,实则不然,各种类型的数据都有出现重复的倾向,一篇[[ 论文]] 中,为数不多的术语倾向于重复出现;一篇小说,人名和地名会重复出现;一张上下渐变的背景图片,水平方向上的像素会重复出现;程序的源文件中,语法关键字会重复出现,以几十 K 为单位的非压缩格式的数据中,倾向于大量出现短语式的重复。经过上面提到的方式进行压缩后,短语式重复的倾向被完全破坏,所以在压缩的结果上进行第二次短语式压缩一般是没有效果的。
  
 
 第二种
 
 第二种
  
 第二种重复为单字节的重复,一个字节只有256种可能的取值,所以这种重复是必然的。其中,某些字节出现次数可能较多,另一些则较少,在统计上有分布不均匀的倾向,这是容易理解的,比如一个 ASCII 文本文件中,某些符号可能很少用到,而字母和数字则使用较多,各字母的使用频率也是不一样的,据说字母 e 的使用概率最高;许多图片呈现深色调或浅色调,深色(或浅色)的像素使用较多(这里顺便提一下:png图片格式是一种无损压缩,其核心算法就是 zip 算法,它和 zip 格式的文件的主要区别在于:作为一种图片格式,它在文件头处存放了图片的大小、使用的颜色数等信息);上面提到的短语式压缩的结果也有这种倾向:重复倾向于出现在离当前压缩位置较近的地方,重复长度倾向于比较短(20字节以内)。这样,就有了压缩的可能:给 256 种字节取值重新编码,使出现较多的字节使用较短的编码,出现较少的字节使用较长的编码,这样一来,变短的字节相对于变长的字节更多,文件的总长度就会减少,并且,字节使用比例越不均匀,压缩比例就越大。
+
 第二种重复为单字节的重复,一个字节只有256种可能的取值,所以这种重复是必然的。其中,某些字节出现次数可能较多,另一些则较少,在统计上有分布不[[ 均匀]] 的倾向,这是容易理解的,比如一个 ASCII 文本文件中,某些符号可能很少用到,而字母和数字则使用较多,各字母的使用频率也是不一样的,据说字母 e 的使用概率最高;许多图片呈现深色调或浅色调,深色(或浅色)的像素使用较多(这里顺便提一下:png图片格式是一种无损压缩,其核心算法就是 zip 算法,它和 zip 格式的文件的主要区别在于:作为一种图片格式,它在文件头处存放了[[ 图片]] 的大小、使用的颜色数等信息);上面提到的短语式压缩的结果也有这种倾向:重复倾向于出现在离当前压缩位置较近的地方,重复长度倾向于比较短(20字节以内)。这样,就有了压缩的可能:给 256 种字节取值重新编码,使出现较多的字节使用较短的编码,出现较少的字节使用较长的编码,这样一来,变短的字节相对于变长的字节更多,[[ 文件]] 的总长度就会减少,并且,字节使用比例越不均匀,压缩比例就越大。
  
 
WinMount、WinRAR、WinZip、7-Zip 、coolrar
 
WinMount、WinRAR、WinZip、7-Zip 、coolrar
行 53: 行 59:
 
 主要有:rar,zip,tar,cab,uue,jar,iso,z,7-zip,ace,lzh,arj,gzip,bz2等压缩文件。
 
 主要有:rar,zip,tar,cab,uue,jar,iso,z,7-zip,ace,lzh,arj,gzip,bz2等压缩文件。
  
 经过压缩软件压缩的文件叫压缩文件,压缩的原理是把文件的二进制代码压缩,把相邻的0,1代码减少,比如有000000,可以把它变成6个0 的写法60,来减少该文件的空间。
+
 经过压缩软件压缩的文件叫压缩文件,压缩的原理是把文件的二进制代码压缩,把相邻的0,1代码减少,比如有000000,可以把它变成6个0 的写法60,来减少该文件的[[ 空间]]
  
 
JAR
 
JAR
  
JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种文档格式。JAR 文件非常类似 ZIP 文件——准确的说,它就是 ZIP 文件,所以叫它文件包。JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,包含了一个 META-INF/MANIFEST.MF 文件,这个文件是在生成 JAR 文件的时候自动创建的。
+
JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种文档格式。JAR [[ 文件]] 非常类似 ZIP 文件——准确的说,它就是 ZIP 文件,所以叫它文件包。JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,包含了一个 META-INF/MANIFEST.MF 文件,这个文件是在生成 JAR 文件的时候自动创建的。
  
 
ZIP
 
ZIP
  
ZIP应该算是最常见的压缩文件格式了,它不需要单独的一个压缩或者解压缩软件,因为Windows系统已经集成了对ZIP压缩格式的支持。
+
ZIP应该算是最常见的压缩[[ 文件]] 格式了,它不需要单独的一个压缩或者解压缩软件,因为Windows系统已经集成了对ZIP压缩格式的支持。
  
 
RAR
 
RAR
  
 虽然ZIP在压缩文件格式中地位很高,但相当多的下载网站都选择了用RAR格式来压缩他们的文件,最根本的原因就在于RAR格式的文件压缩率比ZIP更高。
+
 虽然ZIP在压缩文件格式中地位很高,但相当多的下载网站都[[ 选择]] 了用RAR格式来压缩他们的文件,最根本的原因就在于RAR格式的文件压缩率比ZIP更高。
  
 
7Z作为压缩格式的后起新秀,7Z有着比RAR更高的压缩率,能够将文件压缩的更加小巧。不过因为RAR格式已经高度普及,又没有网络普及的“天时”相助,7Z想要取代RAR的地位还是相当不容易的。
 
7Z作为压缩格式的后起新秀,7Z有着比RAR更高的压缩率,能够将文件压缩的更加小巧。不过因为RAR格式已经高度普及,又没有网络普及的“天时”相助,7Z想要取代RAR的地位还是相当不容易的。
行 71: 行 77:
 
CAB
 
CAB
  
CAB是微软的一种安装文件压缩格式,主要应用于软件的安装程序中。因为涉及到安装程序,所以cab文件中包含的文件通常都不是简单的直接压缩,而是对文件名等都进行了处理,所以虽然可以对其直接解压缩,但解压后得到的文件通常都无法直接使用。
+
CAB是微软的一种安装文件压缩格式,主要应用于软件的安装程序中。因为涉及到安装[[ 程序]] ,所以cab文件中包含的文件通常都不是简单的直接压缩,而是对文件名等都进行了处理,所以虽然可以对其直接解压缩,但解压后得到的文件通常都无法直接使用。
  
 
ISO
 
ISO
  
 很多人都认为ISO是一种压缩格式,这源于WinRAR添加了对ISO格式“解压”的支持。而实际上,ISO并不是压缩格式,它之中所包含的文件也并没有经过压缩。ISO只是一种光盘的镜像格式,完全复制并保存了光盘上的内容而已。所谓的对ISO“解压”的过程,不过就是对ISO内文件的提取过程。
+
 很多人都认为ISO是一种压缩格式,这源于WinRAR添加了对ISO格式“解压”的支持。而实际上,ISO并不是压缩格式,它之中所包含的文件也并没有经过压缩。ISO只是一种光盘的镜像格式,完全复制并保存了光盘上的内容而已。所谓的对ISO“解压”的过程,不过就是对ISO内文件的提取[[ 过程]]
  
 
TAR
 
TAR
  
tar为后辍的文件能用WinZip或WinRAR打开,是因为WinZip或WinRar对.tar文件进行了关联,也就是指可以用相应的解压软件将其解压。
+
tar为后辍的文件能用WinZip或WinRAR打开,是因为WinZip或WinRar对.tar[[ 文件]] 进行了关联,也就是指可以用相应的解压软件将其解压。
  
 
.tar是linux下较为常用的压缩文件的格式,并不是什么数据库文件。
 
.tar是linux下较为常用的压缩文件的格式,并不是什么数据库文件。
行 85: 行 91:
 
UUE
 
UUE
  
uue是一种在遇到邮件编码混合引起乱码的情况下比较有用的压缩格式,可以用WinZip或者WinRAR打开。
+
uue是一种在遇到邮件编码混合引起乱码的[[ 情况]] 下比较有用的压缩格式,可以用WinZip或者WinRAR打开。
  
 
 上面主要只介绍了常用的压缩文件。
 
 上面主要只介绍了常用的压缩文件。
  
 如果从互联网上下载程序和文件,可能会遇到很多ZIP文件。这种压缩机制是一种很方便的发明,尤其是对网络用户,因为它可以减小文件中的比特和字节总数,使文件能够通过较慢的互联网连接实现更快传输,此外还可以减少文件的磁盘占用空间。在下载了文件后,计算机可使用WinZip或Stuffit这样的程序来展开文件,将其复原到原始大小。如果一切正常,展开的文件与压缩前的原始文件将完全相同。 乍一听好像很神秘:它是怎样减少比特和字节的数量并将它们原封不动地还原回去的呢?这个过程背后的基本理念其实非常简单明了,就是下面这种通过简单压缩来明显减小文件的方法
+
 如果从互联网上下载程序和文件,可能会遇到很多ZIP文件。这种压缩机制是一种很方便的[[ 发明]] ,尤其是对网络用户,因为它可以减小文件中的比特和字节总数,使文件能够通过较慢的互联网连接实现更快传输,此外还可以减少文件的磁盘占用空间。在下载了文件后,计算机可使用WinZip或Stuffit这样的程序来展开[[ 文件]] ,将其复原到原始大小。如果一切正常,展开的文件与压缩前的原始文件将完全相同。 乍一听好像很神秘:它是怎样减少比特和字节的数量并将它们原封不动地还原回去的呢?这个过程背后的基本理念其实非常简单明了,就是下面这种通过简单压缩来明显减小文件的方法。
 
 
大多数计算机文件类型都包含相当多的冗余内容——它们会反复列出一些相同的信息。文件压缩程序就是要消除这种冗余现象。与反复列出某一块信息不同,文件压缩程序只列出该信息一次,然后当它在原始程序中出现时再重新引用它
 
  
== 参考来源 ==
+
  大多数计算机文件类型都包含相当多的冗余内容——它们会反复列出一些相同的[[信息]]。文件压缩程序就是要消除这种冗余现象。与反复列出某一块信息不同,文件压缩程序只列出该信息一次,然后当它在原始程序中出现时再重新引用它。
  
{{reflist}}
+
== 参考资料 ==
  
[[Category: ]]
+
[[Category:970 技藝總論 ]]

於 2022年5月7日 (六) 15:23 的修訂

壓縮

來自 呢圖網 的圖片

中文名稱;壓縮

外文名稱;compress

拼音;yā suō

詞義;化繁為簡,

解釋;加以壓力,以減小體積、大小

目的;提煉重要信息,並加以組織整合

壓縮是一種通過特定的算法來減小計算機文件大小的機制。這種機制是一種很方便的發明,尤其是對網絡用戶,因為它可以減小文件的字節總數,使文件能夠通過較慢的互聯網連接實現更快傳輸,此外還可以減少文件的磁盤占用空間[1]

基本介紹

壓縮(compression)是為了減少數據大小以節省保存空間和傳輸的時間。為了數據的傳輸,壓縮能夠作用於單獨的數據內容或者所有的傳輸單元(包括數據頭),這取決於一些特定的因素。

內容壓縮很簡單,它就是移除多餘的空白字符,插入單個的重複字符指出一個字符串中重複的字符,以及將小型的位串用頻繁使用的字符替代。這種類型的壓縮能夠將文本文件的大小減少50%。壓縮由使用特定公式和算法的程序來執行,它確定如何壓縮和解壓數據

原理

利用算法將文件有損或無損地處理,以達到保留最多文件信息,而令文件體積變小。壓縮文件的基本原理是查找文件內的重複字節,並建立一個相同字節的"詞典"文件,並用一個代碼表示,比如在文件里有幾處有一個相同的詞"中華人民共和國"用一個代碼表示並寫入"詞典"文件,這樣就可以達到縮小文件的目的軟件。由於計算機處理的信息是以二進制數的形式表示的,因此壓縮軟件就是把二進制信息中相同的字符串以特殊字符標記來達到壓縮的目的。為了有助於理解文件壓縮,在腦海里想象一幅藍天白雲的圖片。對於成千上萬單調重複的藍色像點而言,與其一個一個定義「藍、藍、藍……」長長的一串顏色,還不如告訴電腦:「從這個位置開始存儲1117個藍色像點」來得簡潔,而且還能大大節約存儲空間。這是一個非常簡單的圖像壓縮的例子。其實,所有的計算機文件歸根結底都是以「1」和「0」的形式存儲的,和藍色像點一樣,只要通過合理的數學計算公式,文件的體積都能夠被大大壓縮以達到「數據無損稠密」的效果。

總的來說,壓縮可以分為有損和無損壓縮兩種。如果丟失個別的數據不會造成太大的影響,這時忽略它們是個好主意,這就是有損壓縮。有損壓縮廣泛應用於動畫、聲音和圖像文件中,典型的代表就是影碟文件格式mpeg、音樂文件格式mp3和圖像文件格式jpg。但是更多情況下壓縮數據必須準確無誤,人們便設計出了無損壓縮格式,比如常見的zip、rar等。壓縮軟件(compression software)自然就是利用壓縮原理壓縮數據的工具,壓縮後所生成的文件稱為壓縮包(archive),體積只有原來的幾分之一甚至更小。當然,壓縮包已經是另一種文件格式了,如果你想使用其中的數據,首先得用壓縮軟件把數據還原,這個過程稱作解壓縮。常見的壓縮軟件有Winzip、WinRAR等。

重複壓縮

有兩種形式的重複存在於計算機數據中,zip就是對這兩種重複進行了壓縮。

第一種

一種是短語形式的重複,即三個字節以上的重複,對於這種重複,zip用兩個數字:1.重複位置距當前壓縮位置的距離;2.重複的長度,來表示這個重複,假設這兩個數字各占一個字節,於是數據便得到了壓縮,這很容易理解。

一個字節有 0 - 255 共 256 種可能的取值,三個字節有 256 * 256 * 256 共一千六百多萬種可能的情況,更長的短語取值的可能情況以指數方式增長,出現重複的概率似乎極低,實則不然,各種類型的數據都有出現重複的傾向,一篇論文中,為數不多的術語傾向於重複出現;一篇小說,人名和地名會重複出現;一張上下漸變的背景圖片,水平方向上的像素會重複出現;程序的源文件中,語法關鍵字會重複出現,以幾十 K 為單位的非壓縮格式的數據中,傾向於大量出現短語式的重複。經過上面提到的方式進行壓縮後,短語式重複的傾向被完全破壞,所以在壓縮的結果上進行第二次短語式壓縮一般是沒有效果的。

第二種

第二種重複為單字節的重複,一個字節只有256種可能的取值,所以這種重複是必然的。其中,某些字節出現次數可能較多,另一些則較少,在統計上有分布不均勻的傾向,這是容易理解的,比如一個 ASCII 文本文件中,某些符號可能很少用到,而字母和數字則使用較多,各字母的使用頻率也是不一樣的,據說字母 e 的使用概率最高;許多圖片呈現深色調或淺色調,深色(或淺色)的像素使用較多(這裡順便提一下:png圖片格式是一種無損壓縮,其核心算法就是 zip 算法,它和 zip 格式的文件的主要區別在於:作為一種圖片格式,它在文件頭處存放了圖片的大小、使用的顏色數等信息);上面提到的短語式壓縮的結果也有這種傾向:重複傾向於出現在離當前壓縮位置較近的地方,重複長度傾向於比較短(20字節以內)。這樣,就有了壓縮的可能:給 256 種字節取值重新編碼,使出現較多的字節使用較短的編碼,出現較少的字節使用較長的編碼,這樣一來,變短的字節相對於變長的字節更多,文件的總長度就會減少,並且,字節使用比例越不均勻,壓縮比例就越大。

WinMount、WinRAR、WinZip、7-Zip 、coolrar

常見壓縮格式

主要有:rar,zip,tar,cab,uue,jar,iso,z,7-zip,ace,lzh,arj,gzip,bz2等壓縮文件。

經過壓縮軟件壓縮的文件叫壓縮文件,壓縮的原理是把文件的二進制代碼壓縮,把相鄰的0,1代碼減少,比如有000000,可以把它變成6個0 的寫法60,來減少該文件的空間

JAR

JAR 文件就是 Java Archive File,顧名思意,它的應用是與 Java 息息相關的,是 Java 的一種文檔格式。JAR 文件非常類似 ZIP 文件——準確的說,它就是 ZIP 文件,所以叫它文件包。JAR 文件與 ZIP 文件唯一的區別就是在 JAR 文件的內容中,包含了一個 META-INF/MANIFEST.MF 文件,這個文件是在生成 JAR 文件的時候自動創建的。

ZIP

ZIP應該算是最常見的壓縮文件格式了,它不需要單獨的一個壓縮或者解壓縮軟件,因為Windows系統已經集成了對ZIP壓縮格式的支持。

RAR

雖然ZIP在壓縮文件格式中地位很高,但相當多的下載網站都選擇了用RAR格式來壓縮他們的文件,最根本的原因就在於RAR格式的文件壓縮率比ZIP更高。

7Z作為壓縮格式的後起新秀,7Z有着比RAR更高的壓縮率,能夠將文件壓縮的更加小巧。不過因為RAR格式已經高度普及,又沒有網絡普及的「天時」相助,7Z想要取代RAR的地位還是相當不容易的。

CAB

CAB是微軟的一種安裝文件壓縮格式,主要應用於軟件的安裝程序中。因為涉及到安裝程序,所以cab文件中包含的文件通常都不是簡單的直接壓縮,而是對文件名等都進行了處理,所以雖然可以對其直接解壓縮,但解壓後得到的文件通常都無法直接使用。

ISO

很多人都認為ISO是一種壓縮格式,這源於WinRAR添加了對ISO格式「解壓」的支持。而實際上,ISO並不是壓縮格式,它之中所包含的文件也並沒有經過壓縮。ISO只是一種光盤的鏡像格式,完全複製並保存了光盤上的內容而已。所謂的對ISO「解壓」的過程,不過就是對ISO內文件的提取過程

TAR

tar為後輟的文件能用WinZip或WinRAR打開,是因為WinZip或WinRar對.tar文件進行了關聯,也就是指可以用相應的解壓軟件將其解壓。

.tar是linux下較為常用的壓縮文件的格式,並不是什麼數據庫文件。

UUE

uue是一種在遇到郵件編碼混合引起亂碼的情況下比較有用的壓縮格式,可以用WinZip或者WinRAR打開。

上面主要只介紹了常用的壓縮文件。

如果從互聯網上下載程序和文件,可能會遇到很多ZIP文件。這種壓縮機制是一種很方便的發明,尤其是對網絡用戶,因為它可以減小文件中的比特和字節總數,使文件能夠通過較慢的互聯網連接實現更快傳輸,此外還可以減少文件的磁盤占用空間。在下載了文件後,計算機可使用WinZip或Stuffit這樣的程序來展開文件,將其復原到原始大小。如果一切正常,展開的文件與壓縮前的原始文件將完全相同。 乍一聽好像很神秘:它是怎樣減少比特和字節的數量並將它們原封不動地還原回去的呢?這個過程背後的基本理念其實非常簡單明了,就是下面這種通過簡單壓縮來明顯減小文件的方法。

大多數計算機文件類型都包含相當多的冗餘內容——它們會反覆列出一些相同的信息。文件壓縮程序就是要消除這種冗餘現象。與反覆列出某一塊信息不同,文件壓縮程序只列出該信息一次,然後當它在原始程序中出現時再重新引用它。

參考資料