Changeset 1274 in 3DVCSoftware for branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/TComDataCU.h
- Timestamp:
- 14 Jul 2015, 12:31:09 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/TComDataCU.h
r1225 r1274 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 … … 193 190 #endif 194 191 #endif 195 #if H_3D_DBBP192 #if NH_3D_DBBP 196 193 Bool* m_pbDBBPFlag; ///< array of DBBP flags 197 194 DbbpTmpData m_sDBBPTmpData; 198 195 #endif 199 #if H_3D196 #if NH_3D_MLC 200 197 Bool m_bAvailableFlagA1; ///< A1 available flag 201 198 Bool m_bAvailableFlagB1; ///< B1 available flag … … 220 217 UInt m_uiTotalBins; ///< sum of partition bins 221 218 Char m_codedQP; 222 #if H_3D 223 DisInfo m_cDefaultDisInfo; ///< Default disparity information for initializing 224 #endif 225 #if H_3D_IV_MERGE 226 TComMotionCand m_mergCands[MRG_IVSHIFT+1]; 227 Int m_baseListidc; 219 #if NH_3D_MLC 220 DisInfo m_cDefaultDisInfo; ///< Default disparity information for initializing 221 TComMotionCand m_mergCands[MRG_IVSHIFT+1]; ///< Motion candidates for merge mode 222 Int m_numSpatialCands; 228 223 #endif 229 224 … … 235 230 Bool xAddMVPCand ( AMVPInfo* pInfo, RefPicList eRefPicList, Int iRefIdx, UInt uiPartUnitIdx, MVP_DIR eDir ); 236 231 Bool xAddMVPCandOrder ( AMVPInfo* pInfo, RefPicList eRefPicList, Int iRefIdx, UInt uiPartUnitIdx, MVP_DIR eDir ); 237 #if H_3D_VSP232 #if NH_3D_VSP 238 233 Bool xAddVspCand( Int mrgCandIdx, DisInfo* pDInfo, Int& iCount); 239 234 #endif 240 #if H_3D_IV_MERGE235 #if NH_3D_IV_MERGE 241 236 Bool xAddIvMRGCand( Int mrgCandIdx, Int& iCount, Int* ivCandDir, TComMv* ivCandMv, Int* ivCandRefIdx ); 242 237 #endif … … 251 246 252 247 /// compute scaling factor from POC difference 253 #if ! H_3D_ARP248 #if !NH_3D_ARP 254 249 Int xGetDistScaleFactor ( Int iCurrPOC, Int iCurrRefPOC, Int iColPOC, Int iColRefPOC ); 255 250 #endif … … 257 252 Void xDeriveCenterIdx( UInt uiPartIdx, UInt& ruiPartIdxCenter ); 258 253 259 #if H_3D_VSP254 #if NH_3D_VSP 260 255 Void xSetMvFieldForVSP ( TComDataCU *cu, TComPicYuv *picRefDepth, TComMv *dv, UInt partAddr, Int width, Int height, Int *shiftLUT, RefPicList refPicList, Int refIdx, Bool isDepth, Int &vspSize ); 261 256 #endif … … 268 263 // create / destroy / initialize / copy 269 264 // ------------------------------------------------------------------------------------------------------------------- 270 #if H_3D_ARP 265 #if NH_3D_ARP 266 /// compute scaling factor from POC difference 271 267 Int xGetDistScaleFactor ( Int iCurrPOC, Int iCurrRefPOC, Int iColPOC, Int iColRefPOC ); 272 268 #endif … … 282 278 Void initSubCU ( TComDataCU* pcCU, UInt uiPartUnitIdx, UInt uiDepth, Int qp ); 283 279 Void setOutsideCUPart ( UInt uiAbsPartIdx, UInt uiDepth ); 284 #if H_3D_NBDV285 Void copyDVInfoFrom (TComDataCU* pcCU, UInt uiAbsPartIdx);280 #if NH_3D_NBDV 281 Void copyDVInfoFrom (TComDataCU* pcCU, UInt uiAbsPartIdx); 286 282 #endif 287 283 288 284 Void copySubCU ( TComDataCU* pcCU, UInt uiPartUnitIdx ); 289 285 Void copyInterPredInfoFrom ( TComDataCU* pcCU, UInt uiAbsPartIdx, RefPicList eRefPicList 290 #if H_3D_NBDV286 #if NH_3D_NBDV 291 287 , Bool bNBDV = false 292 288 #endif … … 319 315 #endif 320 316 317 #if NH_3D_ARP 318 Void setSlice ( TComSlice* pcSlice) { m_pcSlice = pcSlice; } 319 Void setPic ( TComDataCU* pcCU ) { m_pcPic = pcCU->getPic(); } 320 #endif 321 321 // ------------------------------------------------------------------------------------------------------------------- 322 322 // member functions for CU data … … 329 329 Void setCUTransquantBypassSubParts( Bool flag, UInt uiAbsPartIdx, UInt uiDepth ); 330 330 331 #if H_3D_DBBP331 #if NH_3D_DBBP 332 332 Pel* getVirtualDepthBlock(UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, UInt& uiDepthStride); 333 333 #endif … … 353 353 Void setPredModeSubParts ( PredMode eMode, UInt uiAbsPartIdx, UInt uiDepth ); 354 354 355 #if H_3D_DBBP355 #if NH_3D_DBBP 356 356 Bool* getDBBPFlag () { return m_pbDBBPFlag; } 357 357 Bool getDBBPFlag ( UInt uiIdx ) { return m_pbDBBPFlag[uiIdx]; } … … 454 454 template <typename T> 455 455 Void setSubPart ( T bParameter, T* pbBaseCtu, UInt uiCUAddr, UInt uiCUDepth, UInt uiPUIdx ); 456 #if H_3D_VSP 456 #if H_3D_VSP || NH_3D_DBBP 457 457 template<typename T> 458 458 Void setSubPartT ( T uiParameter, T* puhBaseLCU, UInt uiCUAddr, UInt uiCUDepth, UInt uiPUIdx ); … … 480 480 Void setIPCMFlag (UInt uiIdx, Bool b ) { m_pbIPCMFlag[uiIdx] = b; } 481 481 Void setIPCMFlagSubParts (Bool bIpcmFlag, UInt uiAbsPartIdx, UInt uiDepth); 482 #if H_3D_NBDV482 #if NH_3D_NBDV 483 483 Void setDvInfoSubParts ( DisInfo cDvInfo, UInt uiAbsPartIdx, UInt uiDepth ); 484 #if H_3D_VSP || NH_3D_DBBP 484 485 Void setDvInfoSubParts ( DisInfo cDvInfo, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth); 486 #endif 485 487 DisInfo* getDvInfo () { return m_pDvInfo; } 486 488 DisInfo getDvInfo (UInt uiIdx) { return m_pDvInfo[uiIdx]; } 487 489 #endif 488 #if H_3D_NBDV490 #if NH_3D_NBDV 489 491 Void xDeriveRightBottomNbIdx(Int &uiLCUIdxRBNb, Int &uiPartIdxRBNb ); 490 492 Bool xCheckSpatialNBDV (TComDataCU* pcTmpCU, UInt uiIdx, DisInfo* pNbDvInfo, Bool bSearchForMvpDv, IDVInfo* paMvpDvInfo, 491 493 UInt uiMvpDvPos 492 #if H_3D_NBDV_REF494 #if NH_3D_NBDV_REF 493 495 , Bool bDepthRefine = false 494 496 #endif … … 496 498 Bool xGetColDisMV ( Int currCandPic, RefPicList eRefPicList, Int refidx, Int uiCUAddr, Int uiPartUnitIdx, TComMv& rcMv, Int & iTargetViewIdx, Int & iStartViewIdx ); 497 499 Void getDisMvpCandNBDV ( DisInfo* pDInfo 498 #if H_3D_NBDV_REF500 #if NH_3D_NBDV_REF 499 501 , Bool bDepthRefine = false 500 502 #endif 501 503 ); 502 504 505 #if NH_3D_IV_MERGE 506 Void getDispforDepth ( UInt uiPartIdx, UInt uiPartAddr, DisInfo* cDisp); 507 #endif 508 503 509 #if H_3D 504 510 Void getDispforDepth ( UInt uiPartIdx, UInt uiPartAddr, DisInfo* cDisp); … … 507 513 Bool getNeighDepth (UInt uiPartIdx, UInt uiPartAddr, Pel* pNeighDepth, Int index); 508 514 #endif 509 #if H_3D_NBDV_REF515 #if NH_3D_NBDV_REF 510 516 Pel getMcpFromDM(TComPicYuv* pcBaseViewDepthPicYuv, TComMv* mv, Int iBlkX, Int iBlkY, Int iWidth, Int iHeight, Int* aiShiftLUT ); 511 517 Void estimateDVFromDM(Int refViewIdx, UInt uiPartIdx, TComPic* picDepth, UInt uiPartAddr, TComMv* cMvPred ); 512 #endif // H_3D_NBDV_REF518 #endif //NH_3D_NBDV_REF 513 519 #endif 514 520 #if H_3D_FAST_TEXTURE_ENCODING 515 521 Void getIVNStatus ( UInt uiPartIdx, DisInfo* pDInfo, Bool& bIVFMerge, Int& iIVFMaxD); 516 522 #endif 517 #if H_3D_SPIVMP523 #if NH_3D_SPIVMP 518 524 Void getSPPara(Int iPUWidth, Int iPUHeight, Int& iNumSP, Int& iNumSPInOneLine, Int& iSPWidth, Int& iSPHeight); 519 525 Void getSPAbsPartIdx(UInt uiBaseAbsPartIdx, Int iWidth, Int iHeight, Int iPartIdx, Int iNumPartLine, UInt& ruiPartAddr ); 520 526 Void setInterDirSP( UInt uiDir, UInt uiAbsPartIdx, Int iWidth, Int iHeight ); 521 527 #endif 522 #if H_3D_IV_MERGE528 #if NH_3D_IV_MERGE 523 529 Bool getInterViewMergeCands ( UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* availableMcDc, Bool bIsDepth 524 530 525 #if H_3D_SPIVMP531 #if NH_3D_SPIVMP 526 532 , TComMvField* pcMFieldSP, UChar* puhInterDirSP 527 533 #endif … … 529 535 ); 530 536 #endif 531 #if H_3D_ARP537 #if NH_3D_ARP 532 538 UChar* getARPW () { return m_puhARPW; } 533 539 UChar getARPW ( UInt uiIdx ) { return m_puhARPW[uiIdx]; } 534 540 Void setARPW ( UInt uiIdx, UChar w ) { m_puhARPW[uiIdx] = w; } 535 541 Void setARPWSubParts ( UChar w, UInt uiAbsPartIdx, UInt uiDepth ); 536 Double getARPWFactor ( UInt uiIdx );537 542 #endif 538 543 #if NH_3D_IC … … 542 547 Void setICFlagSubParts ( Bool bICFlag, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth ); 543 548 Bool isICFlagRequired ( UInt uiAbsPartIdx ); 549 Void getPartIndexAndSize( UInt uiPartIdx, UInt& ruiPartAddr, Int& riWidth, Int& riHeight, UInt uiAbsPartIdx = 0, Bool bLCU = false); 550 #elif NH_3D_VSP 544 551 Void getPartIndexAndSize( UInt uiPartIdx, UInt& ruiPartAddr, Int& riWidth, Int& riHeight, UInt uiAbsPartIdx = 0, Bool bLCU = false); 545 552 #else … … 654 661 Bool hasEqualMotion ( UInt uiAbsPartIdx, TComDataCU* pcCandCU, UInt uiCandAbsPartIdx ); 655 662 656 #if H_3D657 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; }663 #if NH_3D_MLC 664 Bool getAvailableFlagA1() { return m_bAvailableFlagA1; } 665 Bool getAvailableFlagB1() { return m_bAvailableFlagB1; } 666 Bool getAvailableFlagB0() { return m_bAvailableFlagB0; } 667 Bool getAvailableFlagA0() { return m_bAvailableFlagA0; } 668 Bool getAvailableFlagB2() { return m_bAvailableFlagB2; } 662 669 Void initAvailableFlags() { m_bAvailableFlagA1 = m_bAvailableFlagB1 = m_bAvailableFlagB0 = m_bAvailableFlagA0 = m_bAvailableFlagB2 = 0; } 663 670 Void buildMCL(TComMvField* pcMFieldNeighbours, UChar* puhInterDirNeighbours 664 #if H_3D_VSP671 #if NH_3D_VSP 665 672 , Int* vspFlag 666 673 #endif 667 #if H_3D_SPIVMP674 #if NH_3D_SPIVMP 668 675 , Bool* pbSPIVMPFlag 669 676 #endif 670 677 , Int& numValidMergeCand 671 678 ); 672 Void getInterMergeCandidates( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMvFieldNeighbours, UChar* puhInterDirNeighbours, Int& numValidMergeCand, Int mrgCandIdx = -1); 673 Void xGetInterMergeCandidates ( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMFieldNeighbours, UChar* puhInterDirNeighbours 674 #else 679 Void xGetInterMergeCandidates ( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMFieldNeighbours, UChar* puhInterDirNeighbours 680 #if NH_3D_SPIVMP 681 , TComMvField* pcMvFieldSP, UChar* puhInterDirSP 682 #endif 683 , Int& numValidMergeCand, Int mrgCandIdx = -1 ); 684 #endif 675 685 Void getInterMergeCandidates ( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMFieldNeighbours, UChar* puhInterDirNeighbours, Int& numValidMergeCand, Int mrgCandIdx = -1 ); 676 #endif 677 #if H_3D_SPIVMP 678 , TComMvField* pcMvFieldSP, UChar* puhInterDirSP 679 #endif 680 681 #if H_3D_VSP 682 #if H_3D_SPIVMP 686 687 #if NH_3D_VSP 688 #if NH_3D_SPIVMP 683 689 Bool* getSPIVMPFlag () { return m_pbSPIVMPFlag; } 684 690 Bool getSPIVMPFlag ( UInt uiIdx ) { return m_pbSPIVMPFlag[uiIdx]; } … … 723 729 UInt getCtxSkipFlag ( UInt uiAbsPartIdx ); 724 730 UInt getCtxInterDir ( UInt uiAbsPartIdx ); 725 #if H_3D_ARP731 #if NH_3D_ARP 726 732 UInt getCTXARPWFlag ( UInt uiAbsPartIdx ); 727 733 #endif
Note: See TracChangeset for help on using the changeset viewer.