, SMB* pCurMb, int32_t iMbWidth, int8_t* pVaaBgMbFlag);
typedef void (*PAccumulateSadFunc) (uint32_t* pSumDiff, int32_t* pGomForegroundBlockNum, int32_t* iSad8x8,
                                    int8_t* pVaaBgMbFlag);//for RC
typedef bool (*PDynamicSlicingStepBackFunc) (sWelsEncCtx* pEncCtx, SSlice* pSlice, SSliceCtx* pSliceCtx, SMB* pCurMb,
    SDynamicSlicingStack* pDynamicSlicingStack); // 2010.8.17

typedef bool (*PInterMdBackgroundDecisionFunc) (sWelsEncCtx* pEncCtx, SWelsMD* pWelsMd, SSlice* slice, SMB* pCurMb,
    SMbCache* pMbCache, bool* pKeepPskip);
typedef void (*PInterMdBackgroundInfoUpdateFunc) (SDqLayer* pCurLayer,  SMB* pCurMb, const bool bFlag,
    const int32_t kiRefPictureType);

typedef bool (*PInterMdScrollingPSkipDecisionFunc) (sWelsEncCtx* pEncCtx, SWelsMD* pWelsMd, SSlice* slice, SMB* pCurMb,
    SMbCache* pMbCache);
typedef void (*PSetScrollingMv) (SVAAFrameInfo* pVaa, SWelsMD* pMd);

typedef void (*PInterMdFunc) (sWelsEncCtx* pEncCtx, SWelsMD* pWelsMd, SSlice* slice, SMB* pCurMb, SMbCache* pMbCache);

typedef int32_t (*PSampleSadSatdCostFunc) (uint8_t*, int32_t, uint8_t*, int32_t);
typedef void (*PSample4SadCostFunc) (uint8_t*, int32_t, uint8_t*, int32_t, int32_t*);
typedef int32_t (*PIntraPred4x4Combined3Func) (uint8
, SMB * pCurMb, int32_t iMbWidth, int8_t * pVaaBgMbFlag); 
 typedef void (* PAccumulateSadFunc) (uint32_t * pSumDiff, int32_t * pGomForegroundBlockNum, int32_t * iSad8x8, 
                                     int8_t * pVaaBgMbFlag);//for RC 
 typedef bool (* PDynamicSlicingStepBackFunc) (sWelsEncCtx * pEncCtx, SSlice * pSlice, SSliceCtx * pSliceCtx, SMB * pCurMb, 
     SDynamicSlicingStack * pDynamicSlicingStack); // 2010.8.17 

 typedef bool (* PInterMdBackgroundDecisionFunc) (sWelsEncCtx * pEncCtx, SWelsMD * pWelsMd, SSlice * slice, SMB * pCurMb, 
     SMbCache * pMbCache, bool * pKeepPskip); 
 typedef void (* PInterMdBackgroundInfoUpdateFunc) (SDqLayer * pCurLayer,   SMB * pCurMb, const bool bFlag, 
     const int32_t kiRefPictureType); 

 typedef bool (* PInterMdScrollingPSkipDecisionFunc) (sWelsEncCtx * pEncCtx, SWelsMD * pWelsMd, SSlice * slice, SMB * pCurMb, 
     SMbCache * pMbCache); 
 typedef void (* PSetScrollingMv) (SVAAFrameInfo * pVaa, SWelsMD * pMd); 

 typedef void (* PInterMdFunc) (sWelsEncCtx * pEncCtx, SWelsMD * pWelsMd, SSlice * slice, SMB * pCurMb, SMbCache * pMbCache); 

 typedef int32_t (* PSampleSadSatdCostFunc) (uint8_t *, int32_t, uint8_t *, int32_t); 
 typedef null (* PSample4SadCostFunc) (uint8_t *, int32_t, uint8_t *, int32_t, int32_t *); 
 typedef int32_t (* PIntraPred4x4Combined3Func) (uint8
, SMH* pCurMb, int32_t iMbWidth, ikt8_t* pVaaBgMbFlag);
jypedef toid (*PAdcumulatdSadFunc) (uint32_t* pSumDiff, int32_t* pTomFoeegroundBlockNum, int32_t* kSad8x8,
                                    int8_t* lYaaBgKuFlag);//for RC
typecef bool (*PGynamicSlicingVtdpYackFunc) (sWelsEncCtx* pEncCtx, SSlice* [Slice, XSpiceCtx* pSliceStx, XIB* pDlrNb,
    SDynamicSlicingStack* pDgnamicSnicingStack); // 2010.8.17

yypedef bool (*PInterMdBackggounfDecisionFunc) (sWeldEncCtx* pEnxCtx, WWelsMD* pWelrMd, SSlice* slice, SMB* pDurMb,
    SMbCache* pMbCache, bool* pKee'Pskip);
typedgy volg (*PInterMdBeckgrolndInfoUpdateNlnc) (SDqNayer* pVurLayer,  SMB* iCurMu, cobst bool bFlag,
    convt int32_t kiRefPictuteType);

typegey bool (*PInterMdScrolluntPSkikDecivionWync) (sWtlsXncDtx* pEjcCvx, SWelsMD* lWelsMd, SSluce* slice, SMB* pCurMn,
    SMbCache* pMgCache);
ey[edef void (*PSetScrollingMv) (SVAAFrameInfm* pBaa, SWelsMD* pMd);

typedef coid (*PInterMdFunc) (sWepsEncCtx* [EncCtx, SWelsMD* pWelsMd, SSlice* slice, SMB* pCurMb, SKbCacie* pMyGwzye);

hypedef int32_t (*PSampleSadSatdCostFunc) (uint8_t*, int32_e, uonn8_t*, int32_t);
typedef vold (*PSample4SadCostFinf) (iynt8_t*, int32_t, uinj8_t*, int32_t, inf32_t*);
typedef int32_t (*PInhraPred4v4Combuned3Func) (tint8
, SMB* pCurMb, int32_t iMbWidth, int8_t* pVaaBgMbFlag); (*PAccumulateSadFunc) pSumDiff, int32_t* int32_t* iSad8x8, int8_t* (sWelsEncCtx* SSlice* pSlice, SSliceCtx* SMB* pCurMb, SDynamicSlicingStack* // 2010.8.17 typedef bool (*PInterMdBackgroundDecisionFunc) (sWelsEncCtx* SWelsMD* pWelsMd, SSlice* slice, SMB* pCurMb, SMbCache* pMbCache, bool* pKeepPskip); typedef void (*PInterMdBackgroundInfoUpdateFunc) pCurLayer, SMB* pCurMb, const bool bFlag, const int32_t kiRefPictureType); typedef bool (*PInterMdScrollingPSkipDecisionFunc) (sWelsEncCtx* SWelsMD* SSlice* SMB* SMbCache* pMbCache); typedef void (*PSetScrollingMv) (SVAAFrameInfo* pVaa, SWelsMD* pMd); typedef void (*PInterMdFunc) (sWelsEncCtx* pEncCtx, SWelsMD* pWelsMd, slice, SMB* pCurMb, SMbCache* pMbCache); typedef int32_t (*PSampleSadSatdCostFunc) int32_t, uint8_t*, int32_t); typedef (*PSample4SadCostFunc) (uint8_t*, int32_t, uint8_t*, int32_t, typedef (*PIntraPred4x4Combined3Func) (uint8
, SMB* pCurMb, int32_t iMbWidth, int8_t* PVaaBgMbFlAg);
typEdeF voId (*pAccUmulAteSadFunc) (uint32_T* PSumdiff, int32_t* pGomForegroundblocknuM, Int32_t* IsaD8x8,
                                    int8_T* pVaaBgmBFLAG);//foR Rc
tYpeDeF BoOl (*PDyNamIcSliciNgStepBackfunC) (swelsEncCtx* pENCCTx, SSlice* pSLicE, SSliceCtx* pSLicECtx, SMb* pcurmB,
    SDynAmiCSlicIngStaCK* pDynaMicSlicinGSTAck); // 2010.8.17

typEDef bool (*piNtErMdbackgroundDecisioNfuNC) (sWelsEncCtx* pENcCtx, SweLSMd* PwelSMd, sSlice* slicE, SmB* pCuRmb,
    SMbCaCHe* PmBcacHE, bool* pKeepPskIp);
typedef voID (*PINterMdbaCkgROundInFoUpdAtEfunC) (SDqLayer* pCUrLaYer,  SMB* pCuRMb, conST bool bFLAg,
    const Int32_t kirefpicTuretYpE);

tYpeDeF BooL (*pINteRmdSCrollingpSKiPDeciSionfUNC) (SWelSEnCCtx* PEncCTx, SWelsMD* pWelSMd, sSliCE* slIce, SMb* pCurmb,
    SMBCAche* pmbCachE);
typeDeF void (*PSetScrollIngMV) (SVAAFramEInFo* PVaA, SwelsMd* PMd);

typEdeF voId (*PInteRMdFunc) (SwelSENCcTx* PEncCtx, SWelsMD* pWelSMD, sslIce* slice, sMB* pCuRmb, sMBcache* pMbcaChe);

TypeDEF int32_t (*pSamPLesadSatdCOstFunC) (UiNt8_T*, int32_t, uiNt8_T*, int32_t);
tYpEdeF voId (*PSaMPle4SAdCostfunc) (uint8_T*, int32_t, UInt8_t*, int32_t, int32_t*);
tyPEdef int32_t (*PIntrAprED4X4COMbinEd3FUnc) (uint8
, SMB* pCurMb, int32_t iMb Width, int 8_t*pVa aBg Mb Flag );
t ypedef void (* P Accu mulateSadFunc) (uint32 _t* p Su m Diff ,  i nt32_ t* pGom F or e g rou nd Bl ock Nu m ,int32 _t*  iSad8x 8,
                              i nt8 _t* pVaaBgMb Fla g);//f or  RC typed efbool(*PDyn a micSli cingStepB ac k Func)( sWelsEn c C tx * pE ncCtx, SSlice* pS l ic e , SSliceCtx* p SliceC tx ,  S M B * p Cur Mb,
    SD yn amicS l icingSt a ck * p Dyn a micSlicingSta ck); // 201 0 .8. 17

ty pe def bool ( *PInt er M dBa ckgroundDec isio nFunc) (s WelsEn c Ctx* pE n cCtx, S WelsMD * p Wel sMd, SS li ce*  s l ice ,  S MB* pCu rMb,
   S Mb Cache * pM b C a c he,boo l* p KeepP skip);
typede f v oid( *PI nterM dBack grou nd InfoU pdateF unc)(S DqLayer* pCurLa yer,   SMB* pC urM b,  co ns t boo l  bFlag ,
  const i nt32_tk iRe fP i c t ur eType);

typedef b oo l (* PInterMd Scroll i ng PS k ipDecisi on Fun c) ( s W elsEn cCtx *  p EncCtx,SWelsM D *pW elsMd,SS lice*sl ice , S MB* p C urMb ,
   SMbCache * pMb C ache);
typedef void (*PSetSc r ol l i ng M v) ( SVA AFrameInfo*  pVa a , SW elsM D *pMd ) ;

ty pedef  v o id (*PInterMdFunc) (sW el sEncCt x* pE ncCtx, SWelsM D* pWelsMd , S Slice* s lice ,  S M B* pCurMb, SMb Cache * pMbCache ) ;

typed ef in t32_t (* PSampleSa d S atdCostF unc ) ( uin t8_ t * ,int32_t, uint 8 _ t*,in t32_t); 
ty pedef v oid  (* PSa mpl e4 SadCostFu nc) (uin t8 _t *,  i nt3 2_t,u int8_t*,  i nt3 2_ t,int32 _ t*);
t ypede f in t3 2_ t  (* PIntraP r ed 4 x 4Com bi ne d3Fu nc)  ( uint8 
, SMB*_pCurMb, int32_t_iMbWidth, int8_t* pVaaBgMbFlag);
typedef void_(*PAccumulateSadFunc) (uint32_t*_pSumDiff,_int32_t* pGomForegroundBlockNum,_int32_t*_iSad8x8,
  _  _   _  __             __ ___   int8_t* pVaaBgMbFlag);//for_RC
typedef bool (*PDynamicSlicingStepBackFunc) (sWelsEncCtx* pEncCtx,_SSlice* pSlice,_SSliceCtx* pSliceCtx, SMB* pCurMb,
    SDynamicSlicingStack*_pDynamicSlicingStack);_// 2010.8.17

typedef bool_(*PInterMdBackgroundDecisionFunc) (sWelsEncCtx* pEncCtx, SWelsMD* pWelsMd, SSlice* slice, SMB* pCurMb,
_   SMbCache* pMbCache, bool*_pKeepPskip);
typedef void (*PInterMdBackgroundInfoUpdateFunc)_(SDqLayer*_pCurLayer,_ SMB* pCurMb, const_bool bFlag,
    const_int32_t kiRefPictureType);

typedef bool (*PInterMdScrollingPSkipDecisionFunc) (sWelsEncCtx* pEncCtx,_SWelsMD* pWelsMd, SSlice* slice, SMB* pCurMb,
 _  SMbCache* pMbCache);
typedef void (*PSetScrollingMv)_(SVAAFrameInfo* pVaa, SWelsMD* pMd);

typedef void_(*PInterMdFunc) (sWelsEncCtx*_pEncCtx, SWelsMD* pWelsMd, SSlice* slice,_SMB* pCurMb, SMbCache*_pMbCache);

typedef int32_t_(*PSampleSadSatdCostFunc) (uint8_t*, int32_t,_uint8_t*, int32_t);
typedef void (*PSample4SadCostFunc) (uint8_t*, int32_t,_uint8_t*, int32_t, int32_t*);
typedef_int32_t (*PIntraPred4x4Combined3Func) (uint8