天天看點

GZIP壓縮原理分析(10)——第五章 Deflate算法詳解(五01) 章前語

本章不對deflate算法背景做過多介紹,但是對Phil Katz的敬重是永遠的!!!

這裡會用整整一個章節的内容來詳細分析第三章中簡略提到的“檔案體”,也就是gzip壓縮中的瓤,或者說蝦的身子部分。其實不僅僅是gzip,隻要是使用的deflate算法的檔案壓縮格式,它們的中間部分,即儲存實際壓縮資料的部分,基本都是一樣的,因為deflate本身有自己的格式。本章能夠成文,以及我對壓縮能夠入門,全拜這篇部落格所賜http://www.cnblogs.com/esingchan/p/3958962.html,我對這篇部落格是逐字逐句分析的,很佩服作者的實力以及文檔編寫功底。因為小弟能力有限,是以當初在分析這篇部落格的過程中,遇到過不少困難,基本上是邊讀邊猜邊分析邊積累,最後通過作者的執行個體得以将所學内容鞏固,期間産生的一些問題也在後續的源碼分析過程中逐漸理清。本章是小弟結合自己的學習過程而寫,算是對這篇部落格的讀書筆記,并針對實際壓縮結果和壓縮開源代碼對該部落格内容進行大規模擴充,不足之處還請各位看官能夠不吝指出,小弟在此先謝過大家了。

預備知識

LZ77基本概念、壓縮視窗、遊程編碼(原理看本章即可)、哈夫曼編碼(字首碼的原理看本章即可)。 

參考資料:

RFC1951、《資料壓縮導論》(主要看LZ77原理)、《算法導論》(看哈夫曼編碼即可)。 

本文會對預備知識進行簡單介紹,希望看官結合參看資料将相關背景知識鞏固,以便後續章節的源碼分析。

繼續閱讀