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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? coder_bp_zt2.c

?? 好東西呢
?? C
字號(hào):

/*****

coder_BP : 

	could get more speed out of arithc and soz

	arithc could lose its struct and just code from locals

ALPHA_REMAP does seem to help speed a bit.  The idea of it is to
make most common symbols lowest in alpha order, so that the
cheezy soz is as fast as possible

*****/

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

extern int tune_param;

static int bp_remap[] = {0,1,2,5,3,9,6,11,4,10,7,12,8,13,14,15};
static int bp_unmap[] = {0,1,2,4,8,3,6,10,12,5,9,7,11,13,14,15};

// #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 bitModel(bit,P0,PT)		do { PT += INC; P0 += ((bit)?0: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 INC			20
#define TOTMAX		4000

#define ORDER1_CONTEXTS		5
#define ORDER1_ALPHABET		16	//4 bits

#define ORDER1_TOTMAX		15000
#define ORDER1_INC			30

void coderBPZT2_init(coder *c);
void coderBPZT2_free(coder *c);
void coderBPZT2_flush(coder *c);
void coderBPZT2_encodeBandZT(coder *me,int *band,int width,int height,int bits,int fullw,int **rows);
void coderBPZT2_decodeBandZT(coder *me,int *band,int width,int height,int bits,int fullw,int **rows);
void coderBPZT2_decodeBandZT_eatZTs(coder *me,int *band,int width,int height,int bits,int fullw,int **rows);
void coderBPZT2_decodeBandZT_noZTs(coder *me,int *band,int width,int height,int bits,int fullw,int **rows);
void coderBPZT2_decodeBandZT_ZTs(coder *me,int *band,int width,int height,int bits,int fullw,int **rows);

coder coderBPZT2 = {
		"BP ZT 2",
		coderBPZT2_init,
		coderBPZT2_free,
		NULL,NULL,NULL,NULL,
		coderBPZT2_encodeBandZT,
		coderBPZT2_decodeBandZT
	};

typedef struct {
	soz ** o1;
	int zeros_p0[ORDER1_CONTEXTS],zeros_pt[ORDER1_CONTEXTS];
} myInfo;

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

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

	c->data = d;

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

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

		d->zeros_p0[i] = 1; d->zeros_pt[i] = 2;
	}
}

void coderBPZT2_flush(coder *c)
{
myInfo *d;
int i;
	d = c->data;
	for(i=0;i<ORDER1_CONTEXTS;i++) {
		sozReset(d->o1[i]);
		d->zeros_p0[i] = 1; d->zeros_pt[i] = 2;
	}
}

void coderBPZT2_free(coder *c)
{
	if ( c->data ) {
		myInfo *d;
		d = c->data;
		if ( d->o1 ) {
			int i;
			for(i=0;i<ORDER1_CONTEXTS;i++) {
				if ( d->o1[i] ) sozFree(d->o1[i]);
			}
		}
		free(d);
		c->data = NULL;
	}
}


void coderBPZT2_encodeBandZT(coder *me,int *band,int width,int height,int bits,int fullw,int **rows)
{
int x,y,context,block;
int *dp,*dpn;
soz **o1 = ((myInfo *)me->data)->o1;
arithInfo *ari = me->arith;
int donemask,nextmask,bitmask;
int *zeros_p0,*zeros_pt;
bool bottom;

	zeros_p0 = ((myInfo *)me->data)->zeros_p0;
	zeros_pt = ((myInfo *)me->data)->zeros_pt;

	if ( width == (fullw >>1) ) bottom = true;
	else bottom = false;

	bitmask = 1<<bits;
	for(x=bitmask,nextmask=0; x<(1<<CODE_MAX_BPN) ;x<<=1) nextmask += x;
	donemask = nextmask - bitmask;

	dp = band;
	for(y=height>>1;y--;) {
		dpn = dp + fullw;
		for(x=width>>1;x--;) {
			if ( dp[0] & FLAG_CHILD_ZERO ) { // the whole quartet is zero
				dp[0] -= FLAG_CHILD_ZERO;	// it's a zerotree child, don't code
				dp[1] -= FLAG_CHILD_ZERO;	// undo the evil unnecessary work of FindZeroTrees
				dpn[0] -= FLAG_CHILD_ZERO;
				dpn[1] -= FLAG_CHILD_ZERO;
			} else {
				context = ((dp[0] & donemask)?1:0) + ((dp[1] & donemask)?1:0) + ((dpn[0] & donemask)?1:0) + ((dpn[1] & donemask)?1:0);

/***
				block  =  (( dp[0]  & bitmask )?1:0)
						+ (( dp[1]  & bitmask )?2:0)
						+ (( dpn[0] & bitmask )?4:0)
						+ (( dpn[1] & bitmask )?8:0);
****/
				block  =   ( (dp[0]  >>bits) & 1 )
						+ (( (dp[1]  >>bits) & 1 )<<1)
						+ (( (dpn[0] >>bits) & 1 )<<2)
						+ (( (dpn[1] >>bits) & 1 )<<3);


				sozEncode(o1[context],bp_remap[block]);

				if ( ! bottom ) {
					/** code zerotree flags on any zero bits **/
					switch(block) {
						case 15:
							break;
						case 14:
							if ( dp[0] & FLAG_ISOLATED_ZERO ) {	dp[0] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							break;
						case 13:
							if ( dp[1] & FLAG_ISOLATED_ZERO ) {	dp[1] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							break;
						case 12:
							if ( dp[0] & FLAG_ISOLATED_ZERO ) {	dp[0] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							if ( dp[1] & FLAG_ISOLATED_ZERO ) {	dp[1] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							break;
						case 11:
							if ( dpn[0] & FLAG_ISOLATED_ZERO ) { dpn[0] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							break;
						case 10:
							if ( dp[0] & FLAG_ISOLATED_ZERO ) {	dp[0] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							if ( dpn[0] & FLAG_ISOLATED_ZERO ) { dpn[0] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							break;
						case 9:
							if ( dp[1] & FLAG_ISOLATED_ZERO ) {	dp[1] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							if ( dpn[0] & FLAG_ISOLATED_ZERO ) { dpn[0] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							break;
						case 8:
							if ( dp[0] & FLAG_ISOLATED_ZERO ) {	dp[0] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							if ( dp[1] & FLAG_ISOLATED_ZERO ) {	dp[1] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							if ( dpn[0] & FLAG_ISOLATED_ZERO ) { dpn[0] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							break;
						case 7:
							if ( dpn[1] & FLAG_ISOLATED_ZERO ) { dpn[1] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							break;
						case 6:
							if ( dp[0] & FLAG_ISOLATED_ZERO ) {	dp[0] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							if ( dpn[1] & FLAG_ISOLATED_ZERO ) { dpn[1] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							break;
						case 5:
							if ( dp[1] & FLAG_ISOLATED_ZERO ) {	dp[1] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							if ( dpn[1] & FLAG_ISOLATED_ZERO ) { dpn[1] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							break;
						case 4:
							if ( dp[0] & FLAG_ISOLATED_ZERO ) {	dp[0] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							if ( dp[1] & FLAG_ISOLATED_ZERO ) {	dp[1] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							if ( dpn[1] & FLAG_ISOLATED_ZERO ) { dpn[1] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							break;
						case 3:
							if ( dpn[0] & FLAG_ISOLATED_ZERO ) { dpn[0] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							if ( dpn[1] & FLAG_ISOLATED_ZERO ) { dpn[1] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							break;
						case 2:
							if ( dp[0] & FLAG_ISOLATED_ZERO ) {	dp[0] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							if ( dpn[0] & FLAG_ISOLATED_ZERO ) { dpn[0] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							if ( dpn[1] & FLAG_ISOLATED_ZERO ) { dpn[1] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							break;
						case 1:
							if ( dp[1] & FLAG_ISOLATED_ZERO ) {	dp[1] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							if ( dpn[0] & FLAG_ISOLATED_ZERO ) { dpn[0] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							if ( dpn[1] & FLAG_ISOLATED_ZERO ) { dpn[1] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							break;
						case 0:
							if ( dp[0] & FLAG_ISOLATED_ZERO ) {	dp[0] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							if ( dp[1] & FLAG_ISOLATED_ZERO ) {	dp[1] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							if ( dpn[0] & FLAG_ISOLATED_ZERO ) { dpn[0] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							if ( dpn[1] & FLAG_ISOLATED_ZERO ) { dpn[1] -= FLAG_ISOLATED_ZERO; bitEnc(0,ari,zeros_p0[context],zeros_pt[context]); } else { bitEnc(1,ari,zeros_p0[context],zeros_pt[context]); }
							break;
					}
				}
			}
			dp += 2; dpn += 2;
		}
		dp += fullw + fullw - width;
	}

}

void coderBPZT2_decodeBandZT(coder *me,int *band,int width,int height,int bits,int fullw,int **rows)
{
bool bottom;

	if ( width == (fullw >>1) ) bottom = true;
	else bottom = false;


	if ( bottom ) {
		coderBPZT2_decodeBandZT_noZTs(me,band,width,height,bits,fullw,rows);
	} else {
		coderBPZT2_decodeBandZT_ZTs(me,band,width,height,bits,fullw,rows);
	}

}

void coderBPZT2_decodeBandZT_noZTs(coder *me,int *band,int width,int height,int bits,int fullw,int **rows)
{
int x,y,context,block;
int *dp,*dpn;
soz **o1 = ((myInfo *)me->data)->o1;
arithInfo *ari = me->arith;
int donemask,nextmask,bitmask;

	bitmask = 1<<bits;
	for(x=bitmask,nextmask=0; x<(1<<CODE_MAX_BPN) ;x<<=1) nextmask += x;
	donemask = nextmask - bitmask;

	/**

		this is almost identical to the extremely simple pre-ZT BP coder

	**/

	dp = band;
	for(y=0;y<height;y+=2) {
		dpn = dp + fullw;
		for(x=0;x<width;x+=2) {
			if ( dp[0] & FLAG_ALREADY_DECODED ) {
				dp[0] -= FLAG_ALREADY_DECODED;
			} else {
				context = ((dp[0] & donemask)?1:0) + ((dp[1] & donemask)?1:0) + ((dpn[0] & donemask)?1:0) + ((dpn[1] & donemask)?1:0);

				block = bp_unmap[sozDecode(o1[context])];

				dp[0 ] |= ( block & 1 )?bitmask:0;
				dp[1 ] |= ( block & 2 )?bitmask:0;
				dpn[0] |= ( block & 4 )?bitmask:0;
				dpn[1] |= ( block & 8 )?bitmask:0;
			}
			dp += 2; dpn += 2;
		}
		dp += fullw + fullw - width;
	}

}

void coderBPZT2_decodeBandZT_ZTs(coder *me,int *band,int width,int height,int bits,int fullw,int **rows)
{
int x,y,context,block;
int *dp,*dpn;
soz **o1 = ((myInfo *)me->data)->o1;
arithInfo *ari = me->arith;
int donemask,nextmask,bitmask;
int offwidth,offheight,*children;
int bit,tx,ty;
int *zeros_p0,*zeros_pt;

	zeros_p0 = ((myInfo *)me->data)->zeros_p0;
	zeros_pt = ((myInfo *)me->data)->zeros_pt;

	bitmask = 1<<bits;
	for(x=bitmask,nextmask=0; x<(1<<CODE_MAX_BPN) ;x<<=1) nextmask += x;
	donemask = nextmask - bitmask;

	offheight	= (band - rows[0])/fullw;
	offwidth	= (band - rows[0]) - fullw*offheight;

	dp = band;
	for(y=0;y<height;y+=2) {
		dpn = dp + fullw;
		for(x=0;x<width;x+=2) {
			if ( dp[0] & FLAG_ALREADY_DECODED ) {
				dp[0] ^= FLAG_ALREADY_DECODED;

				tx = (offwidth + x)<<1;
				ty = (offheight+ y)<<1;
				rows[ty  ][tx  ] |= FLAG_ALREADY_DECODED;
				rows[ty  ][tx+2] |= FLAG_ALREADY_DECODED;
				rows[ty+2][tx  ] |= FLAG_ALREADY_DECODED;
				rows[ty+2][tx+2] |= FLAG_ALREADY_DECODED;
			} else {
				context = ((dp[0] & donemask)?1:0) + ((dp[1] & donemask)?1:0) + ((dpn[0] & donemask)?1:0) + ((dpn[1] & donemask)?1:0);

				block = bp_unmap[sozDecode(o1[context])];

				children = rows[(offheight+ y)<<1] + ((offwidth + x)<<1);

				if ( block & 1 ) dp[0 ] |= bitmask;
				else {
					bitDec(bit,ari,zeros_p0[context],zeros_pt[context]);
					children[0] |= bit?FLAG_ALREADY_DECODED:0;
				}
				if ( block & 2 ) dp[1 ] |= bitmask;
				else {
					bitDec(bit,ari,zeros_p0[context],zeros_pt[context]);
					children[2] |= bit?FLAG_ALREADY_DECODED:0;
				}
				if ( block & 4 ) dpn[0] |= bitmask;
				else {
					bitDec(bit,ari,zeros_p0[context],zeros_pt[context]);
					children[fullw+fullw] |= bit?FLAG_ALREADY_DECODED:0;
				}
				if ( block & 8 ) dpn[1] |= bitmask;
				else {
					bitDec(bit,ari,zeros_p0[context],zeros_pt[context]);
					children[fullw+fullw+2] |= bit?FLAG_ALREADY_DECODED:0;
				}
			}
			dp += 2; dpn += 2;
		}
		dp += fullw + fullw - width;
	}

}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91亚洲男人天堂| 国产精品色呦呦| 欧美在线视频不卡| 在线观看91视频| 欧美日韩综合在线免费观看| 日本精品视频一区二区| 91搞黄在线观看| 欧美在线视频全部完| 欧美日韩在线电影| 欧美高清视频不卡网| 欧美日韩高清一区二区不卡| 欧美精品v国产精品v日韩精品| 欧美午夜精品免费| 欧美精品久久99久久在免费线 | voyeur盗摄精品| 99久久99久久免费精品蜜臀| 国产视频一区在线播放| 欧美丝袜丝交足nylons| 国产精品18久久久久久久久久久久| 午夜精品一区二区三区免费视频| 午夜成人免费电影| 综合久久久久久久| 国产午夜精品一区二区三区四区 | 天天综合网 天天综合色| 精品一区二区免费在线观看| 色综合天天综合网国产成人综合天| 欧美成人一区二区三区片免费| 亚洲第一综合色| 狠狠久久亚洲欧美| 欧洲亚洲精品在线| 国产亚洲欧美在线| 免费一级片91| 在线视频观看一区| 中文字幕在线不卡国产视频| 免费一级片91| 91精品视频网| 亚洲亚洲精品在线观看| 成人黄色国产精品网站大全在线免费观看| 91婷婷韩国欧美一区二区| 精品国产免费人成电影在线观看四季 | 99精品久久只有精品| 国产精品动漫网站| 精品嫩草影院久久| 中文字幕一区av| 图片区小说区区亚洲影院| 久久狠狠亚洲综合| 91美女视频网站| 日韩一区国产二区欧美三区| 欧美国产97人人爽人人喊| 一区二区成人在线视频| 国产真实乱偷精品视频免| 色综合网站在线| 欧美tickling挠脚心丨vk| 日韩美女视频一区二区| 蜜臀av一区二区| 91亚洲精品乱码久久久久久蜜桃| 91精品国产全国免费观看| 亚洲欧洲成人精品av97| 精品在线免费观看| 欧美性视频一区二区三区| 久久免费的精品国产v∧| 亚洲高清在线视频| 成人午夜av影视| 精品少妇一区二区三区 | 性久久久久久久| av电影在线观看完整版一区二区| 欧美老年两性高潮| 国产精品久久久久久久久果冻传媒| 免费欧美高清视频| 色婷婷综合在线| 国产精品网友自拍| 国产aⅴ综合色| 欧美一区二区高清| 亚洲午夜国产一区99re久久| 成人高清在线视频| 久久九九影视网| 强制捆绑调教一区二区| 欧美三级电影在线看| 亚洲日本va在线观看| 高清成人免费视频| 欧美变态凌虐bdsm| 首页国产丝袜综合| 在线免费观看不卡av| 欧美高清在线一区二区| 老汉av免费一区二区三区| 欧美伊人久久久久久午夜久久久久| 久久久亚洲综合| 九色综合国产一区二区三区| 91麻豆精品久久久久蜜臀| 亚洲午夜私人影院| 色综合视频一区二区三区高清| 国产精品免费视频一区| 国产成人欧美日韩在线电影| 337p日本欧洲亚洲大胆色噜噜| 偷窥少妇高潮呻吟av久久免费| 97久久精品人人做人人爽| 中文成人综合网| 成人一级视频在线观看| 国产人久久人人人人爽| 国产真实乱子伦精品视频| 精品国产一区二区三区av性色| 日韩av电影免费观看高清完整版在线观看| 91免费观看视频| 亚洲靠逼com| 91色视频在线| 亚洲综合色在线| 欧美三片在线视频观看| 亚洲一区av在线| 在线播放视频一区| 青青草成人在线观看| 日韩欧美二区三区| 国产剧情在线观看一区二区| 久久久777精品电影网影网| 丰满放荡岳乱妇91ww| 中文字幕的久久| 91在线视频官网| 亚洲综合在线五月| 在线播放一区二区三区| 美女视频第一区二区三区免费观看网站| 91超碰这里只有精品国产| 蜜桃视频一区二区三区| 2020国产精品| 波多野结衣亚洲| 一区二区三区在线观看欧美| 欧美军同video69gay| 久久精品国产秦先生| 国产精品丝袜久久久久久app| 99久久亚洲一区二区三区青草| 亚洲伦理在线精品| 911精品国产一区二区在线| 久久国产精品一区二区| 欧美激情一区在线观看| 91久久精品一区二区| 蜜桃久久久久久| 国产女人aaa级久久久级| 色av一区二区| 激情六月婷婷综合| 中文字幕在线不卡| 欧美精三区欧美精三区| 国产精品中文字幕日韩精品| 日韩理论片一区二区| 欧美福利电影网| 国产v日产∨综合v精品视频| 一二三四社区欧美黄| 日韩精品专区在线影院重磅| 白白色亚洲国产精品| 日一区二区三区| 日本一区二区免费在线| 欧美人与z0zoxxxx视频| 国产不卡免费视频| 亚洲成a人v欧美综合天堂| 国产日韩精品一区二区三区| 色婷婷精品久久二区二区蜜臂av | 成人激情动漫在线观看| 日韩精品电影在线观看| 欧美国产日韩在线观看| 91精品国产色综合久久| 91在线国内视频| 国产综合久久久久久鬼色| 亚洲最大成人网4388xx| 国产欧美va欧美不卡在线| 5566中文字幕一区二区电影| 99久精品国产| 精品中文字幕一区二区小辣椒| 亚洲精品久久久蜜桃| 国产日韩欧美亚洲| 3atv在线一区二区三区| 99精品黄色片免费大全| 韩国一区二区三区| 亚洲成在线观看| 成人免费一区二区三区视频| 精品久久久久久久久久久久包黑料 | 国产精品主播直播| 视频在线在亚洲| 亚洲三级在线看| 国产欧美日韩亚州综合| 日韩欧美综合一区| 在线观看免费亚洲| 99久久夜色精品国产网站| 国产精品综合网| 蜜臀av一区二区| 爽爽淫人综合网网站| 亚洲三级在线观看| 中文字幕欧美激情一区| 久久久高清一区二区三区| 日韩女优视频免费观看| 91精品国产综合久久国产大片| 91在线无精精品入口| 风流少妇一区二区| 国产盗摄一区二区| 韩国精品一区二区| 久久精品国产99久久6| 日本欧美大码aⅴ在线播放| 亚洲香蕉伊在人在线观| 亚洲视频一区在线| 18欧美乱大交hd1984| 国产精品美女久久久久aⅴ国产馆| 国产天堂亚洲国产碰碰| 国产欧美日韩另类一区| 久久精品亚洲一区二区三区浴池 |