gzip是GNU zip的缩写,它是一个GNU自由软件的文件压缩程序,也经常用来表示gzip这种文件格式。软件的作者是Jean-loup Gailly和Mark Adler。1992年10月31日第一次公开发布,版本号是0.1。
[编辑]文件格式
gzip的基础是DEFLATE,DEFLATE是LZ77与哈夫曼编码的一个组合体。DEFLATE最初是作为LZW以及其它受专利保护的数据压缩算法的替代版本而设计的,当时那些专利限制了compress以及其它一些流行的归档工具的应用。
文件格式说明:
10字节的头,包含幻数、版本号以及时间戳
可选的扩展头,如原文件名
文件体,包括DEFLATE压缩的数据
8字节的尾注,包括CRC-32校验和以及未压缩的原始数据长度
尽管这种文件格式允许多个这样的数据拼接在一起,在解压时也把它们当作拼接在一起的数据,但是通常gzip仅仅用来压缩单个文件。多个文件的压缩归档通常是首先将这些文件合并成一个tar文件,然后使用gzip进行压缩,最后生成的.tar.gz或者.tgz文件,这就是所谓的“tar压缩包”或者“tarball”。
注意不要将gzipZIP压缩格式混淆。ZIP也使用DEFLATE算法,而且可移植性更好,并且不需要一个外部的归档工具就可以包容多个文件。但是,由于ZIP对每个文件进行单独压缩而没有利用文件间的冗余信息(固实压缩),所以ZIP的压缩率要稍逊于tar压缩包。
zlib是DEFLATE算法的实现库,它的API同时支持 gzip文件格式以及一个简化的数据流格式。zlib数据流格式、DEFLATE以及gzip文件格式均已被标准化成了,分别是RFC 1950、RFC 1951以及RFC 1952。
//*********************************************************
DEFLATE是同时使用了LZ77算法与哈夫曼编码(Huffman Coding)的一个无损数据压缩算法。它最初是由Phil Katz为他的PKZIP归档工具第二版所定义的,后来定义在RFC 1951规范中。
人们普遍认为DEFLATE不受任何专利所制约,并且在LZW(GIF文件格式使用)相关的专利失效之前,这种格式除了在ZIP文件格式中得到应用之外也在gzip压缩文件以及PNG图像文件中得到了应用。
DEFLATE压缩与解压的源代码可以在自由、通用的压缩库zlib上找到。
更高压缩率的DEFLATE是7-zip所实现的。AdvanceCOMP也使用这种实现,它可以对gzip、PNG、MNG以及ZIP文件进行压缩从而得到比zlib更小的文件大小。在Ken Silverman的KZIP与PNGOUT中使用了一种更加高效同时要求更多用户输入的DEFLATE程序。
分享到:
相关推荐
BWT常与其他压缩算法结合使用,如在Bzip2中。 5. Arithmetic coding(算术编码):算术编码通过对每个字符的概率进行精确量化,将数据编码为一个连续的实数值区间,相比传统的熵编码如霍夫曼编码,算术编码可以更...
本主题聚焦于"matlab开发-其他压缩算法",特别是简单LZW(Lempel-Ziv-Welch)算法的实现。LZW算法是一种无损数据压缩方法,广泛应用于文本、图像等多种数据类型的压缩。这里我们将深入探讨LZW算法的原理及其在MATLAB...
7-Zip是一种流行的开源压缩工具,以其高效率和强大的压缩比而闻名。它的核心是7z格式,采用了多种先进的压缩算法,其中包括LZMA...在实际应用中,还可以探索如何将7-Zip与其他压缩算法结合,以满足特定场景的需求。
LZO的特点在于其简单性和速度,但相比其他压缩算法(如DEFLATE,用于gzip和zip),它的压缩比通常较低。 在"lzo-2.02"这个压缩包中,我们可以找到LZO压缩库的源代码版本2.02。这个版本包含了LZO算法的核心实现,...
LZO(Lempel-Ziv-Oberhumer)压缩算法是一种快速、轻量级的数据压缩算法,由V. Lempel、A. Ziv和P. Oberhumer在1986年提出。...同时,对比其他压缩算法(如DEFLATE或LZ4),也可以更全面地评估各种压缩技术的优缺点。
5. **其他可能包含的压缩算法**: 除了上述算法,这个压缩包可能还包括其他压缩方法,如Burrows-Wheeler变换(BWT)、Run-Length Encoding (RLE)、游程编码、块编码、预测编码等。每种算法都有其适用场景和优势,...
压缩包内的文件"轨迹数据压缩算法"可能包含了实现这一过程的具体源代码文件,可能包括类、方法和其他辅助函数,开发者可以通过阅读和分析这些代码来了解DP算法在实际项目中的应用方式。学习这部分源码不仅可以帮助...
在提供的压缩包中,"www.pudn.com.txt"可能是下载来源的说明或版权信息,而"压缩_解压缩算法集锦(一)"很可能是一个文档,包含了ACMS以及其他压缩算法的详细解释、实现代码或实例。这个文档可能是学习和研究ACMS算法...
在实际应用中,RLE常常与其他压缩算法如霍夫曼编码(Huffman Coding)或LZW(Lempel-Ziv-Welch)编码结合使用,以提升整体的压缩性能。例如,在位图图像的压缩中,RLE可以先对行数据进行简单的压缩,然后用其他更...
然而,对于有明显模式的二进制数据,如图像或音频,其他压缩算法如JPEG或MP3可能表现更好。 总的来说,理解和掌握LZW压缩算法,不仅能提高你对数据压缩原理的认识,还有助于你在处理文本数据时选择合适的压缩技术,...
Oracle 数据库高级压缩算法介绍 Oracle 数据库高级压缩算法是 Oracle Database 12c 中的一种压缩技术,旨在提高数据存储效率、减少存储空间、提高数据传输速度和改善备份恢复速度。下面是 Oracle 高级压缩算法的...
学习和理解LZW算法,不仅可以加深对数据压缩的理解,还可以为其他压缩算法如Huffman编码和Burrows-Wheeler Transform提供基础。此外,通过分析C语言实现,可以学习到如何在实际编程中应用数据结构(如哈希表)和算法...
针对这类情况,开发者经常需要寻找适合小RAM单片机的压缩算法来优化存储和传输效率。本压缩包文件包含了多种这样的算法,它们在VSCode环境下已经验证通过,除了gzip由于其较高内存需求未在单片机上实际运行外,其他...
STM32移植MINI LZO 2.09压缩算法是一项在...然而,需要注意的是,虽然LZO速度快,但其压缩比可能不如其他更复杂的压缩算法(如DEFLATE,用于gzip和zip),因此在选择算法时应根据具体应用场景权衡速度和压缩效果。
霍夫曼编码(Huffman Coding)是一种数据压缩算法,由美国计算机科学家大卫·霍夫曼在1952年提出,常用于文本压缩。...在实际应用中,霍夫曼编码常与其他压缩算法结合使用,如LZ77或LZ78,以提高压缩效率。
然而,值得注意的是,虽然ZLO在速度和内存效率上有优势,但它的压缩率相比其他高级压缩算法(如DEFLATE,用于ZIP和GZIP格式)可能会较低。因此,在选择压缩算法时,应根据具体的应用需求平衡压缩效率、解压速度和...
BWT是一种预处理步骤,可以极大地改善其他压缩算法的效果。它通过排列字符来改变输入数据的顺序,使得相同或相似的字符更集中。在Delphi中,实现BWT需要对输入数据进行旋转和排序。解压缩时则需要逆向执行这个过程...
随心压缩算法 介绍 Xpress 压缩算法具有三种变体,均专为提高速度而设计。最快的变体 Plain LZ77 实现了 LZ77 算法 ( UASDC )。较慢的变体 LZ77+Huffman 在 LZ77 数据上添加了 Huffman 编码通道。第三个变体 LZNT1 ...
而对于数据分布较为均匀的情况,其他压缩算法如LZ77或LZW可能更合适。 总的来说,哈夫曼压缩算法是一种重要的数据压缩技术,它基于字符频率统计和最优二叉树构建,通过为字符分配不同的二进制编码实现数据的高效...
用C语言实现ZIP压缩算法,包含其他一些压缩算法