作者charleshu (Analog Engineer)
看板C_and_CPP
標題Re: [問題] huffman 壓縮的效率
時間Fri Apr 23 19:49:33 2010
※ 引述《carlcarl (carl)》之銘言:
: 遇到的問題: (題意請描述清楚)
: 我是讀8bit bmp 然後針對其中的圖片資訊部分做encoding
: 我用wiki上面有提供的huffman algorithm source code做修改
: 轉換出來累計的bit數為905978 bit 也就是大概113247 bytes
: 原來圖片資訊部分是120000 bytes
: 少了7k bytes 這樣的壓縮比算正常嗎???
: 雖然感覺少滿多bits的 可是以壓縮比來看好像有點小 <囧>
: 對了 順便問一下
: bmp header和 palette這個各位認為有需要用huffman做encoding嗎?
: 感覺好像可以做 不過就算加了 效率好像沒有很好?
那要看你的圖片來源是什麼? 假如是照片的話, 這種壓縮比並不算不合理.
即使是 PNG 用了 LZ + Huffman coding 對照片的壓縮比也常常只能壓20%左右.
就是因為這樣, jpeg 這類 DCT base 演算法才會被發展出來解決壓縮比不高的問題.
--
Do not depend on others without effort...
當我年輕時,請教別人問題時常聽到上面那句話. 當時心裏偶而會有些小小抱怨.
當時間過去,我偶而會想到上面那句話, 心中十分感謝當初告訴我那句話的人.
當發現問題時,最有價值的不是問題的答案,
而是找到解決的方向,並在努力的過程裡具備解決問題的能力.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.67.107.140
推 sjgau:jpeg 允許失真,所以壓縮比會高。 04/23 21:21
推 holymars:欸欸欸?Jpeg 1992發佈 png 1996發佈耶 04/24 00:38
→ WPC001:JPEG還有用wavelet的->JPEG2000,一個失真,一個不失真 04/24 09:12
→ WPC001:PNG不失真, 本來就差很多 (JPG2000也失真,但壓縮品質更好) 04/24 09:13