I have written a new XPK compression library based on XZ/LZMA2. It needs some testing and tweaking.
***update 13th Sept***Due to an administrative error I'd given this library a reserved name. I've renamed it xpkL2XZ.library - please download the new one and delete any copies of xpkXZL2.library.
The beta version is here:
xpkL2XZ.lhaDo not use it on any files you care about!You also need
lzma.library if you don't already have it (if you use my XAD XZ client, then you already have it).
Some stats: (from initial version)
File 'NetSurf' with a size of 14759179 bytes.
Type Num Version P CSize CTime CSpd UTime USpd Rate
XZL2: 4 50.1 4218832 4.02 3671437 2.05 7199599 71.5
XZL2: 9 50.1 4124232 3.00 4919726 2.04 7234891 72.1
XZL2: 14 50.1 4133708 0.04 368979475 2.00 7379589 72.0
XZL2: 19 50.1 4038692 0.03 491972633 2.06 7164650 72.7
XZL2: 24 50.1 4092364 2.00 7379589 3.06 4823261 72.3
XZL2: 29 50.1 3996984 2.00 7379589 3.05 4839075 73.0
XZL2: 34 50.1 4076088 0.01 1475917900 3.03 4871016 72.4
XZL2: 39 50.1 3981024 6.00 2459863 4.01 3680593 73.1
XZL2: 44 50.1 3691932 5.06 2916833 4.00 3689794 75.0
XZL2: 49 50.1 3592376 4.02 3671437 4.05 3644241 75.7
XZL2: 54 50.1 3653624 2.06 7164650 5.06 2916833 75.3
XZL2: 59 50.1 3557036 2.06 7164650 5.04 2928408 75.9
XZL2: 64 50.1 3642824 1.05 14056360 5.05 2922609 75.4
XZL2: 69 50.1 3544684 1.04 14191518 5.03 2934230 76.0
XZL2: 74 50.1 3642824 1.06 13923753 1.04 14191518 75.4
XZL2: 79 50.1 3544684 1.04 14191518 1.01 14613048 76.0
XZL2: 100 50.1 3544684 1.05 14056360 1.01 14613048 76.0
For comparison, here's Joerg's xpkLZMA on the same file:
File 'NetSurf' with a size of 14759179 bytes.
Type Num Version P CSize CTime CSpd UTime USpd Rate
LZMA: 19 52.2 4440712 0.01 1475917900 2.06 7164650 99.1
LZMA: 39 52.2 4120080 6.03 2447625 2.00 7379589 72.1
LZMA: 59 52.2 3907816 0.04 368979475 1.00 14759179 73.6
LZMA: 69 52.2 3667064 5.06 2916833 1.04 14191518 75.2
LZMA: 79 52.2 3405416 6.01 2455770 1.04 14191518 77.0
LZMA: 89 52.2 3240052 0.01 1475917900 1.06 13923753 78.1
LZMA: 100 52.2 3204660 3.01 4903381 1.05 14056360 78.3
As you can see, I have some tweaking to do with the settings. Mine uses LZMA2 which should, theoretically, be better than LZMA in all situations. xBench's timings are unfortunately all over the place so I'm not even sure which one is quicker.
Note that I've disabled modes above 79 as default settings up that high were crashing my SAM. This is probably indicative of a bug, or it may have just been my impatience as it ran into virtual memory and appeared to freeze.
Modes ending in 5, 6, 7, 8, and 9 have a PowerPC filter enabled on them. For data files this actually makes the compressed files slightly bigger. For executables it makes them quite a bit smaller. The file in the benchmarks above was an executable. The compressed sizes are a bit non-linear when going up the modes because of this filter.
Feedback required please!
Edited by Chris on 2014/9/12 14:40:47
Edited by Chris on 2014/9/13 0:37:22