The state of the art in data compression is arithmetic coding, not the better-known Huffman method. Arithmetic coding gives greater compression, is faster for adaptive models, and clearly separates the model from the channel encoding.
Communications of the ACM, vol. 30, pp. 520-540 (June 1987). Available from publisher's site.
The software from this paper is available here.