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

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

?? vopseenc.cpp

?? 小波圖像變換
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
	m_piiDirectErrorMB = new CIntImage (CRct (0, 0, MB_SIZE, MB_SIZE)); 
	m_piiInterpErrorMB = new CIntImage (CRct (0, 0, MB_SIZE, MB_SIZE)); 
	m_ppxliDirectErrorMBY = (PixelI*) m_piiDirectErrorMB->pixels (); 
	m_ppxliInterpErrorMBY = (PixelI*) m_piiInterpErrorMB->pixels (); 

	// with shape
	if (m_volmd.fAUsage != RECTANGLE) {
		m_rgiSubBlkIndx16x16 = computeShapeSubBlkIndex (4, 16);
		m_rgiSSubBlkIndx16x16 = computeShapeSubBlkIndex (2, 16);
		m_rgiSubBlkIndx18x18 = computeShapeSubBlkIndex (4, 18);
		m_rgiSubBlkIndx20x20 = computeShapeSubBlkIndex (4, 20);
		m_rgiPxlIndx12x12 = new Int [8 * 8];		
		Int* piPxl = m_rgiPxlIndx12x12;
		UInt i, j;
		for (i = 2; i < 10; i++)
			for (j = 2; j < 10; j++)
				*piPxl++ = i * 12 + j;
		m_rgiPxlIndx8x8 = new Int [4 * 4];		
		piPxl = m_rgiPxlIndx8x8;
		for (i = 2; i < 6; i++)
			for (j = 2; j < 6; j++)
				*piPxl++ = i * 8 + j;
	}
	
// NEWPRED
	if(m_volmd.bNewpredEnable) {
		g_pNewPredEnc->SetObject(
					m_iNumBitsTimeIncr,
					iSessionWidth,	
					iSessionHeight,
					uiVOId,
					m_volmd.cNewpredRefName,
					m_volmd.cNewpredSlicePoint,
					m_volmd.bNewpredSegmentType,
					m_volmd.fAUsage,
					m_volmd.bShapeOnly,
					m_pvopcRefQ0,
					m_pvopcRefQ1,
					m_rctRefFrameY,	
					m_rctRefFrameUV
		);
	}
// ~NEWPRED

	m_statsVOL.reset ();
	codeVOHead ();
	codeVOLHead (iSessionWidth, iSessionHeight);//, rctSprite);

	// Added for error resilient mode by Toshiba(1997-11-14): Moved (1998-1-16)
	g_iMaxHeading = MAXHEADING_ERR;
	g_iMaxMiddle = MAXMIDDLE_ERR;
	g_iMaxTrailing = MAXTRAILING_ERR;

	// End Toshiba(1997-11-14)

	m_statsVOL.nBitsStuffing += m_pbitstrmOut->flush ();
	m_statRC.resetSkipMode ();
	m_rgdSNR = (m_volmd.fAUsage == EIGHT_BIT) ? new Double [3+m_volmd.iAuxCompCount] : new Double [3];

	// some fixed variables	
	m_iFrameWidthZoomY = m_iFrameWidthY * 2;
	m_iFrameWidthZoomUV = m_iFrameWidthUV * 2;
	m_iFrameWidthZoomYx2Minus2MB = m_iFrameWidthY * 2 * 2 - 2 * MB_SIZE;
	m_iFrameWidthZoomYx2Minus2Blk = m_iFrameWidthY * 2 * 2 - 2 * BLOCK_SIZE;

// RRV insertion
	Int iScale	= (m_vopmd.RRVmode.iOnOff == 1) ? (2) : (1);
// ~RRV 
	if (m_volmd.fAUsage == RECTANGLE) {
		m_rctCurrVOPY = CRct (0, 0, iSessionWidthRound, iSessionHeightRound);
		m_pvopcOrig->setBoundRct (m_rctCurrVOPY);
		m_rctCurrVOPUV = m_rctCurrVOPY.downSampleBy2 ();
		
		m_rctRefVOPY0 = m_rctCurrVOPY;
// RRV modification
		m_rctRefVOPY0.expand (EXPANDY_REFVOP *iScale);
//		m_rctRefVOPY0.expand (EXPANDY_REFVOP);
// ~RRV
		m_rctRefVOPUV0 = m_rctRefVOPY0.downSampleBy2 ();
		
		m_rctRefVOPY1 = m_rctRefVOPY0;
		m_rctRefVOPUV1 = m_rctRefVOPUV0;
		
		m_rctRefVOPZoom0 = m_rctRefVOPY0.upSampleBy2 ();
		m_rctRefVOPZoom1 = m_rctRefVOPY1.upSampleBy2 ();
		m_pvopcRefOrig0->setBoundRct (m_rctRefVOPY0);
		m_pvopcRefOrig1->setBoundRct (m_rctRefVOPY1);

	if ((m_uiSprite == 0) || (m_uiSprite == 2) || ((m_uiSprite == 1) && (m_sptMode == BASIC_SPRITE)) ) // GMC

		computeVOLConstMembers (); // these VOP members are the same for all frames
	}
//OBSS_SAIT_991015
	else if(m_volmd.fAUsage == ONE_BIT && m_volmd.volType == ENHN_LAYER) {
		m_rctCurrVOPY = CRct (0, 0, iSessionWidthRound, iSessionHeightRound);
		m_pvopcOrig->setBoundRct (m_rctCurrVOPY);
		m_rctCurrVOPUV = m_rctCurrVOPY.downSampleBy2 ();
		
		m_rctRefVOPY0 = m_rctCurrVOPY;
		m_rctRefVOPY0.expand (EXPANDY_REFVOP);
		m_rctRefVOPUV0 = m_rctRefVOPY0.downSampleBy2 ();
		
		m_rctRefVOPY1 = m_rctRefVOPY0;
		m_rctRefVOPUV1 = m_rctRefVOPUV0;
		
		m_rctRefVOPZoom0 = m_rctRefVOPY0.upSampleBy2 ();
		m_rctRefVOPZoom1 = m_rctRefVOPY1.upSampleBy2 ();
		m_pvopcRefOrig0->setBoundRct (m_rctRefVOPY0);
		m_pvopcRefOrig1->setBoundRct (m_rctRefVOPY1);
	}
//~OBSS_SAIT_991015
	m_vopmd.SpriteXmitMode = STOP ;	
    // tentative solution for indicating the first Sprite VOP
    // tentativeFirstSpriteVop = 0;

	// Open motion vector file if used
	m_pchMVFileName = pchMVFileName;
	if (m_iMVFileUsage = iMVFileUsage) {
		m_fMVFile = fopen(m_pchMVFileName, (m_iMVFileUsage == 1) ? "r" : "w");
		assert(m_fMVFile != NULL);
		m_iMVLineNo = 0;
	}
}

// for back/forward shape
CVideoObjectEncoder::CVideoObjectEncoder (
	UInt uiVOId, 
	VOLMode& volmd, 
	VOPMode& vopmd,
	Int iSessionWidth,
	Int iSessionHeight
) :
	CVideoObject (),
	m_pvopcOrig (NULL),
	m_rgiSubBlkIndx16x16 (NULL),
	m_rgiSSubBlkIndx16x16 (NULL),
	m_rgiSubBlkIndx18x18 (NULL),
	m_rgiSubBlkIndx20x20 (NULL),
	m_rgiPxlIndx12x12 (NULL),
	m_rgiPxlIndx8x8 (NULL),
  m_statsVOL(volmd.iAuxCompCount),
  m_statsVOP(volmd.iAuxCompCount),
  m_statsMB (volmd.iAuxCompCount)
{

	// sprite stuff
    	m_uiSprite = 0; // sprite off

	m_pchBitsBuffer = NULL;
	m_pbitstrmOut = NULL;
	m_pentrencSet = NULL;

        // shape cache
	m_pchShapeBitsBuffer = NULL;
	m_pbitstrmShape = NULL;
	m_pbitstrmShapeMBOut = NULL;
	
	m_uiVOId = uiVOId;
	m_volmd = volmd;

	m_vopmd = vopmd;
//	decideMVInfo ();
	m_vopmd.iRoundingControl = 0;
	m_vopmd.iRoundingControlEncSwitch = 0;
	Int iMod = iSessionWidth % MB_SIZE;
	Int iSessionWidthRound = (iMod > 0) ? iSessionWidth + MB_SIZE - iMod : iSessionWidth;
	iMod = iSessionHeight % MB_SIZE;
	Int iSessionHeightRound = (iMod > 0) ? iSessionHeight + MB_SIZE - iMod : iSessionHeight;
	m_rctRefFrameY = CRct (
		-EXPANDY_REF_FRAME, -EXPANDY_REF_FRAME, 
		EXPANDY_REF_FRAME + iSessionWidthRound, EXPANDY_REF_FRAME + iSessionHeightRound
	);
	m_rctRefFrameUV = m_rctRefFrameY.downSampleBy2 ();
	m_pvopcOrig = new CVOPU8YUVBA (m_volmd.fAUsage, m_rctRefFrameY, m_volmd.iAuxCompCount);
	m_pvopcRefOrig0 = new CVOPU8YUVBA (m_volmd.fAUsage, m_rctRefFrameY, m_volmd.iAuxCompCount);
	m_pvopcRefOrig1 = new CVOPU8YUVBA (m_volmd.fAUsage, m_rctRefFrameY, m_volmd.iAuxCompCount);
	allocateVOLMembers (iSessionWidth, iSessionHeight);

	CRct rctFrameZoom = m_rctRefFrameY.upSampleBy2 ();
	m_puciRefQZoom0 = new CU8Image (rctFrameZoom);

	m_puciRefQZoom1 = new CU8Image (rctFrameZoom);

	// m_pfdct = new CFwdBlockDCT;
	// HHI Schueuer: sadct
	if (m_volmd.fAUsage != RECTANGLE && (!m_volmd.bSadctDisable)) {
		m_pfdct = new CFwdSADCT();
		m_pscanSelector = new CScanSelectorForSADCT(m_rgiCurrMBCoeffWidth);
	}
	else {
		m_pfdct = new CFwdBlockDCT();
		m_pscanSelector = new CScanSelector;
	}
	// end HHI

	// B-VOP MB buffer
	m_puciDirectPredMB = new CU8Image (CRct (0, 0, MB_SIZE, MB_SIZE));
	m_puciInterpPredMB = new CU8Image (CRct (0, 0, MB_SIZE, MB_SIZE));
	m_ppxlcDirectPredMBY = (PixelC*) m_puciDirectPredMB->pixels (); 
	m_ppxlcInterpPredMBY = (PixelC*) m_puciInterpPredMB->pixels (); 

	m_piiDirectErrorMB = new CIntImage (CRct (0, 0, MB_SIZE, MB_SIZE)); 
	m_piiInterpErrorMB = new CIntImage (CRct (0, 0, MB_SIZE, MB_SIZE)); 
	m_ppxliDirectErrorMBY = (PixelI*) m_piiDirectErrorMB->pixels (); 
	m_ppxliInterpErrorMBY = (PixelI*) m_piiInterpErrorMB->pixels (); 

	// with shape
	if (m_volmd.fAUsage != RECTANGLE) {
		m_rgiSubBlkIndx16x16 = computeShapeSubBlkIndex (4, 16);
		m_rgiSSubBlkIndx16x16 = computeShapeSubBlkIndex (2, 16);
		m_rgiSubBlkIndx18x18 = computeShapeSubBlkIndex (4, 18);
		m_rgiSubBlkIndx20x20 = computeShapeSubBlkIndex (4, 20);
		m_rgiPxlIndx12x12 = new Int [8 * 8];		
		Int* piPxl = m_rgiPxlIndx12x12;
		UInt i, j;
		for (i = 2; i < 10; i++)
			for (j = 2; j < 10; j++)
				*piPxl++ = i * 12 + j;
		m_rgiPxlIndx8x8 = new Int [4 * 4];		
		piPxl = m_rgiPxlIndx8x8;
		for (i = 2; i < 6; i++)
			for (j = 2; j < 6; j++)
				*piPxl++ = i * 8 + j;
	}

	m_statRC.resetSkipMode ();
	m_rgdSNR = (m_volmd.fAUsage == EIGHT_BIT) ? new Double [4] : new Double [3];

	// some fixed variables	
	m_iFrameWidthZoomY = m_iFrameWidthY * 2;
	m_iFrameWidthZoomUV = m_iFrameWidthUV * 2;
	m_iFrameWidthZoomYx2Minus2MB = m_iFrameWidthY * 2 * 2 - 2 * MB_SIZE;
	m_iFrameWidthZoomYx2Minus2Blk = m_iFrameWidthY * 2 * 2 - 2 * BLOCK_SIZE;
	
	if (m_volmd.fAUsage == RECTANGLE) {
		m_rctCurrVOPY = CRct (0, 0, iSessionWidthRound, iSessionHeightRound);
		m_pvopcOrig->setBoundRct (m_rctCurrVOPY);
		m_rctCurrVOPUV = m_rctCurrVOPY.downSampleBy2 ();
		
		m_rctRefVOPY0 = m_rctCurrVOPY;
		m_rctRefVOPY0.expand (EXPANDY_REFVOP);
		m_rctRefVOPUV0 = m_rctRefVOPY0.downSampleBy2 ();
		
		m_rctRefVOPY1 = m_rctRefVOPY0;
		m_rctRefVOPUV1 = m_rctRefVOPUV0;
		
		m_rctRefVOPZoom0 = m_rctRefVOPY0.upSampleBy2 ();
		m_pvopcRefOrig0->setBoundRct (m_rctRefVOPY0);
		m_pvopcRefOrig1->setBoundRct (m_rctRefVOPY1);
		computeVOLConstMembers (); // these VOP members are the same for all frames
	}
}

Bool CVideoObjectEncoder::skipTest(Time t,VOPpredType vopPredType)
{
	if (m_uiRateControl==RC_MPEG4) {
		if (!m_statRC.firstFrame ()) {// test whether we should skip this frame
			if (m_statRC.skipThisFrame ())
				return TRUE;
		} 
		else
			m_statRC.resetFirstFrame ();
	}
	return FALSE;
}

Void CVideoObjectEncoder::encode (
	Bool bVOPVisible, 
	Time t,
	VOPpredType vopPredType,
	const CVOPU8YUVBA* pvopfRefBaseLayer)
{
	m_t = t;
	m_vopmd.vopPredType = vopPredType;
// RRV insertion
    if(m_vopmd.RRVmode.iOnOff == 1)
	{
		m_vopmd.RRVmode.iQave		= 0;
		if(m_statsVOP.nQMB != 0)
		{
			m_vopmd.RRVmode.iQave	= m_statsVOP.nQp /m_statsVOP.nQMB;
		}
		m_vopmd.RRVmode.iNumBits	= m_statsVOP.nBitsTotal;
	}
	m_iRRVScale	= 1;	// default value
// ~RRV	
    m_statsVOP.reset ();

	Bool bTemporalScalability = m_volmd.bTemporalScalability; // added by Sharp (98/2/10)
	Bool bPrevRefVopWasCoded = m_bCodedFutureRef;

//OBSS_SAIT_991015
	if (m_volmd.volType == ENHN_LAYER && m_volmd.fAUsage == ONE_BIT && (m_volmd.bSpatialScalability && m_volmd.iHierarchyType==0) && m_volmd.iuseRefShape ==0 ) { 
		if (!m_bCodedBaseRef  || !bPrevRefVopWasCoded ) 
			m_vopmd.vopPredType = PVOP;
	}
//~OBSS_SAIT_991015

	//__LOW_LATENCY_SPRITE_
	if (m_uiSprite == 1 && m_sptMode != BASIC_SPRITE && m_vopmd.SpriteXmitMode != STOP)	{
		setRefStartingPointers (); // need to compute the starting pointers of the refVOP's (corresponding to the current Rct)
		computeVOPMembers ();
		m_iNumSptMB = 0;
		encodeVOP ();
	}
	else {
	    if (m_uiSprite == 1 && m_t>=0)
		    m_vopmd.vopPredType = SPRITE;
	
	    m_pbitstrmOut->reset ();
	    cout << "\nVOP " << m_uiVOId << "\n";
	    cout << "\tVOL " << m_volmd.volType << "\n"; // added by Sharp (98/2/10)

		if(m_vopmd.vopPredType==IVOP || m_vopmd.vopPredType==PVOP || ((m_uiSprite == 2) && (m_vopmd.vopPredType == SPRITE))) // GMC
			m_bCodedFutureRef = bVOPVisible; // flag used by bvop prediction
//OBSS_SAIT_991015
		if (m_volmd.volType == ENHN_LAYER && m_volmd.fAUsage == ONE_BIT && (m_volmd.bSpatialScalability && m_volmd.iHierarchyType==0) && m_volmd.iuseRefShape ==0 )
			m_bCodedFutureRef = bVOPVisible; // flag used by OBSS bvop prediction
//~OBSS_SAIT_991015

	    if(!bVOPVisible)
	    {
#ifdef __TRACE_AND_STATS_
		    m_pbitstrmOut -> trace (m_t, "VOP_Time");
#endif // __TRACE_AND_STATS_
		    codeNonCodedVOPHead ();
		    cout << "\tTime..." << m_t << " (" << m_t/m_volmd.dFrameHz << " sec)" 
				<< "\n\tNot coded.\n\n";
		    cout.flush ();
		    m_statsVOP.nBitsStuffing += m_pbitstrmOut->flush ();
#ifdef __TRACE_AND_STATS_
		    m_statsVOP.dSNRY = m_statsVOP.dSNRU = m_statsVOP.dSNRV = 0;
		    m_statsVOP.print (TRUE);
		    m_statsVOL += m_statsVOP;
#endif // __TRACE_AND_STATS_
	    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91视频你懂的| 日韩欧美中文字幕公布| 亚洲午夜电影网| 69堂精品视频| 寂寞少妇一区二区三区| 精品久久久久久久人人人人传媒 | 欧美激情中文字幕一区二区| 成人午夜激情影院| 天堂一区二区在线免费观看| 国产精品福利影院| 久久久三级国产网站| 欧美一区二区久久| 欧洲av在线精品| 色噜噜久久综合| 精品一区二区在线看| 久久久久国色av免费看影院| 欧美色网站导航| 日本在线播放一区二区三区| 日本一区二区不卡视频| 337p日本欧洲亚洲大胆精品| 在线观看免费视频综合| 一本一本大道香蕉久在线精品| 久久99精品久久久久久久久久久久 | 国产成人综合亚洲网站| 美女性感视频久久| 免费成人你懂的| 日韩av网站在线观看| 日韩av电影免费观看高清完整版在线观看| 国产精品色呦呦| 1区2区3区精品视频| 中文字幕制服丝袜一区二区三区 | 久久久www成人免费无遮挡大片| 精品国产1区二区| 欧美成人aa大片| 精品少妇一区二区三区在线视频 | bt欧美亚洲午夜电影天堂| 成人免费视频播放| 日本韩国欧美一区| 国产人成亚洲第一网站在线播放| 国产精品久久久久久久蜜臀| 一卡二卡三卡日韩欧美| 天天影视网天天综合色在线播放| 美女性感视频久久| 成人性生交大合| 在线影院国内精品| 综合激情成人伊人| 欧美日韩国产高清一区二区| 欧美一区永久视频免费观看| 久久久国产一区二区三区四区小说| 国产精品国产三级国产专播品爱网| 中文字幕五月欧美| 久久国产精品色| 欧美日韩一卡二卡三卡 | 欧美欧美欧美欧美| 国产精品高潮呻吟| 蜜臀久久久久久久| 一本一本大道香蕉久在线精品 | 国产麻豆精品theporn| 在线不卡一区二区| 亚洲美女一区二区三区| 国产精品1区2区| 欧美xxxx在线观看| 久久不见久久见免费视频1| 欧美日韩一卡二卡| 一区二区三区美女视频| av在线不卡网| 成人免费在线观看入口| 成人精品视频网站| 亚洲色图丝袜美腿| 在线看国产一区| 久久成人久久爱| 国产精品欧美极品| 91同城在线观看| 亚洲最大成人网4388xx| 欧美色精品天天在线观看视频| 亚洲一级片在线观看| 欧美男男青年gay1069videost| 亚洲国产日日夜夜| 日韩欧美另类在线| 国产成人av电影在线播放| 国产欧美1区2区3区| 一本色道**综合亚洲精品蜜桃冫| 一区二区三区四区五区视频在线观看| 91国产成人在线| 国产米奇在线777精品观看| 亚洲国产精品成人综合 | 91久久久免费一区二区| 欧美96一区二区免费视频| 国产免费成人在线视频| 欧美优质美女网站| 九九视频精品免费| 亚洲欧美综合色| 精品国产第一区二区三区观看体验| 波多野结衣在线一区| 国产一区二区三区黄视频 | 欧美大片免费久久精品三p| 99r精品视频| 成人免费视频一区| 成人黄色av网站在线| 男女男精品视频网| 日韩精品午夜视频| 一区二区三区欧美| 亚洲视频一区在线| 国产精品欧美综合在线| 国产欧美一区二区三区在线看蜜臀 | 亚洲小少妇裸体bbw| 一区二区在线看| 亚洲无人区一区| 亚洲第一搞黄网站| 麻豆成人久久精品二区三区红| 日本不卡免费在线视频| 日本欧美一区二区三区| 日本女人一区二区三区| 另类调教123区| 国产成人免费视频精品含羞草妖精| 国内精品伊人久久久久av影院 | 久久综合九色综合欧美就去吻| 欧美久久高跟鞋激| 精品免费99久久| 亚洲国产精品二十页| 亚洲人成网站色在线观看| 亚洲福利一区二区| 奇米精品一区二区三区在线观看 | 成人精品高清在线| 欧美中文字幕不卡| 国产日韩欧美精品电影三级在线| 国产欧美一区二区在线观看| 亚洲丝袜另类动漫二区| 毛片一区二区三区| 99久久精品国产观看| 欧美一卡2卡3卡4卡| 亚洲欧洲另类国产综合| 日韩激情视频网站| 色婷婷激情久久| 国产女人18毛片水真多成人如厕| 一区二区三区日韩在线观看| 国产乱码精品一区二区三| 欧美丰满嫩嫩电影| 一区二区在线电影| 成人动漫一区二区| 久久综合九色综合97婷婷女人| 婷婷六月综合网| 高清不卡一二三区| 日韩一区二区三区在线观看 | 亚洲电影一区二区三区| 99久久婷婷国产精品综合| 精品福利视频一区二区三区| 午夜日韩在线观看| 欧美性欧美巨大黑白大战| 亚洲人成网站在线| 色88888久久久久久影院野外| 国产精品福利影院| aa级大片欧美| 一区二区三区四区乱视频| 色综合久久中文综合久久牛| 一区二区三区资源| 欧美人体做爰大胆视频| 奇米精品一区二区三区在线观看一| 欧美日本国产视频| 久久99国产精品麻豆| 久久欧美一区二区| 91女神在线视频| 午夜免费久久看| 精品粉嫩超白一线天av| 成人毛片在线观看| 亚洲高清视频的网址| 日韩视频一区在线观看| 韩国女主播一区| 一区二区三区国产| 久久亚洲二区三区| 在线观看网站黄不卡| 国内精品伊人久久久久av影院| 亚洲视频在线一区| 国产欧美日韩在线看| 91精品国产综合久久福利| 91丨国产丨九色丨pron| 美女性感视频久久| 一区二区三区日韩欧美| 2014亚洲片线观看视频免费| 一本色道亚洲精品aⅴ| 国产精品中文字幕欧美| 日韩中文字幕麻豆| 亚洲影院理伦片| 中文字幕中文在线不卡住| 久久精品夜色噜噜亚洲a∨| 日韩午夜激情免费电影| 欧美久久久影院| 欧美丝袜第三区| 一本久久a久久免费精品不卡| 成人精品国产一区二区4080| 久久精品二区亚洲w码| 石原莉奈一区二区三区在线观看| 自拍偷拍国产亚洲| 国产精品传媒视频| 1区2区3区欧美| 亚洲一区欧美一区| 一区二区三区欧美日| 一区二区三区**美女毛片| 成人免费在线播放视频| 亚洲色图在线播放|