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

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

?? mbenc.cpp

?? 小波圖像變換
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
/*************************************************************************

This software module was originally developed by 

	Ming-Chieh Lee (mingcl@microsoft.com), Microsoft Corporation
	Wei-ge Chen (wchen@microsoft.com), Microsoft Corporation
	Simon Winder (swinder@microsoft.com), Microsoft Corporation
	(date: June, 1997)
and edited by
        Wei Wu (weiwu@stallion.risc.rockwell.com) Rockwell Science Center

and also edited by
	Yoshihiro Kikuchi (TOSHIBA CORPORATION)
	Takeshi Nagai (TOSHIBA CORPORATION)
	Toshiaki Watanabe (TOSHIBA CORPORATION)
	Noboru Yamaguchi (TOSHIBA CORPORATION)

and also edited by
	Yoshinori Suzuki (Hitachi, Ltd.)

and also edited by
    Fujitsu Laboratories Ltd. (contact: Eishi Morimatsu)

and also edited by 
	Takefumi Nagumo (nagumo@av.crl.sony.co.jp) Sony Corporation
    Sehoon Son (shson@unitel.co.kr) Samsung AIT

in the course of development of the MPEG-4 Video (ISO/IEC 14496-2). 
This software module is an implementation of a part of one or more MPEG-4 Video tools 
as specified by the MPEG-4 Video. 
ISO/IEC gives users of the MPEG-4 Video free license to this software module or modifications 
thereof for use in hardware or software products claiming conformance to the MPEG-4 Video. 
Those intending to use this software module in hardware or software products are advised that its use may infringe existing patents. 
The original developer of this software module and his/her company, 
the subsequent editors and their companies, 
and ISO/IEC have no liability for use of this software module or modifications thereof in an implementation. 
Copyright is not released for non MPEG-4 Video conforming products. 
Microsoft retains full right to use the code for his/her own purpose, 
assign or donate the code to a third party and to inhibit third parties from using the code for non <MPEG standard> conforming products. 
This copyright notice must be included in all copies or derivative works. 

Copyright (c) 1996, 1997.

Module Name:

	MBenc.cpp

Abstract:

	MacroBlock encoder

Revision History:

	This software module was edited by

		Hiroyuki Katata (katata@imgsl.mkhar.sharp.co.jp), Sharp Corporation
		Norio Ito (norio@imgsl.mkhar.sharp.co.jp), Sharp Corporation
		Shuichi Watanabe (watanabe@imgsl.mkhar.sharp.co.jp), Sharp Corporation
		(date: October, 1997)

	for object based temporal scalability.

	Dec 20, 1997:	Interlaced tools added by NextLevel Systems X.Chen, B. Eifrig
        May. 9   1998:  add boundary by Hyundai Electronics 
                                  Cheol-Soo Park (cspark@super5.hyundai.co.kr) 
        Feb. 23   1999:  GMC added by Yoshinori Suzuki(Hitachi, Ltd.) 
	May 9, 1999:	tm5 rate control by DemoGraFX, duhoff@mediaone.net
NOTE:
	
	m_pvopfCurrQ holds the original data until it is texture quantized

	Sep.06	1999 : RRV added by Eishi Morimatsu (Fujitsu Laboratories Ltd.) 
	Feb.01	2000 : Bug fixed OBSS by Takefumi Nagumo (Sony)
*************************************************************************/

#include <stdlib.h>
#include <math.h>
#include <iostream.h>
#include "typeapi.h"
#include "codehead.h"
#include "mode.hpp"
#include "global.hpp"
#include "entropy/bitstrm.hpp"
#include "entropy/entropy.hpp"
#include "entropy/huffman.hpp"
#include "vopses.hpp"
#include "vopseenc.hpp"
// RRV insertion
#include "rrv.hpp"
// ~RRV

#ifdef __MFC_
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif

#define new DEBUG_NEW				   
#endif // __MFC_

/*Void CVideoObjectEncoder::encodePVOPMBWithShape (
	PixelC* ppxlcRefMBY, PixelC* ppxlcRefMBU, PixelC* ppxlcRefMBV,
	PixelC* ppxlcRefMBA, PixelC* ppxlcRefBY,
	CMBMode* pmbmd, const CMotionVector* pmv, CMotionVector* pmvBY,
	ShapeMode shpmdColocatedMB,
	Int imbX, Int imbY,
	CoordI x, CoordI y, Int& iQPPrev)
{
	encodePVOPMBJustShape(ppxlcRefBY,pmbmd,shpmdColocatedMB,pmv,pmvBY,x,y,imbX,imbY);
	dumpCachedShapeBits();
	encodePVOPMBTextureWithShape(ppxlcRefMBY,ppxlcRefMBU,ppxlcRefMBV,ppxlcRefMBA,pmbmd,
		pmv,imbX,imbY,x,y,iQPPrev);
}*/

Void CVideoObjectEncoder::encodePVOPMBJustShape(
	PixelC* ppxlcRefBY, CMBMode* pmbmd, ShapeMode shpmdColocatedMB,
		const CMotionVector* pmv, CMotionVector* pmvBY,
		CoordI x, CoordI y, Int imbX, Int imbY)
{

//OBSS_SAIT_991015	
//OBSSFIX_MODE3
  if(!(m_volmd.bSpatialScalability && m_volmd.iHierarchyType==0) ||
     (m_volmd.bSpatialScalability && m_volmd.iHierarchyType==0 && m_volmd.volType == ENHN_LAYER && m_volmd.iEnhnType!=0 && m_volmd.iuseRefShape ==1)){
//	if(!(m_volmd.bSpatialScalability && m_volmd.iHierarchyType==0)){
//~OBSSFIX_MODE3
			m_statsMB.nBitsShape += codeInterShape (
				ppxlcRefBY, m_pvopcRefQ0, pmbmd, shpmdColocatedMB,
				pmv, pmvBY, x, y, imbX, imbY);
	}
	else{
		if((m_volmd.volType == BASE_LAYER) || (!(m_volmd.iEnhnType==0 || m_volmd.iuseRefShape ==0) && !m_volmd.bShapeOnly) )			
			m_statsMB.nBitsShape += codeInterShape (
				ppxlcRefBY, m_pvopcRefQ0, pmbmd, shpmdColocatedMB,
				pmv, pmvBY, x, y, imbX, imbY);
		
		else
			m_statsMB.nBitsShape += codeSIShapePVOP (
				ppxlcRefBY, m_pvopcRefQ0, pmbmd, shpmdColocatedMB,
				pmv, pmvBY, x, y, imbX, imbY);
	}
//~OBSS_SAIT_991015

	// change pmbmd to inter if all transparent
	decideTransparencyStatus (pmbmd, m_ppxlcCurrMBBY);
}

Void CVideoObjectEncoder::dumpCachedShapeBits()
{
#ifdef __TRACE_AND_STATS_
	m_pbitstrmOut->trace("INSERTING PRE-ENCODED MB SHAPE STREAM HERE\n");
	m_pbitstrmOut->trace(m_pbitstrmOut->getCounter(),"Location Before");
#endif // __TRACE_AND_STATS_
	m_pbitstrmOut->putBitStream(*m_pbitstrmShapeMBOut);
#ifdef __TRACE_AND_STATS_
	m_pbitstrmOut->trace(m_pbitstrmOut->getCounter(),"Location After");
#endif // __TRACE_AND_STATS_
	m_pbitstrmShapeMBOut->flush();
	m_pbitstrmShapeMBOut->resetAll();
}

// HHI Schueuer: added  const PixelC *ppxlcCurrMBBY, const PixelC *ppxlcCurrMBBUV for sadct
Void CVideoObjectEncoder::encodePVOPMBTextureWithShape(
	PixelC* ppxlcRefMBY, 
  PixelC* ppxlcRefMBU,
  PixelC* ppxlcRefMBV,
	PixelC** pppxlcRefMBA,
  CMBMode* pmbmd,
  const CMotionVector* pmv,
	Int imbX,
  Int imbY,
  CoordI x,
  CoordI y,
  Int&  iQPPrev,
	Int&  iQPPrevAlpha,
  Bool& bUseNewQPForVlcThr,
	const PixelC *ppxlcCurrMBBY,
  const PixelC *ppxlcCurrMBBUV)
{
	// update quantiser
	pmbmd->m_stepSize = iQPPrev + pmbmd->m_intStepDelta;
	if(bUseNewQPForVlcThr)
		pmbmd->m_stepSizeDelayed = pmbmd->m_stepSize;
	else
		pmbmd->m_stepSizeDelayed = iQPPrev;
	iQPPrev = pmbmd->m_stepSize;

	if (pmbmd -> m_dctMd == INTRA || pmbmd -> m_dctMd == INTRAQ) {
		if(pmbmd -> m_rgTranspStatus [0] == PARTIAL)
			LPEPadding (pmbmd);

		if (m_volmd.fAUsage == EIGHT_BIT) {
			// update alpha quant
      if(!m_volmd.bNoGrayQuantUpdate)
      {
        iQPPrevAlpha = (iQPPrev * m_vopmd.intStepPAlpha[0]) / m_vopmd.intStep;
        if(iQPPrevAlpha<1)
          iQPPrevAlpha=1;
      }
      pmbmd->m_stepSizeAlpha = iQPPrevAlpha;    
		}

		assert (pmbmd -> m_rgTranspStatus [0] != ALL);
		/*BBM// Added for Boundary by Hyundai(1998-5-9)
                if (m_vopmd.bInterlace && pmbmd -> m_rgTranspStatus [0] == PARTIAL)
                        boundaryMacroBlockMerge (pmbmd);
		// End of Hyundai(1998-5-9)*/
		// HHI Schueuer: sadct
		if (!m_volmd.bSadctDisable)
			quantizeTextureIntraMB (imbX, imbY, pmbmd, ppxlcRefMBY, ppxlcRefMBU, ppxlcRefMBV, pppxlcRefMBA, ppxlcCurrMBBY, ppxlcCurrMBBUV);
		else
			quantizeTextureIntraMB (imbX, imbY, pmbmd, ppxlcRefMBY, ppxlcRefMBU, ppxlcRefMBV, pppxlcRefMBA);
		// end HHI
		codeMBTextureHeadOfPVOP (pmbmd);
		sendDCTCoefOfIntraMBTexture (pmbmd);
		if (m_volmd.fAUsage == EIGHT_BIT) {
      for(Int iAuxComp=0;iAuxComp<m_volmd.iAuxCompCount;iAuxComp++) { // MAC (SB) 29-Nov-99
			  codeMBAlphaHeadOfPVOP (pmbmd,iAuxComp);
			  sendDCTCoefOfIntraMBAlpha (pmbmd,iAuxComp);
      }
		}
		/*BBM// Added for Boundary by Hyundai(1998-5-9)
                if (m_vopmd.bInterlace && pmbmd -> m_bMerged[0])
                        mergedMacroBlockSplit (pmbmd, ppxlcRefMBY, ppxlcRefMBA);
		// End of Hyundai(1998-5-9)*/

		bUseNewQPForVlcThr = FALSE;
	}
	else { // INTER or skipped
    if (m_volmd.fAUsage == EIGHT_BIT) {
      // update alpha quant
      if(!m_volmd.bNoGrayQuantUpdate)
        iQPPrevAlpha = (iQPPrev * m_vopmd.intStepPAlpha[0]) / m_vopmd.intStep;
      pmbmd->m_stepSizeAlpha = iQPPrevAlpha;
      
    }
    if (pmbmd -> m_rgTranspStatus [0] == PARTIAL) {
			CoordI xRefUV, yRefUV;

// GMC
		     if(pmbmd->m_bMCSEL) {
				FindGlobalChromPredForGMC(x,y,m_ppxlcPredMBU,m_ppxlcPredMBV);
		     }else{
// ~GMC
// INTERLACE
		// new changes 
			if(pmbmd->m_bFieldMV) {
				CoordI xRefUV1, yRefUV1;
				mvLookupUV (pmbmd, pmv, xRefUV, yRefUV, xRefUV1, yRefUV1);
				motionCompFieldUV(m_ppxlcPredMBU, m_ppxlcPredMBV,
					m_pvopcRefQ0, x, y, xRefUV, yRefUV, pmbmd->m_bForwardTop,
					&m_rctRefVOPY0); // added by Y.Suzuki for the extended bounding box support
				motionCompFieldUV(m_ppxlcPredMBU + BLOCK_SIZE, m_ppxlcPredMBV + BLOCK_SIZE,
					m_pvopcRefQ0, x, y, xRefUV1, yRefUV1, pmbmd->m_bForwardBottom,
					&m_rctRefVOPY0); // added by Y.Suzuki for the extended bounding box support
			}
			else {
// ~INTERLACE
			mvLookupUVWithShape (pmbmd, pmv, xRefUV, yRefUV);
			motionCompUV (m_ppxlcPredMBU, m_ppxlcPredMBV, m_pvopcRefQ0, x, y,
				xRefUV, yRefUV, m_vopmd.iRoundingControl,&m_rctRefVOPY0);
			}
// GMC
		     }
// ~GMC
			motionCompMBYEnc (pmv, pmbmd, imbX, imbY, x, y, &m_rctRefVOPY0);
			computeTextureErrorWithShape ();
		}
		else {
			// not partial
			CoordI xRefUV, yRefUV, xRefUV1, yRefUV1;
// GMC
		   if(pmbmd->m_bMCSEL) {
			FindGlobalChromPredForGMC(x,y,m_ppxlcPredMBU,m_ppxlcPredMBV);
		   }else{
// ~GMC
			mvLookupUV (pmbmd, pmv, xRefUV, yRefUV, xRefUV1, yRefUV1);
// INTERLACE
		// new changes 
			if(pmbmd->m_bFieldMV) {
				motionCompFieldUV(m_ppxlcPredMBU, m_ppxlcPredMBV,
					m_pvopcRefQ0, x, y, xRefUV, yRefUV, pmbmd->m_bForwardTop,
					&m_rctRefVOPY0); // added by Y.Suzuki for the extended bounding box support
				motionCompFieldUV(m_ppxlcPredMBU + BLOCK_SIZE, m_ppxlcPredMBV + BLOCK_SIZE,
					m_pvopcRefQ0, x, y, xRefUV1, yRefUV1, pmbmd->m_bForwardBottom,
					&m_rctRefVOPY0); // added by Y.Suzuki for the extended bounding box support
			}
			else {
// ~INTERLACE
			motionCompUV (m_ppxlcPredMBU, m_ppxlcPredMBV, m_pvopcRefQ0, x, y,
				xRefUV, yRefUV, m_vopmd.iRoundingControl, &m_rctRefVOPY0);
			}
// GMC
		   }
// ~GMC
			motionCompMBYEnc (pmv, pmbmd, imbX, imbY, x, y, &m_rctRefVOPY0);
			computeTextureError ();
		}
		Bool bSkip = pmbmd->m_bhas4MVForward ? (pmv [1].isZero () && pmv [2].isZero () && pmv [3].isZero () && pmv [4].isZero ())
			: (!pmbmd->m_bFieldMV && pmv->isZero()) ;
// GMC
		if(pmbmd -> m_bMCSEL)
			bSkip= TRUE;
// ~GMC
		/*BBM// Added for Boundary by Hyundai(1998-5-9)
		if (m_vopmd.bInterlace && pmbmd -> m_rgTranspStatus [0] == PARTIAL)
                        boundaryMacroBlockMerge (pmbmd);
		// End of Hyundai(1998-5-9)*/

		if(!m_volmd.bAllowSkippedPMBs)
			bSkip = FALSE;

		// HHI Schueuer: sadct
		if (!m_volmd.bSadctDisable)
			quantizeTextureInterMB (pmbmd, pmv, pppxlcRefMBA, bSkip, ppxlcCurrMBBY, ppxlcCurrMBBUV); // decide COD here
		else
			quantizeTextureInterMB (pmbmd, pmv, pppxlcRefMBA, bSkip); // decide COD here
		// end HHI

// GMC
		if((m_uiSprite == 2 && m_vopmd.vopPredType == SPRITE))
			if(pmbmd -> m_bSkip && !pmbmd -> m_bMCSEL)
				pmbmd -> m_bSkip = FALSE;
// ~GMC
		codeMBTextureHeadOfPVOP (pmbmd);
		if (!(pmbmd -> m_bSkip && !pmbmd -> m_bMCSEL)) { // GMC
			/*BBM// Added for Boundary by Hyundai(1998-5-9)
            if (m_vopmd.bInterlace && pmbmd -> m_bMerged[0])
                    swapTransparentModes (pmbmd, BBS);
			// End of Hyundai(1998-5-9)*/
//OBSS_SAIT_991015
			if(!(m_volmd.volType == ENHN_LAYER && m_vopmd.iRefSelectCode == 3) && !pmbmd -> m_bMCSEL)		//for zero-MV of OBSS(P-VOP)
				m_statsMB.nBitsMV += encodeMVWithShape (pmv, pmbmd, imbX, imbY);
//~OBSS_SAIT_991015
			/*BBM// Added for Boundary by Hyundai(1998-5-9)
			if (m_vopmd.bInterlace && pmbmd -> m_bMerged[0])
					swapTransparentModes (pmbmd, BBM);
			// End of Hyundai(1998-5-9)*/
// GMC
		   if (pmbmd -> m_bSkip)
		   	assignPredToCurrQ (ppxlcRefMBY, ppxlcRefMBU, ppxlcRefMBV);
		   else
// ~GMC
			sendDCTCoefOfInterMBTexture (pmbmd);
			// addErrorAndPredToCurrQ (ppxlcRefMBY, ppxlcRefMBU, ppxlcRefMBV); // delete by Hyundai, ok swinder
		}
		else
			assignPredToCurrQ (ppxlcRefMBY, ppxlcRefMBU, ppxlcRefMBV);
		if (m_volmd.fAUsage == EIGHT_BIT) {
      for(Int iAuxComp=0;iAuxComp<m_volmd.iAuxCompCount;iAuxComp++) { // MAC (SB) 29-Nov-99
        codeMBAlphaHeadOfPVOP (pmbmd, iAuxComp );
        if (pmbmd -> m_pCODAlpha[iAuxComp] == ALPHA_CODED) {
          sendDCTCoefOfInterMBAlpha (pmbmd, iAuxComp);
        }
        else if(pmbmd -> m_pCODAlpha[iAuxComp] == ALPHA_SKIPPED)
          assignAlphaPredToCurrQ (pppxlcRefMBA[iAuxComp],iAuxComp);
      }
		}
		/*BBM// Added for Boundary by Hyundai(1998-5-9)
                if (m_vopmd.bInterlace && pmbmd -> m_bMerged[0])
                        mergedMacroBlockSplit (pmbmd);
		// End of Hyundai(1998-5-9)*/
    if (!pmbmd -> m_bSkip)
		{
			bUseNewQPForVlcThr = FALSE;
            addErrorAndPredToCurrQ (ppxlcRefMBY, ppxlcRefMBU, ppxlcRefMBV);
		}
    if (m_volmd.fAUsage == EIGHT_BIT) { 
      for(Int iAuxComp=0;iAuxComp<m_volmd.iAuxCompCount;iAuxComp++) { // MAC (SB) 29-Nov-99
        if (pmbmd -> m_pCODAlpha[iAuxComp] == ALPHA_CODED)
          addAlphaErrorAndPredToCurrQ (pppxlcRefMBA[iAuxComp],iAuxComp);
      }
    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丝袜亚洲另类丝袜在线| 亚洲一区中文在线| 色成人在线视频| 麻豆精品视频在线观看| 亚洲青青青在线视频| 日韩天堂在线观看| 色综合久久久久久久久久久| 久草精品在线观看| 亚洲夂夂婷婷色拍ww47| 国产丝袜在线精品| 日韩三级高清在线| 欧美天天综合网| eeuss鲁片一区二区三区在线观看| 日本美女视频一区二区| 亚洲欧美日韩国产成人精品影院| 精品国产一区二区在线观看| 在线视频观看一区| 成人免费高清视频在线观看| 韩国午夜理伦三级不卡影院| 天堂久久久久va久久久久| 亚洲蜜臀av乱码久久精品蜜桃| 国产三级久久久| 欧美电影免费观看完整版| 欧美日韩在线精品一区二区三区激情 | 欧美一区在线视频| 在线视频综合导航| 99热国产精品| 成人性生交大片免费看视频在线| 精品系列免费在线观看| 五月激情六月综合| 一区二区三区**美女毛片| 中文字幕在线不卡一区| 国产午夜久久久久| 26uuu亚洲婷婷狠狠天堂| 欧美一级二级三级蜜桃| 欧美一区二区人人喊爽| 欧美日本一区二区| 欧美男女性生活在线直播观看| 色婷婷av一区| 日本韩国视频一区二区| 一本到一区二区三区| av资源站一区| 99视频精品免费视频| 91尤物视频在线观看| 91麻豆精品秘密| 色av综合在线| 欧美日免费三级在线| 欧美色涩在线第一页| 在线播放国产精品二区一二区四区| 在线观看91视频| 欧美日韩国产成人在线免费| 666欧美在线视频| 欧美成人一级视频| 日韩免费高清视频| 久久―日本道色综合久久| 欧美国产一区二区在线观看 | 中文字幕亚洲精品在线观看| 最近日韩中文字幕| 亚洲国产视频一区二区| 三级成人在线视频| 精品一区二区三区久久久| 国产激情一区二区三区| 成人午夜激情影院| 日本高清不卡一区| 欧美一卡二卡三卡四卡| 久久久亚洲综合| 国产精品久久久久久一区二区三区| 亚洲三级小视频| 日韩av一二三| 国产精品乡下勾搭老头1| 99久久精品免费看| 91麻豆精品91久久久久久清纯| 精品国产乱子伦一区| 国产女人水真多18毛片18精品视频 | 国产精品女主播av| 亚洲午夜免费电影| 精品在线一区二区三区| 成人国产精品免费观看动漫| 欧美亚洲国产一卡| 欧美精品一区视频| 亚洲日本成人在线观看| 日韩av一区二| 91最新地址在线播放| 91精品国产综合久久久久久久久久 | 国产成人亚洲综合a∨婷婷图片| 91视频国产资源| 日韩欧美国产综合一区 | 久久精品国产一区二区| 成人福利视频在线| 欧美精品少妇一区二区三区 | 日韩伦理免费电影| 人禽交欧美网站| 不卡一区二区在线| 精品日韩一区二区三区免费视频| 亚洲精品国产成人久久av盗摄| 日本成人在线看| aaa欧美色吧激情视频| 日韩欧美国产综合| 亚洲综合999| 国产成人精品一区二区三区网站观看| 欧美视频精品在线观看| 欧美国产日韩在线观看| 日本成人在线一区| 色婷婷综合久久| 国产蜜臀97一区二区三区| 天天综合色天天综合色h| av欧美精品.com| 久久久99久久| 麻豆成人免费电影| 欧美无人高清视频在线观看| 国产欧美日韩精品a在线观看| 免费av成人在线| 在线视频你懂得一区二区三区| 国产片一区二区| 麻豆成人久久精品二区三区红| 欧美日韩国产综合一区二区| 亚洲美女视频在线观看| 成人晚上爱看视频| 国产三级久久久| 国产综合色产在线精品| 日韩欧美一区二区免费| 午夜精品爽啪视频| 在线视频综合导航| 国产精品麻豆欧美日韩ww| 国产美女主播视频一区| 精品福利一二区| 日本不卡视频一二三区| 欧美人妖巨大在线| 午夜精品久久久久久久| 色噜噜狠狠色综合中国| 国产精品不卡一区二区三区| 国产成人av电影在线播放| 久久综合九色综合欧美就去吻| 日本在线不卡视频| 精品视频在线免费看| 一级做a爱片久久| 色国产精品一区在线观看| 国产精品久久二区二区| 99久久久久免费精品国产| 国产精品毛片无遮挡高清| voyeur盗摄精品| 综合网在线视频| 色综合久久久久网| 亚洲成人免费视| 69久久夜色精品国产69蝌蚪网| 日本中文一区二区三区| 欧美变态tickle挠乳网站| 国产美女精品在线| 国产欧美日韩激情| 91丨porny丨蝌蚪视频| 亚洲激情网站免费观看| 欧美在线小视频| 日本怡春院一区二区| 精品久久五月天| 国产成人h网站| 日韩码欧中文字| 欧美日韩一卡二卡| 视频一区中文字幕| 日韩欧美国产精品| 国产大陆精品国产| 亚洲天堂久久久久久久| 欧美日韩一级片网站| 六月丁香婷婷色狠狠久久| 国产三区在线成人av| av福利精品导航| 午夜国产精品一区| 亚洲精品在线电影| 99久久精品免费看国产| 日韩国产成人精品| 2020国产精品自拍| 91亚洲大成网污www| 亚洲午夜视频在线| 久久毛片高清国产| 91麻豆精品视频| 久久av老司机精品网站导航| 国产精品久久久久久亚洲毛片 | 午夜精品成人在线| 久久九九久精品国产免费直播| 91视频你懂的| 另类综合日韩欧美亚洲| 亚洲丝袜精品丝袜在线| 日韩三级精品电影久久久| 99久久亚洲一区二区三区青草| 天堂成人国产精品一区| 国产欧美一区二区精品秋霞影院 | 99久久国产综合色|国产精品| 亚洲国产另类av| 久久精品综合网| 在线成人午夜影院| av影院午夜一区| 久久精品国产99久久6| 亚洲婷婷在线视频| 久久久一区二区三区捆绑**| 欧美午夜一区二区三区免费大片| 国产九色精品成人porny| 日日夜夜免费精品| 亚洲天堂网中文字| 久久精品亚洲国产奇米99| 欧美中文字幕久久| hitomi一区二区三区精品|