Ignore:
Timestamp:
26 May 2015, 07:13:47 (10 years ago)
Author:
etri-htm
Message:

Reactive_MLC (the MACRO is "NH_3D_MLC")

Location:
branches/HTM-14.1-update-dev3-ETRI/source/Lib/TLibDecoder
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-14.1-update-dev3-ETRI/source/Lib/TLibDecoder/TDecCu.cpp

    r1217 r1233  
    385385    UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS_MEM];
    386386#else
     387#if NH_3D_MLC
     388    TComMvField cMvFieldNeighbours[MRG_MAX_NUM_CANDS_MEM << 1]; // double length for mv of both lists
     389    UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS_MEM];
     390#else
    387391    TComMvField cMvFieldNeighbours[MRG_MAX_NUM_CANDS << 1]; // double length for mv of both lists
    388392    UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS];
     393#endif
    389394#endif
    390395    Int numValidMergeCand = 0;
     
    402407#endif
    403408
     409
    404410#if H_3D_VSP
    405411    Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
    406412    memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
     413#endif
    407414#if H_3D_SPIVMP
    408415    Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM];
     
    413420    puhInterDirSP = new UChar[pcCU->getPic()->getPicSym()->getNumPartition()];
    414421#endif
     422
     423#if NH_3D_MLC
    415424    m_ppcCU[uiDepth]->initAvailableFlags();
     425#endif
    416426    m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex );
     427#if NH_3D_MLC
    417428    m_ppcCU[uiDepth]->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours
    418429#if H_3D_SPIVMP
     
    421432      , numValidMergeCand, uiMergeIndex );
    422433
    423     m_ppcCU[uiDepth]->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours, vspFlag
     434    m_ppcCU[uiDepth]->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours
     435#if H_3D_VSP
     436      , vspFlag
     437#endif
    424438#if H_3D_SPIVMP
    425439      , bSPIVMPFlag
    426440#endif
    427441      , numValidMergeCand );
     442#endif
     443#if H_3D_VSP
    428444    pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiAbsPartIdx, 0, uiDepth );
    429 #else
    430 #if H_3D
    431     m_ppcCU[uiDepth]->initAvailableFlags();
    432     m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex );
    433     m_ppcCU[uiDepth]->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex );
    434 #else
    435     m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex );
    436 #endif
    437 #endif
     445#endif
     446
    438447    pcCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeIndex], uiAbsPartIdx, 0, uiDepth );
    439448
  • branches/HTM-14.1-update-dev3-ETRI/source/Lib/TLibDecoder/TDecEntropy.cpp

    r1200 r1233  
    236236  UInt uiNumPU = ( ePartSize == SIZE_2Nx2N ? 1 : ( ePartSize == SIZE_NxN ? 4 : 2 ) );
    237237  UInt uiPUOffset = ( g_auiPUOffset[UInt( ePartSize )] << ( ( pcCU->getSlice()->getSPS()->getMaxTotalCUDepth() - uiDepth ) << 1 ) ) >> 4;
    238 #if H_3D_IV_MERGE
     238//#if H_3D_IV_MERGE
     239#if NH_3D_MLC
    239240  TComMvField cMvFieldNeighbours[MRG_MAX_NUM_CANDS_MEM << 1]; // double length for mv of both lists
    240241  UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS_MEM];
     
    483484        {
    484485          pcSubCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth ); // temporarily set.
     486
     487#if NH_3D_MLC
     488#if H_3D_VSP
     489          Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
     490          memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
     491#endif
     492#if H_3D_SPIVMP
     493          memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM);
     494#endif
     495          pcSubCU->initAvailableFlags();
     496#endif
    485497          pcSubCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand );
     498#if NH_3D_MLC
     499          pcSubCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours
     500#if H_3D_SPIVMP
     501            , pcMvFieldSP, puhInterDirSP
     502#endif
     503            , numValidMergeCand );
     504          pcSubCU->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours
     505#if H_3D_VSP
     506            , vspFlag
     507#endif
     508#if H_3D_SPIVMP
     509            , bSPIVMPFlag
     510#endif
     511            , numValidMergeCand );
     512#if H_3D_VSP
     513          pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth );
     514#endif
     515#endif
    486516          pcSubCU->setPartSizeSubParts( ePartSize, 0, uiDepth ); // restore.
    487517          hasMergedCandList = true;
     
    491521      {
    492522        uiMergeIndex = pcCU->getMergeIndex(uiSubPartIdx);
     523
     524#if NH_3D_MLC
     525#if H_3D_VSP
     526        Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
     527        memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
     528#endif
     529#if H_3D_SPIVMP
     530        memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM);
     531#endif
     532        pcSubCU->initAvailableFlags();
     533#endif
    493534        pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex );
     535#if NH_3D_MLC
     536        pcSubCU->xGetInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours
     537#if H_3D_SPIVMP
     538          , pcMvFieldSP, puhInterDirSP
     539#endif
     540          ,numValidMergeCand, uiMergeIndex );
     541        pcSubCU->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours
     542#if H_3D_VSP
     543          , vspFlag
     544#endif
     545#if H_3D_SPIVMP
     546          , bSPIVMPFlag
     547#endif
     548          ,numValidMergeCand );
     549#if H_3D_VSP
     550        pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth );
     551#endif
     552#endif
    494553      }
    495554
Note: See TracChangeset for help on using the changeset viewer.