Changeset 257 in 3DVCSoftware


Ignore:
Timestamp:
5 Feb 2013, 02:08:48 (11 years ago)
Author:
mitsubishi-htm
Message:

-Harmonize the implementation of compensation function with existing ones.

Location:
branches/HTM-5.1-dev3-MERL/source/Lib
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-5.1-dev3-MERL/source/Lib/TLibCommon/TComPrediction.cpp

    r231 r257  
    618618
    619619#if DEPTH_MAP_GENERATION
     620#if MERL_VSP_C0152
     621Void TComPrediction::motionCompensation( TComDataCU* pcCU, TComYuv* pcYuvPred, UInt uiAbsPartIdx, RefPicList eRefPicList, Int iPartIdx, Bool bPrdDepthMap, UInt uiSubSampExpX, UInt uiSubSampExpY )
     622#else
    620623Void TComPrediction::motionCompensation( TComDataCU* pcCU, TComYuv* pcYuvPred, RefPicList eRefPicList, Int iPartIdx, Bool bPrdDepthMap, UInt uiSubSampExpX, UInt uiSubSampExpY )
     624#endif
     625#else
     626#if MERL_VSP_C0152
     627Void TComPrediction::motionCompensation ( TComDataCU* pcCU, TComYuv* pcYuvPred, UInt uiAbsPartIdx, RefPicList eRefPicList, Int iPartIdx )
    621628#else
    622629Void TComPrediction::motionCompensation ( TComDataCU* pcCU, TComYuv* pcYuvPred, RefPicList eRefPicList, Int iPartIdx )
     630#endif
    623631#endif
    624632{
     
    648656      {
    649657#if DEPTH_MAP_GENERATION
     658#if MERL_VSP_C0152
     659        xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true );
     660#else
    650661        xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true );
     662#endif
     663#else
     664#if MERL_VSP_C0152
     665        xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, true );
    651666#else
    652667        xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, true );
    653668#endif
     669#endif
    654670      }
    655671      else
    656672      {
    657673#if DEPTH_MAP_GENERATION
     674#if MERL_VSP_C0152
     675        xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
     676#else       
    658677        xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
     678#endif
     679#else
     680#if MERL_VSP_C0152
     681        xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, false );
    659682#else
    660683        xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, false );
     684#endif
    661685#endif
    662686      }
     
    679703      {
    680704#if DEPTH_MAP_GENERATION
     705#if MERL_VSP_C0152
     706        xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
     707#else
    681708        xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
     709#endif
     710#else
     711#if MERL_VSP_C0152
     712        xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, false );
    682713#else
    683714        xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, false );
    684715#endif
     716#endif
    685717      }
    686718      else
    687719      {
    688720#if DEPTH_MAP_GENERATION
     721#if MERL_VSP_C0152
     722        xPredInterBi  (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, uiSubSampExpX, uiSubSampExpY, pcYuvPred, iPartIdx, bPrdDepthMap );
     723#else
    689724        xPredInterBi  (pcCU, uiPartAddr, iWidth, iHeight, uiSubSampExpX, uiSubSampExpY, pcYuvPred, iPartIdx, bPrdDepthMap );
     725#endif
     726#else
     727#if MERL_VSP_C0152
     728        xPredInterBi  (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, pcYuvPred, iPartIdx );
    690729#else
    691730        xPredInterBi  (pcCU, uiPartAddr, iWidth, iHeight, pcYuvPred, iPartIdx );
     731#endif
    692732#endif
    693733      }
     
    717757      {
    718758#if DEPTH_MAP_GENERATION
     759#if MERL_VSP_C0152
     760        xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true );
     761#else
    719762        xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true );
     763#endif
     764#else
     765#if MERL_VSP_C0152
     766        xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, true );
    720767#else
    721768        xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, true );
     769#endif
    722770#endif   
    723771      }
     
    725773      {
    726774#if DEPTH_MAP_GENERATION
     775#if MERL_VSP_C0152
     776        xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
     777#else
    727778        xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
     779#endif
     780#else
     781#if MERL_VSP_C0152
     782        xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, false );
    728783#else
    729784        xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, false );
     785#endif
    730786#endif   
    731787      }
    732788#if DEPTH_MAP_GENERATION
     789#if MERL_VSP_C0152
     790      xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
     791#else
    733792      xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
     793#endif
     794#else
     795#if MERL_VSP_C0152
     796      xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, false );
    734797#else
    735798      xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, false );
     799#endif
    736800#endif 
    737801#if LGE_ILLUCOMP_B0045
     
    749813      {
    750814#if DEPTH_MAP_GENERATION
     815#if MERL_VSP_C0152
     816        xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
     817#else
    751818        xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
     819#endif
     820#else
     821#if MERL_VSP_C0152
     822        xPredInterUni (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, false );
    752823#else
    753824        xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, false );
     825#endif
    754826#endif
    755827      }
     
    757829      {
    758830#if DEPTH_MAP_GENERATION
     831#if MERL_VSP_C0152
     832        xPredInterBi  (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, uiSubSampExpX, uiSubSampExpY, pcYuvPred, iPartIdx, bPrdDepthMap );
     833#else
    759834        xPredInterBi  (pcCU, uiPartAddr, iWidth, iHeight, uiSubSampExpX, uiSubSampExpY, pcYuvPred, iPartIdx, bPrdDepthMap );
     835#endif
     836#else
     837#if MERL_VSP_C0152
     838        xPredInterBi  (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, pcYuvPred, iPartIdx );
    760839#else
    761840        xPredInterBi  (pcCU, uiPartAddr, iWidth, iHeight, pcYuvPred, iPartIdx );
    762841#endif
     842#endif
    763843      }
    764844    }
     
    770850
    771851#if DEPTH_MAP_GENERATION
     852#if MERL_VSP_C0152
     853Void 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 )
     854#else
    772855Void TComPrediction::xPredInterUni ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bPrdDepthMap, UInt uiSubSampExpX, UInt uiSubSampExpY, Bool bi )
     856#endif
     857#else
     858#if MERL_VSP_C0152
     859Void TComPrediction::xPredInterUni ( TComDataCU* pcCU, UInt uiPartAddr, UInt uiAbsPartIdx, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bi )
    773860#else
    774861Void TComPrediction::xPredInterUni ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bi )
    775862#endif
    776 {
     863#endif
     864{
     865#if MERL_VSP_C0152
     866  Int  iRefIdx = pcCU->getCUMvField( eRefPicList )->getRefIdx( uiPartAddr );   
     867  Int  vspIdx  = pcCU->getVSPIndex(uiPartAddr);
     868  if (vspIdx != 0)
     869  {
     870    if (iRefIdx >= 0)
     871    {
     872      printf("vspIdx = %d, iRefIdx = %d\n", vspIdx, iRefIdx);
     873    }
     874    assert (iRefIdx < 0); // assert (iRefIdx == NOT_VALID);
     875  }
     876  else
     877  {
     878    assert (iRefIdx >= 0);
     879  }
     880#else
    777881  Int         iRefIdx     = pcCU->getCUMvField( eRefPicList )->getRefIdx( uiPartAddr );           assert (iRefIdx >= 0);
     882#endif
     883
    778884  TComMv      cMv         = pcCU->getCUMvField( eRefPicList )->getMv( uiPartAddr );
    779885  pcCU->clipMv(cMv);
     
    797903  if( pcCU->getSlice()->getSPS()->isDepth() )
    798904  {
    799     UInt uiRShift = ( bi ? 14-g_uiBitDepth-g_uiBitIncrement : 0 );
    800     UInt uiOffset = bi ? IF_INTERNAL_OFFS : 0;
    801 #if DEPTH_MAP_GENERATION
    802     xPredInterPrdDepthMap( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, 0, 0, rpcYuvPred, uiRShift, uiOffset );
    803 #else
    804     xPredInterPrdDepthMap( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, uiRShift, uiOffset );
    805 #endif
    806   }
    807   else
    808   {
    809 #endif
    810 #if LGE_ILLUCOMP_B0045
    811     Bool bICFlag = pcCU->getICFlag(uiPartAddr) && (pcCU->getSlice()->getRefViewId( eRefPicList, iRefIdx ) != pcCU->getSlice()->getViewId());
    812 
    813     xPredInterLumaBlk  ( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi, bICFlag);
    814 #else
    815   xPredInterLumaBlk  ( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi );
    816 #endif
    817 #if HHI_FULL_PEL_DEPTH_MAP_MV_ACC
    818   }
    819 #endif
    820 #if LGE_ILLUCOMP_B0045
    821   Bool bICFlag = pcCU->getICFlag(uiPartAddr) && (pcCU->getSlice()->getRefViewId( eRefPicList, iRefIdx ) != pcCU->getSlice()->getViewId());
    822 
    823   xPredInterChromaBlk( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi, bICFlag );
    824 #else
    825   xPredInterChromaBlk( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi );
    826 #endif
    827 }
    828 
    829 
    830 #if DEPTH_MAP_GENERATION
    831 Void TComPrediction::xPredInterBi ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, UInt uiSubSampExpX, UInt uiSubSampExpY, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bPrdDepthMap )
    832 #else
    833 Void TComPrediction::xPredInterBi ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, TComYuv*& rpcYuvPred, Int iPartIdx )
    834 #endif
    835 {
    836   TComYuv* pcMbYuv;
    837   Int      iRefIdx[2] = {-1, -1};
    838 
    839   for ( Int iRefList = 0; iRefList < 2; iRefList++ )
    840   {
    841     RefPicList eRefPicList = (iRefList ? REF_PIC_LIST_1 : REF_PIC_LIST_0);
    842     iRefIdx[iRefList] = pcCU->getCUMvField( eRefPicList )->getRefIdx( uiPartAddr );
    843 
    844     if ( iRefIdx[iRefList] < 0 )
    845     {
    846       continue;
    847     }
    848 
    849     assert( iRefIdx[iRefList] < pcCU->getSlice()->getNumRefIdx(eRefPicList) );
    850 
    851     pcMbYuv = &m_acYuvPred[iRefList];
    852     if( pcCU->getCUMvField( REF_PIC_LIST_0 )->getRefIdx( uiPartAddr ) >= 0 && pcCU->getCUMvField( REF_PIC_LIST_1 )->getRefIdx( uiPartAddr ) >= 0 )
    853     {
    854 #if DEPTH_MAP_GENERATION
    855       xPredInterUni ( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true );
    856 #else
    857       xPredInterUni ( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, true );
    858 #endif
    859     }
    860     else
    861     {
    862       if ( pcCU->getSlice()->getPPS()->getWPBiPredIdc() )
    863       {
    864 #if DEPTH_MAP_GENERATION
    865         xPredInterUni ( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true );
    866 #else
    867         xPredInterUni ( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, true );
    868 #endif
    869       }
    870       else
    871       {
    872 #if DEPTH_MAP_GENERATION
    873         xPredInterUni ( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
    874 #else
    875         xPredInterUni ( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, false );
    876 #endif
    877       }
    878     }
    879   }
    880 
    881   if ( pcCU->getSlice()->getPPS()->getWPBiPredIdc() )
    882   {
    883     xWeightedPredictionBi( pcCU, &m_acYuvPred[0], &m_acYuvPred[1], iRefIdx[0], iRefIdx[1], uiPartAddr, iWidth, iHeight, rpcYuvPred );
    884   }
    885   else
    886   {
    887 #if DEPTH_MAP_GENERATION
    888     if ( bPrdDepthMap )
    889     {
    890       xWeightedAveragePdm( pcCU, &m_acYuvPred[0], &m_acYuvPred[1], iRefIdx[0], iRefIdx[1], uiPartAddr, iWidth, iHeight, rpcYuvPred, uiSubSampExpX, uiSubSampExpY );
    891     }
    892     else
    893     {
    894     xWeightedAverage( pcCU, &m_acYuvPred[0], &m_acYuvPred[1], iRefIdx[0], iRefIdx[1], uiPartAddr, iWidth, iHeight, rpcYuvPred );
    895   }
    896 #else
    897     xWeightedAverage( pcCU, &m_acYuvPred[0], &m_acYuvPred[1], iRefIdx[0], iRefIdx[1], uiPartAddr, iWidth, iHeight, rpcYuvPred );
    898 #endif
    899   }
    900 }
    901 
    902 #if MERL_VSP_C0152
    903 #if DEPTH_MAP_GENERATION
    904 Void TComPrediction::motionCompensationBWVSP( TComDataCU* pcCU, TComYuv* pcYuvPred, UInt uiAbsPartIdx, RefPicList eRefPicList, Int iPartIdx, Bool bPrdDepthMap, UInt uiSubSampExpX, UInt uiSubSampExpY )
    905 #else
    906 Void TComPrediction::motionCompensationBWVSP ( TComDataCU* pcCU, TComYuv* pcYuvPred, UInt uiAbsPartIdx, RefPicList eRefPicList, Int iPartIdx )
    907 #endif
    908 {
    909   Int         iWidth;
    910   Int         iHeight;
    911   UInt        uiPartAddr;
    912 
    913   if ( iPartIdx >= 0 )
    914   {
    915     pcCU->getPartIndexAndSize( iPartIdx, uiPartAddr, iWidth, iHeight );
    916 
    917 #if DEPTH_MAP_GENERATION
    918     if( bPrdDepthMap )
    919     {
    920       iWidth  >>= uiSubSampExpX;
    921       iHeight >>= uiSubSampExpY;
    922     }
    923 #endif
    924 
    925     if ( eRefPicList != REF_PIC_LIST_X )
    926     {
    927 #if LGE_ILLUCOMP_B0045
    928       if( pcCU->getSlice()->getPPS()->getUseWP() && !pcCU->getICFlag(uiPartAddr))
    929 #else
    930       if( pcCU->getSlice()->getPPS()->getUseWP())
    931 #endif
    932       {
    933 #if DEPTH_MAP_GENERATION
    934         xPredInterUniBWVSP (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr , iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true );
    935 #else
    936         xPredInterUniBWVSP (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr , iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, true );
    937 #endif
    938       }
    939       else
    940       {
    941 #if DEPTH_MAP_GENERATION
    942         xPredInterUniBWVSP (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr , iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
    943 #else
    944         xPredInterUniBWVSP (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, false );
    945 #endif
    946       }
    947 #if LGE_ILLUCOMP_B0045
    948       if( pcCU->getSlice()->getPPS()->getUseWP() && !pcCU->getICFlag(uiPartAddr))
    949 #else
    950       if( pcCU->getSlice()->getPPS()->getUseWP())
    951 #endif
    952       {
    953         xWeightedPredictionUni( pcCU, pcYuvPred, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx );
    954       }
    955     }
    956     else
    957     {
    958 #if DEPTH_MAP_GENERATION
    959       if( xCheckIdenticalMotion( pcCU, uiPartAddr ) && !bPrdDepthMap )
    960 #else
    961       if ( xCheckIdenticalMotion( pcCU, uiPartAddr ) )
    962 #endif
    963       {
    964 #if DEPTH_MAP_GENERATION
    965         xPredInterUniBWVSP (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr , iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
    966 #else
    967         xPredInterUniBWVSP (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr , iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, false );
    968 #endif
    969       }
    970       else
    971       {
    972 #if DEPTH_MAP_GENERATION
    973         xPredInterBiBWVSP  (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr , iWidth, iHeight, uiSubSampExpX, uiSubSampExpY, pcYuvPred, iPartIdx, bPrdDepthMap );
    974 #else
    975         xPredInterBiBWVSP  (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr , iWidth, iHeight, pcYuvPred, iPartIdx );
    976 #endif
    977       }
    978     }
    979     return;
    980   }
    981 
    982   for ( iPartIdx = 0; iPartIdx < pcCU->getNumPartInter(); iPartIdx++ )
    983   {
    984     pcCU->getPartIndexAndSize( iPartIdx, uiPartAddr, iWidth, iHeight );
    985 
    986 #if DEPTH_MAP_GENERATION
    987     if( bPrdDepthMap )
    988     {
    989       iWidth  >>= uiSubSampExpX;
    990       iHeight >>= uiSubSampExpY;
    991     }
    992 #endif
    993 
    994     if ( eRefPicList != REF_PIC_LIST_X )
    995     {
    996 #if LGE_ILLUCOMP_B0045
    997       if( pcCU->getSlice()->getPPS()->getUseWP() && !pcCU->getICFlag(uiPartAddr))
    998 #else
    999       if( pcCU->getSlice()->getPPS()->getUseWP())
    1000 #endif
    1001       {
    1002 #if DEPTH_MAP_GENERATION
    1003         xPredInterUniBWVSP (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr , iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true );
    1004 #else
    1005         xPredInterUniBWVSP (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, true );
    1006 #endif   
    1007       }
    1008       else
    1009       {
    1010 #if DEPTH_MAP_GENERATION
    1011         xPredInterUniBWVSP (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
    1012 #else
    1013         xPredInterUniBWVSP (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, false );
    1014 #endif   
    1015       }
    1016 #if DEPTH_MAP_GENERATION
    1017       xPredInterUniBWVSP (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
    1018 #else
    1019       xPredInterUniBWVSP (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx, false );
    1020 #endif 
    1021 #if LGE_ILLUCOMP_B0045
    1022       if( pcCU->getSlice()->getPPS()->getUseWP() && !pcCU->getICFlag(uiPartAddr))
    1023 #else
    1024       if( pcCU->getSlice()->getPPS()->getUseWP())
    1025 #endif
    1026       {
    1027         xWeightedPredictionUni( pcCU, pcYuvPred, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, iPartIdx );
    1028       }
    1029     }
    1030     else
    1031     {
    1032       if ( xCheckIdenticalMotion( pcCU, uiPartAddr ) )
    1033       {
    1034 #if DEPTH_MAP_GENERATION
    1035         xPredInterUniBWVSP (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
    1036 #else
    1037         xPredInterUniBWVSP (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred, iPartIdx, false );
    1038 #endif
    1039       }
    1040       else
    1041       {
    1042 #if DEPTH_MAP_GENERATION
    1043         xPredInterBiBWVSP  (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, uiSubSampExpX, uiSubSampExpY, pcYuvPred, iPartIdx, bPrdDepthMap );
    1044 #else
    1045         xPredInterBiBWVSP  (pcCU, uiPartAddr, uiAbsPartIdx+uiPartAddr, iWidth, iHeight, pcYuvPred, iPartIdx );
    1046 #endif
    1047       }
    1048     }
    1049   }
    1050 
    1051   return;
    1052 }
    1053 
    1054 
    1055 // Output: rpcYuvPred
    1056 #if DEPTH_MAP_GENERATION
    1057 Void TComPrediction::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 )
    1058 #else
    1059 Void TComPrediction::xPredInterUniBWVSP ( TComDataCU* pcCU, UInt uiPartAddr, UInt uiAbsPartIdx, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bi )
    1060 #endif
    1061 {
    1062   Int  iRefIdx = pcCU->getCUMvField( eRefPicList )->getRefIdx( uiPartAddr );   
    1063   Int  vspIdx  = pcCU->getVSPIndex(uiPartAddr);
    1064   if (vspIdx != 0)
    1065   {
    1066     if (iRefIdx >= 0)
    1067     {
    1068       printf("vspIdx = %d, iRefIdx = %d\n", vspIdx, iRefIdx);
    1069     }
    1070     assert (iRefIdx < 0); // assert (iRefIdx == NOT_VALID);
    1071   }
    1072   else
    1073   {
    1074     assert (iRefIdx >= 0);
    1075   }
    1076 
    1077   TComMv cMv = pcCU->getCUMvField( eRefPicList )->getMv( uiPartAddr );
    1078   pcCU->clipMv(cMv);
    1079 
    1080 #if DEPTH_MAP_GENERATION
    1081   if( bPrdDepthMap )
    1082   {
    1083     UInt uiRShift = 0;
    1084 #if PDM_REMOVE_DEPENDENCE
    1085     if( pcCU->getPic()->getStoredPDMforV2() == 1 )
    1086       xPredInterPrdDepthMap( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPredDepthMapTemp(), uiPartAddr, &cMv, iWidth, iHeight, uiSubSampExpX, uiSubSampExpY, rpcYuvPred, uiRShift, 0 );
    1087     else
    1088 #endif
    1089       xPredInterPrdDepthMap( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPredDepthMap(), uiPartAddr, &cMv, iWidth, iHeight, uiSubSampExpX, uiSubSampExpY, rpcYuvPred, uiRShift, 0 );
    1090 
    1091     return;
    1092   }
    1093 #endif
    1094 
    1095 #if HHI_FULL_PEL_DEPTH_MAP_MV_ACC
    1096   if( pcCU->getSlice()->getSPS()->isDepth() )
    1097   {
     905#if MERL_VSP_C0152
    1098906    if (vspIdx != 0)
    1099907    { // depth, vsp
     
    1115923      xPredInterChromaBlkFromDM( pcBaseViewDepthPicYuv, pcBaseViewDepthPicYuv, pShiftLUT, iShiftPrec, &cMv, uiPartAddr, iBlkX>>1, iBlkY>>1, iWidth>>1, iHeight>>1,  pcCU->getSlice()->getSPS()->isDepth(), vspIdx, rpcYuvPred );
    1116924    }
    1117     else
    1118     { // depth, non-vsp
     925   else
     926    {
     927#endif
    1119928      UInt uiRShift = ( bi ? 14-g_uiBitDepth-g_uiBitIncrement : 0 );
    1120929      UInt uiOffset = bi ? IF_INTERNAL_OFFS : 0;
     
    1124933      xPredInterPrdDepthMap( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, uiRShift, uiOffset );
    1125934#endif
    1126 
    1127       xPredInterChromaBlk( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi );
    1128     }
    1129   }
    1130   else // texture
    1131   {
    1132 #endif
    1133     if ( vspIdx != 0 && !pcCU->getSlice()->getSPS()->isDepth())
     935#if MERL_VSP_C0152
     936     }
     937#endif// MERL_VSP_C0152 //else
     938  }
     939  else
     940  {
     941#endif
     942#if MERL_VSP_C0152
     943    if ( vspIdx != 0 )
    1134944    { // texture, vsp
    1135945      TComPic*    pRefPicBaseTxt        = pcCU->getSlice()->getRefPicBaseTxt();
     
    1152962      xPredInterChromaBlkFromDM( pcBaseViewTxtPicYuv, pcBaseViewDepthPicYuv, pShiftLUT, iShiftPrec, &cMv, uiPartAddr, iBlkX>>1, iBlkY>>1, iWidth>>1, iHeight>>1, pcCU->getSlice()->getSPS()->isDepth(), vspIdx, rpcYuvPred );
    1153963    }
    1154     else
    1155     { // texture, non-vsp
     964    else//texture not VSP
     965    {
     966#endif //MERL_VSP_C0152
    1156967#if LGE_ILLUCOMP_B0045
    1157       Bool bICFlag = pcCU->getICFlag(uiPartAddr) && (pcCU->getSlice()->getRefViewId( eRefPicList, iRefIdx ) != pcCU->getSlice()->getViewId());
    1158 
    1159       xPredInterLumaBlk  ( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi, bICFlag);
    1160       xPredInterChromaBlk( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi, bICFlag );
    1161 #else
    1162       xPredInterLumaBlk  ( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi );
    1163       xPredInterChromaBlk( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi );
    1164 #endif
    1165     }
     968    Bool bICFlag = pcCU->getICFlag(uiPartAddr) && (pcCU->getSlice()->getRefViewId( eRefPicList, iRefIdx ) != pcCU->getSlice()->getViewId());
     969
     970    xPredInterLumaBlk  ( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi, bICFlag);
     971#else
     972  xPredInterLumaBlk  ( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi );
     973#endif
     974#if MERL_VSP_C0152
     975     } //texture not VSP
     976#endif
    1166977#if HHI_FULL_PEL_DEPTH_MAP_MV_ACC
    1167978  }
    1168979#endif
     980
     981#if MERL_VSP_C0152
     982  if ( vspIdx == 0 )//Not VSP
     983  {
     984#endif
     985#if LGE_ILLUCOMP_B0045
     986  Bool bICFlag = pcCU->getICFlag(uiPartAddr) && (pcCU->getSlice()->getRefViewId( eRefPicList, iRefIdx ) != pcCU->getSlice()->getViewId());
     987
     988  xPredInterChromaBlk( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi, bICFlag );
     989#else
     990  xPredInterChromaBlk( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi );
     991#endif
     992#if MERL_VSP_C0152
     993   }
     994#endif
    1169995}
    1170996
    1171997
    1172998#if DEPTH_MAP_GENERATION
    1173 Void TComPrediction::xPredInterBiBWVSP ( TComDataCU* pcCU, UInt uiPartAddr, UInt uiAbsPartIdx, Int iWidth, Int iHeight, UInt uiSubSampExpX, UInt uiSubSampExpY, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bPrdDepthMap )
    1174 #else
    1175 Void TComPrediction::xPredInterBiSDM ( TComDataCU* pcCU, UInt uiPartAddr, UInt uiAbsPartIdx, Int iWidth, Int iHeight, TComYuv*& rpcYuvPred, Int iPartIdx )
     999#if MERL_VSP_C0152
     1000Void TComPrediction::xPredInterBi ( TComDataCU* pcCU, UInt uiPartAddr, UInt uiAbsPartIdx, Int iWidth, Int iHeight, UInt uiSubSampExpX, UInt uiSubSampExpY, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bPrdDepthMap )
     1001#else
     1002Void TComPrediction::xPredInterBi ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, UInt uiSubSampExpX, UInt uiSubSampExpY, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bPrdDepthMap )
     1003#endif
     1004#else
     1005#if MERL_VSP_C0152
     1006Void TComPrediction::xPredInterBi ( TComDataCU* pcCU, UInt uiPartAddr, UInt uiAbsPartIdx, Int iWidth, Int iHeight, TComYuv*& rpcYuvPred, Int iPartIdx )
     1007#else
     1008Void TComPrediction::xPredInterBi ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, TComYuv*& rpcYuvPred, Int iPartIdx )
     1009#endif
    11761010#endif
    11771011{
     
    11831017    RefPicList eRefPicList = (iRefList ? REF_PIC_LIST_1 : REF_PIC_LIST_0);
    11841018    iRefIdx[iRefList] = pcCU->getCUMvField( eRefPicList )->getRefIdx( uiPartAddr );
     1019
    11851020#if MERL_VSP_C0152
    11861021    if(!pcCU->getVSPIndex(uiPartAddr))
     
    12041039    }
    12051040#endif
     1041
    12061042    assert( iRefIdx[iRefList] < pcCU->getSlice()->getNumRefIdx(eRefPicList) );
    12071043
     
    12101046    {
    12111047#if DEPTH_MAP_GENERATION
    1212       xPredInterUniBWVSP ( pcCU, uiPartAddr, uiAbsPartIdx, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true );
    1213 #else
    1214       xPredInterUniBWVSP ( pcCU, uiPartAddr, uiAbsPartIdx, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, true );
     1048#if MERL_VSP_C0152
     1049      xPredInterUni ( pcCU, uiPartAddr, uiAbsPartIdx, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true );
     1050#else
     1051      xPredInterUni ( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true );
     1052#endif
     1053#else
     1054#if MERL_VSP_C0152
     1055      xPredInterUni ( pcCU, uiPartAddr, uiAbsPartIdx, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, true );
     1056#else
     1057      xPredInterUni ( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, true );
     1058#endif
    12151059#endif
    12161060    }
     
    12201064      {
    12211065#if DEPTH_MAP_GENERATION
    1222         xPredInterUniBWVSP ( pcCU, uiPartAddr, uiAbsPartIdx, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true );
    1223 #else
    1224         xPredInterUniBWVSP ( pcCU, uiPartAddr, uiAbsPartIdx, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, true );
     1066#if MERL_VSP_C0152
     1067        xPredInterUni ( pcCU, uiPartAddr, uiAbsPartIdx, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true );
     1068#else
     1069        xPredInterUni ( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, true );
     1070#endif
     1071#else
     1072#if MERL_VSP_C0152
     1073        xPredInterUni ( pcCU, uiPartAddr, uiAbsPartIdx, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, true );
     1074#else
     1075        xPredInterUni ( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, true );
     1076#endif
    12251077#endif
    12261078      }
     
    12281080      {
    12291081#if DEPTH_MAP_GENERATION
    1230         xPredInterUniBWVSP ( pcCU, uiPartAddr, uiAbsPartIdx, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
    1231 #else
    1232         xPredInterUniBWVSP ( pcCU, uiPartAddr, uiAbsPartIdx, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, false );
     1082#if MERL_VSP_C0152
     1083        xPredInterUni ( pcCU, uiPartAddr, uiAbsPartIdx, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
     1084#else
     1085        xPredInterUni ( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, bPrdDepthMap, uiSubSampExpX, uiSubSampExpY, false );
     1086#endif
     1087#else
     1088#if MERL_VSP_C0152
     1089        xPredInterUni ( pcCU, uiPartAddr, uiAbsPartIdx, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, false );
     1090#else
     1091        xPredInterUni ( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcMbYuv, iPartIdx, false );
     1092#endif
    12331093#endif
    12341094      }
     
    12591119      else
    12601120#endif
    1261       xWeightedAverage( pcCU, &m_acYuvPred[0], &m_acYuvPred[1], iRefIdx[0], iRefIdx[1], uiPartAddr, iWidth, iHeight, rpcYuvPred );
    1262     }
    1263 #else
    12641121    xWeightedAverage( pcCU, &m_acYuvPred[0], &m_acYuvPred[1], iRefIdx[0], iRefIdx[1], uiPartAddr, iWidth, iHeight, rpcYuvPred );
    1265 #endif
    1266   }
    1267 }
    1268 #endif
     1122  }
     1123#else
     1124    xWeightedAverage( pcCU, &m_acYuvPred[0], &m_acYuvPred[1], iRefIdx[0], iRefIdx[1], uiPartAddr, iWidth, iHeight, rpcYuvPred );
     1125#endif
     1126  }
     1127}
     1128
     1129
    12691130
    12701131Void
  • branches/HTM-5.1-dev3-MERL/source/Lib/TLibCommon/TComPrediction.h

    r231 r257  
    8787  // motion compensation functions
    8888#if DEPTH_MAP_GENERATION
     89#if MERL_VSP_C0152
     90  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 );
     91#else
    8992  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 );
     93#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          );
    9097#else
    9198  Void xPredInterUni            ( TComDataCU* pcCU,                          UInt uiPartAddr,               Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bi=false          );
    9299#endif
    93 
    94 #if DEPTH_MAP_GENERATION
     100#endif
     101
     102#if DEPTH_MAP_GENERATION
     103#if MERL_VSP_C0152
     104  Void xPredInterBi             ( TComDataCU* pcCU,                          UInt uiPartAddr,       UInt uiAbsPartIdx,   Int iWidth, Int iHeight, UInt uiSubSampExpX, UInt uiSubSampExpY, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bPrdDepthMap );
     105#else
    95106  Void xPredInterBi             ( TComDataCU* pcCU,                          UInt uiPartAddr,               Int iWidth, Int iHeight, UInt uiSubSampExpX, UInt uiSubSampExpY, TComYuv*& rpcYuvPred, Int iPartIdx, Bool bPrdDepthMap );
     107#endif
    96108  Void xPredInterPrdDepthMap    ( TComDataCU* pcCU, TComPicYuv* pcPicYuvRef, UInt uiPartAddr, TComMv* pcMv, Int iWidth, Int iHeight, UInt uiSubSampExpX, UInt uiSubSampExpY, TComYuv*& rpcYuv, UInt uiRShift, UInt uiOffset );
    97109#else
     110#if MERL_VSP_C0152
     111  Void xPredInterBi             ( TComDataCU* pcCU,                          UInt uiPartAddr,     UInt uiAbsPartIdx,     Int iWidth, Int iHeight,                         TComYuv*& rpcYuvPred, Int iPartIdx          );
     112#else
    98113  Void xPredInterBi             ( TComDataCU* pcCU,                          UInt uiPartAddr,               Int iWidth, Int iHeight,                         TComYuv*& rpcYuvPred, Int iPartIdx          );
     114#endif
    99115  Void xPredInterPrdDepthMap    ( TComDataCU* pcCU, TComPicYuv* pcPicYuvRef, UInt uiPartAddr, TComMv* pcMv, Int iWidth, Int iHeight,                         TComYuv*& rpcYuv, UInt uiRShift, UInt uiOffset );
    100116#endif
     
    160176  // inter
    161177#if DEPTH_MAP_GENERATION
     178#if MERL_VSP_C0152
     179  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 );
     180#else
    162181  Void motionCompensation         ( TComDataCU*  pcCU, TComYuv* pcYuvPred, RefPicList eRefPicList = REF_PIC_LIST_X, Int iPartIdx = -1, Bool bPrdDepthMap = false, UInt uiSubSampExpX = 0, UInt uiSubSampExpY = 0 );
     182#endif
     183#else
     184#if MERL_VSP_C0152
     185  Void motionCompensation         ( TComDataCU*  pcCU, TComYuv* pcYuvPred, UInt uiAbsPartIdx,, RefPicList eRefPicList = REF_PIC_LIST_X, Int iPartIdx = -1 );
    163186#else
    164187  Void motionCompensation         ( TComDataCU*  pcCU, TComYuv* pcYuvPred, RefPicList eRefPicList = REF_PIC_LIST_X, Int iPartIdx = -1 );
    165188#endif
    166 
    167 #if MERL_VSP_C0152
    168    Void motionCompensationBWVSP   ( TComDataCU*  pcCU, TComYuv* pcYuvPred, UInt uiAbsPartIdx, RefPicList eRefPicList = REF_PIC_LIST_X, Int iPartIdx = -1, Bool bPrdDepthMap = false, UInt uiSubSampExpX = 0, UInt uiSubSampExpY = 0 );
    169 #endif
     189#endif
     190
    170191
    171192  // motion vector prediction
  • branches/HTM-5.1-dev3-MERL/source/Lib/TLibDecoder/TDecCu.cpp

    r231 r257  
    688688  // inter prediction
    689689#if MERL_VSP_C0152
    690   m_pcPrediction->motionCompensationBWVSP( pcCU, m_ppcYuvReco[uiDepth], uiAbsPartIdx );
     690  m_pcPrediction->motionCompensation( pcCU, m_ppcYuvReco[uiDepth], uiAbsPartIdx );
    691691#else
    692692  m_pcPrediction->motionCompensation( pcCU, m_ppcYuvReco[uiDepth] );
  • branches/HTM-5.1-dev3-MERL/source/Lib/TLibEncoder/TEncCu.cpp

    r231 r257  
    19731973        {
    19741974#if MERL_VSP_C0152
    1975             m_pcPredSearch->motionCompensationBWVSP ( rpcTempCU, m_ppcPredYuvTemp[uhDepth],  rpcTempCU->getZorderIdxInCU() );
     1975            m_pcPredSearch->motionCompensation ( rpcTempCU, m_ppcPredYuvTemp[uhDepth],  rpcTempCU->getZorderIdxInCU() );
    19761976#else
    19771977            m_pcPredSearch->motionCompensation ( rpcTempCU, m_ppcPredYuvTemp[uhDepth] );
     
    19871987            {
    19881988#if MERL_VSP_C0152
    1989               m_pcPredSearch->motionCompensationBWVSP ( rpcTempCU, m_ppcPredYuvTemp[uhDepth], rpcTempCU->getZorderIdxInCU() );
     1989              m_pcPredSearch->motionCompensation( rpcTempCU, m_ppcPredYuvTemp[uhDepth], rpcTempCU->getZorderIdxInCU() );
    19901990#else
    19911991              m_pcPredSearch->motionCompensation ( rpcTempCU, m_ppcPredYuvTemp[uhDepth] );
     
    28242824    rpcTempCU->setPredModeSubParts( bSkipResidual ? MODE_SKIP : MODE_INTER, 0, uhDepth );
    28252825#if MERL_VSP_C0152
    2826     m_pcPredSearch->motionCompensationBWVSP( rpcTempCU, m_ppcPredYuvTemp[uhDepth], rpcTempCU->getZorderIdxInCU()  );
     2826    m_pcPredSearch->motionCompensation( rpcTempCU, m_ppcPredYuvTemp[uhDepth], rpcTempCU->getZorderIdxInCU()  );
    28272827#else
    28282828    m_pcPredSearch->motionCompensation( rpcTempCU, m_ppcPredYuvTemp[uhDepth] );
  • branches/HTM-5.1-dev3-MERL/source/Lib/TLibEncoder/TEncSearch.cpp

    r231 r257  
    29062906  pcCU->getPartIndexAndSize( iPartIdx, uiAbsPartIdx, iWidth, iHeight );
    29072907#if MERL_VSP_C0152
    2908   motionCompensationBWVSP( pcCU, &m_tmpYuvPred,  pcCU->getZorderIdxInCU(), REF_PIC_LIST_X, iPartIdx );
     2908  motionCompensation( pcCU, &m_tmpYuvPred,  pcCU->getZorderIdxInCU(), REF_PIC_LIST_X, iPartIdx );
    29092909#endif
    29102910  DistParam cDistParam;
     
    34143414              {
    34153415                TComYuv*  pcYuvPred = &m_acYuvPred[iRefList];
     3416#if MERL_VSP_C0152
     3417                motionCompensation ( pcCU, pcYuvPred, pcCU->getZorderIdxInCU(),  eRefPicList, iPartIdx );
     3418#else
    34163419                motionCompensation ( pcCU, pcYuvPred, eRefPicList, iPartIdx );
     3420#endif
    34173421              }
    34183422              if ( (pcCU->getSlice()->getNoBackPredFlag() || (pcCU->getSlice()->getNumRefIdx(REF_PIC_LIST_C) > 0 && pcCU->getSlice()->getRefIdxOfL0FromRefIdxOfL1(0)==0 )) && eRefPicList == REF_PIC_LIST_0 )
    34193423              {
    34203424                TComYuv*  pcYuvPred = &m_acYuvPred[iRefList];
     3425#if MERL_VSP_C0152
     3426                motionCompensation ( pcCU, pcYuvPred, pcCU->getZorderIdxInCU(),  eRefPicList, iPartIdx );
     3427#else
    34213428                motionCompensation ( pcCU, pcYuvPred, eRefPicList, iPartIdx );
     3429#endif
    34223430              }
    34233431#if H0111_MVD_L1_ZERO
     
    34603468        pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllRefIdx( iRefIdxBi[1], ePartSize, uiPartAddr, 0, iPartIdx );
    34613469        TComYuv* pcYuvPred = &m_acYuvPred[1];
     3470#if MERL_VSP_C0152
     3471        motionCompensation( pcCU, pcYuvPred, pcCU->getZorderIdxInCU(),  REF_PIC_LIST_1, iPartIdx );
     3472#else
    34623473        motionCompensation( pcCU, pcYuvPred, REF_PIC_LIST_1, iPartIdx );
    3463 
     3474#endif
    34643475        uiMotBits[0] = uiBits[0] - uiMbBits[0];
    34653476        uiMotBits[1] = uiMbBits[1];
     
    36003611
    36013612              TComYuv* pcYuvPred = &m_acYuvPred[iRefList];
     3613#if MERL_VSP_C0152
     3614              motionCompensation( pcCU, pcYuvPred, pcCU->getZorderIdxInCU(),  REF_PIC_LIST_1, iPartIdx );
     3615#else
    36023616              motionCompensation( pcCU, pcYuvPred, eRefPicList, iPartIdx );
     3617#endif
    36033618#if H0111_MVD_L1_ZERO
    36043619            }
     
    39413956    //  MC
    39423957#if MERL_VSP_C0152
    3943     motionCompensationBWVSP ( pcCU, rpcPredYuv, pcCU->getZorderIdxInCU(), REF_PIC_LIST_X, iPartIdx);
     3958    motionCompensation ( pcCU, rpcPredYuv, pcCU->getZorderIdxInCU(), REF_PIC_LIST_X, iPartIdx);
    39443959#else
    39453960    motionCompensation ( pcCU, rpcPredYuv, REF_PIC_LIST_X, iPartIdx );
Note: See TracChangeset for help on using the changeset viewer.