PSP ISO 壓縮程式 CISO 改

ciso 是 iso 與 cso 間的轉換程式,可將 iso 壓縮變小,節省記憶棒空間。但壓縮後讀取時需耗費cpu 時間去解,有時會造成讀取較慢,所以這是一種空間與時間的交換。另外在壓縮的時過程中,並不是所有的檔案都能順利變小,有時反而會變糟糕,大多數是因為原來檔案已經是某種壓縮後的形式,這時候 ciso 會將這些部分用未壓的區塊存下(保持原來的樣子),將來在讀取的時候也不需耗時去解。經過一些分析後發現,有些區塊很接近壓不下來的狀態(就算用壓縮的形式存下來也爭取不到多少空間),但如果用未壓的形式存下來卻可以節省讀取的時間。
我在 ciso 的程式中加入了一個參數,用來決定多少 % 之上要存成未壓的區塊(原本預設是 100%),可用來調整這兩者之間的平衡。

Download:http://kinmenalex.googlepages.com/ciso.zip
MD5: 582799B46DBAE9C0CC19CA5594342B59
Source: http://kinmenalex.googlepages.com/ciso_src.zip
MD5: F8F856290848DDA540EB5D304ECBD83F

舉一個 iso 檔為例子
當未壓 % 由預設的 100 調成 95 時,
壓縮率下降了 1% (62%-->63%) , 也就是大小只增加了 1%,
但不需解壓的部分卻增加了 38% (13%-->51%)

Example:
------------------------------------------------------------
D:\>c:\tool\ciso
Compressed ISO9660 converter Ver.1.02 by BOOSTER
Usage: ciso level infile outfile [nc%]
level: 1-9 compress ISO to CSO (1=fast/large - 9=small/slow)
0 decompress CSO to ISO

D:\>c:\tool\ciso 9 ha.iso p:\iso\ha.cso 100 20
Compressed ISO9660 converter Ver.1.02 by BOOSTER
Compress 'ha.iso' to 'p:\iso\ha.cso'
Total File Size 1539827712 bytes
block size 2048 bytes
index align 1
compress level 9
No compress 2048[100%]
ciso compress completed , total size = 964170830 bytes , rate 62%
Uncompressed block 2048[100%] = 94598 (13%)
----- Statistics -----
2048[100%] = 94598 (13%)
1946[95%] = 287100 (38%)
1844[90%] = 46252 (6%)
1741[85%] = 16328 (2%)
1639[80%] = 6686 (1%)
1536[75%] = 2846 (0%)
1434[70%] = 2560 (0%)
1332[65%] = 2806 (0%)
1229[60%] = 3426 (0%)
1127[55%] = 4494 (1%)
1024[50%] = 5834 (1%)
0922[45%] = 5368 (1%)
0820[40%] = 5724 (1%)
0717[35%] = 6098 (1%)
0615[30%] = 6238 (1%)
0512[25%] = 7685 (1%)
0410[20%] = 8563 (1%)
0308[15%] = 9111 (1%)
0205[10%] = 10362 (1%)
0103[5%] = 7767 (1%)
0000[0%] = 212023 (28%)

D:\>

D:\>c:\tool\ciso 9 ha.iso p:\iso\ha_95.cso 95 20
Compressed ISO9660 converter Ver.1.02 by BOOSTER
Compress 'ha.iso' to 'p:\iso\ha_95.cso'
Total File Size 1539827712 bytes
block size 2048 bytes
index align 1
compress level 9
No compress 1946[95%]
ciso compress completed , total size = 979963090 bytes , rate 63%
Uncompressed block 1946[95%] = 381698 (51%)
----- Statistics -----
2048[100%] = 94598 (13%)
1946[95%] = 287100 (38%)
1844[90%] = 46252 (6%)
1741[85%] = 16328 (2%)
1639[80%] = 6686 (1%)
1536[75%] = 2846 (0%)
1434[70%] = 2560 (0%)
1332[65%] = 2806 (0%)
1229[60%] = 3426 (0%)
1127[55%] = 4494 (1%)
1024[50%] = 5834 (1%)
0922[45%] = 5368 (1%)
0820[40%] = 5724 (1%)
0717[35%] = 6098 (1%)
0615[30%] = 6238 (1%)
0512[25%] = 7685 (1%)
0410[20%] = 8563 (1%)
0308[15%] = 9111 (1%)
0205[10%] = 10362 (1%)
0103[5%] = 7767 (1%)
0000[0%] = 212023 (28%)

D:\>