Deflate圧縮。fixedなほうのブロックは書けるようにしたんだけど、dynamicのほうのブロックは、ちょっとめんどくさいな。
literal/length用とdistance用の2種類のハフマンコード表を作る。それらの表は0から15までの数の列になる。で終わりのほうの0の連続は省略できる。
で、16が前の値の3から6回のくりかえしで、17が0の3から10回のくりかえしで、18が0の11から138のくりかえしとして、さらに表を短くできる。
その短くした表について、0から18までについてハフマン符号化する。
そうしてできた符号化表の符号化表と、それによって符号化された2つの表とをブロックの先頭につけ加えるみたいな話。
めんどい。