pouët.net

Go to bottom
LZSA
screenshot added by introspec on 2019-06-19 21:49:11
platform :
type :
release date : june 2019
  • 15
  • 2
  • 0
popularity : 61%
 61%
  • 0.88
alltime top: #7006
added on the 2019-06-19 21:49:11 by introspec introspec

popularity helper

increase the popularity of this prod by spreading this URL:

or via: facebook twitter pinterest tumblr bluesky threads

comments

LZSA is a new data compressor written by Emmanuel Marty that was designed for using on small, primarily 8-bit platforms, and heavily optimized for high decompression speeds. It comes as a single executable capable of compressing into two data formats: one is a purely byte-based, aimed at the highest possible decompression speed, and another is a mixed byte/nibble-based compressor with higher compression ratios that is still capable of highly competitive decompression speed.

Both compressors are also capable of some strategic variability, so for each specific compression format, one can choose to either maximize the compression ratio or to sacrifice some of the ratio (on specific files) to increase their decompression speed.

Viewed from this perspective, the first available compression format, "LZSA1", can be seen as either an equivalent of LZ4 in terms of decompression speed, with about 3%+ higher compression ratio, or as equivalent of LZ4 in terms of compression ratio, while being up to 9% faster to decompress (all measurements of decompression speeds are done for Z80 decompressors).

The second available compression format "LZSA2" has a compression ratio similar to ZX7 (it is possibly 1-2% worse on graphics, but is 1-2% better on most other types of data, especially for larger file sizes). At the same time, it is 50-60% faster to decompress on Z80.

I contributed to this project size- and speed-optimized decompressors for Z80. The decompressors for 8088 and 6502 written by Emmanuel Marty are also provided. The project has been open-sourced:
https://github.com/emmanuel-marty/lzsa
so please contribute any new decompressors, or suggest improvements to the existing ones.

In any way, if you are working on your next treckmo for an old computer and need to keep decompression speeds for your internal data in check, this is probably the first compressor to be designed with you in mind. Please make a demo about it!
added on the 2019-06-19 21:52:20 by introspec introspec
Nice work!
rulez added on the 2019-06-19 22:04:31 by ham ham
what the profit in using packer for 6502 - speed or ratio?

2nd - 64bit is ful shit, add 32 bit version
added on the 2019-06-20 03:16:53 by g0blinish g0blinish
Nice!
rulez added on the 2019-06-20 07:44:15 by DarkTrancer DarkTrancer
thanks!
rulez added on the 2019-06-20 09:24:37 by VBI VBI
nice to see a new compressor. i'll definitely give this a go
rulez added on the 2019-06-20 09:44:13 by evilpaul evilpaul
More tools in the kit is always great news.
rulez added on the 2019-06-20 12:21:11 by utz utz
.
rulez added on the 2019-06-20 22:08:59 by sol_hsa sol_hsa
I wrote both the LZ4 and ZX7 8086 decompressors and will definitely be looking this over. I am dubious that you've matched ZX7 ratios while simultaneously increasing decomp speed 60%, but I'll check it out, and would be happy to be proven wrong.
rulez added on the 2019-06-27 08:15:37 by trixter trixter
So I put my money where my mouth was, and wrote speed-optimized 8088/8086 decompressor code for both LZSA formats. We found that the LZSA2 format beats ZX7 in nearly every way, and I'll be switching to it myself for future prods.
added on the 2019-07-16 07:10:10 by trixter trixter
Thank you. I used this in our Solskogen demo which ran on a Z80.
rulez added on the 2019-07-16 09:08:27 by neon neon
More options for compression are always welcome. Had a look at the sources and will probably try to make 6809-versions of the decompressors.
rulez added on the 2019-07-16 10:26:17 by britelite britelite
Yet another very impressive alternative for data compression on 8 bit machines! After my brief tests the compression ratio comes close to shrinkler which is the best so far. But this one comparatively promises faster decompression.
@introspec Where can I reach you in order to get answered some detailed questions about the z80 decrunch routine?
rulez added on the 2019-07-29 00:08:08 by dOc.K dOc.K
@dOc.K, I guarantee you that the average ratio is far behind the Shrinkler. You probably were exceptionally lucky with your choice of test data. Anyway, send any questions you may have to zxintrospec@gmail.com
added on the 2019-07-29 00:13:53 by introspec introspec
LZSA has been steadily improving over the summer and has now reached version 1.1.0. A number of new features have been added: the support for backward compression and decompression, the support for external dictionaries, as well a build-in calculation of the safe overlap distance.

The compression engine has been pretty much re-written from scratch; LZSA is now using a new forward parser for both its formats. As the result, the compression ratio of LZSA2 increased by 1.2% (the LZSA1 compression has already been very close to optimal, so it increased only very slightly). Improved parser also helps to reduce the number of tokens in the compressed data, which increases decompression speed. Specifically, together with decompressor improvements, we are talking about 5-6% faster decompression speed (as measured for Z80 decompressors).

So, if you are already using LZSA, make sure you've got the latest version. If you were unsure before, this is probably a good time to do another set of tests and, possibly, reconsider.
added on the 2019-09-26 13:47:20 by introspec introspec
Looks promising.
rulez added on the 2020-03-08 21:05:50 by BSC BSC
Thanks introspec & cie to bring us this kind of tools, it's excellent work. Shrinkler is a must for oldschool 4k, but LZSA will probably be my choice for big demos.
rulez added on the 2020-04-13 09:48:27 by Hicks Hicks
This is a good idea, and clearly (shown by the graph) fills a niche where decent ratio and very fast decode speed matter.

Nit: It's a bit annoying that it shares its name with this work from 4 years prior, which is surprising, as the readme literally links this blog.
rulez added on the 2020-09-29 12:23:05 by ferris ferris
@ferris, yes, it was our oversight. Basically, Charles Bloom writes too much stuff! Bless him, for his thinking aloud does so much for advancing compression.

We only discovered his compressor few months after we released ours, during vanity googling for LZSA. Luckily, his compressor is not publicly available and is targeted at very different tasks, so we decided to keep the name as is.
added on the 2020-09-29 12:35:37 by introspec introspec
Quote:
We only discovered his compressor few months after we released ours, during vanity googling for LZSA. Luckily, his compressor is not publicly available and is targeted at very different tasks, so we decided to keep the name as is.


Yeah, it's a good point that his was not publicly available so it's probably not really a name clash.

Quote:
Basically, Charles Bloom writes too much stuff! Bless him, for his thinking aloud does so much for advancing compression.


Can't agree more! :)
added on the 2020-09-29 12:40:03 by ferris ferris
lzsa and lzsa2 are great packer
especially last versions which are a lot faster to crunch
rulez added on the 2020-12-01 09:17:42 by roudoudou roudoudou

submit changes

if this prod is a fake, some info is false or the download link is broken,

do not post about it in the comments, it will get lost.

instead, click here !

[previous edits]

add a comment

Go to top