QuickLZ 1.31
  
Compression at 167 Mbyte/s
. Copyright 2006-2008 Lasse Reinhold
Home

Commercial License

Change log

User testimonials

Contact

Introduction

QuickLZ is a data compression library in portable standard C which gives light but fast compression. QuickLZ can be used for free under the GPL-1 or GPL-2 license (where anything released into public must be open source) or under a commercial license if such has been acquired. Some properties:

To test if QuickLZ suits your needs, try the file archiver quick.exe with the -mem flag. Download the complete package here:

   quicklz131.zip

It contains library source, manual and demo projects for C, C#, Visual C++ and Carbide.C++ for Symbian S60 phones.

QuickLZ 1.10 and later has been verified to work on many 32- and 64-bit architectures such as x86, x64, UltraSPARC, MIPS, Itanium, PA-RISC, Alpha, Cell, POWER and 68k. Also on embedded processors like ARM and SH4/5 and 32-bit microcontrollers in different kinds of hardware.

Latest news

16-May-2008 Take a peek at a version 1.50 prototype which significantly increases compression speed on 64-bit architectures. I have announced it briefly on the compression forum at http://encode.ru/forum/showthread.php?t=44
  
06-May-2008 1.40 beta 9 has been released. Also check out two automated test tools to see how thoroughly version 1.40 is being tested before final release (sources included). You are more than welcome to contribute running them if you have some spare CPU cycles (Windows only). See the 1.40 beta test page.
  
16-Mar-2008 Version 1.40 has been ported to both native C# and Java which are of course somewhat slower - see the benchmarks below. For full performance see the new 32- and 64-bit DLLs with examples of calling them from C#, PowerBASIC and Visual Basic 6. Download it all from the 1.40 beta test page.
  
04-Feb-2008 A bug has been found in version 1.30. Read more here.

 

Benchmark

Except for QuickLZ Sharp, QuickLZ Java and zlib, following applies: The test framework bench.zip has been used. All timings start directly before function call and end immediately after function exit and is therefore excluding disk I/O and operating system calls. They are executed in REALTIME_PRIORITY_CLASS using just a single core/thread and with multiple passes to eliminate timer resolution errors. All libraries are compiled for 32-bit x86 using Visual C++ 2005 with the /Ox flag and without initial performance profiling.

Note that zlib and LZO have levels with better compression ratio and possibly faster decompression speed which have not been benchmarked.

QuickLZ Sharp was executed from Visual Studio 2005 with Ctrl+F5 to enable JIT optimization. QuickLZ Java was compiled and executed with Java 6 SE, just using javac CMain.java; java CMain from the command line. No use of profilers or special compiler options.

View full benchmark here. Averaged values summary:

Library Level
Compressed size Compression Mbyte/s Decompression Mbyte/s
QuickLZ 1.40 1 47.9% 171 195
QuickLZ 1.40 2 42.3% 75 135
QuickLZ 1.40 3 40.0% 15 306
  
QuickLZ Sharp 1.40 47.9% 76 62
QuickLZ Java 1.40 47.9% 48 89
  
QuickLZ 1.31   0 48.4% 167 199
QuickLZ 1.31   1 50.6% 146 306
QuickLZ 1.31   2 46.4% 62 314
QuickLZ 1.31   3 41.4% 29 331
  
LZF 3.1 UF 54.9% 110 239
LZF 3.1 VF 51.9% 101 231
  
FastLZ 0.1.0 1 53.0% 112 228
FastLZ 0.1.0 2 50.7% 99 223
  
LZO 1X 2.02 1 48.3% 97 263
  
zlib 1.22 1 37.6% 24 106