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

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

?? mc.cpp

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

This software module was originally developed by 

	Ming-Chieh Lee (mingcl@microsoft.com), Microsoft Corporation
	Bruce Lin (blin@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
    Mathias Wien (wien@ient.rwth-aachen.de) RWTH Aachen / Robert BOSCH GmbH

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

and also edited by
	Hideaki Kimata (NTT)

and also edited by
    Fujitsu Laboratories Ltd. (contact: Eishi Morimatsu)
    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:

	mc.cpp

Abstract:

	Motion compensation routines (common for encoder and decoder).

Revision History:
    December 20, 1997   Interlaced tools added by NextLevel Systems (GI)
                        X. Chen (xchen@nlvl.com) B. Eifrig (beifrig@nlvl.com)
    Feb.16 1999         add Quarter Sample 
                        Mathias Wien (wien@ient.rwth-aachen.de) 
    Feb.23 1999         GMC added by Yoshinori Suzuki (Hitachi, Ltd.)
	Aug.24, 1999 : NEWPRED added by Hideaki Kimata (NTT) 
	Sep.06	1999 : RRV added by Eishi Morimatsu (Fujitsu Laboratories Ltd.) 

*************************************************************************/

#include <stdio.h>

#include "typeapi.h"
#include "codehead.h"
#include "mode.hpp"
#include "vopses.hpp"
#include "global.hpp"

// NEWPRED
//#include "entropy/bitstrm.hpp"
#include "newpred.hpp"
// ~NEWPRED

// 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 CVideoObject::limitMVRangeToExtendedBBFullPel (CoordI &x,CoordI &y,CRct *prct,Int iBlkSize)
{
	if(prct==NULL)
		return;

	if(x < prct->left)
		x=prct->left;
	else if(x > (prct->right-iBlkSize))
		x=(prct->right-iBlkSize);
	if(y < prct->top)
		y=prct->top;
	else if(y > (prct->bottom-iBlkSize))
		y=(prct->bottom-iBlkSize);
}

Void CVideoObject::limitMVRangeToExtendedBBHalfPel (CoordI &x,CoordI &y,CRct *prct,Int iBlkSize)
{
	if(prct==NULL)
		return;

	if(x < prct->left*2)
		x=prct->left*2;
	else if(x > (prct->right-iBlkSize)*2)
		x=(prct->right-iBlkSize)*2;
	if(y < prct->top*2)
		y=prct->top*2;
	else if(y > (prct->bottom-iBlkSize)*2)
		y=(prct->bottom-iBlkSize)*2;
}

 // Quarter sample
Void CVideoObject::limitMVRangeToExtendedBBQuarterPel (CoordI &x,CoordI &y,CRct *prct,Int iBlkSize)
{
	if(prct==NULL)
		return;

    Int iBlkSizeX, iBlkSizeY;
    
    if (iBlkSize == 0) {
      iBlkSizeX = MB_SIZE;
      iBlkSizeY = MB_SIZE; // Field vectors are given in frame coordinates
    }
    else {
      iBlkSizeX = iBlkSize; 
      iBlkSizeY = iBlkSize; 
    }
    
	if( x < (prct->left + EXPANDY_REFVOP - iBlkSizeX)*4)
		x = (prct->left + EXPANDY_REFVOP - iBlkSizeX)*4;
	else if (x > (prct->right - EXPANDY_REFVOP)*4)
		x = (prct->right - EXPANDY_REFVOP)*4;
	if( y < (prct->top + EXPANDY_REFVOP - iBlkSizeY)*4)
		y = (prct->top + EXPANDY_REFVOP - iBlkSizeY)*4;
	else if (y > (prct->bottom - EXPANDY_REFVOP)*4)
		y = (prct->bottom - EXPANDY_REFVOP)*4;
}
// ~Quarter sample

Void CVideoObject::motionCompMB (
	PixelC* ppxlcPredMB,
	const PixelC* ppxlcRefLeftTop,
	const CMotionVector* pmv, const CMBMode* pmbmd, 
	Int imbX, Int imbY,
	CoordI x, CoordI y,
	Bool bSkipNonOBMC,
	Bool bAlphaMB,
	CRct *prctMVLimit
)
{
// RRV insertion
	PixelC *pc_block16x16;
	if(m_vopmd.RRVmode.iRRVOnOff == 1)
	{
    	pc_block16x16= new PixelC[256];
	}
// ~RRV

  if (!bAlphaMB && !m_volmd.bAdvPredDisable && !pmbmd->m_bFieldMV && !pmbmd->m_bMCSEL) { // GMC
    motionCompOverLap (
                       ppxlcPredMB, ppxlcRefLeftTop,
                       pmv, pmbmd,
                       imbX, imbY,
                       x, y,
                       prctMVLimit
                       );
  }
  else {
    if (bSkipNonOBMC && !pmbmd -> m_bMCSEL) // GMC
      return;
    if (!pmbmd -> m_bhas4MVForward && !pmbmd -> m_bFieldMV && !pmbmd -> m_bMCSEL) // GMC
      if (m_volmd.bQuarterSample) // Quarter sample
        motionCompQuarterSample (ppxlcPredMB, ppxlcRefLeftTop, MB_SIZE,
                                 x * 4 + pmv->trueMVHalfPel ().x,
                                 y * 4 + pmv->trueMVHalfPel ().y,
                                 m_vopmd.iRoundingControl, prctMVLimit);
      else
// RRV modification		  
		  if(m_vopmd.RRVmode.iRRVOnOff == 1)
		  {
			  motionComp(ppxlcPredMB, ppxlcRefLeftTop,
						 (MB_SIZE *2), 
						 x * 2 + pmv->trueMVHalfPel_x2 ().x, 
						 y * 2 + pmv->trueMVHalfPel_x2 ().y,
						 m_vopmd.iRoundingControl,
						 prctMVLimit);
		  }
		  else
		  {
			  motionComp(ppxlcPredMB, ppxlcRefLeftTop,
						 MB_SIZE, 
						 x * 2 + pmv->trueMVHalfPel ().x, 
						 y * 2 + pmv->trueMVHalfPel ().y ,
						 m_vopmd.iRoundingControl,
						 prctMVLimit);
		  }
//        motionComp (
//                    ppxlcPredMB, ppxlcRefLeftTop,
//                    MB_SIZE, 
//                    x * 2 + pmv->trueMVHalfPel ().x, 
//                    y * 2 + pmv->trueMVHalfPel ().y ,
//                    m_vopmd.iRoundingControl,
//                    prctMVLimit
//                    );
// ~RRV
    else if (pmbmd -> m_bFieldMV) {
      const CMotionVector* pmv16x8 = pmv+5;
      if(pmbmd->m_bForwardTop) {
        pmv16x8++;
        if (m_volmd.bQuarterSample) // Quarter sample
          motionCompQuarterSample (
                                   ppxlcPredMB, 
                                   ppxlcRefLeftTop+m_iFrameWidthY,
                                   0,
                                   x * 4 + pmv16x8->trueMVHalfPel ().x,
                                   y * 4 + pmv16x8->trueMVHalfPel ().y,
                                   m_vopmd.iRoundingControl, prctMVLimit
                                   );
        else
          motionCompYField (
                            ppxlcPredMB,
                            ppxlcRefLeftTop+m_iFrameWidthY,
                            x * 2 + pmv16x8->trueMVHalfPel ().x, 
                            y * 2 + pmv16x8->trueMVHalfPel ().y, 
                            prctMVLimit); // added by Y.Suzuki for the extended bounding box support
        pmv16x8++;
      }
      else {
        if (m_volmd.bQuarterSample) // Quarter sample
          motionCompQuarterSample (
                                   ppxlcPredMB, 
                                   ppxlcRefLeftTop,
                                   0,
                                   x * 4 + pmv16x8->trueMVHalfPel ().x,
                                   y * 4 + pmv16x8->trueMVHalfPel ().y,
                                   m_vopmd.iRoundingControl, prctMVLimit
                                   );
        else
          motionCompYField (
                            ppxlcPredMB,
                            ppxlcRefLeftTop,
                            x * 2 + pmv16x8->trueMVHalfPel ().x, 
                            y * 2 + pmv16x8->trueMVHalfPel ().y, 
                            prctMVLimit); // added by Y.Suzuki for the extended bounding box support
        pmv16x8++;
        pmv16x8++;
      }
      if(pmbmd->m_bForwardBottom) {
        pmv16x8++;
        if (m_volmd.bQuarterSample) // Quarter sample
          motionCompQuarterSample (
                                   ppxlcPredMB+MB_SIZE, 
                                   ppxlcRefLeftTop+m_iFrameWidthY,
                                   0,
                                   x * 4 + pmv16x8->trueMVHalfPel ().x,
                                   y * 4 + pmv16x8->trueMVHalfPel ().y,
                                   m_vopmd.iRoundingControl, prctMVLimit
                                   );
        else
          motionCompYField (
                            ppxlcPredMB+MB_SIZE,
                            ppxlcRefLeftTop+m_iFrameWidthY,
                            x * 2 + pmv16x8->trueMVHalfPel ().x, 
                            y * 2 + pmv16x8->trueMVHalfPel ().y, 
                            prctMVLimit); // added by Y.Suzuki for the extended bounding box support
      }
      else {
        if (m_volmd.bQuarterSample) // Quarter sample
          motionCompQuarterSample (
                                   ppxlcPredMB+MB_SIZE, 
                                   ppxlcRefLeftTop,
                                   0,
                                   x * 4 + pmv16x8->trueMVHalfPel ().x,
                                   y * 4 + pmv16x8->trueMVHalfPel ().y,
                                   m_vopmd.iRoundingControl, prctMVLimit
                                   );
        else
          motionCompYField (
                            ppxlcPredMB+MB_SIZE,
                            ppxlcRefLeftTop,
                            x * 2 + pmv16x8->trueMVHalfPel ().x, 
                            y * 2 + pmv16x8->trueMVHalfPel ().y, 
                            prctMVLimit); // added by Y.Suzuki for the extended bounding box support
      }
    }
// GMC
    else if(pmbmd -> m_bMCSEL){
	FindGlobalPredForGMC (x,y,ppxlcPredMB,ppxlcRefLeftTop);

    }
// ~GMC
    else {
      const CMotionVector* pmv8 = pmv;
      pmv8++;
// RRV modification
	  CoordI blkX, blkY;
	  if(m_vopmd.RRVmode.iRRVOnOff == 1)
	  {

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
极品少妇xxxx精品少妇| 日韩成人免费电影| 日韩免费一区二区三区在线播放| 国产在线视频不卡二| 亚洲猫色日本管| 国产欧美一区二区精品性| 在线欧美日韩精品| 成人听书哪个软件好| 奇米精品一区二区三区四区 | 色婷婷香蕉在线一区二区| 国内精品嫩模私拍在线| 亚洲18女电影在线观看| 亚洲激情在线播放| 亚洲欧美日韩小说| 亚洲欧美成aⅴ人在线观看| 国产精品理论在线观看| 国产亚洲成年网址在线观看| 精品福利视频一区二区三区| 精品视频1区2区| 欧美日韩视频第一区| 欧美浪妇xxxx高跟鞋交| 欧美三级三级三级爽爽爽| 欧美日韩国产欧美日美国产精品| 在线精品亚洲一区二区不卡| jizz一区二区| 99久久伊人网影院| 91久久精品网| 欧美丰满高潮xxxx喷水动漫| 日韩欧美激情四射| 日韩精品在线网站| 国产亚洲一区二区在线观看| 国产午夜亚洲精品午夜鲁丝片| 国产精品久久久久久久久久久免费看 | 精品国产一区二区三区不卡| 久久久精品2019中文字幕之3| 国产欧美一区二区精品性| 中文在线一区二区| 亚洲成在线观看| 国产一区福利在线| 91黄色在线观看| 欧美成人a∨高清免费观看| 久久久影视传媒| 亚洲一区二区欧美日韩| 国产一区视频导航| 欧美中文字幕一区| 久久久精品tv| 日韩激情在线观看| 91日韩精品一区| 日韩欧美国产综合| 亚洲美女视频在线| 久久99九九99精品| 欧洲精品在线观看| 中文字幕日本不卡| 国产精品影视在线观看| 欧美一区二区三区人| ●精品国产综合乱码久久久久| 精品亚洲成a人| 欧美精品久久久久久久久老牛影院| 国产精品久久国产精麻豆99网站| 麻豆精品在线视频| 91精品综合久久久久久| 亚洲精品亚洲人成人网在线播放| 久久国内精品视频| 日韩精品中文字幕一区二区三区| 亚洲精品免费看| 日本韩国一区二区三区| 亚洲天堂精品在线观看| 国产福利电影一区二区三区| 亚洲精品一区二区三区香蕉| 丝袜亚洲另类欧美综合| 欧美三级韩国三级日本一级| 亚洲精品菠萝久久久久久久| 91久久精品一区二区三区| 亚洲激情网站免费观看| 91精品福利视频| 午夜欧美2019年伦理| 3d动漫精品啪啪一区二区竹菊| 亚洲bdsm女犯bdsm网站| 在线不卡a资源高清| 久久综合综合久久综合| 久久久久88色偷偷免费| 国产精品一级片| 一区二区三区视频在线看| 欧美在线三级电影| 日韩高清不卡一区二区| 久久一区二区三区国产精品| 99re热这里只有精品免费视频| 亚洲欧美日韩在线| 91精品国产一区二区三区香蕉| 久久99精品久久久久久久久久久久 | 国产精品99久久久久| 亚洲男同性视频| 欧美r级电影在线观看| 国产福利电影一区二区三区| 亚洲一卡二卡三卡四卡无卡久久| 7777精品伊人久久久大香线蕉超级流畅 | 日韩欧美黄色影院| 99精品久久99久久久久| 天堂av在线一区| 亚洲精品日产精品乱码不卡| 91精品在线一区二区| 97久久久精品综合88久久| 欧美96一区二区免费视频| 中文字幕在线不卡一区| 久久亚洲捆绑美女| 91精品一区二区三区久久久久久 | 91久久久免费一区二区| 韩国毛片一区二区三区| 亚洲成a天堂v人片| 亚洲日本va在线观看| 久久精品男人天堂av| 欧美mv和日韩mv国产网站| 欧美系列在线观看| 色综合欧美在线| 91污片在线观看| 不卡一区中文字幕| www.一区二区| 99精品视频一区| 99精品久久久久久| a在线欧美一区| 91蜜桃网址入口| 91国偷自产一区二区开放时间| 成人午夜av影视| 99久久777色| 欧美一a一片一级一片| 欧美亚洲日本一区| 欧美精品色一区二区三区| 欧美电影影音先锋| 日韩午夜激情av| 精品国产乱码久久久久久老虎| 久久久夜色精品亚洲| 国产精品网站在线观看| 一区二区三区四区视频精品免费| 一区二区三区在线观看欧美| 视频一区二区不卡| 韩国女主播成人在线| 国产精品一区二区无线| 99精品国产一区二区三区不卡| 色天使色偷偷av一区二区| 日韩午夜在线播放| 国产精品短视频| 午夜精品福利一区二区三区av| 久久99国产精品免费网站| 成人免费视频播放| 欧美午夜精品一区二区三区| 久久久久九九视频| 亚洲一区二区三区四区在线观看| 久久精品国产99国产| 91性感美女视频| www亚洲一区| 欧美激情在线观看视频免费| 一区二区三区四区国产精品| 激情综合色综合久久综合| 91麻豆福利精品推荐| 欧美精品一区二区不卡 | 91理论电影在线观看| 日韩欧美一级二级| 亚洲国产精品久久人人爱| 成人毛片老司机大片| 日韩欧美电影一二三| 亚洲va韩国va欧美va| 99国产精品国产精品久久| 久久久精品2019中文字幕之3| 日产欧产美韩系列久久99| 91久久精品一区二区三区| 亚洲欧洲成人自拍| 成人免费高清在线观看| 国产精品羞羞答答xxdd| 欧美丝袜丝交足nylons| 中文字幕一区二区三区精华液| 国产一区二区三区蝌蚪| 日韩亚洲欧美在线观看| 麻豆精品视频在线观看免费| 欧美日韩视频在线一区二区| 亚洲自拍偷拍九九九| 欧美三级一区二区| 日日摸夜夜添夜夜添国产精品| 欧美日韩一区国产| 亚洲国产成人av好男人在线观看| 91福利国产成人精品照片| 亚洲免费av在线| 91精品国产综合久久久蜜臀图片| 日本美女视频一区二区| 欧美精品一区二区三区在线| 国产成人鲁色资源国产91色综| 国产精品国产三级国产三级人妇 | 国产成人av电影在线观看| 国产拍揄自揄精品视频麻豆| 99精品久久99久久久久| 亚洲一级二级在线| 精品免费国产一区二区三区四区| 国产一区二区剧情av在线| 亚洲欧美福利一区二区| 91麻豆精品国产91久久久久| 国产成人精品亚洲日本在线桃色| 亚洲人精品午夜| 日韩午夜中文字幕| 成av人片一区二区| 久久草av在线| 一区二区三区欧美|