当前位置:首页 » 文件管理 » 文件压缩的原理

文件压缩的原理

发布时间: 2023-01-29 08:44:08

1. 压缩文件是什么原理啊

什么是压缩文件?
简单的说,就是经过压缩软件压缩的文件叫压缩文件,压缩的原理是把文件的二进制代码压缩,把相邻的0,1代码减少,比如有000000,可以把它变成6个0 的写法60,来减少该文件的空间。
■怎么压缩文件?
首先要安装压缩软件,现在比较流行的是WinRAR“一种高效快速的文件压缩软件(中文版)”。
其次是建立一个压缩包:选择你要制作成压缩包的文件或文件夹,当然你也可也多选,方法同资源管理器,也就是按住Ctrl或Shift再选择文件(文件夹)。 选取完毕之后,就可以单击工具栏上的“压缩”按钮,在这里你可以选择压缩格式:RAR和ZIP。 如果你想得到较大的压缩率,建议选择RAR格式。
各个选项选择好以后,单击确定按钮就开始制作压缩包了,非常方便。
有时候大家会遇到这个问题,就是你在一个论坛里要上传一些文件压缩包,压缩包大小有3M,但是论坛限制会员上传大小只有2M,怎么办呢?
其实办法很简单,就是在你压缩这个文件时,分成几个带分卷压缩包,分卷包大小设置为2M即可,比如:原来文件名为123.rar(3M),压缩成分卷包后为123.part1.rar(2M)与123.part2.rar(1M)两个文件,这样你就可以上传了。
具体方法如下:
1、在要压缩的文件上点右键
2、添加到压缩文件....
3、选常规
4、压缩方式选最好
5、批定压缩分卷大小(按字节计算),1M = 1024K,1K = 1024字节,填写数字即可
当你下载了带有分卷的压缩包后,如何解压文件呢?
具体方法如下:
1、把所有的压缩分卷全部下载完整
2、所有分卷必须在同一个文件夹内
3、然后双击解压第一个分卷,即可
注:分卷解压的文件必须是连续的,若分卷未下载完整,则解压时自然会提示需要下一压缩分卷

2. 压缩或解压文件是什么原理

压缩文件的基本原理是查找文件内的重复字节,并建立一个相同字节的"词典"文件,并用一个代码表示,比如在文件里有几处有一个相同的词"中华人民共和国"用一个代码表示并写入"词典"文件,这样就可以达到缩小文件的目的.
由于计算机处理的信息是以二进制数的形式表示的,因此压缩软件就是把二进制信息中相同的字符串以特殊字符标记来达到压缩的目的。为了有助于理解文件压缩,请您在脑海里想象一幅蓝天白云的图片。对于成千上万单调重复的蓝色像点而言,与其一个一个定义“蓝、蓝、蓝……”长长的一串颜色,还不如告诉电脑:“从这个位置开始存储1117个蓝色像点”来得简洁,而且还能大大节约存储空间。这是一个非常简单的图像压缩的例子。其实,所有的计算机文件归根结底都是以“1”和“0”的形式存储的,和蓝色像点一样,只要通过合理的数学计算公式,文件的体积都能够被大大压缩以达到“数据无损稠密”的效果。总的来说,压缩可以分为有损和无损压缩两种。如果丢失个别的数据不会造成太大的影响,这时忽略它们是个好主意,这就是有损压缩。有损压缩广泛应用于动画、声音和图像文件中,典型的代表就是影碟文件格式mpeg、音乐文件格式mp3和图像文件格式jpg。但是更多情况下压缩数据必须准确无误,人们便设计出了无损压缩格式,比如常见的zip、rar等。压缩软件(compression software)自然就是利用压缩原理压缩数据的工具,压缩后所生成的文件称为压缩包(archive),体积只有原来的几分之一甚至更小。当然,压缩包已经是另一种文件格式了,如果你想使用其中的数据,首先得用压缩软件把数据还原,这个过程称作解压缩。常见的压缩软件有winzip、winrar等。
有两种形式的重复存在于计算机数据中,zip就是对这两种重复进行了压缩。
一种是短语形式的重复,即三个字节以上的重复,对于这种重复,zip用两个数字:1.重复位置距当前压缩位置的距离;2.重复的长度,来表示这个重复,假设这两个数字各占一个字节,于是数据便得到了压缩,这很容易理解。
一个字节有 0 - 255 共 256 种可能的取值,三个字节有 256 * 256 * 256 共一千六百多万种可能的情况,更长的短语取值的可能情况以指数方式增长,出现重复的概率似乎极低,实则不然,各种类型的数据都有出现重复的倾向,一篇论文中,为数不多的术语倾向于重复出现;一篇小说,人名和地名会重复出现;一张上下渐变的背景图片,水平方向上的像素会重复出现;程序的源文件中,语法关键字会重复出现(我们写程序时,多少次前后、paste?),以几十 K 为单位的非压缩格式的数据中,倾向于大量出现短语式的重复。经过上面提到的方式进行压缩后,短语式重复的倾向被完全破坏,所以在压缩的结果上进行第二次短语式压缩一般是没有效果的。
第二种重复为单字节的重复,一个字节只有256种可能的取值,所以这种重复是必然的。其中,某些字节出现次数可能较多,另一些则较少,在统计上有分布不均匀的倾向,这是容易理解的,比如一个 ASCII 文本文件中,某些符号可能很少用到,而字母和数字则使用较多,各字母的使用频率也是不一样的,据说字母 e 的使用概率最高;许多图片呈现深色调或浅色调,深色(或浅色)的像素使用较多(这里顺便提一下:png 图片格式是一种无损压缩,其核心算法就是 zip 算法,它和 zip 格式的文件的主要区别在于:作为一种图片格式,它在文件头处存放了图片的大小、使用的颜色数等信息);上面提到的短语式压缩的结果也有这种倾向:重复倾向于出现在离当前压缩位置较近的地方,重复长度倾向于比较短(20字节以内)。这样,就有了压缩的可能:给 256 种字节取值重新编码,使出现较多的字节使用较短的编码,出现较少的字节使用较长的编码,这样一来,变短的字节相对于变长的字节更多,文件的总长度就会减少,并且,字节使用比例越不均匀,压缩比例就越大。

3. 文件压缩的原理

目前压缩技术可分为通用无损数据压缩与有损压缩两大类,但不管是采用何种技术模型,其本质内容都是一样的,即都是通过某种特殊的编码方式将数据信息中存在的重复度、冗余度有效地降低,从而达到数据压缩的目的。比如:“中国”是“中华人民共和国”的简称,但前者的字数是2,后者则是7,但我们都不会对它们俩所要表达的意思产生误解,这是因为前者保留了信息中最“关键点”。同时,作为有思维能力的人类,我们可以根据前后词汇关系和知识积累,就可推断出其原来的全部信息。压缩技术也一样,在不影响文件的基本使用的前提下,只保留原数据中一些“关键点”,去掉了数据中的重复的、冗余的信息,从而达到压缩的目的。这就是文件压缩技术所要遵循的最基本原理。
例如:一个文件的内容是11100000000...000001111(中间有一万个零),你要完全写出来的话,会很长很长,但如果你写“111一万个零1111”来描述它,也能得到同样的信息,但却只有十一个字,这样就减小了文件体积。在具体应用中很少有这样的文件存在,那些文件都相当复杂,根据一定的数学算法,权衡把哪段字节用一个特定的更小字节代替,就可以实现数据最大程度的无损压缩.

4. 为什么要把文件压缩

①能省空间。在早期计算机硬盘里的空间比较小时,这个作用尤为重要。
②便于管理文件,类似一个单文件的文件夹。
③保密作用。这也是我个人最重要的用途。现在随着存储空间的越来越大,越来越便宜,压缩本身的作用大大降低了,加密的作用就重要得多了。即把文件用压缩软件打成包(用压缩度最小的“存储”格式),然后加上密码。这样的这样,文件就算是被别人偷去了,也没什么可担心的。其实压缩软件的加密强度是相当高的,可不是这里头有个人的帖子里说的那样,是个“简单加密”。
④文件切割作用。有时候某个文件太大,需要把它分割成几个小些的文件,便于传输(比如说邮箱的附件有大小限制)或是拷贝。在一些老式的计算机中,硬盘分区格时式是fat32,无法存储超过4G的文件,这种时候也有必要把大文件分割成小的文件。这两种时候,倒是都可以结合原本的压缩功能

5. 数据压缩的基本原理

数据压缩的基本原理

--------------------------------------------------------------------------------

数据压缩技术就是对原始数据进行数据编码或压缩编码。

目前常用的压缩编码有:冗余压缩法(无损压缩法、熵编码)和熵压缩法(有损压缩法)两类。

无损压缩是可逆的;有损压缩是不可逆的。

--------------------------------------------------------------------------------

变长编码

使用长度可变的代码来对以不同频率出现的样本进行编码。

1·Huffman编码

Huffman编码又称最佳编码。

Huffman编码过程是:

*将信源符号按概率递减顺序排列;

*把两个最小的概率加起来,作为新符号的概率;

*重复上述两步骤,直到概率的和达到1为止;

*在每次合并消息时,将被合并的消息赋予1和0或赋予0和1;

*寻找从每一信源符号到概率为1的路经,记录下路经上的1和0;

*对每一符号写出从码树的根到终结点1、0序列。

例:对信源

[X1,X2,X3,X4,X5,X6]=[0.25,0.25,0.20,0.15,0.10,0.05]

进行Huffman编码。

其中:X1=01;X2=10;X3=11;X4=000;X5=0010;X6=0011。

2·算术编码

算术编码是一种二元编码。

这种编码方法是在不考虑信源统计的情况下,只要监视一小段时间内码字出现的频率,不管统计是平稳的或非平稳的,编码的码率总能趋近于信源熵值,每次迭代的编码算法只处理一个数据符号,并且只有算术运算。

对二进制编码来说,信源符号只有两个。在算术编码的初级阶段,可设一个大概率Pe和小概率Qe,然后对被编码比特流符号进行判断。

其步骤:

*设编码初始化子区间为[0,1],Qe从0算起,则Pe=1-Qe。

*确定子区间起始位置:子区间起始位置=前子区间的长度+ 当前符号的区间左端X前子区间长度

*确定新子区间长度:新子区间长度=前子区间的长度X当前符号的概率

*随着被编码数据流符号的输入,子区间逐渐缩小,

*最后得到的子区间长度决定了表示该区域内的某一个数所需的位数。

例:P42

--------------------------------------------------------------------------------

预测编码

(自习)

--------------------------------------------------------------------------------

变换编码

变换编码是指对信号进行变换后在编码。

例如:

典型的编码结构是:

--------------------------------------------------------------------------------

模型编码

模型编码是指采用模型的方法对传输的图像进行参数估测。

模型编码有:随机马尔可夫场和分形图像编码。

1·分形的概念

分形的含义是其组成部分以某种方式与整体相似的形(一类无规则、混乱而复杂),其局部与整体有相似性的体系,即:自相似性体系。

2·分形编码

*基本原理:分形的方法是把一幅数字图像,通过一些图像处理技术将原始图像分成一些子图像,然后在分形集中查找这样的子图像。分形集存储许多迭代函数,通过迭代函数的反复迭代,可以恢复原来的子图像。

分形编码压缩的步骤:

第一步:把图像划分为互不重叠的、任意大小的的D分区;

第二步:划定一些可以相互重叠的、比D分区大的R分区;

第三步:为每个D分区选定仿射变换表。

分形编码解压步骤:

首先从文件中读取D分区划分方式的信息和仿射变换系数等数据;

然后划定两个同样大小的缓冲区给D图像和R图像,并把R初始化到任一初始阶段;

根据仿射变换系数把其相应的R分区做仿射变换,并用变换后的数据取代该D分区的原有数据;

对D中所有的D分区都进行上述操作,全部完成后就形成一个新的D图像;

再把新D图像的内容拷贝到R中,把新R当作D,D当作R,重复操作(迭代)。

。分形编码的特点:

压缩比高,压缩后的文件容量与图像像素数无关,在压缩时时间长但解压缩速度快。

--------------------------------------------------------------------------------

6. 什么是文件压缩

压缩包是经过压缩形成的文件,压缩后比初始文件内存更小,可以将多个文件压缩成一个文件,且压缩后的文件在传输过程中不易被损坏。压缩包使用最广泛的格式有rar 、zip、7z,zip压缩速度快,压缩率高,rar虽然压缩速度及压缩率略逊于zip,但是它支持多卷压缩文件。

压缩包的作用

1、节约磁盘空间

2、压缩包可以容纳多个文件,在发送邮件的时候,不需要一个一个上传文件,将其压缩成一个压缩包就能一次上传即可。

3、如果文件过大,可将文件压缩成说个小压缩包,适用于文件拷贝。比如有个300M的文件需要拷贝到别的电脑中,而U盘只有256M,可以用压缩软件把文件分成两个150M的压缩包然后分别拷贝即可解决。

4、部分软件可实现对初始文件的压缩保密保障,就是在形成压缩包的时候添加解压密码,这样生成的压缩包别人没有密码是无法打开的,可以起到一定的文件保密作用。

7. 压缩文件什么原理,谢谢

压缩文件,简单的说,就是经过压缩软件压缩的文件叫压缩文件,压缩的原理是把文件的二进制代码压缩,把相邻的0,1代码减少,比如有000000,可以把它变成6个0 的写法60,来减少该文件的空间。
视频、图片、音乐的压缩形式都不一样。重复压缩不影响文件质量,解压缩后文件不变

8. 软件压缩的原理是什么

压缩的原理是把文件的二进制代码压缩,把相邻的0,1代码减少,比如有000000,可以把它变成6个0 的写法60,来减少该文件的空间。

由于计算机处理的信息是以二进制数的形式表示的,因此压缩软件就是把二进制信息中相同的字符串以特殊字符标记来达到压缩的目的。

为了有助于理解文件压缩,请在脑海里想象一幅蓝天白云的图片。对于成千上万单调重复的蓝色像点而言,与其一个一个定义“蓝、蓝、蓝……”长长的一串颜色,还不如告诉电脑:“从这个位置开始存储1117个蓝色像点”来得简洁,而且还能大大节约存储空间。

这是一个非常简单的图像压缩的例子。其实,所有的计算机文件归根结底都是以“1”和“0”的形式存储的,和蓝色像点一样,只要通过合理的数学计算公式,文件的体积都能够被大大压缩以达到“数据无损稠密”的效果。

(8)文件压缩的原理扩展阅读

WinRAR能备份数据,减少 E-mail附件的大小,解压缩从Internet上下载的 RAR、ZIP 和其他格式的压缩文件,并能创建 RAR 和 ZIP 格式的压缩文件。在购买之前,你可以下载试用版本。

WINRAR在压缩率和速度方面都有很好的表现。其压缩率比高,3.x 采用了更先进的压缩算法,是现在压缩率较大、压缩速度较快的格式之一。 3.3 增加了扫描压缩文件内病毒、解压缩“增强压缩” ZIP 压缩文件的功能, 升级了分卷压缩的功能等。

参考资料来源:网络-压缩文件

9. 压缩文件是什么原理

压缩原理需要专业人士来解释,我只了解一点:
(1)多媒体文件(视频文件、音频文件、MP3等),绝大多数已是经过压缩或高度压缩处理过的,无法再作进一步的压缩或者根本无法压缩,就目前的压缩技术来看,即使可以再进一步压缩,必定会以牺牲视频文件、音频文件的画质、音质为代价;
(2)压缩比大的文件,多半是指那些文本文件或一些数据表格文件,这些文件中重复的数据、文字信息比较多,压缩软件可以通过其算法,把重复的信息全部归纳一个信息处理,尽可能缩小文件的大小,解压时再将重复的信息通过处理回归原位。对于这些文本文件,你不可能为缩小大小,而事先删除那些重复的数据或文字,如果这样,你恐怕根本就无法使用了。所以,只要文件内部重复的数据、文字信息越多,其压缩比就会越高

10. 压缩的压缩基本原理

概述
如果您从互联网上下载了许多程序和文件,可能会遇到很多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个单元!这仅仅是压缩句子的一种方法,而且不一定是最高效的方法。(看看您能找到更好的方法吗!)

热点内容
app什么情况下找不到服务器 发布:2025-05-12 15:46:25 浏览:714
php跳过if 发布:2025-05-12 15:34:29 浏览:467
不定时算法 发布:2025-05-12 15:30:16 浏览:131
c语言延时1ms程序 发布:2025-05-12 15:01:30 浏览:166
动物园灵长类动物配置什么植物 发布:2025-05-12 14:49:59 浏览:736
wifi密码设置什么好 发布:2025-05-12 14:49:17 浏览:148
三位数乘两位数速算法 发布:2025-05-12 13:05:48 浏览:397
暴风影音缓存在哪里 发布:2025-05-12 12:42:03 浏览:542
access数据库exe 发布:2025-05-12 12:39:04 浏览:630
五开的配置是什么 发布:2025-05-12 12:36:37 浏览:365