Table of Contents
Fetching ...

Range-Coder with fast Adaptation and Table-Based Decoding

Tilo Strutz, Roman Rischke

TL;DR

The paper tackles the computational bottlenecks of interval-based entropy coding by introducing a ring-buffer–driven adaptive scheme paired with table-based decoding and a division-to-shift operation for the core coder. This combination enables constant-time symbol lookups and fast adaptation of symbol statistics, while preserving synchronization between encoder and decoder. Empirical evaluations show about a 40% reduction in static coding time due to shift-based divisions, and competitive performance in adaptive scenarios for alphabets up to roughly 64–128 symbols, with binary indexing offering benefits only at very large alphabets. The approach delivers practical speedups and scalability across distributions and data with varying statistics, making adaptive range coding more hardware-friendly and suitable for real-time or resource-constrained applications.

Abstract

The transmission or storage of signals typically involves data compression. The final processing step in compression systems is generally an entropy coding stage, which converts symbols into a bit stream based on their probability distribution. A distinct class of entropy coding methods operates not by mapping input symbols to discrete codewords but by operating on intervals or ranges. This approach enables a more accurate approximation of the source entropy, particularly for sources with highly skewed or varying symbol distributions. Representative techniques in this category include traditional arithmetic coding, range coding, and methods based on asymmetric numeral systems (ANS). The complexity of these methods depends mainly on three processing steps: the core routines of encoding and decoding doing the calculations, the interval-based determination of the correct symbol at decoder, and the efforts of keeping updated with respect to the varying symbol distribution. The interval-based symbol determination at decoder typically demands for a searching procedure. In previous literature, it could be shown that the search can be replaced by a table-based approach with only O(1)-complexity but having the side-effect that the adaptation of the symbols statistic becomes infeasible because of the high time-consumption of adapting the table. We propose an adaptation process using a ring-buffer technique enabling the adaptive table-based decoding procedure as well as the replacement of a division by a bit-shift operation at encoder and decoder core routines. This accelerates the coding process significantly. In static (non-adaptive) mode, the coding time can be reduced by about 40 percent. In adaptive mode, the proposed technique is faster than alternative approaches for alphabets from about 12 to 64 different symbol when comparing the overall encoder+decoder time.

Range-Coder with fast Adaptation and Table-Based Decoding

TL;DR

The paper tackles the computational bottlenecks of interval-based entropy coding by introducing a ring-buffer–driven adaptive scheme paired with table-based decoding and a division-to-shift operation for the core coder. This combination enables constant-time symbol lookups and fast adaptation of symbol statistics, while preserving synchronization between encoder and decoder. Empirical evaluations show about a 40% reduction in static coding time due to shift-based divisions, and competitive performance in adaptive scenarios for alphabets up to roughly 64–128 symbols, with binary indexing offering benefits only at very large alphabets. The approach delivers practical speedups and scalability across distributions and data with varying statistics, making adaptive range coding more hardware-friendly and suitable for real-time or resource-constrained applications.

Abstract

The transmission or storage of signals typically involves data compression. The final processing step in compression systems is generally an entropy coding stage, which converts symbols into a bit stream based on their probability distribution. A distinct class of entropy coding methods operates not by mapping input symbols to discrete codewords but by operating on intervals or ranges. This approach enables a more accurate approximation of the source entropy, particularly for sources with highly skewed or varying symbol distributions. Representative techniques in this category include traditional arithmetic coding, range coding, and methods based on asymmetric numeral systems (ANS). The complexity of these methods depends mainly on three processing steps: the core routines of encoding and decoding doing the calculations, the interval-based determination of the correct symbol at decoder, and the efforts of keeping updated with respect to the varying symbol distribution. The interval-based symbol determination at decoder typically demands for a searching procedure. In previous literature, it could be shown that the search can be replaced by a table-based approach with only O(1)-complexity but having the side-effect that the adaptation of the symbols statistic becomes infeasible because of the high time-consumption of adapting the table. We propose an adaptation process using a ring-buffer technique enabling the adaptive table-based decoding procedure as well as the replacement of a division by a bit-shift operation at encoder and decoder core routines. This accelerates the coding process significantly. In static (non-adaptive) mode, the coding time can be reduced by about 40 percent. In adaptive mode, the proposed technique is faster than alternative approaches for alphabets from about 12 to 64 different symbol when comparing the overall encoder+decoder time.
Paper Structure (29 sections, 10 equations, 10 figures, 3 tables, 11 algorithms)

This paper contains 29 sections, 10 equations, 10 figures, 3 tables, 11 algorithms.

Figures (10)

  • Figure 1: Methods considered for comparison: (a) search methods for symbol determination in decoder, (b) methods for updating the symbol statistics, (c) methods for symbol coding. Proposed methods are marked in green.
  • Figure 2: Required processor clock cycles per symbol dependent on the alphabet size: flat distribution, $h(s_i) = h(s_j) \forall (i,j)$: (a) encoder, (b) decoder
  • Figure 3: Required processor clock cycles per symbol dependent on the alphabet size $K$ for geometric symbol distributions: (a) encoder, (b) decoder
  • Figure 4: Adaptive mode comparison for uniform distribution: (a) encoder, (b) decoder
  • Figure 5: Adaptive mode comparison for geometric symbol distribution: (a) encoder, (b) decoder
  • ...and 5 more figures