Changeset 325 in 3DVCSoftware for branches/HTM-6.1-Cleanup/source/Lib/TLibCommon


Ignore:
Timestamp:
16 Apr 2013, 14:11:23 (12 years ago)
Author:
tech
Message:

Removed various macros.

Location:
branches/HTM-6.1-Cleanup/source/Lib/TLibCommon
Files:
17 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/ContextTables.h

    r296 r325  
    434434
    435435#if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX
    436 #if FIX_DMM_CTX_INIT_C0034
    437436static const UChar
    438 #else
    439 static const Short
    440 #endif
    441437INIT_DMM_FLAG[3][NUM_DMM_FLAG_CTX] =
    442438{
     
    452448};
    453449
    454 #if FIX_DMM_CTX_INIT_C0034
    455450static const UChar
    456 #else
    457 static const Short
    458 #endif
    459451INIT_DMM_MODE[3][NUM_DMM_MODE_CTX] =
    460452{
     
    470462};
    471463
    472 #if FIX_DMM_CTX_INIT_C0034
    473464static const UChar
    474 #else
    475 static const Short
    476 #endif
    477465INIT_DMM_DATA[3][NUM_DMM_DATA_CTX] =
    478466{
  • branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComDataCU.cpp

    r322 r325  
    31653165}
    31663166
    3167 #if LG_RESTRICTEDRESPRED_M24766
     3167#if H3D_IVRP
    31683168Void TComDataCU::getPartIndexAndSize( UInt uiPartIdx, UInt& ruiPartAddr, Int& riWidth, Int& riHeight, UInt uiAbsPartIdx, Bool bLCU)
    31693169{
     
    32503250#endif
    32513251
    3252 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138
    3253 Int TComDataCU::getResiPredMode(UInt uiPartAddr)
    3254 {
    3255   Int iAddResiShift = -1;
    3256 
    3257   for(UInt uiRefIdx = 0; uiRefIdx < 2; uiRefIdx++)
    3258   {
    3259     RefPicList eRefList = uiRefIdx ? REF_PIC_LIST_1 : REF_PIC_LIST_0;
    3260     Int iBestRefIdx = getCUMvField(eRefList)->getRefIdx(uiPartAddr);
    3261     if(iBestRefIdx >= 0 && getSlice()->getViewId() == getSlice()->getRefViewId(eRefList, iBestRefIdx))
    3262       iAddResiShift++;
    3263   }
    3264 
    3265   return iAddResiShift;
    3266 }
    3267 
    3268 Void TComDataCU::getPUResiPredShift(Int *iPUResiPredShift, UInt uiAbsPartIndex)
    3269 {
    3270   UInt uiPartSize = getPartitionSize(uiAbsPartIndex);
    3271   UInt uiPartAddr;
    3272   Int iWidth, iHeight;
    3273   Int iAddResiShift;
    3274 
    3275   if(uiPartSize == SIZE_2Nx2N)
    3276   {
    3277     iAddResiShift = getResiPredMode(uiAbsPartIndex);
    3278     for(UInt i = 0; i < 4; i++)
    3279       iPUResiPredShift[i] = (getSlice()->getPPS()->getUseWP() || getInterDir(uiAbsPartIndex) != 3) ? (iAddResiShift >= 0 ? 0 : -1) : (iAddResiShift >= 0 ? 1-iAddResiShift : -1);
    3280     return;
    3281   }
    3282 
    3283   if(uiPartSize == SIZE_2NxN || uiPartSize == SIZE_2NxnU || uiPartSize == SIZE_2NxnD)
    3284   {
    3285     for(UInt i = 0; i < 2; i++)
    3286     {
    3287       getPartIndexAndSize(i, uiPartAddr, iWidth, iHeight, uiAbsPartIndex, true);
    3288       uiPartAddr += uiAbsPartIndex;
    3289       iAddResiShift = getResiPredMode(uiPartAddr);
    3290       iPUResiPredShift[2*i] = iPUResiPredShift[2*i+1] = (getSlice()->getPPS()->getUseWP() || getInterDir(uiPartAddr) != 3) ? (iAddResiShift >= 0 ? 0 : -1) : (iAddResiShift >= 0 ? 1-iAddResiShift : -1);
    3291     }
    3292     return;
    3293   }
    3294 
    3295   if(uiPartSize == SIZE_Nx2N || uiPartSize == SIZE_nLx2N || uiPartSize == SIZE_nRx2N)
    3296   {
    3297     for(UInt i = 0; i < 2; i++)
    3298     {
    3299       getPartIndexAndSize(i, uiPartAddr, iWidth, iHeight, uiAbsPartIndex, true);
    3300       uiPartAddr += uiAbsPartIndex;
    3301       iAddResiShift = getResiPredMode(uiPartAddr);
    3302       iPUResiPredShift[i] = iPUResiPredShift[2+i] = (getSlice()->getPPS()->getUseWP() || getInterDir(uiPartAddr) != 3) ? (iAddResiShift >= 0 ? 0 : -1) : (iAddResiShift >= 0 ? 1-iAddResiShift : -1);
    3303     }
    3304     return;
    3305   }
    3306 
    3307   if(uiPartSize == SIZE_NxN)
    3308   {
    3309     for(UInt i = 0; i < 4; i++)
    3310     {
    3311       getPartIndexAndSize(i, uiPartAddr, iWidth, iHeight, uiAbsPartIndex, true);
    3312       uiPartAddr += uiAbsPartIndex;
    3313       iAddResiShift = getResiPredMode(uiPartAddr);
    3314       iPUResiPredShift[i] = (getSlice()->getPPS()->getUseWP() || getInterDir(uiPartAddr) != 3) ? (iAddResiShift >= 0 ? 0 : -1) : (iAddResiShift >= 0 ? 1-iAddResiShift : -1);
    3315     }
    3316   }
    3317 
    3318 }
    3319 #endif
    3320 
    33213252Void TComDataCU::getMvField ( TComDataCU* pcCU, UInt uiAbsPartIdx, RefPicList eRefPicList, TComMvField& rcMvField )
    33223253{
     
    36533584#endif //H3D_NBDV
    36543585
    3655 #if MTK_MDIVRP_C0138
     3586#if H3D_IVRP
    36563587  Bool bDVAvail = true;
    36573588#endif
     
    36933624    cDisInfo.m_acMvCand[0].setVer(0);
    36943625    cDisInfo.m_aVIdxCan[0] = 0;
    3695 #if MTK_MDIVRP_C0138
     3626#if H3D_IVRP
    36963627    bDVAvail = false;
    36973628#endif
     
    37483679
    37493680  Int iPdmDir[2] = {0, 0};
    3750 #if QC_AMVP_MRG_UNIFY_IVCAN_C0051
    37513681  getUnifiedMvPredCan(uiPUIdx, REF_PIC_LIST_0, 0, aiPdmRefIdx, acPdmMv, &cDisInfo, iPdmDir, true);
    37523682  Int iPdmInterDir;
    3753 #else
    3754   Int     iPdmInterDir      = cDisInfo.iN==0? 0:getPdmMergeCandidateDisCan ( uiPUIdx, aiPdmRefIdx, acPdmMv, &cDisInfo, iPdmDir );
    3755 #endif
    37563683#else // H3D_NBDV
    37573684  Int iPdmDir[2] = {0, 0};
     
    37603687  iPdmDir[1] = iPdmInterDir;
    37613688#endif // H3D_NBDV
    3762 #if MTK_MDIVRP_C0138
     3689#if H3D_IVRP
    37633690  if (m_pcSlice->getSPS()->getMultiviewResPredMode()==1 && iPdmDir[0] && !bNoPdmMerge && cCurPS == SIZE_2Nx2N && bDVAvail)
    37643691  {
     
    56505577        cDisInfo.m_aVIdxCan[0] = 0;
    56515578      }
    5652 #if QC_AMVP_MRG_UNIFY_IVCAN_C0051
    56535579      Int paiPdmRefIdx[4] = {-1, -1, -1, -1};
    56545580      Int iPdmDir[4]      = {-1, -1, -1, -1};
    5655 #if QC_C0051_FIXED_BY_MTK
    56565581      TComMv cPdmMvPred[4];
    5657 #else
    5658       TComMv cPdmMvPred[2];
    5659 #endif
    56605582      cPdmMvPred[0].m_bDvMcp = cPdmMvPred[1].m_bDvMcp = false;
    56615583      if(getUnifiedMvPredCan(uiPartIdx, eRefPicList, iRefIdx, paiPdmRefIdx, cPdmMvPred, &cDisInfo, iPdmDir, false))
    5662 #else // QC_AMVP_MRG_UNIFY_IVCAN_C0051
    5663       TComMv  cPdmMvPred;
    5664       if( getPdmMvPredDisCan( uiPartIdx, eRefPicList, iRefIdx, cPdmMvPred, &cDisInfo ) )
    5665 #endif // QC_AMVP_MRG_UNIFY_IVCAN_C0051
    56665584#else // H3D_NBDV
    56675585      if( getPdmMvPred( uiPartIdx, eRefPicList, iRefIdx, cPdmMvPred ) )
    56685586#endif
    56695587
    5670 #if QC_AMVP_MRG_UNIFY_IVCAN_C0051
    56715588      {
    56725589        clipMv( cPdmMvPred[0] );
     
    56775594        pInfo->m_acMvCand[0].set(0,0);
    56785595      }
    5679 #else
    5680       {
    5681         clipMv( cPdmMvPred );
    5682         pInfo->m_acMvCand[0] = cPdmMvPred;
    5683       }
    5684       else
    5685       {
    5686         pInfo->m_acMvCand[0].set(0,0);
    5687       }
    5688 #endif
    56895596    }
    56905597  }
     
    74227329}
    74237330#else //H3D_NBDV
    7424 #if QC_AMVP_MRG_UNIFY_IVCAN_C0051
    74257331Bool
    74267332TComDataCU::getUnifiedMvPredCan(UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm, Bool bMerge )
     
    74327338  return false;
    74337339}
    7434 #else
    7435 Int
    7436 TComDataCU::getPdmMergeCandidateDisCan( UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm )
    7437 {
    7438   TComDepthMapGenerator* pcDepthMapGenerator = m_pcSlice->getSPS()->getDepthMapGenerator();
    7439   ROFRS( pcDepthMapGenerator, 0 );
    7440   return pcDepthMapGenerator->getPdmMergeCandidate( this, uiPartIdx, paiPdmRefIdx, pacPdmMv, pDInfo, iPdm );
    7441 }
    7442 Bool
    7443 TComDataCU::getPdmMvPredDisCan( UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv, DisInfo* pDInfo, Bool bMerge )
    7444 {
    7445   TComDepthMapGenerator* pcDepthMapGenerator = m_pcSlice->getSPS()->getDepthMapGenerator();
    7446   ROFRS( pcDepthMapGenerator, false );
    7447   if (pDInfo->iN > 0 && pcDepthMapGenerator->getDisCanPdmMvPred(this, uiPartIdx, eRefPicList, iRefIdx, rcMv, pDInfo, bMerge )) //bug fix li
    7448     return true;
    7449   return false;
    7450 }
    7451 #endif
    74527340#endif //H3D_NBDV
    74537341
  • branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComDataCU.h

    r322 r325  
    535535  Bool          getPdmMvPred              ( UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv, Bool bMerge = false );
    536536#else //!H3D_NBDV
    537 #if QC_AMVP_MRG_UNIFY_IVCAN_C0051
    538537  Bool          getUnifiedMvPredCan       ( UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm, Bool bMerge );
    539 #else //QC_AMVP_MRG_UNIFY_IVCAN_C0051
    540   Bool          getPdmMvPredDisCan        ( UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv, DisInfo* pDInfo, Bool bMerge = false );
    541   Int           getPdmMergeCandidateDisCan( UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm );
    542 #endif //QC_AMVP_MRG_UNIFY_IVCAN_C0051
    543538  Void          getDisMvpCand        ( UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDInfo );
    544539  Void          getDisMvpCandNBDV( UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDInfo , Bool bParMerg = false
     
    576571  // member functions for accessing partition information
    577572  // -------------------------------------------------------------------------------------------------------------------
    578 #if LG_RESTRICTEDRESPRED_M24766
     573#if H3D_IVRP
    579574  Void          getPartIndexAndSize( UInt uiPartIdx, UInt& ruiPartAddr, Int& riWidth, Int& riHeight, UInt uiAbsPartIdx = 0, Bool bLCU = false);
    580 #else
    581   Void          getPartIndexAndSize   ( UInt uiPartIdx, UInt& ruiPartAddr, Int& riWidth, Int& riHeight );
    582 #endif
    583 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138
    584   Int           getResiPredMode(UInt uiPartAddr);
    585   Void          getPUResiPredShift (Int *iPUPredResiShift, UInt uiAbsPartIndex);
    586575#endif
    587576  UChar         getNumPartInter       ();
  • branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComDepthMapGenerator.cpp

    r322 r325  
    605605
    606606#if H3D_IVMP
    607 #if QC_AMVP_MRG_UNIFY_IVCAN_C0051
    608607Bool
    609608TComDepthMapGenerator::getPdmCandidate(TComDataCU* pcCU, UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm, Bool bMerge )
     
    636635  for( UInt uiBId = 0; uiBId < m_uiCurrViewId && iValid==0; uiBId++ )
    637636  {
    638 #if MTK_C0138_FIXED
     637
    639638    UInt        uiBaseId    = uiBId;
    640 #else
    641     UInt        uiBaseId    = m_auiBaseIdList[ uiBId ];
    642 #endif
    643639    TComPic*    pcBasePic   = m_pcAUPicAccess->getPic( uiBaseId );
    644640    for( Int iRefListId = 0; iRefListId < 2 && iValid==0; iRefListId++ )
     
    785781  return false;
    786782}
    787 #else // QC_AMVP_MRG_UNIFY_IVCAN_C0051
    788 #if H3D_NBDV
    789 Int
    790 TComDepthMapGenerator::getPdmMergeCandidate( TComDataCU* pcCU, UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm )
    791 #else
    792 Int
    793 TComDepthMapGenerator::getPdmMergeCandidate( TComDataCU* pcCU, UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv )
    794 #endif
    795 {
    796   AOF  ( m_bCreated && m_bInit );
    797 
    798 #if !H3D_NBDV
    799   ROFRS( m_bPDMAvailable, 0 );
    800 #endif
    801 
    802   TComSlice*    pcSlice     = pcCU->getSlice ();
    803   TComSPS*      pcSPS       = pcSlice->getSPS();
    804   AOF  ( pcSPS->getViewId() == m_uiCurrViewId );
    805   Bool          bPdmMerge   = ( ( pcSPS->getMultiviewMvPredMode() & PDM_USE_FOR_MERGE ) == PDM_USE_FOR_MERGE );
    806   ROTRS( !bPdmMerge, 0 );
    807 
    808   Bool abPdmAvailable[4] = {false, false, false, false};
    809 
    810   Int iValid = 0;
    811   Int iViewId = 0;
    812   for( UInt uiBId = 0; uiBId < m_uiCurrViewId && iValid==0; uiBId++ )
    813   {
    814     UInt        uiBaseId    = m_auiBaseIdList[ uiBId ];
    815     TComPic*    pcBasePic   = m_pcAUPicAccess->getPic( uiBaseId );
    816     for( Int iRefListId = 0; iRefListId < 2 && iValid==0; iRefListId++ )
    817     {
    818       RefPicList  eRefPicListTest = RefPicList( iRefListId );
    819       Int         iNumRefPics = pcSlice->getNumRefIdx( eRefPicListTest ) ;
    820       for( Int iRefIndex = 0; iRefIndex < iNumRefPics; iRefIndex++ )
    821       {
    822         if(pcBasePic->getPOC() == pcSlice->getRefPic( eRefPicListTest, iRefIndex )->getPOC()
    823           && pcBasePic->getViewId() == pcSlice->getRefPic( eRefPicListTest, iRefIndex )->getViewId())
    824         {
    825           iValid=1;
    826           iViewId = uiBaseId;
    827           break;
    828         }
    829       }
    830     }
    831   }
    832   if (iValid == 0)
    833     return 0;
    834 
    835   //--- get base CU/PU and check prediction mode ---
    836   TComPic*    pcBasePic   = m_pcAUPicAccess->getPic( iViewId );
    837   TComPicYuv* pcBaseRec   = pcBasePic->getPicYuvRec   ();
    838 
    839 #if H3D_NBDV
    840   Int  iCurrPosX, iCurrPosY;
    841   UInt          uiPartAddr;
    842   Int           iWidth;
    843   Int           iHeight;
    844 
    845   pcCU->getPartIndexAndSize( uiPartIdx, uiPartAddr, iWidth, iHeight );
    846   pcBaseRec->getTopLeftSamplePos( pcCU->getAddr(), pcCU->getZorderIdxInCU() + uiPartAddr, iCurrPosX, iCurrPosY );
    847   iCurrPosX  += ( ( iWidth  - 1 ) >> 1 );
    848   iCurrPosY  += ( ( iHeight - 1 ) >> 1 );
    849 
    850   Int         iBasePosX   = Clip3( 0, pcBaseRec->getWidth () - 1, iCurrPosX + ( (pDInfo->m_acMvCand[0].getHor() + 2 ) >> 2 ) );
    851   Int         iBasePosY   = Clip3( 0, pcBaseRec->getHeight() - 1, iCurrPosY + ( (pDInfo->m_acMvCand[0].getVer() + 2 ) >> 2 ));
    852   Int         iBaseCUAddr;
    853   Int         iBaseAbsPartIdx;
    854   pcBaseRec->getCUAddrAndPartIdx( iBasePosX , iBasePosY , iBaseCUAddr, iBaseAbsPartIdx );
    855 #else
    856   Int  iPrdDepth, iCurrPosX, iCurrPosY;
    857   Bool bAvailable  = xGetPredDepth( pcCU, uiPartIdx, iPrdDepth, &iCurrPosX, &iCurrPosY );
    858   AOF( bAvailable );
    859   TComPicYuv* pcBasePdm   = pcBasePic->getPredDepthMap();
    860   Int         iDisparity  = xGetDisparityFromVirtDepth( iViewId, iPrdDepth );
    861   Int         iShiftX     = m_uiSubSampExpX + 2;
    862   Int         iAddX       = ( 1 << iShiftX ) >> 1;
    863   Int         iBasePosX   = Clip3( 0, pcBasePdm->getWidth () - 1, iCurrPosX + ( ( iDisparity + iAddX ) >> iShiftX ) );
    864   Int         iBasePosY   = Clip3( 0, pcBasePdm->getHeight() - 1, iCurrPosY                               );
    865   Int         iBaseCUAddr;
    866   Int         iBaseAbsPartIdx;
    867   pcBaseRec->getCUAddrAndPartIdx( iBasePosX<< m_uiSubSampExpX , iBasePosY<< m_uiSubSampExpY , iBaseCUAddr, iBaseAbsPartIdx );
    868 #endif
    869 
    870   TComDataCU* pcBaseCU    = pcBasePic->getCU( iBaseCUAddr );
    871 
    872   if( pcBaseCU->getPredictionMode( iBaseAbsPartIdx ) == MODE_INTER || pcBaseCU->getPredictionMode( iBaseAbsPartIdx ) == MODE_SKIP )
    873   {
    874     for( UInt uiBaseRefListId = 0; uiBaseRefListId < 2; uiBaseRefListId++ )
    875     {
    876       RefPicList  eBaseRefPicList = RefPicList( uiBaseRefListId );
    877       TComMvField cBaseMvField;
    878       pcBaseCU->getMvField( pcBaseCU, iBaseAbsPartIdx, eBaseRefPicList, cBaseMvField );
    879       Int         iBaseRefIdx     = cBaseMvField.getRefIdx();
    880 
    881       if (iBaseRefIdx >= 0)
    882       {
    883         Int iBaseRefPOC = pcBaseCU->getSlice()->getRefPOC(eBaseRefPicList, iBaseRefIdx);
    884         if (iBaseRefPOC != pcSlice->getPOC())   
    885         {
    886           for (Int iPdmRefIdx = 0; iPdmRefIdx < pcSlice->getNumRefIdx( eBaseRefPicList ); iPdmRefIdx++)
    887           {
    888             if (iBaseRefPOC == pcSlice->getRefPOC(eBaseRefPicList, iPdmRefIdx))
    889             {
    890               abPdmAvailable[ uiBaseRefListId ] = true;
    891               paiPdmRefIdx  [ uiBaseRefListId ] = iPdmRefIdx;
    892               TComMv cMv(cBaseMvField.getHor(), cBaseMvField.getVer());
    893 #if H3D_NBDV
    894               cMv.m_bDvMcp = true;
    895               cMv.m_iDvMcpDispX = pDInfo->m_acMvCand[0].getHor();
    896               cMv.m_iDvMcpDispY = pDInfo->m_acMvCand[0].getVer();
    897 #endif //H3D_NBDV
    898               pcCU->clipMv( cMv );
    899               pacPdmMv      [ uiBaseRefListId ] = cMv;
    900               break;
    901             }
    902           }
    903         }
    904       }
    905     }
    906   }
    907   Int iPdmInterDir = ( abPdmAvailable[0] ? 1 : 0 ) + ( abPdmAvailable[1] ? 2 : 0 );
    908 
    909   iPdm[0] = iPdmInterDir;
    910     for( Int iRefListId = 0; iRefListId < 2 ; iRefListId++ )
    911     {
    912       RefPicList  eRefPicList       = RefPicList( iRefListId );
    913       Int         iNumRefPics       = pcSlice->getNumRefIdx( eRefPicList );
    914       for( Int iPdmRefIdx = 0; iPdmRefIdx < iNumRefPics; iPdmRefIdx++ )
    915       {
    916         if( pcSlice->getRefPOC( eRefPicList, iPdmRefIdx ) == pcSlice->getPOC())
    917         {
    918           abPdmAvailable[ iRefListId+2 ] = true;
    919           paiPdmRefIdx  [ iRefListId+2 ] = iPdmRefIdx;
    920 #if H3D_NBDV
    921           TComMv cMv = pDInfo->m_acMvCand[0];
    922           cMv.setVer(0);
    923 #else
    924           TComMv cMv(iDisparity, 0);
    925 #endif
    926           pcCU->clipMv( cMv );
    927           pacPdmMv      [ iRefListId + 2] = cMv;
    928           break;
    929         }
    930       }
    931     }
    932     iPdmInterDir = ( abPdmAvailable[2] ? 1 : 0 ) + ( abPdmAvailable[3] ? 2 : 0 ) ;
    933     iPdm[1] = iPdmInterDir;
    934 
    935   return iPdmInterDir;
    936 }
    937 
    938 #if H3D_NBDV
    939 Bool
    940 TComDepthMapGenerator::getDisCanPdmMvPred    ( TComDataCU*   pcCU, UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv, DisInfo* pDInfo, Bool bMerge )
    941 {
    942   rcMv.m_bDvMcp = false;
    943   AOF  ( m_bCreated && m_bInit );
    944   AOF  ( iRefIdx >= 0 );
    945   AOF  ( pcCU );
    946   TComSlice*    pcSlice     = pcCU->getSlice ();
    947   TComSPS*      pcSPS       = pcSlice->getSPS();
    948   AOF  ( pcSPS->getViewId() == m_uiCurrViewId );
    949   TComPic*      pcRefPic    = pcSlice->getRefPic( eRefPicList, iRefIdx );
    950   UInt          uiRefViewId = pcRefPic->getSPS()->getViewId();
    951   Int           iRefPoc     = pcRefPic->getPOC();
    952   Bool          bInterview  = ( uiRefViewId < m_uiCurrViewId );
    953   AOT(  bInterview && iRefPoc != pcSlice->getPOC() );
    954   AOT( !bInterview && iRefPoc == pcSlice->getPOC() );
    955   Bool          bPdmIView   = ( ( pcSPS->getMultiviewMvPredMode() & PDM_USE_FOR_IVIEW ) == PDM_USE_FOR_IVIEW );
    956   Bool          bPdmInter   = ( ( pcSPS->getMultiviewMvPredMode() & PDM_USE_FOR_INTER ) == PDM_USE_FOR_INTER );
    957   Bool          bPdmMerge   = ( ( pcSPS->getMultiviewMvPredMode() & PDM_USE_FOR_MERGE ) == PDM_USE_FOR_MERGE );
    958   ROTRS( ( bInterview && !bMerge ) && !bPdmIView, false );
    959   ROTRS( (!bInterview && !bMerge ) && !bPdmInter, false );
    960   ROTRS(                  bMerge   && !bPdmMerge, false );
    961   Int  iCurrPosX, iCurrPosY;
    962   TComMv cDisMv;
    963 
    964   if( bInterview )
    965   {
    966     rcMv = pDInfo->m_acMvCand[0];
    967     rcMv.setVer(0);
    968     return      true;
    969   }
    970   for( UInt uiBId = 0; uiBId < m_uiCurrViewId; uiBId++ )
    971   {
    972     UInt        uiBaseId    = uiBId;
    973 
    974     if (m_uiCurrViewId >1 && uiBaseId ==1 )
    975       continue;
    976 
    977     TComPic*    pcBasePic   = m_pcAUPicAccess->getPic( uiBaseId );
    978     TComPicYuv* pcBaseRec   = pcBasePic->getPicYuvRec   ();
    979     UInt          uiPartAddr;
    980     Int           iWidth;
    981     Int           iHeight;
    982 
    983     pcCU->getPartIndexAndSize( uiPartIdx, uiPartAddr, iWidth, iHeight );
    984     pcBaseRec->getTopLeftSamplePos( pcCU->getAddr(), pcCU->getZorderIdxInCU() + uiPartAddr, iCurrPosX, iCurrPosY );
    985     iCurrPosX  += ( ( iWidth  - 1 ) >> 1 );
    986     iCurrPosY  += ( ( iHeight - 1 ) >> 1 );
    987     Int         iBasePosX   = Clip3( 0, pcBaseRec->getWidth () - 1, iCurrPosX + ( (pDInfo->m_acMvCand[0].getHor() + 2 ) >> 2 ) );
    988     Int         iBasePosY   = Clip3( 0, pcBaseRec->getHeight() - 1, iCurrPosY + ( (pDInfo->m_acMvCand[0].getVer() + 2 ) >> 2 )); 
    989     Int         iBaseCUAddr;
    990     Int         iBaseAbsPartIdx;
    991     pcBaseRec->getCUAddrAndPartIdx( iBasePosX , iBasePosY , iBaseCUAddr, iBaseAbsPartIdx );
    992     TComDataCU* pcBaseCU    = pcBasePic->getCU( iBaseCUAddr );
    993     if( pcBaseCU->getPredictionMode( iBaseAbsPartIdx ) != MODE_INTER && pcBaseCU->getPredictionMode( iBaseAbsPartIdx ) != MODE_SKIP )
    994     {
    995       continue;
    996     }
    997     for( UInt uiBaseRefListId = 0; uiBaseRefListId < 2; uiBaseRefListId++ )
    998     {
    999       RefPicList  eBaseRefPicList = RefPicList( uiBaseRefListId );
    1000       TComMvField cBaseMvField;
    1001       pcBaseCU->getMvField( pcBaseCU, iBaseAbsPartIdx, eBaseRefPicList, cBaseMvField );
    1002       Int         iBaseRefIdx     = cBaseMvField.getRefIdx();
    1003       Int         iBaseRefPoc     = ( iBaseRefIdx >= 0 ? pcBaseCU->getSlice()->getRefPic( eBaseRefPicList, iBaseRefIdx )->getPOC() : -(1<<30) );
    1004       if( iBaseRefIdx >= 0 && iBaseRefPoc == iRefPoc )
    1005       {
    1006         rcMv.set( cBaseMvField.getHor(), cBaseMvField.getVer() );
    1007         // save disparity vector when a merge candidate for IVMP is set as DV-MCP
    1008         if( bMerge )
    1009         {
    1010           rcMv.m_bDvMcp = true;
    1011           rcMv.m_iDvMcpDispX = pDInfo->m_acMvCand[0].getHor();
    1012           rcMv.m_iDvMcpDispY = pDInfo->m_acMvCand[0].getVer();
    1013         }
    1014         else { // AMVP ?
    1015           rcMv.m_bDvMcp = false;
    1016         }
    1017         return true;
    1018       }
    1019     }
    1020   }
    1021   return false;
    1022 }
    1023 #else // H3D_NBDV
    1024 Bool 
    1025 TComDepthMapGenerator::getPdmMvPred( TComDataCU* pcCU, UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv, Bool bMerge )
    1026 {
    1027   AOF  ( m_bCreated && m_bInit );
    1028   AOF  ( iRefIdx >= 0 );
    1029   AOF  ( pcCU );
    1030   ROFRS( m_bPDMAvailable, false );
    1031 
    1032   TComSlice*    pcSlice     = pcCU->getSlice ();
    1033   TComPic*      pcPic       = pcCU->getPic   ();
    1034   TComSPS*      pcSPS       = pcSlice->getSPS();
    1035   AOF  ( pcPic->getPredDepthMap() );
    1036   AOF  ( pcSPS->getViewId() == m_uiCurrViewId );
    1037  
    1038   TComPic*      pcRefPic    = pcSlice->getRefPic( eRefPicList, iRefIdx );
    1039   UInt          uiRefViewId = pcRefPic->getSPS()->getViewId();
    1040   Int           iRefPoc     = pcRefPic->getPOC();
    1041   Bool          bInterview  = ( uiRefViewId < m_uiCurrViewId );
    1042   AOT(  bInterview && iRefPoc != pcSlice->getPOC() );
    1043   AOT( !bInterview && iRefPoc == pcSlice->getPOC() );
    1044 
    1045   Bool          bPdmIView   = ( ( pcSPS->getMultiviewMvPredMode() & PDM_USE_FOR_IVIEW ) == PDM_USE_FOR_IVIEW );
    1046   Bool          bPdmInter   = ( ( pcSPS->getMultiviewMvPredMode() & PDM_USE_FOR_INTER ) == PDM_USE_FOR_INTER );
    1047   Bool          bPdmMerge   = ( ( pcSPS->getMultiviewMvPredMode() & PDM_USE_FOR_MERGE ) == PDM_USE_FOR_MERGE );
    1048   ROTRS( ( bInterview && !bMerge ) && !bPdmIView, false );
    1049   ROTRS( (!bInterview && !bMerge ) && !bPdmInter, false );
    1050   ROTRS(                  bMerge   && !bPdmMerge, false );
    1051 
    1052   //===== get predicted depth for middle position of current PU ===== 
    1053   Int  iPrdDepth, iCurrPosX, iCurrPosY;
    1054   Bool bAvailable  = xGetPredDepth( pcCU, uiPartIdx, iPrdDepth, &iCurrPosX, &iCurrPosY );
    1055   AOF( bAvailable );
    1056  
    1057   //===== inter-view motion vector prediction =====
    1058   if( bInterview )
    1059   {
    1060     Int         iDisparity  = xGetDisparityFromVirtDepth( uiRefViewId, iPrdDepth );
    1061     rcMv.set  ( iDisparity, 0 );
    1062     return      true;
    1063   }
    1064  
    1065   //===== inter motion vector prediction =====
    1066   for( UInt uiBId = 0; uiBId < m_uiCurrViewId; uiBId++ )
    1067   {
    1068     //--- get base CU/PU and check prediction mode ---
    1069     UInt        uiBaseId    = m_auiBaseIdList[ uiBId ];
    1070 #if PDM_REMOVE_DEPENDENCE
    1071     if( uiBaseId != 0)
    1072       continue;
    1073 #endif
    1074     TComPic*    pcBasePic   = m_pcAUPicAccess->getPic( uiBaseId );
    1075     TComPicYuv* pcBasePdm   = pcBasePic->getPredDepthMap();
    1076     TComPicYuv* pcBaseRec   = pcBasePic->getPicYuvRec   ();
    1077     Int         iDisparity  = xGetDisparityFromVirtDepth( uiBaseId, iPrdDepth );
    1078     Int         iShiftX     = m_uiSubSampExpX + 2;
    1079     Int         iAddX       = ( 1 << iShiftX ) >> 1;
    1080     Int         iBasePosX   = Clip3( 0, pcBasePdm->getWidth () - 1, iCurrPosX + ( ( iDisparity + iAddX ) >> iShiftX ) );
    1081     Int         iBasePosY   = Clip3( 0, pcBasePdm->getHeight() - 1, iCurrPosY                               );
    1082     Int         iBaseCUAddr;
    1083     Int         iBaseAbsPartIdx;
    1084     pcBaseRec->getCUAddrAndPartIdx( iBasePosX << m_uiSubSampExpX, iBasePosY << m_uiSubSampExpY, iBaseCUAddr, iBaseAbsPartIdx );
    1085     TComDataCU* pcBaseCU    = pcBasePic->getCU( iBaseCUAddr );
    1086     if( pcBaseCU->getPredictionMode( iBaseAbsPartIdx ) != MODE_INTER && pcBaseCU->getPredictionMode( iBaseAbsPartIdx ) != MODE_SKIP )
    1087     {
    1088       continue;
    1089     }
    1090 
    1091     for( UInt uiBaseRefListId = 0; uiBaseRefListId < 2; uiBaseRefListId++ )
    1092     {
    1093       RefPicList  eBaseRefPicList = RefPicList( uiBaseRefListId );
    1094       TComMvField cBaseMvField;
    1095       pcBaseCU->getMvField( pcBaseCU, iBaseAbsPartIdx, eBaseRefPicList, cBaseMvField );
    1096       Int         iBaseRefIdx     = cBaseMvField.getRefIdx();
    1097       Int         iBaseRefPoc     = ( iBaseRefIdx >= 0 ? pcBaseCU->getSlice()->getRefPic( eBaseRefPicList, iBaseRefIdx )->getPOC() : -(1<<30) );
    1098       if( iBaseRefIdx >= 0 && iBaseRefPoc == iRefPoc )
    1099       {
    1100         rcMv.set( cBaseMvField.getHor(), cBaseMvField.getVer() );
    1101         return true;
    1102       }
    1103     }
    1104   }
    1105   return false;
    1106 }
    1107 #endif // H3D_NBDV
    1108 #endif // QC_AMVP_MRG_UNIFY_IVCAN_C0051
    1109783
    1110784
  • branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComDepthMapGenerator.h

    r296 r325  
    152152#if H3D_IVMP
    153153#if H3D_NBDV
    154 #if QC_AMVP_MRG_UNIFY_IVCAN_C0051
    155154  Bool  getPdmCandidate       ( TComDataCU*   pcCU, UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm, Bool bMerge );
    156 #else
    157   Int   getPdmMergeCandidate  ( TComDataCU*   pcCU, UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm );
    158   Bool  getPdmMvPredDisCan    ( TComDataCU*   pcCU, UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv, DisInfo* pDInfo, Bool bMerge );
    159   Bool  getDisCanPdmMvPred    ( TComDataCU*   pcCU, UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv, DisInfo* pDInfo, Bool bMerge );
    160 #endif
    161155#else
    162156  Int   getPdmMergeCandidate  ( TComDataCU*   pcCU, UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv );
  • branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComPic.cpp

    r313 r325  
    8585  m_aaiCodedScale     = 0;
    8686  m_aaiCodedOffset    = 0;
    87 #if OL_QTLIMIT_PREDCODING_B0068
     87#if H3D_QTL
    8888  m_bReduceBitsQTL    = 0;
    8989#endif
  • branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComPic.h

    r313 r325  
    121121  Int**                 m_aaiCodedOffset;
    122122
    123 #if OL_QTLIMIT_PREDCODING_B0068
     123#if H3D_QTL
    124124  Bool                  m_bReduceBitsQTL;
    125125#endif
     
    203203#endif
    204204
    205 #if OL_QTLIMIT_PREDCODING_B0068
     205#if H3D_QTL
    206206  Bool          getReduceBitsFlag ()             { return m_bReduceBitsQTL;     }
    207207  Void          setReduceBitsFlag ( Bool bFlag ) { m_bReduceBitsQTL = bFlag;    }
  • branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComPrediction.cpp

    r313 r325  
    636636#endif
    637637      {
    638 #if DEPTH_MAP_GENERATION
    639638#if MERL_VSP_C0152
    640639        xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true );
     
    642641        xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true );
    643642#endif
    644 #else
    645 #if MERL_VSP_C0152
    646         xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, true );
    647 #else
    648         xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, true );
    649 #endif
    650 #endif
    651643      }
    652644      else
    653645      {
    654 #if DEPTH_MAP_GENERATION
    655646#if MERL_VSP_C0152
    656647        xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
     
    658649        xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
    659650#endif
    660 #else
    661 #if MERL_VSP_C0152
    662         xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, false );
    663 #else
    664         xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, false );
    665 #endif
    666 #endif
    667651      }
    668652#if LGE_ILLUCOMP_B0045
     
    677661    else
    678662    {
    679 #if DEPTH_MAP_GENERATION
    680663      if( xCheckIdenticalMotion( pcCU, uiPartAddr ) && !bPrdDepthMap )
    681 #else
    682       if ( xCheckIdenticalMotion( pcCU, uiPartAddr ) )
    683 #endif
    684       {
    685 #if DEPTH_MAP_GENERATION
     664      {
    686665#if MERL_VSP_C0152
    687666        xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
     
    689668        xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
    690669#endif
    691 #else
    692 #if MERL_VSP_C0152
    693         xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, false );
    694 #else
    695         xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, false );
    696 #endif
    697 #endif
    698670      }
    699671      else
    700672      {
    701 #if DEPTH_MAP_GENERATION
    702673#if MERL_VSP_C0152
    703674        xPredInterBi  (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, uiSubSampExpX, uiSubSampExpY, pcYuvPred, iPartIdx, bPrdDepthMap );
     
    705676        xPredInterBi  (pcCU, uiPartAddr, iWidth, iHeight, uiSubSampExpX, uiSubSampExpY, pcYuvPred, iPartIdx, bPrdDepthMap );
    706677#endif
    707 #else
    708 #if MERL_VSP_C0152
    709         xPredInterBi  (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, pcYuvPred, iPartIdx );
    710 #else
    711         xPredInterBi  (pcCU, uiPartAddr, iWidth, iHeight, pcYuvPred, iPartIdx );
    712 #endif
    713 #endif
    714678      }
    715679    }
     
    721685    pcCU->getPartIndexAndSize( iPartIdx, uiPartAddr, iWidth, iHeight );
    722686
    723 #if DEPTH_MAP_GENERATION
    724687    if( bPrdDepthMap )
    725688    {
     
    727690      iHeight >>= uiSubSampExpY;
    728691    }
    729 #endif
    730692
    731693    if ( eRefPicList != REF_PIC_LIST_X )
     
    737699#endif
    738700      {
    739 #if DEPTH_MAP_GENERATION
    740701#if MERL_VSP_C0152
    741702        xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true );
     
    743704        xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true );
    744705#endif
    745 #else
    746 #if MERL_VSP_C0152
    747         xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, true );
    748 #else
    749         xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, true );
    750 #endif
    751 #endif
    752706  }
    753707  else
    754708  {
    755 #if DEPTH_MAP_GENERATION
    756709#if MERL_VSP_C0152
    757710        xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
     
    759712        xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
    760713#endif
    761 #else
    762 #if MERL_VSP_C0152
    763         xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, false );
    764 #else
    765         xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, false );
    766 #endif
    767 #endif
    768       }
    769 #if DEPTH_MAP_GENERATION
     714      }
    770715#if MERL_VSP_C0152
    771716      xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
     
    773718      xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
    774719#endif
    775 #else
    776 #if MERL_VSP_C0152
    777       xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, false );
    778 #else
    779       xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, false );
    780 #endif
    781 #endif
     720
    782721#if LGE_ILLUCOMP_B0045
    783722      if( pcCU->getSlice()->getPPS()->getUseWP() && !pcCU->getICFlag(uiPartAddr))
     
    793732      if ( xCheckIdenticalMotion( pcCU, uiPartAddr ) )
    794733      {
    795 #if DEPTH_MAP_GENERATION
    796734#if MERL_VSP_C0152
    797735        xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
     
    799737        xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
    800738#endif
    801 #else
    802 #if MERL_VSP_C0152
    803         xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, false );
    804 #else
    805         xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, false );
    806 #endif
    807 #endif   
    808739      }
    809740      else
    810741      {
    811 #if DEPTH_MAP_GENERATION
    812742#if MERL_VSP_C0152
    813743        xPredInterBi  (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, uiSubSampExpX, uiSubSampExpY, pcYuvPred, iPartIdx, bPrdDepthMap );
     
    815745        xPredInterBi  (pcCU, uiPartAddr, iWidth, iHeight, uiSubSampExpX, uiSubSampExpY, pcYuvPred, iPartIdx, bPrdDepthMap );
    816746#endif   
    817 #else
    818 #if MERL_VSP_C0152
    819         xPredInterBi  (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, pcYuvPred, iPartIdx );
    820 #else
    821         xPredInterBi  (pcCU, uiPartAddr, iWidth, iHeight, pcYuvPred, iPartIdx );
    822 #endif
    823 #endif
    824747      }
    825748    }
     
    828751}
    829752
    830 #if MTK_MDIVRP_C0138
     753#if H3D_IVRP
    831754Void TComPrediction::residualPrediction(TComDataCU* pcCU, TComYuv* pcYuvPred, TComYuv* pcYuvResPred)
    832755{
     
    847770#endif
    848771
    849 #if DEPTH_MAP_GENERATION
    850772#if MERL_VSP_C0152
    851773Void TComPrediction::xPredInterUni ( TComDataCU* pcCU, UInt uiPartAddr, UInt uiAbsPartIdx, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bPrdDepthMap, UInt uiSubSampExpX, UInt uiSubSampExpY, Bool bi )
    852774#else
    853775Void TComPrediction::xPredInterUni ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bPrdDepthMap, UInt uiSubSampExpX, UInt uiSubSampExpY, Bool bi )
    854 #endif
    855 #else
    856 #if MERL_VSP_C0152
    857 Void TComPrediction::xPredInterUni ( TComDataCU* pcCU, UInt uiPartAddr, UInt uiAbsPartIdx, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bi )
    858 #else
    859 Void TComPrediction::xPredInterUni ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bi )
    860 #endif
    861776#endif
    862777{
     
    887802  {
    888803    UInt uiRShift = 0;
    889 #if PDM_REMOVE_DEPENDENCE
    890804    if( pcCU->getPic()->getStoredPDMforV2() == 1 )
    891805      xPredInterPrdDepthMap( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPredDepthMapTemp(), uiPartAddr, &cMv, iWidth, iHeight, uiSubSampExpX, uiSubSampExpY, rpcYuvPred, uiRShift, 0 );
    892806    else
    893 #endif
    894807      xPredInterPrdDepthMap( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPredDepthMap(), uiPartAddr, &cMv, iWidth, iHeight, uiSubSampExpX, uiSubSampExpY, rpcYuvPred, uiRShift, 0 );
    895808
     
    1001914
    1002915
    1003 #if DEPTH_MAP_GENERATION
    1004916#if MERL_VSP_C0152
    1005917Void TComPrediction::xPredInterBi ( TComDataCU* pcCU, UInt uiPartAddr, UInt uiAbsPartIdx, Int iWidth, Int iHeight, UInt uiSubSampExpX, UInt uiSubSampExpY, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bPrdDepthMap )
     
    1007919Void TComPrediction::xPredInterBi ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, UInt uiSubSampExpX, UInt uiSubSampExpY, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bPrdDepthMap )
    1008920#endif
    1009 #else
    1010 #if MERL_VSP_C0152
    1011 Void TComPrediction::xPredInterBi ( TComDataCU* pcCU, UInt uiPartAddr, UInt uiAbsPartIdx, Int iWidth, Int iHeight, TComYuv*& rpcYuvPred, Int iPartIdx )
    1012 #else
    1013 Void TComPrediction::xPredInterBi ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, TComYuv*& rpcYuvPred, Int iPartIdx )
    1014 #endif
    1015 #endif
    1016921{
    1017922  TComYuv* pcMbYuv;
     
    1050955    if( pcCU->getCUMvField( REF_PIC_LIST_0 )->getRefIdx( uiPartAddr ) >= 0 && pcCU->getCUMvField( REF_PIC_LIST_1 )->getRefIdx( uiPartAddr ) >= 0 )
    1051956    {
    1052 #if DEPTH_MAP_GENERATION
    1053957#if MERL_VSP_C0152
    1054958      xPredInterUni ( pcCU, uiPartAddr, uiAbsPartIdx, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true );
    1055959#else
    1056960      xPredInterUni ( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true );
    1057 #endif
    1058 #else
    1059 #if MERL_VSP_C0152
    1060       xPredInterUni ( pcCU, uiPartAddr, uiAbsPartIdx, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, true );
    1061 #else
    1062       xPredInterUni ( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, true );
    1063 #endif
    1064961#endif
    1065962    }
     
    1073970#endif
    1074971      {
    1075 #if DEPTH_MAP_GENERATION
    1076972#if MERL_VSP_C0152
    1077973        xPredInterUni ( pcCU, uiPartAddr, uiAbsPartIdx, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true );
     
    1079975        xPredInterUni ( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true );
    1080976#endif
    1081 #else
    1082 #if MERL_VSP_C0152
    1083         xPredInterUni ( pcCU, uiPartAddr, uiAbsPartIdx, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, true );
    1084 #else
    1085         xPredInterUni ( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, true );
    1086 #endif
    1087 #endif
    1088977      }
    1089978      else
    1090979      {
    1091 #if DEPTH_MAP_GENERATION
    1092980#if MERL_VSP_C0152
    1093981        xPredInterUni ( pcCU, uiPartAddr, uiAbsPartIdx, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
    1094982#else
    1095983        xPredInterUni ( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
    1096 #endif
    1097 #else
    1098 #if MERL_VSP_C0152
    1099         xPredInterUni ( pcCU, uiPartAddr, uiAbsPartIdx, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, false );
    1100 #else
    1101         xPredInterUni ( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, false );
    1102 #endif
    1103984#endif
    1104985      }
     
    11321013  else
    11331014  {
    1134 #if DEPTH_MAP_GENERATION
    11351015    if ( bPrdDepthMap )
    11361016    {
     
    11461026      xWeightedAverage( pcCU, &m_acYuvPred[0], &m_acYuvPred[1], iRefIdx[0], iRefIdx[1], uiPartAddr, iWidth, iHeight, rpcYuvPred );
    11471027    }
    1148 #else
    1149     xWeightedAverage( pcCU, &m_acYuvPred[0], &m_acYuvPred[1], iRefIdx[0], iRefIdx[1], uiPartAddr, iWidth, iHeight, rpcYuvPred );
    1150 #endif
    11511028  }
    11521029}
     
    11551032
    11561033Void
    1157 #if DEPTH_MAP_GENERATION
    11581034TComPrediction::xPredInterPrdDepthMap( TComDataCU* pcCU, TComPicYuv* pcPicYuvRef, UInt uiPartAddr, TComMv* pcMv, Int iWidth, Int iHeight, UInt uiSubSampExpX, UInt uiSubSampExpY, TComYuv*& rpcYuv, UInt uiRShift, UInt uiOffset
    11591035#if LGE_ILLUCOMP_DEPTH_C0046
     
    11611037#endif
    11621038)
    1163 #else
    1164 TComPrediction::xPredInterPrdDepthMap( TComDataCU* pcCU, TComPicYuv* pcPicYuvRef, UInt uiPartAddr, TComMv* pcMv, Int iWidth, Int iHeight, TComYuv*& rpcYuv, UInt uiRShift, UInt uiOffset )
    1165 #endif
    1166 {
    1167 #if DEPTH_MAP_GENERATION
     1039{
    11681040  Int     iShiftX     = 2 + uiSubSampExpX;
    11691041  Int     iShiftY     = 2 + uiSubSampExpY;
     
    11821054  Int     iDstStride  = rpcYuv->getStride();
    11831055  Int     iRefOffset  = iHor + iVer * iRefStride;
    1184 #else
    1185   Int     iFPelMask   = ~3;
    1186   Int     iRefStride  = pcPicYuvRef->getStride();
    1187   Int     iDstStride  = rpcYuv->getStride();
    1188   Int     iHor        = ( pcMv->getHor() + 2 ) & iFPelMask;
    1189   Int     iVer        = ( pcMv->getVer() + 2 ) & iFPelMask;
    1190 #if HHI_FULL_PEL_DEPTH_MAP_MV_ACC
    1191   if( pcCU->getSlice()->getSPS()->isDepth() )
    1192   {
    1193     iHor = pcMv->getHor() * 4;
    1194     iVer = pcMv->getVer() * 4;
    1195 }
    1196 #endif
    1197 #if !QC_MVHEVC_B0046
    1198   Int     ixFrac      = iHor & 0x3;
    1199   Int     iyFrac      = iVer & 0x3;
    1200 #endif
    1201   Int     iRefOffset  = ( iHor >> 2 ) + ( iVer >> 2 ) * iRefStride;
    1202 #endif
    12031056
    12041057  Pel*    piRefY      = pcPicYuvRef->getLumaAddr( pcCU->getAddr(), pcCU->getZorderIdxInCU() + uiPartAddr ) + iRefOffset;
     
    14541307  Int dstStride = dstPic->getStride();
    14551308  Int depStride =  pPicBaseDepth->getStride();
    1456 #if MTK_DVPREFINE_BVSP_BUG_FIX
    14571309  Int depthPosX = Clip3(0,   widthLuma - size_x,  (posX/nTxtPerDepthX) + (mv->getHor()>>2));
    14581310  Int depthPosY = Clip3(0,   heightLuma- size_y,  (posY/nTxtPerDepthY) + (mv->getVer()>>2));
    1459 #else
    1460   Int depthPosX = Clip3(0,   widthLuma - size_x - 1,  (posX/nTxtPerDepthX) + (mv->getHor()>>2));
    1461   Int depthPosY = Clip3(0,   heightLuma- size_y - 1,  (posY/nTxtPerDepthY) + (mv->getVer()>>2));
    1462 #endif
    14631311  Pel *ref    = refPic->getLumaAddr() + posX + posY * refStride;
    14641312  Pel *dst    = dstPic->getLumaAddr(partAddr);
     
    16181466    depthPosX = posX * nDepthPerTxtX + (mv->getHor()>>2);        //mv denotes the disparity for VSP
    16191467  }
    1620 #if MTK_DVPREFINE_BVSP_BUG_FIX
    16211468  depthPosX = Clip3(0, widthDepth - (size_x<<1), depthPosX);
    1622 #else
    1623   depthPosX = Clip3(0, widthDepth - (size_x<<1) - 1, depthPosX);
    1624 #endif
    16251469  if ( heightChroma > heightDepth )
    16261470  {
     
    16351479    depthPosY = posY * nDepthPerTxtY + (mv->getVer()>>2);     //mv denotes the disparity for VSP
    16361480  }
    1637 #if MTK_DVPREFINE_BVSP_BUG_FIX
    16381481  depthPosY = Clip3(0, heightDepth - (size_y<<1), depthPosY);
    1639 #else
    1640   depthPosY = Clip3(0, heightDepth - (size_y<<1) - 1, depthPosY);
    1641 #endif
    16421482
    16431483  Pel *refCb  = refPic->getCbAddr() + posX + posY * refStride;
     
    23842224  iCUPelX = pcCU->getCUPelX() + g_auiRasterToPelX[g_auiZscanToRaster[pcCU->getZorderIdxInCU()]];
    23852225  iCUPelY = pcCU->getCUPelY() + g_auiRasterToPelY[g_auiZscanToRaster[pcCU->getZorderIdxInCU()]];
    2386 #if FIX_LGE_ILLUCOMP_B0045
    23872226  iRefX   = iCUPelX + (pMv->getHor() >> 2);
    23882227  iRefY   = iCUPelY + (pMv->getVer() >> 2);
    2389 #else
    2390   iRefX   = iCUPelX + (pMv->getHor() >> 3);
    2391   iRefY   = iCUPelY + (pMv->getVer() >> 3);
    2392 #endif
    23932228  uiWidth = pcCU->getWidth(0) >> 1;
    23942229  uiHeight = pcCU->getHeight(0) >> 1;
     
    30372872  getWedgePredDCs( pcWedgelet, piMask, iMaskStride, iPredDC1, iPredDC2, bAbove, bLeft );
    30382873
    3039 #if HHI_DMM_DELTADC_Q1_C0034
    3040 #else
    3041   if( bDelta )
    3042   {
    3043     xDeltaDCQuantScaleUp( pcCU, iDeltaDC1 );
    3044     xDeltaDCQuantScaleUp( pcCU, iDeltaDC2 );
    3045   }
    3046 #endif
    3047 
    30482874  // assign wedge pred DCs to prediction
    30492875  if( bDelta ) { assignWedgeDCs2Pred( pcWedgelet, piPred, uiStride, Clip ( iPredDC1+iDeltaDC1 ), Clip( iPredDC2+iDeltaDC2 ) ); }
     
    30642890  piMask += iMaskStride+1;
    30652891  getWedgePredDCs( pcContourWedge, piMask, iMaskStride, iPredDC1, iPredDC2, bAbove, bLeft );
    3066 
    3067 #if HHI_DMM_DELTADC_Q1_C0034
    3068 #else
    3069   if( bDelta )
    3070   {
    3071     xDeltaDCQuantScaleUp( pcCU, iDeltaDC1 );
    3072     xDeltaDCQuantScaleUp( pcCU, iDeltaDC2 );
    3073   }
    3074 #endif
    30752892
    30762893  // assign wedge pred DCs to prediction
     
    32493066  getWedgePredDCs( pcWedgelet, piMask, iMaskStride, iPredDC1, iPredDC2, bAbove, bLeft );
    32503067
    3251 #if HHI_DMM_DELTADC_Q1_C0034
    3252 #else
    3253   if( bDelta )
    3254   {
    3255     xDeltaDCQuantScaleUp( pcCU, iDeltaDC1 );
    3256     xDeltaDCQuantScaleUp( pcCU, iDeltaDC2 );
    3257   }
    3258 #endif
    3259 
    32603068  // assign wedge pred DCs to prediction
    32613069  if( bDelta ) { assignWedgeDCs2Pred( pcWedgelet, piPred, uiStride, Clip( iPredDC1+iDeltaDC1 ), Clip( iPredDC2+iDeltaDC2 ) ); }
     
    32923100  piMask += iMaskStride+1;
    32933101  getWedgePredDCs( pcWedgelet, piMask, iMaskStride, iPredDC1, iPredDC2, bAbove, bLeft );
    3294 
    3295 #if HHI_DMM_DELTADC_Q1_C0034
    3296 #else
    3297   if( bDelta )
    3298   {
    3299     xDeltaDCQuantScaleUp( pcCU, iDeltaDC1 );
    3300     xDeltaDCQuantScaleUp( pcCU, iDeltaDC2 );
    3301   }
    3302 #endif
    33033102
    33043103  // assign wedge pred DCs to prediction
  • branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComPrediction.h

    r296 r325  
    8686 
    8787  // motion compensation functions
    88 #if DEPTH_MAP_GENERATION
    8988#if MERL_VSP_C0152
    9089  Void xPredInterUni            ( TComDataCU* pcCU,                          UInt uiPartAddr,       UInt uiAbsPartIdx,        Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bPrdDepthMap, UInt uiSubSampExpX = 0, UInt uiSubSampExpY = 0, Bool bi=false );
     
    9291  Void xPredInterUni            ( TComDataCU* pcCU,                          UInt uiPartAddr,               Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bPrdDepthMap, UInt uiSubSampExpX = 0, UInt uiSubSampExpY = 0, Bool bi=false );
    9392#endif
    94 #else
    95 #if MERL_VSP_C0152
    96   Void xPredInterUni            ( TComDataCU* pcCU,                          UInt uiPartAddr,       UInt uiAbsPartIdx,        Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bi=false          );
    97 #else
    98   Void xPredInterUni            ( TComDataCU* pcCU,                          UInt uiPartAddr,               Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bi=false          );
    99 #endif
    100 #endif
    101 
    102 #if DEPTH_MAP_GENERATION
     93
    10394#if MERL_VSP_C0152
    10495  Void xPredInterBi             ( TComDataCU* pcCU,                          UInt uiPartAddr,       UInt uiAbsPartIdx,   Int iWidth, Int iHeight, UInt uiSubSampExpX, UInt uiSubSampExpY, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bPrdDepthMap );
     
    111102#endif
    112103      );
    113 #else
    114 #if MERL_VSP_C0152
    115   Void xPredInterBi             ( TComDataCU* pcCU,                          UInt uiPartAddr,     UInt uiAbsPartIdx,     Int iWidth, Int iHeight,                         TComYuv*& rpcYuvPred, Int iPartIdx          );
    116 #else
    117   Void xPredInterBi             ( TComDataCU* pcCU,                          UInt uiPartAddr,               Int iWidth, Int iHeight,                         TComYuv*& rpcYuvPred, Int iPartIdx          );
    118 #endif
    119   Void xPredInterPrdDepthMap    ( TComDataCU* pcCU, TComPicYuv* pcPicYuvRef, UInt uiPartAddr, TComMv* pcMv, Int iWidth, Int iHeight,                         TComYuv*& rpcYuv, UInt uiRShift, UInt uiOffset );
    120 #endif
     104
    121105#if MERL_VSP_C0152
    122106  Void xPredInterUniBWVSP         ( TComDataCU* pcCU,                          UInt uiPartAddr, UInt uiAbsPartIdx,               Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bPrdDepthMap, UInt uiSubSampExpX, UInt uiSubSampExpY, Bool bi=false );
     
    179163 
    180164  // inter
    181 #if DEPTH_MAP_GENERATION
    182165#if MERL_VSP_C0152
    183166  Void motionCompensation         ( TComDataCU*  pcCU, TComYuv* pcYuvPred, UInt uiAbsPartIdx, RefPicList eRefPicList = REF_PIC_LIST_X, Int iPartIdx = -1, Bool bPrdDepthMap = false, UInt uiSubSampExpX = 0, UInt uiSubSampExpY = 0 );
     
    185168  Void motionCompensation         ( TComDataCU*  pcCU, TComYuv* pcYuvPred, RefPicList eRefPicList = REF_PIC_LIST_X, Int iPartIdx = -1, Bool bPrdDepthMap = false, UInt uiSubSampExpX = 0, UInt uiSubSampExpY = 0 );
    186169#endif
    187 #else
    188 #if MERL_VSP_C0152
    189   Void motionCompensation         ( TComDataCU*  pcCU, TComYuv* pcYuvPred, UInt uiAbsPartIdx,, RefPicList eRefPicList = REF_PIC_LIST_X, Int iPartIdx = -1 );
    190 #else
    191   Void motionCompensation         ( TComDataCU*  pcCU, TComYuv* pcYuvPred, RefPicList eRefPicList = REF_PIC_LIST_X, Int iPartIdx = -1 );
    192 #endif
    193 #endif
    194 
    195 #if MTK_MDIVRP_C0138
     170
     171#if H3D_IVRP
    196172  Void residualPrediction         (TComDataCU* pcCU, TComYuv* pcYuvPred, TComYuv* pcYuvResPred);
    197173#endif
  • branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComResidualGenerator.cpp

    r322 r325  
    184184  AOF  ( pcPic );
    185185
    186 #if MTK_MDIVRP_C0138
     186#if H3D_IVRP
    187187  if (pcPic->getSPS()->getViewId() != 0)
    188188  {
     
    257257#endif
    258258{
    259 #if MTK_C0138_FIXED
    260259  UInt  uiBaseViewId  = 0;
    261 #else
    262   UInt  uiBaseViewId  = m_pcDepthMapGenerator->getBaseViewId( 0 );
    263 #endif
    264260  if( !pcYuv )
    265261  {
     
    272268  xSetPredResidualBlock( pcPic, uiBaseViewId, uiXPos, uiYPos, uiBlkWidth, uiBlkHeight, pcYuv, &uiXPosInRefView , &uiYPosInRefView , bRecon    );
    273269#endif
    274 #if MTK_MDIVRP_C0138
    275270  return true;
    276 #else
    277   return xIsNonZeroByCBF( uiBaseViewId , uiXPosInRefView , uiYPosInRefView , uiBlkWidth , uiBlkHeight );
    278 #endif
    279271}
    280272
     
    393385  Pel*    pRes      = pcCUResidual->getLumaAddr();
    394386  UInt    uiLumaTrMode, uiChromaTrMode;
    395 #if LG_RESTRICTEDRESPRED_M24766  && !MTK_MDIVRP_C0138
    396   Int     iPUPredResiShift[4];
    397 #endif
    398387  pcCU->convertTransIdx             ( 0, pcCU->getTransformIdx( 0 ), uiLumaTrMode, uiChromaTrMode );
    399388    m_pcTrQuant->setQPforQuant      ( pcCU->getQP( 0 ), !pcCU->getSlice()->getDepth(), pcCU->getSlice()->getSliceType(), TEXT_LUMA, pcCU->getSlice()->getSPS()->getQpBDOffsetY(), 0 );
     
    410399  pRes        = pcCUResidual->getCrAddr();
    411400  m_pcTrQuant->invRecurTransformNxN ( pcCU, 0, TEXT_CHROMA_V, pRes, 0, pcCUResidual->getCStride(), uiWidth, uiHeight, uiChromaTrMode, 0, piCoeff );
    412 
    413 #if !MTK_MDIVRP_C0138
    414   if( pcCU->getResPredFlag( 0 ) )
    415   {
    416     AOF( pcCU->getResPredAvail( 0 ) );
    417     Bool bOK = pcCU->getResidualSamples( 0, true, m_ppcYuvTmp[0] );
    418     AOF( bOK );
    419 #if LG_RESTRICTEDRESPRED_M24766
    420     pcCU->getPUResiPredShift(iPUPredResiShift, 0);
    421     pcCUResidual->add(iPUPredResiShift, pcCU->getPartitionSize(0), m_ppcYuvTmp[0], pcCU->getWidth( 0 ), pcCU->getHeight( 0 ) );
    422 #else
    423     pcCUResidual->add( m_ppcYuvTmp[0], pcCU->getWidth( 0 ), pcCU->getHeight( 0 ) );
    424 #endif
    425   }
    426 #endif
    427401
    428402  //===== clear inter-view predicted parts =====
     
    570544  Int           iDesStrideC = pcYuv    ->getCStride();
    571545
    572 #if FIX_CHROMA_RESIDUAL_C0129
    573546  Pel*          pSrcSamplesU0= pcBaseRes->getCbAddr ( 0 ) + iCRefPosY0 * iSrcStrideC;
    574547  Pel*          pSrcSamplesU1= pcBaseRes->getCbAddr ( 0 ) + iCRefPosY1 * iSrcStrideC;
    575548  Pel*          pSrcSamplesV0= pcBaseRes->getCrAddr ( 0 ) + iCRefPosY0 * iSrcStrideC;
    576549  Pel*          pSrcSamplesV1= pcBaseRes->getCrAddr ( 0 ) + iCRefPosY1 * iSrcStrideC;
    577 #else
    578   Pel*          pSrcSamplesU0= pcBaseRes->getCbAddr ( 0 ) + ( iCRefPosY0 >> 1 ) * iSrcStrideC;
    579   Pel*          pSrcSamplesU1= pcBaseRes->getCbAddr ( 0 ) + ( iCRefPosY1 >> 1 ) * iSrcStrideC;
    580   Pel*          pSrcSamplesV0= pcBaseRes->getCrAddr ( 0 ) + ( iCRefPosY0 >> 1 ) * iSrcStrideC;
    581   Pel*          pSrcSamplesV1= pcBaseRes->getCrAddr ( 0 ) + ( iCRefPosY1 >> 1 ) * iSrcStrideC;
    582 #endif
    583550  Pel*          pDesSamplesU= pcYuv    ->getCbAddr ();
    584551  Pel*          pDesSamplesV= pcYuv    ->getCrAddr ();
  • branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComRom.cpp

    r296 r325  
    306306
    307307#if RWTH_SDC_DLT_B0036
    308 #if SAIT_SDC_C0096
    309308UInt g_auiSDCPredModes[RWTH_SDC_NUM_PRED_MODES] = { DC_IDX, DMM_WEDGE_FULL_IDX, PLANAR_IDX };
    310 #else
    311 UInt g_auiSDCPredModes[RWTH_SDC_NUM_PRED_MODES] = { DC_IDX, DMM_WEDGE_FULL_IDX, DMM_WEDGE_PREDDIR_IDX, PLANAR_IDX };
    312 #endif
    313309#endif
    314310
  • branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComRom.h

    r296 r325  
    194194
    195195#if RWTH_SDC_DLT_B0036
    196 #if SAIT_SDC_C0096
    197196#define RWTH_SDC_NUM_PRED_MODES 3
    198 #else
    199 #define RWTH_SDC_NUM_PRED_MODES 4
    200 #endif
    201197extern      UInt g_auiSDCPredModes[RWTH_SDC_NUM_PRED_MODES];
    202198#endif
  • branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComSlice.cpp

    r313 r325  
    15461546, m_bUseDMM34                   (false)
    15471547#endif
    1548 #if OL_QTLIMIT_PREDCODING_B0068
     1548#if H3D_QTL
    15491549, m_bUseQTLPC                 (false)
    15501550#endif
  • branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComSlice.h

    r313 r325  
    375375#endif
    376376
    377 #if OL_QTLIMIT_PREDCODING_B0068
     377#if H3D_QTL
    378378  Bool m_bUseQTLPC;
    379379#endif
     
    617617#endif
    618618
    619 #if OL_QTLIMIT_PREDCODING_B0068
     619#if H3D_QTL
    620620  Void setUseQTLPC( Bool b ) { m_bUseQTLPC = b;    }
    621621  Bool getUseQTLPC()         { return m_bUseQTLPC; }
  • branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComYuv.cpp

    r296 r325  
    392392}
    393393
    394 #if LG_RESTRICTEDRESPRED_M24766  && !MTK_MDIVRP_C0138
    395 Void
    396 TComYuv::add(Int *iPUResiPredShift, PartSize uhPartitionSize,  TComYuv* pcYuvAdd, Int iWidth, Int iHeight, Bool bSubtract )
    397 {
    398   addLuma   (iPUResiPredShift, uhPartitionSize, pcYuvAdd, iWidth,    iHeight,    bSubtract );
    399   addChroma (iPUResiPredShift, uhPartitionSize, pcYuvAdd, iWidth>>1, iHeight>>1, bSubtract );
    400 }
    401 #else
    402394Void
    403395TComYuv::add( TComYuv* pcYuvAdd, Int iWidth, Int iHeight, Bool bSubtract )
     
    406398  addChroma ( pcYuvAdd, iWidth>>1, iHeight>>1, bSubtract );
    407399}
    408 #endif
    409 
    410 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138
    411 Void
    412 TComYuv::getPUXYOffset(PartSize uhPartitionSize, Int iWidth, Int iHeight, Int &iXOffset, Int &iYOffset)
    413 {
    414   switch(uhPartitionSize)
    415   {   
    416   case SIZE_2NxN:
    417     iXOffset = iWidth;      iYOffset = iHeight >> 1;   break;
    418   case SIZE_2NxnU:
    419     iXOffset = iWidth;      iYOffset = iHeight >> 2;   break;
    420   case SIZE_2NxnD:
    421     iXOffset = iWidth;      iYOffset = (iHeight >> 1) + (iHeight >> 2);   break;
    422   case SIZE_Nx2N:
    423     iXOffset = iWidth >> 1; iYOffset = iHeight; break;
    424   case SIZE_nLx2N:
    425     iXOffset = iWidth >> 2; iYOffset = iHeight; break;
    426   case SIZE_nRx2N:
    427     iXOffset = (iWidth >> 1) + (iWidth >> 2); iYOffset = iHeight; break;
    428   case SIZE_NxN:
    429     iXOffset = iWidth >> 1; iYOffset = iHeight >> 1;  break;
    430   default:
    431     assert(uhPartitionSize == SIZE_2Nx2N);
    432     iXOffset = iWidth;     iYOffset = iHeight;    break;
    433   }
    434 }
    435 #endif
    436 
    437 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138
    438 Void
    439 TComYuv::addLuma(Int *iPUResiPredShift, PartSize uhPartitionSize, TComYuv* pcYuvAdd, Int iWidth, Int iHeight, Bool bSubtract )
    440 #else
     400
     401
    441402Void
    442403TComYuv::addLuma( TComYuv* pcYuvAdd, Int iWidth, Int iHeight, Bool bSubtract )
    443 #endif
    444404{
    445405  Int   iScale      = ( bSubtract ? -1 : 1 );
     
    449409  Pel*  pDstSamples = getLumaAddr();
    450410
    451 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138
    452   Int iXOffset, iYOffset;
    453 
    454   getPUXYOffset(uhPartitionSize, iWidth, iHeight, iXOffset, iYOffset);
    455 
    456   for( Int iY = 0; iY < iYOffset; iY++, pDstSamples += iDstStride, pAddSamples += iAddStride )
    457   {
    458     if(iPUResiPredShift[0] >= 0)
    459     {
    460       for( Int iX = 0; iX < iXOffset; iX++ )
    461       {
    462         pDstSamples[iX] += iScale * (pAddSamples[iX] >> iPUResiPredShift[0]);
    463       }
    464     }
    465 
    466     if(iPUResiPredShift[1] >= 0)
    467     {
    468       for( Int iX = iXOffset; iX < iWidth; iX++ )
    469       {
    470         pDstSamples[iX] += iScale * (pAddSamples[iX] >> iPUResiPredShift[1]);
    471       }
    472     }
    473   }
    474 
    475   for( Int iY = iYOffset; iY < iHeight; iY++, pDstSamples += iDstStride, pAddSamples += iAddStride )
    476   {
    477     if(iPUResiPredShift[2] >= 0)
    478     {
    479       for( Int iX = 0; iX < iXOffset; iX++ )
    480       {
    481         pDstSamples[iX] += iScale * (pAddSamples[iX] >> iPUResiPredShift[2]);
    482       }
    483     }
    484 
    485     if(iPUResiPredShift[3] >= 0)
    486     {
    487       for( Int iX = iXOffset; iX < iWidth; iX++ )
    488       {
    489         pDstSamples[iX] += iScale * (pAddSamples[iX] >> iPUResiPredShift[3]);
    490       }
    491     }
    492   }
    493 #else
    494411  for( Int iY = 0; iY < iHeight; iY++, pDstSamples += iDstStride, pAddSamples += iAddStride )
    495412  {
     
    499416    }
    500417  }
    501 #endif
    502 }
    503 
    504 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138
    505 Void
    506 TComYuv::addChroma(Int *iPUResiPredShift, PartSize uhPartitionSize, TComYuv* pcYuvAdd, Int iWidth, Int iHeight, Bool bSubtract )
    507 #else
     418}
     419
    508420Void
    509421TComYuv::addChroma( TComYuv* pcYuvAdd, Int iWidth, Int iHeight, Bool bSubtract )
    510 #endif
    511422{
    512423  Int   iScale        = ( bSubtract ? -1 : 1 );
     
    518429  Pel*  pDstSamplesCr = getCrAddr();
    519430
    520 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138
    521   Int iXOffset, iYOffset;
    522  
    523   getPUXYOffset(uhPartitionSize, iWidth, iHeight, iXOffset, iYOffset);
    524 
    525   for( Int iY = 0; iY < iYOffset; iY++, pDstSamplesCb += iDstStride, pAddSamplesCb += iAddStride,
    526     pDstSamplesCr += iDstStride, pAddSamplesCr += iAddStride  )
    527   {
    528     if(iPUResiPredShift[0] >= 0)
    529     {
    530       for( Int iX = 0; iX < iXOffset; iX++ )
    531       {
    532         pDstSamplesCb[iX] += iScale * (pAddSamplesCb[iX] >> iPUResiPredShift[0]);
    533         pDstSamplesCr[iX] += iScale * (pAddSamplesCr[iX] >> iPUResiPredShift[0]);
    534       }
    535     }
    536 
    537     if(iPUResiPredShift[1] >= 0)
    538     {
    539       for( Int iX = iXOffset; iX < iWidth; iX++ )
    540       {
    541         pDstSamplesCb[iX] += iScale * (pAddSamplesCb[iX] >> iPUResiPredShift[1]);
    542         pDstSamplesCr[iX] += iScale * (pAddSamplesCr[iX] >> iPUResiPredShift[1]);
    543       }
    544     }
    545   }
    546 
    547   for( Int iY = iYOffset; iY < iHeight; iY++, pDstSamplesCb += iDstStride, pAddSamplesCb += iAddStride,
    548     pDstSamplesCr += iDstStride, pAddSamplesCr += iAddStride  )
    549   {
    550     if(iPUResiPredShift[2] >= 0)
    551     {
    552       for( Int iX = 0; iX < iXOffset; iX++ )
    553       {
    554         pDstSamplesCb[iX] += iScale * (pAddSamplesCb[iX] >> iPUResiPredShift[2]);
    555         pDstSamplesCr[iX] += iScale * (pAddSamplesCr[iX] >> iPUResiPredShift[2]);
    556       }
    557     }
    558 
    559     if(iPUResiPredShift[3] >= 0)
    560     {
    561       for( Int iX = iXOffset; iX < iWidth; iX++ )
    562       {
    563         pDstSamplesCb[iX] += iScale * (pAddSamplesCb[iX] >> iPUResiPredShift[3]);
    564         pDstSamplesCr[iX] += iScale * (pAddSamplesCr[iX] >> iPUResiPredShift[3]);
    565       }
    566     }
    567   }
    568 #else
    569431  for( Int iY = 0; iY < iHeight; iY++, pDstSamplesCb += iDstStride, pAddSamplesCb += iAddStride,
    570432                                       pDstSamplesCr += iDstStride, pAddSamplesCr += iAddStride  )
     
    576438    }
    577439  }
    578 #endif
    579440}
    580441
     
    676537}
    677538
    678 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138
    679 Void TComYuv::subtract(Int *iPUResiPredShift, PartSize uhPartitionSize, TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize )
    680 {
    681   subtractLuma  (iPUResiPredShift, uhPartitionSize, pcYuvSrc0, pcYuvSrc1,  uiTrUnitIdx, uiPartSize    );
    682   subtractChroma(iPUResiPredShift, uhPartitionSize, pcYuvSrc0, pcYuvSrc1,  uiTrUnitIdx, uiPartSize>>1 );
    683 }
    684 #else
    685539Void TComYuv::subtract( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize )
    686540{
     
    688542  subtractChroma( pcYuvSrc0, pcYuvSrc1,  uiTrUnitIdx, uiPartSize>>1 );
    689543}
    690 #endif
    691 
    692 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138
    693 Void TComYuv::subtractLuma(Int *iPUResiPredShift, PartSize uhPartitionSize, TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize )
    694 #else
     544
    695545Void TComYuv::subtractLuma( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize )
    696 #endif
    697546{
    698547  Int x, y;
     
    706555  Int  iDstStride  = getStride();
    707556
    708 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138
    709   Int iXOffset, iYOffset;
    710 
    711   getPUXYOffset(uhPartitionSize, uiPartSize, uiPartSize, iXOffset, iYOffset);
    712 
    713 #if FIX_LG_RESTRICTEDRESPRED_M24766
    714   for ( y = 0; y < iYOffset; y++ )
    715   {
    716     if(iPUResiPredShift[0] >= 0)
    717     {
    718       for ( x = 0; x < iXOffset; x++ )
    719       {
    720         pDst[x] = pSrc0[x] - (pSrc1[x] >> iPUResiPredShift[0]);
    721       }
    722     }
    723 
    724     if(iPUResiPredShift[1] >= 0)
    725     {
    726       for ( x = iXOffset; x < uiPartSize; x++ )
    727       {
    728         pDst[x] = pSrc0[x] - (pSrc1[x] >> iPUResiPredShift[1]);
    729       }
     557  for ( y = uiPartSize-1; y >= 0; y-- )
     558  {
     559    for ( x = uiPartSize-1; x >= 0; x-- )
     560    {
     561      pDst[x] = pSrc0[x] - pSrc1[x];
    730562    }
    731563    pSrc0 += iSrc0Stride;
     
    733565    pDst  += iDstStride;
    734566  }
    735 
    736   for ( y = iYOffset; y < uiPartSize; y++ )
    737   {
    738     if(iPUResiPredShift[2] >= 0)
    739     {
    740       for ( x = 0; x < iXOffset; x++ )
    741       {
    742         pDst[x] = pSrc0[x] - (pSrc1[x] >> iPUResiPredShift[2]);
    743       }
    744     }
    745 
    746     if(iPUResiPredShift[3] >= 0)
    747     {
    748       for ( x = iXOffset; x < uiPartSize; x++ )
    749       {
    750         pDst[x] = pSrc0[x] - (pSrc1[x] >> iPUResiPredShift[3]);
    751       }
    752     }
    753     pSrc0 += iSrc0Stride;
    754     pSrc1 += iSrc1Stride;
    755     pDst  += iDstStride;
    756   }
    757 #else
    758   for ( y = uiPartSize-1; y >= iYOffset; y-- )
    759   {
    760     if(iPUResiPredShift[3] >= 0)
    761     {
    762       for ( x = uiPartSize-1; x >= iXOffset; x-- )
    763       {
    764         pDst[x] = pSrc0[x] - (pSrc1[x] >> iPUResiPredShift[3]);
    765       }
    766     }
    767 
    768     if(iPUResiPredShift[2] >= 0)
    769     {
    770       for ( x = iXOffset-1; x >= 0; x-- )
    771       {
    772         pDst[x] = pSrc0[x] - (pSrc1[x] >> iPUResiPredShift[2]);
    773       }
    774     }
    775     pSrc0 += iSrc0Stride;
    776     pSrc1 += iSrc1Stride;
    777     pDst  += iDstStride;
    778   }
    779 
    780   for ( y = iYOffset-1; y >= 0; y-- )
    781   {
    782     if(iPUResiPredShift[1] >= 0)
    783     {
    784       for ( x = uiPartSize-1; x >= iXOffset; x-- )
    785       {
    786         pDst[x] = pSrc0[x] - (pSrc1[x] >> iPUResiPredShift[3]);
    787       }
    788     }
    789 
    790     if(iPUResiPredShift[0] >= 0)
    791     {
    792       for ( x = iXOffset-1; x >= 0; x-- )
    793       {
    794         pDst[x] = pSrc0[x] - (pSrc1[x] >> iPUResiPredShift[2]);
    795       }
    796     }
    797     pSrc0 += iSrc0Stride;
    798     pSrc1 += iSrc1Stride;
    799     pDst  += iDstStride;
    800   }
    801 #endif
    802 #else
    803   for ( y = uiPartSize-1; y >= 0; y-- )
    804   {
    805     for ( x = uiPartSize-1; x >= 0; x-- )
    806     {
    807       pDst[x] = pSrc0[x] - pSrc1[x];
    808     }
    809     pSrc0 += iSrc0Stride;
    810     pSrc1 += iSrc1Stride;
    811     pDst  += iDstStride;
    812   }
    813 #endif
    814 }
    815 
    816 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138
    817 Void TComYuv::subtractChroma(Int *iPUResiPredShift, PartSize uhPartitionSize, TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize )
    818 #else
     567}
     568
    819569Void TComYuv::subtractChroma( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize )
    820 #endif
    821570{
    822571  Int x, y;
     
    832581  Int  iSrc1Stride = pcYuvSrc1->getCStride();
    833582  Int  iDstStride  = getCStride();
    834 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138
    835   Int iXOffset, iYOffset;
    836  
    837   getPUXYOffset(uhPartitionSize, uiPartSize, uiPartSize, iXOffset, iYOffset);
    838 
    839 #if FIX_LG_RESTRICTEDRESPRED_M24766
    840   for ( y = 0; y < iYOffset; y++ )
    841   {
    842     if(iPUResiPredShift[0] >= 0)
    843     {
    844       for ( x = 0; x < iXOffset; x++ )
    845       {
    846         pDstU[x] = pSrcU0[x] - (pSrcU1[x]>>iPUResiPredShift[0]);
    847         pDstV[x] = pSrcV0[x] - (pSrcV1[x]>>iPUResiPredShift[0]);
    848       }
    849     }
    850 
    851     if(iPUResiPredShift[1] >= 0)
    852     {
    853       for ( x = iXOffset; x < uiPartSize; x++ )
    854       {
    855         pDstU[x] = pSrcU0[x] - (pSrcU1[x]>>iPUResiPredShift[1]);
    856         pDstV[x] = pSrcV0[x] - (pSrcV1[x]>>iPUResiPredShift[1]);
    857       }
     583  for ( y = uiPartSize-1; y >= 0; y-- )
     584  {
     585    for ( x = uiPartSize-1; x >= 0; x-- )
     586    {
     587      pDstU[x] = pSrcU0[x] - pSrcU1[x];
     588      pDstV[x] = pSrcV0[x] - pSrcV1[x];
    858589    }
    859590    pSrcU0 += iSrc0Stride;
     
    864595    pDstV  += iDstStride;
    865596  }
    866 
    867   for ( y = iYOffset; y < uiPartSize; y++ )
    868   {
    869     if(iPUResiPredShift[2] >= 0)
    870     {
    871       for ( x = 0; x < iXOffset; x++ )
    872       {
    873         pDstU[x] = pSrcU0[x] - (pSrcU1[x]>>iPUResiPredShift[2]);
    874         pDstV[x] = pSrcV0[x] - (pSrcV1[x]>>iPUResiPredShift[2]);
    875       }
    876     }
    877 
    878     if(iPUResiPredShift[3] >= 0)
    879     {
    880       for ( x = iXOffset; x < uiPartSize; x++ )
    881       {
    882         pDstU[x] = pSrcU0[x] - (pSrcU1[x]>>iPUResiPredShift[3]);
    883         pDstV[x] = pSrcV0[x] - (pSrcV1[x]>>iPUResiPredShift[3]);
    884       }
    885     }
    886     pSrcU0 += iSrc0Stride;
    887     pSrcU1 += iSrc1Stride;
    888     pSrcV0 += iSrc0Stride;
    889     pSrcV1 += iSrc1Stride;
    890     pDstU  += iDstStride;
    891     pDstV  += iDstStride;
    892   }
    893 #else
    894   for ( y = uiPartSize-1; y >= iYOffset; y-- )
    895   {
    896     if(iPUResiPredShift[3] >= 0)
    897     {
    898       for ( x = uiPartSize-1; x >= iXOffset; x-- )
    899       {
    900         pDstU[x] = pSrcU0[x] - (pSrcU1[x]>>iPUResiPredShift[3]);
    901         pDstV[x] = pSrcV0[x] - (pSrcV1[x]>>iPUResiPredShift[3]);
    902       }
    903     }
    904 
    905     if(iPUResiPredShift[2] >= 0)
    906     {
    907       for ( x = iXOffset-1; x >= 0; x-- )
    908       {
    909         pDstU[x] = pSrcU0[x] - (pSrcU1[x]>>iPUResiPredShift[2]);
    910         pDstV[x] = pSrcV0[x] - (pSrcV1[x]>>iPUResiPredShift[2]);
    911       }
    912     }
    913     pSrcU0 += iSrc0Stride;
    914     pSrcU1 += iSrc1Stride;
    915     pSrcV0 += iSrc0Stride;
    916     pSrcV1 += iSrc1Stride;
    917     pDstU  += iDstStride;
    918     pDstV  += iDstStride;
    919   }
    920 
    921   for ( y = iYOffset-1; y >= 0; y-- )
    922   {
    923     if(iPUResiPredShift[1] >= 0)
    924     {
    925       for ( x = uiPartSize-1; x >= iXOffset; x-- )
    926       {
    927         pDstU[x] = pSrcU0[x] - (pSrcU1[x]>>iPUResiPredShift[1]);
    928         pDstV[x] = pSrcV0[x] - (pSrcV1[x]>>iPUResiPredShift[1]);
    929       }
    930     }
    931 
    932     if(iPUResiPredShift[0] >= 0)
    933     {
    934       for ( x = iXOffset-1; x >= 0; x-- )
    935       {
    936         pDstU[x] = pSrcU0[x] - (pSrcU1[x]>>iPUResiPredShift[0]);
    937         pDstV[x] = pSrcV0[x] - (pSrcV1[x]>>iPUResiPredShift[0]);
    938       }
    939     }
    940     pSrcU0 += iSrc0Stride;
    941     pSrcU1 += iSrc1Stride;
    942     pSrcV0 += iSrc0Stride;
    943     pSrcV1 += iSrc1Stride;
    944     pDstU  += iDstStride;
    945     pDstV  += iDstStride;
    946   }
    947 #endif
    948 #else
    949   for ( y = uiPartSize-1; y >= 0; y-- )
    950   {
    951     for ( x = uiPartSize-1; x >= 0; x-- )
    952     {
    953       pDstU[x] = pSrcU0[x] - pSrcU1[x];
    954       pDstV[x] = pSrcV0[x] - pSrcV1[x];
    955     }
    956     pSrcU0 += iSrc0Stride;
    957     pSrcU1 += iSrc1Stride;
    958     pSrcV0 += iSrc0Stride;
    959     pSrcV1 += iSrc1Stride;
    960     pDstU  += iDstStride;
    961     pDstV  += iDstStride;
    962   }
    963 #endif
    964597}
    965598
  • branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TComYuv.h

    r296 r325  
    146146  Void    addClipPartLuma   ( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize ); //GT
    147147
    148 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138
    149   //  pcYuvSrc0 - pcYuvSrc1 -> m_apiBuf
    150   Void    subtract          (Int *iPUResiPredShift, PartSize uhPartitionSize, TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize );
    151   Void    subtractLuma      (Int *iPUResiPredShift, PartSize uhPartitionSize, TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize );
    152   Void    subtractChroma    (Int *iPUResiPredShift, PartSize uhPartitionSize, TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize );
    153 #else
    154148  Void    subtract          ( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize );
    155149  Void    subtractLuma      ( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize );
    156150  Void    subtractChroma    ( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize );
    157 #endif
    158151 
    159152  //  (pcYuvSrc0 + pcYuvSrc1)/2 for YUV partition
     
    166159  //   Remove High frequency
    167160  Void    removeHighFreq    ( TComYuv* pcYuvSrc, UInt uiPartIdx, UInt uiWidht, UInt uiHeight );
    168 #if LG_RESTRICTEDRESPRED_M24766 && !MTK_MDIVRP_C0138
    169   Void    getPUXYOffset     (PartSize uhPartitionSize, Int iWidth, Int iHeight, Int &iXOffset, Int &iYOffset);
    170   Void    add               (Int *iPUResiPredShift, PartSize uhPartitionSize, TComYuv* pcYuvAdd, Int iWidth, Int iHeight, Bool bSubtract = false );
    171   Void    addLuma           (Int *iPUResiPredShift, PartSize uhPartitionSize, TComYuv* pcYuvAdd, Int iWidth, Int iHeight, Bool bSubtract );
    172   Void    addChroma         (Int *iPUResiPredShift, PartSize uhPartitionSize, TComYuv* pcYuvAdd, Int iWidth, Int iHeight, Bool bSubtract );
    173 #else
    174161  Void    add               ( TComYuv* pcYuvAdd, Int iWidth, Int iHeight, Bool bSubtract = false );
    175162  Void    addLuma           ( TComYuv* pcYuvAdd, Int iWidth, Int iHeight, Bool bSubtract );
    176163  Void    addChroma         ( TComYuv* pcYuvAdd, Int iWidth, Int iHeight, Bool bSubtract );
    177 #endif
    178164
    179165  Void    clip              ( Int iWidth, Int iHeight );
  • branches/HTM-6.1-Cleanup/source/Lib/TLibCommon/TypeDef.h

    r322 r325  
    5757#define HHI_DMM_PRED_TEX                  1   // depth model modes dependent on texture (inter-component Wedgelet and Contour prediction )
    5858                                              // HHIQC_DMMFASTSEARCH_B0039, fast Wedgelet search for DMM modes 1 and 3
     59                                              // HHI_DMM_DELTADC_Q1_C0034   JCT3V-C0034: no quantization and fast encoder search for DMM delta DC values
     60                                              // FIX_DMM_CTX_INIT_C0034 JCT3V-C0034 fix for wrong init type of DMM contexts (UChar instead of Short)
    5961
    6062#define LGE_EDGE_INTRA_A0070              1   // JCT3V-A0070
    61 
    62 #define HHI_DMM_DELTADC_Q1_C0034          1   // JCT3V-C0034: no quantization and fast encoder search for DMM delta DC values
    63 #if ( HHI_DMM_PRED_TEX || HHI_DMM_WEDGE_INTRA ) && HHI_DMM_PRED_TEX
    6463#define LGE_DMM3_SIMP_C0044               1
    65 #endif
    66 #define FIX_DMM_CTX_INIT_C0034            1   // JCT3V-C0034 fix for wrong init type of DMM contexts (UChar instead of Short)
    6764
    6865///// ***** SDC *********
    6966#define RWTH_SDC_DLT_B0036                1   // JCT3V-B0036: Simplified Depth Coding + Depth Lookup Table
    70 #if RWTH_SDC_DLT_B0036
    71 #define SAIT_SDC_C0096                    1   // JCT3V-C0096: Improved Simple Depth Coding(removal of DMM2 among four SDC modes(DC, Planar, DMM1 and DMM2))
    72 #endif
    73 #define FIX_SDC_ENC_C0143                 1   // JCT3V-C0143 fix for unnecessary encoder checks in case of SDC
     67                                              // SAIT_SDC_C0096 JCT3V-C0096: Improved Simple Depth Coding(removal of DMM2 among four SDC modes(DC, Planar, DMM1 and DMM2))
     68                                              // FIX_SDC_ENC_C0143, JCT3V-C0143 fix for unnecessary encoder checks in case of SDC
    7469
    7570///// ***** TMVP/AMVP *********
     
    8782                                              // OL_DISMV_POS_B0069            , different pos for disparity MV candidate, B0069
    8883                                              // MTK_INTERVIEW_MERGE_A0049     , second part
    89 #define QC_AMVP_MRG_UNIFY_IVCAN_C0051     1
    90 #define QC_C0051_FIXED_BY_MTK             1   // Bug fix for C0051 implementation
     84                                              // QC_C0051_FIXED_BY_MTK             1   // Bug fix for C0051 implementation
     85                                              // QC_AMVP_MRG_UNIFY_IVCAN_C0051     1
    9186
    9287
     
    9590                                              // HHI_INTER_VIEW_RESIDUAL_PRED
    9691                                              // QC_SIMPLIFIEDIVRP_M24938
    97 #if H3D_IVRP       
    98 #define LG_RESTRICTEDRESPRED_M24766       1   // Restricted inter-view residual prediction
    99 #define FIX_LG_RESTRICTEDRESPRED_M24766   1
    100 #else                                 
    101 #define LG_RESTRICTEDRESPRED_M24766       0
    102 #endif
    103 
    104 #define MTK_MDIVRP_C0138                  1   // Mode-dependent inter-view residual prediction
    105 #define MTK_C0138_FIXED                   1   // Fix for IBP coding structure in view direction (not CTC)
    106 
     92                                              // MTK_C0138_FIXED                   // Fix for IBP coding structure in view direction (not CTC)
     93                                              // MTK_MDIVRP_C0138
     94                                              // LG_RESTRICTEDRESPRED_M24766       1   // Restricted inter-view residual prediction
     95                                              // FIX_LG_RESTRICTEDRESPRED_M24766   1
    10796
    10897///// ***** DISPARITY VECTOR DERIVATION *********
     
    121110                                              // MTK_RELEASE_DV_CONSTRAINT_C0129   
    122111                                              // MTK_SIMPLIFY_DVTC_C0135           
    123 #define FIX_CHROMA_RESIDUAL_C0129         1
     112                                              // FIX_CHROMA_RESIDUAL_C0129       
    124113
    125114///// ***** MOTION PARAMETER INHERITANCE  *********
     
    145134///// ***** ILLUMINATION COMPENSATON *********
    146135#define LGE_ILLUCOMP_B0045                1   // JCT2-B0045 Illumination compensation for Luma and Chroma
     136                                              // LGE_ILLUCOMP_B0045_ENCSIMP
     137                                              // FIX_LGE_ILLUCOMP_B0045           
    147138#if LGE_ILLUCOMP_B0045
    148 #define LGE_ILLUCOMP_B0045_ENCSIMP        1
    149 #define FIX_LGE_ILLUCOMP_B0045            1
    150139#define LGE_ILLUCOMP_DEPTH_C0046          1   // JCT2-C0046 Apply illumination compensation to depth
    151140#if LGE_ILLUCOMP_DEPTH_C0046
     
    158147
    159148///// ***** QUADTREE LIMITATION *********
    160 #define OL_QTLIMIT_PREDCODING_B0068       1    //JCT3V-B0068
    161 #define HHI_QTLPC_RAU_OFF_C0160           1   // JCT3V-C0160 change 2: quadtree limitation and predictive coding switched off in random access units
     149#define H3D_QTL                            1 // OL_QTLIMIT_dPREDCODING_B0068 //JCT3V-B0068
     150                                             // HHI_QTLPC_RAU_OFF_C0160     // JCT3V-C0160 change 2: quadtree limitation and predictive coding switched off in random access units
    162151
    163152///// ***** OTHERS *********
     
    211200#define MERL_VSP_BLOCKSIZE_C0152             4 // JCT3V-C0152: VSP block size, supported values: 1, 2 and 4.
    212201#define VSP_MERGE_POS                        5 // JCT3V-C0152: fixed position of VSP candidate in merge list, supported values: 5.
    213 #define MTK_DVPREFINE_BVSP_BUG_FIX               1
     202                                               //MTK_DVPREFINE_BVSP_BUG_FIX               1
    214203
    215204#else // !MERL_VSP_C0152
Note: See TracChangeset for help on using the changeset viewer.