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

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

?? doublecode.cpp

?? 改進(jìn)的JPEG-LS算法
?? CPP
字號(hào):
#include "stdafx.h"
#include <math.h>
#include "DoubleCode.h"
/*
				關(guān)于行尾大誤差數(shù)的編碼規(guī)則


  概率模型: <1>各象素相互獨(dú)立,<2>每象素是大誤差的概率為 p

  模型估計(jì): 主要是估計(jì) p 值,定初值為 1/8,每行編碼結(jié)束時(shí)累計(jì)象素?cái)?shù)(PixN)與大誤差數(shù)(ErrN),p=ErrN/PixN
			實(shí)際使用值為 DoubleN=(PixN*16)/ErrN 意義是每(DoubleN/16)象素中含有一個(gè)大誤差,
			*16 目的是提高精度

  二項(xiàng)分布的半概率點(diǎn)確定:
			設(shè)某行尾累積待檢大誤差的象素?cái)?shù)為 N, 已檢出大誤差數(shù)為 en, 半概率點(diǎn)位置在 K
			K=(N*16+[DoubleN/4])/DoubleN 

  半概率點(diǎn)所在區(qū)寬度確定:
			此寬度由半概率點(diǎn) K 決定, 由于函數(shù)關(guān)系不好列出, 采用查表方法, 建立對(duì)應(yīng)表.

  編碼過(guò)程: <1> 由象素?cái)?shù) N 和概率倒數(shù)值 DoubleN, 求 K 值.
			<2> 由 K 值求 Huffman編碼的寬度表.
			<3> 檢測(cè)待編碼的大誤差象素?cái)?shù)所處的區(qū)間, 并編出首碼(0...01)0的個(gè)數(shù)是區(qū)間號(hào).以1比特表示上下區(qū).
			<4> 根據(jù)區(qū)間的位置與寬度, 編碼大誤差數(shù)在區(qū)間的精確位置, 采用Huffman編碼, 這是尾碼部分.
			<5> 更新PixN、ErrN值.

  補(bǔ)充: 構(gòu)造不同項(xiàng)數(shù)的 Huffman 碼表, 概率是按大到小排隊(duì)的, 但相差并不大, 這個(gè)表在幾何分布的編碼中也可用.
		HuffcodingBit[6][7]存放碼表, HuffcodingL[6][7]存放碼長(zhǎng), 大于等于8時(shí)用自然二進(jìn) 

*/
CDoubleErrorNumberFastCoding::CDoubleErrorNumberFastCoding()
{
		Init();
		Reset();
}
void CDoubleErrorNumberFastCoding::Reset()
{
		PixN=8;
		ErrN=1;//初始概率1/8
		BitNumber=0;
}
void CDoubleErrorNumberFastCoding::Init()
{
		int i;

		UsingBinaryCode=FALSE;

		for(i=0;i<PART_WIDTH1_HALF_PROBABILITY_FAST_SEAT;i++){PartW[i]=1;PartBit[i]=0;}
		for(;i<PART_WIDTH2_HALF_PROBABILITY_FAST_SEAT;i++){PartW[i]=2;PartBit[i]=1;}
		for(;i<PART_WIDTH4_HALF_PROBABILITY_FAST_SEAT;i++){PartW[i]=4;PartBit[i]=2;}
		for(;i<PART_WIDTH8_HALF_PROBABILITY_FAST_SEAT;i++){PartW[i]=8;PartBit[i]=3;}

}
int/*返回編碼比持?jǐn)?shù)*/ CDoubleErrorNumberFastCoding::OneEncodePass(int Number/*總象素?cái)?shù)*/,int ErrorN/*待編碼的大誤差數(shù)*/,LPBYTE lpCodeBit,int Bitcp)
{
/*  編碼過(guò)程: <1> 由象素?cái)?shù) N 和概率倒數(shù)值 DoubleN, 求 K 值.
			  <2> 由 K 值求區(qū)間寬度和區(qū)間內(nèi)編碼比特?cái)?shù).
			  <3> 檢測(cè)待編碼的大誤差象素?cái)?shù)所處的區(qū)間, 并編出首碼(0...01)0的個(gè)數(shù)是區(qū)間號(hào).以1比特表示上下區(qū).
			  <4> 根據(jù)區(qū)間的位置與寬度, 編碼大誤差數(shù)在區(qū)間的精確位置, 這是尾碼部分.
			  <5> 更新PixN、ErrN值.
*/
		int DoubleN=(PixN<<4)/ErrN;
		int W,Code,D,d,n,CodeL,N,K,bitn;
		N=Number;
// <1> 由象素?cái)?shù) N 和概率倒數(shù)值 DoubleN, 求 K 值.
		if(UsingBinaryCode==FALSE)K=((N<<4)+(DoubleN>>2))/DoubleN;
		else K=MAX_HALF_PROBABILITY_FAST_SEAT+1;
		if(K<=MAX_HALF_PROBABILITY_FAST_SEAT)
		{//采用二項(xiàng)分布快速編碼
 //<2> 由 K 值求區(qū)間寬度和區(qū)間內(nèi)編碼比特?cái)?shù).
			W=PartW[K];
			bitn=PartBit[K];
			if(K<1)
			{
				if(ErrorN<MAX_0_NUMBER){Code=1<<ErrorN;CodeL=ErrorN+1;}
				else
				{//采用自然二進(jìn)制編碼
					for(n=0;n<14&&(1<<n)<Number;n++);
					Code=(1<<MAX_0_NUMBER)|(ErrorN<<(MAX_0_NUMBER+1));
					CodeL=MAX_0_NUMBER+1+n;
				}
			}
			else
			{
				if(ErrorN>=K)
				{
					D=ErrorN-K;
//<3> 檢測(cè)待編碼的大誤差象素?cái)?shù)所處的區(qū)間, 并編出首碼(0...01)0的個(gè)數(shù)是區(qū)間號(hào).以1比特表示上下區(qū).
					n=D/W;
					d=D%W;
					if(n<MAX_0_NUMBER)
					{
						Code=(3<<n);CodeL=n+2;//包含上下位區(qū)間的指示比特1
						Code|=d<<CodeL;
						CodeL+=bitn;
					}
					else
					{//采用自然二進(jìn)制編碼
						for(n=0;n<14&&(1<<n)<Number;n++);
						Code=(1<<MAX_0_NUMBER)|(ErrorN<<(MAX_0_NUMBER+1));
						CodeL=MAX_0_NUMBER+1+n;
					}
				}
				else
				{
					D=K-1-ErrorN;//K值本身是在下區(qū)間編碼的,上區(qū)間將不含它
//<3> 檢測(cè)待編碼的大誤差象素?cái)?shù)所處的區(qū)間, 并編出首碼(0...01)0的個(gè)數(shù)是區(qū)間號(hào).以1比特表示上下區(qū).
					n=D/W;
					d=D%W;
					if(n<MAX_0_NUMBER)
					{
						Code=(1<<n);CodeL=n+2;//包含上下位區(qū)間的指示比特1
						Code|=d<<CodeL;
						CodeL+=bitn;
					}
					else
					{//采用自然二進(jìn)制編碼
							for(n=0;n<14&&(1<<n)<Number;n++);
							Code=(1<<MAX_0_NUMBER)|(ErrorN<<(MAX_0_NUMBER+1));
							CodeL=MAX_0_NUMBER+1+n;
					}
				}
			}
		}
		else
		{//采用自然二進(jìn)制編碼
			for(n=0;n<14&&(1<<n)<Number;n++);Code=ErrorN;CodeL=n;
		}
 //<5> 更新PixN、ErrN值.
		PixN+=N;
		ErrN+=ErrorN;
		if(PixN>0x1000000)
		{
			PixN>>=1;
			ErrN>>=1;
		}
		if((Bitcp&7)+CodeL<32)(*((int *)(lpCodeBit+(Bitcp>>3))))|=(Code<<(Bitcp&7));
		else 
		{
			(*((int *)(lpCodeBit+(Bitcp>>3))))|=((Code&0xff)<<(Bitcp&7));
			(*((int *)(lpCodeBit+(Bitcp>>3)+1)))|=((Code>>8)<<(Bitcp&7));
		}
		BitNumber+=CodeL;
		return CodeL;
}
int/*返回大誤差數(shù)*/ CDoubleErrorNumberFastCoding::OneDecodePass(int Number/*總象素?cái)?shù)*/,LPBYTE lpCodeBit/*碼流指針*/,int Bitcp/*碼流比特位*/,int &CodeL)
{
		int DoubleN;
		int W,n,ErrorN,ZeroN;//初始區(qū)間寬度
		int N,K,bitn;
		N=Number;
		int UpDown;
		if(ErrN>0)DoubleN=(PixN<<4)/ErrN;//<<4是統(tǒng)一乘以16,提高精度,最后再統(tǒng)一除以16。
		else DoubleN=(PixN<<4);
// <1> 由象素?cái)?shù) N 和概率倒數(shù)值 DoubleN, 求 K 值.
		if(UsingBinaryCode==FALSE)K=((N<<4)+(DoubleN>>2))/DoubleN;
		else K=MAX_HALF_PROBABILITY_FAST_SEAT+1;
		if(K<=MAX_HALF_PROBABILITY_FAST_SEAT)
		{//采用二項(xiàng)分布譯碼
 //<2> 由 K 值求 Huffman編碼的寬度表.
			W=PartW[K];
			bitn=PartBit[K];
			ZeroN=ReturnZeroBitNumber(lpCodeBit,Bitcp);
			if(K<1)
			{
				if(ZeroN<MAX_0_NUMBER){ErrorN=ZeroN;CodeL=ErrorN+1;}
				else
				{//采用自然二進(jìn)制譯碼
					for(n=0;n<14&&(1<<n)<Number;n++);
					ErrorN=GetFromBitStream(lpCodeBit,Bitcp+MAX_0_NUMBER+1,n);
					CodeL=MAX_0_NUMBER+1+n;
				}
			}
			else
			{
				UpDown=GetFromBitStream(lpCodeBit,Bitcp+ZeroN+1,1);
				CodeL=ZeroN+2;
				if(UpDown)
				{
//<3> 檢測(cè)待編碼的大誤差象素?cái)?shù)所處的區(qū)間, 并編出首碼(0...01)0的個(gè)數(shù)是區(qū)間號(hào).以1比特表示上下區(qū).
					if(ZeroN<MAX_0_NUMBER)
					{//在編碼允許范圍內(nèi),0 的個(gè)數(shù)就是跳過(guò)的區(qū)間數(shù)
						ErrorN=K+ZeroN*W+GetFromBitStream(lpCodeBit,Bitcp+CodeL,bitn);
						CodeL+=bitn;
					}
					else
					{//采用自然二進(jìn)制譯碼
						for(n=0;n<14&&(1<<n)<Number;n++);
						ErrorN=GetFromBitStream(lpCodeBit,Bitcp+MAX_0_NUMBER+1,n);
						CodeL=MAX_0_NUMBER+1+n;
					}
				}
				else
				{
//<3> 檢測(cè)待編碼的大誤差象素?cái)?shù)所處的區(qū)間, 并編出首碼(0...01)0的個(gè)數(shù)是區(qū)間號(hào).以1比特表示上下區(qū).
					if(ZeroN<MAX_0_NUMBER)
					{//在編碼允許范圍內(nèi),0 的個(gè)數(shù)就是跳過(guò)的區(qū)間數(shù)
						ErrorN=K-1-ZeroN*W-GetFromBitStream(lpCodeBit,Bitcp+CodeL,bitn);
						CodeL+=bitn;
					}
					else
					{//采用自然二進(jìn)制譯碼
							for(n=0;n<14&&(1<<n)<Number;n++);
							ErrorN=GetFromBitStream(lpCodeBit,Bitcp+MAX_0_NUMBER+1,n);
							CodeL=MAX_0_NUMBER+1+n;
					}
				}
			}
		}
		else
		{
			for(n=0;n<14&&(1<<n)<Number;n++);
			ErrorN=GetFromBitStream(lpCodeBit,Bitcp,n);
			CodeL=n;
		}
 //<5> 更新PixN、ErrN值.
		PixN+=N;
		ErrN+=ErrorN;
		if(PixN>0x1000000)
		{
			PixN>>=1;
			ErrN>>=1;
		}
		return ErrorN;
}
int CDoubleErrorNumberFastCoding::ReturnZeroBitNumber(LPBYTE lpCodeStream,int CodeBitcp)
{//在當(dāng)前的碼流位置上,檢查連續(xù)'0'的個(gè)數(shù)。
		int a,i,j;
		a=(*((int *)(lpCodeStream+(CodeBitcp>>3)))>>(CodeBitcp&7))&0xffffff;
		if(a==0)
		{
			i=24;
			a=(*((int *)(lpCodeStream+(CodeBitcp>>3)+3))>>(CodeBitcp&7))&0xffffff;
			if(a==0)
			{
				i+=24;
				a=(*((int *)(lpCodeStream+(CodeBitcp>>3)+6))>>(CodeBitcp&7))&0xffffff;
				for(j=1;(a&j)==0&&j<0x1000000;j<<=1,i++);
			}
			else for(j=1;(a&j)==0&&j<0x1000000;j<<=1,i++);
		}
		else for(j=1,i=0;(a&j)==0&&j<0x1000000;j<<=1,i++);
		return i;
}
int CDoubleErrorNumberFastCoding::GetFromBitStream(LPBYTE lpCodeStream,int CodeBitcp,int b)
{//在當(dāng)前的碼流位置上取出 b  比特,比特放入低位作為返回值。一般不能大24比特。
		return (*((int *)(lpCodeStream+(CodeBitcp>>3)))>>(CodeBitcp&7))&~((-1)<<b);
}
/*
				關(guān)于行尾大誤差游程的編碼規(guī)則


  概率模型: <1>各象素相互獨(dú)立,<2>每象素是大誤差的概率為 p,<3> 0 游程長(zhǎng)為l時(shí)的概率為p*(1-p)^l

  模型估計(jì): 主要是估計(jì) p 值, 設(shè)象素?cái)?shù)為 N, 大誤差數(shù)為 en, p=en/N, 每編碼一個(gè)大誤差en與N各減1,

  幾何分布的半概率點(diǎn)確定:
			編碼區(qū)間寬度的估算 K=(N*log2)/en, (log2可以轉(zhuǎn)化為兩個(gè)整數(shù)的比值),
			當(dāng) K>8 時(shí), K 取最小的大于K的2冪

  編碼過(guò)程: <1> 由象素?cái)?shù) N 和大誤差數(shù) en, 求 K 值.
			<2> 檢測(cè)待編碼的大誤差游程所處的區(qū)間, 并編出首碼(0...01)0的個(gè)數(shù)是區(qū)間號(hào).以1比特表示大誤差的符號(hào).
			<3> 根據(jù)區(qū)間的寬度, 編碼大誤差數(shù)在區(qū)間的精確位置, 采用Huffman編碼, 這是尾碼部分.
			<4> 更新N、en值.

  補(bǔ)充: 構(gòu)造不同項(xiàng)數(shù)的 Huffman 碼表, 概率是按大到小排隊(duì)的, 但相差并不大, 這個(gè)表在幾何分布的編碼中也可用.
		HuffcodingBit[8][8]存放碼表, HuffcodingL[8][8]存放碼長(zhǎng), 大于等于8時(shí)用自然二進(jìn) 
*/
CDoubleErrorRunFastCoding::CDoubleErrorRunFastCoding()
{
		Init();
		Reset();
}
void CDoubleErrorRunFastCoding::Reset()
{
		BitNumber=0;
}
void CDoubleErrorRunFastCoding::Init()
{
		UsingBinaryCode=FALSE;
}
int CDoubleErrorRunFastCoding::GetHalfProbabilityWidth(int Number,int ErrorN,int &Bitn)
{
//		int W=(int)((Number*log(2))/ErrorN);
//		int W=(Number*69314)/ErrorN/100000;
		int W=(Number*709)/ErrorN/1024;
		for(Bitn=0;(1<<Bitn)<W;Bitn++);
		if(W<(1<<Bitn)&&Bitn>1)Bitn--;
		W=(1<<Bitn);
		return W;
}
int/*返回編碼比持?jǐn)?shù)*/ CDoubleErrorRunFastCoding::OneEncodePass(int Number/*總象素?cái)?shù)*/,
															int ErrorN/*待編碼的大誤差數(shù)*/,
															int RunL,
															LPBYTE lpCodeBit,int Bitcp)
{
/*  編碼過(guò)程: <1> 由象素?cái)?shù) N 和大誤差數(shù) en, 求 K 值.
			  <2> 檢測(cè)待編碼的大誤差游程所處的區(qū)間, 并編出首碼(0...01)0的個(gè)數(shù)是區(qū)間號(hào).以1比特表示大誤差的符號(hào).
			  <3> 根據(jù)區(qū)間的寬度, 編碼大誤差數(shù)在區(qū)間的精確位置, 采用Huffman編碼, 這是尾碼部分.
			  <4> 更新N、en值.
*/
		if(ErrorN<=0||Number<ErrorN)return 0;
		int W,Code,n,CodeL,Bitn,ZeroN,Seat;//初始區(qū)間寬度
// <1> 由象素?cái)?shù) N 和大誤差數(shù) en, 求 W 值.
		if(UsingBinaryCode==FALSE)W=GetHalfProbabilityWidth(Number,ErrorN,Bitn);
		else W=MAX_HALF_PROBABILITY_FAST_WIDTH+1;
		if(W<1)W=1;
		if(W<=MAX_HALF_PROBABILITY_FAST_WIDTH)
		{//采用幾何分布編碼
			ZeroN=RunL/W;
			Seat=RunL%W;
//			for(ZeroN=0,Seat=RunL;Seat>=W;ZeroN++)
//			{
//				Seat-=W;
//				if(ZeroN>8)
//				{
//					W<<=1;
//					Bitn++;
//				}
//			}
			if(ZeroN<MAX_0_NUMBER)
			{
				Code=1<<ZeroN;
				CodeL=ZeroN+1;
				Code|=(Seat<<CodeL);
				CodeL+=Bitn;
			}
			else
			{//采用自然二進(jìn)制編碼
				for(n=0;n<14&&(1<<n)<Number;n++);
				Code=(1<<MAX_0_NUMBER)|(RunL<<(MAX_0_NUMBER+1));
				CodeL=MAX_0_NUMBER+1+n;
			}
		}
		else
		{//采用自然二進(jìn)制編碼
			for(n=0;n<14&&(1<<n)<Number;n++);Code=RunL;CodeL=n;
		}
 		if((Bitcp&7)+CodeL<32)(*((int *)(lpCodeBit+(Bitcp>>3))))|=(Code<<(Bitcp&7));
		else 
		{
			(*((int *)(lpCodeBit+(Bitcp>>3))))|=((Code&0xff)<<(Bitcp&7));
			(*((int *)(lpCodeBit+(Bitcp>>3)+1)))|=((Code>>8)<<(Bitcp&7));
		}
		BitNumber+=CodeL;
		return CodeL;
}
int/*返回大誤游程*/ CDoubleErrorRunFastCoding::OneDecodePass(int Number/*總象素?cái)?shù)*/,
													   int ErrorN/*待編碼的大誤差數(shù)*/,
													   LPBYTE lpCodeBit/*碼流指針*/,int Bitcp/*碼流比特位*/,
													   int &CodeL)
{
		if(ErrorN<=0||Number<ErrorN)return 0;
		int W,n,ZeroN,Seat,RunL,Bitn;//初始區(qū)間寬度
		if(UsingBinaryCode==FALSE)W=GetHalfProbabilityWidth(Number,ErrorN,Bitn);
		else W=MAX_HALF_PROBABILITY_FAST_WIDTH+1;
		if(W<1)W=1;
		if(W<=MAX_HALF_PROBABILITY_FAST_WIDTH)
		{//采用幾何分布譯碼
 //<2> 由 K 值求 Huffman編碼的寬度表.
			ZeroN=ReturnZeroBitNumber(lpCodeBit,Bitcp);
			if(ZeroN<MAX_0_NUMBER)
			{
				CodeL=ZeroN+1;
				RunL=ZeroN*W;
//				RunL=0;
//				if(ZeroN>0)for(n=0;n<ZeroN;n++)
//				{
//					RunL+=W;
//					if(n>8)
//					{
//						W<<=1;
//						Bitn++;
//					}
//				}
				Seat=GetFromBitStream(lpCodeBit,Bitcp+ZeroN+1,Bitn);
				RunL+=Seat;
				CodeL+=Bitn;
			}
			else
			{//采用自然二進(jìn)制譯碼
				for(n=0;n<14&&(1<<n)<Number;n++);
				RunL=GetFromBitStream(lpCodeBit,Bitcp+MAX_0_NUMBER+1,n);
				CodeL=MAX_0_NUMBER+1+n;
			}
		}
		else
		{
			for(n=0;n<14&&(1<<n)<Number;n++);
			RunL=GetFromBitStream(lpCodeBit,Bitcp,n);
			CodeL=n;
		}
		return RunL;
}
int CDoubleErrorRunFastCoding::ReturnZeroBitNumber(LPBYTE lpCodeStream,int CodeBitcp)
{//在當(dāng)前的碼流位置上,檢查連續(xù)'0'的個(gè)數(shù)。
		int a,i,j;
		a=(*((int *)(lpCodeStream+(CodeBitcp>>3)))>>(CodeBitcp&7))&0xffffff;
		if(a==0)
		{
			i=24;
			a=(*((int *)(lpCodeStream+(CodeBitcp>>3)+3))>>(CodeBitcp&7))&0xffffff;
			if(a==0)
			{
				i+=24;
				a=(*((int *)(lpCodeStream+(CodeBitcp>>3)+6))>>(CodeBitcp&7))&0xffffff;
				for(j=1;(a&j)==0&&j<0x1000000;j<<=1,i++);
			}
			else for(j=1;(a&j)==0&&j<0x1000000;j<<=1,i++);
		}
		else for(j=1,i=0;(a&j)==0&&j<0x1000000;j<<=1,i++);
		return i;
}
int CDoubleErrorRunFastCoding::GetFromBitStream(LPBYTE lpCodeStream,int CodeBitcp,int b)
{//在當(dāng)前的碼流位置上取出 b  比特,比特放入低位作為返回值。一般不能大24比特。
		return (*((int *)(lpCodeStream+(CodeBitcp>>3)))>>(CodeBitcp&7))&~((-1)<<b);
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区在线观看免费| 在线观看av一区| 老司机免费视频一区二区| 日韩中文字幕一区二区三区| 天堂精品中文字幕在线| 日韩av一区二区在线影视| 热久久国产精品| 老司机午夜精品| 国产精品一区一区| 国产91精品免费| 91小视频免费看| 欧美日韩精品一区二区三区| 欧美年轻男男videosbes| 91精品国产欧美一区二区成人| 91精品国产综合久久精品麻豆| 91精品国产综合久久婷婷香蕉 | 久久精品一区蜜桃臀影院| 久久久久久久久伊人| 国产精品热久久久久夜色精品三区| 欧美激情一区在线观看| 18欧美亚洲精品| 亚洲国产日韩一区二区| 日本aⅴ亚洲精品中文乱码| 国产一区二区h| 色综合久久中文综合久久97| 欧美日韩国产不卡| 精品福利一区二区三区| 国产精品久久毛片a| 又紧又大又爽精品一区二区| 青青青爽久久午夜综合久久午夜| 国产尤物一区二区| 91免费精品国自产拍在线不卡| 欧美性欧美巨大黑白大战| 日韩一区二区三区在线观看| 久久婷婷国产综合精品青草| 亚洲视频在线一区二区| 日精品一区二区| 春色校园综合激情亚洲| 欧美日韩久久久一区| 久久精品夜色噜噜亚洲aⅴ| 亚洲精品视频在线观看网站| 美女网站色91| 99精品国产视频| 日韩欧美中文字幕制服| 中文字幕一区二| 免费视频最近日韩| 99精品桃花视频在线观看| 91精品国产欧美一区二区18| 国产精品视频yy9299一区| 天堂成人免费av电影一区| 成人免费三级在线| 欧美一区二区三区免费大片| 国产精品欧美经典| 日韩高清欧美激情| 99视频国产精品| 日韩三级.com| 亚洲一区二区三区国产| 国产麻豆91精品| 欧美日韩一区二区三区不卡| 日本一区二区三级电影在线观看| 丝袜美腿一区二区三区| 91亚洲国产成人精品一区二三| 精品久久人人做人人爰| 亚洲大片在线观看| av在线免费不卡| 久久久精品免费免费| 男男视频亚洲欧美| 在线观看亚洲一区| 国产精品天干天干在观线| 日本大胆欧美人术艺术动态| 91原创在线视频| 亚洲国产成人自拍| 精品一区二区三区不卡| 欧美日韩在线电影| 一区二区三区四区不卡视频| 国产91精品一区二区麻豆网站| 日韩精品自拍偷拍| 午夜精品在线看| 欧美在线色视频| 亚洲三级在线免费观看| 成人性生交大片免费看中文网站| 精品捆绑美女sm三区| 日本欧美加勒比视频| 欧美精品三级在线观看| 亚洲精品国产精品乱码不99 | 日韩区在线观看| 视频一区中文字幕国产| 欧美性受极品xxxx喷水| 亚洲精品国产精品乱码不99 | 91精品久久久久久久久99蜜臂| 一区二区三区美女| 色一情一伦一子一伦一区| 最新国产精品久久精品| 成人av免费在线播放| 国产女主播视频一区二区| 国产成人在线视频网站| 久久精品免费在线观看| 国产福利精品一区二区| 国产日韩欧美综合一区| 国产一区二区三区视频在线播放| 日韩视频免费观看高清完整版在线观看| 日日摸夜夜添夜夜添国产精品 | 亚洲精品一二三| 色综合久久中文字幕| 一区二区免费在线播放| 91国偷自产一区二区开放时间 | 3d成人动漫网站| 日韩高清一级片| 欧美videossexotv100| 精品在线免费视频| 久久久99精品免费观看| 不卡大黄网站免费看| 亚洲私人影院在线观看| 欧美在线观看你懂的| 五月婷婷久久丁香| 日韩欧美在线影院| 国产精品羞羞答答xxdd| 18成人在线视频| 欧美日韩在线精品一区二区三区激情 | 亚洲国产精品t66y| 97久久精品人人澡人人爽| 亚洲免费三区一区二区| 精品视频在线看| 蜜臀av性久久久久蜜臀aⅴ流畅| 精品理论电影在线观看| 国产91露脸合集magnet| 一区二区三区精品视频| 91精品久久久久久久99蜜桃| 国产一区二区调教| 国产精品精品国产色婷婷| 91久久精品网| 卡一卡二国产精品 | 亚洲国产aⅴ成人精品无吗| 91精品国产91久久久久久一区二区| 国产成人aaa| 亚洲男同性恋视频| 538prom精品视频线放| 国产乱码精品1区2区3区| 日韩美女视频一区二区| 欧美久久久久中文字幕| 国产乱人伦偷精品视频不卡| 亚洲天堂免费在线观看视频| 8x福利精品第一导航| 成人av资源站| 青青草国产成人99久久| 国产精品欧美极品| 欧美顶级少妇做爰| 99久久久久久| 另类小说图片综合网| 亚洲激情图片qvod| 久久久久97国产精华液好用吗| 日本二三区不卡| 国产成人99久久亚洲综合精品| 亚洲高清不卡在线| 国产精品久久久久一区| 91精品麻豆日日躁夜夜躁| 99免费精品视频| 久久精品99国产精品| 一二三区精品视频| 国产亚洲精品福利| 91精品一区二区三区在线观看| av在线播放不卡| 久久狠狠亚洲综合| 亚洲一级二级三级在线免费观看| 久久亚洲一级片| 91麻豆精品久久久久蜜臀| av不卡在线播放| 国产老妇另类xxxxx| 日一区二区三区| 亚洲主播在线播放| 国产精品拍天天在线| 91.com在线观看| 欧美在线视频不卡| 97精品超碰一区二区三区| 国产一区二区福利| 美国三级日本三级久久99| 亚洲午夜精品久久久久久久久| 综合激情成人伊人| 久久久蜜桃精品| 日韩欧美国产电影| 777亚洲妇女| 欧美三级午夜理伦三级中视频| 91在线观看美女| www.av亚洲| 丁香桃色午夜亚洲一区二区三区| 久久精品国产亚洲5555| 香蕉成人啪国产精品视频综合网| 亚洲乱码国产乱码精品精小说| 蜜桃视频一区二区三区| 一区二区三区四区高清精品免费观看| 亚洲国产经典视频| 国产日韩欧美电影| 久久久久久麻豆| 久久综合国产精品| 2019国产精品| 2022国产精品视频| 久久久久国产精品厨房| 26uuu国产电影一区二区| 337p粉嫩大胆噜噜噜噜噜91av| 日韩一级免费观看|