📄 ezw.h
字号:
/*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------*/
/* EZW2 - Embedded Zerotree Wavelet Coder
*
* Author : Mow-Song, Ng
* Data : 20-07-2002
*
* Last update : 31-08-2002
*
* A large portion/idea of the codes come from:
* C. Valens - Embedded Zerotree Wavelet Encoder Tutorial.
* G. Davis - Baseline Wavelet Transform Coder Construction Kit
*
* The authors copyrights to the codes are acknowledged.
* The EZW coder is patented by Jerome Shapiro. As far as I know, these are
* the patent numbers
* 5315670 (Issued May 24, 1994), 5321776 (Issued June 14, 1994) and
* 5412741 (Issued May 2, 1995).
*
*
* Well, I wrote the coder with some one else codes, add some lines, remove
* some lines, sometimes just verbatim. Any way, if you feel that I am worth
* the acknowledgement, please do so, or perhaps drop me an e-mail.
*
* Please refer to my website for more info.
*
* My contact:
* msng@mmu.edu.my
* http://www.pesona.mmu.edu.my/~msng
*
*/
/*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------*/
/* $TODO
* -----
* - Add some other scan methods.
* - etc...
*
*/
/*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------*/
/* disable unused variabled warning */
#pragma warning (disable : 4101)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <sys/stat.h>
/*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------*/
#include "global.h"
#include "mem.h"
#include "image.h"
#include "wavelet.h"
#include "wtransform.h"
#include "aricacm.h"
#include "map.h"
#include "subbandsymbol.h"
#include "memchk.h"
/* Code alphabet */
#define ZTR 0x00
#define POS 0x01
#define NEG 0x02
#define IZ 0x03
#define ImageXSizeBits 13
#define ImageYSizeBits 13
#define ScanOrderBits 2
#define ScaleBits 4
#define WaveletIndexBits 4
#define ImageMeanBits 32
#define ThresholdBits 16
#define MaxHistoCountBits 12
#define BASEBAND_PARENT_SIGNIFICANT FALSE
/*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------*/
static char *FilterName[16] = {"antonini", "adelson", "odegard", "villa1810",
"brislawn", "brislawn2", "haar", "daub4",
"daub6", "daub8", "villa1", "villa2",
"villa3", "villa4", "villa5", "villa6"};
/*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------*/
typedef struct DominantPassNodeStruct {
short int x;
short int y;
char scale;
char orientation;
char code;
} DLNode;
/*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------*/
typedef struct SubordinatePastNodeStruct {
short int x;
short int y;
char scale;
char orientation;
int qvalue;
int rvalue;
} SLNode;
/*
int ScanOrderX[4]={0, 1, 0, 1};
int ScanOrderY[4]={0, 0, 1, 1};
*/
int ScanOrderX[4]={0, 0, 1, 1};
int ScanOrderY[4]={0, 1, 1, 0};
/*
int ScanOrderX[4]={0, 0, 1, 1};
int ScanOrderY[4]={0, 1, 0, 1};
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -