Changeset 443 in 3DVCSoftware for trunk/source/Lib/TLibCommon/TComDataCU.h
- Timestamp:
- 26 May 2013, 15:41:34 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibCommon/TComDataCU.h
r332 r443 195 195 ///< value 0: non-VSP, value 1: VSP 196 196 #endif 197 #if MERL_VSP_NBDV_RefVId_Fix_D0166 198 Char* m_piVSPDir; ///< 0: LIST0; 1: LIST1 199 #endif 197 200 #if AMP_MRG 198 201 Bool m_bIsMergeAMP; … … 214 217 Bool* m_pbResPredFlag; ///< array of residual prediction flags 215 218 #endif 216 219 #if QC_ARP_D0177 220 UChar* m_puhARPW; 221 #endif 217 222 #if LGE_EDGE_INTRA_A0070 218 223 UChar* m_pucEdgeCode; ///< array of edge code … … 268 273 Pel* m_apSegmentDCOffset[2]; 269 274 #endif 270 275 #if QC_CU_NBDV_D0181 276 DisInfo* m_pDvInfo; 277 #endif 271 278 protected: 272 279 … … 275 282 Bool xAddMVPCandOrder ( AMVPInfo* pInfo, RefPicList eRefPicList, Int iRefIdx, UInt uiPartUnitIdx, MVP_DIR eDir ); 276 283 #if MERL_VSP_C0152 277 inline Bool xAddVspMergeCand ( UChar ucVspMergePos, Int vspIdx, Bool* bVspMvZeroDone, UInt uiDepth, Bool* abCandIsInter, Int& iCount, 278 UChar* puhInterDirNeighbours, TComMvField* pcMvFieldNeighbours, Int* iVSPIndexTrue, Int mrgCandIdx, DisInfo* pDisInfo ); 279 inline Void xInheritVspMode ( TComDataCU* pcCURef, UInt uiIdx, Bool* bVspMvZeroDone, Int iCount, Int* iVSPIndexTrue, TComMvField* pcMvFieldNeighbours, DisInfo* pDInfo ) ; 284 inline Bool xAddVspMergeCand ( 285 UChar ucVspMergePos, 286 #if !LGE_VSP_INHERIT_D0092 287 Int vspIdx, 288 Bool* bVspMvZeroDone, 289 #endif 290 UInt uiDepth, 291 Bool* abCandIsInter, 292 Int& iCount, 293 UChar* puhInterDirNeighbours, 294 TComMvField* pcMvFieldNeighbours, 295 Int* iVSPIndexTrue, 296 Int mrgCandIdx, 297 DisInfo* pDisInfo 298 #if MERL_VSP_NBDV_RefVId_Fix_D0166 299 , Int* iVspDirTrue = NULL 300 #endif 301 ); 302 inline Void xInheritVspMode ( TComDataCU* pcCURef, UInt uiIdx, Bool* bVspMvZeroDone, Int iCount, Int* iVSPIndexTrue, TComMvField* pcMvFieldNeighbours, DisInfo* pDInfo 303 #if QC_BVSP_CleanUP_D0191 304 ,UChar *puhInterDirNeighbours 305 #endif 306 #if MERL_VSP_NBDV_RefVId_Fix_D0166 307 , Int *iVSPDirTrue 308 #endif 309 ) ; 280 310 #endif 281 311 Void deriveRightBottomIdx ( PartSize eCUMode, UInt uiPartIdx, UInt& ruiPartIdxRB ); … … 299 329 300 330 /// compute scaling factor from POC difference 331 #if !QC_ARP_D0177 301 332 Int xGetDistScaleFactor ( Int iCurrPOC, Int iCurrRefPOC, Int iColPOC, Int iColRefPOC ); 302 333 #endif 303 334 Void xDeriveCenterIdx( PartSize eCUMode, UInt uiPartIdx, UInt& ruiPartIdxCenter ); 304 335 Bool xGetCenterCol( UInt uiPartIdx, RefPicList eRefPicList, int iRefIdx, TComMv *pcMv ); … … 314 345 // create / destroy / initialize / copy 315 346 // ------------------------------------------------------------------------------------------------------------------- 316 347 #if QC_ARP_D0177 348 Int xGetDistScaleFactor ( Int iCurrPOC, Int iCurrRefPOC, Int iColPOC, Int iColRefPOC ); 349 #endif 350 317 351 Void create ( UInt uiNumPartition, UInt uiWidth, UInt uiHeight, Bool bDecSubCu, Int unitSize 318 352 #if ADAPTIVE_QP_SELECTION … … 326 360 Void initSubCU ( TComDataCU* pcCU, UInt uiPartUnitIdx, UInt uiDepth, Int qp ); 327 361 Void setOutsideCUPart ( UInt uiAbsPartIdx, UInt uiDepth ); 328 362 #if QC_CU_NBDV_D0181 363 Void copyDVInfoFrom (TComDataCU* pcCU, UInt uiAbsPartIdx); 364 #endif 329 365 Void copySubCU ( TComDataCU* pcCU, UInt uiPartUnitIdx, UInt uiDepth ); 330 Void copyInterPredInfoFrom ( TComDataCU* pcCU, UInt uiAbsPartIdx, RefPicList eRefPicList ); 331 Void copyPartFrom ( TComDataCU* pcCU, UInt uiPartUnitIdx, UInt uiDepth ); 366 Void copyInterPredInfoFrom ( TComDataCU* pcCU, UInt uiAbsPartIdx, RefPicList eRefPicList 367 #if QC_CU_NBDV_D0181 368 , Bool bNBDV = false 369 #endif 370 ); 371 Void copyPartFrom ( TComDataCU* pcCU, UInt uiPartUnitIdx, UInt uiDepth 372 #if QC_ARP_D0177 373 , 374 Bool bRP = false 375 #endif 376 ); 332 377 333 378 Void copyToPic ( UChar uiDepth ); … … 458 503 Void setVSPIndex ( UInt uiIdx, Int n ) { m_piVSPIndex[uiIdx] = n; } 459 504 Void setVSPIndexSubParts( Char bVSPIndex, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth ); 505 #endif 506 #if MERL_VSP_NBDV_RefVId_Fix_D0166 507 Char* getVSPDir () { return m_piVSPDir; } 508 Char getVSPDir ( UInt uiIdx ) { return m_piVSPDir[uiIdx]; } 509 Void setVSPDir ( UInt uiIdx, Int n ) { m_piVSPDir[uiIdx] = n; } 510 Void setVSPDirSubParts ( Char bVSPDir, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth ); 511 Bool getRefListAndRefFrmIdx(Int targetRefViewIdx, RefPicList& eRefPicList, Int& refFrmIdx); 460 512 #endif 461 513 … … 474 526 #endif 475 527 #endif 528 #if QC_CU_NBDV_D0181 529 DisInfo* getDvInfo () { return m_pDvInfo; } 530 DisInfo getDvInfo (UInt uiIdx) { return m_pDvInfo[uiIdx]; } 531 Void setDvInfoSubParts( DisInfo cDvInfo, UInt uiAbsPartIdx, UInt uiDepth ); 532 #endif 476 533 477 534 #if AMP_MRG … … 537 594 Bool getUnifiedMvPredCan ( UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm, Bool bMerge ); 538 595 Void getDisMvpCand ( UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDInfo ); 596 #if QC_CU_NBDV_D0181 597 Bool getDisMvpCandNBDV( UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDInfo , Bool bParMerg = false 598 #else 539 599 Void getDisMvpCandNBDV( UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDInfo , Bool bParMerg = false 600 #endif 540 601 #if MERL_VSP_C0152 541 602 , Bool bDepthRefine = false … … 548 609 #if MERL_VSP_C0152 549 610 Pel getMcpFromDM(TComPicYuv* pcBaseViewDepthPicYuv, TComMv* mv, Int iBlkX, Int iBlkY, Int iWidth, Int iHeight, Int* aiShiftLUT, Int iShiftPrec, Bool bSimpleDvpRefine = false); 550 Void estimateDVFromDM(UInt uiPartIdx, TComPic* picDepth, UInt uiPartAddr, TComMv* cMvPred, Bool bSimpleDvpRefine = false); 611 Void estimateDVFromDM( 612 #if MERL_VSP_NBDV_RefVId_Fix_D0166 613 Int refViewIdx, 614 #endif 615 UInt uiPartIdx, TComPic* picDepth, UInt uiPartAddr, TComMv* cMvPred, Bool bSimpleDvpRefine = false); 551 616 #endif 552 617 Bool getIViewOrgDepthMvPred( UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv ); … … 568 633 Bool getResidualSamples( UInt uiPartIdx, Bool bRecon, TComYuv* pcYuv = 0 ); 569 634 #endif 635 #if QC_ARP_D0177 636 UChar* getARPW () { return m_puhARPW; } 637 UChar getARPW ( UInt uiIdx ) { return m_puhARPW[uiIdx]; } 638 Void setARPW ( UInt uiIdx, UChar w ) { m_puhARPW[uiIdx] = w; } 639 Void setARPWSubParts ( UChar w, UInt uiAbsPartIdx, UInt uiDepth ); 640 Double getARPWFactor ( UInt uiIdx ); 641 #endif 570 642 // ------------------------------------------------------------------------------------------------------------------- 571 643 // member functions for accessing partition information … … 647 719 Bool hasEqualMotion ( UInt uiAbsPartIdx, TComDataCU* pcCandCU, UInt uiCandAbsPartIdx ); 648 720 #if MERL_VSP_C0152 649 Void getInterMergeCandidates ( UInt uiAbsPartIdx, UInt uiPUIdx, UInt uiDepth, TComMvField* pcMFieldNeighbours, UChar* puhInterDirNeighbours, Int& numValidMergeCand, Int* uiVSPIndexTrue, Int mrgCandIdx = -1 ); 721 Void getInterMergeCandidates ( UInt uiAbsPartIdx, UInt uiPUIdx, UInt uiDepth, TComMvField* pcMFieldNeighbours, UChar* puhInterDirNeighbours, Int& numValidMergeCand, Int* uiVSPIndexTrue, 722 #if MERL_VSP_NBDV_RefVId_Fix_D0166 723 Int* iVSPDir, 724 #endif 725 Int mrgCandIdx = -1 ); 650 726 #else 651 727 Void getInterMergeCandidates ( UInt uiAbsPartIdx, UInt uiPUIdx, UInt uiDepth, TComMvField* pcMFieldNeighbours, UChar* puhInterDirNeighbours, Int& numValidMergeCand, Int mrgCandIdx = -1 ); … … 688 764 UInt getCtxResPredFlag ( UInt uiAbsPartIdx ); 689 765 #endif 690 766 #if QC_ARP_D0177 767 UInt getCTXARPWFlag ( UInt uiAbsPartIdx ); 768 #endif 691 769 UInt getSliceStartCU ( UInt pos ) { return m_uiSliceStartCU[pos-m_uiAbsIdxInLCU]; } 692 770 UInt getEntropySliceStartCU ( UInt pos ) { return m_uiEntropySliceStartCU[pos-m_uiAbsIdxInLCU]; } … … 808 886 Void setSDCFlagSubParts ( Bool bSDCFlag, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth ); 809 887 888 #if !PKU_QC_DEPTH_INTRA_UNI_D0195 810 889 UInt getCtxSDCFlag ( UInt uiAbsPartIdx ); 890 #endif 811 891 812 892 Bool getSDCAvailable ( UInt uiAbsPartIdx );
Note: See TracChangeset for help on using the changeset viewer.