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

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

?? jpeg.c

?? VHDL設(shè)計(jì)的高速圖像采集模塊源碼
?? C
字號:
#include "DataType.h"
#include "tables.h"
#include "dct.h"
#include "flash.h"
#define DEBUG
#ifdef DEBUG
#include "serial.h"
#endif
#define CIFW 352
#define CIFH 288
LINT8 cha_y[CIFW][CIFH];
LINT8 cha_u[CIFW/2][CIFH/2];
LINT8 cha_v[CIFW/2][CIFH/2];
LINT8 ix=0;
LINT8 iy=0;
LINT32 ydc=0,udc=0,vdc=0;
LINT32 accoder[16][11],acbit[16][11];
LINT32 accoder2[16][11],acbit2[16][11];

///////////文件部分/////////

#define MAXSIZE 262114 //256K
typedef struct{
	LINT8 buffer[MAXSIZE];
	LINT32 fp,lp,CurrentPosition,length;
	LINT8 CurrentData;
	LINT8 CurrentBits;
	}FILEBUF;
FILEBUF infile;
													//輸入數(shù)據(jù),長度為bits
void PutDatatoJpegFile(LINT32 data,LINT8 bits,FILEBUF *buf)
{
	LINT8 CurrentFreeBits=0;
	while (bits!=0)
	{
		if (buf->CurrentBits+bits<8)
		{
			buf->CurrentData=(buf->CurrentData<<bits)|data;
			buf->CurrentBits+=bits;
			bits=0;
		}
		else
		{
			CurrentFreeBits=8-buf->CurrentBits;
			bits=bits-CurrentFreeBits;
		buf->CurrentData=(buf->CurrentData<<CurrentFreeBits)|data>>bits;
			buf->buffer[buf->CurrentPosition]=buf->CurrentData;
			buf->CurrentPosition++;
			buf->length++;
												//如果data=0xFF, 加0
			if (buf->CurrentData==0xff)
			{
				buf->buffer[buf->CurrentPosition]=0;
				buf->CurrentPosition++;
				buf->length++;
			}
			buf->CurrentData=0;
			buf->CurrentBits=0;
			data=data&mask[bits];
		}
	}
}

///////////Huffman編碼 /////////

typedef struct
{
	LINT32 maxcode[16];
	LINT32 mincode[16];
	LINT8 ml;
	unsigned valptr[16];
}DHUFF;

typedef struct
{
	LINT8 huffval[256];
}XHUFF;

DHUFF dhuff,dhuffdc,dhuff2,dhuffdc2;
XHUFF xhuff,xhuffdc,xhuff2,xhuffdc2;
void len2huff(LINT8 *lengthtab,DHUFF *dhuff,XHUFF *xhuff,LINT8 *val)
{
	int i,l,k,base=0;
	dhuff->ml=16;
	for(i=0;i<dhuff->ml;i++)
	{
		dhuff->mincode[i]=0;
		dhuff->maxcode[i]=0;
		dhuff->valptr[i]=-1;
	}
	for(i=0;i<256;i++)
		xhuff->huffval[i]=0;
		i=0;
		base=0;
	for(l=0;l<dhuff->ml;l++)
	{
		if(lengthtab[l]!=0)
		{
			dhuff->mincode[l]=base;
			dhuff->valptr[l]=i;
		}
		for(k=0;k<lengthtab[l];k++)
		{
			xhuff->huffval[i]=val[i];
			i++;
			base++;
		}
		if(lengthtab[l]!=0)dhuff->maxcode[l]=base-1;
		base=base*2;
	}
}
void iztransfer(LINT32 *array)
{
	LINT32 temp[64],n,x,y;
	for(n=0;n<64;n++)
	{
		x=iztab[2*n];
		y=iztab[2*n+1];
		temp[n]=array[x*8+y];
	}
	for(n=0;n<64;n++)
	array[n]=temp[n];
}
//量化
void qdata(LINT32 * in,LINT32 * out,LINT8 level)
{
	int i;
	for(i=0;i<64;i++)
	{
		if(in[i]>0)
			out[i]=in[i]/agraytab[level][i];
		else
			out[i]=in[i]/agraytab[level][i];
	}
}
void quvdata(LINT32 * in,LINT32 * out,LINT8 level)
{
	int i;
	for(i=0;i<64;i++)
	{
		if(in[i]>0)
			out[i]=in[i]/acolortab[level][i];
		else
			out[i]=in[i]/acolortab[level][i];
	}
}
//從SRAM 0xC0100000讀數(shù)據(jù)到 cha_y[CIFW][CIFH];
//cha_u[CIFW/2][CIFH/2]; cha_v[CIFW/2][CIFH/2];

#ifdef DEBUG
void put_num8(unsigned char i)
{
	put_char(((((i>>4) & 0x0f) + '0')> '9' )? ((i>>4) & 0x0f) +'0'+7 : ((i>>4) & 0x0f) +'0' );
	put_char((((i & 0x0f) + '0')> '9' )? (i & 0x0f) +'0'+7 : (i & 0x0f) +'0' );
}
static void put_num32(int i)
{
	put_num8((unsigned char)(( i>>24) & 0xff));
	put_num8( (unsigned char) (i>>16 & 0xff));
	put_num8((unsigned char)(( i>>8) & 0xff));
	put_num8( (unsigned char) (i & 0xff));
}
#endif
void readfile(void)
{
	int i,count=0;
	for (i=0;i<CIFW*CIFH*6/4;i+=6)
	{
														//取決于圖像的幀格式
		cha_y[(i*2/6%CIFW)][(i*2/6/CIFW)*2]=RAM_BYTE(i);
		cha_y[(i*2/6%CIFW)+1][(i*2/6/CIFW)*2]=RAM_BYTE(i+1);
		cha_y[(i*2/6%CIFW)][(i*2/6/CIFW)*2+1]=RAM_BYTE(i+2);
		cha_y[(i*2/6%CIFW)+1][(i*2/6/CIFW)*2+1]=RAM_BYTE(i+3);
		cha_u[i/6%(CIFW/2)][i/6/(CIFW/2)]=RAM_BYTE(i+4);
		cha_v[i/6%(CIFW/2)][i/6/(CIFW/2)]=RAM_BYTE(i+5);
		count++;
	}
}
													//寫編碼文件到串行口
void writefile(FILEBUF *buf)
{
	int i;
	for (i=0;i<=buf->length;i++)
	{
		put_num8(buf->buffer[i]);
	}
}
LINT8 GetLength(LINT32 in)
{
	int val;
	if (in<0) 
		val=-in;
	else 
		val = in;
	if (val>511) return 10;
	else if (val>255) return 9;
	else if (val>127) return 8;
	else if (val>63) return 7;
	else if (val>31) return 6;
	else if (val>15) return 5;
	else if (val>7) return 4;
	else if (val>3) return 3;
	else if (val>1) return 2;
	else if (val>0) return 1;
	else return 0;
}
							//從22*18矩陣壓縮到8*8,6(4Y+U+V) 
void mcugen(LINT8 x,LINT8 y)
{
	LINT8 p_array[8][8];
	LINT32 dct_array[8][8];
	LINT32 q_array[8][8],diff;
	LINT8 length,flag=0;
	LINT8 AcCount=1,ZeroCount=0;
	unsigned int i,j;

///////////////Y1亮度/////////////////////////////////////
	
	for(i=0;i<8;i++)
	for(j=0;j<8;j++)
		p_array[i][j]=cha_y[x*16+j][y*16+i];
		ffdct(&p_array[0][0],&dct_array[0][0]);
		iztransfer(&dct_array[0][0]);
		qdata(&dct_array[0][0],&q_array[0][0],5);

																//DC編碼
		diff=q_array[0][0]-ydc;
		ydc=q_array[0][0];
	if(diff<0)
	{
		diff=-diff;
		flag=1;
	}
	length=GetLength(diff);
	if(flag==1)
	{
		diff=two[length]-1-diff;
	}
	PutDatatoJpegFile(dccoder[length],dcbit[length],&infile);
	PutDatatoJpegFile(diff,length,&infile);
															   //AC編碼
while(AcCount<64)
{
		if (q_array[AcCount/8][AcCount%8]==0)
		{
			AcCount++;
			ZeroCount++;
			if (AcCount==64)
			{
				PutDatatoJpegFile(accoder[0][0],acbit[0][0],&infile);
			}
		}
		else
		{
			while (ZeroCount>=16)
			{
				PutDatatoJpegFile(accoder[15][0],acbit[15][0],&infile);
				ZeroCount-=16;
			}
			flag=0;
			diff=q_array[AcCount/8][AcCount%8];
			if (diff<0)
			{
				diff=-diff;
				flag=1;
			}
			length=GetLength(diff);
			if (flag==1)
			{
				diff=two[length]-1-diff;
			}
	PutDatatoJpegFile(accoder[ZeroCount][length],acbit[ZeroCount][length],&infile);
		PutDatatoJpegFile(diff,length,&infile);
		AcCount++;
		ZeroCount=0;
	}
}

//////////////////////////////Y2/////////////////////////////////////////

flag=0;
for(i=0;i<8;i++)
for(j=0;j<8;j++)
	p_array[i][j]=cha_y[x*16+8+j][y*16+i];
	ffdct(&p_array[0][0],&dct_array[0][0]);
	iztransfer(&dct_array[0][0]);
	qdata(&dct_array[0][0],&q_array[0][0],5);
																//DC編碼
	diff=q_array[0][0]-ydc;
	ydc=q_array[0][0];
if(diff<0)
{
	diff=-diff;
	flag=1;
}
length=GetLength(diff);
if(flag==1)
{
	diff=two[length]-1-diff;
}
PutDatatoJpegFile(dccoder[length],dcbit[length],&infile);
PutDatatoJpegFile(diff,length,&infile);
														   //AC編碼
AcCount=1;ZeroCount=0;
while(AcCount<64)
{
	if (q_array[AcCount/8][AcCount%8]==0)
	{
		AcCount++;
		ZeroCount++;
		if (AcCount==64)
		{
			PutDatatoJpegFile(accoder[0][0],acbit[0][0],&infile);
		}
	}
	else
	{
		while (ZeroCount>=16)
		{
			PutDatatoJpegFile(accoder[15][0],acbit[15][0],&infile);
			ZeroCount-=16;
		}
		flag=0;
		diff=q_array[AcCount/8][AcCount%8];
		if (diff<0)
		{
			diff=-diff;
			flag=1;
		}
		length=GetLength(diff);
		if (flag==1)
		{
			diff=two[length]-1-diff;
		}
	PutDatatoJpegFile(accoder[ZeroCount][length],acbit[ZeroCount][length],&infile);
	PutDatatoJpegFile(diff,length,&infile);
	AcCount++;
	ZeroCount=0;
	}
}

//////////////////////////////Y3/////////////////////////////////////////

flag=0;
for(i=0;i<8;i++)
for(j=0;j<8;j++)
	p_array[i][j]=cha_y[x*16+j][y*16+8+i];
	ffdct(&p_array[0][0],&dct_array[0][0]);
	iztransfer(&dct_array[0][0]);
	qdata(&dct_array[0][0],&q_array[0][0],5);
																	//DC編碼
	diff=q_array[0][0]-ydc;
	ydc=q_array[0][0];
	if(diff<0)
	{
		diff=-diff;
		flag=1;
	}
	length=GetLength(diff);
	if(flag==1)
	{
		diff=two[length]-1-diff;
	}
	PutDatatoJpegFile(dccoder[length],dcbit[length],&infile);
	PutDatatoJpegFile(diff,length,&infile);
																	//AC編碼
	AcCount=1;ZeroCount=0;
while(AcCount<64)
{
		if (q_array[AcCount/8][AcCount%8]==0)
		{
			AcCount++;
			ZeroCount++;
			if (AcCount==64)
			{
				PutDatatoJpegFile(accoder[0][0],acbit[0][0],&infile);
			}
	}
	else
	{
		while (ZeroCount>=16)
		{
			PutDatatoJpegFile(accoder[15][0],acbit[15][0],&infile);
			ZeroCount-=16;
		}
		flag=0;
		diff=q_array[AcCount/8][AcCount%8];
		if (diff<0)
		{
			diff=-diff;
			flag=1;
		}
		length=GetLength(diff);
		if (flag==1)
		{
			diff=two[length]-1-diff;
		}
	PutDatatoJpegFile(accoder[ZeroCount][length],acbit[ZeroCount][length],&infile);
		PutDatatoJpegFile(diff,length,&infile);
		AcCount++;
		ZeroCount=0;
	}
}

//////////////////////////////Y4/////////////////////////////////////////

flag=0;
for(i=0;i<8;i++)
for(j=0;j<8;j++)
	p_array[i][j]=cha_y[x*16+8+j][y*16+8+i];
	ffdct(&p_array[0][0],&dct_array[0][0]);
	iztransfer(&dct_array[0][0]);
	qdata(&dct_array[0][0],&q_array[0][0],5);
																	//DC編碼
	diff=q_array[0][0]-ydc;
	ydc=q_array[0][0];
	if(diff<0)
	{
		diff=-diff;
		flag=1;
	}
	length=GetLength(diff);
	if(flag==1)
	{
		diff=two[length]-1-diff;
	}
	PutDatatoJpegFile(dccoder[length],dcbit[length],&infile);
	PutDatatoJpegFile(diff,length,&infile);
																	//AC編碼
	AcCount=1;ZeroCount=0;
	while(AcCount<64)
	{
		if (q_array[AcCount/8][AcCount%8]==0)
		{
			AcCount++;
			ZeroCount++;
			if (AcCount==64)
			{
				PutDatatoJpegFile(accoder[0][0],acbit[0][0],&infile);
			}
		}
		else
		{
			while (ZeroCount>=16)
			{
				PutDatatoJpegFile(accoder[15][0],acbit[15][0],&infile);
				ZeroCount-=16;
			}
			flag=0;
			diff=q_array[AcCount/8][AcCount%8];
			if (diff<0)
			{
				diff=-diff;
				flag=1;
			}
			length=GetLength(diff);
			if (flag==1)
			{
				diff=two[length]-1-diff;
			}
	PutDatatoJpegFile(accoder[ZeroCount][length],acbit[ZeroCount][length],&infile);
		PutDatatoJpegFile(diff,length,&infile);
		AcCount++;
		ZeroCount=0;
	}
}

//////////////////////////////U色度/////////////////////////////////////

flag=0;
for(i=0;i<8;i++)
for(j=0;j<8;j++)
	p_array[i][j]=cha_u[x*8+j][y*8+i];
	ffdct(&p_array[0][0],&dct_array[0][0]);
	iztransfer(&dct_array[0][0]);
	quvdata(&dct_array[0][0],&q_array[0][0],5);
																	//DC編碼
	diff=q_array[0][0]-udc;
	udc=q_array[0][0];
if(diff<0)
{
	diff=-diff;
	flag=1;
}
length=GetLength(diff);
if(flag==1)
{
	diff=two[length]-1-diff;
}
PutDatatoJpegFile(dccoder2[length],dcbit2[length],&infile);
PutDatatoJpegFile(diff,length,&infile);
																	//AC編碼
AcCount=1;ZeroCount=0;
while(AcCount<64)
{
	if (q_array[AcCount/8][AcCount%8]==0)
	{
		AcCount++;
		ZeroCount++;
		if (AcCount==64)
		{
			PutDatatoJpegFile(accoder2[0][0],acbit2[0][0],&infile);
		}
	}
	else
	{
		while (ZeroCount>=16)
		{
			PutDatatoJpegFile(accoder2[15][0],acbit2[15][0],&infile);
			ZeroCount-=16;
		}
		flag=0;
		diff=q_array[AcCount/8][AcCount%8];
		if (diff<0)
		{
			diff=-diff;
			flag=1;
		}
		length=GetLength(diff);
		if (flag==1)
		{
			diff=two[length]-1-diff;
		}
	PutDatatoJpegFile(accoder2[ZeroCount][length],acbit2[ZeroCount][length],&infile);
	PutDatatoJpegFile(diff,length,&infile);
	AcCount++;
	ZeroCount=0;
	}
}

//////////////////////////////V方向//////////////////////////////////////

flag=0;
for(i=0;i<8;i++)
for(j=0;j<8;j++)
	p_array[i][j]=cha_v[x*8+j][y*8+i];
	ffdct(&p_array[0][0],&dct_array[0][0]);
	iztransfer(&dct_array[0][0]);
	quvdata(&dct_array[0][0],&q_array[0][0],5);
																	//DC編碼
	diff=q_array[0][0]-vdc;
	vdc=q_array[0][0];
if(diff<0)
{
	diff=-diff;
	flag=1;
}
length=GetLength(diff);
if(flag==1)
{
	diff=two[length]-1-diff;
}
PutDatatoJpegFile(dccoder2[length],dcbit2[length],&infile);
PutDatatoJpegFile(diff,length,&infile);
																	//AC編碼
AcCount=1;ZeroCount=0;
while(AcCount<64)
{
	if (q_array[AcCount/8][AcCount%8]==0)
	{
		AcCount++;
		ZeroCount++;
		if (AcCount==64)
		{
			PutDatatoJpegFile(accoder2[0][0],acbit2[0][0],&infile);
		}
	}
	else
	{
		while (ZeroCount>=16)
		{
			PutDatatoJpegFile(accoder2[15][0],acbit2[15][0],&infile);
			ZeroCount-=16;
		}
		flag=0;
		diff=q_array[AcCount/8][AcCount%8];
		if (diff<0)
		{
			diff=-diff;
			flag=1;
		}
		length=GetLength(diff);
		if (flag==1)
		{
			diff=two[length]-1-diff;
		}
	PutDatatoJpegFile(accoder2[ZeroCount][length],acbit2[ZeroCount][length],&infile);
		PutDatatoJpegFile(diff,length,&infile);
		AcCount++;
		ZeroCount=0;
		}
	}
}
void C_vMain(void)
{
	LINT32 i,j;
	LINT8 x;
	#ifdef DEBUG
		put_string("Load...\n");
		put_char('\n');
	#endif
	len2huff(dclength,&dhuffdc,&xhuffdc,(LINT8*)dcval);
	len2huff(aclength,&dhuff,&xhuff,(LINT8*)acval);
	len2huff(dclength2,&dhuffdc2,&xhuffdc2,(LINT8*)dcval2);
	len2huff(aclength2,&dhuff2,&xhuff2,(LINT8*)acval2);
	#ifdef DEBUG
		put_string("Start...\n");
	#endif
	for(i=0;i<16;i++)
	for(j=0;j<11;j++)
	{
		accoder[i][j]=0;
		acbit[i][j]=0;
	}
	for(i=0;i<16;i++)
	{
		for(j=0;j<dhuff.maxcode[i]-dhuff.mincode[i]+1;j++)
		{
			if(dhuff.valptr[i]!=-1)
			{
				x=acval[dhuff.valptr[i]+j];
				accoder[x/16][x%16]=dhuff.mincode[i]+j;
				acbit[x/16][x%16]=i+1;
			}
		}
	}
	#ifdef DEBUG
		put_string("Step1...\n");
	#endif
	for(i=0;i<16;i++)
	for(j=0;j<11;j++)
	{
		accoder2[i][j]=0;
		acbit2[i][j]=0;
	}
	for(i=0;i<16;i++)
	{
		for(j=0;j<dhuff2.maxcode[i]-dhuff2.mincode[i]+1;j++)
		{
			if(dhuff2.valptr[i]!=-1)
			{
				x=acval2[dhuff2.valptr[i]+j];
				accoder2[x/16][x%16]=dhuff2.mincode[i]+j;
				acbit2[x/16][x%16]=i+1;
			}
		}
	}
	MakeCt();
	readfile();
	for(j=0;j<18;j++)
	{
		for(i=0;i<22;i++)
		{
			mcugen(i,j);
		}
	}
	writefile(&infile);
	#ifdef DEBUG
		put_string("Done!\n");
		while(1);
	#endif
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区久久久| 日韩国产精品久久| 欧美一级黄色大片| 不卡的av电影| 另类综合日韩欧美亚洲| 中文字幕精品一区二区三区精品| 欧美熟乱第一页| 国产白丝网站精品污在线入口| 亚洲成人免费电影| 亚洲女同一区二区| 国产三级精品视频| 日韩一二三四区| 欧美日韩免费在线视频| 成人综合婷婷国产精品久久| 日韩不卡一区二区| 亚洲免费av高清| 国产日韩精品久久久| 欧美一卡2卡3卡4卡| 91视频com| 国产精品99久| 激情综合色综合久久| 亚洲综合色自拍一区| 国产精品视频线看| 欧美精品一区二区在线观看| 欧美精品一级二级三级| 色综合一个色综合| 99麻豆久久久国产精品免费优播| 黄色日韩三级电影| 久久精品国产亚洲一区二区三区 | 欧美日产在线观看| 91亚洲国产成人精品一区二三| 国产乱子伦一区二区三区国色天香| 亚洲成人精品影院| 一区二区在线看| 亚洲另类在线制服丝袜| 亚洲视频免费在线观看| 国产精品传媒视频| 欧美国产在线观看| 欧美国产视频在线| 国产精品日日摸夜夜摸av| 久久久一区二区三区捆绑**| 欧美白人最猛性xxxxx69交| 91精品国产综合久久久久久久 | 国产精品美女久久久久aⅴ| 久久免费国产精品| 国产日韩亚洲欧美综合| 国产精品卡一卡二卡三| 亚洲欧洲色图综合| 亚洲综合男人的天堂| 亚洲一区二区三区在线| 亚洲成人手机在线| 日av在线不卡| 国模冰冰炮一区二区| 国产激情偷乱视频一区二区三区| 国产福利精品一区二区| av在线播放一区二区三区| 一本在线高清不卡dvd| 91国产精品成人| 69av一区二区三区| 久久综合久久鬼色| 国产精品拍天天在线| 亚洲欧洲精品成人久久奇米网| 亚洲欧洲一区二区在线播放| 亚洲美腿欧美偷拍| 亚洲成人激情av| 久久国产精品99精品国产| 国产曰批免费观看久久久| 国产91精品一区二区| 91亚洲精品久久久蜜桃| 欧美美女喷水视频| 精品成人一区二区三区四区| 亚洲国产精品av| 亚洲一区日韩精品中文字幕| 日韩av电影天堂| 国产·精品毛片| 欧美视频在线不卡| 久久一二三国产| 亚洲精品成人a在线观看| 久久精品99国产国产精| 99天天综合性| 欧美剧在线免费观看网站| 精品国产在天天线2019| 国产精品久久99| 日本免费在线视频不卡一不卡二| 国产一区二区三区免费看| 色素色在线综合| 欧美大片在线观看一区| 1区2区3区精品视频| 日本强好片久久久久久aaa| 国产成人午夜高潮毛片| 欧美日韩一区二区不卡| 久久精品人人做人人爽人人| 夜夜精品浪潮av一区二区三区| 久久66热偷产精品| 在线视频你懂得一区二区三区| 日韩精品中文字幕在线不卡尤物| 中文字幕一区二区三区不卡| 久久精品国产亚洲一区二区三区 | 精品久久久久久久一区二区蜜臀| 亚洲欧美综合网| 国产一区二区三区久久久| 欧美日韩一二三| 国产精品视频在线看| 久久99久久久欧美国产| 在线免费观看日韩欧美| 国产日韩欧美精品在线| 美女一区二区三区在线观看| 色屁屁一区二区| 中文字幕乱码日本亚洲一区二区| 日韩精品国产精品| 色狠狠一区二区三区香蕉| 久久久久久久久97黄色工厂| 日韩成人一区二区三区在线观看| 91色婷婷久久久久合中文| 国产欧美日韩在线| 精品一区二区三区视频在线观看 | 天天亚洲美女在线视频| 91一区二区三区在线观看| 国产欧美视频一区二区三区| 久久狠狠亚洲综合| 91精品中文字幕一区二区三区| 亚洲欧美韩国综合色| 99久久精品情趣| 国产欧美精品区一区二区三区 | 成人美女视频在线观看| 精品理论电影在线观看| 免费在线观看一区二区三区| 欧美日韩一本到| 香蕉加勒比综合久久| 色婷婷亚洲一区二区三区| 综合色中文字幕| av一区二区不卡| 国产精品久久久久久久久果冻传媒 | 欧美亚洲一区二区在线| 最新久久zyz资源站| 懂色av一区二区三区蜜臀| 国产午夜精品一区二区三区四区| 加勒比av一区二区| www久久久久| 国产精品一级二级三级| 久久久精品综合| 国产成人精品亚洲日本在线桃色| 2020国产精品自拍| 国产成人h网站| 日本一区二区三区国色天香| 粉嫩久久99精品久久久久久夜| 日本一区二区综合亚洲| 成人av资源站| 亚洲精品视频观看| 欧美片在线播放| 免费在线观看成人| 久久久亚洲精华液精华液精华液 | 日韩精品色哟哟| 日韩欧美国产精品| 国产综合色在线| 国产精品乱码人人做人人爱 | 亚洲柠檬福利资源导航| 在线免费av一区| 美腿丝袜在线亚洲一区| 精品久久久网站| 99久久99久久免费精品蜜臀| 一区二区三区不卡视频在线观看| 在线观看日韩精品| 日本系列欧美系列| 中文字幕国产一区| 欧美性大战久久| 麻豆精品视频在线观看视频| 久久久精品人体av艺术| 91理论电影在线观看| 五月开心婷婷久久| 欧美精品一区二区三区很污很色的| 国产激情一区二区三区四区| 亚洲激情图片一区| 欧美成人r级一区二区三区| 丁香婷婷综合五月| 午夜精品成人在线视频| 久久久久久久久99精品| 在线观看免费视频综合| 精品一区二区精品| 亚洲精品久久久蜜桃| 日韩免费一区二区| 99精品欧美一区二区三区小说| 日韩经典一区二区| 国产精品久久久久久久久免费丝袜 | voyeur盗摄精品| 日本不卡免费在线视频| 国产精品第13页| 精品国产1区2区3区| 91丝袜美女网| 久草精品在线观看| 亚洲一区在线观看免费观看电影高清| 精品国产一区二区在线观看| 色一情一伦一子一伦一区| 久久99国产精品成人| 亚洲午夜久久久久久久久电影网| 国产亚洲美州欧州综合国 | 国产精品无码永久免费888| 欧美久久久久中文字幕| 一本色道亚洲精品aⅴ| 国产精品羞羞答答xxdd|