在压缩算法方面,我不是很精通。
我有一段C#代码,它使用上述库来对数据块进行压缩和解压缩。它使用压缩级别3,但除此之外,它是最基本的实现。
现在,我想使用c++对这些数据做同样的处理。因为它是压缩格式,所以我们讨论的是压缩算法,对吗?
我是否正确地认为,任何处理压缩压缩的c++库都使用该算法,并且它与C#版本兼容?第3级压缩是压缩标准,还是C#库特有的压缩?
基本上,在我的代码中查找和实现库时,我需要注意什么?
发布于 2017-04-22 16:47:41
因为它是压缩格式,所以我们讨论的是压缩算法,对吗?
并非所有的.zip文件都使用压缩算法。ZIP规范列出了它支持的大量不同的压缩方法:
4.4.5 compression method: (2 bytes)
0 - The file is stored (no compression)
1 - The file is Shrunk
2 - The file is Reduced with compression factor 1
3 - The file is Reduced with compression factor 2
4 - The file is Reduced with compression factor 3
5 - The file is Reduced with compression factor 4
6 - The file is Imploded
7 - Reserved for Tokenizing compression algorithm
8 - The file is Deflated
9 - Enhanced Deflating using Deflate64(tm)
10 - PKWARE Data Compression Library Imploding (old IBM TERSE)
11 - Reserved by PKWARE
12 - File is compressed using BZIP2 algorithm
13 - Reserved by PKWARE
14 - LZMA (EFS)
15 - Reserved by PKWARE
16 - Reserved by PKWARE
17 - Reserved by PKWARE
18 - File is compressed using IBM TERSE (new)
19 - IBM LZ77 z Architecture (PFS)
97 - WavPack compressed data
98 - PPMd version I, Rev 1我是否正确地认为,任何处理压缩压缩的c++库都使用该算法,并且它与C#版本兼容?
真正由库的作者来决定他们所支持的是什么,但是由于它的广泛使用,应该在几乎每个压缩库中实现它。不过,并不是所有的库都与SharpZipLib兼容,因为不同的程序员对如何最好地组织他们的代码有不同的想法。
第3级压缩是压缩标准,还是C#库特有的压缩?
这是标准的一部分。
4 - The file is Reduced with compression factor 3基本上,在我的代码中查找和实现库时,我需要注意什么?
确保库支持您想要使用的任何压缩方法,确保API对您有意义,并尝试查找库的基准测试,以查看它的速度。如果您需要处理压缩数据,而不是读取和写入磁盘,那么请确保库可以写入流或字节缓冲区,以便通过网络发送。
链接符合ZIP规范。
发布于 2017-04-23 00:07:32
压缩级别是在压缩时选择的速度与压缩比的权衡。它对减压器的解压能力没有任何影响。
很有可能您的zip文件包含被压缩的条目。您可以使用任何解拉链列出内容,并找出。
https://stackoverflow.com/questions/43561651
复制相似问题