2013-09-21 170 views
-5

最近我用霍夫曼編碼技術來壓縮C++中的文本文件。霍夫曼編碼特別減少了磁盤上文件所需的位數,而且這種編碼是無損壓縮。我想知道還有哪些其他技術可以應用,我們可以壓縮數據,如文本文件圖像和其他類型的數據。還有什麼意思是無損壓縮及其相反部分?壓縮技術有哪些?

+1

總是首先檢查[Wikipedia](http://en.wikipedia.org/wiki/Data_compression)! –

+0

我查了一下,但想到了更熟悉的答案。所以我在這裏發佈。 恩,謝謝你的關注。 –

回答

2

也許最簡單的無損一個是Run-length encoding字符串:

WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW 

將被編碼爲:

12W1B12W3B24W1B14W 

或:

WW12BWW12BB3WW24BWW14 

而且最簡單的有損編碼算法會如:down-sampling,或平均3個鄰居單元o f矢量並保持平均值。

+0

@Dukeling - 實際上,第二個例子在大多數情況下非常有效。 –

1

「無損」壓縮意味着原始輸入始終可以在解壓縮時正確再現。

「有損」壓縮用於特定情況下(例如圖像和聲音),其中某些細節丟失(例如高頻信息的丟失)只會被視爲整體「質量」略有下降。請注意,所使用的「有損」壓縮類型(以及伴隨的潛在信息丟失)必須仔細選擇,以便壓縮介質 - 對聲音有好處的聲音對於圖像來說不太可能是好的,例如,對於財務數據(通常不應該受到「有損」壓縮)。