Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add blocking example implementation of LZSS #34

Open
silentbicycle opened this issue Jun 23, 2015 · 2 comments
Open

Add blocking example implementation of LZSS #34

silentbicycle opened this issue Jun 23, 2015 · 2 comments

Comments

@silentbicycle
Copy link
Collaborator

This would document some implementation details, and help people who want to make output-compatible implementations in other languages such as Java ( See issue #33 ).

LZSS is quite a bit simpler if the implementation can run in one pass -- much of heatshrink's code is managing the suspending/resuming.

@markrileybot
Copy link

@ecm-pushbx
Copy link

I considered implementing a decoder for heatshrink but the implementation is too complicated for me to figure out. My decoder would work with a buffer that's usually large enough to hold both the compressed and decompressed data. (I also implement overlapping buffers when possible, but that's just an extra.)

LZ4 has some excellent documentation of their format, which I used to implement my decoder. For reference, their documentation is at https://github.com/lz4/lz4/blob/e5a1911ec298a03242b2c8f954f3b511d5a743f6/doc/lz4_Block_format.md and https://github.com/lz4/lz4/blob/e5a1911ec298a03242b2c8f954f3b511d5a743f6/doc/lz4_Frame_format.md

And my project for these decoders is at https://bitbucket.org/ecm/inicomp/src/default/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants