❶ 压缩文件为什么有的容量比原文件小,它主要把什么压缩掉呢
因为有些文件格式相对较大。。比如BMP格式的图片。压缩比较基本上在100倍左右。。因此为了节省空间。。就需要对数据进行压缩
1.什么是数据压缩
数据压缩,通俗地说,就是用最少的数码来表示信号。其作用是:能较快地传输各种信号,如传真、Modem通信等;在现有的通信干线并行开通更多的多媒体业务,如各种增值业务;紧缩数据存储容量,如CD-ROM、VCD和DVD等;降低发信机功率,这对于多媒体移动通信系统尤为重要。由此看来,通信时间、传输带宽、存储空间甚至发射能量,都可能成为数据压缩的对象。
2.数据为何能被压缩
首先,数据中间常存在一些多余成分,既冗余度。如在一份计算机文件中,某些符号会重复出现、某些符号比其他符号出现得更频繁、某些字符总是在各数据块中可预见的位置上出现等,这些冗余部分便可在数据编码中除去或减少。冗余度压缩是一个可逆过程,因此叫做无失真压缩,或称保持型编码。
其次,数据中间尤其是相邻的数据之间,常存在着相关性。如图片中常常有色彩均匀的背影,电视信号的相邻两帧之间可能只有少量的变化影物是不同的,声音信号有时具有一定的规律性和周期性等等。因此,有可能利用某些变换来尽可能地去掉这些相关性。但这种变换有时会带来不可恢复的损失和误差,因此叫做不可逆压缩,或称有失真编码、摘压缩等。
此外,人们在欣赏音像节目时,由于耳、目对信号的时间变化和幅度变化的感受能力都有一定的极限,如人眼对影视节目有视觉暂留效应,人眼或人耳对低于某一极限的幅度变化已无法感知等,故可将信号中这部分感觉不出的分量压缩掉或“掩蔽掉”。这种压缩方法同样是一种不可逆压缩。
对于数据压缩技术而言,最基本的要求就是要尽量降低数字化的在码事,同时仍保持一定的信号质量。不难想象,数据压缩的方法应该是很多的,但本质上不外乎上述完全可逆的冗余度压缩和实际上不可逆的嫡压缩两类。冗余度压缩常用于磁盘文件、数据通信和气象卫星云图等不允许在压缩过程中有丝毫损失的场合中,但它的压缩比通常只有几倍,远远不能满足数字视听应用的要求。
在实际的数字视听设备中,差不多都采用压缩比更高但实际有损的媳压缩技术。只要作为最终用户的人觉察不出或能够容忍这些失真,就允许对数字音像信号进一步压缩以换取更高的编码效率。摘压缩主要有特征抽取和量化两种方法,指纹的模式识别是前者的典型例子,后者则是一种更通用的摘压缩技术。
更加详细的资料看这里吧。
http://www.kdntc.cn/nic/netstudy/wsjs/tongxin/shu/039.htm
-----------------------------
数据压缩是通过减少计算机中所存储数据或者通信传播中数据的冗余度,达到增大数据密度,最终使数据的存储空间减少的技术。
数据压缩在文件存储和分布式系统领域有着十分广泛的应用。数据压缩也代表着尺寸媒介容量的增大和网络带宽的扩展。
数据压缩就是将字符串的一种表示方式转换为另一种表示方式,新的表示方式包含相同的信息量,但是长度比原来的方式尽可能的短。
1. 数据压缩与编码
数据压缩跟编码技术联系紧密,压缩的实质就是根据数据的内在联系将数据从一种编码映射为另一种编码。压缩前的数据要被划分为一个一个的基本单元。基本单元既可以是单个字符,也可以是多个字符组成的字符串。称这些基本单元为源消息,所有的源消息构成源消息集。源消息集映射的结果为码字集。可见,压缩前的数据是源消息序列,压缩后的数据是码字序列。
若定义块为固定长度的字符或字符串,可变长为长度可变的字符或字符串,则编码可分为块到块编码、块到可变长编码、可变长到块编码、可变长到可变长编码等。应用最广泛的ASCII编码就是块到块编码。
2. 数据压缩的分类
数据压缩按照映射是否固定可分为静态数据压缩和动态数据压缩。静态数据压缩是指压缩前源消息集到码字集之间的映射是固定的,出现在被压缩数据中的源消息每次都被映射为同一码字。动态数据压缩是指源消息集到码字集的映射会随着压缩进度的变化而变化。静态压缩编码需要两步,先计算出源消息出现的频率,确定源消息到码字之间的映射;然后完成映射。动态数据压缩则只需一步就能完成,它在压缩过程中只对源消息集扫描一次。有些数据压缩算法是混合型的,综合应用了静态数据压缩和动态数据压缩技术。
3. 评价数据压缩的标准
从实际应用来说,数据压缩可从两方面来衡量:数据压缩速度和数据压缩率。当数据压缩应用于网络传输时,主要考虑速度快慢;当数据压缩应用于数据存储中,主要考虑压缩率,即压缩后数据的大小。当然这两方面是相辅相成的。
常用的评价标准有冗余度、平均源信息长度、压缩率等。对于一种编码方式是否为较好的编码,主要看该编码的冗余度是否最小。
4. 常见的数据压缩工具
现在操作简单,使用方便,功能强大的数据压缩工具有很多。最常见的是WinZip和WinRAR。
数据压缩通过减少数据的冗余度来减少数据在存储介质上的存储空间,而数据备份则通过增加数据的冗余度来达到保护数据安全的目的。两者在实际应用中常常结合起来使用。通常将要备份的数据进行压缩处理,然后将压缩后的数据用备份进行保护。当需要恢复数据时,先将备份数据恢复,再解压缩。
由于计算机中的数据十分宝贵又比较脆弱,数据备份无论对国家、企业和个人来说都非常重要。数据备份能在较短的时间内用很小的代价,将有价值的数据存放到与初始创建的存储位置相异的地方;当数据被破坏时,用较短的时间和较小的花费将数据全部恢复或部分恢复。
1. 对备份系统的要求
不同的应用环境有不同的备份需求,一般来说,备份系统应该有以下特性。
☆ 稳定性:备份系统本身要很稳定和可靠。
☆ 兼容性:备份系统要能支持各种操作系统、数据库和典型应用软件。
☆ 自动化:备份系统要有自动备份功能,并且要有日志记录。
☆ 高性能:备份的效率要高,速度要尽可能的快。
☆ 操作简单:以适应不同层次的工作人员的要求,减轻工作人员负担。
☆ 实时性:对于某些不能停机备份的数据,要可以实时备份,以确保数据正确。
☆ 容错性:若有可能,最好有多个备份,确保数据安全可靠。
2. 数据备份的种类
数据备份按所备份数据的特点可分为完全备份、增量备份和系统备份。
完全备份是指对指定位置的所有数据都备份,它占用较大的空间,备份过程的时间也较长。增量备份是指数据有变化时对变化的部分进行备份,它占用空间小,时间短。完全备份一般在系统第一次使用时进行,而增量备份则经常进行。系统备份是指对整个系统进行备份。它一般定期进行,占用空间较大,时间较长。
3. 数据备份的常用方法
数据备份根据使用的存储介质种类可分为软盘备份、磁带备份、光盘备份、优盘备份、移动硬盘备份、本机多个硬盘备份和网络备份。用户可以根据数据大小和存储介质的大小是否匹配进行选择。
数据备份是被动的保护数据的方法,用户应根据不同的应用环境来选择备份系统、备份设备和备份策略。
http://ke..com/view/286827.html
---------------------------
有损数据压缩方法是经过压缩、解压的数据与原始数据不同但是非常接近的压缩方法。有损数据压缩又称破坏型压缩,即将次要的信息数据压缩掉,牺牲一些质量来减少数据量,使压缩比提高。这种方法经常用于因特网尤其是流媒体以及电话领域。在这篇文章中经常成为编解码。它是与无损数据压缩对应的压缩方法。根据各种格式设计的不同,有损数据压缩都会有 generation loss:压缩与解压文件都会带来渐进的质量下降。
[编辑] 有损压缩的类型
有两种基本的有损压缩机制:
一种是有损变换编解码,首先对图像或者声音进行采样、切成小块、变换到一个新的空间、量化,然后对量化值进行熵编码。
另外一种是预测编解码,先前的数据以及随后解码数据用来预测当前的声音采样或者或者图像帧,预测数据与实际数据之间的误差以及其它一些重现预测的信息进行量化与编码。
有些系统中同时使用这两种技术,变换编解码用于压缩预测步骤产生的误差信号。
有损与无损压缩比较
有损方法的一个优点就是在有些情况下能够获得比任何已知无损方法小得多的文件大小,同时又能满足系统的需要。
有损方法经常用于压缩声音、图像以及视频。有损视频编解码几乎总能达到比音频或者静态图像好得多的压缩率(压缩率是压缩文件与未压缩文件的比值)。音频能够在没有察觉的质量下降情况下实现 10:1 的压缩比,视频能够在稍微观察质量下降的情况下实现如 300:1 这样非常大的压缩比。有损静态图像压缩经常如音频那样能够得到原始大小的 1/10,但是质量下降更加明显,尤其是在仔细观察的时候。
当用户得到有损压缩文件的时候,譬如为了节省下载时间,解压文件与原始文件在数据位的层面上看可能会大相径庭,但是对于多数实用目的来说,人耳或者人眼并不能分辨出二者之间的区别。
一些方法将人体解剖方面的特质考虑进去,例如人眼只能看到一定频率的光线。心理声学模型描述的是声音如何能够在不降低声音感知质量的前提下实现最大的压缩。
人眼或人耳能够察觉的有损压缩带来的缺陷称为压缩失真(en:compression artifact)。
http://ke..com/view/583477.html
❷ 如何压缩图片可以不失真
使用图片压缩工具可以对图片进行压缩并且不失真。
具体的方法如下:
一、打开迅捷图片压缩软件,页面中有三个功能选项,PDF压缩、图片压缩和视频压缩,直接点击图片压缩就好。
❸ 数字图像数据能进行压缩,无失真压缩和有失真压缩的理论依据分别是什么
拿无损的bmp来说,无损压缩就如同用zip/rar压缩文件,解压后还是原来的bmp没任何变化
有损则是不可逆的转换为jpg/png等格式,无法再恢复到原来的bmp格式了
除了图片,多媒体流应该也是类似的原理
❹ 什么是信源在允许一定失真的条件下,信源熵所能压缩的极限
1.统计编码原理──信息量和信息熵
根据香农信息论的原理,最佳的数据压缩方法的理论极限是信息熵。如果要求在编码过程中不丢失信息量,即要求保存信息熵,这种信息保持的编码又叫熵保存编码,或叫熵编码。熵编码是无失真压缩。当然在考虑人眼失真不易察觉的生理特性时,有些图像编码不严格要求熵保存,信息允许通过部分损失来换取高的数据压缩比。这种编码属于有失真数据压缩。
信息是用不确定性的量度定义的,也就是说信息被假设为由一系列的随机变量所代表,它们往往用随机出现的符号来表示。我们称输出这些符号的源为“信源”。也就是要进行研究与压缩的对象。 信息量
信息量指从N个相等可能事件中选出一个事件所需要的信息度量或含量,也可以说是辨别N个事件中特定事件过程中所需提问“是”或“否”的最小次数。
例如:从64个数(1~64的整数)中选定某一个数(采用折半查找算法),提问:“是否大于32?”,则不论回答是与否,都消去半数的可能事件,如此下去,只要问6次这类问题,就可以从64个数中选定一个数,则所需的信息量是 =6(bit)。 我们现在可以换一种方式定义信息量,也就是信息论中信息量的定义。
设从N中选定任一个数X的概率为P(x),假定任选一个数的概率都相等,即P(x)=1/N,则信息量I (x)可定义为:
上式可随对数所用“底”的不同而取不同的值,因而其单位也就不同。设底取大于1的整数α,考虑一般物理器件的二态性,通常α取2,相应的信息量单位为比特(bit);当α=e,相应的信息量单位为奈特(Nat);当α=10,相应的信息量单位为哈特(Hart)。显然,当随机事件x发生的先验概率P(x)大时,算出的I(x)小,那么这个事件发生的可能性大,不确定性小,事件一旦发生后提供的信息量也少。必然事件的P(x)等于1, I(x)等于0,所以必然事件的消息报导,不含任何信息量;但是一件人们都没有估计到的事件(P(x)极小),一旦发生后,I(x)大,包含的信息量很大。所以随机事件的先验概率,与事件发生后所产生的信息量,有密切关系。I(x)称x发生后的自信息量,它也是一个随机变量。
P(x)大时,算出的I(x)小 必然事件的P(x)等于1, I(x)等于0。
P(x)小时,算出的I(x)大 必然事件的P(x)等于0, I(x)等于1。
I(x)称x发生后的自信息量,它也是一个随机变量。
信息熵
现在可以给“熵”下个定义了。信息量计算的是一个信源的某一个事件(X)的自信息量,而一个信源若由n个随机事件组成,n个随机事件的平均信息量就定义为熵(Entropy)。
熵的准确定义是:信源X发出的xj(j=1,2,……n), 共n个随机事件的自信息统计平均(求数学期望),即
H(X)在信息论中称为信源X的“熵 (Entropy)” ,它的含义是信源X发出任意一个随机变量的平均信息量。
更详细的说,一般在解释和理解信息熵有4种样式
(1) 当处于事件发生之前,H(X)是不确定性的度量;
(2) 当处于事件发生之时,是一种惊奇性的度量;
(3) 当处于事件发生之后,是获得信息的度量;
(4) 还可以理解为是事件随机性的度量. 下面为了掌握信息熵的概念,我们来做一道计算题。
例如:以信源X中有8个随机事件,即n=8。每一个随机事件的概率都相等,即P(x1)=P(x2)=P(x3)……P(x8)=1/8 ,计算信源X的熵。
应用“熵”的定义可得其平均信息量为3比特
再例: 信源X中有17个随机事件,即n=17。每一个随机事件的概率分别为:
计算信源X的熵。
信息熵的计算公式:
信源X的熵:
定长码与变长码
定长码(fixed-length code)即采用相同的位数(bit)对数据进行编码。大多数存储数字信息的编码系统都采用定长码。如我们常用的ASCII码就是定长码,其码长为1字节(Byte)。汉字国标码也是定长码,其码长为2字节(Byte)。变长码(variable-length code)即采用不相同的位数(bit)对数据进行编码,以节省存储空间。例如,不同的字符或汉字出现的概率是不同的,有的字符出现的概率非常高,有的则非常低。根据统计,英文字母中“E”的使用概率约为13%,而字母“Z”的使用概率则为0.08%。又如大多数图像常含有单色的大面积图块,而且某些颜色比其他颜色出现更频繁。为了节省空间,在对数据进行编码时,就有可能对那些经常出现的数据指定较少的位数表示,而那些不常出现的数据指定较多的位数表示。这样从总的效果看还是节省了存储空间。用这种方法得到的代码,其码的位数,也即码长就是不固定的,故称为变长码。香农-范诺编码,以及霍夫曼编码,都是变长码。
2.赫夫曼(Huffman)编码基本原理:按信源符号出现的概率大小进行排序,出现概率大的分配短码,出现概率小的则分配长码。(定长码采用相同的码长对数据进行编码,如ASCII码是定长码,其码长为1字节。)
定理:在变长码中,对于出现概率在的信息符号编以短字长的码,对于出现概率小的信息符号以长字长的码,如果码字长度严格按照符号概率的大小的相反顺序排列,则平均码字长度一定小于按任何其他符号顺序排列方式得到的码字长度。
定理证明
设最佳排列方式的码字平均长度为 ,则有:
式中 为信源符号 出现的概率, 是符号 的编码长度。规定 , 。如果将 的码字与 的码字互换,其余码字不变,经过这样的互换以后,平均码字长度变成 ,即
因为 ,所以 ,也就是说 最短。证毕。
Huffman编码的编码步骤
① 概率统计(如对一幅图像,或m幅同种类型图像作灰度信号统计),得到n个不同概率的信息符号。
② 将n个信源信息符号的n个概率,按概率大小排序。
③ 将n个概率中,最后两个小概率相加,这时概率个数减为n-1个。
④ 将n-1个概率,按大小重新排序。
⑤ 重复③,将新排序后的最后两个小概率再相加,相加和与其余概率再排序。
⑥ 如此反复重复n-2次,得到只剩两个概率序列。
⑦ 以二进制码元(0.1)赋值,构成霍夫曼码字。编码结束。
利用Huffman编码方式对信源进行编码
已知信源:
编码结果:平均码长: =(0.35+0.20)×2+(0.15+0.10+0.10)×3+(0.06+0.04)×4=2.55(bit)(对于等长码则需要3比特)。
Huffman编码的特点
(1)平均码长 (熵);
(2)平均码长 bits(等长码需要的比特数);
(3)保证解码的唯一性,短码字不构成长码字的前缀;
(4)在接收端需保存一个与发送端相同的赫夫曼码表。 Huffman不足方面:(1)构造出的码不唯一,其原因是:一是在给两个分支赋值时,可以是左支(或上支)为0,也可以是右支(或下支)为0,造成编码的不唯一;二是当两个消息的概率相等时,谁前谁后也是随机的,构造出来的码字也不唯一。
(2)编码码字字长参差不齐,因此硬件实现起来不大方便。
(3)编码对不同信编码效率是不同的。在概率颁很不均匀时,Huffman编码才会有显着的效果,在信源颁均匀的情况下,一般不使用Huffman编码。
3.算术编码(Arithmetic Coding)算术编码方法也是利用信源概率分布特性、能够趋近熵极限的编码的方法。算术编码不按符号编码,即不是用一个特定的码字与输入符号之间建立一一对应的关系,而是从整个符号序列出发,采用递推形式进行连续编码,用一个单独的浮点数来表示一串输入符号。算术编码是将被编码的信息表示成实数0和1之间的一个间隔。信息越长编码表示它的间隙就越小,表示这一间隙所须二进位就越多,大概率符号出现的概率越大对应于区间愈宽,可用长度较短的码字表示;小概率符号出现概率越小层间愈窄,需要较长码字表示。它的编码方法比Huffman编码方式要复杂,但它不需要传送像Huffman编码中的Huffman码表,同时算术编码还有自适应的优点,所以算术编码是实现高效压缩数据中很有前途的编码方法。特点:方法比较复杂,具有自适应能力(随着编码符号流中01出现的概率的变化将自适应的改变)。在信源符号概率接近时,算术编码比Huffman编码效率要高。 算术编码与解码举例
假设信源符号为{00, 01, 10, 11},这些符号的概率分别为{ 0.1, 0.4, 0.2, 0.3 },根据这些概率可把间隔[0,1)分成4个子间隔:[0, 0.1), [0.1, 0.5), [0.5, 0.7), [0.7, 1),其中[x,y)表示半开放间隔,即包含x不包含y。上面的信息可综合在下表中。 表 信源符号,概率和初始编码间隔 符号00011011概率0.10.40.20.3初始编码间隔[0,0.1)[0.1,0.5)[0.5,0.7)[0.7,1)
如果二进制消息序列的输入为:10 00 11 00 10 11 01。编码时首先输入的符号是10,找到它的编码范围是[0.5, 0.7)。由于消息中第二个符号00的编码范围是[0, 0.1),因此它的间隔就取[0.5, 0.7)的第一个十分之一作为新间隔[0.5, 0.52)。依此类推,编码第3个符号11时取新间隔为[0.514, 0.52),编码第4个符号00时,取新间隔为[0.514, 0.5146),… 。消息的编码输出可以是最后一个间隔中的任意数。整个编码过程如下图示:
表: 编码过程步骤 输入符号编码间隔 编码判决110[0.5, 0.7)符号的间隔范围[0.5, 0.7) 200[0.5, 0.52)[0.5, 0.7)间隔的第一个1/10311[0.514, 0.52)[0.5, 0.52)间隔的最后三个1/10400[0.514, 0.5146)[0.514, 0.52)间隔的第一个1/10510[0.5143, 0.51442)[0.514, 0.5146)间隔的第六个1/10开始的两个1/10611[0.514384, 0.51442)[0.5143, 0.51442)间隔的最后三个1/10701[0.5143836, 0.514402)[0.514384, 0.51442)间隔的从第二个1/10开始的四个1/108从[0.5143876, 0.514402中选择一个数作为输出:0.51439
表:译码过程步骤间隔译码符号 译码判决 1[0.5, 0.7)100.51439在间隔 [0, 1) 第六个1/102[0.5, 0.52)000.51439在间隔 [0.5, 0.7)的第一个1/103[0.514, 0.52)110.51439在间隔[0.5, 0.52)的第八个1/104[0.514, 0.5146)000.51439在间隔[0.514, 0.52)的第一个1/105[0.5143, 0.51442)100.51439在间隔[0.514, 0.5146)的第七个1/106[0.514384, 0.51442)110.51439在间隔[0.5143, 0.51442)的第八个1/107[0.5143876, 0.514402)010.51439在间隔[0.5143876, 0.514402)的第二个1/108译码的消息:10 00 11 00 10 11 01译码器的译码过程应无限制地运行下去。在译码器中需要添加一个专门的终止符,当译码器看到终止符时就停止译码。在算术编码中需要注意的几个问题:
①由于实际的计算机的精度不可能无限长,运算中出现溢出是一个明显的问题,但多数机器都有16位、32位或者64位的精度,因此这个问题可使用比例缩放方法解决。
②算术编码器对整个消息只产生一个码字,这个码字是在间隔[0, 1)中的一个实数,因此译码器在接受到表示这个实数的所有位之前不能进行译码。
③算术编码也是一种对错误很敏感的编码方法,如果有一位发生错误就会导致整个消息译错。
算术编码可以是静态的或者自适应的。在静态算术编码中,信源符号的概率是固定的。在自适应算术编码中,信源符号的概率根据编码时符号出现的频繁程度动态地进行修改,在编码期间估算信源符号概率的过程叫做建模。需要开发自适应算术编码的原因是因为事先知道精确的信源概率是很难的,而且是不切实际的。当压缩消息时,不能期待一个算术编码器获得最大的效率,所能做的最有效的方法是在编码过程中估算概率。因此动态建模就成为确定编码器压缩效率的关键。
算术编码的实现相应地比Huffman编码复杂,但当与信号源符号的出现概率接近时,算术编码的效率高于Huffman编码。在图像测试中表明,算术编码效率比Huffman效率高5%左右。
❺ 多媒体数据压缩技术的失真分类
根据解码后数据与原始数据是否完全一致进行分类,压缩方法可被分为有失真编码和无失真编码两大类。
有失真压缩法会压缩了熵,会减少信息量,而损失的信息是不能再恢复的,因此这种压缩法是不可逆的。无失真压缩法去掉或减少数据中的冗余,但这些冗余值是可以重新插入到数据中的,因此冗余压缩是可逆的过程。
无失真压缩是不会产生失真。从信息主义角度讲,无失真编码是泛指那种不考虑被压缩信息性质和压缩技术。它是基于平均信息量的技术,并把所有的数据当作比特序列,而不是根据压缩信息的类型来优化压缩。也就是说,平均信息量编码忽略被压缩信息主义内容。在多媒体技术中一般用于文本、数据的压缩,它能保证百分之百地恢复原始数据。但这种方法压缩比较低,如LZW编码、行程编码、霍夫曼(Huffman)编码的压缩比一般在2:1至5:1之间。