Ignore:
Timestamp:
11 Jun 2015, 01:07:43 (10 years ago)
Author:
ntt
Message:

Reactivation of VSP

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

Legend:

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

    r1233 r1255  
    152152    setIsChromaQpAdjCoded(true);
    153153  }
    154 
     154 
    155155  // start from the top level CU
    156156  xDecodeCU( pCtu, 0, 0, isLastCtuOfSliceSegment);
     
    293293if(!pcCU->getSlice()->isIntra())
    294294  {
    295 #if H_3D_ARP && H_3D_IV_MERGE
    296     if( pcCU->getSlice()->getIvResPredFlag() || pcCU->getSlice()->getIvMvPredFlag() )
     295#if NH_3D_ARP && NH_3D_IV_MERGE && NH_3D_VSP
     296    if( pcCU->getSlice()->getIvResPredFlag() || pcCU->getSlice()->getIvMvPredFlag() || pcCU->getSlice()->getViewSynthesisPredFlag() )
    297297#else
     298#if NH_3D_IV_MERGE && NH_3D_VSP
     299    if( pcCU->getSlice()->getIvMvPredFlag() || pcCU->getSlice()->getViewSynthesisPredFlag() )
     300#else
     301#if NH_3D_ARP && NH_3D_VSP
     302    if( pcCU->getSlice()->getIvResPredFlag() || pcCU->getSlice()->getViewSynthesisPredFlag() )
     303#else
     304#if NH_3D_VSP
     305    if( pcCU->getSlice()->getViewSynthesisPredFlag() )
     306#else
    298307#if H_3D_ARP
    299308    if( pcCU->getSlice()->getVPS()->getUseAdvRP(pcCU->getSlice()->getLayerId()) )
     
    303312#else
    304313    if (0)
     314#endif
     315#endif
     316#endif
    305317#endif
    306318#endif
     
    408420
    409421
    410 #if H_3D_VSP
     422#if NH_3D_VSP
    411423    Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
    412424    memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
     
    433445
    434446    m_ppcCU[uiDepth]->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours
    435 #if H_3D_VSP
     447#if NH_3D_VSP
    436448      , vspFlag
    437449#endif
     
    441453      , numValidMergeCand );
    442454#endif
    443 #if H_3D_VSP
     455#if NH_3D_VSP
    444456    pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiAbsPartIdx, 0, uiDepth );
    445457#endif
     
    456468        pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvd( cTmpMv, SIZE_2Nx2N, uiAbsPartIdx, uiDepth );
    457469        pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvField( cMvFieldNeighbours[ 2*uiMergeIndex + uiRefListIdx ], SIZE_2Nx2N, uiAbsPartIdx, uiDepth );
    458 #if H_3D_VSP
     470#if NH_3D_VSP
    459471        if( pcCU->getVSPFlag( uiAbsPartIdx ) != 0 )
    460472        {
  • branches/HTM-14.1-update-dev3-NTT/source/Lib/TLibDecoder/TDecEntropy.cpp

    r1233 r1255  
    318318        if ( !isMerged )
    319319        {
    320 #if H_3D_VSP
     320#if NH_3D_VSP
    321321          Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
    322322          memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
     
    337337            , numValidMergeCand );
    338338          pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth );
    339 
    340339#else
    341340#if H_3D
     
    355354      {
    356355        uiMergeIndex = pcCU->getMergeIndex(uiSubPartIdx);
    357 #if H_3D_VSP
     356#if NH_3D_VSP
    358357        Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
    359358        memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
     
    395394          pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvd( cTmpMv, ePartSize, uiSubPartIdx, uiDepth, uiPartIdx );
    396395          pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvField( cMvFieldNeighbours[ 2*uiMergeIndex + uiRefListIdx ], ePartSize, uiSubPartIdx, uiDepth, uiPartIdx );
    397 #if H_3D_VSP
     396#if NH_3D_VSP
    398397#if H_3D_DBBP
    399398          if( pcCU->getVSPFlag( uiSubPartIdx ) != 0 && !pcCU->getDBBPFlag( uiAbsPartIdx ) )
     
    486485
    487486#if NH_3D_MLC
    488 #if H_3D_VSP
     487#if NH_3D_VSP
    489488          Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
    490489          memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
     
    503502            , numValidMergeCand );
    504503          pcSubCU->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours
    505 #if H_3D_VSP
     504#if NH_3D_VSP
    506505            , vspFlag
    507506#endif
     
    510509#endif
    511510            , numValidMergeCand );
    512 #if H_3D_VSP
     511#if NH_3D_VSP
    513512          pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth );
    514513#endif
     
    523522
    524523#if NH_3D_MLC
    525 #if H_3D_VSP
     524#if NH_3D_VSP
    526525        Int vspFlag[MRG_MAX_NUM_CANDS_MEM];
    527526        memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);
     
    540539          ,numValidMergeCand, uiMergeIndex );
    541540        pcSubCU->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours
    542 #if H_3D_VSP
     541#if NH_3D_VSP
    543542          , vspFlag
    544543#endif
     
    547546#endif
    548547          ,numValidMergeCand );
    549 #if H_3D_VSP
     548#if NH_3D_VSP
    550549        pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth );
    551550#endif
     
    564563          pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvd( cTmpMv, ePartSize, uiSubPartIdx, uiDepth, uiPartIdx );
    565564          pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvField( cMvFieldNeighbours[ 2*uiMergeIndex + uiRefListIdx ], ePartSize, uiSubPartIdx, uiDepth, uiPartIdx );
    566 
     565#if NH_3D_VSP
     566          if( pcCU->getVSPFlag( uiSubPartIdx ) != 0 )
     567          {
     568            if ( uhInterDirNeighbours[ uiMergeIndex ] & (1<<uiRefListIdx) )
     569            {
     570              UInt dummy;
     571              Int vspSize;
     572              Int width, height;
     573              pcCU->getPartIndexAndSize( uiPartIdx, dummy, width, height, uiSubPartIdx, pcCU->getTotalNumPart()==256 );
     574              pcCU->setMvFieldPUForVSP( pcCU, uiSubPartIdx, width, height, RefPicList( uiRefListIdx ), cMvFieldNeighbours[ 2*uiMergeIndex + uiRefListIdx ].getRefIdx(), vspSize );
     575              pcCU->setVSPFlag( uiSubPartIdx, vspSize );
     576            }
     577          }
     578#endif
    567579        }
    568580      }
Note: See TracChangeset for help on using the changeset viewer.