Huffman IP Core for FPGA
Huffman-diff is a BergLogic-proprietary lossless image compression algorithm, characterized by low resource usage and low latency. It combines differential encoding with color-index construction to compress image data (similar in spirit to DSC). In the differential step, the transmitter computes the difference between each target pixel and its neighbors; the receiver reconstructs the target by adding the transmitted difference back to neighboring pixel data. Because adjacent pixels typically have similar values, the differences cluster tightly around small values — a distribution ideal for Huffman coding. Color-index construction applies standard Huffman coding to the differential data; more frequent symbols get shorter codes. Transmitting only the indices (not the original data) achieves compression. The Huffman-diff algorithm is best suited to simple content or images with large uniform-color regions.
1080p 60fps (uncompressed rate: 2986 Mb/s)
1080p 60fps (uncompressed rate: 2986 Mb/s)
- •   Compression ratio: 12.5%–80%; measured average around 60%
- •   Total encode + decode latency: choose 0 ms or 1/4 frame (e.g. 4.125 ms at 60 fps). 0 ms latency uses a pre-built color index; 1/4-frame latency uses a real-time computed color index for better compression.
- •   Input formats: RGB, YUV444, YUV422, YUV420
- •   Bit depths: 8 / 10 / 12 bit
- •   Resolutions: 720p, 1080p, 4K
- •   Max throughput: 4K-YUV444-60fps
- •   Resource usage (Xilinx): encoder 15K LUT + 60 BRAM; decoder 50K LUT + 90 BRAM
- •   Supports forcing the bitrate to fit within a specified network interface bandwidth (visually-lossless mode). Typical use: lossless real-time image transport over LAN. A 1080p@30fps YUV444 8-bit stream over single gigabit Ethernet — Huffman-diff compresses the bitrate from 1.49 Gb/s to under 0.895 Gb/s; a 4K@60fps YUV444 8-bit stream over single 10 GbE — Huffman-diff compresses the bitrate from 11.9 Gb/s to under 7.14 Gb/s.
