New compression method: Exomizer 2

Pagina 2/4
1 | | 3 | 4

Van ARTRAG

Enlighted (6932)

afbeelding van ARTRAG

17-01-2012, 20:22

good! eager to try it
Smile

Van Metalbrain

Expert (67)

afbeelding van Metalbrain

25-07-2012, 21:06

Ops! Shocked!

I screwed it up when re-adding old comments to the new code, adding in the normal (non-simple) version an old line that shouldn't be and f*cks up everything. It's been fixed already and you may download again from the same link.

Van CrazyBoss

Master (210)

afbeelding van CrazyBoss

26-07-2012, 13:35

Did you test it against: MSX-O-Mizer v1.5f by Neural http://www.pouet.net/prod.php?which=50538
I used it a few times at Memotech MTX :)

//CB

Van CrazyBoss

Master (210)

afbeelding van CrazyBoss

26-07-2012, 14:40

by the way, what is the meaning of this homepage? http://www.cpcwiki.eu/index.php/Exomizer

Bugs
"Exomizer can sometimes fail to decompress files correctly for no apparent reason, causing the CPC to crash. Unfortunately there is no known way to overcome this problem, other than to use a different compressor. "

//CB

Van ARTRAG

Enlighted (6932)

afbeelding van ARTRAG

26-07-2012, 23:18

Isn't MSX-O-Mizer v1.5f derived by exomizer?
Question

Van CrazyBoss

Master (210)

afbeelding van CrazyBoss

27-07-2012, 08:49

Yes ARTRAG, it is, but its from 2008, its Exomizer 2.0, so maybe this never version is better, but i tried, i dont see a very big difference. So I stick to MSX-O-Mizer Smile

//CB

Van Metalbrain

Expert (67)

afbeelding van Metalbrain

28-07-2012, 17:03

CrazyBoss wrote:

by the way, what is the meaning of this homepage? http://www.cpcwiki.eu/index.php/Exomizer

Bugs
"Exomizer can sometimes fail to decompress files correctly for no apparent reason, causing the CPC to crash. Unfortunately there is no known way to overcome this problem, other than to use a different compressor. "

I don't know, I asked for failing files in the cpcwiki forum, but I didn't get anything. I think there's no real bug, just failure to use the depackers while testing... :P

Van Metalbrain

Expert (67)

afbeelding van Metalbrain

28-07-2012, 18:00

CrazyBoss wrote:

Yes ARTRAG, it is, but its from 2008, its Exomizer 2.0, so maybe this never version is better, but i tried, i dont see a very big difference. So I stick to MSX-O-Mizer Smile

The new exomizer versions don't improve anything on the compression side, so the ratios are basically the same. MSX-O-Mizer's raw data compression is the same as normal exomizer when using the -c option, so it may compress a little bit less if literal encodings could be used. It also flips the bits order, but doesn't remove the 2 redundant bits as my optimizator does, so it has a 25% of probability of occupying an extra byte.

The depackers have been heavily optimized, so it takes less than my own ones, but some of those optimizations are too aggressive: using RRD to read 4 bits groups in the header instead of reading them bit by bit saves a few bytes and states, but also screws up the data in RAM, so it can't be reused. Besides, it doesn't work if the data is placed in ROM, so to compensate it the ROM depacker wastes lots of bytes to copy the data to RAM before decompression, needing to allocate those extra bytes in the buffer (though it shouldn't need them, I think the copy could be placed inside the 328 bytes buffer, somewhere between 108 and 240) and cancelling any advantage that RRD gave to the RAM-only-use-once routine. And another optimization used increases the buffer needed from 156 to 328. Even if it's space that can be recovered after the depacking, less is better.

In few words: if you're using the RAM version to depack once and then forget, use MSX-O-Mizer. If you need the ROM version, it's better if you stick to the original exomizer 2.

PD: MSX-O-Mizer also has VRAM decompression and some kind of binary files support, so it clearly has its uses.

Van Metalbrain

Expert (67)

afbeelding van Metalbrain

27-01-2013, 12:20

Several months ago, Urusergi started optimizing the depacker routines, starting a process that has taken almost three months, involving great contributions by Antonio Villena and even a few bits myself. This process has recently culminated (or at least I hope so Wink ).

On one hand, the depackers have been reduced a lot, and they're also a bit faster. On the other hand, there are new alternate versions (not so small) optimized for speed, so we can choose between four variants (between 0: smallest size to 3: highest speed). Variant 1 is specially attractive, because at the price of 3-5 bytes, it has a 14% speed gain.

Also, the optimizator program (exoopt) has been rewritten from scratch by Antonio Villena, so now you can pass the speed variant (and direction, that used to be always forward) you want as parameter, and it will automatically generate the depacker you need. You can even enter several files and it will produce the simple version if there are no literal chains, and the complete one if they exist. This new optimizator, does what it did before (inverting the read order of the bitstream, and removing 2 redundant bits) and more, doing some other changes in the data that in rare occasions might be bad (increasing the data size a bit), but allow for futher simplification of the depackers.

The new versions can be found here:
http://emuscriptoria.svn.sourceforge.net/viewvc/emuscriptori...

And an already compiled exoopt, here:
http://retrolandia.net/foro/showthread.php?tid=48&page=6

The history of the optimizations, in case someone is interested, started here (in spanish):
http://amstrad.es/forum/viewtopic.php?f=6&t=2608

Van ARTRAG

Enlighted (6932)

afbeelding van ARTRAG

27-01-2013, 17:02

Great!

Pagina 2/4
1 | | 3 | 4