About News Products Manual Store Support Download

UPL Compression : the complete professional toolkit. 

The UPL Compression Library is a high-performance professional compression library dll & Activex for Visual Basic, C++, Borland and Asp. It offers the ability to compress and decompress data, buffers, strings or single files and features the latest innovations in data compression. It is not a Zip compression library, it is a flexible and powerful library, highly optimized and powered with the latest compression technologies. more...

  Rate Our Program at Hotscripts.com

Power  

The library offers eight extremely powerful compression algorithms. Dynamic Huffman, Arithmetic, BWT, Ppm and several Lampel Ziv flavors. None of these types are patented, and they are covering all programmers needs. The Lzss algorithm for example is lightning fast  and can be used in real-time. Ppm 2 achieves a 30%-50% better compression ratio than Zip and 20%-30% better than RAR. The UPL Compression is better and faster than any of its competitors at this time. The UPL  Compression uses buffered streaming  to speed up file access, and can compress from memory, from files, to files or memory. File integrity can be checked with MDA and CRC32.

Flexibility  

The library has been designed to leave as much freedom as possible. You can call it directly as any Win32 API DLL, or drag and drop it in your project as any ActiveX component, you can also compile it statically and include it in your executable. Every language can be used to work with the UPL Compression library : Delphi, Visual C++, Visual Basic, Borland C++ but also Watcom, Gnu C++, ASP, PERL as soon as you can call a DLL or support OLE, automation or ActiveX. 

Customization  

The UPL Lib can be customized very easily. It supports callbacks, even with Visual Basic. You can monitor the compression work, add encryption, but you don't have to manage the starting, the initialization and the compression loop. A single line of code can be enough to compress a string or a memory buffer! Unlike others,  you can decide the header string for you compressor so it will be very hard to determine what technology was used to compress your data.

Performance  

The UPLCompress library is a little bit better than the best today's packer Winrar v3 but is three time faster than any of them!

Calgary Corpus WinZIP 8 WinRAR 3 UPL 1.0
3 251 393 1 031 435 749403 748 671
Compress Time 11 s 12 s 4 s

* note : the Calgary corpus is a  standard test suite and the collection of reference results for  the text compression community. All the test have been made with the maximum compression options.

This test has been made with the following setup : AMD Athon 800mhz, 256 mb of Ram, win98se and using the best performance setting (max for Winrar 3.0 adn 9 for Winzip). 

 

The library is provided as a true Win32 API DLL, an ActiveX component and a special DLL wrapper for Visual Basic. 
 
The UPL compression includes the following compression algorithms : Lz, Lzv, Lzss, Arith, Arithex, Bwt4, Mtf, Rle, Ppm2 and Huffman.
 
The UPL Compression offers several enhancements such as : buffered file streaming system, MDA 128 checksum,  FastCRC32 optimized in assembly, callback functions and the ability to customize the compression header with your own tag.
 
The UPL Compression library is provided with numerous high quality samples to demonstrate every possibilities.  
 
The UPL Compression  supports natively the Unicode and ASCII environments. It adapts itself at run time.
 
True Multi-Threading Support. Contains true multi-processed and multi-threaded capable
DLLs/Components.

Static Link Libraries. You can choose to use the static link library versions of
the UPLCompress DLLs if your programming language permits it. 

Royalty-Free Distribution – Distribute the UPLCompression, OCXs, and DLLs with your
applications at no extra cost.

Active Server Pages (ASP) Support. Contains sample code showing how to use the windowless
ActiveX COM components with ASP.


How do I program with the UPL Compression? 

There are 2 ways to use the UPL Compression library. The easy way is to call directly the low level functions like :

In C/C++:
Upl= new UPLCompression; lng=Upl.CompressAny(source, dest, length);
In VBasic :
 lng=Upl.CompressAny(source, dest, length);

In one line you have told to the UPL Compression to check all the compressors from the source data and use the best one to compress to the destination pointer. CompressAny is fast, it takes only the first 1000 bytes and  quick check in memory to find the best compressor. You can specify the compressor you want to use as well if you look for more speed.

To decompress it is as easy as this:

In C/C++:
 lng=Upl.ExpandAny(source, dest);
In VBasic :
 lng=Upl.ExpandAny(source, dest);

The second way is  to use the high level functions. As you can see most of the basic properties, including getfilesize and bload are built in the library. That's why with Basic, C++ or Delphi the code looks very similar.

MyComp= new UPLCompression;
MyComp.SetModeSource(UPL_FILE);MyComp.SetModeDest(UPL_FILE); // tells that we are working from file to file
MyComp.SetBuffering(FALSE); // no buffering (buffering speed up by 8-10 the compression )
MyComp.SetFileNameSource("source.txt"); // Specify the Input and Output Filenames
MyComp.SetFileNameDest("dest.pak"); 
lng=MyComp.GetFileSize(MyComp.GetFileNameSource()); // get the source file size
MyComp.SetMemSize(lng); // set the size of the original file for the compressors
MyComp.SetCompressor(UPL_LZV); // Set the compression type you want to use . CompressAny will use the best one.
MyComp.SetCallback(&TimerProc); // optionnaly set the callback routine, works also with Subs with Visual Basic. 
result=MyComp.Compress(); // effectively runs the compressor
// end
printf ("\r\nCompressed file size : %d\r\n",result); 

 

 
© Copyright 2002. All rights reserved. Contact: Webmaster