Commit Graph

313 Commits

Author SHA1 Message Date
emmanuel-marty
277b5b1025 Move top-level streaming compression code to library 2019-05-13 22:22:53 +02:00
emmanuel-marty
0f4ffa7166 Clean up check for emitting a single raw block 2019-05-12 23:21:50 +02:00
emmanuel-marty
c96594680a Use full BLOCK_SIZE for dictionary, and use last BLOCK_SIZE bytes rather than first 2019-05-12 14:44:28 +02:00
emmanuel-marty
3caa72c722 Clarify optimizer 2019-05-11 11:42:18 +02:00
emmanuel-marty
d70830b525 Simplify nibble handling in LZSA2 8088 depacker 2019-05-11 11:42:00 +02:00
emmanuel-marty
8b7b4a2b4f Check in LZSA2 implementation (ratio competitive with ZX7, faster decompression) 2019-05-09 16:51:29 +02:00
emmanuel-marty
49b0739050 Isolate frame implementation details 2019-05-03 19:17:14 +02:00
emmanuel-marty
31ededcdf7 Rejoin large patterns 2019-05-03 13:45:37 +02:00
emmanuel-marty
4011d7d3c8 Check in VS 2017 project 2019-05-02 23:51:42 +02:00
emmanuel-marty
bab5225e4c Implement dictionary support 2019-05-02 18:38:57 +02:00
emmanuel-marty
ef6b43a296 When using -m, decompress ~7% faster by trading ~0.5% of compression ratio 2019-05-02 11:23:57 +02:00
emmanuel-marty
97dd3ffc1f Update fast Z80 decompressor 2019-04-25 17:19:58 +02:00
emmanuel-marty
bd6e31b03c Update stats 2019-04-25 13:03:38 +02:00
emmanuel-marty
9e75a55dd3 Reduce token count by 1% without changing the ratio 2019-04-25 13:01:56 +02:00
emmanuel-marty
b7967c3aa1 Update README 2019-04-24 10:02:35 +02:00
emmanuel-marty
2b9780bd65 Finalize lzsa1 compressed format, speed up and simplify decompression 2019-04-24 09:47:40 +02:00
emmanuel-marty
593110ae5d Fix parsing of -m option 2019-04-22 14:16:25 +02:00
emmanuel-marty
331d6f9911 Add --prefer-ratio, --prefer-speed, -m options 2019-04-21 09:41:12 +02:00
emmanuel-marty
f837ed096e Add size-optimized Z80 decompressor, contributed by spke 2019-04-21 08:15:43 +02:00
emmanuel-marty
6c4a86c9fe Make compression 5% faster 2019-04-20 16:24:54 +02:00
emmanuel-marty
fb79d319cb Speed up portable decompressor a bit 2019-04-20 10:27:24 +02:00
emmanuel-marty
3e5639afaf Reduce token count further 2019-04-20 10:26:45 +02:00
emmanuel-marty
88054841cf Add strict block checks when decompressing, comparing 2019-04-20 10:26:13 +02:00
Emmanuel Marty
b3268b74eb
Update stats 2019-04-13 12:38:18 +02:00
emmanuel-marty
aa5dbe283d Small optimization to the cost model 2019-04-13 12:33:39 +02:00
emmanuel-marty
4913fe5d48 Fix reporting of compressed size for raw mode 2019-04-13 12:33:25 +02:00
emmanuel-marty
cf51f1775a Fix small literals cost estimate issue in optimizer, gain a small amount of compression and reduction of token count 2019-04-11 23:47:57 +02:00
emmanuel-marty
4c5d44fff4 Improve hotpath of 6502 depacker further 2019-04-10 19:41:41 +02:00
emmanuel-marty
2451d5802e Fix typo in lzsa tool 2019-04-10 17:38:22 +02:00
emmanuel-marty
8c3fc6d652 Simplify short offset handling in 6502 depacker 2019-04-10 17:37:36 +02:00
emmanuel-marty
c220694531 Add 6502 decompressor 2019-04-10 17:30:24 +02:00
emmanuel-marty
02592cfe3b Fix typo in 8088 decompressor comments 2019-04-10 17:30:13 +02:00
emmanuel-marty
953f2934a1 Merge branch 'master' of https://github.com/emmanuel-marty/lzsa 2019-04-08 09:44:19 +02:00
emmanuel-marty
9649073131 Speed up compression 2019-04-08 09:44:07 +02:00
Emmanuel Marty
061d24e49e
Update stats with results for compressor v0.5.0 2019-04-08 08:52:59 +02:00
emmanuel-marty
837b6895cf Further reduce the number of tokens for even better decompression speed; increase compression slightly 2019-04-07 15:10:53 +02:00
emmanuel-marty
9c35d5115b When verbose, display uncompressed bytes/token ratio 2019-04-07 15:10:17 +02:00
emmanuel-marty
be54a4f889 Check in optimized-for-speed Z80 decompressor contributed by spke 2019-04-07 00:01:42 +02:00
emmanuel-marty
6aa2dae4b3 Add context to libdivsufsort, don't allocate memory during compression 2019-04-07 00:01:22 +02:00
emmanuel-marty
e24320b23b Save 1 byte in 8088 decompressor 2019-04-06 00:21:15 +02:00
emmanuel-marty
1353573af1 Small cleanup for end-of-data handling in decompression, check commands 2019-04-06 00:02:11 +02:00
emmanuel-marty
a785010448 Revert token to O|LLL|MMMM; revert to always shifting the match offset by 1; set raw block end marker as a large zero-size match 2019-04-05 23:16:05 +02:00
emmanuel-marty
06e6a14871 Add optimization pass to reduce the number of command tokens in the compressed data blocks without changing the compression ratio 2019-04-05 16:32:11 +02:00
emmanuel-marty
f05359b63d Don't write an unnecessary footer byte when emitting a raw block 2019-04-05 12:13:51 +02:00
emmanuel-marty
1ef1ad8111 Reorganize token byte for faster decoding on 8-bit CPUs, without affecting the compression ratio 2019-04-05 11:58:44 +02:00
Emmanuel Marty
33b62c004a
Update format description 2019-04-05 10:46:24 +02:00
emmanuel-marty
c7692cf688 Store 16-bit lengths and match offsets directly, to simplify decompression on 8-bit CPUs without affecting the compression ratio 2019-04-05 10:42:06 +02:00
emmanuel-marty
bdc4e85948 Fix typos in format description 2019-04-05 09:28:28 +02:00
emmanuel-marty
c86d38ba63 Reduce the number of literals required at the end of a compressed block 2019-04-05 09:28:16 +02:00
Emmanuel Marty
bfaa3790d0
Update corpus compression stats for v0.2.0 2019-04-03 13:19:41 +02:00