数据压缩是什么

维基 2022-05-06 06:52:52
问答

数据压缩是按照特定的编码机制用比未经编码少的数据比特或者其它信息相关的单位表示信息的过程。数据压缩能够实现是因为多数现实世界的数据都有统计冗余。

在计算机科学和信息论中,数据压缩或者源编码是按照特定的编码机制用比未经编码少的数据比特(或者其它信息相关的单位)表示信息的过程。例如,如果我们将“compression”编码为“comp”那么这篇文章可以用较少的数据比特表示。常见的例子是 ZIP 文件格式,此格式不仅仅提供压缩功能,还可作为归档工具(Archiver),能够将许多文件存储到同一个文件中。

音频压缩 audio compression

我们可利用资料的一致性(可用信息熵,entropy 来表示),规则性,与可预测性去实现数据压缩。人类最先发展的压缩技术实为自然语言,一般来说,若可以用比较精简的自然语言来描述一样事物,那么也就越能够对这样事物做压缩。资料越一致,亦代表其统计特性越集中。以影像压缩为例,其集中代表有傅立叶变换的时域及频域,直方图,特征值。

概要

数据压缩能够实现是因为多数现实世界的数据都有统计冗余。例如,字母“e”在英语中比字母“z”更加常用,字母“q”后面是“z”的可能性非常小。无损数据压缩通常利用了统计冗余,这样就能更加简练地、但仍然是完整地表示发送方的数据。

无损数据压缩的压缩率不足以处理庞大体积的音视频数据,但如果允许一定程度的保真度损失,那么还可以实现进一步的压缩。例如,人们看图画或者电视画面的时候可能并不会注意到一些细节并不完善。同样,两个音频录音采样序列可能听起来一样,但实际上并不完全一样。有损数据压缩在可以接受或无法察觉的情况下使用较少的位数表示图像、视频或者音频。

然而,经常有一些文件不能被有损数据压缩压缩,实际上对于不含可以辨别样式的数据任何压缩算法都不能压缩。另外,试图压缩已经经过压缩的数据通常得到的结果实际上是增加数据。

实际上,有损数据压缩也会最终达到不能工作的地步。例如一个极端的例子:压缩算法每次去掉文件最后一个字节,那么经过这个算法不断的压缩直至文件变空,压缩算法将不能继续工作。

由于可以帮助减少如硬盘空间与连接带宽这样的昂贵资源的消耗,所以压缩非常重要,然而压缩需要消耗信息处理资源,这也可能是费用昂贵的。所以数据压缩机制的设计需要在压缩能力、有损度、所需计算资源以及其它需要考虑的不同因素之间进行折衷。

对于任何形式的通信来说,只有当信息的发送方和接受方都能够理解编码机制的时候压缩数据通信才能够工作。例如,只有当接受方知道这篇文章需要用汉语字符解释的时候这篇文章才有意义。同样,只有当接受方知道编码方法的时候他才能够理解压缩数据。

应用

一种非常简单的压缩方法是行程长度编码,这种方法使用数据及数据长度这样简单的编码代替同样的连续数据,这是无损数据压缩的一个实例。这种方法经常用于办公计算机以更好地利用磁盘空间、或者更好地利用计算机网络中的带宽。对于电子表格、文本、可执行文件等这样的符号数据来说,无损是一个非常关键的要求,因为除了一些有限的情况,大多数情况下即使是一个数据位的变化都是无法接受的。

对于视频和音频数据,只要不损失数据的重要部分一定程度的质量下降是可以接受的。通过利用人类感知系统的局限,能够大幅度的节约存储空间并且得到的结果质量与原始数据质量相比并没有明显的差别。这些有损数据压缩方法通常需要在压缩速度、压缩数据大小以及质量损失这三者之间进行折衷。

有损图像压缩用于数字相机中,大幅度地提高了存储能力,同时图像质量几乎没有降低。用于 DVD 的有损 MPEG-2 编解码视频压缩也实现了类似的功能。

在有损音频压缩中,心理声学的方法用来去除信号中听不见或者很难听见的成分。人类语音的压缩经常使用更加专业的技术,因此人们有时也将“语音压缩”或者“语音编码”作为一个独立的研究领域与“音频压缩”区分开来。不同的音频和语音压缩标准都属于音频编解码范畴。例如语音压缩用于因特网电话,而音频压缩被用于 CD 翻录并且使用 MP3 播放器解码。

理论

压缩的理论(它与算法信息论密切相关)以及率有损理论,这个领域的研究工作主要是由美国学者克劳德·香农(Claude Elwood Shannon)奠定的,他在二十世纪四十年代末期及五十年代早期发表了这方面的基础性的论文。Doyle 和 Carlson 在 2000 年写到数据压缩“是所有的工程领域最简单、最优美的设计理论之一”。密码学与编码理论也是密切相关的学科,数据压缩的思想与统计推断也有很深的渊源。

许多无损数据压缩系统都可以看作是四步模型,有损数据压缩系统通常包含更多的步骤,例如它包括预测、频率变换以及量化。

Lempel-Ziv(LZ)压缩方法是最流行的无损存储算法之一。DEFLATE 是 LZ 的一个变体,它针对解压速度与压缩率进行了优化,虽然它的压缩速度可能非常缓慢,PKZIP、gzip 以及 PNG 都在使用 DEFLATE。LZW(Lempel-Ziv-Welch)是 Unisys 的专利,直到 2003 年 6 月专利到期限,这种方法用于 GIF 图像。

另外值得一提的是 LZR (LZ-Renau) 方法,它是 Zip 方法的基础。LZ 方法使用基于表格的压缩模型,其中表格中的条目用重复的数据串替换。对于大多数的 LZ 方法来说,这个表格是从最初的输入数据动态生成的。这个表格经常采用霍夫曼编码维护(例如 SHRI、LZX)。 目前一个性能良好基于 LZ 的编码机制是 LZX,它用于微软公司的 CAB 格式。

最好的压缩工具将概率模型预测结果用于算术编码。算术编码由芬兰信息理论学家 Jorma Rissanen 发明,并且由 Witten、Neal 以及 Cleary 将它转变成一个实用的方法。这种方法能够实现比众人皆知的哈夫曼算法更好的压缩,并且它本身非常适合于自适应数据压缩,自适应数据压缩的预测与上下文密切相关。算术编码已经用于二值图像压缩标准 JBIG、文档压缩标准 DejaVu。文本输入系统 Dasher 是一个逆算术编码器。

0个人收藏 收藏

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • 无损数据压缩 Lossless Compression

    无损数据压缩是什么

    无损数据压缩(Lossless Compression)是指资料经过压缩后,信息不被破坏,还能完全恢复到压缩前的原样。相比之下,有损数据压缩只允许一个近似原始资料进行重建,以换取更好的压缩率。
  • Win10

    Win10系统压缩卷如何还原

    Win10系统压缩卷复原单击Windows图标,选择电脑管理点击磁盘管理,找到想要还原的压缩卷,右击想要还原的压缩卷选择扩展卷,某些情况要先右击压缩卷旁分区选择删除卷,再对压缩卷进行扩展,之后在对话框中根据提示来操作,最后单击完成即可。
  • 电脑文件传输 Computer file transfer

    换电脑怎么把原来的文件传到新电脑上

    换电脑把原来的文件传到新电脑首先可以使用U盘传输;传输大量文件可以使用网络共享功能,用共享文件夹传输;不同的网络地点可以使用云存储服务迁移文件;利用QQ、微信也可以进行文件传输。
  • 手机运行内存 Mobile phone running memory

    手机内存扩展有必要开吗

    如果手机运行内存足够大,开启内存扩展功能反而可能会对手机性能产生负面影响,会增加手机的功耗和发热,影响手机的续航能力和稳定性;如果用户的手机本身的运行内存较小,比如6GB以下,那么就可以考虑开启内存拓展,可以明显提高手机的运行效率。
  • C 盘 c drive

    C盘没东西却爆满是因为什么

    C盘没东西却爆满原因有:系统缓存和临时文件积累,系统还原点占用了空间,隐藏文件占用大量空间,虚拟内存和休眠文件导致,大型软件或游戏安装在C盘,电脑系统崩溃错乱,电脑中木马无限复制文件,浏览器下载位置设置在C盘;系统升级后占用大量系统盘空间。
  • NAS ZFS

    NAS如何选择文件系统

    选择NAS文件系统时关键因素包括性能、数据安全性、容量、兼容性和易用性。主流选项如EXT4、Btrfs、ZFS、NTFS、exFAT各有特点。高性能和并发访问适合EXT4或ZFS,数据安全性重视者应考虑ZFS或Btrfs。大容量存储偏好ZFS和Btrfs,而高兼容性场景适用NTFS或exFAT。