网 logo

压缩

数据压缩(数据 Compression)是计算机和多媒体等领域常用的一种技术,指的是一种通过对原始数据重新编码,以使用更少的存储空间来保存更多信息的技术,通常用于图片、音频、视频等文件的存储与传输。

数据压缩技术的发展从18世纪末至20世纪50年代初的早期探索开始,霍默·达德利(Homer W. Dudley)发明的声码器、摩尔斯(Morse)发明的摩尔斯电码等实践,为数据压缩技术奠定了基础,1952年提出的哈夫曼编码(Huffman Coding)和线性预测编码(Linear Predictive coding)等算法为数据压缩技术的发展提供了重要支撑。二十世纪末,信息产业迅速发展,语音压缩和图像压缩技术得到广泛应用,针对多媒体文件的国际标准开始陆续提出。近年来,随着深度学习和神经网络等技术也投入了优化压缩算法的实践,并取得了一定成效,数据压缩技术进入了新的发展阶段。

压缩技术的核心是编码技术,如哈夫曼编码、游程编码等经典编码算法构成了很多压缩算法的基础。常用的多媒体文件(如JPG、PNG、MPEG、MP4、WOV等)以及无损压缩文件(如RAR、ZIP、ISO等)也都是基于大量压缩算法的组合应用。压缩技术在现代信息世界发挥着重要的作用,如文件压缩、大数据与云上应用、数据加密、物联网智能家居、人工智能等领域,都大量采用数据压缩来提高效率。随着对更大数据规模、更高效的压缩算法的需求会不断提高,更高的压缩效率、更海量的数据规模、使用人工智能优化压缩等内容也是数据压缩的未来发展趋势。

概述

数据压缩(数据 Compression)是一种信息技术领域中的数据处理方法。数据压缩是通过对原始数据进行重新编码、内容变换或其他方法,来减少文件大小,而不改变或尽可能少改变其基本属性的过程。

数据压缩技术在尽可能保留全部有效信息的基础上,最大限度地减少存储文件所需的空间和共享文件所需的网络带宽,降低数据传输和存储的成本,提高计算机系统的工作效率。压缩技术被广泛应用于网络通信、存储系统、多媒体处理、医疗影像、地理信息系统等领域。

在这个数据驱动的现代世界里,数据压缩正变得越来越有价值,这对于计算机科学来说尤其如此,因为数据处理和存储通常是更耗时和昂贵的操作。幸运的是,数据压缩工具可以缩小所有类型的数据,包括图像、文本文件和音频文件,使用户能够比以往更快、更有效地处理和存储大量数据,还可以用来加速文件传输,使它几乎在计算机的任何领域都发挥着重大作用。

发展历史

萌芽时期

据记载,最早提出“数据压缩”设想的是18世纪末的谢泼德(Shepards),他的关于“实数舍入为固定十进制数”的研究及相关论文,被认为是最早的数据压缩的理论和实践活动。1939年,美国贝尔实验室的霍默·达德利(Homer W. Dudley)发明了声码器,这是第一个语音数据压缩系统。1943年,摩尔斯(Morse)发明的摩尔斯电码(Morse Code)是最早的基于统计方法的数据压缩的实例。摩尔斯电码在使用过程中,发报方将待发送信息通过编码表进行重新编码,然后使用电报线路高效传输,接收方将收到的“点划线”电码根据编码表恢复为原始的字母,从而获得原始信息,这就是最原始的压缩通信过程。1948年,克劳德·香农在他的论文中,首先提出了信息熵与率失真函数的概念,开创了信息论这一学科。

所有这些先驱者们的卓越成就,为数据压缩技术的早期发展做出了巨大贡献,也揭开了现代数据压缩技术发展的序幕。

理论发展期

1952年,哈夫曼(Huffman)给出了最佳变长码的构造方法,即著名的哈夫曼编码(Huffman Coding)。这种编码被称为最佳信源编码,压缩效率高,至今仍在广泛应用,是一种经典的基于统计方法的数据压缩技术。同年,奥利弗(oliver)等首次提出线性预测编码(Linear Predictive coding,LPC)理论,为后来编码技术的发展奠定了基础。1956年,斯登豪斯(Steinhaus)第一次系统地阐述了最佳矢量量化问题。1957年和1960年,劳埃德(Lloyd)和麦克斯(Max)分别独立发表了关于确知分布信号最佳标量量化的算法,即Lloyd-max算法。这些方法都为数据压缩技术的发展和成长提供了理论及技术基础。

1971年,伯格(Berger)发展和完善了率失真理论,从而为信源编码的发展奠定了基础。1977年,亚伯拉罕·伦佩尔(Abraham Lempel)和雅各布·齐夫(Jacob Ziv)开发了LZ77算法,这是字典编码无损压缩算法的开端。1978年他们进一步开发出了LZ78算法,同年,布佐(Buzo)提出第一个实际的向量量化器,成功用矢量量化实现了语音压缩编码。1980年,林德(Linde)、布佐和格雷(Gray)将Lloyd-Max最佳标量量化器算法推广到矢量量化,发表了第一个矢量量化器的设计算法,即LBG算法,使向量量化这种高效压缩技术进入工程实践,为数据压缩提供了重要的技术手段。1984年,特里·韦尔奇(Terry Welch)加入了LZ算法的研究,优化出了LZW算法,作为一种高效的动态字典编码算法,一直沿用至今。

成熟与扩展期

personal computer的普及使数据压缩成为在理论和技术上比较系统的一门独立学科,新的压缩算法层出不穷,数据压缩技术的发展进入一个全新的阶段。1988年国际标准化组织提出MPEG-I的初期规范,1992年JPEG图像标准提出,到1997年,MPEG标准下的AAC格式取代了其早期推广的MP3格式,成为主流的音频格式。2013年,H.265视频标准被批准,成为现代高清视频的常用标准。

随着并行计算技术的发展,数据压缩技术开始利用所有可用的计算资源来提高数据压缩过程的速度和质量。在过去的几年中,深度学习技术已经成功地应用于各种计算机视觉和图像处理应用,考虑到神经网络强大的表示能力,采用先进的深度学习技术来提高数据压缩性能是可行的。2019年,伯克利人工智能研究院(BAIR)提出了一种可扩展的、基于深度学习的高效无损数据压缩技术Bit-Swap,在数据集上,性能比所有传统压缩格式都有所提升,基于深度学习的压缩方法近年来在计算机视觉和信号处理领域受到学术界和工业界越来越多的关注。

分类

数据压缩的方法有许多种,从不同的角度出发有不同的分类方法,其中最核心的分类方法是从信息论的角度出发,根据压缩后的数据是否存在信息丢失,分为无损压缩、有损压缩两大类;此外,根据被压缩数据的属性,可以分为文本压缩、图像压缩、视频压缩、音频压缩等几大类。

根据是否存在信息丢失

无损压缩

无损压缩(Lossless Compression)又称冗余度压缩,这种压缩方式完全保留了原始数据的全部信息,保持了数据质量的完全无损耗。无损压缩可以通过解压缩的逆过程,完全恢复到原始版本。无损压缩主要用于可执行文件、文本文档、软件应用程序、电子数据表格、系统文件等关键文件。在某些多媒体文件中,出于Hi-Fi的目的,也会采取无损压缩的方式来保存影音内容的原始信息。常见的无损压缩格式包括ZIP、GZIP、pdf等。在多媒体领域,GIF、PNG、BMP、RAW、WAV等格式也是采取无损压缩方式的。

无损压缩通常用于不能容忍原始数据和复原数据之间有任何差异的需求。例如,在文本压缩中,如果压缩过程中出现了损耗,那么极小的差异可能导致语句具有完全不同的含义。在医学影像或心电图等数据中,数据的失真可能会严重误导医生,由于这种事故的代价可能是一条人命,因此要尽可能采取无损压缩方式来保存相关数据。同时,对于金融期货交易、卫星遥感或气象观测数据而言,某一时刻的信息如果没有完全存储,是不可能重新回到那一时刻去获取数据的,因此在系统设计初期就会要求采取无损压缩方式来保证数据的完全完整。

有损压缩

有损压缩(Lossy Compression)又称熵压缩,是一种通过丢弃不太重要的信息来减小文件大小的技术。图片、视频和音频的原始文件可以捕捉到大量的细节,但事实证明,对于人类的感官而言,有很多细节的损失是难以捕捉到的。有损压缩算法就是找出巧妙的方法,在尽可能少被感知的情况下删除细节。

有损压缩技术涉及一些信息的丢失,并且使用有损技术压缩的数据通常不能精确地恢复或重建。作为这种不可逆失真的回报,有损压缩通常可以获得比无损压缩高得多的压缩比。在许多现实应用中,少许失真并不是问题。例如,在存储或传输语音时,并不一定需要每一瞬间音高、频率、振幅的确切值,在电话等应用中往往可以容忍大量的信息丢失。同理,在观看视频时,人眼能捕捉到的帧率有限,在动态画面中也无需看清每一帧的细节。因此,视频通常使用有损压缩进行压缩。

有损数据压缩通过牺牲一些细节来减少数据的原始大小,虽然只是丢弃了不重要的信息,但仍然会影响数据质量。有损压缩算法如果有效地执行,可能会得到不错的结果,但是过度压缩也会对文件质量产生很大影响。因此,当用户可以接受某种程度的质量损失时,使用有损压缩就是性价比很高的做法。常见的有损压缩格式包括JPEG、TIFF、MPEG、MP3、MP4和MOV等。

根据被压缩数据的属性

文本压缩

文本文件可以通过压缩使其体积更小,发送速度更快。文本文件可以是各种文件类型,如HTMLECMAScript层叠样式表、TXT等。可以通过压缩文本文件来减小文本文件的大小,将文本转换为占用更少空间的更小格式。它的工作原理通常是在文本文件中找到相似的字符串/字符,并用临时的二进制编码来替换它们,以减小压缩后文件的大小。通常,在文本和程序文件中,一个错误就可能破坏文本文件的含义或导致程序无法运行,因此为了保护文本的全部信息,文本压缩会使用无损压缩,从而在解压过程中恢复文件的所有元素,而不会牺牲数据和质量。

在计算机应用程序中压缩文本的好处有三个:它减少了存储文本的内存量,减少了通过计算机网络传输文本的时间。它也能被用于加速算法计算,因为它们可以通过减少磁盘访问时间来更好地利用现代计算机中可用的内存层次结构,并且由于当前CPU的显著速度优势,文本文件压缩与解压缩的成本可以忽略不计。

图像压缩

图像压缩是将数据压缩技术应用于图形文件的过程,以最小化其存储空间大小,而不会使图像质量降低到可接受的阈值以下。通过减小文件大小,可以在同一存储空间中储存更多的图像,在互联网上传输或从网页上下载时所需的带宽也更少,从而减少了网络拥塞,加快了内容传输与反应速度。

图像压缩中的有损压缩通过永久删除不太重要的信息,特别是视觉上的冗余数据,来显著减小文件大小,但也会将图像质量降低到一定程度的失真,尤其是在图像被过度压缩的情况下会产生很大影响。有损压缩是不可逆的,压缩后的图像永远无法恢复到原始状态。如果对同一张图像重复进行有损压缩,它会变得越来越失真。常见的图像压缩格式有JPEG、TIFF、WebP、PNG、BMP等格式。

视频压缩

视频文件往往会占用很多空间,大多数上传到互联网的视频文件都使用有损压缩来减小文件大小,同时保持相对较高图像质量。在整个视频中,帧间重复的图像和声音信息可能会被视为冗余而删除,从而尽可能减小对观众视觉效果的影响。虽然使用有损压缩格式性价比很高,但它依然是不可逆的过程,压缩会导致数据丢失并且无法恢复。

无损视频压缩的原始版本和压缩版本几乎完全相同,在压缩过程中没有数据丢失,通常文件最终的大小通常与压缩前没有太大差别。但是,对于某些用途,例如使用外部HDD从一台计算机传输源文件到另一台计算机的视频编辑可能会需要无损压缩来保持质量,这个过程也可以尽可能的进行压缩来减小传输带宽需求。常见的视频压缩格式包括MP4、MOV、AVI、GIF等。

音频压缩

音频压缩是一种将音频信号转换成更小文件大小的技术,它通过减少数据量来节省存储空间和提高传输效率。这个过程通常涉及两个主要步骤:编码和解码。编码阶段,音频信号被转换为一种更紧凑的格式,这可能涉及到去除冗余信息、降低采样率或使用特定的算法来减少数据量。解码阶段则是将压缩后的音频FinalData到接近原始质量的状态,以便播放或进一步处理。音频压缩技术广泛应用于音乐、广播、电话通信和视频等领域,常见的音频压缩格式包括MP3、AAC和Ogg Vorbis等。

压缩算法

哈夫曼编码

哈夫曼编码(Huffman Coding)是一种基于统计学的编码,属于无损编码,它的核心思路是:将原始数据中出现频率更多的符号使用更短的码长来表示,从而实现重新编码后平均码长的最小化,以减小编码总数量从而实现压缩过程。

哈夫曼编码的方法步骤如下:

(1)将原始数据中,各符号出现的概率按照由大到小的顺序排列好,建立列表;

(2)将两个最小的概率进行组合,然后将该组合后的概率之和看作一个新的符号概率,将其视为树的一个新结点,重新按照步骤1排列好,并继续这一步骤,始终将较大的概率结点放在该树的较上部,较小的概率结点放在下部,一直到全部符号都加入为止。最终,所有结点将形成一颗二叉树;

(3)对二叉树的每一对分支的两条边,一边指定为0,另一边指定为1;或相反一边指定为1,另一边指定为0;

(4)将上述结果由下至上构造一棵编码树,所有原始符号均存储于叶节点上,由树根到每个叶结点的序列就可以决定每个字符的码字。

例如,对序列BCAADDDCCACACAC,ABCD四个字母出现的频率分别为5、1、6、3,根据以上步骤得到哈夫曼树如图:

从而可以得到A、B、C、D四个字符的编码分别为11、100、0、101。经过证明,此编码方式实现了该组数据中的最短平均码长,成功实现了压缩操作。

解压缩过程中,哈夫曼译码是哈夫曼编码的反变换,接收端对已编码的压缩数据流进行译码时,必须根据编码过程中生成的哈夫曼树所编制的编码表才能进行译码。因此,发送端应将编码树或编码表与已编码的压缩数据流一起发送到接收端。

哈夫曼编码在大量压缩技术中都得到广泛应用,用于传统的压缩格式,如GZIP、BZIP2、PKZIP等,也被用于文本、图像、传真等各类数据的存储与传输,如JPEG、MPEG、H.261等。

游程编码

游程编码(Run Length Encoding,RLE)是一种无损变长编码压缩方法,减少了数据表示中使用的位数,总体数据量减小,压缩过程中没有任何信息丢失。例如,如果数据集包含几个重复字符,例如“aaaabbbbcccddee”,RLE算法将其编码为“4a4b3c2de”。相同的信息可以通过更少的字节表示出来,但原始数据序列保持不变。

行程长度即数据流中各个字符重复出现而形成的字符串的长度。当给定了行程串的字符、串的位置和串的长度,就能够恢复出原始的数据流。行程编码的数据流的基本数码结构如下图所示,其中,X代表数据流的字符;S是一个在数据集合中不用的字符,只是起一个标记作用;RL代表行程长度,亦即字符重复出现的次数。

LZW算法

LZW(Lempel-Ziv-Welch)算法是一种基于动态字典查找的无损编码算法,用于删除重复数据并将原始文件压缩为更小的文件。LZW压缩算法首先读取输入的符号序列,将这些符号分组为字符串,然后将每个字符串转换为编码。它首先创建一个表,指定一个序列长度,并在表中为该序列创建一个映射条目。这个表也被称为字典或编码本,它存储从输入文本中动态选择的字符串序列,并维护遇到的最长字符串与编码值之间的映射关系。

利用这个编码字典,在读取输入时,任何重复的字符串序列都会使用较短的编码替换,从而有效地压缩了输入的总量,减小文件大小。随着输入数据中长而重复的序列数量的增加,算法的效率也会提高。LZW算法不分析传入的文本,只是将它看到的每个新序列添加到代码表中,由于LZW倾向于选取更长、重复次数更多的序列并对它们进行编码,因此属于一种贪心算法。

与LZ77和LZ78等较早的方法不同,LZW算法将编码查找表作为压缩文件的一部分。通常,该编码表项的数量为4096,其中0~255项用来表示来自输入文件的单个字节,其余部分初始是空白的,在算法运行过程中动态分配给新字符串。当编码开始时,算法识别数据中出现的重复序列,并将它们添加到代码表的空白项中建立映射,从文件压缩角度来看,编码256到4095用于表示的是字符串序列,而0~255表示的是单个字节。解压缩文件的解码程序与哈夫曼编码类似,都是需要基于压缩过程中生成的编码表进行查表翻译的逆过程。

LZW算法通常用于压缩GIF和TIFF图像文件,偶尔也用于压缩pdftxt文件,也是unix操作系统文件压缩程序的一部分。该方法实现简单,通用性强,在硬件实现上具有较高的吞吐能力。LZW算法可以快速压缩大型TIFF或GIF文件,它特别适用于包含大量重复数据的文件,尤其是单色图像这一类。但是LZW压缩的一个缺点是,重复信息较少的压缩文件结果可能很大,且该算法的一些版本是受版权保护的,因此可能需要支付版税或许可费才能使用它。

格式与标准

常用压缩格式

RAR

RAR是WinRAR归档器使用的原生压缩格式,需要经过解压缩才能获得原始数据。RAR格式也可用于分卷压缩,若同一个文件夹中的多个压缩文件名称以.part1.rar作为第一卷的结尾,以.part2.rar作为第二卷的结尾,以此类推,则从第一个卷开始解压缩可以自动将全部文件解压出来。与ZIP文件格式相比,RAR提供了许多先进的功能,如更方便的多卷压缩和在物理数据损坏的情况下的修复文件功能。

ZIP

ZIP格式文件以无损的方式进行压缩,是Phil Katz在1989年设计的一种无损压缩、解压缩和归档格式。ZIP格式的核心是使用许多不同的压缩算法,包括LZW算法、Deflate算法(一种包含一系列块的无损数据压缩文件格式)等等。2009年,WinZip 12.1宣布了全新的ZIPX文件格式标准,它指定了一个新的压缩规范,带来了更高级的压缩方法。ZIP格式是最经典的压缩格式之一。有些程序甚至允许用户实时编辑ZIP文件的内容,从而克服了文件压缩和即时使用的最后一个障碍。

ISO

ISO文件最初通常用于光学存储映像,将文件系统、操作系统、程序和数据压缩存储的一种无损压缩格式。与ZIP或RAR格式的压缩文件不同,二进制数据副本没有被压缩,在存储大小、结构、权限和元数据方面与原始文件完全相同,因此打开ISO文件时可以从光盘、U盘或虚拟驱动器直接将其“挂载”到内存映像。当以ISO文件的形式备份重要数据、软件或操作系统时,不需要存储任何物理数据载体即可恢复数据,因此ISO文件是文件系统备份的优秀工具。

多媒体国际标准

数据压缩技术的迅速发展和广泛应用,使得大量用户需要互相传输压缩后的文件,并需要在接收后能够对其进行解码,这带来了对压缩格式标准化通用性的需求,因此一系列有关数据压缩的国际标准格式被制定。参与制定这些国际标准的组织主要有:国际标准化组织(ISO)、国际电信联盟电信标准化部(ITU-T)、国际电话电报咨询委员会(ccitt)、国际无线电咨询委员会(CCIR)、国际电工委员会(IEC)、国际电气电子工程师协会(IEEE)等。这些国际标准的制定,一方面推动了数据压缩技术的发展和应用;另一方面,也反映了数据压缩技术的发展历程以及今后发展的趋势和方向。

MPEG

MPEG标准实际上是基于DCT和运动预测的一组标准,常见的MP3、MP4等格式均属于MPEG标准下的多媒体文件格式。MPEG-1支持非隔行扫描扫描模式352×240分辨率的TV质量图像。MPEG-2是高分辨率图像的标准,典型用于支持720×484的广播TV图像。MPEG-2也是高清晰度电视HDTV(High Definition TV)和新型数字式交互有线网所采用的基本标准。这些标准也包括了同步音频的压缩/解压缩标准。两个标准能产生高达200:1的压缩比,而100:1要更典型些。

在20世纪90年代末流行的MPEG-2标准将视频流压缩到原始视频大小的1/30,同时仍然保持可接受的图像质量,这几乎摧毁了Cinepak、英特尔 Indeo和其他早期的编解码器,成为了DVD视频、许多数字广播和大多数在线视频流中使用的格式。MPEG-2可以在2Mbps的信道中呈现1080p的视频,是有损的压缩算法,这意味着压缩过程中必须平衡图像质量和文件大小。

此后,MPEG-4 Part 2格式在此基础上出现了。与之前的MPEG-2一样,由于压缩质量的进一步提高,MPEG-4/2迅速流行起来——如果使用MPEG-4 Part 2编解码器,同样的图像质量水平的视频使用的带宽大约是MPEG-2的一半。此格式的兴起正值宽带互联网服务在美国初入市场,伴随着HDD存储和CPU性能等领域的技术进步,数字视频领域像火箭一样起飞。MPEG-4 Part 2编解码器的小尺寸和高质量使得该格式非常适合下载,并且很快变得无处不在。MPEG-4 Part 2成为了21世纪初的王者,可以说现在仍然有所应用,例如Windows media Center、Boxee或MythTV等。在高效压缩的情况下,一部完整长度的电影通常不到1GB。

H.264与H.265

H.264压缩标准由蓝光电视机规范、苹果公司的iTunes视频商店以及最近的YouTube高清视频实现。H.264也被称为MPEG-4 Part 10或高级视频编码(AVC)。一些测试显示其客观质量是MPEG-4 Part 2的4倍,在压缩和质量方面的巨大改进,为数字视频带来了翻天覆地的变化。它允许以1.5Mbps的速度播放广播质量的标准清晰度视频,可以使用H.264压缩将高清电影压缩到普通的旧DVD上。H.264标志着数字媒体的又一次重生,而这仍是这场革命的早期阶段。从GPS系统、智能手机到汽车仪表盘,到处都将出现高分辨率的全动态视频显示,而不会出现MPEG-2时代常见的块状伪影。

从2003年H.264标准落实开始,全世界广播与电视公司的硬件改进花了好几年时间,才满足了新标准的计算量,而2016年,H.265视频标准再次推出。H.265被认为可以将比特率降低一半,并具有类似的图像质量。这一次,该算法将满足于在数学客观编码率方面提高20%,而其余的改进将是在人类视觉角度进行适度的有损程度增加,尽可能让不完美的图像处理对大脑来说不会太明显。

AAC

文件扩展名为AAC的文件是MPEG-2高级音频编码文件。它是一种类似于MP3的有损音频格式,但性能得到了改进。苹果公司itunes使用AAC高级音频编码作为音乐文件的默认编码方法,也是许多其他设备和平台的标准音频格式。AAC文件可以使用.AAC作为文件扩展名,但也可能使用M4A文件文件扩展名。

AAC旨在以比MP3等旧格式更低的比特率提供高质量的声音,是MP3格式的后继产品,有更高的音质和更高效的压缩比,这使得它在流媒体和便携式音乐播放器等很多方面都很受欢迎。AAC的发展始于20世纪80年代末和90年代初,是国际标准组织MPEG的一部分,是用来取代MP3格式的。AAC于1997年首次作为MPEG-2标准的一部分引入,后来被包含在MPEG-4标准中。由于其优于MP3的性能,它迅速获得了关注。

AAC使用先进的压缩技术产生高质量的音频,包括感知编码(使用心理声学模型来识别和消除人耳不太可能听到的音频数据)、可变比特率(VBR)、谱带复制(SBR:一种提高高频声音质量的增强技术,特别是在低比特率下)等新技术。AAC文件的比特率通常是8到320kbps,更高的比特率会带来更好的音频质量。AAC可以处理多达48个音频通道,支持8至96千赫的采样率、立体声和环绕声,因此用途拓展到电影和游戏的复杂音频领域。

应用

文件压缩

在日常使用的personal computer(PC)上,文件压缩通常是通过编辑软件或数据压缩软件启用的。通常,文件压缩的工作原理是扫描整个文件,识别相似或重复的数据和模式,并用唯一标识符替换重复的数据和模式。这个标识符的大小通常比原始单词小得多,占用的空间也更少。因此,压缩文件的大小要小得多。虽然不同文件会带来不同的压缩效率,无法精确测量,但通常文件压缩可以将文件大小减少50%到90%,从而大大减小文件在计算机上所占的空间大小,也加快了用户在互联网上传输、共享文件的速度。

大数据与云上应用

对于现代企业来说,数据是业务功能的核心,用于从预测分析和趋势发现到理解客户行为、精炼营销策略和增强用户体验。为了使海量数据得到应用,企业必须系统地存储数据,以确保快速检索和访问。数据压缩有助于优化存储,以简化对用户数据的解释和分析。这一模式需要的是能动态读写的实时压缩算法,以满足企业的后台收集并即时服务于客户应用。知名的流媒体服务商,如TwitchYouTube等,也在大量使用数据压缩技术,从云端为用户端传输多媒体数据。通过压缩视频,流媒体服务可以更流畅的播放,减少缓冲时间并大幅提升画质。对于许多用户来说,更好的压缩技术极大地改善了他们的流媒体体验。

数据加密

数据压缩算法还可以在提高互联网数据传输速度的同时,提升所传输数据的安全性。在使用互联网广播技术进行的数据传输过程中,存在着数据被窃取或篡改的风险。数据发送端可以使用带有加密技术的数据压缩算法,通常只有此应用的接收端可以解密,这样可以将传输的数据转换成一种难以解析的形式,从而增加攻击者破解数据的难度。这对于普遍接入公开网络的各类应用程序而言非常重要,在数据传输的压缩过程中使用特殊的加密算法,可以保护用户的隐私数据。

物联网智能家居

随着物联网(IoT)在各个领域的扩展,以体积小、功能丰富、设备多样的硬件系统为特征的智能家居逐步走入千家万户。在IoT和智能家居中,压缩编码技术的应用场景非常广泛,如智能音响、智能摄像头、智能家居控制等。这些设备往往需要传输大量的音视频数据,并需要快速运算以做出反应,因此针对这一场景,能够保持数据完整性和安全性,并能高效运算的压缩解决方案的需求正在增长。

人工智能

数据压缩还为人工智能和机器学习等其他计算领域提供了更高的效率。通过压缩数据,人工智能模型可以更高效地训练、测试和部署。随着人工智能技术的快速发展,数据处理的需求越来越高。数据压缩算法在人工智能中可以提高模型的训练效率,大规模的数据集经过数据压缩,可以减少冗余信息,提取出有价值的特征,从而减少模型需要处理的数据量,加快训练速度。另外,数据压缩算法在人工智能中可以加快数据传输速度。在人工智能应用中,经常需要将模型从一台机器传输到另一台机器上。如果模型文件非常大,传输时间将会非常长,而模型文件压缩成更小的体积后,可以提高工作效率。

挑战

硬件限制

数据压缩与解压缩算法的执行时间取决于所用硬件设备的性能。对于传统的数据压缩算法,现在高速发展的处理器与存储器能够很好地满足运行速度的需求,但对于新提出的或正在研究中的、具有更高压缩比的新型压缩算法,可能会消耗更多的硬件资源与时间,难以满足即时解压、快速使用的需求。特别是对于基于深度学习技术的新型压缩算法,更是需要使用高级显卡的算力来进行压缩与解压缩的过程,这对此类算法的普及带来了一定的挑战。

兼容性

在开发新的压缩算法与软件的过程中,由于很多文件与数据是采取旧的压缩算法进行压缩留档,因此要尽可能确保新算法与旧文件的兼容性,使用户能够正常处理旧文件与数据,避免出现数据损坏或丢失。压缩数据时面临的另一个挑战是确保压缩系统与任何现有的遗留系统或第三方系统兼容,压缩文件、算法与不同遗留系统三者之间的不兼容,可能导致数据处理不正确,因此必须对数据压缩算法进行严格的测试。

安全与隐私

在压缩文件时,数据安全和隐私也是重要的考虑因素,因为任何潜在的漏洞都可能导致数据被恶意访问,带来用户隐私泄露的风险。因此压缩过程中应尽可能使用加密算法,使用强协议对数据进行安全加密。此外,应该严格监控系统对压缩数据的访问,并采取措施,确保只有文件主或授权用户才能访问敏感数据。随着现代应用中的数据规模正变得越来越大、越来越复杂,保护数据免受恶意者的攻击是至关重要的。

未来发展

更高的压缩效率

现代社会5G网络技术的普及,大幅提高了端用户的数据传输速度,可以在相同时间内传输更多的文件与数据,因此更高效的压缩编码技术始终需要发展。同时,计算机与其他设备的性能越来越好,拥有更大的运行与更快的运算速度,这为新型压缩算法和软件的开发提供了很好的基础,使很多过去无法使用或运行效率很低的算法可以成为现实。很多正在开发的新型数据压缩工具,可以在不牺牲数据完整性的情况下提供更高效的压缩效果。

更海量的数据规模

就企业和个人如何管理他们的海量数据并确保其长期安全而言,这将是一个长期的探索过程。对于不断增长的数据量而言,企业盲目地扩大存储容量既不经济,工作效率也很低。使压缩算法和工具能够适配现代应用更大的数据规模,并能更高效地处理海量用户数据,是针对企业级应用的一个重要需求,也是新型压缩算法的一个发展趋势。随着技术的发展,数据压缩技术正在成为现代信息社会重要的组成部分。

使用人工智能优化压缩

人工智能驱动的技术在数据压缩方面显示出巨大的潜力,可以实现更小的文件大小、更高的压缩比和更快的处理速度。利用神经网络、图像识别、内容预测、超分辨率重建等人工智能技术,可以针对数据生成更高效的压缩方式,从而提高压缩效率。要实现这样的人工智能压缩,需要使用更适合人工智能运行的硬件平台与系统,硬件与算法共同迭代进化,是当前发展趋势的显著特征。

相关概念

信息论

信息论为数据压缩提供了理论基础和方法论。克劳德·香农在1948年提出的信道容量和信息熵概念,为数据压缩的极限和效率提供了量化指标。香农的信道编码定理和率失真理论进一步指导了如何设计压缩算法以优化传输效率和保真度,确立了无损压缩和有损压缩的理论框架。

解压缩

解压缩(Decompression)是压缩的逆过程,是将一个通过软件,将被压缩的文档、文件等各种东西恢复到压缩之前的原始数据的过程,确保了压缩数据能够在接收端准确还原。无损压缩算法如哈夫曼编码和LZW算法,保证了数据在压缩和解压缩过程中的完整性。有损压缩虽然牺牲了部分数据以换取更高的压缩率,但适当的解压缩算法仍能恢复出可接受的数据质量,满足特定的应用需求。

量化

量化是数据压缩中将模拟信号转换为数字信号的重要步骤,尤其在有损压缩中起到核心作用。量化是模拟信号数字化的关键环节,也是数据压缩的基本技术。量化可分为标量量化和矢量量化两大类。标量量化对每个抽样值单独量化,如PCM;矢量量化将多个取样值作为一个整体量化,以最小化失真。合理的量化策略可以在压缩率和重构信号质量之间取得平衡。

参考资料

压缩.术语在线.2024-04-21

What is Data Compression & How Does it Work?.Datamation.2024-05-23

"data compression".Encyclopedia Britannica.2024-05-23

The Future of Data Compression.Endless Compression.2024-06-13

File Compression.Techopedia.2024-05-27

DEFINITION-data compression.TechTarget.2024-05-23

Digital Image Processing Lloyd-Max Quantization .Khoury.2024-06-26

LZW compression.TechTarget.2024-05-25

From Cinepak to H.265: a brief history of video compression.Ars Technica.2024-06-06

Deep Learning for Visual Data Compression.ACM Digital Library.2024-06-13

A Deep Learning Approach to Data Compression.BAIR.2024-06-26

Lossy compression.Khan Academy.2024-05-23

Text File Compression And Decompression Using Huffman Coding.Geeksforgeeks.2024-06-12

Text Compression.Springer Link.2024-06-12

DEFINITION-image compression.TechTarget.2024-06-12

What Are TIF and TIFF Files?.Lifewire.2024-06-12

What Is Video Compression?.Lifewire.2024-06-12

音频格式的汇总及压缩比较.腾讯云.2024-07-04

Huffman Coding.Programiz.2024-05-25

RAR file format.RARLab.2024-06-13

What Is a Zip File? Meaning, Working, and Advantages.Spice Works.2024-06-13

What is an ISO file? Definition and functions.Digital Guide.2024-06-13

AAC File (What It Is & How to Open One).Lifewire.2024-06-13

Everything You Need to Know About AAC Audio: The Ultimate Guide to the AAC File Format.JBlog.2024-06-13

Augmentative and Alternative Communication (AAC) .American Speech-Language-Hearing Association.2024-07-08

Decompression.Techopedia.2024-05-27