QccPack-0.58-1
所属分类:ActiveX/DCOM/ATL
开发工具:matlab
文件大小:4029KB
下载次数:7
上传日期:2009-06-29 23:50:25
上 传 者:
image9876543212
说明: 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-0.58-1\QccPack\RELEASE_NOTES (26257, 2009-02-14)
QccPack-0.58-1\QccPack\Imakefile (820, 2008-11-19)
QccPack-0.58-1\QccPack\QccPack.config.cygwin (5040, 2007-05-01)
QccPack-0.58-1\QccPack\QccPack.config.linux (5601, 2007-05-01)
QccPack-0.58-1\QccPack\Data\Matlab\icpwrite.m (707, 2005-05-18)
QccPack-0.58-1\QccPack\Data\Matlab\icbread.m (915, 2005-05-18)
QccPack-0.58-1\QccPack\Data\Matlab\icpread.m (621, 2005-05-18)
QccPack-0.58-1\QccPack\Data\Matlab\icbwrite.m (872, 2005-05-18)
QccPack-0.58-1\QccPack\Data\Wavelets\LebrunVetterli.ComplexDaubechies.2x2.6.vfb (1548, 2001-02-02)
QccPack-0.58-1\QccPack\Data\Wavelets\Daubechies.4.lft (635, 2001-02-02)
QccPack-0.58-1\QccPack\Data\Wavelets\LebrunVetterli.Balanced.2x2.3.vfb (1056, 2001-02-02)
QccPack-0.58-1\QccPack\Data\Wavelets\LebrunVetterli.Balanced.2x2.5.vfb (1321, 2001-02-02)
QccPack-0.58-1\QccPack\Data\Wavelets\GeronimoHardinMassopust.2x2.4.vfb (1732, 2001-02-02)
QccPack-0.58-1\QccPack\Data\Wavelets\Daubechies.Diagonal.2x2.6.vfb (1345, 2001-02-02)
QccPack-0.58-1\QccPack\Data\Wavelets\ChuiLian.2x2.4.vfb (1002, 2001-02-02)
QccPack-0.58-1\QccPack\Data\Wavelets\CohenDaubechiesFeauveau.5-3.lft (1154, 2001-02-02)
QccPack-0.58-1\QccPack\Data\Wavelets\Strela.Order4.2x2.3-5.vfb (1706, 2001-02-02)
QccPack-0.58-1\QccPack\Data\Wavelets\LWT.lft (337, 2001-02-02)
QccPack-0.58-1\QccPack\Data\Wavelets\ShenTanTham.2x2.4.vfb (854, 2001-02-02)
QccPack-0.58-1\QccPack\Data\Wavelets\Daubechies.4.fbk (419, 2001-02-02)
QccPack-0.58-1\QccPack\Data\Wavelets\DavisStrelaTurcajova.lifting.2x2.5-7.vfb (3711, 2001-02-02)
QccPack-0.58-1\QccPack\Data\Wavelets\HontschKaramSafranek.10.pcp (546, 2001-02-02)
QccPack-0.58-1\QccPack\Data\Wavelets\CohenDaubechiesFeauveau.9-7.int.lft (964, 2006-06-15)
QccPack-0.58-1\QccPack\Data\Wavelets\CohenDaubechiesFeauveau.9-3.fbk (899, 2001-03-22)
QccPack-0.58-1\QccPack\Data\Wavelets\Daubechies.Diagonal.2x2.4.vfb (1082, 2001-02-02)
QccPack-0.58-1\QccPack\Data\Wavelets\Selesnick.3Balanced.2x2.8.vfb (1364, 2001-02-02)
QccPack-0.58-1\QccPack\Data\Wavelets\CohenDaubechiesFeauveau.5-3.int.lft (1769, 2006-06-16)
QccPack-0.58-1\QccPack\Data\Wavelets\DavisStrelaTurcajova.lifting.2x2.10-5.vfb (3917, 2001-02-02)
QccPack-0.58-1\QccPack\Data\Wavelets\LWT.int.lft (388, 2006-06-15)
QccPack-0.58-1\QccPack\Data\Wavelets\CohenDaubechiesFeauveau.9-7.fbk (975, 2001-02-02)
QccPack-0.58-1\QccPack\Data\Wavelets\Daubechies.6.fbk (455, 2001-02-02)
QccPack-0.58-1\QccPack\Data\Wavelets\ChuiLian.2x2.3.vfb (870, 2001-02-02)
QccPack-0.58-1\QccPack\Data\Wavelets\CohenDaubechiesFeauveau.9-7.lft (1218, 2001-02-02)
QccPack-0.58-1\QccPack\Data\Wavelets\CohenDaubechiesFeauveau.5-3.fbk (905, 2001-02-02)
QccPack-0.58-1\QccPack\Data\Wavelets\Daubechies.8.fbk (435, 2001-02-02)
QccPack-0.58-1\QccPack\Data\Wavelets\Haar.fbk (181, 2008-01-18)
QccPack-0.58-1\QccPack\Data\Wavelets\Daubechies.10.fbk (531, 2001-02-02)
QccPack-0.58-1\QccPack\Data\Wavelets\coiflet.6.fbk (647, 2005-08-13)
QccPack-0.58-1\QccPack\Data\Wavelets\Strela.2x2.6-2.vfb (1766, 2001-02-02)
QccPack-0.58-1\QccPack\Data\Wavelets\Strela.Order2.2x2.3-5.vfb (1512, 2001-02-02)
... ...
==============================================================================
Q C C P A C K
Version 0.58, 13-feb-2009
Copyright (C) 1997-2009 James E. Fowler
------------------------------------------------------------------------------
*** Warning: this is pre-release code ***
*** There are probably bugs ***
------------------------------------------------------------------------------
==============================================================================
Contents:
- Overview
- Availability
- Where to Get More Information
- Changes
- Installation
- General Installation Notes
- General Installation Steps
- Platform-Specific Installation Instructions
- Notes on Use
- Platform-Specific Notes
- Example Usage
- Acknowledgments
- Copyright and License Information
==============================================================================
OVERVIEW:
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.
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 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.
Now some caveats. The QccPack code is currently in BETA-release development
stage. That is to say, much desired functionality is still left to be
implemented, and documentation is spotty. Currently, all utility programs
are documented with man pages; however, only some of the library routines are
documented. A good starting point for examining the documentation that is
available would be to type "man QccPack" after QccPack is installed.
Documentation is also available in HTML form.
QccPack is intended for use in the development of prototypes of coding
and compression systems, and in academic research. Its main reason for
existence is to obviate the incessant re-implementation of common algorithms
for the sake of application-specific details. For example, we don't want
to re-implement arithmetic coding every time we change the symbol-alphabet
size or the number of contexts in the arithmetic-coder adaptive model. By
using QccPack, we use the same implementation of arithmetic coding regardless
of our application. The drawback of this library-based approach to
development is the fact that the generality required of the library routines
leads to a frequent use of dynamic memory allocation which, in turn, implies
that the routines execute slower than would a similar implementation that
hard-coded application-specific details. For this reason, QccPack is
intended for prototyping and proof-of-concept needs rather than for direct
use in applications requiring high-speed operation.
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:
o Entropy coding
- Arithmetic coding including multiple-context adaptive and
nonadaptive models
- Huffman coding
- Golomb and adaptive Golomb coding
o Scalar Quantization (SQ)
- Uniform SQ
- Dead-zone SQ
- u-law and A-law SQ
- Lloyd algorithm for optimal SQ design
o 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
o Adaptive vector quantization (AVQ)
- The generalized-threshold-replenishment (GTR) algorithm
- The Paul algorithm
- Gersho-Yano algorithm
- Coding of side information
o 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 a 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
o Error-correcting codes
- Field arithmetic, including Gaussian-elimination matrix inversion
- Reed-Solomon encoding and decoding
- CRC codes
- Trellis codes
- Hard and soft Viterbi decoding
o 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 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
o 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
o 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 the main distribution
and are not enabled by default.
The currently available optional modules and their functionalities are:
o QccPackSPIHT
- The Set Partitioning in Hierarchical Trees (SPIHT) algorithm for
wavelet-based image coding
o QccPackSPECK
- The Set-Partitioning Embedded Block (SPECK) algorithm for
wavelet-based image coding
==============================================================================
AVAILABILITY:
For updated versions of QccPack, or optional modules for QccPack,
consult the QccPack website:
http://qccpack.sourceforge.net
==============================================================================
WHERE TO GET MORE INFORMATION:
- QccPack Users' Mailing List:
If you have a general question about QccPack or how to install or use
QccPack, please consult the QccPack Users' mailing list:
http://lists.sourceforge.net/mailman/listinfo/qccpack-users
You can browse the list archives, and if no answer to your query is
there, you can post a message to the list.
- QccPack Developers' Mailing List:
If you have a technical question concerning the implementation of
current or future library routines and utility programs, or if you
think you have found a bug in some QccPack code, please consult the
QccPack Developers' mailing list:
http://lists.sourceforge.net/mailman/listinfo/qccpack-devel
You can browse the list archives, and if no answer to your query is
there, you can post a message to the list. In particular, before
submitting a bug report, please verify that your bug is not a known
problem by scanning the list archives.
Please use the above mailing lists rather than contacting the QccPack
developers directly; the lists are monitor by the developers (and many
others), so your post will be responded to in a timely fashion.
- QccPack Announcements Mailing List
Subscribe to the QccPack Announcements mailing list,
http://lists.sourceforge.net/mailman/listinfo/qccpack-announce
to obtain announcements of new releases and other news concerning
QccPack. Sorry, this is a "read-only" list -- you cannot post to it.
==============================================================================
CHANGES:
QccPack is currently under constant change. This means that bugs are
likely to get fixed without extraordinary delay; on the other hand, major
changes in implementation of certain features can and do frequently happen
during this stage of "beta" development. Consequently, there may be
certain changes effectuated that result in an incompatibility between the
current version of QccPack and previous versions. Although sometimes
unavoidable, every effort will be made to minimize the number of such
incompatibilities.
The file RELEASE_NOTES gives an overview of the major changes incorporated
into the current version of QccPack. The file CHANGELOG gives a very
detailed picture of the evolution of the code.
==============================================================================
INSTALLATION:
* General Installation Notes:
The following gives the steps for the building and installation of
QccPack. It should be a relatively straightforward process to get
QccPack to compile on any UNIX system, and should be thoroughly
operational on such systems, although it has only really been
tested on Linux. QccPack is supported on Microsoft Windows, but
only through use of Cygwin, a free UNIX emulation environment
for Windows.
The general procedure for installation of QccPack is described below.
Platform-specific installation instructions follow. Windows users,
in particular, be sure to read the instructions concerning
installation of Cygwin.
Refer to documentation accompanying optional QccPack modules for
information on the installation of those modules.
* General Installation Steps:
1. Untar the QccPack distribution to a directory in which building
is to be performed. The directory /usr/local/src/QccPack is
suggested, but use whatever location you want.
2. Copy the file QccPack.config.xxxx to QccPack.config, where "xxxx"
is the operating system that you are using. For example, if using
Linux, type
cp QccPack.config.linux QccPack.config
If a QccPack.config.xxxx file is not provided for your operating
system, use the QccPack.config.linux file and pay close
attention to the various configuration options during the
configuration-editing process which is the next step.
3. Edit the file QccPack.config :
3.1 Set QCCPACK to be the absolute path of directory into which
the files were untarred; the default for this path is
/usr/local/src/QccPack
3.2 Change QCCPACK_INSTALL so that QCCPACK_INSTALL_LIB_PATH,
QCCPACK_INSTALL_INCLUDE_PATH, QCCPACK_INSTALL_BIN_PATH,
QCCPACK_INSTALL_MAN_PATH, and QCCPACK_INSTALL_DATA_PATH
point to the desired location of the final installation of the
libraries, header files, binaries, man pages, and data files,
respectively. These default to lib, include, bin, man
directories in /usr/local, and /usr/local/share/QccPack for
the data files, but change them if you like.
3.3 Uncomment the "define" lines for the optional QccPack modules
that you wish to install with QccPack. Source code for these
modules must be downloaded separately from QccPack; refer to
installation instructions specific to each module.
3.4 QccPack comes with HTML versions of its man pages. By default,
these will be installed in $(QCCPACK_INSTALL)/doc/QccPack.
If you do not want these pages installed, comment out
(with XCOMM's) the definition of HTMLMAN.
3.5 Define CC and CFLAGS as needed for your desired ANSI C compiler
and associated flags. The GNU compiler, gcc, is recommended.
3.6 If your system/compiler supports the creation of shared objects
(i.e. dynamic libraries), set SHARED_OBJ_FLAGS and LD
appropriately. Alternatively, you can define NO_DYNAMIC_LIB to
suppress the creation of the dynamic library and cause the
static linking of the utility executables.
3.7 Set the definitions of QCCCOMPRESS and QCCUNCOMPRESS
to point to where gzip and gunzip reside on your system
(absolute path). Optionally, these definitions can be changed to
use compress and uncompress, if so desired.
4. Type "imake".
5. Type "make Makefiles".
6. Type "make".
7. When you're happy that things compiled OK, type "make install" to
put the libraries, header files, binaries, and man pages into their
final installation locations.
8. A "make clean" will perform a complete uninstallation of QccPack:
the build directory tree will be cleaned of all executables and object
files, AND the libraries, header files, binaries, and man pages
will be removed from the final installation locations. You can then
remove the build tree with "rm -rf
".
9. Type "man QccPack" or point your browser to
file:$(QCCPACK_INSTALL)/doc/QccPack.3.html to view the available
documentation.
* Platform-Specific Installation Instructions:
- Microsoft Windows (all flavors)
QccPack can be installed on Microsoft Windows by using Cygwin, a free
software package emulating the UNIX environment under the Windows
platform. Consequently, you have to install Cygwin before
installing QccPack. Below, you will find a brief set of
instructions addressing the installation of Cygwin for supporting
the installation of QccPack. For full details about the Cygwin
software and its installation, please visit the official Cygwin
website at http://www.cygwin.com.
Note: QccPack is supported on Windows only through use of Cygwin;
in particular, QccPack will *not* compile with Microsoft Visual C++.
1. Download and install Cygwin by first downloading and running
the Cygwin "setup" program. This program can be downloaded from:
http://www.cygwin.com/setup.exe
You need to get Cygwin version 1.3.11-3 or later.
2. The Cygwin "setup" program has three options for installing
the Cygwin software packages:
o Install from Internet: download the packages from a
selected mirror site and then install the packages on computer
o Download from Internet: download the packages without installing
o Install from local directory: install the packages from a
specified local directory
Select one installation options as appropriate (most likely the
first option), then follow the instructions given by the
"setup" program to install the software to a location of your
choosing. For further installation details, please refer to:
http://www.cygwin.com/faq/faq_toc.html
3. Applications included in your Cygwin download depend on the
packages you choose during the installation. For the installation
of QccPack, you will need to get 'gcc', 'binutils', 'make' and
the other packages in the 'Devel' category. Alternatively, you
can download every package by clicking on the "View" button
until it indicates "Full" at the package selection (this will,
of course, entail a long potentially lengthy download, but you
will be sure to have all you need for your QccPack install).
4. The program 'imake.exe', which is needed for QccPack installation,
is not included in these 'Devel' packages; rather, it is part of
the Cygwin XFree86 package set. If you install XFree86, which is
available at http://cygwin.com/xfree/, you will have 'imake'
available. Otherwise, you can download just this single 'imake'
executable program from the QccPack website.
5. Now, follow the above general instructions for installing QccPack.
It is recommended that you build a static library; i.e., define
the NO_DYNAMIC_LIB variable.
The usage of the Cygwin environment is similar to any other
UNIX system; see the Cygwin user's guide for details:
http://cygwin.com/cygwin-ug-net/cygwin-ug-net.html
==============================================================================
NOTES ON USE:
* Platform-Specific Notes:
- Microsoft Windows (all flavors)
It appears that there is a bug in the Cygwin implementation
of pclose() which causes a variety of QccPack programs to
crash when writing to gziped output files. Unfortun ... ...
近期下载者:
相关文件:
收藏者: