2024年3月23日发(作者:)
Lzma的全称是Lempel-Ziv-Markov chain Algorithm,和bzip2/gzip一样,是一款
压缩/解压软件.它比bzip更加快速与高效。就我们所知, gzip压缩比率低于bzip2 (还有
lzma). 此文将介绍如何使用lzma, 一个有着更高压缩率和压缩速度的软件。 1.使用lzma
-c压缩输入的文本文件 $ lzma -c –stdout > 2.使用选项 -d
解压lzma文件 $ lzma -d –stdout > 比较bzip2 和 lzma 两
款压缩工具为了更加了解lzma的效率如何, 我们来分别使用lzma和bzip2压缩/解压一
个 1MB 的文本文件( ),然后比较一下结果如何. 此项测试使用的机器的RAM
为1GB,CPU为Pentium 4. 的大小: $ ls -l -rw-r–r– 1 bala
bala 1048576 2010-05-14 19:43 说明: 我们在每个压缩/解压命名前使用
time命令,来查看每次命令执行的CPU 使用情况. 使用bzip2压缩文件不使
用任何参数来用bzip2 压缩输入文件. $ time bzip2 real 0m27.874s
user 0m13.981s sys 0m0.148s $ ls -l 2 -rw-r–r– 1 bala
bala 1750 2010-05-14 [...]
LZMA,(Lempel-Ziv-Markov chain-Algorithm的缩写),是一个Deflate和LZ77
算法改良和优化后的压缩算法,开发者是Igor Pavlov
可以到[url]/[/url] 下载到SDK。
可以在LzmaLib.h找到压缩LzmaCompress与解压缩LzmaUncompress的接口说
明。
LZMA格式的解压,依赖Alloc.c , LzmaDec.c, LzmaLib.c,
LzmaLib.h ,Types.h ,LzmaDec.h ,Alloc.h这7个文件再加上自己写的main函数就可以集
成解压。[code]/*
LzmaCompress
------------
outPropsSize -
In: the pointer to the size of outProps buffer; *outPropsSize =
LZMA_PROPS_SIZE = 5.
Out: the pointer to the size of written properties in outProps buffer;
*outPropsSize = LZMA_PROPS_SIZE = 5.
LZMA Encoder will use defult values for any parameter, if it is
-1 for any from: level, loc, lp, pb, fb, numThreads
0 for dictSize
level - compression level: 0 <= level <= 9;
level dictSize algo fb
0: 16 KB 0 32
1: 64 KB 0 32


发布评论