Ignore:
Timestamp:
16 May 2013, 16:05:31 (11 years ago)
Author:
mitsubishi-htm
Message:

-D0166 part 1, set refView selection for NBDV.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-6.2-dev2-MERL/source/Lib/TLibDecoder/TDecCu.cpp

    r402 r412  
    393393        const UChar uhNewDepth = max<UInt>( uiDepth, pcTextureCU->getDepth( uiAbsPartIdx + ui ) );
    394394#if MERL_VSP_C0152
    395         Int vspIdx = pcTextureCU->getVSPIndex( uiAbsPartIdx + ui);
    396         pcCU->setVSPIndex( uiAbsPartIdx + ui, vspIdx);
     395        Int vspIdx = pcTextureCU->getVSPIndex( uiAbsPartIdx + ui );
     396        pcCU->setVSPIndex( uiAbsPartIdx + ui, vspIdx );
     397#endif
     398#if MERL_VSP_NBDV_RefVId_Fix_D0166
     399        Int vspDir = pcTextureCU->getVSPDir( uiAbsPartIdx + ui );
     400        pcCU->setVSPDir( uiAbsPartIdx + ui, vspDir );
    397401#endif
    398402        pcCU->setPredictionMode( uiAbsPartIdx + ui, MODE_SKIP );
     
    412416#if MERL_VSP_C0152
    413417    Int iVSPIndexTrue[3] = {-1, -1, -1};
     418#if MERL_VSP_NBDV_RefVId_Fix_D0166
     419    Int iVSPDirTrue[3]   = {-1, -1, -1};
     420    m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, uiDepth, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, iVSPIndexTrue, iVSPDirTrue, uiMergeIndex );
     421#else
    414422    m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, uiDepth, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, iVSPIndexTrue, uiMergeIndex );
     423#endif
    415424    {
    416425      Int iVSPIdx = 0;
     
    425434          }
    426435      }
    427       pcCU->setVSPIndexSubParts( iVSPIdx, uiAbsPartIdx, 0, uiDepth );  //Initialize the VSP, may change later in get InterMergeCandidates()
     436      pcCU->setVSPIndexSubParts( iVSPIdx, uiAbsPartIdx, 0, uiDepth );  // Initialize
     437#if MERL_VSP_NBDV_RefVId_Fix_D0166
     438      pcCU->setVSPDirSubParts( iVSPDirTrue[iVSPIdx-1], uiAbsPartIdx, 0, uiDepth );
     439#endif
    428440    }
    429441#else
     
    530542        Int vspIdx = pcTextureCU->getVSPIndex( uiAbsPartIdx + ui);
    531543        pcCU->setVSPIndex( uiAbsPartIdx + ui, vspIdx);
     544#endif
     545#if MERL_VSP_NBDV_RefVId_Fix_D0166
     546        if (pcCU->getSlice()->getIsDepth()) {
     547          pcCU->setVSPDir( uiAbsPartIdx + ui, 0);
     548        }
     549        else {
     550          Int vspDir = pcTextureCU->getVSPDir( uiAbsPartIdx + ui);
     551          pcCU->setVSPDir( uiAbsPartIdx + ui, vspDir);
     552        }
    532553#endif
    533554        pcCU->setPredictionMode( uiAbsPartIdx + ui, MODE_INTER );
Note: See TracChangeset for help on using the changeset viewer.