wtlib
所属分类:波变换
开发工具:C/C++
文件大小:112KB
下载次数:13
上传日期:2009-03-25 17:25:45
上 传 者:
aiocb
说明: 小波变换的部分程序,主程序,部分程序,主程序
(wavecompile,program,wavecompile)
文件列表:
wtlib\b97.c (5014, 1998-09-15)
wtlib\b97.h (203, 1998-08-03)
wtlib\bcw3.c (4601, 1998-09-15)
wtlib\bcw3.h (196, 1998-08-04)
wtlib\cdf22.c (4106, 1998-09-15)
wtlib\cdf22.h (199, 1998-08-05)
wtlib\cdf24.c (2992, 1998-09-15)
wtlib\cdf24.h (129, 1998-08-04)
wtlib\codeimage.c (13099, 1998-09-15)
wtlib\codeimage.h (1728, 1998-07-31)
wtlib\coder.c (9938, 1998-09-15)
wtlib\coder.h (4063, 1998-09-15)
wtlib\coder_bitplane.c (5578, 1998-09-15)
wtlib\coder_bp.c (4402, 1998-09-15)
wtlib\coder_bpb.c (15487, 1998-09-15)
wtlib\coder_bpb2.c (8886, 1998-09-15)
wtlib\coder_bpbf.c (5233, 1998-09-15)
wtlib\coder_bpbf_zt.c (6856, 1998-09-15)
wtlib\coder_bp_sorted.c (6101, 1998-09-15)
wtlib\coder_bp_zt.c (12232, 1998-09-15)
wtlib\coder_bp_zt2.c (14647, 1998-09-15)
wtlib\coder_frac.c (12503, 1998-09-15)
wtlib\coder_none.c (1797, 1998-09-15)
wtlib\coder_nop.c (8034, 1998-09-15)
wtlib\coder_o0.c (2362, 1998-09-15)
wtlib\coder_o1.c (3746, 1998-09-15)
wtlib\coder_o1p1.c (5771, 1998-09-15)
wtlib\codeR_o1_sb.c (6680, 1998-09-15)
wtlib\coder_o2.c (7143, 1998-09-15)
wtlib\coder_sh_o1.c (10302, 1998-09-15)
wtlib\coder_sh_o1sb.c (12153, 1998-09-15)
wtlib\coder_sm.c (5051, 1998-09-15)
wtlib\coder_sm_b.c (6639, 1998-09-15)
wtlib\coder_sm_o0.c (3414, 1998-09-15)
wtlib\coder_vq.c (14728, 1998-09-15)
wtlib\coder_zf.c (7827, 1998-09-15)
wtlib\codezt.c (8658, 1998-09-15)
wtlib\codezt.h (601, 1998-07-08)
wtlib\d4.c (4360, 1998-09-15)
wtlib\d4.h (189, 1998-08-04)
... ...
WaveCode
copyright (c) 19*** by Charles Bloom
v1.0 released May 23, 19***
-----------------------------------------------------------------------
Introduction
version 1.0 does nothing revolutionary ; it's our
initial implementation. The advantage of WaveCode over
existing transform coders is its modularity. Choose
from many transforms :
Wavelet [Daubechies 7/9] (no flag)
DCT (tree structures) (-d)
S + Prediction (-s)
And many coders : (use -c#) :
Bitplane (simplified EZW)
Significance Map
Significance Map 2
Order 1
Order 0
Vector Quantizing
Fractal -style VQ
The Bitplane Coder with Wavelet Transform performance
roughly identically to SPIHT (Said & Pearlman's Improved EZW).
We also allow any choice of # of wavelet levels (-l# option),
and with more levels (SPIHT uses l=3) we get even better
performance.
Our coders and transforms are quite competitive. Our
quantizers are very poor in v1.0, offering as a best option
uniform quantization. We also have no bit allocation handling.
Perhaps the nicest thing in WaveCode are the (-w) write options,
with which you can output a raw image of the wavelet (or DCT,
or S+P) data, a map of the errors, as well as the standard
reconstructed image. So far as I know this is the first time
anyone has really *looked* at DCT data (in tree structured form
where you can make sense of it visually) and let me tell you,
it is a beautiful sight. When comparing DCT and Wavelet be sure
to use (-l3) on the wavelets, because using more levels (4 is default)
gives the wavelets an unfair advantage.
-----------------------------------------------------------------------
Some Details
All images input and output are raw byteplanes. Adobe Photoshop, for
example, is convenient for viewing and converting raw images.
The "coder_param" is used in the following way by the coder modules :
VQ : sets maximum allowed MSE in a fuzzy match.
other : ignored
The "tune_param" is for my use only. :^)
If anyone has efficient code for a 23/25 wavelet transform, I'd love to
get my hands on it.
-----------------------------------------------------------------------
Acknowledgements:
The DCT code is stolen from the IJG (Indepedent JPEG Group) distribution.
The Floating (DWT) Wavelet Transform is stolen from Robert Estes.
All other code is original.
Thanks to the many people on comp.compression who have helped me get
into image coding. Among them are Tom Lane, Michael Schindler,
Matt Timmermans, Jim Andrew, Peter Lindstrom, Andrew Watson, and
many I'm sure I'm forgetting.
-----------------------------------------------------------------------
Apologies:
I've committed the cardinal sin of introducing yet another
imperfect Wavelet coder into the mix. I know, I'm sorry,
there are *no* practical wavelet coders (the way IJG JPEG is
practical) and this code is not it either. Other nice code
available on the net is Geoff Davis's package : we implement
here some of the todos on GD's list, but our quantizers and
(lack of) bit allocation makes it a trade-off ; perhaps my time
would have been better spent adding his code... Robert Estes'
code is also nice because of its simplicity and readability.
All other wavelet code I've found is either baroque (LiftPack)
or full of Fortran (EPIC/EPWIC) or not ANSI (wavelet_tutorial).
Anyway, I apologize for contributing to this mix - if the trend
holds up, soon everyone in America will be writing their own
wavelet compressor, but they'll all be imperfect, and we'll
still be using JPEG to send images !
近期下载者:
相关文件:
收藏者: