17th February 2015, 08:36
Maximal CAB compression
I've interested in maximal CAB compression.
Most of CAB compressors and archivers uses cabinet.dll and some WinAPI functions, so compression have similar rates.
If somebody knows something like repack tools for cabs, it would be greatly appreciated.
Edit: also found this thread http://encode.ru/threads/1252
Last edited by Surfer; 17th February 2015 at 08:38.
17th February 2015, 09:07
the shnaader thread is about decompressing LZX for further better compression like precomp does for deflate
i've seen independent lzx compressor (on googlecode?), but it probably doesn't compress better than mscab library
Last edited by Bulat Ziganshin; 17th February 2015 at 15:19.
17th February 2015, 14:48
There was a time where I spent a lot of time finding the absolute best CAB (LZX) compression.
All programs do use, as you mentioned, the Microsoft Cabinet.dll to compress--there is nothing else out there that I've found.
The program that always produces the highest compression ratios is HeleCABCompressor:
Make sure you check the box that uses "extension grouping".
The problem with LZX is that it is not open source and Microsoft has a patent that I don't think expired yet. This is why all programs must use cabinet.dll to compress to LZX format. HeleCABCompressor obviously calls some function(s) in Cabinet.dll taht the other programs do not when compressing.
The Following 2 Users Say Thank You to comp1 For This Useful Post:
nikkho (17th February 2015),Surfer (17th February 2015)
18th February 2015, 05:10
You may find that CabPack compresses a couple of bytes better than HeleCabCompressor. Because it's just a shell over a renamed cabinet.dll.
Also several versions of Cabinet.dll can be tried. That will probably make no difference.
There was a time when a German program was developed (I would have to look up the name) which was a serious tool specifically meant for Cab compression.
It did not compress better than CabPack, but more interesting is why its development was ended.
My guess is because Cab-compression was almost unusable. It could lead to conflicts when Windows recognized it. Perhaps this may still be the case.
18th February 2015, 09:27
I remember only German Squeez which supports Cab creation.
Originally Posted by Fallon
BTW, "Quantum" method is very rare for CABs, only LZX and MSZip used in the wild.
18th February 2015, 10:01
There is an open source LZX compressor included with wimlib (see: http://sourceforge.net/p/wimlib/code...lzx_compress.c). It can't compete with cabarc directly because it isn't integrated into an archiver for the CAB format, nor does it support sliding windows (since the WIM format uses fixed-size chunks). However, when testing with 2 MB files, then at a high compression setting it comes within 1% of cabarc on most inputs and sometimes beats it.
If you want a significantly better compression ratio, though, then you may be out of luck because I think that both implementations are close to optimal. The major things I've left on the table in wimlib are (1) being smart about when to choose new Huffman codes, and (2) considering multiple arrivals or multi-step coding operations to use the match offset LRU queue more effectively. But probably the compression ratio can't be improved by more than 1 or 2% on average while sticking with LZX.
The Following User Says Thank You to Zyzzyva For This Useful Post:
Bulat Ziganshin (18th February 2015)
18th February 2015, 14:58
Any idea what patent(s) would cover anything in LZX?
Originally Posted by comp1
LZX is about 20 years old---Wikipedia says the Amiga version came out in 1995, and it sounds like the Microsoft version (with variable window sizes, CALL transformation, and a few other things) came out the next year.
I'd think any relevant patents would have expired, or will expire in the next year or so.
Last edited by Paul W.; 18th February 2015 at 15:10.
18th February 2015, 15:17
Yes, I have used Squeez as well at some point. Errrr... I believe it was Cabman, short for Cabinet Manager.
Originally Posted by Surfer
I should still have it somewhere, but not in my system search result.
(whatdoyouknow, not much kicking anymore, but it is alive out there: http://www.microlog.org/ ).
I have seen Windows Update halt after too many LZX cabs were introduced on a system.
Windows messaged that unknown cabs were the reason. Quantum method?
Could be water under the bridge now.
Last edited by Fallon; 18th February 2015 at 17:55.
18th February 2015, 15:20
Originally Posted by Paul W.
Yes you are correct. I did a little searching for myself and it confirmed what you said. If there are any patents on it today, I don't know any.
Tags for this Thread