Changeset 313 in 3DVCSoftware for trunk/source/Lib/TLibCommon


Ignore:
Timestamp:
20 Mar 2013, 21:35:14 (12 years ago)
Author:
tech
Message:

Reintegrated branch 6.0-dev0 rev. 312.

Location:
trunk/source/Lib/TLibCommon
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TLibCommon/TComDataCU.cpp

    r296 r313  
    8181                                          UChar* puhInterDirNeighbours, TComMvField* pcMvFieldNeighbours, Int* iVSPIndexTrue, Int mrgCandIdx, DisInfo* pDInfo )
    8282{
     83#if MERL_VSP_C0152_BugFix_ForNoDepthCase
     84  TComPic* pRefPicBaseDepth = NULL;
     85  pRefPicBaseDepth = getSlice()->getRefPicBaseDepth();
     86  if(ucVspMergePos == VSP_MERGE_POS && pRefPicBaseDepth) //VSP can be used only when depth is used as input
     87#else
     88  if( ucVspMergePos == VSP_MERGE_POS )
     89#endif
    8390  if( ucVspMergePos == VSP_MERGE_POS )
    8491  {
     
    35963603#if H3D_IVMP
    35973604#if MTK_DEPTH_MERGE_TEXTURE_CANDIDATE_C0137
     3605#if FCO_FIX
     3606  const Int extraMergeCand = ( ( ( getSlice()->getIsDepth() && m_pcSlice->getTexturePic() ) || getSlice()->getSPS()->getMultiviewMvPredMode() )? 1 : 0 );
     3607#else
    35983608  const Int extraMergeCand = ( ( getSlice()->getIsDepth() || getSlice()->getSPS()->getMultiviewMvPredMode() )? 1 : 0 );
     3609#endif
    35993610#else
    36003611  const Int extraMergeCand = ( getSlice()->getSPS()->getMultiviewMvPredMode() ? 1 : 0 );
     
    36513662  if(!bNoPdmMerge)
    36523663  {
     3664#if FCO_DVP_REFINE_C0132_C0170
     3665    if( !getPic()->getDepthCoded() )
     3666#endif
    36533667    getDisMvpCandNBDV(uiPUIdx, uiAbsPartIdx, &cDisInfo , true
    36543668#if MERL_VSP_C0152
     
    36573671);
    36583672  }
     3673#if FCO_DVP_REFINE_C0132_C0170
     3674  if(getPic()->getDepthCoded() )
     3675  {
     3676    TComPic*      pcCodedDepthMap = getPic()->getRecDepthMap();
     3677    TComMv        cColMv;
     3678
     3679    cColMv.setZero();
     3680    estimateDVFromDM(uiPUIdx, pcCodedDepthMap, uiAbsPartIdx, &cColMv, false);
     3681
     3682    cDisInfo.iN = 1;
     3683    cDisInfo.m_acMvCand[0].setHor( cColMv.getHor() );
     3684    cDisInfo.m_acMvCand[0].setVer( cColMv.getVer() );
     3685    cDisInfo.m_aVIdxCan[0] = 0;
     3686
     3687  }
     3688#endif
    36593689  if(cDisInfo.iN==0)
    36603690  {
     
    36693699
    36703700#if MTK_DEPTH_MERGE_TEXTURE_CANDIDATE_C0137
     3701#if FCO_FIX
     3702  if( m_pcSlice->getIsDepth() && m_pcSlice->getTexturePic() )
     3703#else
    36713704  if( m_pcSlice->getIsDepth())
     3705#endif
    36723706  {
    36733707    UInt uiPartIdxCenter;
     
    51405174  Int width  = pcBaseViewDepthPicYuv->getWidth();
    51415175  Int height = pcBaseViewDepthPicYuv->getHeight();
    5142 
     5176#if MTK_DVPREFINE_BVSP_BUG_FIX
     5177  Int depthPosX = Clip3(0,   width - iWidth,  iBlkX + (mv->getHor()>>2));
     5178  Int depthPosY = Clip3(0,   height - iHeight,  iBlkY + (mv->getVer()>>2));
     5179#else
    51435180  Int depthPosX = Clip3(0,   width - iWidth  - 1,  iBlkX + (mv->getHor()>>2));
    51445181  Int depthPosY = Clip3(0,   height- iHeight - 1,  iBlkY + (mv->getVer()>>2));
    5145 
     5182#endif
    51465183  Pel *depth  = pcBaseViewDepthPicYuv->getLumaAddr() + depthPosX + depthPosY * depStride;
    51475184  Pel  maxDepth = 0;
     
    51495186  if ( bSimpleDvpRefine )
    51505187  {
     5188#if MTK_DVPREFINE_BVSP_BUG_FIX
     5189    Int depthStartPosX = Clip3(0,   width - iWidth,  iBlkX + (mv->getHor()>>2));
     5190    Int depthStartPosY = Clip3(0,   height - iHeight,  iBlkY + (mv->getVer()>>2));
     5191    Int depthEndPosX = Clip3(0,   width - 1,  iBlkX + iWidth - 1  + (mv->getHor()>>2));
     5192    Int depthEndPosY = Clip3(0,   height - 1,  iBlkY + iHeight - 1 + (mv->getVer()>>2));
     5193#else
    51515194    Int depthStartPosX = Clip3(0,   width - iWidth  - 1,  iBlkX + (mv->getHor()>>2));
    51525195    Int depthStartPosY = Clip3(0,   height- iHeight - 1,  iBlkY + (mv->getVer()>>2));
    51535196    Int depthEndPosX = Clip3(0,   width - iWidth  - 1,  iBlkX + iWidth  + (mv->getHor()>>2));
    51545197    Int depthEndPosY = Clip3(0,   height- iHeight - 1,  iBlkY + iHeight + (mv->getVer()>>2));
     5198#endif
    51555199    Int iCenterX = (depthStartPosX + depthEndPosX) >> 1;
    51565200    Int iCenterY = (depthStartPosY + depthEndPosY) >> 1;
     
    60796123      DisInfo cDisInfo;
    60806124      cDisInfo.iN = 0;
     6125#if FCO_DVP_REFINE_C0132_C0170
     6126      if( !getPic()->getDepthCoded() )
     6127#endif
    60816128      getDisMvpCandNBDV(uiPartIdx, uiPartAddr, &cDisInfo, false
    60826129#if MERL_VSP_C0152
     
    60846131#endif
    60856132              );
     6133#if FCO_DVP_REFINE_C0132_C0170
     6134      if(getPic()->getDepthCoded() )
     6135      {
     6136        TComPic*      pcCodedDepthMap = getPic()->getRecDepthMap();
     6137        TComMv        cColMv;
     6138
     6139        cColMv.setZero();
     6140        estimateDVFromDM(uiPartIdx, pcCodedDepthMap, uiPartAddr, &cColMv, false);
     6141
     6142        cDisInfo.iN = 1;
     6143        cDisInfo.m_acMvCand[0].setHor( cColMv.getHor() );
     6144        cDisInfo.m_acMvCand[0].setVer( cColMv.getVer() );
     6145        cDisInfo.m_aVIdxCan[0] = 0;
     6146      }
     6147#endif
    60866148      if(cDisInfo.iN==0)
    60876149      {
     
    79217983  PartSize m_peSaved =  getPartitionSize( 0 );
    79227984  m_pePartSize[0] =  SIZE_2Nx2N;
     7985#if FCO_DVP_REFINE_C0132_C0170
     7986  if(getPic()->getDepthCoded() )
     7987  {
     7988    TComPic*      pcCodedDepthMap = getPic()->getRecDepthMap();
     7989    TComMv        cColMv;
     7990
     7991    cColMv.setZero();
     7992    estimateDVFromDM(0, pcCodedDepthMap, 0, &cColMv, false);
     7993
     7994    cDisInfo.iN = 1;
     7995    cDisInfo.m_acMvCand[0].setHor( cColMv.getHor() );
     7996    cDisInfo.m_acMvCand[0].setVer( cColMv.getVer() );
     7997    cDisInfo.m_aVIdxCan[0] = 0;
     7998
     7999  }
     8000  else
     8001#endif
    79238002  getDisMvpCandNBDV( 0, 0,  &cDisInfo, false );
    79248003  if( cDisInfo.iN == 0)
  • trunk/source/Lib/TLibCommon/TComPic.cpp

    r296 r313  
    5959#endif
    6060#endif
     61#if FCO_DVP_REFINE_C0132_C0170
     62  m_bDepthCoded       = false;
     63  m_pcRecDepthMap     = NULL;
     64#endif
    6165#if H3D_IVMP
    6266  m_pcOrgDepthMap     = NULL;
  • trunk/source/Lib/TLibCommon/TComPic.h

    r296 r313  
    7373#endif
    7474
     75#if FCO_DVP_REFINE_C0132_C0170
     76  Bool                  m_bDepthCoded;
     77  TComPic*              m_pcRecDepthMap;   
     78#endif
     79
    7580#if LG_ZEROINTRADEPTHRESI_A0087
    7681  Int                   m_uiIntraPeriod;
     
    171176  Bool          getCandPicCheckedFlag ()                { return m_checked;}
    172177#endif
     178#endif
     179
     180#if FCO_DVP_REFINE_C0132_C0170
     181  void setRecDepthMap(TComPic * pRecPic)                { m_pcRecDepthMap = pRecPic; }
     182  TComPic * getRecDepthMap()                            { return m_pcRecDepthMap; }
     183  void setDepthCoded(Bool flag)                         { m_bDepthCoded = flag; }
     184  Bool getDepthCoded()                                  { return m_bDepthCoded; }
    173185#endif
    174186
  • trunk/source/Lib/TLibCommon/TComPicYuv.cpp

    r56 r313  
    6060  m_piPicOrgU       = NULL;
    6161  m_piPicOrgV       = NULL;
    62  
     62
     63#if FIX_APPENCTOP_T_ONLY
     64  m_cuOffsetY       = NULL;
     65  m_cuOffsetC       = NULL;
     66  m_buOffsetY       = NULL;
     67  m_buOffsetC       = NULL;
     68#endif 
     69
    6370  m_bIsBorderExtended = false;
    6471}
     
    137144  if( m_apiPicBufU ){ xFree( m_apiPicBufU );    m_apiPicBufU = NULL; }
    138145  if( m_apiPicBufV ){ xFree( m_apiPicBufV );    m_apiPicBufV = NULL; }
    139 
     146#if FIX_APPENCTOP_T_ONLY
     147  if( m_cuOffsetY )
     148  {
     149#endif
    140150  delete[] m_cuOffsetY;
    141151  delete[] m_cuOffsetC;
    142152  delete[] m_buOffsetY;
    143153  delete[] m_buOffsetC;
     154#if FIX_APPENCTOP_T_ONLY
     155  }
     156#endif
    144157}
    145158
  • trunk/source/Lib/TLibCommon/TComPrediction.cpp

    r296 r313  
    10661066    else
    10671067    {
     1068#if FIX_LGE_WP_FOR_3D_C0223
     1069      if ( ( pcCU->getSlice()->getPPS()->getUseWP()      && pcCU->getSlice()->getSliceType() == P_SLICE ) ||
     1070         ( pcCU->getSlice()->getPPS()->getWPBiPredIdc() && pcCU->getSlice()->getSliceType() == B_SLICE ) )
     1071#else
    10681072      if ( pcCU->getSlice()->getPPS()->getWPBiPredIdc() )
     1073#endif
    10691074      {
    10701075#if DEPTH_MAP_GENERATION
     
    11001105    }
    11011106  }
    1102 
     1107#if FIX_LGE_WP_FOR_3D_C0223
     1108  if ( pcCU->getSlice()->getPPS()->getWPBiPredIdc() && pcCU->getSlice()->getSliceType() == B_SLICE  )
     1109#else
    11031110  if ( pcCU->getSlice()->getPPS()->getWPBiPredIdc() )
     1111#endif
    11041112  {
    11051113#if MERL_VSP_C0152
     
    11101118    xWeightedPredictionBi( pcCU, &m_acYuvPred[0], &m_acYuvPred[1], iRefIdx[0], iRefIdx[1], uiPartAddr, iWidth, iHeight, rpcYuvPred );
    11111119  }
     1120#if FIX_LGE_WP_FOR_3D_C0223
     1121  else if ( pcCU->getSlice()->getPPS()->getUseWP() && pcCU->getSlice()->getSliceType() == P_SLICE )
     1122
     1123  {
     1124#if MERL_VSP_C0152
     1125    if(pcCU->getVSPIndex(uiPartAddr))
     1126      m_acYuvPred[0].copyPartToPartYuv( rpcYuvPred, uiPartAddr, iWidth, iHeight );
     1127    else
     1128#endif
     1129      xWeightedPredictionUni( pcCU, &m_acYuvPred[0], uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, rpcYuvPred, iPartIdx );
     1130  }
     1131#endif
    11121132  else
    11131133  {
     
    14341454  Int dstStride = dstPic->getStride();
    14351455  Int depStride =  pPicBaseDepth->getStride();
    1436 
     1456#if MTK_DVPREFINE_BVSP_BUG_FIX
     1457  Int depthPosX = Clip3(0,   widthLuma - size_x,  (posX/nTxtPerDepthX) + (mv->getHor()>>2));
     1458  Int depthPosY = Clip3(0,   heightLuma- size_y,  (posY/nTxtPerDepthY) + (mv->getVer()>>2));
     1459#else
    14371460  Int depthPosX = Clip3(0,   widthLuma - size_x - 1,  (posX/nTxtPerDepthX) + (mv->getHor()>>2));
    14381461  Int depthPosY = Clip3(0,   heightLuma- size_y - 1,  (posY/nTxtPerDepthY) + (mv->getVer()>>2));
    1439 
     1462#endif
    14401463  Pel *ref    = refPic->getLumaAddr() + posX + posY * refStride;
    14411464  Pel *dst    = dstPic->getLumaAddr(partAddr);
     
    15951618    depthPosX = posX * nDepthPerTxtX + (mv->getHor()>>2);        //mv denotes the disparity for VSP
    15961619  }
     1620#if MTK_DVPREFINE_BVSP_BUG_FIX
     1621  depthPosX = Clip3(0, widthDepth - (size_x<<1), depthPosX);
     1622#else
    15971623  depthPosX = Clip3(0, widthDepth - (size_x<<1) - 1, depthPosX);
    1598  
     1624#endif
    15991625  if ( heightChroma > heightDepth )
    16001626  {
     
    16091635    depthPosY = posY * nDepthPerTxtY + (mv->getVer()>>2);     //mv denotes the disparity for VSP
    16101636  }
     1637#if MTK_DVPREFINE_BVSP_BUG_FIX
     1638  depthPosY = Clip3(0, heightDepth - (size_y<<1), depthPosY);
     1639#else
    16111640  depthPosY = Clip3(0, heightDepth - (size_y<<1) - 1, depthPosY);
     1641#endif
    16121642
    16131643  Pel *refCb  = refPic->getCbAddr() + posX + posY * refStride;
  • trunk/source/Lib/TLibCommon/TComRdCostWeightPrediction.cpp

    r56 r313  
    8181  wpScalingParam  *wpCur    = &(pcDtParam->wpCur[uiComp]);
    8282  Int   w0      = wpCur->w,
    83         offset  = wpCur->offset,
    84         shift   = wpCur->shift,
    85         round   = wpCur->round;
    86  
     83    offset  = wpCur->offset,
     84    shift   = wpCur->shift,
     85    round   = wpCur->round;
     86
    8787  UInt uiSum = 0;
    88   #if HHI_INTERVIEW_SKIP
     88#if HHI_INTERVIEW_SKIP
    8989  if( pcDtParam->pUsed )
    9090  {
    9191    Pel*  piUsed      = pcDtParam->pUsed;
    9292    Int   iStrideUsed = pcDtParam->iStrideUsed;
    93   for( ; iRows != 0; iRows-- )
    94   {
    95     for (Int n = 0; n < iCols; n++ )
    96     {
     93    for( ; iRows != 0; iRows-- )
     94    {
     95      for (Int n = 0; n < iCols; n++ )
     96      {
    9797        if( piUsed[n])
    9898        {
    99       pred = ( (w0*piCur[n] + round) >> shift ) + offset ;
    100       //uiSum += abs( piOrg[n] - piCur[n] );
    101       uiSum += abs( piOrg[n] - pred );
    102     }
    103     }
    104     piOrg += iStrideOrg;
    105     piCur += iStrideCur;
     99          pred = ( (w0*piCur[n] + round) >> shift ) + offset ;
     100          uiSum += abs( piOrg[n] - pred );
     101        }
     102      }
     103      piOrg += iStrideOrg;
     104      piCur += iStrideCur;
    106105      piUsed += iStrideUsed;
    107   }
    108 #else
    109   for( ; iRows != 0; iRows-- )
    110   {
    111     for (Int n = 0; n < iCols; n++ )
    112     {
    113       pred = ( (w0*piCur[n] + round) >> shift ) + offset ;
    114  
    115       uiSum += abs( piOrg[n] - pred );
    116     }
    117     piOrg += iStrideOrg;
    118     piCur += iStrideCur;
    119   }
    120     #endif
    121     #if HHI_INTERVIEW_SKIP
     106    }
     107#if FIX_LGE_WP_FOR_3D_C0223
     108  }
     109  else
     110  {
     111#endif
     112#if FIX_LGE_WP_FOR_3D_C0223 //comment of #else
     113    //#else
     114#endif
     115#endif
     116    for( ; iRows != 0; iRows-- )
     117    {
     118      for (Int n = 0; n < iCols; n++ )
     119      {
     120        pred = ( (w0*piCur[n] + round) >> shift ) + offset ;
     121        uiSum += abs( piOrg[n] - pred );
    122122      }
    123     #endif
     123      piOrg += iStrideOrg;
     124      piCur += iStrideCur;
     125    }
     126#if FIX_LGE_WP_FOR_3D_C0223 //comment of #endif
     127    //#endif
     128#endif
     129#if HHI_INTERVIEW_SKIP
     130  }
     131#endif
    124132  pcDtParam->uiComp = 255;  // reset for DEBUG (assert test)
    125133
  • trunk/source/Lib/TLibCommon/TComResidualGenerator.cpp

    r296 r313  
    614614  Int           iDesStrideC = pcYuv    ->getCStride();
    615615#if MTK_RELEASE_DV_CONSTRAINT_C0129
     616#if FIX_CHROMA_RESIDUAL_C0129
     617  Pel*          pSrcSamplesU0= pcBaseRes->getCbAddr ( 0 ) + iCRefPosY0 * iSrcStrideC;
     618  Pel*          pSrcSamplesU1= pcBaseRes->getCbAddr ( 0 ) + iCRefPosY1 * iSrcStrideC;
     619  Pel*          pSrcSamplesV0= pcBaseRes->getCrAddr ( 0 ) + iCRefPosY0 * iSrcStrideC;
     620  Pel*          pSrcSamplesV1= pcBaseRes->getCrAddr ( 0 ) + iCRefPosY1 * iSrcStrideC;
     621#else
    616622  Pel*          pSrcSamplesU0= pcBaseRes->getCbAddr ( 0 ) + ( iCRefPosY0 >> 1 ) * iSrcStrideC;
    617623  Pel*          pSrcSamplesU1= pcBaseRes->getCbAddr ( 0 ) + ( iCRefPosY1 >> 1 ) * iSrcStrideC;
    618624  Pel*          pSrcSamplesV0= pcBaseRes->getCrAddr ( 0 ) + ( iCRefPosY0 >> 1 ) * iSrcStrideC;
    619625  Pel*          pSrcSamplesV1= pcBaseRes->getCrAddr ( 0 ) + ( iCRefPosY1 >> 1 ) * iSrcStrideC;
     626#endif
    620627#else
    621628  Pel*          pSrcSamplesU= pcBaseRes->getCbAddr ( 0 ) + ( uiYPos >> 1 ) * iSrcStrideC;
  • trunk/source/Lib/TLibCommon/TComSlice.cpp

    r296 r313  
    17611761
    17621762Void
     1763#if FCO_FIX_SPS_CHANGE
     1764TComSPS::initMultiviewSPSDepth( UInt uiViewId, Int iViewOrderIdx, UInt uiCamParPrecision, Bool bCamParSlice, Int** aaiScale, Int** aaiOffset )
     1765#else
    17631766TComSPS::initMultiviewSPSDepth( UInt uiViewId, Int iViewOrderIdx )
     1767#endif
    17641768{
    17651769  AOT( uiViewId == 0 && iViewOrderIdx != 0 );
     
    17691773  m_iViewOrderIdx         = iViewOrderIdx;
    17701774  m_bDepth                = true;
     1775#if FCO_FIX_SPS_CHANGE
     1776  m_uiCamParPrecision     = ( m_uiViewId ? uiCamParPrecision : 0 );
     1777  m_bCamParInSliceHeader  = ( m_uiViewId ? bCamParSlice  : false );
     1778#else
    17711779  m_uiCamParPrecision     = 0;
    17721780  m_bCamParInSliceHeader  = false;
     1781#endif
    17731782  ::memset( m_aaiCodedScale,  0x00, sizeof( m_aaiCodedScale  ) );
    17741783  ::memset( m_aaiCodedOffset, 0x00, sizeof( m_aaiCodedOffset ) );
     1784#if FCO_FIX_SPS_CHANGE
     1785#if !QC_MVHEVC_B0046
     1786  if( !m_bCamParInSliceHeader )
     1787  {
     1788    for( UInt uiBaseViewId = 0; uiBaseViewId < m_uiViewId; uiBaseViewId++ )
     1789    {
     1790      m_aaiCodedScale [ 0 ][ uiBaseViewId ] = aaiScale [ uiBaseViewId ][   m_uiViewId ];
     1791      m_aaiCodedScale [ 1 ][ uiBaseViewId ] = aaiScale [   m_uiViewId ][ uiBaseViewId ];
     1792      m_aaiCodedOffset[ 0 ][ uiBaseViewId ] = aaiOffset[ uiBaseViewId ][   m_uiViewId ];
     1793      m_aaiCodedOffset[ 1 ][ uiBaseViewId ] = aaiOffset[   m_uiViewId ][ uiBaseViewId ];
     1794    }
     1795  }
     1796#endif
     1797#endif
     1798
    17751799}
    17761800
  • trunk/source/Lib/TLibCommon/TComSlice.h

    r296 r313  
    623623
    624624  Void initMultiviewSPS      ( UInt uiViewId, Int iViewOrderIdx = 0, UInt uiCamParPrecision = 0, Bool bCamParSlice = false, Int** aaiScale = 0, Int** aaiOffset = 0 );
     625#if FCO_FIX_SPS_CHANGE
     626  Void initMultiviewSPSDepth ( UInt uiViewId, Int iViewOrderIdx, UInt uiCamParPrecision = 0, Bool bCamParSlice = false, Int** aaiScale = 0, Int** aaiOffset = 0 );
     627#else
    625628  Void initMultiviewSPSDepth ( UInt uiViewId, Int iViewOrderIdx );
     629#endif
    626630
    627631  UInt getViewId             ()  { return m_uiViewId; }
  • trunk/source/Lib/TLibCommon/TypeDef.h

    r296 r313  
    121121#define MTK_RELEASE_DV_CONSTRAINT_C0129   1   // JCT3V-C0129
    122122#define MTK_SIMPLIFY_DVTC_C0135           1   // JCT3V-C0135
     123#define FIX_CHROMA_RESIDUAL_C0129         1
    123124
    124125///// ***** MOTION PARAMETER INHERITANCE  *********
     
    166167#define HHI_DEPTH_INTRA_SEARCH_RAU_C0160  1   // JCT3V-C0160 change 1: full Intra search in depth random access units
    167168#define FIX_POZNAN_CABAC_INIT_FLAG        1
     169#define FIX_LGE_WP_FOR_3D_C0223           1   // JCT3V-C0223 Weighted Prediction Bug-fix for 3D-HEVC. Caution! There is still crush using WP with Residual Prediction.
     170#define FIX_APPENCTOP_T_ONLY              1   // For Texture-only coding
    168171
    169172///// ***** FCO  *********
     
    171174#if FLEX_CODING_ORDER_M23723
    172175#define DISABLE_FCO_FOR_VSO               0 // Optional compile settings to disable VSO with FCO.
     176#define FCO_DVP_REFINE_C0132_C0170        0 // depth oriented disparity vector prediction from JCT3V-C0132 and JCT3V-C0170
     177#define FCO_FIX                           0 // Bug fix for C0137 and C0152 on FCO
     178#define FCO_FIX_SPS_CHANGE                0 // Sending camera parameters in SPS of depth for depth to disparity conversion used by VSP and DoDVP
     179#else
     180#define DISABLE_FCO_FOR_VSO               0 // Optional compile settings to disable VSO with FCO.
     181#define FCO_DVP_REFINE_C0132_C0170        0 // depth oriented disparity vector prediction from JCT3V-C0132 and JCT3V-C0170
     182#define FCO_FIX                           0 // Fixing bugs from HTM 6.0 which
     183#define FCO_FIX_SPS_CHANGE                0 // Fixing bugs from HTM 6.0 which
    173184#endif
    174185
     
    176187#define MERL_VSP_C0152                    1 // JCT3V-C0152: 1: enable VSP-related tools; 0: disable VSP-related tools
    177188#if MERL_VSP_C0152
    178 
     189#define MERL_VSP_C0152_BugFix_ForNoDepthCase     1// MERL bugfix for test condition of no depth
    179190/*
    180191 * Two macros are used to configure combinations of JCT3V-C0152 and JCT3V-C0131
     
    199210#define VSP_MERGE_POS                        5 // JCT3V-C0152: fixed position of VSP candidate in merge list, supported values: 5.
    200211#define LGE_SIMP_DVP_REFINE_C0112            1 // JCT3V-C0112: 1: simplification of refining disparity vector using a warped depth block
     212#define MTK_DVPREFINE_BVSP_BUG_FIX               1
    201213
    202214#else // !MERL_VSP_C0152
Note: See TracChangeset for help on using the changeset viewer.