今天將我的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) 閱讀(2274)
評論(1) 編輯 收藏 引用 所屬分類:
C++