nginx中的哈夫曼编码算法-编码
nginx中的哈夫曼编码算法-解码[上]
nginx中的哈夫曼编码算法-解码[中]
nginx中的哈夫曼编码算法-解码[下]
4. 如何构造状态转移矩阵
看了nginx的代码,实现得非常简练,之所以这样,是因为它的状态转移表构建得好,如果按照我在《采用状态转移矩阵方式的快速哈夫曼解码算法》中描述的算法那样构造状态转移表,会产生一次读入的4个bit只被使用了部分bit,而剩下的几位比特需要再和新读取的比特合成新的4个比特重新回到初始状态去匹配新的输入,导致逻辑会有一些复杂,同时效率也会相对比较低,这个实现代码大家也可以参考《Huffman Codec in netty HPACK》中的介绍,比起nginx的实现的确会略显麻烦。
那么nginx采用的状态转移表也不是完全没有代价的,它相对于