亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? coder_o1p1.c

?? 小波變換算法
?? C
字號:

//#define SIGN_JUST_XOR	/** much worse **/

/*********

a straightforward order1 coder : code pel conditioned on the 
	log2(parent)

"order1+1" also uses log2(neighbors) in the context

Order1 : S+P Lena lossless	:	4.250 bpp
Order1+1:					:	4.207 bpp

**********/

#include <stdio.h>
#include <stdlib.h>
#include <crblib/inc.h>
#include <crblib/arithc.h>
#include <crblib/o0coder.h>
#include <crblib/scontext.h>

extern int tune_param;

#define ORDER1_TOTMAX		10000
#define ORDER1_INC			15
#define ORDER1_ESCAPE		12
#define ORDER1_ALPHABET		(ORDER1_ESCAPE+1)

#define CN_MAX_PREV			4
#define CN_MAX_PARENT		4
#define CODE_CONTEXTS 		(1 + CN_MAX_PREV + (CN_MAX_PREV+1)*CN_MAX_PARENT)

#define ORDER0_TOTMAX		2000	/** totally irrelevant **/
#define ORDER0_ESCAPE		1		/** optimal at 1 !!! a unary code!!! **/
#define ORDER0_ALPHABET		(ORDER0_ESCAPE+1)

#include "coder.h"

void coderO1_1_encodeBand(coder *me,int *band,int w,int h,int fullw,int *parent);
void coderO1_1_decodeBand(coder *me,int *band,int w,int h,int fullw,int *parent);

typedef struct {
	ozero * o0;
	scontext * sign_sc[3];
	scontext ** o1;
} myInfo;

void coderO1_1_init(coder *c)
{
myInfo *d;
int i;

	if ( (d = new(myInfo)) == NULL )
		errexit("ozero init failed");

	c->data = d;

	if ( (d->o0 = ozeroCreateMax(c->arith,ORDER0_ALPHABET,ORDER0_TOTMAX)) == NULL )
		errexit("ozero init failed");

	for(i=0;i<3;i++) {
		if ( (d->sign_sc[i] = scontextCreate(c->arith,2,0,1000,10,true)) == NULL )
			errexit("sign ozero init failed");
	}

	if ( (d->o1 = newarray(void *,CODE_CONTEXTS)) == NULL )
		errexit("Order1_Init failed!");

	for(i=0;i<CODE_CONTEXTS;i++) {
		if ( (d->o1[i] = scontextCreate(c->arith,ORDER1_ALPHABET,0,
				ORDER1_TOTMAX,ORDER1_INC,true)) == NULL )
			errexit("context creation failed!");
	}
}

void coderO1_1_free(coder *c)
{
	if ( c->data ) {
		myInfo *d; int i;

		d = c->data;
		if ( d->o0 ) ozeroFree(d->o0);
		for(i=0;i<3;i++) {
			if ( d->sign_sc[i] ) scontextFree(d->sign_sc[i]);
		}
		if ( d->o1 ) {
			for(i=0;i<CODE_CONTEXTS;i++) {
				if ( d->o1[i] ) scontextFree(d->o1[i]);
			}
		}
		free(d);
		c->data = NULL;
	}
}

coder coderO1_1 = {
		"o1+1",
		coderO1_1_init,
		coderO1_1_free,
		coderO1_1_encodeBand,
		coderO1_1_decodeBand
	};

static void mcontext(int *cur_ptr,int parent,int x,int y,int width,int height,int fullw,
	int *cntx_ptr,int *sign_ptr)
{
int neighbors;

	/** cur_ptr[0] is about to be coded **/

	if ( x==0 ) {
		if ( y == 0 ) {
			neighbors = 0;
		} else {
			neighbors = (cur_ptr[-fullw] + cur_ptr[-fullw+1]) >> 1;
		}
	} else if ( y == 0 ) {
		neighbors = cur_ptr[-1];
	} else if ( x == (width-1) ) {
		neighbors = (cur_ptr[-1] + cur_ptr[-fullw] + cur_ptr[-fullw] + cur_ptr[-fullw-1]) >> 2;
	} else {
		neighbors = (cur_ptr[-1] + cur_ptr[-fullw] + cur_ptr[-fullw+1] + cur_ptr[-fullw-1]) >> 2;
	}

if ( neighbors == 0 ) *sign_ptr = 2;
else if ( isneg(neighbors) ) *sign_ptr = 1;
else *sign_ptr = 0;

parent = abs(parent);
neighbors = abs(neighbors);
parent = intlog2(parent+1);
neighbors = intlog2(neighbors);

*cntx_ptr = min(CN_MAX_PREV,neighbors) + (CN_MAX_PREV+1)*(min(CN_MAX_PARENT,parent));
}

void coderO1_1_encodeBand(coder *me,int *band,int width,int height,int fullw,int *parent)
{
int x,y,val,cntx,sign,sign_cntx;
int *dp,*pp,*dpp,*ppp;
ozero *o0 = ((myInfo *)me->data)->o0;
scontext **sign_sc = ((myInfo *)me->data)->sign_sc;
scontext **o1 = ((myInfo *)me->data)->o1;
arithInfo *ari = me->arith;

	dp = band;
	pp = parent;
	for(y=0;y<height;y++) {
		dpp = dp; ppp = pp;
		if ( coder_timetostop(me) ) { coder_didstop(me,y); return; }
		for(x=0;x<width;x++) {
			mcontext(dpp,*ppp,x,y,width,height,fullw,&cntx,&sign_cntx);

			val = *dpp++;	if ( x&1 ) ppp++;

			if ( val == 0 ) {
				scontextEncode(o1[cntx],0);
				continue;
			} else if ( val < 0 ) { sign = 1; val = -val;
			} else sign = 0;

			if ( val < ORDER1_ESCAPE ) {
				scontextEncode(o1[cntx],val);
			} else {
				scontextEncode(o1[cntx],ORDER1_ESCAPE);
				val -= ORDER1_ESCAPE;

				while( val >= ORDER0_ESCAPE ) {
					ozeroEncode(o0,ORDER0_ESCAPE);
					val -= ORDER0_ESCAPE;
				}
				ozeroEncode(o0,val);
			}

#ifdef SIGN_JUST_XOR
			if ( sign_cntx != 2 ) sign ^= sign_cntx;
			scontextEncode(sign_sc[0],sign);
#else
			scontextEncode(sign_sc[sign_cntx],sign);
#endif // SIGN_JUST_XOR
		}
		if ( y & 1 ) pp += fullw;
		dp += fullw;
	}
}

void coderO1_1_decodeBand(coder *me,int *band,int width,int height,int fullw,int *parent)
{
int x,y,val,cntx,sign,got,sign_cntx;
int *dp,*pp,*dpp,*ppp;
ozero *o0 = ((myInfo *)me->data)->o0;
scontext **sign_sc = ((myInfo *)me->data)->sign_sc;
scontext **o1 = ((myInfo *)me->data)->o1;
arithInfo *ari = me->arith;

	dp = band;
	pp = parent;
	for(y=0;y<height;y++) {
		dpp = dp; ppp = pp;
		if ( coder_timetostopd(me,y) ) return;
		for(x=0;x<width;x++) {
			mcontext(dpp,*ppp,x,y,width,height,fullw,&cntx,&sign_cntx);

			if ( x&1 ) ppp++;

			got = scontextDecode(o1[cntx]);
			if ( got == 0 ) {
				*dpp++ = 0;
				continue;
			} else if ( got < ORDER1_ESCAPE ) {
				val = got;
			} else {
				val = ORDER1_ESCAPE;
				got = ozeroDecode(o0);
				while ( got == ORDER0_ESCAPE ) {
					val += ORDER0_ESCAPE;
					got = ozeroDecode(o0);
				}
				val += got;
			}

#ifdef SIGN_JUST_XOR
			if ( scontextDecode(sign_sc[0]) ) {
				if ( sign_cntx == 2 || sign_cntx == 0 ) val = -val;
			} else {
				if ( sign_cntx == 1 ) val = -val;
			}
#else
			if ( scontextDecode(sign_sc[sign_cntx]) ) val = -val;
#endif // SIGN_JUST_XOR

			*dpp++ = val;
		}
		if ( y & 1 ) pp += fullw;
		dp += fullw;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丝袜美腿亚洲色图| 午夜精品久久久久久不卡8050| 精品视频一区 二区 三区| 成人av电影在线观看| 国产成人免费视频一区| 国产成人啪免费观看软件| 久久机这里只有精品| 久久99精品久久只有精品| 日韩高清在线电影| 精品一区二区国语对白| 精品一区二区三区影院在线午夜| 免费av网站大全久久| 久久精品国产免费| 韩国成人福利片在线播放| 国产剧情一区二区| eeuss鲁片一区二区三区| 99re成人在线| 欧美日韩视频在线一区二区| 欧美精品一二三四| 亚洲精品一区二区三区四区高清| 日韩欧美的一区二区| 久久久久久久久久久99999| 国产女主播一区| 自拍偷拍欧美激情| 性久久久久久久久| 精品一区二区成人精品| 白白色 亚洲乱淫| 91久久一区二区| 日韩一级片在线观看| 久久免费午夜影院| 亚洲靠逼com| 美女视频黄免费的久久 | 中文字幕电影一区| 亚洲丝袜另类动漫二区| 婷婷丁香久久五月婷婷| 国产精品中文欧美| 91电影在线观看| 欧美电影免费观看高清完整版在线| 久久色在线观看| 亚洲综合一区二区| 国产盗摄一区二区三区| 欧美在线看片a免费观看| 日韩欧美亚洲国产另类| 亚洲欧洲色图综合| 麻豆91在线观看| 色成年激情久久综合| 久久亚洲精品小早川怜子| 亚洲欧美日韩成人高清在线一区| 日本欧美一区二区三区| 成人网在线播放| 这里只有精品视频在线观看| 国产精品免费aⅴ片在线观看| 丝袜国产日韩另类美女| 成人听书哪个软件好| 日韩视频在线你懂得| 亚洲精品第1页| 国模冰冰炮一区二区| 欧美日韩高清一区二区不卡| 欧美激情在线看| 看电视剧不卡顿的网站| 在线看国产一区二区| 国产精品乱码妇女bbbb| 九九在线精品视频| 欧美日韩在线亚洲一区蜜芽| 亚洲天堂网中文字| 国产精品一二二区| 欧美精品一区二区三区四区 | 亚洲少妇屁股交4| 精品一区二区三区影院在线午夜| 欧美高清视频不卡网| 亚洲欧美色图小说| 成人午夜精品在线| 日本一区二区三区电影| 国产一区二区免费在线| 日韩一区二区三区高清免费看看| 亚洲二区在线观看| 欧美三级午夜理伦三级中视频| 国产精品毛片a∨一区二区三区| 国产精品一区二区无线| 精品久久久久99| 久久国产三级精品| 日韩久久免费av| 美女www一区二区| 欧美第一区第二区| 精品午夜一区二区三区在线观看 | 婷婷综合久久一区二区三区| 日本道在线观看一区二区| 亚洲美女在线国产| 欧美亚洲高清一区| 日韩av一区二区三区| 欧美一区二区三区在| 麻豆久久一区二区| 久久久青草青青国产亚洲免观| 精品亚洲成av人在线观看| 久久精品男人的天堂| 成人avav影音| 亚洲制服丝袜av| 69p69国产精品| 麻豆精品国产91久久久久久| 久久天天做天天爱综合色| 国产美女娇喘av呻吟久久| 国产精品视频你懂的| 色呦呦网站一区| 亚洲国产精品精华液网站| 日韩一区二区免费在线观看| 国产福利91精品一区二区三区| 国产精品区一区二区三| 在线视频你懂得一区| 日本不卡123| 亚洲综合在线免费观看| 欧美性videosxxxxx| 男人操女人的视频在线观看欧美| 久久亚洲捆绑美女| 91国产精品成人| 久久国产人妖系列| 亚洲欧美国产毛片在线| 日韩一区二区三区在线| av一区二区三区黑人| 肉色丝袜一区二区| 国产精品免费av| 91精品福利在线一区二区三区| 国产乱码精品一区二区三区忘忧草 | 不卡欧美aaaaa| 日一区二区三区| 亚洲欧洲三级电影| 欧美成人欧美edvon| 日本精品一区二区三区高清| 国内偷窥港台综合视频在线播放| 亚洲精品你懂的| 国产欧美视频一区二区三区| 欧美日精品一区视频| 成人国产电影网| 狠狠狠色丁香婷婷综合久久五月| 亚洲精品国产一区二区三区四区在线| 日韩精品一区二区三区视频播放 | 亚洲va欧美va天堂v国产综合| 亚洲国产精品成人综合| 欧美一区二区精美| 欧美综合久久久| k8久久久一区二区三区| 国产综合久久久久久久久久久久| 亚洲第一福利视频在线| 亚洲人成影院在线观看| 日本一区二区三区四区 | 国产精品1区2区| 美日韩一区二区| 日韩激情在线观看| 亚洲国产精品一区二区www| 国产精品久久久久久久久果冻传媒 | 欧美国产综合一区二区| 精品欧美黑人一区二区三区| 欧美日韩在线播放三区| 91福利社在线观看| 91在线观看视频| 成人的网站免费观看| 国产成人在线视频免费播放| 国内一区二区在线| 国产一区二区三区观看| 国产在线精品一区二区| 国产综合成人久久大片91| 在线看国产日韩| 91蜜桃在线观看| 欧洲精品一区二区三区在线观看| 91理论电影在线观看| 欧美亚洲国产一区二区三区| 欧美精品自拍偷拍动漫精品| 91麻豆精品国产| 精品对白一区国产伦| 久久精品亚洲精品国产欧美kt∨| 久久精品在这里| 国产精品久久久久久久久免费桃花 | 亚洲不卡一区二区三区| 日韩vs国产vs欧美| 黄色精品一二区| 高清视频一区二区| 成人av网站在线观看| 色综合久久综合网| 91麻豆精品国产无毒不卡在线观看| 欧美一区二区三区人| 久久婷婷成人综合色| 国产精品久久久久久久久图文区| 一区二区三区 在线观看视频| 亚洲成人动漫在线免费观看| 久久爱www久久做| 国产福利91精品一区二区三区| 91毛片在线观看| 欧美一级二级在线观看| 国产欧美日韩久久| 一区2区3区在线看| 久久99久久精品| 91麻豆国产精品久久| 欧美一二三区在线| 最近中文字幕一区二区三区| 日韩高清在线一区| 成人手机在线视频| 欧美日韩黄色一区二区| 国产女人18毛片水真多成人如厕 | 欧美揉bbbbb揉bbbbb| 国产偷国产偷精品高清尤物| 亚洲国产精品久久一线不卡|