There are two sets of trees. The 6-bit-trees and the 4-bit-trees. The four-bit trees encode values betwenn -7 and 7 in 4-bit-twos-complement representation (so 0..7 and 9..15), while the 6 bit trees store values between 0 and 63 and are used modulo 64 in most contexts anyway, so signed/unsigned doesn't matter. These trees are built as canonical huffman trees from the given length tables.