commit 7e14ecf2e5698d7c6e25e8f0bda8987afc25065c
parent 4a020d947fc3b3067b901d048b74c8abed7d4da6
Author: nsz <nszabolcs@gmail.com>
Date: Sun, 23 Aug 2009 20:58:30 +0200
todo update
Diffstat:
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