数据压缩:完全参考
http://www.davidsalomon.name/DC4advertis/DComp4Ad.html
http://download.csdn.net/source/2082674 1# G-Spider
在http://library.nu 里搜到了该书的链接,不用注册即可下载:
http://ifile.it/ihk7pbj/_eIhbVGtED68.7z 上书也提到了一点关于LZMA,(Lempel-Ziv-Markov chain-Algorithm的缩写),是一个Deflate和LZ77算法改良和优化后的压缩算法,开发者是Igor Pavlov
可以到http://www.7-zip.org/ 下载到SDK。
可以在LzmaLib.h找到压缩LzmaCompress与解压缩LzmaUncompress的接口说明。
LZMA格式的解压,依赖Alloc.c , LzmaDec.c,LzmaLib.c, LzmaLib.h ,Types.h ,LzmaDec.h ,Alloc.h这7个文件再加上自己写的main函数就可以集成解压。/*
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
-1for any from: level, loc, lp, pb, fb, numThreads
0for dictSize
level - compression level: 0 <= level <= 9;
level dictSize algofb
0: 16 KB 0 32
1: 64 KB 0 32
2: 256 KB 0 32
3: 1 MB 0 32
4: 4 MB 0 32
5: 16 MB 1 32
6: 32 MB 1 32
7+: 64 MB 1 64
The default value for "level" is 5.
algo = 0 means fast method
algo = 1 means normal method
dictSize - The dictionary size in bytes. The maximum value is
128 MB = (1 << 27) bytes for 32-bit version
1 GB = (1 << 30) bytes for 64-bit version
The default value is 16 MB = (1 << 24) bytes.
It's recommended to use the dictionary that is larger than 4 KB and
that can be calculated as (1 << N) or (3 << N) sizes.
lc - The number of literal context bits (high bits of previous literal).
It can be in the range from 0 to 8. The default value is 3.
Sometimes lc=4 gives the gain for big files.
lp - The number of literal pos bits (low bits of current position for literals).
It can be in the range from 0 to 4. The default value is 0.
The lp switch is intended for periodical data when the period is equal to 2^lp.
For example, for 32-bit (4 bytes) periodical data you can use lp=2. Often it's
better to set lc=0, if you change lp switch.
pb - The number of pos bits (low bits of current position).
It can be in the range from 0 to 4. The default value is 2.
The pb switch is intended for periodical data when the period is equal 2^pb.
fb - Word size (the number of fast bytes).
It can be in the range from 5 to 273. The default value is 32.
Usually, a big number gives a little bit better compression ratio and
slower compression process.
numThreads - The number of thereads. 1 or 2. The default value is 2.
Fast mode (algo = 0) can use only 1 thread.
Out:
destLen- processed output size
Returns:
SZ_OK - OK
SZ_ERROR_MEM - Memory allocation error
SZ_ERROR_PARAM - Incorrect paramater
SZ_ERROR_OUTPUT_EOF - output buffer overflow
SZ_ERROR_THREAD - errors in multithreading functions (only for Mt version)
*/
MY_STDAPI LzmaCompress(unsigned char *dest, size_t *destLen, const unsigned char *src, size_t srcLen,
unsigned char *outProps, size_t *outPropsSize, /* *outPropsSize must be = 5 */
int level, /* 0 <= level <= 9, default = 5 */
unsigned dictSize,/* default = (1 << 24) */
int lc, /* 0 <= lc <= 8, default = 3*/
int lp, /* 0 <= lp <= 4, default = 0*/
int pb, /* 0 <= pb <= 4, default = 2*/
int fb, /* 5 <= fb <= 273, default = 32 */
int numThreads /* 1 or 2, default = 2 */
);
/*
LzmaUncompress
--------------
In:
dest - output data
destLen- output data size
src - input data
srcLen - input data size
Out:
destLen- processed output size
srcLen - processed input size
Returns:
SZ_OK - OK
SZ_ERROR_DATA - Data error
SZ_ERROR_MEM - Memory allocation arror
SZ_ERROR_UNSUPPORTED - Unsupported properties
SZ_ERROR_INPUT_EOF - it needs more bytes in input buffer (src)
*/
MY_STDAPI LzmaUncompress(unsigned char *dest, size_t *destLen, const unsigned char *src, SizeT *srcLen,
const unsigned char *props, size_t propsSize);上面两个函数的src串的长度是确定的,而dest串的长度是通过返回得到的。
本帖最后由 qianyb 于 2011-2-26 11:57 编辑
2#的需要解压密码,请问解压密码是多少?
默认都是library.nu 的
不是啊 3# G-Spider
我只知道rle 压缩 4# qianyb
默认都是library.nu 的 除了PAQ,现在别的我都不感兴趣了... 7# 仙剑魔
我想PAQ“高压缩”背后的时间代价是最大的隐痛,以前我试过很多PAQ系列,深有体会。当前,从资源角度,相对的高压缩率和用时极少才是热捧的对象。
当然,如果LS的能够解决时间效率问题,你会出名的。 4# qianyb
无意间发现你这个帖子更新了。
才意识到我没有回复你,莫怪啊
现给出一个无需密码的链接
http://ifile.it/jsn5bh/ebooksclub.org__Data_Compression__The_Complete_Reference__Fourth_Edition.pdf 没注意到正常的,谢谢你了
页:
[1]