1# Puffin 2 3Source code for Puffin: A utility for deterministic DEFLATE recompression. 4 5TODO(ahassani): Describe the directory structure and how-tos. 6 7## Glossary 8 9* __Alphabet__ A value that occurs in the input stream. It can be either a 10 literal:[0..255], and end of block sign [256], a length[257..285], or a 11 distance [0..29]. 12 13* __Huffman code__ A variable length code representing the Huffman encoded of an 14 alphabet. Huffman codes can be created uniquely using Huffman code length 15 array. 16* __Huffman code array__ An array which an array index identifies a Huffman code 17 and the array element in that index represents the corresponding 18 alphabet. Throughout the code, Huffman code arrays are identified by 19 vectors with postfix `hcodes_`. 20* __Huffman reverse code array__ An array which an array index identifies an 21 alphabet and the array element in that index contains the Huffman code of 22 the alphabet. Throughout the code, The Huffman reverse code arrays are 23 identified by vectors with postfix `rcodes_`. 24* __Huffman code length__ The number of bits in a Huffman code. 25* __Huffman code length array__ An array of Huffman code lengths with the array 26 index as the alphabet. Throughout the code, Huffman code length arrays 27 are identified by vectors with postfix `lens_`. 28