当今的数字世界将所有人使用手持设备(例如手机和平板电脑)连接。这也导致数据共享的增加,这进一步需要有效的磁盘存储管理。此外,通过Internet上的快速有效的数据共享需要文件大小尽可能小。 压缩文件格式提供有损和无损压缩算法来压缩数据。这些有助于减少磁盘存储利用率和通过Internet快速数据传输。 在本文中,让我们尝试了解最广泛使用的压缩算法及其类型。
无损压缩算法
顾名思义,无损压缩算法属于一类数据压缩算法,这些算法会压缩文件而不会丢失其任何内容。这意味着无损压缩算法可以从压缩数据中准确重建原始数据。许多不同的算法都考虑到典型的输入数据,或者假设未压缩数据可能包含哪种冗余。 以下是一些最广泛使用的无损压缩算法的简短说明:
BZIP2
该算法使用带有RLE和Huffman编码的Burrows-wheeler算法来压缩数据。它用于仅在不存档文件的情况下压缩文件。通常用.bz2扩展名保存压缩文件。
Huffman编码
该算法基于选择每个符号的身份的特定方法,从而导致前缀代码。 Huffman编码是创建前缀代码的普遍方法。带有扩展名的压缩文件,例如MPQ,。ACE,。JPEG,。PNG18,。ZIP得到Huffman的支持编码。
LEMPEL-ZIV压缩
该压缩算法也称为 lz77 和 lz78 是两个无损数据压缩算法。这些算法的组合基于许多变化,包括LZW,LZSS,LZMA等。他们俩都是理论上词典编码器。在压缩过程中,LZ77保持滑动窗口。后来或后来证明其等效于LZ78构建的显式词典。因此,它们等效于对整个数据的减压。带有。LZMA,。LZO,。LZ,。LZH扩展由LEMPEL-ZIV压缩支持。
通过部分匹配(PPM)预测
通过部分匹配的预测,也称为PPM是一种基于预测和上下文建模的压缩算法。为了预测流中的下一个符号,PPM模型使用未压缩符号流中的一组早期符号。 PPM算法支持zip和7z文件。
运行长度编码(RLE)
基于包含许多相邻数据元素中相同数据值的序列,该算法也称为无损压缩算法。这些序列称为运行。 RLE将每个运行存储为单个数据值和计数。这对包含许多运行的数据有益,例如简单的图形图像,例如图纸,图标,线条和动画。带有的文件。PSD,。PSB,。
有损压缩算法
为了减少文件的存储大小,有损压缩算法是领先的一步。而某些信息的丢失被接受为删除非必需的细节。有损耗的数据压缩算法是通过对人们如何理解数据的研究形成的。大多数有损压缩算法基于转换编码。 以下简要说明了一些著名的有损压缩算法:
离散余弦变换(DCT)
离散的余弦变换(DCT)是在不同频率下波动的余弦函数之和的有限序列。它用于大多数数字媒体,包括JPEG,HEIF,J2K,EXIF和DNG等数字图像。
小波压缩
小波压缩是一种有损的压缩算法,最常用于图像压缩中。该算法使用称为转换编码的原理,其中最初应用小波变换。这会产生与图像中有像素一样多的系数。由于该信息在统计上仅集中在几个系数上,因此可以更容易地压缩这些系数。值得注意的实现是静止图像的JPEG 2000,DJVU和ECW。
笛卡尔感知压缩(CPC)
这种有损压缩也被称为CPC,是为了高压档案扫描的黑白栅格成像而创建的。该算法通常用于法律文档,地理图图和设计计划的网络分布中。
分形压缩
分形压缩是一种基于分形数字图像的有损压缩算法。该算法适用于自然图像和纹理,依靠类似于同一图像的其他部分的图像的一部分。分形算法将这些部分转换为用于重新创建编码图像的分形代码。
结论
在本文中,您了解了压缩算法,其主要类型以及常用的压缩算法。没有必要在您脑海中了解所有压缩算法的知识。但是,如果您需要就各种有损或无损压缩的主题创建明智的演讲,则可以从这里获得帮助。因此,将此博客页面添加为参考。