Fast and Compact Prefix Codes

Travis Gagie,Gonzalo Navarro,Yakov Nekrich
DOI: https://doi.org/10.48550/arXiv.0905.3107
2009-05-19
Abstract:It is well-known that, given a probability distribution over $n$ characters, in the worst case it takes (\Theta (n \log n)) bits to store a prefix code with minimum expected codeword length. However, in this paper we first show that, for any $0<\epsilon<1/2$ with (1 / \epsilon = \Oh{\polylog{n}}), it takes $\Oh{n \log \log (1 / \epsilon)}$ bits to store a prefix code with expected codeword length within $\epsilon$ of the minimum. We then show that, for any constant (c > 1), it takes $\Oh{n^{1 / c} \log n}$ bits to store a prefix code with expected codeword length at most $c$ times the minimum. In both cases, our data structures allow us to encode and decode any character in $\Oh{1}$ time.
Data Structures and Algorithms
What problem does this paper attempt to address?