Simple Worst-Case Optimal Adaptive Prefix-Free Coding

09/07/2021
by   Travis Gagie, et al.
0

Gagie and Nekrich (2009) gave an algorithm for adaptive prefix-free coding that, given a string S [1..n] over the alphabet {1, …, σ} with σ = o (n / log^5 / 2 n), encodes S in at most n (H + 1) + o (n) bits, where H is the empirical entropy of S, such that encoding and decoding S take O (n) time. They also proved their bound on the encoding length is optimal, even when the empirical entropy is high. Their algorithm is impractical, however, because it uses complicated data structures. In this paper we give an algorithm with the same bounds, except that we require σ = o (n^1 / 2 / log n), that uses no data structures more complicated than a lookup table. Moreover, when Gagie and Nekrich's algorithm is used for optimal adaptive alphabetic coding it takes O (n loglog n) time for decoding, but ours still takes O (n) time.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/01/2022

Dynamic data structures for parameterized string problems

We revisit classic string problems considered in the area of parameteriz...
research
09/15/2019

Run-Length Encoding in a Finite Universe

Text compression schemes and compact data structures usually combine sop...
research
05/17/2020

Weighted Adaptive Coding

Huffman coding is known to be optimal, yet its dynamic version may be ev...
research
03/09/2020

Adaptive Fibonacci and Pairing Heaps

This brief note presents two adaptive heap data structures and conjectur...
research
08/07/2019

Parallel Finger Search Structures

In this paper we present two versions of a parallel finger structure FS ...
research
05/13/2019

Optimal Multithreaded Batch-Parallel 2-3 Trees

This paper presents a batch-parallel 2-3 tree T in the asynchronous PPM ...
research
11/15/2020

Recoverable, Abortable, and Adaptive Mutual Exclusion with Sublogarithmic RMR Complexity

We present the first recoverable mutual exclusion (RME) algorithm that i...

Please sign up or login with your details

Forgot password? Click here to reset