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

📄 cdfstat.h

📁 一个简单而且快速的无损压缩算法。包含源代码实现
💻 H
字号:
#ifndef __CDFSTAT_H
#define __CDFSTAT_H

#include <stdio.h>
#include "cdftypes.h"


typedef unsigned COUNTER;		/* element tablicy licznikow kubelka */

typedef struct s_bucket		/* struktura kubelka */
		{			
			COUNTER			* pcounters;	/* wskaznik do tablicy licznikow */
			unsigned int	bestcode;		/*najlepszy z kodow zawartych w kubelku*/
		} s_bucket;

typedef s_bucket * p_s_bucket;	/* wskaznik do kubelka */


/* kompresja i dekompresja statystyczna */

#define DEFevol 3
#define MINevol 0
#define MAXevol 6

#define DEFtrigger 0
#define MINtrigger 0
#define MAXtrigger 2000 /* 2000 dla u16b COUNTER i MAXmaxclen==32  */
						/* ponad 2^26 dla u32b COUNTER */
						/* 0 oznacza dobor automatyczny */

#define DEFmaxclen 26
/* MINmaxclen to bpp obrazka */
#define MAXmaxclen 32

#define DEFwmistart 0
#define MINwmistart 0
/* MAXwmistart to wmimax */

#define DEFwmimax 6
/* MINwmimax to wmistart */
#define MAXwmimax 15

#define DEFwminext 2048
#define MINwminext 1
#define MAXwminext 100000000

/* inicjalizacja struktur statcodera, rodziny kodow i bitowego wyjscia */
/* uzywa danych z taskparams.h */
void statinitcoder(const int bpp, const int maxclen,
				   const int evol, const int init8bpp);

/* zwolnienie pamieci modelu, ew. rodziny kodow */
void statfreecoder();

/* inicjalizacja struktur statcodera, rodziny kodow i bitowego wejscia */
/* uzywa danych z taskparams.h */
void statinitdecoder(const int bpp, const int maxclen, 
					 const int evol, const int width, 
					 struct bitinstatus *bs);

/* zwolnienie pamieci, rodziny kodow, ew. flush bitfile */
void statfreedecoder();

/* przeprowadz kompresje zmieniajac wmidx, wskaznik do tablicy pikseli i jej dlugosc */
void statcompressrow(PIXEL context, const PIXEL * uncompressedrow, unsigned int width,
					 BYTE * compressedrow, unsigned int * fullbytes, unsigned int * bitsused);
void statcompressrow8bpp(BYTE context, const BYTE * uncompressedrow, unsigned int width,
					     BYTE * compressedrow, unsigned int * fullbytes, unsigned int * bitsused);

/* przeprowadz dekompresje zmieniajac wmidx, wskaznik do tablicy pikseli i jej dlugosc */
/* zwroc 0-ok, 1-blad */
int statdecompressrow(PIXEL context, PIXEL * uncompressedrow, unsigned int width, struct bitinstatus *bs);

#endif

⌨️ 快捷键说明

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