1. A method of dynamically selecting a Huffman dictionary from a bank of predefined Huffman dictionaries, said method comprising: receiving the output, including statistics, of a repetition removal algorithm applied to an input data stream and storing said output in a buffer; calculating a compatibility grade for each predefined Huffman dictionary in said bank of dictionaries and storing them in a data structure; using said data structure, comparing the calculated compatibility grades and selecting the predefined dictionary corresponding to the highest compatibility grade; and performing static Huffman size estimation on the output of the buffer and ending the compressed block in the event said static Huffman size estimation outperforms the speculatively selected predefined Huffman dictionary.
7. The method according to claim 1 , wherein said data structure comprises a decision tree.