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

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

?? pred.c

?? encoder 視頻會議 視頻編碼算法 源程序
?? C
?? 第 1 頁 / 共 3 頁
字號:
#include"sim.h"static int roundtab[] = {0,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2};/********************************************************************** * *	函數(shù)名:P幀圖像的預(yù)測 *	函數(shù)功能:P幀編碼宏塊的運(yùn)動預(yù)測編碼(普通模式和高級模式) *	函數(shù)輸入:curr_image:當(dāng)前幀圖像 *			  prev_image:上一幀圖像 *			  prev_ipol:上一幀內(nèi)插圖像 *            x:宏塊的位置(水平方位)
 *			  y:宏塊的位置(豎直方位) 
 *			  MV:運(yùn)動向量
 *			  PB:運(yùn)動估計模式標(biāo)志
 *	函數(shù)返回值:編碼宏塊數(shù)據(jù)的指針 ***********************************************************************/MB_Structure *Predict_P(PictImage *curr_image, PictImage *prev_image,        unsigned char *prev_ipol, int x, int y,         MotionVector *MV[6][MBR+1][MBC+2], int PB){  int m,n;  int curr[16][16];  int pred[16][16];  MotionVector *fr0,*fr1,*fr2,*fr3,*fr4;  int sum, dx, dy;  int xmb, ymb;  MB_Structure *pred_error = (MB_Structure *)malloc(sizeof(MB_Structure));      xmb = x/MB_SIZE+1;  ymb = y/MB_SIZE+1;  fr0 = MV[0][ymb][xmb];  fr1 = MV[1][ymb][xmb];  fr2 = MV[2][ymb][xmb];  fr3 = MV[3][ymb][xmb];  fr4 = MV[4][ymb][xmb];  /* 找到當(dāng)前幀的編碼宏塊 */  FindMB(x, y, curr_image->lum, curr);  /* 利用半像素精度的運(yùn)動向量尋找預(yù)測值 */  if (advanced) {    FindPredOBMC(x, y, MV, prev_ipol, &pred[0][0], 0, PB);    FindPredOBMC(x, y, MV, prev_ipol, &pred[0][8], 1, PB);    FindPredOBMC(x, y, MV, prev_ipol, &pred[8][0], 2, PB);    FindPredOBMC(x, y, MV, prev_ipol, &pred[8][8], 3, PB);  }  else     FindPred(x, y, fr0, prev_ipol, &pred[0][0], 16, 0);  /* 實際運(yùn)動估計的預(yù)測 */  if (fr0->Mode == MODE_INTER || fr0->Mode == MODE_INTER_Q) {    for (n = 0; n < MB_SIZE; n++)      for (m = 0; m < MB_SIZE; m++)         pred_error->lum[n][m] = (int)(curr[n][m] - pred[n][m]);    dx = 2*fr0->x + fr0->x_half;    dy = 2*fr0->y + fr0->y_half;    dx = ( dx % 4 == 0 ? dx >> 1 : (dx>>1)|1 );    dy = ( dy % 4 == 0 ? dy >> 1 : (dy>>1)|1 );    DoPredChrom_P(x, y, dx, dy, curr_image, prev_image, pred_error);  }  else if (fr0->Mode == MODE_INTER4V) {    for (n = 0; n < MB_SIZE; n++)      for (m = 0; m < MB_SIZE; m++)         pred_error->lum[n][m] = (int)(curr[n][m] - pred[n][m]);    sum = 2*fr1->x + fr1->x_half + 2*fr2->x + fr2->x_half +      2*fr3->x + fr3->x_half + 2*fr4->x + fr4->x_half ;     dx = sign(sum)*(roundtab[abs(sum)%16] + (abs(sum)/16)*2);    sum = 2*fr1->y + fr1->y_half + 2*fr2->y + fr2->y_half +      2*fr3->y + fr3->y_half + 2*fr4->y + fr4->y_half;    dy = sign(sum)*(roundtab[abs(sum)%16] + (abs(sum)/16)*2);    DoPredChrom_P(x, y, dx, dy, curr_image, prev_image, pred_error);  }  else    fprintf(stderr,"Illegal Mode in Predict_P (pred.c)\n");  return pred_error;}/**********************************************************************
 *
 *	函數(shù)名:B幀圖像的預(yù)測
 *	函數(shù)功能:在PB模式下B幀編碼宏塊的運(yùn)動預(yù)測編碼
 *	函數(shù)輸入:curr_image:當(dāng)前幀圖像
 *			  prev_image:上一幀圖像
 *			  prev_ipol:上一幀內(nèi)插圖像
 *            x:宏塊的位置(水平方位)
 *			  y:宏塊的位置(豎直方位) 
 *			  MV:運(yùn)動向量
 *			  recon_P:上一幀重構(gòu)的P幀編碼宏塊
 *			  TRD:重構(gòu)宏塊的位置(水平方位)
 *			  TRB:重構(gòu)宏塊的位置(豎直方位)
 *	函數(shù)返回值:運(yùn)動估計后編碼宏塊差分?jǐn)?shù)據(jù)的指針
 ***********************************************************************/MB_Structure *Predict_B(PictImage *curr_image, PictImage *prev_image,        unsigned char *prev_ipol,int x, int y,        MotionVector *MV[5][MBR+1][MBC+2],        MB_Structure *recon_P, int TRD,int TRB){  int i,j,k;  int dx, dy, sad, sad_min=INT_MAX, curr[16][16], bdx=0, bdy=0;  MB_Structure *p_err = (MB_Structure *)malloc(sizeof(MB_Structure));  MB_Structure *pred = (MB_Structure *)malloc(sizeof(MB_Structure));  MotionVector *f[5];  int xvec, yvec, mvx, mvy;  for (k = 0; k <= 4; k++)    f[k] = MV[k][y/MB_SIZE+1][x/MB_SIZE+1];  /* 找到當(dāng)前幀的編碼宏塊 */  FindMB(x, y, curr_image->lum, curr);  if (f[0]->Mode == MODE_INTER4V) {  /* INTER4V模式 */    /* 計算前向預(yù)測 */    /* 亮度分量 */    for (j = -DEF_PBDELTA_WIN; j <= DEF_PBDELTA_WIN; j++) {      for (i = -DEF_PBDELTA_WIN; i <= DEF_PBDELTA_WIN; i++) {        FindForwLumPredPB(prev_ipol, x, y, f[1], &pred->lum[0][0],           TRD, TRB, i, j, 8, 0);        FindForwLumPredPB(prev_ipol, x, y, f[2], &pred->lum[0][8],           TRD, TRB, i, j, 8, 1);        FindForwLumPredPB(prev_ipol, x, y, f[3], &pred->lum[8][0],           TRD, TRB, i, j, 8, 2);        FindForwLumPredPB(prev_ipol, x, y, f[4], &pred->lum[8][8],           TRD, TRB, i, j, 8, 3);        sad = SAD_MB_integer(&curr[0][0],&pred->lum[0][0], 16,INT_MAX);        if (i == 0 && j == 0)          sad -= PREF_PBDELTA_NULL_VEC;        if (sad < sad_min) {          sad_min = sad;          bdx = i;          bdy = j;        }      }    }    FindForwLumPredPB(prev_ipol,x,y,f[1],&pred->lum[0][0],TRD,TRB,bdx,bdy,8,0);    FindForwLumPredPB(prev_ipol,x,y,f[2],&pred->lum[0][8],TRD,TRB,bdx,bdy,8,1);    FindForwLumPredPB(prev_ipol,x,y,f[3],&pred->lum[8][0],TRD,TRB,bdx,bdy,8,2);    FindForwLumPredPB(prev_ipol,x,y,f[4],&pred->lum[8][8],TRD,TRB,bdx,bdy,8,3);    /* 色度分量的運(yùn)動向量 */    xvec = yvec = 0;    for (k = 1; k <= 4; k++) {      xvec += TRB*(2*f[k]->x + f[k]->x_half)/TRD + bdx;      yvec += TRB*(2*f[k]->y + f[k]->y_half)/TRD + bdy;    }    /* 根據(jù)表7-17得到近似值 */    dx = sign(xvec)*(roundtab[abs(xvec)%16] + (abs(xvec)/16)*2);    dy = sign(yvec)*(roundtab[abs(yvec)%16] + (abs(yvec)/16)*2);    FindChromBlock_P(x, y, dx, dy, prev_image, pred);    /* 計算雙向運(yùn)動估計 */    FindBiDirLumPredPB(&recon_P->lum[0][0], f[1], &pred->lum[0][0],                TRD, TRB, bdx, bdy, 0, 0);    FindBiDirLumPredPB(&recon_P->lum[0][8], f[2], &pred->lum[0][8],                TRD, TRB, bdx, bdy, 1, 0);    FindBiDirLumPredPB(&recon_P->lum[8][0], f[3], &pred->lum[8][0],                TRD, TRB, bdx, bdy, 0, 1);    FindBiDirLumPredPB(&recon_P->lum[8][8], f[4], &pred->lum[8][8],                TRD, TRB, bdx, bdy, 1, 1);    /* 色度分量的運(yùn)動向量 */    xvec = yvec = 0;    for (k = 1; k <= 4; k++) {      mvx = 2*f[k]->x + f[k]->x_half;      mvy = 2*f[k]->y + f[k]->y_half;      xvec += bdx == 0 ? (TRB-TRD) *  mvx / TRD : TRB * mvx / TRD + bdx - mvx;      yvec += bdy == 0 ? (TRB-TRD) *  mvy / TRD : TRB * mvy / TRD + bdy - mvy;    }    /* 根據(jù)表7-17得到近似值 */    dx = sign(xvec)*(roundtab[abs(xvec)%16] + (abs(xvec)/16)*2);    dy = sign(yvec)*(roundtab[abs(yvec)%16] + (abs(yvec)/16)*2);    FindBiDirChrPredPB(recon_P, dx, dy, pred);   }  else {  /* 幀間和INTER_Q模式 */    /* 計算前向運(yùn)動估計 */    for (j = -DEF_PBDELTA_WIN; j <= DEF_PBDELTA_WIN; j++) {      for (i = -DEF_PBDELTA_WIN; i <= DEF_PBDELTA_WIN; i++) {        dx = i; dy = j;        /* 宏塊邊緣PB幀的向量差置為0 */        if (!mv_outside_frame) {          if (x == 0) dx = 0;          if (x == pels - MB_SIZE) dx = 0;          if (y == 0) dy = 0;          if (y == lines - MB_SIZE) dy = 0;        }        if (f[0]->Mode == MODE_INTRA || f[0]->Mode == MODE_INTRA_Q) {          dx = dy = 0;        }        if (f[0]->x == 0 && f[0]->y == 0 &&             f[0]->x_half == 0 && f[0]->y_half == 0) {          dx = dy = 0;        }        FindForwLumPredPB(prev_ipol, x, y, f[0], &pred->lum[0][0],           TRD, TRB, dx, dy, 16, 0);        sad = SAD_MB_integer(&curr[0][0],&pred->lum[0][0], 16, INT_MAX);        if (i == 0 && j == 0)          sad -= PREF_PBDELTA_NULL_VEC;        if (sad < sad_min) {          sad_min = sad;          bdx = dx;          bdy = dy;        }      }    }    FindForwLumPredPB(prev_ipol,x,y,f[0],&pred->lum[0][0],TRD,TRB,              bdx,bdy,16,0);    xvec = 4 * (TRB*(2*f[0]->x + f[0]->x_half) / TRD + bdx);    yvec = 4 * (TRB*(2*f[0]->y + f[0]->y_half) / TRD + bdy);    /* 根據(jù)表7-17得到近似值 */    dx = sign(xvec)*(roundtab[abs(xvec)%16] + (abs(xvec)/16)*2);    dy = sign(yvec)*(roundtab[abs(yvec)%16] + (abs(yvec)/16)*2);    FindChromBlock_P(x, y, dx, dy, prev_image, pred);    /* 計算雙向運(yùn)動估計 */    FindBiDirLumPredPB(&recon_P->lum[0][0], f[0], &pred->lum[0][0],                TRD, TRB, bdx, bdy, 0, 0);    FindBiDirLumPredPB(&recon_P->lum[0][8], f[0], &pred->lum[0][8],                TRD, TRB, bdx, bdy, 1, 0);    FindBiDirLumPredPB(&recon_P->lum[8][0], f[0], &pred->lum[8][0],                TRD, TRB, bdx, bdy, 0, 1);    FindBiDirLumPredPB(&recon_P->lum[8][8], f[0], &pred->lum[8][8],                TRD, TRB, bdx, bdy, 1, 1);    /* 色度運(yùn)動向量 */    mvx = 2*f[0]->x + f[0]->x_half;    xvec = bdx == 0 ? (TRB-TRD) * mvx / TRD : TRB * mvx / TRD + bdx - mvx;    xvec *= 4;    mvy = 2*f[0]->y + f[0]->y_half;    yvec = bdy == 0 ? (TRB-TRD) * mvy / TRD : TRB * mvy / TRD + bdy - mvy;    yvec *= 4;          /* 色度運(yùn)動向量 */    dx = sign(xvec)*(roundtab[abs(xvec)%16] + (abs(xvec)/16)*2);    dy = sign(yvec)*(roundtab[abs(yvec)%16] + (abs(yvec)/16)*2);    FindBiDirChrPredPB(recon_P, dx, dy, pred);   }  /* 存放delta值 */  MV[5][y/MB_SIZE+1][x/MB_SIZE+1]->x = bdx; /* 半像素精度 */  MV[5][y/MB_SIZE+1][x/MB_SIZE+1]->y = bdy;  MV[5][y/MB_SIZE+1][x/MB_SIZE+1]->x_half = 0;  MV[5][y/MB_SIZE+1][x/MB_SIZE+1]->y_half = 0;  /* 完成最后的運(yùn)動估計 */  for (j = 0; j < MB_SIZE; j++)     for (i = 0; i < MB_SIZE; i++)       p_err->lum[j][i] =         *(curr_image->lum+x+i + (y+j)*pels) - pred->lum[j][i];  y >>= 1;  x >>= 1;  for (j = 0; j < MB_SIZE>>1; j++)     for (i = 0; i < MB_SIZE>>1; i++) {      p_err->Cr[j][i] = *(curr_image->Cr+x+i + (y+j)*cpels) - pred->Cr[j][i];      p_err->Cb[j][i] = *(curr_image->Cb+x+i + (y+j)*cpels) - pred->Cb[j][i];    }  free(pred);  return p_err;}/**********************************************************************
 *
 *	函數(shù)名:MB_Recon_B
 *	函數(shù)功能:在PB模式下重構(gòu)B幀編碼宏塊
 *	函數(shù)輸入:curr_image:當(dāng)前幀圖像
 *			  prev_image:上一幀圖像
 *			  prev_ipol:上一幀內(nèi)插圖像
 *            x:宏塊的位置(水平方位)
 *			  y:宏塊的位置(豎直方位) 
 *			  MV:運(yùn)動向量
 *			  recon_P:上一幀重構(gòu)的編碼宏塊
 *			  TRD:重構(gòu)宏塊的位置(水平方位)
 *			  TRB:重構(gòu)宏塊的位置(豎直方位)
 *	函數(shù)返回值:重構(gòu)編碼宏塊數(shù)據(jù)的指針
 ***********************************************************************/
MB_Structure *MB_Recon_B(PictImage *prev_image, MB_Structure *diff,         unsigned char *prev_ipol,int x, int y,         MotionVector *MV[5][MBR+1][MBC+2],         MB_Structure *recon_P,int TRD, int TRB){  int i,j,k;  int dx, dy, bdx, bdy, mvx, mvy, xvec, yvec;  MB_Structure *recon_B = (MB_Structure *)malloc(sizeof(MB_Structure));  MB_Structure *pred = (MB_Structure *)malloc(sizeof(MB_Structure));  MotionVector *f[5];  for (k = 0; k <= 4; k++)    f[k] = MV[k][y/MB_SIZE+1][x/MB_SIZE+1];  bdx = MV[5][y/MB_SIZE+1][x/MB_SIZE+1]->x;  bdy = MV[5][y/MB_SIZE+1][x/MB_SIZE+1]->y;  if (f[0]->Mode == MODE_INTER4V) {  /* INTER4V模式 */    /* 計算前向運(yùn)動估計 */    /* 亮度分量 */    FindForwLumPredPB(prev_ipol,x,y,f[1],&pred->lum[0][0],TRD,TRB,bdx,bdy,8,0);    FindForwLumPredPB(prev_ipol,x,y,f[2],&pred->lum[0][8],TRD,TRB,bdx,bdy,8,1);    FindForwLumPredPB(prev_ipol,x,y,f[3],&pred->lum[8][0],TRD,TRB,bdx,bdy,8,2);    FindForwLumPredPB(prev_ipol,x,y,f[4],&pred->lum[8][8],TRD,TRB,bdx,bdy,8,3);    /* 色度運(yùn)動向量 */    xvec = yvec = 0;    for (k = 1; k <= 4; k++) {      xvec += TRB*(2*f[k]->x + f[k]->x_half)/TRD + bdx;      yvec += TRB*(2*f[k]->y + f[k]->y_half)/TRD + bdy;    }    /* 根據(jù)表7-17得到近似值 */    dx = sign(xvec)*(roundtab[abs(xvec)%16] + (abs(xvec)/16)*2);    dy = sign(yvec)*(roundtab[abs(yvec)%16] + (abs(yvec)/16)*2);    FindChromBlock_P(x, y, dx, dy, prev_image, pred);    /* 計算雙向運(yùn)動估計 */    FindBiDirLumPredPB(&recon_P->lum[0][0], f[1], &pred->lum[0][0],                TRD, TRB, bdx, bdy, 0, 0);    FindBiDirLumPredPB(&recon_P->lum[0][8], f[2], &pred->lum[0][8],                TRD, TRB, bdx, bdy, 1, 0);    FindBiDirLumPredPB(&recon_P->lum[8][0], f[3], &pred->lum[8][0],                TRD, TRB, bdx, bdy, 0, 1);    FindBiDirLumPredPB(&recon_P->lum[8][8], f[4], &pred->lum[8][8],                TRD, TRB, bdx, bdy, 1, 1);    /* 色度分量的運(yùn)動向量 */    xvec = yvec = 0;    for (k = 1; k <= 4; k++) {      mvx = 2*f[k]->x + f[k]->x_half;      mvy = 2*f[k]->y + f[k]->y_half;      xvec += bdx == 0 ? (TRB-TRD) *  mvx / TRD : TRB * mvx / TRD + bdx - mvx;      yvec += bdy == 0 ? (TRB-TRD) *  mvy / TRD : TRB * mvy / TRD + bdy - mvy;    }    /* 根據(jù)表7-17得到近似值 */    dx = sign(xvec)*(roundtab[abs(xvec)%16] + (abs(xvec)/16)*2);    dy = sign(yvec)*(roundtab[abs(yvec)%16] + (abs(yvec)/16)*2);    FindBiDirChrPredPB(recon_P, dx, dy, pred);   }  else {  /* 幀間或INTER_Q模式 */    /* 計算前向運(yùn)動估計 */        FindForwLumPredPB(prev_ipol,x,y,f[0],&pred->lum[0][0],TRD,TRB,              bdx,bdy,16,0);    xvec = 4 * (TRB*(2*f[0]->x + f[0]->x_half) / TRD + bdx);    yvec = 4 * (TRB*(2*f[0]->y + f[0]->y_half) / TRD + bdy);    /* 根據(jù)表7-17得到近似值 */    dx = sign(xvec)*(roundtab[abs(xvec)%16] + (abs(xvec)/16)*2);    dy = sign(yvec)*(roundtab[abs(yvec)%16] + (abs(yvec)/16)*2);    FindChromBlock_P(x, y, dx, dy, prev_image, pred);    /* 計算雙向運(yùn)動估計 */    FindBiDirLumPredPB(&recon_P->lum[0][0], f[0], &pred->lum[0][0],                TRD, TRB, bdx, bdy, 0, 0);    FindBiDirLumPredPB(&recon_P->lum[0][8], f[0], &pred->lum[0][8],                TRD, TRB, bdx, bdy, 1, 0);    FindBiDirLumPredPB(&recon_P->lum[8][0], f[0], &pred->lum[8][0],                TRD, TRB, bdx, bdy, 0, 1);    FindBiDirLumPredPB(&recon_P->lum[8][8], f[0], &pred->lum[8][8],                TRD, TRB, bdx, bdy, 1, 1);    /* 色度分量的運(yùn)動向量 */    mvx = 2*f[0]->x + f[0]->x_half;    xvec = bdx == 0 ? (TRB-TRD) * mvx / TRD : TRB * mvx / TRD + bdx - mvx;    xvec *= 4;    mvy = 2*f[0]->y + f[0]->y_half;    yvec = bdy == 0 ? (TRB-TRD) * mvy / TRD : TRB * mvy / TRD + bdy - mvy;    yvec *= 4;          /* /* 根據(jù)表7-17得到近似值 */    dx = sign(xvec)*(roundtab[abs(xvec)%16] + (abs(xvec)/16)*2);    dy = sign(yvec)*(roundtab[abs(yvec)%16] + (abs(yvec)/16)*2);    FindBiDirChrPredPB(recon_P, dx, dy, pred);   }  /* 重構(gòu)出P幀的編碼宏塊 */  for (j = 0; j < MB_SIZE; j++)     for (i = 0; i < MB_SIZE; i++)       recon_B->lum[j][i] = pred->lum[j][i] + diff->lum[j][i];          for (j = 0; j < MB_SIZE>>1; j++)     for (i = 0; i < MB_SIZE>>1; i++) {      recon_B->Cr[j][i] = pred->Cr[j][i] + diff->Cr[j][i];      recon_B->Cb[j][i] = pred->Cb[j][i] + diff->Cb[j][i];    }    free(pred);  return recon_B;}

/**********************************************************************
 *
 *	函數(shù)名:FindForwLumPredPB
 *	函數(shù)功能:在PB模式下計算前向亮度分量的運(yùn)動估計
 *	函數(shù)輸入:prev_ipol:上一幀內(nèi)插圖像
 *            x_cur:當(dāng)前幀宏塊的位置(水平方位)
 *			  y_cur:當(dāng)前幀宏塊的位置(豎直方位) 
 *			  fr:運(yùn)動向量
 *			  pred:預(yù)測宏塊的數(shù)據(jù)指針
 *			  TRD:重構(gòu)宏塊的位置(水平方位)
 *			  TRB:重構(gòu)宏塊的位置(豎直方位)
 *	函數(shù)返回值:重構(gòu)編碼宏塊數(shù)據(jù)的指針,宏塊的位置以及MV數(shù)據(jù)
 ***********************************************************************/
void FindForwLumPredPB(unsigned char *prev_ipol, int x_curr, int y_curr,                MotionVector *fr, int *pred, int TRD, int TRB,                int bdx, int bdy, int bs, int comp){  int i,j;  int xvec,yvec,lx;  lx = (mv_outside_frame ? pels + (long_vectors?64:32) : pels);  /* 亮度分量 */  xvec = (TRB)*(2*fr->x + fr->x_half)/TRD + bdx;  yvec = (TRB)*(2*fr->y + fr->y_half)/TRD + bdy;  x_curr += ((comp&1)<<3);  y_curr += ((comp&2)<<2);  for (j = 0; j < bs; j++) {    for (i = 0; i < bs; i++) {      *(pred+i+j*16) = *(prev_ipol + (i+x_curr)*2 + xvec +         ((j+y_curr)*2 + yvec)*lx*2);    }  }  return;}/**********************************************************************
 *
 *	函數(shù)名:FindBiDirLumPredPB
 *	函數(shù)功能:在PB模式下尋找雙向亮度信息的預(yù)測值
 *	函數(shù)輸入:recon_P:重構(gòu)恢復(fù)出來的P幀編碼宏塊
 *			  fr:宏塊的運(yùn)動向量
 *			  pred:預(yù)測宏塊的數(shù)據(jù)指針
 *			  TRD:重構(gòu)宏塊的位置(水平方位)
 *			  TRB:重構(gòu)宏塊的位置(豎直方位)*			  
 ***********************************************************************/void FindBiDirLumPredPB(int *recon_P, MotionVector *fr, int *pred, int TRD,         int TRB, int bdx, int bdy, int nh, int nv){  int xstart,xstop,ystart,ystop;  int xvec,yvec, mvx, mvy;  mvx = 2*fr->x + fr->x_half;  mvy = 2*fr->y + fr->y_half;  xvec = (bdx == 0 ? (TRB-TRD) *  mvx / TRD : TRB * mvx / TRD + bdx - mvx);  yvec = (bdy == 0 ? (TRB-TRD) *  mvy / TRD : TRB * mvy / TRD + bdy - mvy);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品ww久久久久久p站| 久久一日本道色综合| 亚洲精品久久嫩草网站秘色| 97精品电影院| 亚洲va天堂va国产va久| 欧美一区二区三区喷汁尤物| 韩国女主播一区二区三区| 久久久久国产精品麻豆| 成人三级在线视频| 一区二区三区在线视频播放| 在线观看91精品国产麻豆| 蜜臀av一区二区在线观看 | 亚洲午夜久久久久中文字幕久| 欧美视频在线观看一区| 蜜桃视频第一区免费观看| 国产日韩欧美a| 欧美亚洲图片小说| 美女性感视频久久| 中文字幕佐山爱一区二区免费| 在线观看成人小视频| 狠狠色丁香久久婷婷综合丁香| 国产精品欧美一级免费| 欧美群妇大交群中文字幕| 激情伊人五月天久久综合| 亚洲色图另类专区| 日韩一区二区精品在线观看| 国产高清久久久| 午夜精品久久久久久久99水蜜桃 | 日本精品视频一区二区三区| 免费观看在线色综合| 国产精品久久久久久亚洲伦| 在线观看国产一区二区| 激情丁香综合五月| 亚洲bt欧美bt精品777| 国产日韩欧美不卡| 欧美精品亚洲一区二区在线播放| 国产福利一区在线观看| 视频在线观看91| 亚洲欧美日韩在线不卡| 久久一留热品黄| 欧美日本视频在线| 99精品在线观看视频| 精彩视频一区二区| 日韩黄色片在线观看| 亚洲美女屁股眼交3| 久久午夜羞羞影院免费观看| 欧美亚洲免费在线一区| 99久久国产综合精品色伊| 国产揄拍国内精品对白| 日韩高清在线一区| 亚洲国产综合在线| 日韩一区日韩二区| 亚洲国产精品国自产拍av| 日韩精品一区二区三区中文精品| 色爱区综合激月婷婷| 9i在线看片成人免费| 国产福利精品导航| 精品在线免费观看| 午夜免费久久看| 一区二区在线免费| 亚洲欧美视频在线观看视频| 日本一二三不卡| 国产精品网曝门| 精品国产百合女同互慰| 欧美一区二区福利视频| 欧美精品日日鲁夜夜添| 欧美日韩久久一区| 欧美日韩国产另类一区| 欧美三级资源在线| 欧美性猛交xxxxxx富婆| 91黄色激情网站| 在线影视一区二区三区| 91久久精品一区二区二区| 欧美综合亚洲图片综合区| 在线日韩国产精品| 欧美精品在线观看播放| 在线成人av网站| 日韩精品自拍偷拍| 久久综合色8888| 国产亚洲欧美激情| 国产亚洲精品精华液| 久久在线观看免费| 日本一区二区高清| 综合久久综合久久| 一区二区三区不卡视频在线观看| 亚洲欧洲成人精品av97| 亚洲男人电影天堂| 午夜精品福利在线| 奇米影视在线99精品| 国产一区二区三区| 99国产欧美久久久精品| 欧洲av在线精品| 日韩欧美国产电影| 日本一区二区三区免费乱视频 | 黄页网站大全一区二区| 国产精品乡下勾搭老头1| 成人午夜又粗又硬又大| 91色九色蝌蚪| 欧美精品久久99| 久久久综合视频| 亚洲天堂精品在线观看| 亚洲国产日韩精品| 久久丁香综合五月国产三级网站| 国产精选一区二区三区| 99国产精品久| 欧美一区在线视频| 国产欧美日韩另类视频免费观看| 亚洲欧美另类小说| 久久精品av麻豆的观看方式| 豆国产96在线|亚洲| 91久久久免费一区二区| 日韩女优电影在线观看| 国产精品久久久久三级| 亚洲mv大片欧洲mv大片精品| 国产乱国产乱300精品| 色综合久久久久综合体| 日韩欧美一级精品久久| 国产精品嫩草99a| 亚洲成人激情自拍| 国产999精品久久| 欧美伦理视频网站| 国产精品国产精品国产专区不蜜 | 亚洲综合视频网| 裸体健美xxxx欧美裸体表演| 成人精品gif动图一区| 337p亚洲精品色噜噜| 中文字幕中文字幕在线一区 | 国产精品1024久久| 欧美精品成人一区二区三区四区| 337p日本欧洲亚洲大胆精品| 亚洲综合区在线| 成人一区二区三区| 日韩精品一区在线观看| 亚洲最色的网站| 国产成人av网站| 欧美电影一区二区| 亚洲精品视频在线观看网站| 狠狠狠色丁香婷婷综合激情| 精品视频一区三区九区| 中文字幕一区二区三区四区不卡 | 国产一区二区三区在线观看精品| 欧美午夜理伦三级在线观看| 国产精品国产自产拍高清av| 国产一区二区三区精品视频| 欧美福利一区二区| 亚洲午夜精品久久久久久久久| 成人小视频免费观看| 久久久九九九九| 久久99九九99精品| 欧美一区午夜精品| 五月天丁香久久| 欧美色综合久久| 亚洲在线一区二区三区| 一本色道久久加勒比精品| 亚洲欧洲美洲综合色网| 成人精品高清在线| 国产精品免费av| 成人晚上爱看视频| 日本一区二区三区免费乱视频| 国内久久精品视频| 久久久www成人免费无遮挡大片| 日本不卡不码高清免费观看| 欧美日韩大陆一区二区| 视频一区欧美精品| 91麻豆精品国产91久久久更新时间| 亚洲中国最大av网站| 欧美少妇一区二区| 天堂蜜桃91精品| 欧美大片免费久久精品三p| 免费成人小视频| 精品99久久久久久| 国产一区视频网站| 日本一区二区综合亚洲| av爱爱亚洲一区| 一区二区三区在线高清| 欧美视频在线一区二区三区 | 欧美精品一级二级| 日本aⅴ免费视频一区二区三区| 欧美一区午夜视频在线观看| 久久99精品久久久久久久久久久久| 欧美大片在线观看| 粗大黑人巨茎大战欧美成人| 中文字幕一区二区三区不卡在线| 91蝌蚪porny成人天涯| 亚洲五月六月丁香激情| 91精品国产入口| 国产精品中文字幕一区二区三区| 午夜成人免费电影| 日韩午夜在线播放| 顶级嫩模精品视频在线看| 亚洲欧洲无码一区二区三区| 欧美性受xxxx黑人xyx性爽| 免费在线成人网| 国产精品久久久爽爽爽麻豆色哟哟| 91日韩在线专区| 欧美bbbbb| 亚洲欧洲av在线| 日韩亚洲欧美中文三级| 成人一级片网址| 五月开心婷婷久久|