Changeset 1279 in 3DVCSoftware for branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TComDataCU.h
- Timestamp:
- 15 Jul 2015, 14:57:32 (9 years ago)
- Location:
- branches/HTM-14.1-update-dev1
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-14.1-update-dev1
-
branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TComDataCU.h
r1258 r1279 50 50 #include "TComPattern.h" 51 51 52 #if H_3D_ARP53 #include "TComYuv.h"54 #endif55 52 #if H_3D 56 53 #include <algorithm> … … 65 62 static const UInt NUM_MOST_PROBABLE_MODES=3; 66 63 67 #if H_3D_DBBP64 #if NH_3D_DBBP 68 65 typedef struct _DBBPTmpData 69 66 { … … 167 164 Char* m_apiMVPNum[NUM_REF_PIC_LIST_01]; ///< array of number of possible motion vectors predictors 168 165 Bool* m_pbIPCMFlag; ///< array of intra_pcm flags 169 #if H_3D_NBDV166 #if NH_3D_NBDV 170 167 DisInfo* m_pDvInfo; 171 168 #endif 172 #if H_3D_VSP169 #if NH_3D_VSP 173 170 Char* m_piVSPFlag; ///< array of VSP flags to indicate whehter a block uses VSP or not ///< 0: non-VSP; 1: VSP 174 171 #endif 175 #if H_3D_SPIVMP172 #if NH_3D_SPIVMP 176 173 Bool* m_pbSPIVMPFlag; ///< array of sub-PU IVMP flags to indicate whehter a block uses sub-PU IVMP ///< 0: non-SPIVMP; 1: SPIVMP 177 174 #endif 178 #if H_3D_ARP175 #if NH_3D_ARP 179 176 UChar* m_puhARPW; 180 177 #endif 181 #if H_3D_IC178 #if NH_3D_IC 182 179 Bool* m_pbICFlag; ///< array of IC flags 183 180 #endif … … 190 187 Pel* m_apSegmentDCOffset[2]; 191 188 #endif 192 #if H_3D_DBBP189 #if NH_3D_DBBP 193 190 Bool* m_pbDBBPFlag; ///< array of DBBP flags 194 191 DbbpTmpData m_sDBBPTmpData; 195 192 #endif 196 #if H_3D193 #if NH_3D_MLC 197 194 Bool m_bAvailableFlagA1; ///< A1 available flag 198 195 Bool m_bAvailableFlagB1; ///< B1 available flag … … 217 214 UInt m_uiTotalBins; ///< sum of partition bins 218 215 Char m_codedQP; 219 #if H_3D 220 DisInfo m_cDefaultDisInfo; ///< Default disparity information for initializing 221 #endif 222 #if H_3D_IV_MERGE 223 TComMotionCand m_mergCands[MRG_IVSHIFT+1]; 224 Int m_baseListidc; 216 #if NH_3D_MLC 217 DisInfo m_cDefaultDisInfo; ///< Default disparity information for initializing 218 TComMotionCand m_mergCands[MRG_IVSHIFT+1]; ///< Motion candidates for merge mode 219 Int m_numSpatialCands; 225 220 #endif 226 221 … … 232 227 Bool xAddMVPCand ( AMVPInfo* pInfo, RefPicList eRefPicList, Int iRefIdx, UInt uiPartUnitIdx, MVP_DIR eDir ); 233 228 Bool xAddMVPCandOrder ( AMVPInfo* pInfo, RefPicList eRefPicList, Int iRefIdx, UInt uiPartUnitIdx, MVP_DIR eDir ); 234 #if H_3D_VSP229 #if NH_3D_VSP 235 230 Bool xAddVspCand( Int mrgCandIdx, DisInfo* pDInfo, Int& iCount); 236 231 #endif 237 #if H_3D_IV_MERGE232 #if NH_3D_IV_MERGE 238 233 Bool xAddIvMRGCand( Int mrgCandIdx, Int& iCount, Int* ivCandDir, TComMv* ivCandMv, Int* ivCandRefIdx ); 239 234 #endif … … 241 236 Void deriveRightBottomIdx ( UInt uiPartIdx, UInt& ruiPartIdxRB ); 242 237 Bool xGetColMVP( RefPicList eRefPicList, Int ctuRsAddr, Int uiPartUnitIdx, TComMv& rcMv, Int& riRefIdx 243 #if H_3D_TMVP238 #if NH_3D_TMVP 244 239 , Bool bMRG = true 245 240 #endif … … 248 243 249 244 /// compute scaling factor from POC difference 250 #if ! H_3D_ARP245 #if !NH_3D_ARP 251 246 Int xGetDistScaleFactor ( Int iCurrPOC, Int iCurrRefPOC, Int iColPOC, Int iColRefPOC ); 252 247 #endif … … 254 249 Void xDeriveCenterIdx( UInt uiPartIdx, UInt& ruiPartIdxCenter ); 255 250 256 #if H_3D_VSP251 #if NH_3D_VSP 257 252 Void xSetMvFieldForVSP ( TComDataCU *cu, TComPicYuv *picRefDepth, TComMv *dv, UInt partAddr, Int width, Int height, Int *shiftLUT, RefPicList refPicList, Int refIdx, Bool isDepth, Int &vspSize ); 258 253 #endif … … 265 260 // create / destroy / initialize / copy 266 261 // ------------------------------------------------------------------------------------------------------------------- 267 #if H_3D_ARP 262 #if NH_3D_ARP 263 /// compute scaling factor from POC difference 268 264 Int xGetDistScaleFactor ( Int iCurrPOC, Int iCurrRefPOC, Int iColPOC, Int iColRefPOC ); 269 265 #endif … … 279 275 Void initSubCU ( TComDataCU* pcCU, UInt uiPartUnitIdx, UInt uiDepth, Int qp ); 280 276 Void setOutsideCUPart ( UInt uiAbsPartIdx, UInt uiDepth ); 281 #if H_3D_NBDV282 Void copyDVInfoFrom (TComDataCU* pcCU, UInt uiAbsPartIdx);277 #if NH_3D_NBDV 278 Void copyDVInfoFrom (TComDataCU* pcCU, UInt uiAbsPartIdx); 283 279 #endif 284 280 285 281 Void copySubCU ( TComDataCU* pcCU, UInt uiPartUnitIdx ); 286 282 Void copyInterPredInfoFrom ( TComDataCU* pcCU, UInt uiAbsPartIdx, RefPicList eRefPicList 287 #if H_3D_NBDV283 #if NH_3D_NBDV 288 284 , Bool bNBDV = false 289 285 #endif … … 316 312 #endif 317 313 314 #if NH_3D_ARP 315 Void setSlice ( TComSlice* pcSlice) { m_pcSlice = pcSlice; } 316 Void setPic ( TComDataCU* pcCU ) { m_pcPic = pcCU->getPic(); } 317 #endif 318 318 // ------------------------------------------------------------------------------------------------------------------- 319 319 // member functions for CU data … … 326 326 Void setCUTransquantBypassSubParts( Bool flag, UInt uiAbsPartIdx, UInt uiDepth ); 327 327 328 #if H_3D_DBBP328 #if NH_3D_DBBP 329 329 Pel* getVirtualDepthBlock(UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, UInt& uiDepthStride); 330 330 #endif … … 350 350 Void setPredModeSubParts ( PredMode eMode, UInt uiAbsPartIdx, UInt uiDepth ); 351 351 352 #if H_3D_DBBP352 #if NH_3D_DBBP 353 353 Bool* getDBBPFlag () { return m_pbDBBPFlag; } 354 354 Bool getDBBPFlag ( UInt uiIdx ) { return m_pbDBBPFlag[uiIdx]; } … … 451 451 template <typename T> 452 452 Void setSubPart ( T bParameter, T* pbBaseCtu, UInt uiCUAddr, UInt uiCUDepth, UInt uiPUIdx ); 453 #if H_3D_VSP 453 #if H_3D_VSP || NH_3D_DBBP 454 454 template<typename T> 455 455 Void setSubPartT ( T uiParameter, T* puhBaseLCU, UInt uiCUAddr, UInt uiCUDepth, UInt uiPUIdx ); … … 477 477 Void setIPCMFlag (UInt uiIdx, Bool b ) { m_pbIPCMFlag[uiIdx] = b; } 478 478 Void setIPCMFlagSubParts (Bool bIpcmFlag, UInt uiAbsPartIdx, UInt uiDepth); 479 #if H_3D_NBDV479 #if NH_3D_NBDV 480 480 Void setDvInfoSubParts ( DisInfo cDvInfo, UInt uiAbsPartIdx, UInt uiDepth ); 481 #if H_3D_VSP || NH_3D_DBBP 481 482 Void setDvInfoSubParts ( DisInfo cDvInfo, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth); 483 #endif 482 484 DisInfo* getDvInfo () { return m_pDvInfo; } 483 485 DisInfo getDvInfo (UInt uiIdx) { return m_pDvInfo[uiIdx]; } 484 486 #endif 485 #if H_3D_NBDV487 #if NH_3D_NBDV 486 488 Void xDeriveRightBottomNbIdx(Int &uiLCUIdxRBNb, Int &uiPartIdxRBNb ); 487 489 Bool xCheckSpatialNBDV (TComDataCU* pcTmpCU, UInt uiIdx, DisInfo* pNbDvInfo, Bool bSearchForMvpDv, IDVInfo* paMvpDvInfo, 488 490 UInt uiMvpDvPos 489 #if H_3D_NBDV_REF491 #if NH_3D_NBDV_REF 490 492 , Bool bDepthRefine = false 491 493 #endif … … 493 495 Bool xGetColDisMV ( Int currCandPic, RefPicList eRefPicList, Int refidx, Int uiCUAddr, Int uiPartUnitIdx, TComMv& rcMv, Int & iTargetViewIdx, Int & iStartViewIdx ); 494 496 Void getDisMvpCandNBDV ( DisInfo* pDInfo 495 #if H_3D_NBDV_REF497 #if NH_3D_NBDV_REF 496 498 , Bool bDepthRefine = false 497 499 #endif 498 500 ); 499 501 502 #if NH_3D_IV_MERGE 503 Void getDispforDepth ( UInt uiPartIdx, UInt uiPartAddr, DisInfo* cDisp); 504 #endif 505 500 506 #if H_3D 501 507 Void getDispforDepth ( UInt uiPartIdx, UInt uiPartAddr, DisInfo* cDisp); 502 508 Bool getDispMvPredCan(UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDis, Int* iPdm ); 503 509 #endif 504 #if H_3D_NBDV_REF510 #if NH_3D_NBDV_REF 505 511 Pel getMcpFromDM(TComPicYuv* pcBaseViewDepthPicYuv, TComMv* mv, Int iBlkX, Int iBlkY, Int iWidth, Int iHeight, Int* aiShiftLUT ); 506 512 Void estimateDVFromDM(Int refViewIdx, UInt uiPartIdx, TComPic* picDepth, UInt uiPartAddr, TComMv* cMvPred ); 507 #endif // H_3D_NBDV_REF513 #endif //NH_3D_NBDV_REF 508 514 #endif 509 515 #if NH_3D_DIS … … 513 519 Void getIVNStatus ( UInt uiPartIdx, DisInfo* pDInfo, Bool& bIVFMerge, Int& iIVFMaxD); 514 520 #endif 515 #if H_3D_SPIVMP521 #if NH_3D_SPIVMP 516 522 Void getSPPara(Int iPUWidth, Int iPUHeight, Int& iNumSP, Int& iNumSPInOneLine, Int& iSPWidth, Int& iSPHeight); 517 523 Void getSPAbsPartIdx(UInt uiBaseAbsPartIdx, Int iWidth, Int iHeight, Int iPartIdx, Int iNumPartLine, UInt& ruiPartAddr ); 518 524 Void setInterDirSP( UInt uiDir, UInt uiAbsPartIdx, Int iWidth, Int iHeight ); 519 525 #endif 520 #if H_3D_IV_MERGE526 #if NH_3D_IV_MERGE 521 527 Bool getInterViewMergeCands ( UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* availableMcDc, Bool bIsDepth 522 528 523 #if H_3D_SPIVMP529 #if NH_3D_SPIVMP 524 530 , TComMvField* pcMFieldSP, UChar* puhInterDirSP 525 531 #endif … … 527 533 ); 528 534 #endif 529 #if H_3D_ARP535 #if NH_3D_ARP 530 536 UChar* getARPW () { return m_puhARPW; } 531 537 UChar getARPW ( UInt uiIdx ) { return m_puhARPW[uiIdx]; } 532 538 Void setARPW ( UInt uiIdx, UChar w ) { m_puhARPW[uiIdx] = w; } 533 539 Void setARPWSubParts ( UChar w, UInt uiAbsPartIdx, UInt uiDepth ); 534 Double getARPWFactor ( UInt uiIdx ); 535 #endif 536 #if H_3D_IC 540 #endif 541 #if NH_3D_IC 537 542 Bool* getICFlag () { return m_pbICFlag; } 538 543 Bool getICFlag ( UInt uiIdx ) { return m_pbICFlag[uiIdx]; } … … 540 545 Void setICFlagSubParts ( Bool bICFlag, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth ); 541 546 Bool isICFlagRequired ( UInt uiAbsPartIdx ); 547 Void getPartIndexAndSize( UInt uiPartIdx, UInt& ruiPartAddr, Int& riWidth, Int& riHeight, UInt uiAbsPartIdx = 0, Bool bLCU = false); 548 #elif NH_3D_VSP 542 549 Void getPartIndexAndSize( UInt uiPartIdx, UInt& ruiPartAddr, Int& riWidth, Int& riHeight, UInt uiAbsPartIdx = 0, Bool bLCU = false); 543 550 #else … … 647 654 Bool hasEqualMotion ( UInt uiAbsPartIdx, TComDataCU* pcCandCU, UInt uiCandAbsPartIdx ); 648 655 649 #if H_3D650 Bool getAvailableFlagA1() { return m_bAvailableFlagA1; }651 Bool getAvailableFlagB1() { return m_bAvailableFlagB1; }652 Bool getAvailableFlagB0() { return m_bAvailableFlagB0; }653 Bool getAvailableFlagA0() { return m_bAvailableFlagA0; }654 Bool getAvailableFlagB2() { return m_bAvailableFlagB2; }656 #if NH_3D_MLC 657 Bool getAvailableFlagA1() { return m_bAvailableFlagA1; } 658 Bool getAvailableFlagB1() { return m_bAvailableFlagB1; } 659 Bool getAvailableFlagB0() { return m_bAvailableFlagB0; } 660 Bool getAvailableFlagA0() { return m_bAvailableFlagA0; } 661 Bool getAvailableFlagB2() { return m_bAvailableFlagB2; } 655 662 Void initAvailableFlags() { m_bAvailableFlagA1 = m_bAvailableFlagB1 = m_bAvailableFlagB0 = m_bAvailableFlagA0 = m_bAvailableFlagB2 = 0; } 656 663 Void buildMCL(TComMvField* pcMFieldNeighbours, UChar* puhInterDirNeighbours 657 #if H_3D_VSP664 #if NH_3D_VSP 658 665 , Int* vspFlag 659 666 #endif 660 #if H_3D_SPIVMP667 #if NH_3D_SPIVMP 661 668 , Bool* pbSPIVMPFlag 662 669 #endif 663 670 , Int& numValidMergeCand 664 671 ); 665 Void getInterMergeCandidates( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMvFieldNeighbours, UChar* puhInterDirNeighbours, Int& numValidMergeCand, Int mrgCandIdx = -1); 666 Void xGetInterMergeCandidates ( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMFieldNeighbours, UChar* puhInterDirNeighbours 667 #else 672 Void xGetInterMergeCandidates ( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMFieldNeighbours, UChar* puhInterDirNeighbours 673 #if NH_3D_SPIVMP 674 , TComMvField* pcMvFieldSP, UChar* puhInterDirSP 675 #endif 676 , Int& numValidMergeCand, Int mrgCandIdx = -1 ); 677 #endif 668 678 Void getInterMergeCandidates ( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMFieldNeighbours, UChar* puhInterDirNeighbours, Int& numValidMergeCand, Int mrgCandIdx = -1 ); 669 #endif 670 #if H_3D_SPIVMP 671 , TComMvField* pcMvFieldSP, UChar* puhInterDirSP 672 #endif 673 674 #if H_3D_VSP 675 #if H_3D_SPIVMP 679 680 #if NH_3D_VSP 681 #if NH_3D_SPIVMP 676 682 Bool* getSPIVMPFlag () { return m_pbSPIVMPFlag; } 677 683 Bool getSPIVMPFlag ( UInt uiIdx ) { return m_pbSPIVMPFlag[uiIdx]; } … … 698 704 Bool isBipredRestriction( UInt puIdx ); 699 705 700 #if H_3D_IC701 Bool isIC ( UInt uiPartIdx );702 #endif703 704 706 // ------------------------------------------------------------------------------------------------------------------- 705 707 // member functions for symbol prediction (most probable / mode conversion) … … 720 722 UInt getCtxSkipFlag ( UInt uiAbsPartIdx ); 721 723 UInt getCtxInterDir ( UInt uiAbsPartIdx ); 722 #if H_3D_ARP724 #if NH_3D_ARP 723 725 UInt getCTXARPWFlag ( UInt uiAbsPartIdx ); 724 726 #endif
Note: See TracChangeset for help on using the changeset viewer.