2009-12-11 42 views
1

http://en.wikipedia.org/wiki/Data_compression#Lossless_data_compression概念檢查:任何無損數據壓縮可以「打敗」了吧

對於任何給定的壓縮方案,可以提供樣品輸入將導致太空中沒有積蓄,右

+1

顯然。例子包括壓縮已壓縮的數據或隨機數據流。 – 2009-12-11 19:12:00

+0

您是指通用壓縮方案,還是抽象地說任何域中的壓縮方案?對於前者:是的。對於後者,我會說:不。 – 2009-12-11 19:14:23

+0

通用;我已經想過「壓縮zip文件」的例子。我在考慮更直接的問題,「如果我給你一個整數流,你可以總是壓縮它們嗎?」 – 2009-12-11 19:17:40

回答

5

是的,總會有東西會變大。鴿子的原理說,如果你有一個輸入空間和一對一的功能(無損壓縮),那麼輸出的數量必須與輸入的數量相同。

如果輸入是N位的文件,那麼輸入的數量是2**N,輸出的數量是2**N。您不能在文件中存儲短於N位的許多不同輸出。

+0

這並不意味着所有的無損壓縮通常是無用的嗎? – 2009-12-11 19:15:29

+0

從理論上講,任何事情都沒有必要變大。但是我們可以保證有至少同樣大的投入。 – recursive 2009-12-11 19:15:41

+2

當然,如果沒有輸入變大,那麼輸入也不會變小。 – 2009-12-11 19:17:10

1

正確? 。儘量壓縮和解壓縮文件...如果數據已經被壓縮,您將無法獲得進一步的壓縮。

4

對於任何給定的壓縮方案,一個 可以提供樣品輸入那會 結果沒有節省空間, 對?

是:一個位。

+0

空字符串也可以工作。 – 2011-10-10 19:09:43

2

絕對如此。

如果不是這樣,你可以想象將壓縮輸出再次運行到壓縮器中,以便進行更好的壓縮,直到完成一個位。這顯然是不可能的。

+0

雖然這將是很好的... – 2009-12-11 19:33:00

0

「如果我給你一個整數流,你能壓縮它們嗎?」

在「壓縮zipfile」的例子中,爲什麼你想把zipfile中的字節看作除了整數流之外的東西?

這是一個非常簡潔的例子,當你可以「擊敗」無損數據壓縮時。