随笔-341  评论-2670  文章-0  trackbacks-0
    今天将我的VL_LZ77Stream修改成了可以设置窗口大小的压缩流。我用了一些文件进行压缩和对比。

    用于实验的文件一共有4个。
    1、Serialized.xml
    2、Executable.xml
    3、Test_Stream.cpp
    4、RegexDebugger.exe。这个程序可以在首页的GUI Preview Demo中找到。

    我在写unit test的同时,在测试里打印了一张尺寸文件:
 1 [尺寸记录]
 2 文件名:Serialized.xml
 3   压缩后文件名:Serialized.xml.lz77_128
 4   压缩前尺寸:1246
 5   压缩后尺寸:553
 6 文件名:Executable.xml
 7   压缩后文件名:Executable.xml.lz77_128
 8   压缩前尺寸:20012
 9   压缩后尺寸:6587
10 文件名:Test_Stream.cpp
11   压缩后文件名:Test_Stream.cpp.lz77_128
12   压缩前尺寸:202258
13   压缩后尺寸:57209
14 文件名:RegexDebugger.exe
15   压缩后文件名:RegexDebugger.exe.lz77_128
16   压缩前尺寸:423936
17   压缩后尺寸:319656
18 文件名:Serialized.xml
19   压缩后文件名:Serialized.xml.lz77_256
20   压缩前尺寸:1246
21   压缩后尺寸:531
22 文件名:Executable.xml
23   压缩后文件名:Executable.xml.lz77_256
24   压缩前尺寸:20012
25   压缩后尺寸:4797
26 文件名:Test_Stream.cpp
27   压缩后文件名:Test_Stream.cpp.lz77_256
28   压缩前尺寸:202258
29   压缩后尺寸:50789
30 文件名:RegexDebugger.exe
31   压缩后文件名:RegexDebugger.exe.lz77_256
32   压缩前尺寸:423936
33   压缩后尺寸:300732
34 文件名:Serialized.xml
35   压缩后文件名:Serialized.xml.lz77_512
36   压缩前尺寸:1246
37   压缩后尺寸:332
38 文件名:Executable.xml
39   压缩后文件名:Executable.xml.lz77_512
40   压缩前尺寸:20012
41   压缩后尺寸:4056
42 文件名:Test_Stream.cpp
43   压缩后文件名:Test_Stream.cpp.lz77_512
44   压缩前尺寸:202258
45   压缩后尺寸:46724
46 文件名:RegexDebugger.exe
47   压缩后文件名:RegexDebugger.exe.lz77_512
48   压缩前尺寸:423936
49   压缩后尺寸:295101
50 文件名:Serialized.xml
51   压缩后文件名:Serialized.xml.lz77_1024
52   压缩前尺寸:1246
53   压缩后尺寸:351
54 文件名:Executable.xml
55   压缩后文件名:Executable.xml.lz77_1024
56   压缩前尺寸:20012
57   压缩后尺寸:3727
58 文件名:Test_Stream.cpp
59   压缩后文件名:Test_Stream.cpp.lz77_1024
60   压缩前尺寸:202258
61   压缩后尺寸:39441
62 文件名:RegexDebugger.exe
63   压缩后文件名:RegexDebugger.exe.lz77_1024
64   压缩前尺寸:423936
65   压缩后尺寸:295676
66 文件名:Serialized.xml
67   压缩后文件名:Serialized.xml.lz77_2048
68   压缩前尺寸:1246
69   压缩后尺寸:349
70 文件名:Executable.xml
71   压缩后文件名:Executable.xml.lz77_2048
72   压缩前尺寸:20012
73   压缩后尺寸:3494
74 文件名:Test_Stream.cpp
75   压缩后文件名:Test_Stream.cpp.lz77_2048
76   压缩前尺寸:202258
77   压缩后尺寸:17248
78 文件名:RegexDebugger.exe
79   压缩后文件名:RegexDebugger.exe.lz77_2048
80   压缩前尺寸:423936
81   压缩后尺寸:300916

    下面是整理后的表格:(我发现如果没有写这句话,我那伟大的IE7会挂掉)
Size 128 256 512 1024 2048
Serialized.xml 1246 553 531 332 351 349
Executable.xml 20012 6587 4797 4056 3727 3494
Test_Stream.cpp 202258 57209 50789 46724 39441 17248
RegexDebugger.exe 423936 319656 300732 295101 295676 300916

    实验证明,如果文件内容多次重复且散布得广的话,那么窗口越大压缩比越高。
posted on 2009-01-06 08:36 陈梓瀚(vczh) 阅读(2207) 评论(1)  编辑 收藏 引用 所属分类: C++

评论:
# re: LZ77压缩效果测试 2014-07-23 04:27 | 275610049
压缩效果是很好 不过压缩速度好像有点慢了。 我在网上找了2个代码 加到自己的程序中 一个3MB的bmp图像压缩要用8秒 太慢了 不知道是不是我找的代码有问题  回复  更多评论
  

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理