data compression link collection

Non-Commercial Libraries

This page attempts to incorporate products that are either free or mostly free. Libraries usually consist of either source code or object code that is intended to be incorporated into programs written by others, not standalone programs.

PyLZMA homepage

PyLZMA allows to use LZMA SDK in Python, using LZMA compression by Igor Pavlov


Posted in July 2nd, 2007

x264 - a free h264/avc encoder

x264 is a free library for encoding H264/AVC video streams. It is released under the terms of the GPL license.

* * * *  

Posted in July 2nd, 2007


Xine is a free gpl-licensed video player for unix-like systems. It plays mpeg-2 and mpeg-1 system (audio + video multiplexed) streams,
mpeg elementary streams (audio/video only, e.g. mp3 files) and
AVI files (using win32 codec dlls). Xine plays the video and audio data of the stream and synchronizes the playback of both. Depending on the properties of the stream, playback will need more or less processor power, full frame rate for mpeg-2 has been seen on a 400 MHz P II system.

Xine is on 1.1.7 as of June, 2007.

* * *    

Posted in June 30th, 2007

FFmpeg Streaming Multimedia System

The FFmpeg project consists of two main parts: FFmpeg, which encodes and decodes the multimedia streams, and FFserver, which provides streams via HTTP for various multimedia clients. FFMpeg is completely portable since it does not rely on proprietary DLLs. The library libavcodec, which contains all the ffmpeg codecs, can be reused in any program licensed under the GNU General Public License.

Version 0.4.9 is shipping in March, 2007.

* * * * *

Posted in June 30th, 2007

Quasar DV Codec: libdv

The Quasar DV codec (libdv) is a software codec for DV video, the encoding format used by most digital camcorders, typically those that support the IEEE 1394 (a.k.a. FireWire or i.Link) interface. Libdv was developed according to the official standards for DV video: IEC 61834 and SMPTE 314M.

Version 1.0 shipped in March, 2005.


Posted in June 30th, 2007


A library the provides the functions you need for editing MPEG streams. MPEG streams were really not created with editing in mind, so a library like this needs to take into account a lot of quirky things.

Version 1.7 is shipping as of June, 2007.


Posted in June 30th, 2007

JPEG 2000 Browser Plugin

Elysium says that this product is the first publicly released JPEG 2000 plugin for the Windows platform. It works with Netscape, Opera, and IE browsers, and is free.

* * * ½  

Posted in September 12th, 2004

SynCE - Dynamite

Dynamite is a tool and library for decompressing data compressed with PKWARE Data Compression Library and it was created from the specification provided by a post in the comp.compression newsgroup.


Posted in July 29th, 2004

Ch zlib Package

Ch zlib Package is Ch interface to zlib. Ch is a C/C++ interpretive freely available from htpp:// Ch zlib Package alllows zlib applications with compression and decompression function runs in Ch across platform without compilation. Ch zlib Package includes the source code for building the binding to zlib.

* * * *  

Posted in July 28th, 2004

Read tags of .ogg files

This is a simple class that reads default tags (the ones suggested by and the common “COMMENT” tag used by WinAmp and other players and tag editors.


Posted in July 27th, 2004

Animal - AN IMAging Library

Yet another imaging library that claims to support over 80 image formats under Win32. This is listed as an Alpha status project that is shipping version 0.14.0 as of July, 2004.


Posted in July 16th, 2004

JMAC: Open Source Java Monkey’s Audio Decoder/JavaSound SPI

JMAC is a Java implementation of the Monkey’s Audio decoder/JavaSound SPI. Currently, Monkey’s Audio format up to 3.97 version supported. JMAC is distributed under the terms of the GNU Library General Public License.

Version 1.65 of JMAC is shipping as of July, 2004.


Posted in July 10th, 2004


ImageMagick is a robust collection of tools and libraries offered under a free license to read, write, and manipulate an image in many image formats (over 87 major formats) including popular formats like TIFF, JPEG, PNG, PDF, PhotoCD, and GIF. Programming interfaces are provided for C/C++, Java, Perl, VB, and more.

Version 6.0.3 is shipping in July, 2004.

* * *    

Posted in July 10th, 2004


FreeImage is yet another free library for image reading, writing, and manipulation. FreeImage supports a long list of compressed formats, including JPEG, PNG, TIFF, and more. Claims to support multiple platforms, but it does apear that most of the experience with this project is on Win32 systems.

Version 3.4.0 is shipping in July, 2004.


Posted in July 10th, 2004

JIU - The Java Imaging Utilities - An image processing library

JIU, the Java Imaging Utilities, is a library which offers functionality to load, analyze, process and save pixel images. It is written in Java and comes with full source code under the GNU General Public License (GPL) version 2.


Posted in July 10th, 2004

Managed C++ wrapper for Zlib

In this article I present a namespace of managed types that provide a wrapper to some of the standard functionalities exported by ZLib. ZLib is a well known free, general-purpose lossless data-compression library for use on any operating system.


Posted in July 10th, 2004

DevIL - A full featured cross-platform image library

DevIL provides the code needed to load a wide variety of images into your program. A nice long list of images that can be loaded are listed here, and a smaller but still quite nice list of formats that can be written to. Displaying images is currently supported under OpenGL, Windows GDI, SDL, DirectX, and Allegro,

Version 1.6.7 shipped in June, 2004.


Posted in June 27th, 2004


I can’t imagine a better description of this product than is found on the first line of their web page: “PNGwriter is a C++ class for creating PNG images.” And yes, it’s a free library, and it’s portable as all get-out, working on Win32, Linux, Mac OS X, and more.

Version 0.4.0 shipped in June, 2004.


Posted in June 27th, 2004

ZLib dotNet

Microsoft .NET Stream-derived objects that wrap ZLib inflate and deflate functions (C++ Mixed Mode implementation)

Version 1.0.1 is shipping as of June, 2004.

* * * * ½

Posted in June 27th, 2004

A Compressed Bitset Class

We have developed the CMJBitset class as a plug-in replacement for bitset. The CMJBitset classm depending on compilation optionsm may take as little as 7 bytes to represent a bitset of any size, assuming all the bits are set or reset. In comparision, a 1024 bitset will take 128 bytes. In essence, the CMJBitset operates by run length encoding a bitset if the bitset is either almost all set/reset, but otherwise uses the STL bitset class.

* * * * *

Posted in June 27th, 2004

Sixlegs PNG Library

Sixlegs PNG Library is a Java 1.1-compatible PNG decoder which features full compliance with the latest PNG specification. It supports all valid bit depths (grayscale/color), interlacing, palette-indexed images, alpha/transparency, gamma correction, access to all standard chunk data, private chunk handling, progressive display, and more


Posted in June 24th, 2004

Zip Utils - clean, elegant, simple, C++/win32

This source code shows how to add zip/unzip functionality to your programs. Claim to fame: simplicity and clean packaging.


Posted in June 24th, 2004


Markus Kuhn has this to say about it: I wrote the freely available JBIG-KIT 1.2 portable ANSI C library, which implements a highly effective lossless bi-level image compression algorithm based on context sensitive arithmetic coding. The JBIG algorithm (specified in ITU-T Recommendation T.82), which is implemented in this library, is especially suitable for compressing scanned documents and fax pages. You can also download the (unfortunately German) project report (Studienarbeit) that I wrote about JBIG-KIT (abstract).

Release 1.6 available as of 6/2004.


Posted in June 20th, 2004

Java FLAC Codec

FLAC is a port of the Free Lossless Audio Codec (FLAC) library to Java. This library allows java developers to experiment and write programs that use the FLAC algorithms.

Version 0.5 is shipping as of June, 2004.


Posted in June 20th, 2004

PJL Compressing Filter

A J2EE servlet filter which compresses data written to the response. It supports several algorithms (gzip, deflate, etc.) and emphasizes minimal memory usage and high throughput. Also provides detailed performance stats.


Posted in June 20th, 2004


The zisofs filesystem is an extension to the ISO9660 filesystem that allows files, on a file-by-file basis, to be stored compressed and decompressed in real time. The zisofs filesystem is supported by recent versions of Linux (2.4.14 or later). Legacy systems can still read uncompressed files. zisofs-tools contains the tools necessary to create such a compressed ISO9660 filesystem and to read compressed files on a legacy system.


Posted in June 20th, 2004

GraphicsMagick Image Processing System

GraphicsMagic is a branch off of the ImageMagick project. I suppose there are some interesting political machinations behind all that, but for right now you should just know that GraphicsMagick is attempting to provide a stable set of code that can be used in other free and proprietary products. This consists of a big batch of image processing library functions, as well as a command line tool that lets you easily exercise some of those functions.

Version 1.1.2 shipped in June, 2004.

* * * * *

Posted in June 13th, 2004

An Image Decoder Based on IImgCtx

This article shows how to decode images with IImgCtx interface provided by IE. In addition to the image types decoded with the IPictur einterface, IImgCtx also decodes TIFF and PNG.


Posted in June 6th, 2004


Pack all your files into a single executable with MoleBox or MoleBox Pro.


Posted in May 24th, 2004

JZlib — zlib in pure Java

This project is an attempt to hoist zlib out of the C world and into pure Java land. This allows Java developers to take advantage of a few zlib features that aren’t available in the standard JDK packages. LGPL license.

Version 1.0.5 of Jzlib was shipping as of May, 2004.


Posted in May 22nd, 2004