deflate implementation
git clone git://git.suckless.org/flate
Log | Files | Refs | README

commit 7e14ecf2e5698d7c6e25e8f0bda8987afc25065c
parent 4a020d947fc3b3067b901d048b74c8abed7d4da6
Author: nsz <nszabolcs@gmail.com>
Date:   Sun, 23 Aug 2009 20:58:30 +0200

todo update
TODO | 34++++++++++++----------------------
1 file changed, 12 insertions(+), 22 deletions(-)

diff --git a/TODO b/TODO @@ -3,21 +3,17 @@ flate fill output entirely man globals -error message ? +error message inflate assumes Flate* < 0 _init _reset _free ? -_zlib _gzip _zip -deflate, inflate example -> flate_example -test, benchmark: - empty block - all zero (rle) - uncompressed block - test with small nin/nout (1,2..9 bytes) +_zlib _gzip _zip interface +test, benchmark inflate ------- -callback interface: reading past the end of compressed data: unreachable data +-callback interface +return extra input (rev lookup vs revinc) (test/optimize uncompressed block) read less than 7 bits in clen decode @@ -26,20 +22,14 @@ bound checks in clen decode deflate ------- -space opt: +block split heuristics with lfreq, dfreq + cost +special case: last block (better optimization for short input) +check ushort vs int +lzbuf + costbuf +minor mods: overlap rbuf/dstwin hufflen: overlap arrays (parent+heap only) -time opt: - match loop unroll + match loop + shiftwin loop unroll bisect len/distbase -> lookup table rolling hash -better compression: - block split heuristics with lfreq, dfreq (optimal block size?) - (zlib huffcode trick: if same freq then shorter code goes to the one with smaller subtree) - last block can be allowed to be larger -code cleanups: - better organization (configurable blocksize) - bounds on the compressend size - input from in+nin instead of src+srcend - setting s->state.. - ushort vs int + zlib huffcode trick: if same freq then shorter code goes to the one with smaller subtree