CPC Rulez
https://cpcrulez.fr/forum/

LZSA
https://cpcrulez.fr/forum/viewtopic.php?f=4&t=6237
Page 2 sur 2

Auteur :  introspec [ 25 Juin 2019, 15:11 ]
Sujet du message :  Re: LZSA

Hi guys. My nickname is introspec. I helped to design LZSA and developed Z80 decompressors. I read your discussion with interest and just wanted to add a couple of comments. I am sorry I am writing in English, unfortunately I cannot speak French at all :(

1) LZSA1 is designed to directly compete with LZ4. If you compress using "lzsa -f1 -r INPUT OUTPUT", you are very likely to get higher compression ratio than LZ4 and probably slightly lower decompression speed compared to LZ4 (I am comparing speeds of LZSA1 fast decompressor and LZ4 fast decompressor, both hand-tuned by myself). If you really want to compete with LZ4 on speed, you need to compress using one of the "boost" options "lzsa -f1 -r -m4 INPUT OUTPUT" (better ratio, similar speed to LZ4) or "lzsa -f1 -r -m5 INPUT OUTPUT" (similar ratio, faster decompression than LZ4).

2) LZSA2 is approximately in the same league as BitBuster or ZX7. It is likely to be worse if you are compressing pure graphics (at least this is what we are seeing on ZX Spectrum), but it has much larger window and is pretty decent at compressing mixed data (e.g. a complete game binary or something similar). We accepted that the compression ratio is not the best because we wanted to preserve some of its speed. You should expect LZSA2 to decompress data about 50% faster than best I can do for ZX7. I did not do tests on BitBuster, but I just had a look at decompressor for ver.1.2 and there is no way it can compete with LZSA2 on speed.

There is one thing to keep in mind. I optimized decompressors assuming vanilla Z80. Since Z80 in CPC has some wait states, it is possible that someone experienced with CPC can change some of the branch defaults and squeeze a few more t-states out of it. However, I do not expect that this should make a massive difference, as long as LDIR is a good enough command to use for copying matches on CPC. If it is not, then probably more can be done.

Auteur :  jeangonbay [ 30 Juil 2019, 20:59 ]
Sujet du message :  Re: LZSA

comparé a exomizer 2, est-ce plus performant/rapide, ou pas ?

Auteur :  marcel [ 30 Juil 2019, 21:12 ]
Sujet du message :  Re: LZSA

hi introspec, you may gain extra speed using an unrolled LDIR for sequences bigger than 19 bytes ( http://map.grauw.nl/articles/fast_loops.php )

Auteur :  introspec [ 31 Juil 2019, 13:56 ]
Sujet du message :  Re: LZSA

@jeangonbay, in my tests on mixture of binaries for ZX Spectrum (about 1.5Mb of various files), LZSA2 has 5-6% worse compression ratio compared to Exomizer 3. However, it decompresses data 3.5 times faster. As for LZSA1, it has about 14-15% worse compression ratio compared to Exomizer 3. Its decompression speed is 6 times faster than the fastest decompressor available for Exomizer (exooptf4 by Antonio Villena).

@marcel, yes, I know about this trick; in fact, I have an unrolled loop of LDIs in my demokernel, so I wrote a special version of LZ4 and LZSA decompressor to use with it. However, I was unsure if this kind of optimization would be widely appreciated. After all, a lot of people using compressors seem to care a lot about decompressor sizes, so even for my speed-optimized decompressors I try very hard to stay within 220-240 bytes of code at most.

Auteur :  Princesse Mariana [ 18 Juin 2020, 06:49 ]
Sujet du message :  Re: LZSA

Citer :
apultra -- a new, opensource optimal compressor for the apLib format
apultra is a command-line tool and a library that compresses bitstreams in the apLib format.

The tool produces files that are 5 to 7% smaller on average than appack, the apLib compressor. Unlike the similar cap compressor, apultra can compress files larger than 64K (for files smaller than 64K, cap compresses 0.01% better on average).

apultra is written in portable C. It is fully open-source under a liberal license. You can continue to use the regular apLib decompression libraries for your target environment. You can do whatever you like with it.

src/url: https://github.com/emmanuel-marty/apultra

Auteur :  marcel [ 18 Juin 2020, 08:08 ]
Sujet du message :  Re: LZSA

Princesse Mariana a écrit :
Citer :
apultra -- a new, opensource optimal compressor for the apLib format
apultra is a command-line tool and a library that compresses bitstreams in the apLib format.

The tool produces files that are 5 to 7% smaller on average than appack, the apLib compressor. Unlike the similar cap compressor, apultra can compress files larger than 64K (for files smaller than 64K, cap compresses 0.01% better on average).

apultra is written in portable C. It is fully open-source under a liberal license. You can continue to use the regular apLib decompression libraries for your target environment. You can do whatever you like with it.

src/url: https://github.com/emmanuel-marty/apultra


précisons à toutes fins utiles que ce n'est pas le même cruncher, même si Emmanuel a programmé les deux et utilise du code commun pour cruncher

Auteur :  Princesse Mariana [ 27 Oct 2020, 20:49 ]
Sujet du message :  Re: LZSA

Citer :
v1.3.5
- Compress another 10% faster compared to v1.3.4 (the compressed output is unchanged)
- apultra v1.3.5 is 2X faster than v1.2.1 while compressing better

v1.3.4
- Slightly higher compression ratio for some input files
- Compress 25% faster on average, compared to v1.3.3

v1.3.3
- Increase compression ratio slightly for some input files
- Compress large files (> 1 MB) 5% faster on average, compared to v1.3.2
- Speed- and size-optimizations to the 6809 depackers, contributed by Doug Masten
- New Hitachi 6309 depacker (derived from the 6809 code), thanks to Doug Masten

v1.3.2
- Compress 20% faster on average, compared to v1.3.1 (the compressed output is identical)
- Reduce memory used to compress large input files (> 1 MB) by 50%
- Fix -stats display
- Add 32-bit Windows build
- Add 6809 depackers (forward and backward) for the Tandy CoCo, Dragon 32/64, Thomson computers, Vectrex..

url/src: https://github.com/emmanuel-marty/apultra/releases ;linked:

Page 2 sur 2 Le fuseau horaire est UTC+1 heure
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/