Re: [問題] 以bit為單位的無失真compressor...

看板CSSE (電腦科學及軟體工程)作者 (gwliao)時間18年前 (2006/05/10 00:19), 編輯推噓7(7013)
留言20則, 4人參與, 最新討論串4/20 (看更多)
※ 引述《jmren (學生)》之銘言: : ※ 引述《jmren (學生)》之銘言: : : 請問各位先進 : : 有人使用過以bit為單位的現成無失真compressor嗎 : : 網路上找到的大部份都是以byte為單位...囧 : : 感謝^^" : 應該說現在假如有0001110010100001110010101010等bit 字串 : 現成的compressor都是以byte為單位下去壓縮 : 所以想問說 : 有那種以bit為基準的去壓縮的嗎... 很多壓縮法都是用字典的方式. 那字典是由很多個字組成, 字是由很多個字母組成. 那你把0和1當成字母, 然後再由這些字母找出字, 然後用這些字去組一個字典. 所以現在很多的壓縮的演算法都可以套用, 只是要自己改code而已......把Byte的operation變成bit的operation XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.230.125

05/10 00:44, , 1F
和老師說的不謀而合,正在努力coding LZW...囧
05/10 00:44, 1F

05/10 00:49, , 2F
只是問問有沒有人會sparse matrix的壓縮法...沒有那就算了
05/10 00:49, 2F
幫你做實驗, 加強你的信心. 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)

05/10 01:12, , 3F
bz2是什麼壓縮法,竟然比LZMA還厲害...QQ
05/10 01:12, 3F

05/10 01:14, , 4F
呵,這實驗我已經做了n次了...QQ,8byte是12.5%,1bit是84%
05/10 01:14, 4F

05/10 01:14, , 5F
但還是感謝你的熱心回應喲:)
05/10 01:14, 5F

05/10 01:49, , 6F
bz2 --> bzip2 ?? http://www.bzip.org/
05/10 01:49, 6F

05/10 02:19, , 7F
bz2 是使用 BWT 的壓縮法, 請參考 #66
05/10 02:19, 7F
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)

05/10 09:08, , 8F
感謝感謝^^",但是其實那個以byte為單位存檔後再壓縮,他的
05/10 09:08, 8F

05/10 09:09, , 9F
壓縮率不能這樣算喲,因為原始資料只有131072bits,把每個
05/10 09:09, 9F

05/10 09:11, , 10F
bit改成byte下去存,所以變成131072byte,再拿去壓縮,故壓
05/10 09:11, 10F

05/10 09:11, , 11F
縮率應該是15774*8(bits) / 131072 (bits),是96.27% :)
05/10 09:11, 11F

05/10 09:12, , 12F
我知道, 所以我說"這實驗是加強信心用的" XD
05/10 09:12, 12F

05/10 09:13, , 13F
上述分母是原始資料大小,而分子則是你壓縮結果:)
05/10 09:13, 13F

05/10 09:14, , 14F
只是秀一下, 假如你的資料是以byte的形式出現的話
05/10 09:14, 14F

05/10 09:15, , 15F
可以能壓多少.
05/10 09:15, 15F

05/10 09:15, , 16F
soga...呵,很感謝你熱心幫我^^"
05/10 09:15, 16F

05/10 09:16, , 17F
那些演算法都是以byte為單位撰寫, 所以把你的data也用
05/10 09:16, 17F

05/10 09:16, , 18F
data也用來表現, 試試現有的方法的表現, 用以估計...
05/10 09:16, 18F

05/10 09:17, , 19F
用以估計那個程式是不是要寫下去. XD 所以是加強信心.
05/10 09:17, 19F

05/10 09:18, , 20F
這麼有少字....Orz data也用"byte"來表現,
05/10 09:18, 20F
文章代碼(AID): #14OC3zRy (CSSE)
討論串 (同標題文章)
文章代碼(AID): #14OC3zRy (CSSE)