本节内容,是整个该系列文章的灵魂所在,后面的源码分析不过是肉体罢了。所有使用deflate算法的压缩格式,gzip、PKzip等等,也许他们互相之间的头和尾不同,但是这部分,属于瓤的这部分,是基本相同的。
压缩是分块(block)输出的,即每处理一定数量的数据就将这部分数据的压缩结果输出一次,而不是一口气将全部数据压缩并输出。这一点其实我们在上一节中从哈夫曼编码的角度提到过一次,这里还会继续从算法本身的角度继续讨论。
既然压缩是分块输出的,那么每块之间必然有联系,每块要包含自己块的信息,因此就要有自己这一块的“格式”。这部分内容参考自RFC1951、《Data Compression – The CompleteReference》、博客http://www.cnblogs.com/esingchan/p/3958962.html以及gzip1.2.4源码。