2011-03-06 71 views
0

是否保證對於給定的壓縮級別和給定的輸入,壓縮流將始終保持不變,也適用於不同的(即將推出的)zlib版本?zlib:壓縮流總是一樣的嗎?

或者有什麼辦法可以讓它變成這樣嗎?

否則,我將不得不復制一些特定的zlib版本到我的項目,並堅持。 (因爲我需要這樣的保證。)

感謝, 阿爾伯特

+0

是不是由標準設置的壓縮算法?這將使未來發生顯着變化的可能性很小(除了現有數據的巨大突出之外)。 – 2011-03-06 16:42:52

回答

0

它根本沒有保證。它有可能產生具有相同zlib參數的無限不同的壓縮流 。這就是爲什麼有會之類的東西 gziphack:http://groups.google.com/group/comp.compression/browse_thread/thread/82fafc72949ed46c/0115418726ed45e1
http://www.advsys.net/ken/util/kzip.exe
http://www.advsys.net/ken/util/pngout.exe
http://www.walbeehm.com/download/DeflOpt207.7z

+0

當然很顯然,有許多不同的壓縮流解壓縮到相同的數據。但那不是問題。問題是如果zlib中的算法總會產生相同的結果。因爲在我的用例中,我需要這個。 – Albert 2011-03-06 18:49:59

+0

我已經測試過zlib 114和121-125,生成的代碼似乎與所有選項相同(儘管zip存檔標題有些差異)。但是還有其他庫(例如Intel IPP中的zlib版本)可以用來代替zlib,甚至可以生成不同的代碼。而且也不能保證未來的zlib版本,因爲它們可能包含並行處理或其他一些會影響壓縮的功能。 – Shelwien 2011-03-06 22:05:17

0

如果您正在使用的zlib相同的版本,則壓縮將是完全一樣的。顯然,沒有人可以對「即將發佈的版本」發表任何評論。

1

沒有理由的zlib打破如此龐大的安裝基礎兼容性。今天構建的zlib壓縮流幾乎沒有可能在明天或明天之後的任何時候不再受到更新版本zlib的支持。 您可以安全地休息這個隱含的保證:整個行業取決於zlib的向前和向後兼容性。

不保證互操作性的新格式只會帶來不同的名稱,例如7zip。