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

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

?? coder_bpb.c

?? 好東西呢
?? C
?? 第 1 頁 / 共 2 頁
字號:

//#define ADD_CUR_WEIGHTS	// hurts !?
//#define LOCAL_LENS		// hurts
#define SCALEDOWN_LENS
#define SCALEDOWN_SHIFT	0	// makes len* the very previous!

//#define LOG

#define FIFTH_SHAPE		// helps a peetle
//#define XX_SHAPES		// hurts a tad
//#define NO_XX			// X3 and X4 help an awful lot
#define BIG_SHAPE_CNTX	// helps 0.006
// #define BIG_SIGN_CONTEXT // hurts a teeny

/*****

	these are the weights for combining the various
	moments to make an estimate	of the local activity

context = ((CA * VD + CB * P + CC * N + CD * W + CE * NW + CF * NE + CG * X1 + CH * X2 + CI * X3 + CJ * X4)>>8)

<>	these need to be trained on a test set	(not trivial)

	and very important ! little random changes make 0.01 bpp diff

******/

#define C1A 64
#define C1B 64
#define C1C 64
#define C1D 64
#define C1E 64
#define C1F 64
#define C1G 64
#define C1H 64
#define C1I 64
#define C1J 64

#define C2A 33
#define C2B 33
#define C2C 33
#define C2D 33
#define C2E 33
#define C2F 33
#define C2G 33
#define C2H 33
#define C2I 33
#define C2J 33

#define C3A 300
#define C3B 170
#define C3C 40
#define C3D 40
#define C3E 40
#define C3F 40
#define C3G 20
#define C3H 20
#define C3I 0
#define C3J 0

#define C4A 64
#define C4B 32
#define C4C 64
#define C4D 64
#define C4E 64
#define C4F 64
#define C4G 32
#define C4H 32
#define C4I 32
#define C4J 32

/*****

binary version : codes each bit-pel as a separate binary event

coding signs helps about 0.03 (better than the 0.02 observed
	in earlier more primitive sign coders)

our LOE :
	don't actually compare the four contexts' MPS's, but just the four coders'
	recent performance: choose the coder that had the lowest entropy on the
	last N pixels. (some decaying record).

instead of LOE, blend them based on confidence
		(this is unusually easy because of the fact that
		the alphabet is binary)
	something like P_tot = W_tot * Sum P[n] / w[n]

	where w is the weight = actual recent coded len
		(TMW uses 2^(-w) instead of 1/w )
		(that may actually be better cuz we can do it with shifts;
		you need some subtlety : find the smallest weight and factor it out first)

* we're very similar to ECECOW, but getting stomped. 
  he beats us by almost 1.0 PSNR at the same bitrate

---

e512 lossless, l6

	lena : 4.141	(ececow : 4.06)
	barb : 4.468	(ececow : 4.34)

*****/

#include <stdio.h>
#include <stdlib.h>
#include <crblib/inc.h>
#include <crblib/arithc.h>
#include <crblib/intmath.h>
#include "coder.h"
#include "subbands.h"

extern int tune_param;

#define	VAL_CONTEXTS		20
#define	VAL_CONTEXT_MAX		(VAL_CONTEXTS -1)
#define SHAPE_BASE			VAL_CONTEXTS
#define SHAPE(x)			(SHAPE_BASE<<(x))

#ifdef BIG_SHAPE_CNTX
#define NUM_SHAPES			5
#else
#define NUM_SHAPES			2
#endif

#define NUM_CONTEXTS		(VAL_CONTEXTS<<NUM_SHAPES)

#ifdef BIG_SIGN_CONTEXT
#define SIGN_CONTEXTS	729	// 3^6
#else
#define SIGN_CONTEXTS	81	// 3^4
#endif // BIG_SIGN_CONTEXT

#define TOTMAX			4000
#define INC				30

#define P0_INIT			8
#define P1_INIT			0

#define bitModel(bit,P0,PT)	do { PT += INC; if (!(bit)) P0 += INC;  if ( PT > TOTMAX ) { PT >>= 1; P0 >>= 1; P0++; PT += 2; } } while(0)
#define bitEnc(bit,ari,P0,PT)	do { arithEncBit(ari,P0,PT,bit);	bitModel(bit,P0,PT); } while(0)
#define bitDec(bit,ari,P0,PT)	do { bit = arithDecBit(ari,P0,PT);	bitModel(bit,P0,PT); } while(0)

#define AddSignContext(context,val,mask) do { context *= 3; if( abs(val)&(mask) ) { if ( (val) > 0 ) context ++; else context += 2; } } while(0)

#ifdef LOG
int nbest1=0,nbest2=0,nbest3=0,nbest4=0;
#endif

typedef struct {
	int p0,pt;
} binContext;

void coderBPbin_encodeSubbandBP(coder *me,subband_leaf *sb,int);
void coderBPbin_decodeSubbandBP(coder *me,subband_leaf *sb,int);

typedef struct {
	binContext signs[SIGN_CONTEXTS];
	binContext	stats1[NUM_CONTEXTS],
				stats2[NUM_CONTEXTS],
				stats3[NUM_CONTEXTS],
				stats4[NUM_CONTEXTS];
} myInfo;

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

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

	c->data = d;

	for(i=0;i<NUM_CONTEXTS;i++) {
		d->stats1[i].p0 = P0_INIT+1; d->stats1[i].pt = 2+P0_INIT+P1_INIT;
		d->stats2[i].p0 = P0_INIT+1; d->stats2[i].pt = 2+P0_INIT+P1_INIT;
		d->stats3[i].p0 = P0_INIT+1; d->stats3[i].pt = 2+P0_INIT+P1_INIT;
		d->stats4[i].p0 = P0_INIT+1; d->stats4[i].pt = 2+P0_INIT+P1_INIT;
	}

	for(i=0;i<SIGN_CONTEXTS;i++) {
		d->signs[i].p0 = 1;
		d->signs[i].pt = 2;
	}

}

void coderBPbin_free(coder *c)
{
	if ( c->data ) {
		myInfo *d;
		d = c->data;
		free(d);
		c->data = NULL;
	}
}

coder coderBPbin = {
		"BitPlane Binary",
		coderBPbin_init,
		coderBPbin_free,
		NULL,NULL,NULL,NULL,NULL,NULL,
		coderBPbin_encodeSubbandBP,
		coderBPbin_decodeSubbandBP
	};

/**********

lazy way to pass the state from getStats to fixStats
	and also interacts with the codeBand()

these are re-initialized at each codeBand() call, so this is
	quite re-entrant as long as we aren't multi-threaded
	(that is, no more than one call to codeBand() at a time)

*********/

static int VD;
static binContext *stats1,*stats2,*stats3,*stats4;
static binContext *s1,*s2,*s3,*s4;
static int len1,len2,len3,len4;
static int *sister_x,*sister_y,sister_trans,*parent,parent_step,parent_mask,parent_shift;
static int p0,pt,donemask,nextmask;

int intentropy(int p0,int pt)
{
return ((p0*(log2x16(pt) - log2x16(p0)) + (pt-p0)*(log2x16(pt) - log2x16(pt-p0)))<<3)/pt;
}
int LOEweight(int p0,int pt)
{
if ( (pt - p0) < p0 ) p0 = (pt - p0);
return log2x16(pt) - log2x16(p0);
}

static void getStats(int *dp,int *pp,int x,int y,int width,int height,int fullw)
{
int shapes;
int P,N,S,E,W,NE,NW,X1,X2,X3,X4;
int diff,lena,lenb;
binContext *sa,*sb;

	/*** elaborate context-making ***/

	VD	= abs(*dp)&donemask;	// current val already done

	P	= abs(*pp)&nextmask;

	if ( y == 0 ) {
		N = NW = NE = VD;
		if ( x == 0 ) W = VD; else W = abs(dp[-1]) & nextmask;
	} else if ( x == 0 ) {
		W = NW = 0;
		N  = abs(dp[-fullw])	& nextmask;
		NE = abs(dp[1-fullw])	& nextmask;
	} else {
		N = abs(dp[-fullw])		& nextmask;
		W = abs(dp[-1])			& nextmask;
		NW = abs(dp[-1-fullw])	& nextmask;
		if ( x == (width-1) ) NE = VD;
		else NE = abs(dp[1-fullw]) & nextmask;
	}

	if ( y < (height-1) ) S = abs(dp[fullw]) & donemask; else S = VD;
	if ( x < (width-1) ) E = abs(dp[1])	& donemask;	else E = VD;

	if ( sister_x ) {
			X1 = S; X2 = E;
		switch(sister_trans) {
			case 0:
				X3 = abs( sister_x[ x + fullw*y ] ) & nextmask;
				X4 = abs( sister_y[ x + fullw*y ] ) & nextmask;
				break;
			case 1:
				X3 = abs( sister_x[ y + fullw*x ] ) & nextmask;
				X4 = abs( sister_y[ x + fullw*y ] ) & nextmask;
				break;
			case 2:

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人av自拍| 成人激情图片网| 亚洲欧洲国产日韩| 欧美伦理视频网站| 本田岬高潮一区二区三区| 视频在线观看一区二区三区| 国产精品久久久久婷婷二区次 | 91麻豆精品秘密| 激情文学综合丁香| 丝袜诱惑制服诱惑色一区在线观看| 国产亚洲一本大道中文在线| 欧美午夜精品久久久久久孕妇 | 免费成人av在线播放| 亚洲人精品午夜| 国产日韩影视精品| 欧美mv日韩mv国产网站app| 欧美三级日韩在线| 91视视频在线观看入口直接观看www | 色综合久久中文字幕| 国产精品123区| 国产电影精品久久禁18| 天堂资源在线中文精品| **性色生活片久久毛片| 国产亚洲成aⅴ人片在线观看| 日韩欧美区一区二| 欧美日韩视频在线一区二区| 91美女片黄在线观看| 不卡一区中文字幕| 成人免费视频一区| 国产一区二区在线观看免费| 美女免费视频一区| 日韩不卡手机在线v区| 婷婷综合在线观看| 午夜私人影院久久久久| 亚洲午夜视频在线观看| 亚洲免费观看高清| 国产精品九色蝌蚪自拍| 国产精品国产三级国产| 久久精品视频免费| 久久久精品tv| 国产女人aaa级久久久级 | 欧美午夜宅男影院| 欧美性色综合网| 欧美亚洲精品一区| 欧洲视频一区二区| 欧美久久久久久蜜桃| 宅男噜噜噜66一区二区66| 欧美久久免费观看| 欧美一区二区三区在线看| 国模少妇一区二区三区| 色综合久久综合网欧美综合网 | 日韩国产成人精品| 日本亚洲欧美天堂免费| 日本伊人色综合网| 激情综合网av| 懂色av一区二区夜夜嗨| 波多野结衣一区二区三区 | 成人性色生活片免费看爆迷你毛片| 国产很黄免费观看久久| www.亚洲激情.com| 在线视频国产一区| 欧美丰满高潮xxxx喷水动漫| 日韩一区二区三| 精品91自产拍在线观看一区| 中文字幕免费不卡在线| 亚洲免费成人av| 亚洲成人777| 韩国女主播成人在线观看| 成人免费毛片嘿嘿连载视频| 色吧成人激情小说| 欧美一区二区在线播放| 久久色中文字幕| **欧美大码日韩| 男女男精品视频| 丁香一区二区三区| 欧美在线免费播放| 精品区一区二区| ...中文天堂在线一区| 亚洲大片免费看| 国v精品久久久网| 欧美日韩国产一区| 国产午夜亚洲精品理论片色戒| 樱桃国产成人精品视频| 久久国产麻豆精品| 97精品国产露脸对白| 91精品国产91综合久久蜜臀| 国产精品私房写真福利视频| 美女视频免费一区| 丰满亚洲少妇av| 欧美视频中文字幕| 国产人成一区二区三区影院| 亚洲国产三级在线| 成人性生交大片免费看视频在线| 在线成人午夜影院| 18欧美亚洲精品| 国产一区二区在线视频| 国产一区二三区| 欧美高清www午色夜在线视频| 中文一区二区在线观看| 久久se这里有精品| 欧美写真视频网站| 亚洲男人都懂的| 9久草视频在线视频精品| 欧美性色综合网| 亚洲精品美国一| 一区二区三区中文字幕精品精品 | 日韩国产精品久久| 国产乱人伦偷精品视频免下载 | 91精品国产综合久久精品性色 | 麻豆视频观看网址久久| 日本精品免费观看高清观看| 2022国产精品视频| 天天影视色香欲综合网老头| 91精彩视频在线| 国产精品国产三级国产三级人妇| 极品瑜伽女神91| 欧美一级欧美三级| 一区二区三区.www| 成人黄色av电影| 久久九九99视频| 老司机精品视频在线| 欧美日韩你懂的| 亚洲一区免费在线观看| 99久久精品国产网站| 国产精品久久久久久久久果冻传媒| 国产一区欧美一区| 欧美电视剧在线看免费| 日韩激情在线观看| 欧美女孩性生活视频| 亚洲在线一区二区三区| 日本韩国精品在线| 中文字幕人成不卡一区| 成人免费精品视频| 国产精品乱码妇女bbbb| 国产91丝袜在线18| 国产婷婷色一区二区三区四区| 国产一区二区三区免费看 | 亚洲精品国产a| 色狠狠色狠狠综合| 亚洲国产日韩a在线播放性色| 欧美制服丝袜第一页| 亚洲欧美另类久久久精品2019| 成人av在线资源网站| 国产精品日产欧美久久久久| 成人激情文学综合网| 一区二区中文视频| 色综合久久久久| 亚洲成av人片一区二区三区| 欧美系列在线观看| 麻豆精品在线视频| 欧美精品一区二区三区蜜桃视频| 国产精品99久久久久久似苏梦涵 | 欧美一区二区三区婷婷月色| 91精品国产免费| 欧美影院午夜播放| 高清在线成人网| 久久99精品久久久久久国产越南| 最新中文字幕一区二区三区 | 国产乱码精品一区二区三区五月婷| 亚洲视频网在线直播| 日韩免费成人网| 日韩亚洲欧美成人一区| 91精品一区二区三区在线观看| 欧美极品aⅴ影院| 97se亚洲国产综合在线| 香蕉加勒比综合久久| 91精品国产综合久久福利软件| 国产九色sp调教91| 一区二区三区蜜桃| 欧美一区二区三区在线视频| 国产成人精品亚洲777人妖| 亚洲精品一卡二卡| 91精品国产高清一区二区三区| 国产大陆a不卡| 亚洲一区精品在线| 久久婷婷国产综合精品青草| 99免费精品在线观看| 日韩精品视频网站| 国产精品视频一二三| 91豆麻精品91久久久久久| 免费久久99精品国产| 中文字幕视频一区| 日韩欧美国产一区二区在线播放| 国产超碰在线一区| 午夜精品aaa| 中文字幕在线播放不卡一区| 欧美二区三区91| 99久久久国产精品免费蜜臀| 免费观看91视频大全| 亚洲乱码国产乱码精品精可以看 | 欧美草草影院在线视频| 播五月开心婷婷综合| 免费在线看成人av| 亚洲视频免费在线| 精品美女在线观看| 欧美日本国产视频| 91蝌蚪国产九色| 国产精品1区2区3区在线观看| 午夜电影网亚洲视频| 国产精品国产三级国产普通话三级|