[Libav-user] Using libav LZW compression methods.

Luka Petrinsak lukapetrinsakx at gmail.com
Mon Apr 4 10:55:50 CEST 2016


Hello, i'm trying to use LZW compression / decompression methods from
libavcodec. I think i kinda have it working, but not 100%. For example, my
input buffer contains 5 values {212, 231, 10, 11, 55}, after i encode it
with ff_lzw_encode_init, ff_lzw_encode and ff_lzw_encode_flush, and decode
it with ff_lzw_decode_open, ff_lzw_decode_init, ff_lzw_decode and
ff_lzw_decode_tail, i only get first 2 values decoded correctly (212 and
231) and i have no idea why is that happening.

I have general idea how LZW compression is working in the given code,
though some functions i can't figure out, like put_bits and so. Basicly you
get hash code depending on the input value which makes it unique, after
that if hash_prefix of that hash value is LZW_PREFIX_FREE you writeCode and
addCode to the hash table, and you repeat that for size of the input
buffer.

I was also wondering, when you do the decoding routines, through which
parameter will decoder get previously filled hash table? It is somehow
complicated since i have no general idea what put_bits function is doing
and there is little or no explanation about it.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20160404/27b7331e/attachment.html>


More information about the Libav-user mailing list