Re: [請問] 結實壓縮檔 我真是搞不懂你阿

看板EZsoft (小軟體)作者 ( )時間14年前 (2011/11/14 19:04), 編輯推噓13(13035)
留言48則, 5人參與, 最新討論串2/4 (看更多)
結石壓縮檔的意思 和你想的不太一樣喔 我把我個人粗淺的認知大略的講解一下 我想你會比較清楚 今天我們有三個mp3要做壓縮打包 a.mp3 b.mp3 c.mp3 用一般的壓縮方式壓出來的檔案可能是這樣子 <r39q34t0ogwh9gweqglm F9RY890Q98O5QWYTJ4QOIJA TRGHEHAIOEAWIAODRS> 中間的壓縮原理和演算我省略不講 你會發現為了讓電腦能夠更快速的辨識壓縮完的檔案各自在哪裡 用了三個空格(當然實際不會簡單到這麼無腦)來分隔他們 這樣的話 如果進行3個檔案 會有(3-1)*n個浪費掉的空格 那如果20000個檔案的話 就會浪費掉(20000-1)*n個空格 這種狀況下影響是很可觀的 而結實壓縮檔就是把那些空格捨去 用更簡短或根本省略的方式做表達 有效率地降低壓縮檔的大小 至於本來壓縮出來的檔案資料流會長甚麼樣子 是不會影響的 但是這樣的缺點就是 在結實壓縮檔解壓縮任何一個或數個檔案的時候 必須要把壓縮檔整個掃過一遍而沒辦法就只讀那個檔案那段 實務上用的方式一定比我講的這個還要聰明 甚至聰明到天才的地步 但是對普通使用者應該是這樣理解就夠你判斷了 以你的情況 壓縮幾個ISO 並不會改變太多的 這時候用結實壓縮檔的好處就不會那麼明顯 你要求壓縮比高 應該改用7z的lzma2(推薦XD)或把RAR壓縮方式調成壓縮最佳 而你那張圖純粹是因為被打包的檔案不一樣 所以索引字典之類的也不一樣 當然同個檔案壓出來的效果也不同 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.34.214.97 ※ 編輯: y3k 來自: 114.34.214.97 (11/14 19:06)

11/14 19:09, , 1F
請問你能幫我解釋為何兩個相同的4063KB的檔案壓縮起來會
11/14 19:09, 1F

11/14 19:10, , 2F
很小 幾乎相當於單一4063KB的檔案去壓縮 但4065KB則無
11/14 19:10, 2F

11/14 19:15, , 3F
你確定4065kb你是拿兩個一樣的檔案去壓嗎
11/14 19:15, 3F

11/14 19:20, , 4F
百分之百確定 因為是直接複製的 你也可以自己做一下實驗
11/14 19:20, 4F

11/14 19:20, , 5F
不會花您太多的時間
11/14 19:20, 5F

11/14 19:21, , 6F
我突然要去哪裡生一個4065kb的檔案=_=
11/14 19:21, 6F

11/14 19:22, , 7F
7z安定^_^
11/14 19:22, 7F

11/14 19:22, , 8F
個人實驗結果如圖 http://i.imgur.com/EsCic.png
11/14 19:22, 8F

11/14 19:22, , 9F
我可以肯定的是 只要你的RAM夠大 用7z一定能有讓你滿意的結果
11/14 19:22, 9F

11/14 19:22, , 10F
不必一定要4065KB 以此檔案大小當邊界 隨便一個3MB和5MB
11/14 19:22, 10F

11/14 19:24, , 11F
對了 我的圖裡面都有顯示CRC32 可見是一樣的檔案
11/14 19:24, 11F

11/14 19:24, , 12F
7z除了一般根本不會用到的rr功能外幾乎完勝rar
11/14 19:24, 12F

11/14 19:25, , 13F
唉 我是要玩免空的 rr很重要阿
11/14 19:25, 13F

11/14 19:25, , 14F
那應該就是rar字典設計上的問題了 這個你可能要找WINRAR公司
11/14 19:25, 14F

11/14 19:26, , 15F
不然你可以考慮這樣:7z壓縮候用rar再包一層加RR
11/14 19:26, 15F

11/14 19:40, , 16F
嗯 真沒辦法也只好這樣試試了 謝謝您的建議
11/14 19:40, 16F

11/14 19:41, , 17F
7z建議這樣:選7z+lzma2 字組大小ㄍㄧㄥ到最大 字典大小再ㄍㄧ
11/14 19:41, 17F

11/14 19:42, , 18F
ㄥ到你RAM的極限w
11/14 19:42, 18F

11/14 19:43, , 19F
謝謝您 馬上來試試
11/14 19:43, 19F

11/14 19:58, , 20F
感謝您 7z真的辦到了 http://i.imgur.com/M38vj.png
11/14 19:58, 20F

11/14 20:01, , 21F
上面圖片貼壞了 換一張 http://i.imgur.com/UrQOY.png
11/14 20:01, 21F

11/14 20:07, , 22F
不過7z的設定和您說的有點不同 字典和字組都有其極限
11/14 20:07, 22F

11/14 20:08, , 23F
而區塊大小的設定是到64GB 再上去那個"結實"似乎表示∞
11/14 20:08, 23F

11/14 20:08, , 24F
相關設定請參閱此圖 http://imgur.com/0AY9N
11/14 20:08, 24F

11/14 20:09, , 25F
字組是273 字典是1024阿 如果用多線程會讓RAM使用量增加就是了
11/14 20:09, 25F

11/14 20:10, , 26F
這些都是不需要在意的細節 你穩穩用就好了~
11/14 20:10, 26F

11/14 20:12, , 27F
反正原原PO的問題跟結實無關就對了。
11/14 20:12, 27F

11/14 20:16, , 28F
剛據我剛剛用7z測試的結果 7z稱之為"結實區塊大小"
11/14 20:16, 28F

11/14 20:28, , 29F
實驗結果如圖 http://i.imgur.com/BIZt7.png
11/14 20:28, 29F

11/14 20:35, , 30F
我想下面的圖可以說明我的問題就是"結實壓縮檔"
11/14 20:35, 30F

11/14 20:36, , 31F

11/14 20:39, , 32F
根據以上實驗結果推測 7z可以設定"結實區塊大小" 小於
11/14 20:39, 32F

11/14 20:39, , 33F
此大小的檔案 會去比較相似程度 大於此大小的則單獨壓縮
11/14 20:39, 33F

11/14 20:40, , 34F
至於winrar 部分 目前實驗結果顯示 "結實區塊大小"預設
11/14 20:40, 34F

11/14 20:42, , 35F
約4063KB 超過或小於的運作方式和7z雷同
11/14 20:42, 35F

11/14 20:44, , 36F
而上篇那些噓我的人 如果方便 請提出實驗或網頁反駁我吧
11/14 20:44, 36F

11/15 15:48, , 37F
剛剛再測試了一下 和字典檔大小似乎也有關係
11/15 15:48, 37F

11/15 15:51, , 38F
即便結實區塊大小已經設成64GB了 但是超過64MB的檔案
11/15 15:51, 38F

11/15 15:53, , 39F
依舊無法達到瘦身的效果 7Z字典檔最多64MB 而且壓縮時需
11/15 15:53, 39F

11/15 15:54, , 40F
要709MB的記憶體 解壓需要66MB的記憶體 根據我的推算
11/15 15:54, 40F

11/15 15:55, , 41F
壓縮2GB的檔案 需要21GB的記憶體 且解壓縮也要2GB記憶體
11/15 15:55, 41F

11/15 18:37, , 42F
你可以嘗試看看先用tar包起來再來壓 或許有不同的效果...
11/15 18:37, 42F

11/15 21:06, , 43F
tar喔 來找找看windows下要用哪個壓比較好 7Z適合嗎?
11/15 21:06, 43F

11/15 23:09, , 44F
一般常見是gz和bz來壓 gz較快 bz壓的比較多 7z倒是沒試過
11/15 23:09, 44F

11/15 23:22, , 45F
win底下我也只知道7zip能做tarball
11/15 23:22, 45F

11/15 23:23, , 46F
還有rick你壓縮方式有沒有選lzma2啊@@
11/15 23:23, 46F

11/16 02:13, , 47F
一樣
11/16 02:13, 47F

11/16 02:14, , 48F
所有設定調到最大 但只要大於64MB 則依舊無效果
11/16 02:14, 48F
文章代碼(AID): #1EmFMs3u (EZsoft)
文章代碼(AID): #1EmFMs3u (EZsoft)