Building a Huffman codebook in VHDL

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
Hi,

I've been looking at available VHDL/Verilog implementations of huffman
coders. It appears that all currently available implementations use a
fixed codebook (e.g. the one specified in the MPEG standard) for
coding and decoding, and thus are quite trivial (they just look up
symbols in that fixed codebook). I'm more interested in building a
huffman codebook from the input data. It appears that this can become
quite difficult due to the use of changing tree structures, which seem
quite complicated to do in hardware. Can anyone point me towards
readily available (read: free) implementations for such an encoder?

Thanks in advance
Enno


Re: Building a Huffman codebook in VHDL
Il 21/10/2007 0.44, no_reply ha scritto:
Quoted text here. Click to load it


Check "FPGA Implementation of the Dynamic Huffman Encoder",
Ernest Jamro, Maciej Wielgosz, Kazimierz Wiatr
AGH University of Science and Technology
al. Mickiewicz 30, 30-051, Poland
Academic Computer Center CYFRONET
ul. Nawojki 11, Kraków 30-950, Poland
email: jamro / snipped-for-privacy@agh.edu.pl

They "augment" a standard, lookup table huffman encoder with an
histogram unit, then use a microblaze to update the table on the fly.

To easily implement Huffman in hardware you need a length limited code,
so you can use a fixed width ram table to compress. So you may be
interested in this, also:

http://en.wikipedia.org/wiki/Package-merge_algorithm

The links at the bottom are a very good place to start.

I didn't find any free core, so far.


Please share your results!


Re: Building a Huffman codebook in VHDL
There are several examples to be found on internet. Did you type it in
google before asking here?
One example is:
http://www.xilinx.com/bvdocs/appnotes/xapp616.pdf (title: Huffman coding)
taco



Quoted text here. Click to load it


Re: Building a Huffman codebook in VHDL
Il 22/10/2007 9.49, taco ha scritto:
Quoted text here. Click to load it

I suppose the OP googled a bit before asking here. At least, I did.

The OP asked for a *dynamic table* huffman encoder.

Specifically, not a fixed table encoder, as the XAPP616 do (uses MPEG
table, as I understand it).













Site Timeline