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

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

?? motion_comp.c

?? 用MPEG-4對YUV視頻文件編碼壓縮成divx視頻文件
?? C
字號:
/* 01.05.2002   updated MBMotionCompensationBVOP */
/* 14.04.2002   bframe compensation */

#include "../encoder.h"
#include "../utils/mbfunctions.h"
#include "../image/interpolate8x8.h"
#include "../utils/timer.h"
#include "motion.h"

static __inline void
interpolate8x8_switch(uint8_t * const cur,
					  const uint8_t * const refn,
					  const uint32_t x,
					  const uint32_t y,
					  const int32_t dx,
					  const int dy,
					  const uint32_t stride,
					  const uint32_t rounding)
{
	int32_t ddx, ddy;

	switch (((dx & 1) << 1) + (dy & 1))	
	{
	case 0:
		/*ddx = dx / 2;
		ddy = dy / 2;*/
		ddx = DIV(dx,1);
        ddy = DIV(dy,1);

		transfer8x8_copy(cur + y * stride + x,
						 refn + (int)((y + ddy) * stride + x + ddx), stride);
		break;
 
	case 1:
		/*ddx = dx / 2;
		ddy = (dy - 1) / 2;*/
		ddx = DIV(dx,1);
        ddy = DIV(dy-1,1);

		interpolate8x8_halfpel_v(cur + y * stride + x,
								 refn + (int)((y + ddy) * stride + x + ddx), stride,
								 rounding);
		break;

	case 2:
		/*ddx = (dx - 1) / 2;
		ddy = dy / 2;*/
		ddx = DIV(dx-1,1);
        ddy = DIV(dy,1);

		interpolate8x8_halfpel_h(cur + y * stride + x,
								 refn + (int)((y + ddy) * stride + x + ddx), stride,
								 rounding);
		break;

	default:
		/*ddx = (dx - 1) / 2;
		ddy = (dy - 1) / 2;*/
		ddx = DIV(dx-1,1);
        ddy = DIV(dy-1,1);

		interpolate8x8_halfpel_hv(cur + y * stride + x,
								 refn + (int)((y + ddy) * stride + x + ddx), stride,
								  rounding);
		break;
	}
}

static __inline void
compensate8x8_halfpel(int16_t * const dct_codes,
					  uint8_t * const cur,
					  const uint8_t * const ref,
					  const uint8_t * const refh,
					  const uint8_t * const refv,
					  const uint8_t * const refhv,
					  const uint32_t x,
					  const uint32_t y,
					  const int32_t dx,
					  const int dy,
					  const uint32_t stride)
{
	int32_t ddx, ddy;

	switch (((dx & 1) << 1) + (dy & 1))	/*((dx%2)?2:0)+((dy%2)?1:0)   */
	{
	case 0:
		/*ddx = dx / 2;
		ddy = dy / 2;*/
		ddx = DIV(dx,1);
        ddy = DIV(dy,1);

		transfer_8to16sub(dct_codes, cur + y * stride + x,
						  ref + (int) ((y + ddy) * stride + x + ddx), stride);
		break;

	case 1:
		/*ddx = dx / 2;
		ddy = (dy - 1) / 2;*/
		ddx = DIV(dx,1);
        ddy = DIV(dy-1,1);

		transfer_8to16sub(dct_codes, cur + y * stride + x,
						  refv + (int) ((y + ddy) * stride + x + ddx), stride);
		break;

	case 2:
		/*ddx = (dx - 1) / 2;
		ddy = dy / 2;*/
		ddx = DIV(dx-1,1);
        ddy = DIV(dy,1);

		transfer_8to16sub(dct_codes, cur + y * stride + x,
						  refh + (int) ((y + ddy) * stride + x + ddx), stride);
		break;

	default:					/* case 3:  */
		/*ddx = (dx - 1) / 2;
		ddy = (dy - 1) / 2;*/
		ddx = DIV(dx-1,1);
        ddy = DIV(dy-1,1);

		transfer_8to16sub(dct_codes, cur + y * stride + x,
						  refhv + (int) ((y + ddy) * stride + x + ddx), stride);
		break;
	}
}
/*
extern uint32_t g_begin;
extern uint32_t g_interval;
*/
/*
2003.1.4 test
  no use _opt 22.10 ms/frame function cycles= 36520166
  use _opt    24.96 ms/frame function cycles= 44243169
*/

/*#define _opt*/

#ifndef _opt
void
MBMotionCompensation(MACROBLOCK * const mb,
					 const uint32_t i,
					 const uint32_t j,
					 const IMAGE * const ref,
					 const IMAGE * const refh,
					 const IMAGE * const refv,
					 const IMAGE * const refhv,
					 IMAGE * const cur,
					 int16_t * dct_codes,
					 const uint32_t width,
					 const uint32_t height,
					 const uint32_t edged_width,
					 const uint32_t rounding)
{
	static const uint32_t roundtab[16] =
		{ 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 };

     /*g_begin= CYCLES();*/

	if (mb->mode == MODE_INTER || mb->mode == MODE_INTER_Q) {
		int32_t dx = mb->mvs[0].x;
		int32_t dy = mb->mvs[0].y;

		compensate8x8_halfpel(&dct_codes[0 * 64], cur->y, ref->y, refh->y,
							  refv->y, refhv->y, 16 * i, 16 * j, dx, dy,
							  edged_width);
		compensate8x8_halfpel(&dct_codes[1 * 64], cur->y, ref->y, refh->y,
							  refv->y, refhv->y, 16 * i + 8, 16 * j, dx, dy,
							  edged_width);
		compensate8x8_halfpel(&dct_codes[2 * 64], cur->y, ref->y, refh->y,
							  refv->y, refhv->y, 16 * i, 16 * j + 8, dx, dy,
							  edged_width);
		compensate8x8_halfpel(&dct_codes[3 * 64], cur->y, ref->y, refh->y,
							  refv->y, refhv->y, 16 * i + 8, 16 * j + 8, dx,
							  dy, edged_width);

		dx = (dx & 3) ? (dx >> 1) | 1 : dx / 2;
		dy = (dy & 3) ? (dy >> 1) | 1 : dy / 2;

		/* uv-block-based compensation */
		interpolate8x8_switch(refv->u, ref->u, 8 * i, 8 * j, dx, dy,
							  edged_width / 2, rounding);
		transfer_8to16sub(&dct_codes[4 * 64],
						  cur->u + 8 * j * edged_width / 2 + 8 * i,
						  refv->u + 8 * j * edged_width / 2 + 8 * i,
						  edged_width / 2);

		interpolate8x8_switch(refv->v, ref->v, 8 * i, 8 * j, dx, dy,
							  edged_width / 2, rounding);
		transfer_8to16sub(&dct_codes[5 * 64],
						  cur->v + 8 * j * edged_width / 2 + 8 * i,
						  refv->v + 8 * j * edged_width / 2 + 8 * i,
						  edged_width / 2);

	} 
	else						/* mode == MODE_INTER4V  */
	{
		int32_t sum, dx, dy;

		compensate8x8_halfpel(&dct_codes[0 * 64], cur->y, ref->y, refh->y,
							  refv->y, refhv->y, 16 * i, 16 * j, mb->mvs[0].x,
							  mb->mvs[0].y, edged_width);
		compensate8x8_halfpel(&dct_codes[1 * 64], cur->y, ref->y, refh->y,
							  refv->y, refhv->y, 16 * i + 8, 16 * j,
							  mb->mvs[1].x, mb->mvs[1].y, edged_width);
		compensate8x8_halfpel(&dct_codes[2 * 64], cur->y, ref->y, refh->y,
							  refv->y, refhv->y, 16 * i, 16 * j + 8,
							  mb->mvs[2].x, mb->mvs[2].y, edged_width);
		compensate8x8_halfpel(&dct_codes[3 * 64], cur->y, ref->y, refh->y,
							  refv->y, refhv->y, 16 * i + 8, 16 * j + 8,
							  mb->mvs[3].x, mb->mvs[3].y, edged_width);

		sum = mb->mvs[0].x + mb->mvs[1].x + mb->mvs[2].x + mb->mvs[3].x;
		dx = (sum ? SIGN(sum) *
			  (roundtab[abs(sum) % 16] + (abs(sum) / 16) * 2) : 0);

		sum = mb->mvs[0].y + mb->mvs[1].y + mb->mvs[2].y + mb->mvs[3].y;
		dy = (sum ? SIGN(sum) *
			  (roundtab[abs(sum) % 16] + (abs(sum) / 16) * 2) : 0);

		/* uv-block-based compensation */
		interpolate8x8_switch(refv->u, ref->u, 8 * i, 8 * j, dx, dy,
							  edged_width / 2, rounding);
		transfer_8to16sub(&dct_codes[4 * 64],
						  cur->u + 8 * j * edged_width / 2 + 8 * i,
						  refv->u + 8 * j * edged_width / 2 + 8 * i,
						  edged_width / 2);

		interpolate8x8_switch(refv->v, ref->v, 8 * i, 8 * j, dx, dy,
							  edged_width / 2, rounding);
		transfer_8to16sub(&dct_codes[5 * 64],
						  cur->v + 8 * j * edged_width / 2 + 8 * i,
						  refv->v + 8 * j * edged_width / 2 + 8 * i,
						  edged_width / 2);

	}

    /*g_interval+= CYCLES()-g_begin;*/
}

#else

static const uint32_t roundtab[16] =
		{ 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 };

void
MBMotionCompensation(MACROBLOCK * const mb,
					 const uint32_t i,
					 const uint32_t j,
					 const IMAGE * const ref,
					 const IMAGE * const refh,
					 const IMAGE * const refv,
					 const IMAGE * const refhv,
					 IMAGE * const cur,
					 int16_t * dct_codes,
					 const uint32_t width,
					 const uint32_t height,
					 const uint32_t edged_width,
					 const uint32_t rounding)
{
/*	
static const uint32_t roundtab[16] =
		{ 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 };
*/
	const uint32_t edged_width2=edged_width>>1;
	const uint32_t offset_uv = (j<<3)*edged_width2 +(i<<3);
	uint32_t ii0,jj0,ii1,jj1;

    /*g_begin= CYCLES();*/

	if (mb->mode == MODE_INTER || mb->mode == MODE_INTER_Q) {
		int32_t dx = mb->mvs[0].x;
		int32_t dy = mb->mvs[0].y;
/*
		compensate8x8_halfpel(&dct_codes[0 * 64], cur->y, ref->y, refh->y,
							  refv->y, refhv->y, 16 * i, 16 * j, dx, dy,
							  edged_width);
		compensate8x8_halfpel(&dct_codes[1 * 64], cur->y, ref->y, refh->y,
							  refv->y, refhv->y, 16 * i + 8, 16 * j, dx, dy,
							  edged_width);
		compensate8x8_halfpel(&dct_codes[2 * 64], cur->y, ref->y, refh->y,
							  refv->y, refhv->y, 16 * i, 16 * j + 8, dx, dy,
							  edged_width);
		compensate8x8_halfpel(&dct_codes[3 * 64], cur->y, ref->y, refh->y,
							  refv->y, refhv->y, 16 * i + 8, 16 * j + 8, dx,
							  dy, edged_width);
*/
		ii0=i<<4;
		jj0=j<<4;
		ii1=ii0+8;
		jj1=jj0+8;

		compensate8x8_halfpel(&dct_codes[0 * 64], cur->y, ref->y, refh->y,
							  refv->y, refhv->y, ii0, jj0, dx, dy,
							  edged_width);
		compensate8x8_halfpel(&dct_codes[1 * 64], cur->y, ref->y, refh->y,
							  refv->y, refhv->y, ii1, jj0, dx, dy,
							  edged_width);
		compensate8x8_halfpel(&dct_codes[2 * 64], cur->y, ref->y, refh->y,
							  refv->y, refhv->y,  ii0, jj1, dx, dy,
							  edged_width);
		compensate8x8_halfpel(&dct_codes[3 * 64], cur->y, ref->y, refh->y,
							  refv->y, refhv->y,  ii1, jj1, dx,
							  dy, edged_width);
/*
		dx = (dx & 3) ? (dx >> 1) | 1 : dx / 2;
		dy = (dy & 3) ? (dy >> 1) | 1 : dy / 2;
*/
/*
		dx = (dx & 3) ? (dx >> 1) | 1 : (dx >>1);
		dy = (dy & 3) ? (dy >> 1) | 1 : (dy >>1);
*/
		dx =  (dx>>1)|((dx&3)>0);
		dy =  (dy>>1)|((dy&3)>0);

		/* uv-block-based compensation */
/*
		interpolate8x8_switch(refv->u, ref->u, 8 * i, 8 * j, dx, dy,
							  edged_width / 2, rounding);
		transfer_8to16sub(&dct_codes[4 * 64],
						  cur->u + 8 * j * edged_width / 2 + 8 * i,
						  refv->u + 8 * j * edged_width / 2 + 8 * i,
						  edged_width / 2);

		interpolate8x8_switch(refv->v, ref->v, 8 * i, 8 * j, dx, dy,
							  edged_width / 2, rounding);
		transfer_8to16sub(&dct_codes[5 * 64],
						  cur->v + 8 * j * edged_width / 2 + 8 * i,
						  refv->v + 8 * j * edged_width / 2 + 8 * i,
						  edged_width / 2);
*/
		ii0=i<<3;
		jj0=j<<3;
		interpolate8x8_switch(refv->u, ref->u, ii0, jj0, dx, dy,
							  edged_width2, rounding);
		transfer_8to16sub(&dct_codes[4 * 64],
						  cur->u  + offset_uv,
						  refv->u + offset_uv,
						  edged_width2);

		interpolate8x8_switch(refv->v, ref->v,ii0, jj0, dx, dy,
							  edged_width2, rounding);
		transfer_8to16sub(&dct_codes[5 * 64],
						  cur->v  +  offset_uv,
						  refv->v +  offset_uv,
						  edged_width2);
	} 
	else						/* mode == MODE_INTER4V  */
	{
		int32_t sum, dx, dy;
		int32_t sum_abs,sum_div16,sum_mod16;
/*
		compensate8x8_halfpel(&dct_codes[0 * 64], cur->y, ref->y, refh->y,
							  refv->y, refhv->y, 16 * i, 16 * j, mb->mvs[0].x,
							  mb->mvs[0].y, edged_width);
		compensate8x8_halfpel(&dct_codes[1 * 64], cur->y, ref->y, refh->y,
							  refv->y, refhv->y, 16 * i + 8, 16 * j,
							  mb->mvs[1].x, mb->mvs[1].y, edged_width);
		compensate8x8_halfpel(&dct_codes[2 * 64], cur->y, ref->y, refh->y,
							  refv->y, refhv->y, 16 * i, 16 * j + 8,
							  mb->mvs[2].x, mb->mvs[2].y, edged_width);
		compensate8x8_halfpel(&dct_codes[3 * 64], cur->y, ref->y, refh->y,
							  refv->y, refhv->y, 16 * i + 8, 16 * j + 8,
							  mb->mvs[3].x, mb->mvs[3].y, edged_width);
*/
		ii0 = i<<4;
		jj0 = j<<4;
		ii1=ii0+8;
		jj1=jj0+8;

		compensate8x8_halfpel(&dct_codes[0 * 64], cur->y, ref->y, refh->y,
							  refv->y, refhv->y, ii0, jj0, mb->mvs[0].x,
							  mb->mvs[0].y, edged_width);
		compensate8x8_halfpel(&dct_codes[1 * 64], cur->y, ref->y, refh->y,
							  refv->y, refhv->y, ii1, jj0,
							  mb->mvs[1].x, mb->mvs[1].y, edged_width);
		compensate8x8_halfpel(&dct_codes[2 * 64], cur->y, ref->y, refh->y,
							  refv->y, refhv->y, ii0, jj1,
							  mb->mvs[2].x, mb->mvs[2].y, edged_width);
		compensate8x8_halfpel(&dct_codes[3 * 64], cur->y, ref->y, refh->y,
							  refv->y, refhv->y, ii1, jj1,
							  mb->mvs[3].x, mb->mvs[3].y, edged_width);
/*
		sum = mb->mvs[0].x + mb->mvs[1].x + mb->mvs[2].x + mb->mvs[3].x;
		dx = (sum ? SIGN(sum) *
			  (roundtab[abs(sum) % 16] + (abs(sum) / 16) * 2) : 0);
*/
		sum = mb->mvs[0].x + mb->mvs[1].x + mb->mvs[2].x + mb->mvs[3].x;
		dx = sum;
        if(sum)
		{
			sum_abs  = abs(sum); 
			sum_div16  = sum_abs>>4;
            sum_mod16 = sum_abs - (sum_div16<<4);
            dx = SIGN(sum) * (roundtab[sum_mod16] + (sum_div16<<1));  
		}
/*
		sum = mb->mvs[0].y + mb->mvs[1].y + mb->mvs[2].y + mb->mvs[3].y;
		dy = (sum ? SIGN(sum) *
			  (roundtab[abs(sum) % 16] + (abs(sum) / 16) * 2) : 0);
*/
		sum = mb->mvs[0].y + mb->mvs[1].y + mb->mvs[2].y + mb->mvs[3].y;
		dy = sum;
        if(sum)
		{
			sum_abs  = abs(sum); 
			sum_div16  = sum_abs>>4;
            sum_mod16 = sum_abs - (sum_div16<<4);
            dy = SIGN(sum) * (roundtab[sum_mod16] + (sum_div16<<1));  
		}

		/* uv-block-based compensation */
/*
		interpolate8x8_switch(refv->u, ref->u, 8 * i, 8 * j, dx, dy,
							  edged_width / 2, rounding);
		transfer_8to16sub(&dct_codes[4 * 64],
						  cur->u + 8 * j * edged_width / 2 + 8 * i,
						  refv->u + 8 * j * edged_width / 2 + 8 * i,
						  edged_width / 2);

		interpolate8x8_switch(refv->v, ref->v, 8 * i, 8 * j, dx, dy,
							  edged_width / 2, rounding);
		transfer_8to16sub(&dct_codes[5 * 64],
						  cur->v + 8 * j * edged_width / 2 + 8 * i,
						  refv->v + 8 * j * edged_width / 2 + 8 * i,
						  edged_width / 2);
*/
		ii0=i<<3;
		jj0=j<<3;

		interpolate8x8_switch(refv->u, ref->u, ii0, jj0, dx, dy,
							  edged_width2, rounding);
		transfer_8to16sub(&dct_codes[4 * 64],
						  cur->u  + offset_uv,
						  refv->u + offset_uv,
						  edged_width2);

		interpolate8x8_switch(refv->v, ref->v, ii0, jj0, dx, dy,
							  edged_width2, rounding);
		transfer_8to16sub(&dct_codes[5 * 64],
						  cur->v  + offset_uv,
						  refv->v + offset_uv,
						  edged_width2);
	}

    /*g_interval+= CYCLES()-g_begin;*/
}
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品一二三四区| 91啪九色porn原创视频在线观看| 99v久久综合狠狠综合久久| 欧美日韩三级在线| 国产精品二三区| 激情图片小说一区| 日本高清视频一区二区| 精品国产乱码久久久久久免费| 中文字幕亚洲电影| 国产在线视频一区二区| 3d成人动漫网站| 亚洲综合免费观看高清在线观看| 国产高清亚洲一区| 久久亚洲捆绑美女| 日本中文在线一区| 欧美日韩综合不卡| 一区二区理论电影在线观看| 成人短视频下载| 亚洲国产成人午夜在线一区 | 51久久夜色精品国产麻豆| 国产精品女主播av| 久久99日本精品| 欧美丰满嫩嫩电影| 亚洲一区二区高清| 欧美性受xxxx黑人xyx性爽| 亚洲另类在线一区| 91麻豆国产自产在线观看| 国产欧美日韩三区| 国产a区久久久| 国产欧美日韩精品在线| 国产成人午夜高潮毛片| 国产三级欧美三级日产三级99| 免费成人美女在线观看| 日韩一区二区免费在线电影| 免费在线看一区| 日韩一区二区在线看片| 美女在线一区二区| 久久女同精品一区二区| 国产东北露脸精品视频| 国产日本欧美一区二区| k8久久久一区二区三区| 亚洲人成网站在线| 欧美日韩国产另类不卡| 免费精品视频在线| 久久久蜜桃精品| 丁香六月综合激情| 亚洲美女偷拍久久| 欧美日产国产精品| 精品亚洲国产成人av制服丝袜| 日韩女优av电影| 国产美女视频一区| 亚洲人被黑人高潮完整版| 在线观看一区二区精品视频| 丝袜美腿亚洲一区二区图片| 日韩欧美一二三四区| 国产精品小仙女| 亚洲六月丁香色婷婷综合久久| 欧美午夜精品电影| 老司机精品视频导航| 欧美高清一级片在线观看| 日本电影欧美片| 免费人成在线不卡| 国产精品二三区| 7777精品伊人久久久大香线蕉的| 精品一区二区在线播放| 国产精品美女久久久久av爽李琼| 欧美性猛交一区二区三区精品| 蜜桃av噜噜一区| 国产精品国产三级国产普通话蜜臀 | 色中色一区二区| 精品一区二区国语对白| 亚洲四区在线观看| 26uuu久久天堂性欧美| 91黄视频在线| 国产激情一区二区三区四区 | 国产视频911| 在线观看免费亚洲| 丰满少妇在线播放bd日韩电影| 亚洲亚洲精品在线观看| 国产欧美一区二区精品久导航| 欧美性受极品xxxx喷水| 丁香一区二区三区| 日韩国产一二三区| 一区二区在线观看免费| 久久久99久久| 日韩一区二区三区观看| 色综合久久88色综合天天免费| 国产精品自拍在线| 日韩福利电影在线观看| 亚洲精品中文字幕乱码三区 | 玉足女爽爽91| 亚洲国产高清不卡| 久久久久久97三级| 26uuuu精品一区二区| 在线成人高清不卡| 欧洲一区二区三区在线| a级精品国产片在线观看| 国产精品一二三区在线| 久久99精品久久只有精品| 亚洲国产色一区| 亚洲天堂成人在线观看| 国产精品视频麻豆| 国产欧美日韩不卡免费| 国产亚洲一本大道中文在线| 欧美变态口味重另类| 日韩视频不卡中文| 欧美一区2区视频在线观看| 欧美放荡的少妇| 欧美绝品在线观看成人午夜影视| 色婷婷亚洲精品| 色婷婷综合中文久久一本| 91网页版在线| 色呦呦日韩精品| 在线免费观看不卡av| 欧美亚洲国产一区二区三区 | 久久夜色精品一区| 2023国产精华国产精品| 国产亚洲成av人在线观看导航| 久久这里都是精品| 久久精品一区四区| 国产精品电影院| 亚洲激情一二三区| 亚洲va欧美va国产va天堂影院| 亚洲国产成人高清精品| 奇米综合一区二区三区精品视频| 卡一卡二国产精品| 风流少妇一区二区| 一本一道久久a久久精品综合蜜臀| 日本高清不卡aⅴ免费网站| 欧美日韩国产免费| 精品日韩av一区二区| 亚洲国产高清aⅴ视频| 亚洲精品日韩综合观看成人91| 亚洲一二三区不卡| 精品一区二区在线视频| 成人午夜av影视| 欧美色成人综合| 精品国精品自拍自在线| 国产精品色婷婷| 亚洲午夜久久久久久久久电影院| 男女激情视频一区| 成人一区二区三区中文字幕| 日本高清视频一区二区| 日韩欧美亚洲国产另类| 亚洲欧洲成人精品av97| 石原莉奈在线亚洲二区| 国产福利91精品| 欧美日韩久久久| 欧美国产欧美综合| 亚洲午夜精品网| 国产精品一区二区三区网站| 色婷婷久久久亚洲一区二区三区| 制服丝袜亚洲色图| 国产精品成人免费在线| 手机精品视频在线观看| 国产老肥熟一区二区三区| 日本韩国视频一区二区| wwwwxxxxx欧美| 亚洲一区二区av在线| 国产在线不卡一卡二卡三卡四卡| 色婷婷亚洲精品| 中日韩免费视频中文字幕| 亚洲图片有声小说| 国产91在线观看| 日韩情涩欧美日韩视频| 亚洲女人****多毛耸耸8| 久草热8精品视频在线观看| 色综合天天综合| 国产精品色噜噜| 日韩电影在线看| 91极品美女在线| 国产欧美一区在线| 日本不卡一区二区| 欧美网站一区二区| 亚洲丝袜另类动漫二区| 国产风韵犹存在线视精品| 日韩免费观看高清完整版在线观看| 亚洲欧美日韩一区二区三区在线观看| 国产一区二区精品久久| 精品日韩在线一区| 青青草国产精品亚洲专区无| 欧美丝袜第三区| 亚洲精品一二三四区| 91蜜桃传媒精品久久久一区二区| 久久久www成人免费无遮挡大片| 日韩二区三区四区| 在线播放亚洲一区| 视频一区二区中文字幕| 欧美日韩精品欧美日韩精品一综合| 亚洲精品国产一区二区三区四区在线| 国产精品一区二区在线观看不卡 | 欧美一区二区三区视频在线| 香蕉成人啪国产精品视频综合网| 色偷偷成人一区二区三区91| 日韩一区欧美小说| 91免费版pro下载短视频| 日韩久久一区二区| 色网站国产精品| 亚洲国产精品久久久久婷婷884| 日本韩国精品一区二区在线观看|