Ignore:
Timestamp:
4 Feb 2013, 02:58:35 (12 years ago)
Author:
mediatek-htm
Message:

Integration of JCT3V-C0137

The added texture merging candidate is controlled by the MACRO "MTK_DEPTH_MERGE_TEXTURE_CANDIDATE_C0137"

From MediaTek
yiwen.chen@…

Location:
branches/HTM-5.1-dev2-Mediatek/source/Lib/TLibCommon
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-5.1-dev2-Mediatek/source/Lib/TLibCommon/TComDataCU.cpp

    r244 r254  
    36243624{
    36253625#if HHI_INTER_VIEW_MOTION_PRED
     3626#if MTK_DEPTH_MERGE_TEXTURE_CANDIDATE_C0137
     3627  const Int extraMergeCand = ( ( getSlice()->getIsDepth() || getSlice()->getSPS()->getMultiviewMvPredMode() )? 1 : 0 );
     3628#else
    36263629  const Int extraMergeCand = ( getSlice()->getSPS()->getMultiviewMvPredMode() ? 1 : 0 );
     3630#endif
    36273631#endif
    36283632
     
    36513655  deriveLeftRightTopIdxGeneral( cCurPS, uiAbsPartIdx, uiPUIdx, uiPartIdxLT, uiPartIdxRT );
    36523656  deriveLeftBottomIdxGeneral( cCurPS, uiAbsPartIdx, uiPUIdx, uiPartIdxLB );
     3657
     3658#if MTK_DEPTH_MERGE_TEXTURE_CANDIDATE_C0137
     3659  if( m_pcSlice->getIsDepth())
     3660  {
     3661    UInt uiPartIdxCenter;
     3662    xDeriveCenterIdx( cCurPS, uiPUIdx, uiPartIdxCenter );   
     3663    TComDataCU *pcTextureCU = m_pcSlice->getTexturePic()->getCU( getAddr() );
     3664    if ( pcTextureCU && !pcTextureCU->isIntra( uiPartIdxCenter ) )
     3665    {
     3666      abCandIsInter[iCount] = true;     
     3667      puhInterDirNeighbours[iCount] = pcTextureCU->getInterDir( uiPartIdxCenter );
     3668      if( ( puhInterDirNeighbours[iCount] & 1 ) == 1 )
     3669      {
     3670        pcTextureCU->getMvField( pcTextureCU, uiPartIdxCenter, REF_PIC_LIST_0, pcMvFieldNeighbours[iCount<<1] );
     3671        TComMv cMvPred = pcMvFieldNeighbours[iCount<<1].getMv();
     3672        const TComMv cAdd( 1 << ( 2 - 1 ), 1 << ( 2 - 1 ) );
     3673        cMvPred+=cAdd;
     3674        cMvPred>>=2;
     3675        clipMv(cMvPred);
     3676        pcMvFieldNeighbours[iCount<<1].setMvField(cMvPred,pcMvFieldNeighbours[iCount<<1].getRefIdx());
     3677      }
     3678      if ( getSlice()->isInterB() )
     3679      {
     3680        if( ( puhInterDirNeighbours[iCount] & 2 ) == 2 )
     3681        {
     3682          pcTextureCU->getMvField( pcTextureCU, uiPartIdxCenter, REF_PIC_LIST_1, pcMvFieldNeighbours[(iCount<<1)+1] );
     3683          TComMv cMvPred = pcMvFieldNeighbours[(iCount<<1)+1].getMv();
     3684          const TComMv cAdd( 1 << ( 2 - 1 ), 1 << ( 2 - 1 ) );
     3685          cMvPred+=cAdd;
     3686          cMvPred>>=2;
     3687          clipMv(cMvPred);
     3688          pcMvFieldNeighbours[(iCount<<1)+1].setMvField(cMvPred,pcMvFieldNeighbours[(iCount<<1)+1].getRefIdx());
     3689        }
     3690      }
     3691#if SIMP_MRG_PRUN
     3692      if ( mrgCandIdx == iCount )
     3693      {
     3694        return;
     3695      }
     3696#endif
     3697      iCount ++;
     3698    }
     3699  }
     3700#endif
    36533701
    36543702#if HHI_INTER_VIEW_MOTION_PRED
  • branches/HTM-5.1-dev2-Mediatek/source/Lib/TLibCommon/TypeDef.h

    r244 r254  
    115115
    116116///// ***** MOTION PARAMETER INHERITANCE  *********
    117 #define HHI_MPI                           1   // motion parameter inheritance from texture picture for depth map coding
     117#define MTK_DEPTH_MERGE_TEXTURE_CANDIDATE_C0137   1   // JCT3V-C0137
     118#define HHI_MPI                           0   // motion parameter inheritance from texture picture for depth map coding
    118119#if HHI_MPI
    119120#define FIX_MPI_B0065                     1   // JCT3V-B0065, fix the MPI bug when RQT is off
Note: See TracChangeset for help on using the changeset viewer.