QccPack 0.57

QccPack is a Quantization, Compression, and Coding library.
QccPack is a quantization, compression, and coding library.

QccPack provides an open-source collection of library routines and utility programs for quantization, compression, and coding of data. QccPack has been written to provide very flexible and general implementations of procedures commonly used in coding and compression applications.

QccPack is intended for use in the development of prototypes of coding and compression systems, and in academic research. QccPack includes routines for entropy coding, scalar quantization, vector quantization, and wavelet transforms. Additonally, an open-source implementation of SPIHT is available as an optional module.

The essential component of the QccPack collection is a library (a static library, libQccPack.a, and, if supported on your system, a dynamic library, libQccPack.so) of procedures implementing a large variety of compression and coding algorithms. Application programs may make use of the QccPack library routines by linking the application against the library during compilation. Each library function is very general in its implementation so to be useful in a large variety of applications.

Additionally, much of the functionality of the library routines has been provided in the form of stand-alone executable programs. Probably the prime importance of these utility programs is that they provide examples of how to interface with many of the QccPack library routines. The utility programs could also be called from scripts to simulate the operation of complex coding and compression systems before implementing all the system functionality into one stand-alone program.

Currently, QccPack consists of over 55,000 lines of C code implementing over 500 library routines and over 50 stand-alone utility programs. The major functionalities currently implemented include:

Entropy coding
Arithmetic coding including multiple-context adaptive and nonadaptive models
Huffman coding
Golomb and adaptive Golomb coding

Scalar Quantization (SQ)
Uniform SQ
Dead-zone SQ
μ-law and A-law SQ
Lloyd algorithm for optimal SQ design

Vector quantization (VQ)
Generalized Lloyd algorithm (GLA) for VQ-codebook design
Full-search VQ encoding and decoding
Entropy-constrained-VQ (ECVQ) training, encoding, and decoding
Multistage VQ (MSVQ) (also called residual VQ (RVQ)) training, encoding, and decoding

Adaptive vector quantization (AVQ)
The generalized-threshold-replenishment (GTR) algorithm
The Paul algorithm
Gersho-Yano algorithm
Coding of side information

Wavelet transforms, wavelet-based subband coding
Discrete wavelet transform (DWT) using first-generation filter banks and popular orthonormal and biorthogonal wavelets
Lifting implementations of DWT for popular wavelets
Two-dimensional DWT in the form of dyadic subband pyramids
Three-dimensional DWT in the form of dyadic subband pyramids as well as a packet transform
Shape-adaptive DWT (SA-DWT) for 1D and 2D signals
Redundant DWT (RDWT), aka, the algorithme trous
The SR algorithm for wavelet-based image coding
The SFQ algorithm for wavelet-based image coding
The WDR algorithm for wavelet-based image coding
The 3D-WDR algorithm for wavelet-based image-cube coding
The tarp-filter algorithm for wavelet-based image coding
The 3D-tarp algorithm for wavelet-based image-cube coding
The TCE algorithm for wavelet-based image coding
The BISK algorithm for wavelet-based shape-adaptive image coding
The 3D-BISK algorithm for wavelet-based image-cube coding

Error-correcting codes
Field arithmetic, including Gaussian-elimination matrix inversion
Reed-Solomon encoding and decoding
CRC codes
Trellis codes
Hard and soft Viterbi decoding

Image processing
Routines for reading and writing gray and color still images and sequences of images (via PGM and PPM formats)
Routines for reading and writing 3D image-cube volumes
Image and image-sequence deinterlacing
Image differential-pulse-code modulation (DPCM)
Color-space conversions: RGB, YUV, CIE XYZ, CIE UCS, CIE modified UCS
Block-based DCT and inverse DCT

Video coding
The spatial-block algorithm for image-sequence coding
The RDWT-block algorithm for image-sequence coding
The RWMH algorithm for image-sequence coding
Block-based motion estimation and motion compensation
Motion estimation and motion compensation using regular triangle meshes
Encoding and decoding of motion-vector fields

General routines
Vector math (up/down sampling, sorting, dot product, addition/subtraction, etc.)
Matrix math (addition/subtraction, vector-matrix multiplication, etc.)
Linked lists and associated operations
Entropy estimation (first and second order)
General file input and output, including automatic detection and reading/writing of gzip-compressed files
Character bit-packing for binary bitstream input/output
Memory-based fifo for binary bitstreams
Conversion between various file formats used by library routines
Error-message tracking, formatting, and output
Automatic command-line parameter parsing

In addition to the standard functionalities listed above, there exist optional modules that can be added to the QccPack library. Usually, these modules are available under licensing terms different from the GPL/LGPL licenses of QccPack and may contain patented algorithms; refer to the documentation included with each module for specific details. These modules are downloaded separately from QccPack and are not enabled by default during the building of QccPack. The currently available optional modules and their functionalities are:

QccPackSPIHT
The Set Partitioning in Hierarchical Trees (SPIHT) algorithm for wavelet-based image coding

QccPackSPECK
The Set-Partitioning Embedded Block (SPECK) algorithm for wavelet-based image coding

What's New in This Release:

Added timer routines, vector angle measures.

last updated on:
July 3rd, 2008, 21:53 GMT
price:
FREE!
developed by:
James E. Fowler
license type:
GPL (GNU General Public License) 
category:
ROOT \ Science

FREE!

In a hurry? Add it to your Download Basket!

user rating 12

UNRATED
2.8/5
 

0/5

Add your review!

SUBMIT