推 jmren:和老師說的不謀而合,正在努力coding LZW...囧 05/10 00:44
推 jmren:只是問問有沒有人會sparse matrix的壓縮法...沒有那就算了 05/10 00:49
幫你做實驗, 加強你的信心. XD
我用rand()產生資料 (25%為1, 75%為0)
bit-1.txt是每一個bit為一筆資料.
bit-8.txt是每一個byte為一筆資料, 資料只有"0"和"1"兩種.
16384 bit-1.txt
131072 bit-8.txt
15222 bit-1.txt.bz2 15222/16384 =92.9%
16699 bit-8.txt.bz2 16699/131072=12.74%
所以......還是努力coding吧. :P
※ 編輯: gwliao 來自: 140.112.230.125 (05/10 00:55)
※ 編輯: gwliao 來自: 140.112.230.125 (05/10 00:55)
推 jmren:bz2是什麼壓縮法,竟然比LZMA還厲害...QQ 05/10 01:12
→ jmren:呵,這實驗我已經做了n次了...QQ,8byte是12.5%,1bit是84% 05/10 01:14
→ jmren:但還是感謝你的熱心回應喲:) 05/10 01:14
推 reader:bz2 是使用 BWT 的壓縮法, 請參考 #66 05/10 02:19
jmren大哥, 你會錯意了.
我想表達的是.......原本的壓縮法對你的資料其實是很有用的.
( 只是要將byte operation改成bit operation. XD )
而不是哪個壓縮法很有用.
實際試一下, 發現.....這些方法是很不錯. :)
再秀一些資料. gz表示用gzip壓, 7z......你應該知道. XD
(gzip -9)
13743 bit-1.txt.gz 83.88%
17392 bit-8.txt.gz 13.26%
(7z, 64Mb, 48 Bit)
14054 bit-1.txt.7z 85.78%
15774 bit-8.txt.7z 12.03%
※ 編輯: gwliao 來自: 140.112.230.125 (05/10 08:06)
推 jmren:感謝感謝^^",但是其實那個以byte為單位存檔後再壓縮,他的 05/10 09:08
→ jmren:壓縮率不能這樣算喲,因為原始資料只有131072bits,把每個 05/10 09:09
→ jmren:bit改成byte下去存,所以變成131072byte,再拿去壓縮,故壓 05/10 09:11
→ jmren:縮率應該是15774*8(bits) / 131072 (bits),是96.27% :) 05/10 09:11
推 gwliao:我知道, 所以我說"這實驗是加強信心用的" XD 05/10 09:12
→ jmren:上述分母是原始資料大小,而分子則是你壓縮結果:) 05/10 09:13
→ gwliao:只是秀一下, 假如你的資料是以byte的形式出現的話 05/10 09:14
→ gwliao:可以能壓多少. 05/10 09:15
→ jmren:soga...呵,很感謝你熱心幫我^^" 05/10 09:15
→ gwliao:那些演算法都是以byte為單位撰寫, 所以把你的data也用 05/10 09:16
→ gwliao:data也用來表現, 試試現有的方法的表現, 用以估計... 05/10 09:16
→ gwliao:用以估計那個程式是不是要寫下去. XD 所以是加強信心. 05/10 09:17
→ gwliao:這麼有少字....Orz data也用"byte"來表現, 05/10 09:18