Decode efficient prefix codes

10/10/2020
by   Shashwat Banchhor, et al.
0

Data compression is used in a wide variety of tasks, including compression of databases, large learning models, videos, images, etc. The cost of decompressing (decoding) data can be prohibitive for certain real-time applications. In many scenarios, it is acceptable to sacrifice (to some extent) on compression in the interest of fast decoding. In this work, we introduce and study a novel problem of finding a prefix tree having the best decode time under the constraint that the code length does not exceed a certain threshold for a natural class of memory access cost functions that use blocking (also referred to as lookup tables), i.e., these decoding schemes access multiple prefix tree entries in a single access, using associative memory table look-ups. We present (i) an exact algorithm for this problem that is polynomial in the number of characters and the codelength; (ii) a strongly polynomial pseudo approximation algorithm that achieves the best decode time by relaxing the codelength constraint by a small factor; and (iii) a more efficient version of the pseudo approximation algorithm that achieves near optimal decode time by relaxing the codelength constraint by a small factor. All our algorithms are based on dynamic programming and capitalize on an interesting structure of the optimal solution. To the best of our knowledge, there is no prior work that gives any provable theoretical guarantees for minimizing decode time along with the code length. We also demonstrate the performance benefits of our algorithm on different types of real-world data sets, namely (i) a deep learning model (Mobilenet-V2); (ii) image and (iii) text data. We also implement and evaluate the performance of our algorithms on the GPU.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/13/2018

Linear Pseudo-Polynomial Factor Algorithm for Automaton Constrained Tree Knapsack Problem

The automaton constrained tree knapsack problem is a variant of the knap...
research
04/28/2018

New algorithms for Steiner tree reoptimization

Reoptimization is a setting in which we are given an (near) optimal sol...
research
01/06/2018

Joint Data Compression and Caching: Approaching Optimality with Guarantees

We consider the problem of optimally compressing and caching data across...
research
11/08/2019

On the Complexity of BWT-runs Minimization via Alphabet Reordering

We present the first set of results on the computational complexity of m...
research
01/23/2023

A New Dynamic Programming Approach for Spanning Trees with Chain Constraints and Beyond

Short spanning trees subject to additional constraints are important bui...
research
05/15/2020

Minimizing the Installation Cost of Ground Stations in Satellite Networks: Complexity, Dynamic Programming and Approximation Algorithm

In this letter, we study the optimum selection of ground stations (GSs) ...

Please sign up or login with your details

Forgot password? Click here to reset