Parallel Huffman Decoding with Applications to JPEG Files

A simple parallel algorithm for decoding a Huffman encoded file is presented, exploiting the tendency of Huffman codes to resynchronize quickly, i.e. recovering after possible decoding errors, in most cases. The average number of bits that have to be processed until synchronization is analyzed and shows good agreement with empirical data. As Huffman coding is also a part of the JPEG image compression standard, the suggested algorithm is then adapted to the parallel decoding of JPEG files.

[1]  Uresh K. Vahalia UNIX Internals: The New Frontiers , 1995 .

[2]  Ian H. Witten,et al.  Arithmetic coding for data compression , 1987, CACM.

[3]  Anil K. Jain Fundamentals of Digital Image Processing , 2018, Control of Color Imaging Systems.

[4]  Shmuel Tomi Klein,et al.  Skeleton Trees for the Efficient Decoding of Huffman Encoded Texts , 2000, Information Retrieval.

[5]  Svante Carlsson,et al.  Sub-linear decoding of Huffman codes almost in-place , 1998 .

[6]  John E. Howland,et al.  Computer graphics , 1990, IEEE Potentials.

[7]  James A. Storer,et al.  Parallel algorithms for data compression , 1985, JACM.

[8]  Abraham Lempel,et al.  A universal algorithm for sequential data compression , 1977, IEEE Trans. Inf. Theory.

[9]  Ian H. Witten,et al.  Managing Gigabytes: Compressing and Indexing Documents and Images , 1999 .

[10]  Yehoshua Perl,et al.  Is text compression by prefixes and suffixes practical? , 1983, Acta Informatica.

[11]  Robert W. G. Hunt,et al.  The reproduction of colour , 1957 .

[12]  David A. Huffman,et al.  A method for the construction of minimum-redundancy codes , 1952, Proceedings of the IRE.

[13]  Shmuel Tomi Klein,et al.  A Systematic Approach to Compressing a Full-Text Retrieval System , 1992, Inf. Process. Manag..

[14]  Thomas J. Ferguson,et al.  Self-synchronizing Huffman codes , 1984, IEEE Trans. Inf. Theory.

[15]  Abraham Lempel,et al.  Compression of individual sequences via variable-rate coding , 1978, IEEE Trans. Inf. Theory.

[16]  Michael W. Marcellin,et al.  An overview of JPEG-2000 , 2000, Proceedings DCC 2000. Data Compression Conference.

[17]  James A. Storer,et al.  Near optimal compression with respect to a static dictionary on a practical massively parallel architecture , 1995, Proceedings DCC '95 Data Compression Conference.

[18]  Jeffrey Scott Vitter,et al.  Parallel lossless image compression using Huffman and arithmetic coding , 1992, Data Compression Conference, 1992..

[19]  Shmuel Tomi Klein,et al.  Is Huffman coding dead? , 1993, Computing.

[20]  P. Yip,et al.  Discrete Cosine Transform: Algorithms, Advantages, Applications , 1990 .

[21]  James A. Storer,et al.  Parallel algorithms for optimal compression using dictionaries with the prefix property , 1992, Data Compression Conference, 1992..

[22]  Alexander D. Stoyenko,et al.  Real-Time Imaging: Theory, Techniques, and Application , 1996 .

[23]  Daniel S. Hirschberg,et al.  Parsing algorithms for dictionary compression on the PRAM , 1994, Proceedings of IEEE Data Compression Conference (DCC'94).

[24]  Shmuel Tomi Klein,et al.  Bidirectional Huffman Coding , 1990, Comput. J..

[25]  E. F. Moore,et al.  Variable-length binary encodings , 1959 .

[26]  Gregory K. Wallace,et al.  The JPEG still picture compression standard , 1991, CACM.

[27]  Lawrence L. Larmore,et al.  Constructing Huffman Trees in Parallel , 1995, SIAM J. Comput..

[28]  Sanjeev R. Kulkarni,et al.  Extended synchronizing codewords for binary prefix codes , 1996, IEEE Trans. Inf. Theory.

[29]  Jeff Bonwick,et al.  The Slab Allocator: An Object-Caching Kernel Memory Allocator , 1994, USENIX Summer.

[30]  C. Q. Lee,et al.  The Computer Journal , 1958, Nature.

[31]  Gonzalo Navarro,et al.  A General Practical Approach to Pattern Matching over Ziv-Lempel Compressed Text , 1999, CPM.