⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 quantim.h

📁 好东西呢
💻 H
字号:
#ifndef QUANTIM_H
#define QUANTIM_H

#include <crblib/inc.h>
#include <crblib/memutil.h>
#include "image.h"
#include "coder.h"

// types :

extern char * qtype_names[];

#define QTYPE_DEADZONE	0
#define QTYPE_ESZZ   	1
#define QTYPE_MAX		1
// todo : adaptives and type_best

// flags : (encoder only)

#define QFLAG_UNIFORM	0
#define QFLAG_SEEKSTOP	(1<<0)
#define QFLAG_FIDDLE	(1<<1)

	// <>

typedef struct _quantInfo {
	int nquants,qtype;	// nquants == 0 is quantizer == 1.0
	float quantizers[0];
} quantInfo;

#define quantInfoSize(qi) (sizeof(quantInfo) + ((qi)->nquants)*sizeof(float))
#define newQI(quantizers) AllocMem(sizeof(quantInfo) + (quantizers)*sizeof(float),MEMF_CLEAR)

extern quantInfo * findQuantizers(int qtype,int qflags,double quant_target,
			imageFloat *imF,int levels,int stoplen,coder *coder_template); // used by non-uniform only

// 'quantInfo' can just be free()'ed or written to a file, or etc.

extern void   quantizeImage(image *im,int levels,quantInfo *qi);
extern void dequantizeImage(image *im,int levels,quantInfo *qi);
extern void   quantizeImageF(image *im,imageFloat *imF,int levels,quantInfo *qi);
extern void dequantizeImageF(image *im,imageFloat *imF,int levels,quantInfo *qi);

extern quantInfo * doTransQuantIm(image *im,int levels,int transformN,
				int qtype,int qflags,double q,
				int stoplen,const coder *coder_template);
extern void deTransQuantIm(image *im,int levels,int transformN,quantInfo *qi);

/****** these trans-wavelet routines are the suggested entry point into the API : *********/

extern wavelet * makeTransQuantWavelet(image *im,int levels,int transformN,
				int qtype,int qflags,double q,
				int stoplen,const coder *coder_template);
extern void deTransQuantWavelet(wavelet * w);

#endif // QUANTIM_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -