wavecode

所属分类:图形图像处理
开发工具:C/C++
文件大小:117KB
下载次数:65
上传日期:2007-12-19 13:15:23
上 传 者shengzdm
说明:  用C语言写的小波程序,小波变换的C语言程序。里面有英文的说明。
(Using C language to write the wavelet procedures, wavelet transform C language program. Note there are in English.)

文件列表:
wavecode\main.c (15156, 1998-09-16)
wavecode\wtlib\b97.c (5014, 1998-09-15)
wavecode\wtlib\b97.h (203, 1998-08-03)
wavecode\wtlib\bcw3.c (4601, 1998-09-15)
wavecode\wtlib\bcw3.h (196, 1998-08-04)
wavecode\wtlib\cdf22.c (4106, 1998-09-15)
wavecode\wtlib\cdf22.h (199, 1998-08-05)
wavecode\wtlib\cdf24.c (2992, 1998-09-15)
wavecode\wtlib\cdf24.h (129, 1998-08-04)
wavecode\wtlib\codeimage.c (13099, 1998-09-15)
wavecode\wtlib\codeimage.h (1728, 1998-07-31)
wavecode\wtlib\coder.c (9938, 1998-09-15)
wavecode\wtlib\coder.h (4063, 1998-09-15)
wavecode\wtlib\coder_bitplane.c (5578, 1998-09-15)
wavecode\wtlib\coder_bp.c (4402, 1998-09-15)
wavecode\wtlib\coder_bpb.c (15487, 1998-09-15)
wavecode\wtlib\coder_bpb2.c (8886, 1998-09-15)
wavecode\wtlib\coder_bpbf.c (5233, 1998-09-15)
wavecode\wtlib\coder_bpbf_zt.c (6856, 1998-09-15)
wavecode\wtlib\coder_bp_sorted.c (6101, 1998-09-15)
wavecode\wtlib\coder_bp_zt.c (12232, 1998-09-15)
wavecode\wtlib\coder_bp_zt2.c (14647, 1998-09-15)
wavecode\wtlib\coder_frac.c (12503, 1998-09-15)
wavecode\wtlib\coder_none.c (1797, 1998-09-15)
wavecode\wtlib\coder_nop.c (8034, 1998-09-15)
wavecode\wtlib\coder_o0.c (2362, 1998-09-15)
wavecode\wtlib\coder_o1.c (3746, 1998-09-15)
wavecode\wtlib\coder_o1p1.c (5771, 1998-09-15)
wavecode\wtlib\codeR_o1_sb.c (6680, 1998-09-15)
wavecode\wtlib\coder_o2.c (7143, 1998-09-15)
wavecode\wtlib\coder_sh_o1.c (10302, 1998-09-15)
wavecode\wtlib\coder_sh_o1sb.c (12153, 1998-09-15)
wavecode\wtlib\coder_sm.c (5051, 1998-09-15)
wavecode\wtlib\coder_sm_b.c (6639, 1998-09-15)
wavecode\wtlib\coder_sm_o0.c (3414, 1998-09-15)
wavecode\wtlib\coder_vq.c (14728, 1998-09-15)
wavecode\wtlib\coder_zf.c (7827, 1998-09-15)
wavecode\wtlib\codezt.c (8658, 1998-09-15)
wavecode\wtlib\codezt.h (601, 1998-07-08)
wavecode\wtlib\d4.c (4360, 1998-09-15)
... ...

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 !

近期下载者

相关文件


收藏者