Changeset 292 in 3DVCSoftware


Ignore:
Timestamp:
19 Feb 2013, 17:50:51 (11 years ago)
Author:
tech
Message:

Removed macros related to IV motion parameter prediction.

Location:
branches/HTM-5.1-dev0/source
Files:
37 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-5.1-dev0/source/App/TAppEncoder/TAppEncCfg.cpp

    r287 r292  
    398398  ("PredDepthMapGen",  m_uiPredDepthMapGeneration, (UInt)0, "generation of prediction depth maps for motion data prediction" )
    399399#endif
    400 #if HHI_INTER_VIEW_MOTION_PRED
     400#if H3D_IVMP
    401401  ("MultiviewMvPred",  m_uiMultiviewMvPredMode,    (UInt)0, "usage of predicted depth maps" )
    402402  ("MultiviewMvRegMode",        m_uiMultiviewMvRegMode,         (UInt)0, "regularization mode for multiview motion vectors" )
     
    974974  xConfirmPara    ( m_uiPredDepthMapGeneration >= 2 && !m_bUsingDepthMaps,            "PredDepthMapGen >= 2 requires CodeDepthMaps = 1" );
    975975#endif
    976 #if HHI_INTER_VIEW_MOTION_PRED
     976#if H3D_IVMP
    977977  xConfirmPara    ( m_uiMultiviewMvPredMode > 7,                                      "MultiviewMvPred must be less than or equal to 7" );
    978978  xConfirmPara    ( m_uiMultiviewMvPredMode > 0 && m_uiPredDepthMapGeneration == 0 ,  "MultiviewMvPred > 0 requires PredDepthMapGen > 0" );
  • branches/HTM-5.1-dev0/source/App/TAppEncoder/TAppEncCfg.h

    r287 r292  
    233233  UInt      m_uiPredDepthMapGeneration;                       ///< using of (virtual) depth maps for texture coding
    234234#endif
    235 #if HHI_INTER_VIEW_MOTION_PRED
     235#if H3D_IVMP
    236236  UInt      m_uiMultiviewMvPredMode;                          ///< usage of predictors for multi-view mv prediction
    237237  UInt      m_uiMultiviewMvRegMode;                           ///< regularization for multiview motion vectors
  • branches/HTM-5.1-dev0/source/App/TAppEncoder/TAppEncTop.cpp

    r289 r292  
    235235    m_acTEncTopList[iViewIdx]->setPdmOffset                    (       m_cCameraData.getPdmOffset        () );
    236236#endif
    237 #if HHI_INTER_VIEW_MOTION_PRED
     237#if H3D_IVMP
    238238    m_acTEncTopList[iViewIdx]->setMultiviewMvPredMode          ( m_uiMultiviewMvPredMode );
    239239    m_acTEncTopList[iViewIdx]->setMultiviewMvRegMode           ( iViewIdx ? m_uiMultiviewMvRegMode       : 0   );
     
    605605      m_acTEncDepthTopList[iViewIdx]->setPredDepthMapGeneration       ( 0 );
    606606#endif
    607 #if HHI_INTER_VIEW_MOTION_PRED
     607#if H3D_IVMP
    608608      m_acTEncDepthTopList[iViewIdx]->setMultiviewMvPredMode          ( 0 );
    609609      m_acTEncDepthTopList[iViewIdx]->setMultiviewMvRegMode           ( 0 );
     
    741741  }
    742742
    743 #if HHI_INTER_VIEW_MOTION_PRED
     743#if H3D_IVMP
    744744  else if( m_uiMultiviewMvRegMode )
    745745  {
     
    828828      m_acTEncDepthTopList[iViewIdx]->create();
    829829    }
    830 #if HHI_INTER_VIEW_MOTION_PRED
     830#if H3D_IVMP
    831831    else if( m_uiMultiviewMvRegMode )
    832832    {
     
    975975  pcDepthPicYuvOrg->create( m_iSourceWidth, m_iSourceHeight, m_uiMaxCUWidth, m_uiMaxCUHeight, m_uiMaxCUDepth );
    976976
    977 #if HHI_INTER_VIEW_MOTION_PRED
     977#if H3D_IVMP
    978978  if( m_uiMultiviewMvRegMode )
    979979  {
     
    995995        m_acTVideoIOYuvInputFileList[iViewIdx]->read( pcPicYuvOrg, m_aiPad );
    996996     
    997 #if HHI_INTER_VIEW_MOTION_PRED
     997#if H3D_IVMP
    998998        if( m_uiMultiviewMvRegMode && iViewIdx )
    999999        {
     
    10021002#endif
    10031003
    1004 #if HHI_INTER_VIEW_MOTION_PRED
     1004#if H3D_IVMP
    10051005        m_acTEncTopList[iViewIdx]->initNewPic( pcPicYuvOrg, ( m_uiMultiviewMvRegMode && iViewIdx ? pcPdmDepthOrg : 0 ) );
    10061006#else
     
    11511151#endif
    11521152
    1153 #if HHI_INTERVIEW_SKIP || HHI_INTER_VIEW_MOTION_PRED || HHI_INTER_VIEW_RESIDUAL_PRED
     1153#if HHI_INTERVIEW_SKIP || H3D_IVMP || HHI_INTER_VIEW_RESIDUAL_PRED
    11541154      for( Int iViewIdx = 0; iViewIdx < m_iNumberOfViews; iViewIdx++ )
    11551155      {
  • branches/HTM-5.1-dev0/source/Lib/TLibCommon/CommonDef.h

    r289 r292  
    128128#define MAX_VIEW_NUM                10
    129129
    130 #if ( HHI_INTER_VIEW_MOTION_PRED || HHI_INTER_VIEW_RESIDUAL_PRED )
     130#if ( H3D_IVMP || HHI_INTER_VIEW_RESIDUAL_PRED )
    131131#define DEPTH_MAP_GENERATION        1
    132132#define PDM_REMOVE_DEPENDENCE       1      //bug-fix for DMDV JCT2-A0095
     
    140140#define PDM_MERGE_POS                     0         // position of pdm in merge list (0..4)
    141141
    142 #if QC_MRG_CANS_B0048
    143 #if OL_DISMV_POS_B0069
     142#if H3D_IVMP
    144143#define DMV_MERGE_POS                     4
    145144#else
    146145#define DMV_MERGE_POS                     1
    147146#endif
    148 #endif
    149 
    150 #if SAIT_IMPROV_MOTION_PRED_M24829&!H3D_NBDV
     147
     148#if H3D_IVMP&!H3D_NBDV
    151149#define PDM_AMVP_POS                      0         // position of pdm in amvp list  (0..3)
    152150#else
     
    424422// AMVP: advanced motion vector prediction
    425423#define AMVP_MAX_NUM_CANDS          2           ///< max number of final candidates
    426 #if HHI_INTER_VIEW_MOTION_PRED
     424#if H3D_IVMP
    427425#define AMVP_MAX_NUM_CANDS_MEM      4           ///< max number of candidates
    428426#else
     
    431429// MERGE
    432430#define MRG_MAX_NUM_CANDS           5
    433 #if HHI_INTER_VIEW_MOTION_PRED
     431#if H3D_IVMP
    434432#define MRG_MAX_NUM_CANDS_MEM       (MRG_MAX_NUM_CANDS+1) // one extra for inter-view motion prediction
    435433#endif
  • branches/HTM-5.1-dev0/source/Lib/TLibCommon/TComDataCU.cpp

    r291 r292  
    38423842#endif
    38433843{
    3844 #if HHI_INTER_VIEW_MOTION_PRED
     3844#if H3D_IVMP
    38453845#if MTK_DEPTH_MERGE_TEXTURE_CANDIDATE_C0137
    38463846  const Int extraMergeCand = ( ( getSlice()->getIsDepth() || getSlice()->getSPS()->getMultiviewMvPredMode() )? 1 : 0 );
     
    38523852  UInt uiAbsPartAddr = m_uiAbsIdxInLCU + uiAbsPartIdx;
    38533853  UInt uiIdx = 1;
    3854 #if HHI_INTER_VIEW_MOTION_PRED
     3854#if H3D_IVMP
    38553855  Bool abCandIsInter[ MRG_MAX_NUM_CANDS_MEM ];
    38563856  for( UInt ui = 0; ui < MRG_MAX_NUM_CANDS_MEM; ++ui )
     
    39273927#endif
    39283928
    3929 #if HHI_INTER_VIEW_MOTION_PRED
     3929#if H3D_IVMP
    39303930  Bool bNoPdmMerge   = ( m_pcSlice->getSPS()->getViewId() == 0 || ( m_pcSlice->getSPS()->getMultiviewMvPredMode() & PDM_USE_FOR_MERGE ) != PDM_USE_FOR_MERGE );
    39313931
    39323932  //===== add merge with predicted depth maps =====
    3933 #if QC_MRG_CANS_B0048
    39343933  TComMv  acPdmMv       [4];
    39353934  Int     aiPdmRefIdx   [4] = {-1, -1, -1, -1};
    39363935  Bool    bLeftAvai         = false;
    3937 #if OL_DISMV_POS_B0069
    39383936  Int     iPosLeftAbove[2]  = {-1, -1};
    3939 #endif
    3940 #else
    3941   TComMv  acPdmMv       [2];
    3942   Int     aiPdmRefIdx   [2] = {-1, -1};
    3943 #endif
    39443937
    39453938#if H3D_NBDV
    3946 #if QC_MRG_CANS_B0048
    39473939  acPdmMv[0].m_bDvMcp = acPdmMv[1].m_bDvMcp = acPdmMv[2].m_bDvMcp = acPdmMv[3].m_bDvMcp = false;
    3948 #else
    3949   acPdmMv[0].m_bDvMcp = acPdmMv[1].m_bDvMcp = false;
    3950 #endif
    39513940#endif //H3D_NBDV
    39523941
     
    40244013#endif
    40254014#endif
    4026 #if QC_MRG_CANS_B0048
    40274015  Int iPdmDir[2] = {0, 0};
    4028 #endif
    40294016#if QC_AMVP_MRG_UNIFY_IVCAN_C0051
    40304017  getUnifiedMvPredCan(uiPUIdx, REF_PIC_LIST_0, 0, aiPdmRefIdx, acPdmMv, &cDisInfo, iPdmDir, true);
    40314018  Int iPdmInterDir;
    40324019#else
    4033   Int     iPdmInterDir      = cDisInfo.iN==0? 0:getPdmMergeCandidateDisCan ( uiPUIdx, aiPdmRefIdx, acPdmMv, &cDisInfo 
    4034 #if QC_MRG_CANS_B0048
    4035     , iPdmDir
    4036 #endif
    4037     );
     4020  Int     iPdmInterDir      = cDisInfo.iN==0? 0:getPdmMergeCandidateDisCan ( uiPUIdx, aiPdmRefIdx, acPdmMv, &cDisInfo, iPdmDir );
    40384021#endif
    40394022#else // H3D_NBDV
     
    40504033#endif
    40514034
    4052 #if QC_MRG_CANS_B0048
    40534035  if( iPdmDir[0] && !bNoPdmMerge && PDM_MERGE_POS == 0 )
    4054 #else
    4055   if( iPdmInterDir && !bNoPdmMerge && PDM_MERGE_POS == 0 )
    4056 #endif
    40574036  {
    40584037    abCandIsInter        [ iCount ] = true;
    4059 #if QC_MRG_CANS_B0048
    40604038    puhInterDirNeighbours[ iCount ] = iPdmDir[0];
    40614039    iPdmInterDir                    = iPdmDir[0];
    4062 #else
    4063     puhInterDirNeighbours[ iCount ] = iPdmInterDir;
    4064 #endif
     4040
    40654041    if( ( iPdmInterDir & 1 ) == 1 )
    40664042    {
     
    40914067    iCount ++;
    40924068  }
    4093 #endif
    4094 
    4095 #if QC_MRG_CANS_B0048
     4069
    40964070  if(extraMergeCand)
    40974071  {
     
    41204094    }   
    41214095  }
    4122 #endif
     4096#endif // HHI_INTER_VIEW_MOTION_PRED
    41234097
    41244098#if MERL_VSP_COMPENSATION_C0152
     
    41494123  if (!(uiPUIdx == 1 && (partSize == SIZE_Nx2N || partSize == SIZE_nLx2N || partSize == SIZE_nRx2N)))
    41504124  {
    4151   if ( pcCULeft && !pcCULeft->isIntra( uiLeftPartIdx )
     4125    if ( pcCULeft && !pcCULeft->isIntra( uiLeftPartIdx )
    41524126#if MERL_VSP_C0152
    4153      CHECK_ADD_YET(pcCULeft, uiLeftPartIdx, 1)
    4154 #endif
    4155   )
     4127      CHECK_ADD_YET(pcCULeft, uiLeftPartIdx, 1)
     4128#endif
     4129      )
     4130    {
     4131      abCandIsInter[iCount] = true;
     4132      // get Inter Dir
     4133      puhInterDirNeighbours[iCount] = pcCULeft->getInterDir( uiLeftPartIdx );
     4134      // get Mv from Left
     4135      pcCULeft->getMvField( pcCULeft, uiLeftPartIdx, REF_PIC_LIST_0, pcMvFieldNeighbours[iCount<<1] );
     4136      if ( getSlice()->isInterB() )
     4137      {
     4138        pcCULeft->getMvField( pcCULeft, uiLeftPartIdx, REF_PIC_LIST_1, pcMvFieldNeighbours[(iCount<<1)+1] );
     4139      }
     4140#if FIX_CU_BASED_MRG_CAND_LIST_B0136
     4141      else
     4142      {
     4143        pcMvFieldNeighbours[(iCount<<1)+1 ].setMvField( TComMv(0,0), NOT_VALID );
     4144      }
     4145#endif
     4146
     4147#if H3D_IVMP
     4148      Bool bRemoveSpa = false; //pruning to inter-view candidates
     4149      Int  iCnloop    = iCount - 1;
     4150      for(; iCnloop >= 0; iCnloop --)
     4151      {
     4152        if(puhInterDirNeighbours[iCount] == puhInterDirNeighbours[iCnloop] && pcMvFieldNeighbours[iCnloop<<1]==pcMvFieldNeighbours[(iCount<<1)] && pcMvFieldNeighbours[(iCnloop<<1)+1]==pcMvFieldNeighbours[(iCount<<1)+1])
     4153        {
     4154          bRemoveSpa                      = true;
     4155          abCandIsInter        [ iCount ] = false;
     4156
     4157          //reset to the default value for IC, MC
     4158          puhInterDirNeighbours[iCount]   = 0;
     4159          TComMv  cZeroMv;
     4160          pcMvFieldNeighbours[iCount<<1].setMvField( cZeroMv, NOT_VALID );
     4161          pcMvFieldNeighbours[(iCount<<1)+1].setMvField( cZeroMv, NOT_VALID );
     4162          break;
     4163        }
     4164      }
     4165      if(!bRemoveSpa)
     4166      {
     4167        bLeftAvai = true;
     4168        iPosLeftAbove[0] = iCount;
     4169#endif  //HHI_INTER_VIEW_MOTION_PRED
     4170#if H3D_NBDV
     4171        pcMvFieldNeighbours[iCount<<1    ].getMv().m_bDvMcp = false;
     4172        pcMvFieldNeighbours[(iCount<<1)+1].getMv().m_bDvMcp = false;
     4173#endif
     4174#if MERL_VSP_C0152
     4175        xInheritVspMode( pcCULeft, uiLeftPartIdx, bVspMvZeroDone, iCount, iVSPIndexTrue, pcMvFieldNeighbours, &cDisInfo ) ;
     4176#endif
     4177#if SIMP_MRG_PRUN
     4178        if ( mrgCandIdx == iCount )
     4179        {
     4180          return;
     4181        }
     4182#endif
     4183        iCount ++;
     4184#if H3D_IVMP
     4185      }
     4186#endif
     4187    }
     4188  }
     4189
     4190#if H3D_IVMP
     4191  if( iPdmDir[0]   && !bNoPdmMerge && PDM_MERGE_POS == 1 )
     4192  {
     4193    abCandIsInter        [ iCount ] = true;
     4194    puhInterDirNeighbours[ iCount ] = iPdmInterDir;
     4195    if( ( iPdmInterDir & 1 ) == 1 )
     4196    {
     4197      pcMvFieldNeighbours[ iCount<<1    ].setMvField( acPdmMv[ 0 ], aiPdmRefIdx[ 0 ] );
     4198    }
     4199#if FIX_CU_BASED_MRG_CAND_LIST_B0136
     4200    else
     4201    {
     4202      pcMvFieldNeighbours[ iCount<<1 ].setMvField( TComMv(0,0), NOT_VALID );
     4203    }
     4204#endif
     4205    if( ( iPdmInterDir & 2 ) == 2 )
     4206    {
     4207      pcMvFieldNeighbours[(iCount<<1)+1 ].setMvField( acPdmMv[ 1 ], aiPdmRefIdx[ 1 ] );
     4208    }
     4209#if FIX_CU_BASED_MRG_CAND_LIST_B0136
     4210    else
     4211    {
     4212      pcMvFieldNeighbours[(iCount<<1)+1 ].setMvField( TComMv(0,0), NOT_VALID );
     4213    }
     4214#endif
     4215#if SIMP_MRG_PRUN
     4216    if ( mrgCandIdx == iCount )
     4217    {
     4218      return;
     4219    }
     4220#endif
     4221    iCount ++;
     4222  }
     4223#endif // HHI_INTER_VIEW_MOTION_PRED
     4224
     4225#if MERL_VSP_COMPENSATION_C0152
     4226  //===== vsp 1 =====
     4227  if( iCount < 4 + extraMergeCand )
     4228    if ( !xAddVspMergeCand(1, 1, bVspMvZeroDone, uiDepth, abCandIsInter, iCount, puhInterDirNeighbours, pcMvFieldNeighbours, iVSPIndexTrue, mrgCandIdx, &cDisInfo) )
     4229      return;
     4230#endif
     4231
     4232  // above
     4233#if !SIMP_MRG_PRUN
     4234  partSize = getPartitionSize( uiAbsPartIdx );
     4235  if (!(uiPUIdx == 1 && (partSize == SIZE_2NxN || partSize == SIZE_2NxnU || partSize == SIZE_2NxnD)))
     4236  {
     4237#endif
     4238  UInt uiAbovePartIdx = 0;
     4239  TComDataCU* pcCUAbove = 0;
     4240#if MVP_AT_ENTROPYSLICE_BOUNDARY
     4241  pcCUAbove = getPUAbove( uiAbovePartIdx, uiPartIdxRT, true, false, true );
     4242#else
     4243  pcCUAbove = getPUAbove( uiAbovePartIdx, uiPartIdxRT, true, true, true );
     4244#endif
     4245#if PARALLEL_MERGE
     4246    if (pcCUAbove)
     4247    {
     4248      if (!pcCUAbove->isDiffMER(xP+nPSW-1, yP-1, xP, yP))
     4249      {
     4250        pcCUAbove = NULL;
     4251      }
     4252    }
     4253#endif
     4254#if SIMP_MRG_PRUN
     4255  if ( pcCUAbove && !pcCUAbove->isIntra( uiAbovePartIdx )
     4256#if MERL_VSP_C0152
     4257    CHECK_ADD_YET(pcCUAbove, uiAbovePartIdx, 1)
     4258#endif
     4259    && !(uiPUIdx == 1 && (cCurPS == SIZE_2NxN || cCurPS == SIZE_2NxnU || cCurPS == SIZE_2NxnD))
     4260    && ( !pcCULeft || pcCULeft->isIntra( uiLeftPartIdx ) || !pcCULeft->hasEqualMotion( uiLeftPartIdx, pcCUAbove, uiAbovePartIdx ) ) )
     4261#else
     4262  if ( pcCUAbove && !pcCUAbove->isIntra( uiAbovePartIdx ) )
     4263#endif
    41564264  {
    41574265    abCandIsInter[iCount] = true;
    41584266    // get Inter Dir
    4159     puhInterDirNeighbours[iCount] = pcCULeft->getInterDir( uiLeftPartIdx );
     4267    puhInterDirNeighbours[iCount] = pcCUAbove->getInterDir( uiAbovePartIdx );
    41604268    // get Mv from Left
    4161     pcCULeft->getMvField( pcCULeft, uiLeftPartIdx, REF_PIC_LIST_0, pcMvFieldNeighbours[iCount<<1] );
     4269    pcCUAbove->getMvField( pcCUAbove, uiAbovePartIdx, REF_PIC_LIST_0, pcMvFieldNeighbours[iCount<<1] );
    41624270    if ( getSlice()->isInterB() )
    41634271    {
    4164       pcCULeft->getMvField( pcCULeft, uiLeftPartIdx, REF_PIC_LIST_1, pcMvFieldNeighbours[(iCount<<1)+1] );
     4272      pcCUAbove->getMvField( pcCUAbove, uiAbovePartIdx, REF_PIC_LIST_1, pcMvFieldNeighbours[(iCount<<1)+1] );
    41654273    }
    41664274#if FIX_CU_BASED_MRG_CAND_LIST_B0136
     
    41704278    }
    41714279#endif
    4172 #if QC_MRG_CANS_B0048
     4280#if H3D_IVMP
    41734281    Bool bRemoveSpa = false; //prunign to inter-view candidates
    4174     Int  iCnloop    = iCount - 1;
     4282    Int  iCnloop    = bLeftAvai? (iCount-2): (iCount-1);
    41754283    for(; iCnloop >= 0; iCnloop --)
    41764284    {
     
    41904298    if(!bRemoveSpa)
    41914299    {
    4192       bLeftAvai = true;
    4193 #if OL_DISMV_POS_B0069
    4194       iPosLeftAbove[0] = iCount;
    4195 #endif
    4196 #endif
     4300      iPosLeftAbove[1] = iCount;
     4301#endif // HHI_INTER_VIEW_MOTION_PRED
    41974302#if H3D_NBDV
    41984303    pcMvFieldNeighbours[iCount<<1    ].getMv().m_bDvMcp = false;
     
    42004305#endif
    42014306#if MERL_VSP_C0152
    4202      xInheritVspMode( pcCULeft, uiLeftPartIdx, bVspMvZeroDone, iCount, iVSPIndexTrue, pcMvFieldNeighbours, &cDisInfo ) ;
     4307     xInheritVspMode( pcCUAbove, uiAbovePartIdx, bVspMvZeroDone, iCount, iVSPIndexTrue, pcMvFieldNeighbours, &cDisInfo ) ;
    42034308#endif
    42044309#if SIMP_MRG_PRUN
     
    42094314#endif
    42104315    iCount ++;
    4211 #if QC_MRG_CANS_B0048
    4212       }
    4213 #endif
    4214   }
    4215   }
    4216 
    4217 #if HHI_INTER_VIEW_MOTION_PRED
    4218 #if QC_MRG_CANS_B0048
    4219   if( iPdmDir[0]   && !bNoPdmMerge && PDM_MERGE_POS == 1 )
    4220 #else
    4221   if( iPdmInterDir && !bNoPdmMerge && PDM_MERGE_POS == 1 )
    4222 #endif
     4316#if H3D_IVMP
     4317    }
     4318#endif
     4319  }
     4320#if !SIMP_MRG_PRUN
     4321  }
     4322#endif
     4323
     4324#if H3D_IVMP
     4325  if( iPdmDir[0]   && !bNoPdmMerge && PDM_MERGE_POS == 2 )
    42234326  {
    42244327    abCandIsInter        [ iCount ] = true;
     
    42524355    iCount ++;
    42534356  }
    4254 #endif
    4255 
    4256 #if MERL_VSP_COMPENSATION_C0152
    4257   //===== vsp 1 =====
    4258   if( iCount < 4 + extraMergeCand )
    4259     if ( !xAddVspMergeCand(1, 1, bVspMvZeroDone, uiDepth, abCandIsInter, iCount, puhInterDirNeighbours, pcMvFieldNeighbours, iVSPIndexTrue, mrgCandIdx, &cDisInfo) )
    4260       return;
    4261 #endif
    4262 
    4263   // above
    4264 #if !SIMP_MRG_PRUN
    4265   partSize = getPartitionSize( uiAbsPartIdx );
    4266   if (!(uiPUIdx == 1 && (partSize == SIZE_2NxN || partSize == SIZE_2NxnU || partSize == SIZE_2NxnD)))
    4267   {
    4268 #endif
    4269   UInt uiAbovePartIdx = 0;
    4270   TComDataCU* pcCUAbove = 0;
    4271 #if MVP_AT_ENTROPYSLICE_BOUNDARY
    4272   pcCUAbove = getPUAbove( uiAbovePartIdx, uiPartIdxRT, true, false, true );
    4273 #else
    4274   pcCUAbove = getPUAbove( uiAbovePartIdx, uiPartIdxRT, true, true, true );
    4275 #endif
    4276 #if PARALLEL_MERGE
    4277     if (pcCUAbove)
    4278     {
    4279       if (!pcCUAbove->isDiffMER(xP+nPSW-1, yP-1, xP, yP))
    4280       {
    4281         pcCUAbove = NULL;
    4282       }
    4283     }
    4284 #endif
    4285 #if SIMP_MRG_PRUN
    4286   if ( pcCUAbove && !pcCUAbove->isIntra( uiAbovePartIdx )
    4287 #if MERL_VSP_C0152
    4288     CHECK_ADD_YET(pcCUAbove, uiAbovePartIdx, 1)
    4289 #endif
    4290     && !(uiPUIdx == 1 && (cCurPS == SIZE_2NxN || cCurPS == SIZE_2NxnU || cCurPS == SIZE_2NxnD))
    4291     && ( !pcCULeft || pcCULeft->isIntra( uiLeftPartIdx ) || !pcCULeft->hasEqualMotion( uiLeftPartIdx, pcCUAbove, uiAbovePartIdx ) ) )
    4292 #else
    4293   if ( pcCUAbove && !pcCUAbove->isIntra( uiAbovePartIdx ) )
    4294 #endif
    4295   {
    4296     abCandIsInter[iCount] = true;
    4297     // get Inter Dir
    4298     puhInterDirNeighbours[iCount] = pcCUAbove->getInterDir( uiAbovePartIdx );
    4299     // get Mv from Left
    4300     pcCUAbove->getMvField( pcCUAbove, uiAbovePartIdx, REF_PIC_LIST_0, pcMvFieldNeighbours[iCount<<1] );
    4301     if ( getSlice()->isInterB() )
    4302     {
    4303       pcCUAbove->getMvField( pcCUAbove, uiAbovePartIdx, REF_PIC_LIST_1, pcMvFieldNeighbours[(iCount<<1)+1] );
    4304     }
    4305 #if FIX_CU_BASED_MRG_CAND_LIST_B0136
    4306     else
    4307     {
    4308       pcMvFieldNeighbours[(iCount<<1)+1 ].setMvField( TComMv(0,0), NOT_VALID );
    4309     }
    4310 #endif
    4311 #if QC_MRG_CANS_B0048
    4312     Bool bRemoveSpa = false; //prunign to inter-view candidates
    4313     Int  iCnloop    = bLeftAvai? (iCount-2): (iCount-1);
    4314     for(; iCnloop >= 0; iCnloop --)
    4315     {
    4316       if(puhInterDirNeighbours[iCount] == puhInterDirNeighbours[iCnloop] && pcMvFieldNeighbours[iCnloop<<1]==pcMvFieldNeighbours[(iCount<<1)] && pcMvFieldNeighbours[(iCnloop<<1)+1]==pcMvFieldNeighbours[(iCount<<1)+1])
    4317       {
    4318         bRemoveSpa                      = true;
    4319         abCandIsInter        [ iCount ] = false;
    4320 
    4321         //reset to the default value for IC, MC
    4322         puhInterDirNeighbours[iCount]   = 0;
    4323         TComMv  cZeroMv;
    4324         pcMvFieldNeighbours[iCount<<1].setMvField( cZeroMv, NOT_VALID );
    4325         pcMvFieldNeighbours[(iCount<<1)+1].setMvField( cZeroMv, NOT_VALID );
    4326         break;
    4327       }
    4328     }
    4329     if(!bRemoveSpa)
    4330     {
    4331 #if OL_DISMV_POS_B0069
    4332       iPosLeftAbove[1] = iCount;
    4333 #endif
    4334 #endif
    4335 #if H3D_NBDV
    4336     pcMvFieldNeighbours[iCount<<1    ].getMv().m_bDvMcp = false;
    4337     pcMvFieldNeighbours[(iCount<<1)+1].getMv().m_bDvMcp = false;
    4338 #endif
    4339 #if MERL_VSP_C0152
    4340      xInheritVspMode( pcCUAbove, uiAbovePartIdx, bVspMvZeroDone, iCount, iVSPIndexTrue, pcMvFieldNeighbours, &cDisInfo ) ;
    4341 #endif
    4342 #if SIMP_MRG_PRUN
    4343     if ( mrgCandIdx == iCount )
    4344     {
    4345       return;
    4346     }
    4347 #endif
    4348     iCount ++;
    4349 #if QC_MRG_CANS_B0048
    4350     }
    4351 #endif
    4352   }
    4353 #if !SIMP_MRG_PRUN
    4354   }
    4355 #endif
    4356 
    4357 #if HHI_INTER_VIEW_MOTION_PRED
    4358 #if QC_MRG_CANS_B0048
    4359   if( iPdmDir[0]   && !bNoPdmMerge && PDM_MERGE_POS == 2 )
    4360 #else
    4361   if( iPdmInterDir && !bNoPdmMerge && PDM_MERGE_POS == 2 )
    4362 #endif
    4363   {
    4364     abCandIsInter        [ iCount ] = true;
    4365     puhInterDirNeighbours[ iCount ] = iPdmInterDir;
    4366     if( ( iPdmInterDir & 1 ) == 1 )
    4367     {
    4368       pcMvFieldNeighbours[ iCount<<1    ].setMvField( acPdmMv[ 0 ], aiPdmRefIdx[ 0 ] );
    4369     }
    4370 #if FIX_CU_BASED_MRG_CAND_LIST_B0136
    4371     else
    4372     {
    4373       pcMvFieldNeighbours[ iCount<<1 ].setMvField( TComMv(0,0), NOT_VALID );
    4374     }
    4375 #endif
    4376     if( ( iPdmInterDir & 2 ) == 2 )
    4377     {
    4378       pcMvFieldNeighbours[(iCount<<1)+1 ].setMvField( acPdmMv[ 1 ], aiPdmRefIdx[ 1 ] );
    4379     }
    4380 #if FIX_CU_BASED_MRG_CAND_LIST_B0136
    4381     else
    4382     {
    4383       pcMvFieldNeighbours[(iCount<<1)+1 ].setMvField( TComMv(0,0), NOT_VALID );
    4384     }
    4385 #endif
    4386 #if SIMP_MRG_PRUN
    4387     if ( mrgCandIdx == iCount )
    4388     {
    4389       return;
    4390     }
    4391 #endif
    4392     iCount ++;
    4393   }
    4394 #endif
     4357#endif // HHI_INTER_VIEW_MOTION_PRED
    43954358
    43964359#if MERL_VSP_COMPENSATION_C0152
     
    44594422  }
    44604423
    4461 #if HHI_INTER_VIEW_MOTION_PRED
    4462 #if QC_MRG_CANS_B0048
     4424#if H3D_IVMP
    44634425  if( iPdmDir[0]   && !bNoPdmMerge && PDM_MERGE_POS == 3 )
    4464 #else
    4465   if( iPdmInterDir && !bNoPdmMerge && PDM_MERGE_POS == 3 )
    4466 #endif
    44674426  {
    44684427    abCandIsInter        [ iCount ] = true;
     
    44964455    iCount ++;
    44974456  }
    4498 #endif
    4499 
    4500 #if OL_DISMV_POS_B0069
     4457
    45014458  if(extraMergeCand)
    45024459  {
     
    45464503    }   
    45474504  }
    4548 #endif
     4505#endif //HHI_INTER_VIEW_MOTION_PRED
     4506
    45494507#if MERL_VSP_COMPENSATION_C0152
    45504508  //===== vsp 3 =====
     
    45564514#if MERL_VSP_C0152
    45574515#if VSP_MERGE_POS < 4
    4558 #if HHI_INTER_VIEW_MOTION_PRED
     4516#if H3D_IVMP
    45594517  if( iCount < 4 + extraMergeCand )
    45604518#else
     
    46284586#endif
    46294587 
    4630 #if HHI_INTER_VIEW_MOTION_PRED
    4631 #if QC_MRG_CANS_B0048
     4588#if H3D_IVMP
    46324589  if( iPdmDir[0]   && !bNoPdmMerge && PDM_MERGE_POS == 4 )
    4633 #else
    4634   if( iPdmInterDir && !bNoPdmMerge && PDM_MERGE_POS == 4 )
    4635 #endif
    46364590  {
    46374591    abCandIsInter        [ iCount ] = true;
     
    46654619    iCount ++;
    46664620  }
    4667 #endif
     4621#endif // HHI_INTER_VIEW_MOTION_PRED
    46684622
    46694623#if MERL_VSP_COMPENSATION_C0152
     
    46754629 
    46764630  // above left
    4677 #if HHI_INTER_VIEW_MOTION_PRED
     4631#if H3D_IVMP
    46784632  if( iCount < 4 + extraMergeCand )
    46794633#else
     
    47494703
    47504704  if ( getSlice()->getPPS()->getEnableTMVPFlag()
    4751 #if QC_MRG_CANS_B0048
     4705#if H3D_IVMP
    47524706       && iCount < (MRG_MAX_NUM_CANDS_SIGNALED + extraMergeCand)
    47534707#endif
     
    49194873  UInt uiArrayAddr = iCount;
    49204874#else
    4921 #if HHI_INTER_VIEW_MOTION_PRED
     4875#if H3D_IVMP
    49224876  for( UInt uiOuter = 0; uiOuter < MRG_MAX_NUM_CANDS_MEM; uiOuter++ )
    49234877#else
     
    49274881    if( abCandIsInter[ uiOuter ] )
    49284882    {
    4929 #if HHI_INTER_VIEW_MOTION_PRED
     4883#if H3D_IVMP
    49304884      for( UInt uiIter = uiOuter + 1; uiIter < MRG_MAX_NUM_CANDS_MEM; uiIter++ )
    49314885#else
     
    49784932  }
    49794933
    4980 #if HHI_INTER_VIEW_MOTION_PRED
     4934#if H3D_IVMP
    49814935  bool abCandIsInterFlag[MRG_MAX_NUM_CANDS_MEM];
    49824936  for (int i=0; i<MRG_MAX_NUM_CANDS_MEM; i++)
     
    49924946  UInt uiArrayAddr = 0;
    49934947   
    4994 #if HHI_INTER_VIEW_MOTION_PRED
     4948#if H3D_IVMP
    49954949  for (int i=0; i<MRG_MAX_NUM_CANDS_MEM; i++)
    49964950#else
     
    50084962  }
    50094963
    5010 #if HHI_INTER_VIEW_MOTION_PRED
     4964#if H3D_IVMP
    50114965  for (int i=uiArrayAddr; i<MRG_MAX_NUM_CANDS_MEM; i++)
    50124966#else
     
    50294983  if ( getSlice()->isInterB() )
    50304984  {
    5031 #if HHI_INTER_VIEW_MOTION_PRED
     4985#if H3D_IVMP
    50324986    Int iCombinedCount = 0;
    50334987    Int iMaxCombCount  = ( extraMergeCand ?  6 :  5 );
     
    50815035#if !REMOVE_NON_SCALED 
    50825036    Int iScaledCount = 0;
    5083 #if HHI_INTER_VIEW_MOTION_PRED
     5037#if H3D_IVMP
    50845038    for (int i=0; i<uiCutoff && uiArrayAddr!=MRG_MAX_NUM_CANDS_MEM && iScaledCount<1; i++)
    50855039#else
     
    50875041#endif
    50885042    {
    5089 #if HHI_INTER_VIEW_MOTION_PRED
     5043#if H3D_IVMP
    50905044      for (int j=0; j<2 && uiArrayAddr!=MRG_MAX_NUM_CANDS_MEM && iScaledCount<1; j++)
    50915045#else
     
    51305084
    51315085  Int iNumRefIdx = (getSlice()->isInterB()) ? min(m_pcSlice->getNumRefIdx(REF_PIC_LIST_0), m_pcSlice->getNumRefIdx(REF_PIC_LIST_1)) : m_pcSlice->getNumRefIdx(REF_PIC_LIST_0);
    5132 #if HHI_INTER_VIEW_MOTION_PRED
     5086#if H3D_IVMP
    51335087  for (int r=0; r<iNumRefIdx && uiArrayAddr!=MRG_MAX_NUM_CANDS_MEM; r++)
    51345088#else
     
    51535107    uiArrayAddr++;
    51545108  }
    5155 #if HHI_INTER_VIEW_MOTION_PRED
     5109#if H3D_IVMP
    51565110  if (uiArrayAddr > MRG_MAX_NUM_CANDS_SIGNALED + extraMergeCand )
    51575111  {
     
    66776631 * \param pInfo
    66786632 */
    6679 #if SHARP_INTERVIEW_DECOUPLE_B0111
     6633#if H3D_IVMP
    66806634Void TComDataCU::fillMvpCand ( UInt uiPartIdx, UInt uiPartAddr, RefPicList eRefPicList, Int iRefIdx, AMVPInfo* pInfo, Int iMVPIdx)
    66816635{
     
    67216675#if QC_AMVP_MRG_UNIFY_IVCAN_C0051
    67226676      Int paiPdmRefIdx[4] = {-1, -1, -1, -1};
    6723       Int iPdmDir[4] = {-1, -1, -1, -1};
     6677      Int iPdmDir[4]      = {-1, -1, -1, -1};
    67246678#if QC_C0051_FIXED_BY_MTK
    67256679      TComMv cPdmMvPred[4];
     
    67626716
    67636717Void TComDataCU::fillMvpCandBase( UInt uiPartIdx, UInt uiPartAddr, RefPicList eRefPicList, Int iRefIdx, AMVPInfo* pInfo )
    6764 #else
     6718#else // HHI_INTER_VIEW_MOTION_PRED
    67656719Void TComDataCU::fillMvpCand ( UInt uiPartIdx, UInt uiPartAddr, RefPicList eRefPicList, Int iRefIdx, AMVPInfo* pInfo )
    6766 #endif
     6720#endif // HHI_INTER_VIEW_MOTION_PRED
    67676721{
    67686722  PartSize eCUMode = getPartitionSize( 0 );
     
    67766730    return;
    67776731  }
    6778  
    6779 #if H3D_NBDV && !SHARP_INTERVIEW_DECOUPLE_B0111
    6780   DisInfo cDisInfo;
    6781   cDisInfo.iN = 0;
    6782   if(m_pcSlice->getSPS()->getViewId() && m_pcSlice->getSPS()->getMultiviewMvPredMode())
    6783   {
    6784     getDisMvpCandNBDV(uiPartIdx, uiPartAddr, &cDisInfo, false);
    6785   }
    6786   if(cDisInfo.iN==0)
    6787   {
    6788     cDisInfo.iN = 1;
    6789     cDisInfo.m_acMvCand[0].setHor(0);
    6790     cDisInfo.m_acMvCand[0].setVer(0);
    6791     cDisInfo.m_aVIdxCan[0] = 0;
    6792   }
    6793 #endif
    6794 #if HHI_INTER_VIEW_MOTION_PRED && !SHARP_INTERVIEW_DECOUPLE_B0111
    6795 #if ( PDM_AMVP_POS == 0 )
    6796   // get inter-view mv predictor (at position 0)
    6797   TComMv  cPdmMvPred;
    6798 #if H3D_NBDV
    6799   if( getPdmMvPredDisCan( uiPartIdx, eRefPicList, iRefIdx, cPdmMvPred, &cDisInfo ) )
    6800 #else
    6801   if( getPdmMvPred( uiPartIdx, eRefPicList, iRefIdx, cPdmMvPred ) )
    6802 #endif
    6803   {
    6804     clipMv( cPdmMvPred );
    6805     pInfo->m_acMvCand[ pInfo->iN++ ] = cPdmMvPred;
    6806   }
    6807 #endif
    6808 #endif
    68096732
    68106733  //-- Get Spatial MV
     
    68516774  }
    68526775
    6853 #if HHI_INTER_VIEW_MOTION_PRED && !SHARP_INTERVIEW_DECOUPLE_B0111
    6854 #if ( PDM_AMVP_POS == 1 )
    6855   // get inter-view mv predictor (at position 1)
    6856   TComMv  cPdmMvPred;
    6857 #if H3D_NBDV
    6858   if( getPdmMvPredDisCan( uiPartIdx, eRefPicList, iRefIdx, cPdmMvPred, &cDisInfo ) )
    6859 #else
    6860   if( getPdmMvPred( uiPartIdx, eRefPicList, iRefIdx, cPdmMvPred ) )
    6861 #endif
    6862   {
    6863     clipMv( cPdmMvPred );
    6864     pInfo->m_acMvCand[ pInfo->iN++ ] = cPdmMvPred;
    6865   }
    6866 #endif
    6867 #endif
    6868 
    68696776  // Above predictor search
    68706777  bAdded = xAddMVPCand( pInfo, eRefPicList, iRefIdx, uiPartIdxRT, MD_ABOVE_RIGHT);
     
    69036810  }
    69046811
    6905 #if HHI_INTER_VIEW_MOTION_PRED && !SHARP_INTERVIEW_DECOUPLE_B0111
    6906 #if ( PDM_AMVP_POS == 2 )
    6907   // get inter-view mv predictor (at position 2)
    6908   TComMv  cPdmMvPred;
    6909 #if H3D_NBDV
    6910   if( getPdmMvPredDisCan( uiPartIdx, eRefPicList, iRefIdx, cPdmMvPred, &cDisInfo ) )
    6911 #else
    6912   if( getPdmMvPred( uiPartIdx, eRefPicList, iRefIdx, cPdmMvPred ) )
    6913 #endif
    6914   {
    6915     clipMv( cPdmMvPred );
    6916     pInfo->m_acMvCand[ pInfo->iN++ ] = cPdmMvPred;
    6917   }
    6918 #endif
    6919 #endif
    69206812
    69216813#if AMVP_PRUNING_SIMPLIFICATION
     
    69306822    }
    69316823  }
    6932 #if H3D_NBDV && !SHARP_INTERVIEW_DECOUPLE_B0111
    6933   if ( getSlice()->getViewId()!=0 && pInfo->iN == 3 )
    6934   {
    6935     if ( pInfo->m_acMvCand[ 1 ] == pInfo->m_acMvCand[ 2 ] )
    6936     {
    6937       pInfo->iN = 2;
    6938       if( pInfo->m_acMvCand[ 0 ] == pInfo->m_acMvCand[ 1 ] )
    6939         pInfo->iN = 1;
    6940     }
    6941     else
    6942     {
    6943       if( pInfo->m_acMvCand[ 0 ] == pInfo->m_acMvCand[ 1 ] )
    6944       {
    6945         pInfo->m_acMvCand[1 ] = pInfo->m_acMvCand[ 2 ];
    6946         pInfo->iN = 2;
    6947       }
    6948       else if (pInfo->m_acMvCand[ 0 ] == pInfo->m_acMvCand[ 2 ])
    6949       {
    6950          pInfo->iN = 2;
    6951       }
    6952     }
    6953   }
    6954 #endif
    69556824#endif
    69566825
     
    70256894  }
    70266895
    7027 #if HHI_INTER_VIEW_MOTION_PRED && !SHARP_INTERVIEW_DECOUPLE_B0111
    7028 #if ( PDM_AMVP_POS == 3 )
    7029   // get inter-view mv predictor (at position 3)
    7030   TComMv  cPdmMvPred;
    7031 #if H3D_NBDV
    7032   if( getPdmMvPredDisCan( uiPartIdx, eRefPicList, iRefIdx, cPdmMvPred, &cDisInfo ) )
    7033 #else
    7034   if( getPdmMvPred( uiPartIdx, eRefPicList, iRefIdx, cPdmMvPred ) )
    7035 #endif
    7036   {
    7037     clipMv( cPdmMvPred );
    7038     pInfo->m_acMvCand[ pInfo->iN++ ] = cPdmMvPred;
    7039   }
    7040 #endif
    7041 #endif
    7042 
    70436896#if !AMVP_PRUNING_SIMPLIFICATION
    70446897  // Check No MV Candidate
     
    70466899#endif
    70476900
    7048 #if HHI_INTER_VIEW_MOTION_PRED && !SHARP_INTERVIEW_DECOUPLE_B0111
    7049   const Int iNumAMVPCands = AMVP_MAX_NUM_CANDS + ( getSlice()->getSPS()->getMultiviewMvPredMode() ? 1 : 0 );
    7050   if (pInfo->iN > iNumAMVPCands)
    7051   {
    7052     pInfo->iN = iNumAMVPCands;
    7053   }
    7054   else if (pInfo->iN < iNumAMVPCands)
    7055 #else
    70566901  if (pInfo->iN > AMVP_MAX_NUM_CANDS)
    70576902  {
     
    70596904  }
    70606905  else if (pInfo->iN < AMVP_MAX_NUM_CANDS)
    7061 #endif
    70626906  {
    70636907#if !AMVP_ZERO_CHECKING_REMOVAL
     
    87268570// public functions for Multi-view tools
    87278571// -------------------------------------------------------------------------------------------------------------------
    8728 #if HHI_INTER_VIEW_MOTION_PRED
     8572#if H3D_IVMP
    87298573#if !H3D_NBDV
    87308574Int
     
    87578601#else
    87588602Int
    8759 TComDataCU::getPdmMergeCandidateDisCan( UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo
    8760 #if QC_MRG_CANS_B0048
    8761   , Int* iPdm
    8762 #endif
    8763 )
     8603TComDataCU::getPdmMergeCandidateDisCan( UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm )
    87648604{
    87658605  TComDepthMapGenerator* pcDepthMapGenerator = m_pcSlice->getSPS()->getDepthMapGenerator();
    87668606  ROFRS( pcDepthMapGenerator, 0 );
    8767   return pcDepthMapGenerator->getPdmMergeCandidate( this, uiPartIdx, paiPdmRefIdx, pacPdmMv, pDInfo
    8768 #if QC_MRG_CANS_B0048
    8769     , iPdm
    8770 #endif
    8771     );
     8607  return pcDepthMapGenerator->getPdmMergeCandidate( this, uiPartIdx, paiPdmRefIdx, pacPdmMv, pDInfo, iPdm );
    87728608}
    87738609Bool
  • branches/HTM-5.1-dev0/source/Lib/TLibCommon/TComDataCU.h

    r290 r292  
    563563                                          ,Bool bIndependentTileBoundaryEnabled );
    564564
    565 #if HHI_INTER_VIEW_MOTION_PRED
     565#if H3D_IVMP
    566566#if !H3D_NBDV
    567   Int           getPdmMergeCandidate( UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv );
    568   Bool          getPdmMvPred( UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv, Bool bMerge = false );
     567  Int           getPdmMergeCandidate      ( UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv );
     568  Bool          getPdmMvPred              ( UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv, Bool bMerge = false );
    569569#else //!H3D_NBDV
    570570#if QC_AMVP_MRG_UNIFY_IVCAN_C0051
    571   Bool getUnifiedMvPredCan(UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm, Bool bMerge );
     571  Bool          getUnifiedMvPredCan       ( UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm, Bool bMerge );
    572572#else //QC_AMVP_MRG_UNIFY_IVCAN_C0051
    573   Bool          getPdmMvPredDisCan( UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv, DisInfo* pDInfo, Bool bMerge = false );
    574   Int           getPdmMergeCandidateDisCan( UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo
    575 #if QC_MRG_CANS_B0048
    576     , Int* iPdm
    577 #endif //QC_MRG_CANS_B0048
    578   );
     573  Bool          getPdmMvPredDisCan        ( UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv, DisInfo* pDInfo, Bool bMerge = false );
     574  Int           getPdmMergeCandidateDisCan( UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm );
    579575#endif //QC_AMVP_MRG_UNIFY_IVCAN_C0051
    580576  Void          getDisMvpCand        ( UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDInfo );
     
    598594#endif
    599595  Bool          getIViewOrgDepthMvPred( UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv );
    600 #endif
     596#endif // HHI_INTER_VIEW_MOTION_PRED
    601597#if HHI_INTER_VIEW_RESIDUAL_PRED
    602598  Bool*         getResPredAvail         ()                        { return m_pbResPredAvailable;        }
     
    637633 
    638634  AMVP_MODE     getAMVPMode           ( UInt uiIdx );
    639 #if SHARP_INTERVIEW_DECOUPLE_B0111
     635#if H3D_IVMP
    640636  Void          fillMvpCandBase       ( UInt uiPartIdx, UInt uiPartAddr, RefPicList eRefPicList, Int iRefIdx, AMVPInfo* pInfo );
    641637  Void          fillMvpCand           ( UInt uiPartIdx, UInt uiPartAddr, RefPicList eRefPicList, Int iRefIdx, AMVPInfo* pInfo , Int iMVPIdx=-1);
    642 #else
    643   Void          fillMvpCand           ( UInt uiPartIdx, UInt uiPartAddr, RefPicList eRefPicList, Int iRefIdx, AMVPInfo* pInfo );
    644638#endif
    645639#if PARALLEL_MERGE
  • branches/HTM-5.1-dev0/source/Lib/TLibCommon/TComDepthMapGenerator.cpp

    r289 r292  
    4646#if DEPTH_MAP_GENERATION
    4747
    48 
    4948TComDepthMapGenerator::TComDepthMapGenerator()
    5049{
     
    565564#endif //!H3D_NBDV
    566565
    567 #if HHI_INTER_VIEW_MOTION_PRED
     566#if H3D_IVMP
    568567Void 
    569568TComDepthMapGenerator::covertOrgDepthMap( TComPic* pcPic )
     
    605604
    606605
    607 #if HHI_INTER_VIEW_MOTION_PRED
     606#if H3D_IVMP
    608607#if QC_AMVP_MRG_UNIFY_IVCAN_C0051
    609608Bool
     
    630629    ROTRS( !bPdmMerge, 0 );
    631630
    632 #if QC_MRG_CANS_B0048
     631
    633632  Bool abPdmAvailable[4] = {false, false, false, false};
    634 #else
    635   Bool abPdmAvailable[2] = {false,false};
    636 #endif
    637633
    638634  Int iValid = 0;
     
    765761        if( pcSlice->getRefPOC( eRefPicListDMV, iPdmRefIdx ) == pcSlice->getPOC())
    766762        {
    767 #if QC_MRG_CANS_B0048
    768763          abPdmAvailable[ iRefListId+2 ] = true;
    769764          paiPdmRefIdx  [ iRefListId+2 ] = iPdmRefIdx;
    770 #else
    771           abPdmAvailable[ iRefListId ] = true;
    772           paiPdmRefIdx  [ iRefListId ] = iPdmRefIdx;
    773 #endif
    774765#if H3D_NBDV
    775766          TComMv cMv = pDInfo->m_acMvCand[0];
     
    779770#endif
    780771          pcCU->clipMv( cMv );
    781 #if QC_MRG_CANS_B0048
    782772          pacPdmMv      [ iRefListId + 2] = cMv;
    783 #else
    784           pacPdmMv      [ iRefListId ] = cMv;
    785 #endif
    786773          if(bMerge)
    787774            break;
     
    794781      }
    795782    }
    796 #if QC_MRG_CANS_B0048
    797783    iPdm[1] = ( abPdmAvailable[2] ? 1 : 0 ) + ( abPdmAvailable[3] ? 2 : 0 );
    798 #else
    799     iPdmInterDir = ( abPdmAvailable[0] ? 1 : 0 ) + ( abPdmAvailable[1] ? 2 : 0 ) ;
    800    }
    801 #endif
    802784  }
    803785  return false;
    804786}
    805 #else
     787#else // QC_AMVP_MRG_UNIFY_IVCAN_C0051
    806788#if H3D_NBDV
    807789Int
    808 TComDepthMapGenerator::getPdmMergeCandidate( TComDataCU* pcCU, UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo
    809 #if QC_MRG_CANS_B0048
    810   , Int* iPdm
    811 #endif
    812 )
     790TComDepthMapGenerator::getPdmMergeCandidate( TComDataCU* pcCU, UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm )
    813791#else
    814792Int
     
    816794#endif
    817795{
    818 #if MTK_INTERVIEW_MERGE_A0049
    819796  AOF  ( m_bCreated && m_bInit );
    820797
     
    829806  ROTRS( !bPdmMerge, 0 );
    830807
    831 #if QC_MRG_CANS_B0048
    832808  Bool abPdmAvailable[4] = {false, false, false, false};
    833 #else
    834   Bool abPdmAvailable[2] = {false,false};
    835 #endif
    836809
    837810  Int iValid = 0;
     
    935908  }
    936909  Int iPdmInterDir = ( abPdmAvailable[0] ? 1 : 0 ) + ( abPdmAvailable[1] ? 2 : 0 );
    937 #if QC_MRG_CANS_B0048
     910
    938911  iPdm[0] = iPdmInterDir;
    939 #else
    940   if (iPdmInterDir == 0)
    941   {
    942 #endif
    943912    for( Int iRefListId = 0; iRefListId < 2 ; iRefListId++ )
    944913    {
     
    949918        if( pcSlice->getRefPOC( eRefPicList, iPdmRefIdx ) == pcSlice->getPOC())
    950919        {
    951 #if QC_MRG_CANS_B0048
    952920          abPdmAvailable[ iRefListId+2 ] = true;
    953921          paiPdmRefIdx  [ iRefListId+2 ] = iPdmRefIdx;
    954 #else
    955           abPdmAvailable[ iRefListId ] = true;
    956           paiPdmRefIdx  [ iRefListId ] = iPdmRefIdx;
    957 #endif
    958922#if H3D_NBDV
    959923          TComMv cMv = pDInfo->m_acMvCand[0];
     
    963927#endif
    964928          pcCU->clipMv( cMv );
    965 #if QC_MRG_CANS_B0048
    966929          pacPdmMv      [ iRefListId + 2] = cMv;
    967 #else
    968           pacPdmMv      [ iRefListId ] = cMv;
    969 #endif
    970930          break;
    971931        }
    972932      }
    973933    }
    974 #if QC_MRG_CANS_B0048
    975934    iPdmInterDir = ( abPdmAvailable[2] ? 1 : 0 ) + ( abPdmAvailable[3] ? 2 : 0 ) ;
    976935    iPdm[1] = iPdmInterDir;
    977 #else
    978     iPdmInterDir = ( abPdmAvailable[0] ? 1 : 0 ) + ( abPdmAvailable[1] ? 2 : 0 ) ;
    979   }
    980 #endif
    981936
    982937  return iPdmInterDir;
    983 
    984 #else
    985   Int  iMaxNumInterPics  = 1;
    986   Int  iMaxNumAllPics    = 2;
    987 
    988   // inter-only
    989   Bool abPdmAvailable[2] = {false,false};
    990   for( Int iRefListId = 0; iRefListId < 2; iRefListId++ )
    991   {
    992     RefPicList  eRefPicList       = RefPicList( iRefListId );
    993     Int         iNumRefPics       = pcCU->getSlice()->getNumRefIdx( eRefPicList );
    994     TComMv      cMv;
    995     for( Int iPdmRefIdx = 0, iInterPics = 0; iPdmRefIdx < iNumRefPics && iInterPics < iMaxNumInterPics; iPdmRefIdx++ )
    996     {
    997       if( pcCU->getSlice()->getRefPOC( eRefPicList, iPdmRefIdx ) != pcCU->getSlice()->getPOC() )
    998       {
    999 #if H3D_NBDV
    1000         if( getDisCanPdmMvPred (pcCU, uiPartIdx, eRefPicList, iPdmRefIdx, cMv, pDInfo, true ) )       
    1001 #else
    1002         if( getPdmMvPred( pcCU, uiPartIdx, eRefPicList, iPdmRefIdx, cMv, true ) )
    1003 #endif
    1004         {
    1005           pcCU->clipMv( cMv );
    1006           abPdmAvailable[ iRefListId ] = true;
    1007           paiPdmRefIdx  [ iRefListId ] = iPdmRefIdx;
    1008           pacPdmMv      [ iRefListId ] = cMv;
    1009           break;
    1010         }
    1011         iInterPics++;
    1012       }
    1013     }
    1014   }
    1015   Int    iPdmInterDir = ( abPdmAvailable[0] ? 1 : 0 ) + ( abPdmAvailable[1] ? 2 : 0 );
    1016   if( 0==iPdmInterDir )
    1017   { // check all, including inter view references
    1018     for( Int iRefListId = 0; iRefListId < 2; iRefListId++ )
    1019     {
    1020       RefPicList  eRefPicList = RefPicList( iRefListId );
    1021       Int         iNumRefPics = Min( iMaxNumAllPics, pcCU->getSlice()->getNumRefIdx( eRefPicList ) );
    1022       TComMv      cMv;
    1023       for( Int iPdmRefIdx = 0; iPdmRefIdx < iNumRefPics; iPdmRefIdx++ )
    1024       {
    1025 #if H3D_NBDV
    1026         if ( getDisCanPdmMvPred (pcCU, uiPartIdx, eRefPicList, iPdmRefIdx, cMv, pDInfo, true ) )
    1027 #else
    1028         if( getPdmMvPred( pcCU, uiPartIdx, eRefPicList, iPdmRefIdx, cMv, true ) )
    1029 #endif
    1030         {
    1031           pcCU->clipMv( cMv );
    1032           abPdmAvailable[ iRefListId ] = true;
    1033           paiPdmRefIdx  [ iRefListId ] = iPdmRefIdx;
    1034           pacPdmMv      [ iRefListId ] = cMv;
    1035           break;
    1036         }
    1037       }
    1038     }
    1039     iPdmInterDir = ( abPdmAvailable[0] ? 1 : 0 ) + ( abPdmAvailable[1] ? 2 : 0 );
    1040   }
    1041   return iPdmInterDir;
    1042 #endif
    1043938}
    1044939
     
    12151110}
    12161111#endif // H3D_NBDV
    1217 #endif
     1112#endif // QC_AMVP_MRG_UNIFY_IVCAN_C0051
    12181113
    12191114
     
    12571152  return        true;
    12581153}
    1259 #endif
     1154#endif // HHI_INTER_VIEW_MOTION_PRED
    12601155
    12611156
     
    20571952  Int           iCurrPosY;
    20581953  pcPredDepthMap->getTopLeftSamplePos( pcCU->getAddr(), pcCU->getZorderIdxInCU() + uiPartAddr, iCurrPosX, iCurrPosY );
    2059 #if SAIT_IMPROV_MOTION_PRED_M24829 // max disparity within PU
     1954#if H3D_IVMP // max disparity within PU
    20601955  Int DiWidth  = iCurrPosX+(iWidth  >> m_uiSubSampExpX);
    20611956  Int DiHeight = iCurrPosY+(iHeight >> m_uiSubSampExpY);
  • branches/HTM-5.1-dev0/source/Lib/TLibCommon/TComDepthMapGenerator.h

    r289 r292  
    142142#endif
    143143
    144 #if HHI_INTER_VIEW_MOTION_PRED
     144#if H3D_IVMP
    145145  Void  covertOrgDepthMap     ( TComPic*      pcPic );
    146146#endif
     
    150150  UInt  getSubSampExpY        ()                      { return m_uiSubSampExpY; }
    151151  Int   getDisparity          ( TComPic*      pcPic, Int iPosX, Int iPosY, UInt uiRefViewId );
    152 #if HHI_INTER_VIEW_MOTION_PRED
     152#if H3D_IVMP
    153153#if H3D_NBDV
    154154#if QC_AMVP_MRG_UNIFY_IVCAN_C0051
    155   Bool getPdmCandidate ( TComDataCU* pcCU, UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm, Bool bMerge );
     155  Bool  getPdmCandidate       ( TComDataCU*  pcCU, UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm, Bool bMerge );
    156156#else
    157   Int   getPdmMergeCandidate ( TComDataCU*   pcCU, UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo
    158 #if QC_MRG_CANS_B0048
    159     , Int* iPdm
    160 #endif
    161     );
    162 
     157  Int   getPdmMergeCandidate  ( TComDataCU*   pcCU, UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm );
    163158  Bool  getPdmMvPredDisCan    ( TComDataCU*   pcCU, UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv, DisInfo* pDInfo, Bool bMerge );
    164159  Bool  getDisCanPdmMvPred    ( TComDataCU*   pcCU, UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, TComMv& rcMv, DisInfo* pDInfo, Bool bMerge );
  • branches/HTM-5.1-dev0/source/Lib/TLibCommon/TComMotionInfo.h

    r289 r292  
    9494  Int getHor   () const { return  m_acMv.getHor(); }
    9595  Int getVer   () const { return  m_acMv.getVer(); }
    96 #if QC_MRG_CANS_B0048
     96#if H3D_IVMP
    9797  Bool operator== ( const TComMvField& rcMv ) const
    9898  {
  • branches/HTM-5.1-dev0/source/Lib/TLibCommon/TComPic.cpp

    r289 r292  
    5959#endif
    6060#endif
    61 #if HHI_INTER_VIEW_MOTION_PRED
     61#if H3D_IVMP
    6262  m_pcOrgDepthMap     = NULL;
    6363#endif
     
    157157#endif
    158158#endif
    159 #if HHI_INTER_VIEW_MOTION_PRED
     159#if H3D_IVMP
    160160  if( m_pcOrgDepthMap )
    161161  {
     
    206206#endif
    207207
    208 #if HHI_INTER_VIEW_MOTION_PRED
     208#if H3D_IVMP
    209209Void
    210210TComPic::addOrgDepthMapBuffer()
     
    259259#endif
    260260
    261 #if HHI_INTER_VIEW_MOTION_PRED
     261#if H3D_IVMP
    262262Void
    263263TComPic::removeOrgDepthMapBuffer()
  • branches/HTM-5.1-dev0/source/Lib/TLibCommon/TComPic.h

    r289 r292  
    7777#endif
    7878
    79 #if HHI_INTER_VIEW_MOTION_PRED
     79#if H3D_IVMP
    8080  TComPicYuv*           m_pcOrgDepthMap;          //  original depth map
    8181#if H3D_NBDV
     
    165165
    166166#endif
    167 #if HHI_INTER_VIEW_MOTION_PRED
     167#if H3D_IVMP
    168168  TComPicYuv*   getOrgDepthMap()      { return  m_pcOrgDepthMap; }
    169169#if H3D_NBDV
     
    250250  Void          addPrdDepthMapBuffer    ( UInt uiSubSampExpX, UInt uiSubSampExpY );
    251251#endif
    252 #if HHI_INTER_VIEW_MOTION_PRED
     252#if H3D_IVMP
    253253  Void          addOrgDepthMapBuffer    ();
    254254#endif
     
    259259  Void          removePrdDepthMapBuffer ();
    260260#endif
    261 #if HHI_INTER_VIEW_MOTION_PRED
     261#if H3D_IVMP
    262262  Void          removeOrgDepthMapBuffer ();
    263263#endif
  • branches/HTM-5.1-dev0/source/Lib/TLibCommon/TComRdCost.cpp

    r189 r292  
    181181}
    182182
    183 #if HHI_INTER_VIEW_MOTION_PRED
     183#if H3D_IVMP
    184184Void
    185185TComRdCost::setLambdaMVReg( Double dLambda )
  • branches/HTM-5.1-dev0/source/Lib/TLibCommon/TComRdCost.h

    r189 r292  
    203203#endif
    204204  Void    setLambda      ( Double dLambda );
    205 #if HHI_INTER_VIEW_MOTION_PRED
     205#if H3D_IVMP
    206206  Void    setLambdaMVReg ( Double dLambda );
    207207#endif
  • branches/HTM-5.1-dev0/source/Lib/TLibCommon/TComSlice.cpp

    r287 r292  
    16561656  ::memset( m_aiPdmOffset,        0x00, sizeof( m_aiPdmOffset         ) );
    16571657#endif
    1658 #if HHI_INTER_VIEW_MOTION_PRED
     1658#if H3D_IVMP
    16591659  m_uiMultiviewMvPredMode    = 0;
    16601660#endif
     
    18901890
    18911891  m_uiPredDepthMapGeneration = uiPdmGenMode;
    1892 #if HHI_INTER_VIEW_MOTION_PRED
     1892#if H3D_IVMP
    18931893  m_uiMultiviewMvPredMode    = uiPdmMvPredMode;
    18941894#endif
  • branches/HTM-5.1-dev0/source/Lib/TLibCommon/TComSlice.h

    r280 r292  
    415415#endif
    416416
    417 #if HHI_INTER_VIEW_MOTION_PRED
     417#if H3D_IVMP
    418418  UInt  m_uiMultiviewMvPredMode;
    419419#endif
     
    722722#endif
    723723
    724 #if HHI_INTER_VIEW_MOTION_PRED
     724#if H3D_IVMP
    725725  UInt  getMultiviewMvPredMode   ()          { return m_uiMultiviewMvPredMode;    }
    726726#endif
  • branches/HTM-5.1-dev0/source/Lib/TLibCommon/TypeDef.h

    r291 r292  
    7979#define INTER_VIEW_VECTOR_SCALING_C0116   1 // JCT3V-C0116 Inter-view vector scaling for AMVP
    8080
    81 ///// ***** INTERVIEW MOTION VECTOR PREDICTION *********
    82 #define HHI_INTER_VIEW_MOTION_PRED        1   // inter-view motion parameter prediction
    83 #if HHI_INTER_VIEW_MOTION_PRED         
    84 #define SAIT_IMPROV_MOTION_PRED_M24829    1   // improved inter-view motion vector prediction
    85 #else                                 
    86 #define SAIT_IMPROV_MOTION_PRED_M24829    0   
    87 #endif                                 
    88 
    89 #define SHARP_INTERVIEW_DECOUPLE_B0111    1   // JCT3V-B0111 decoupling inter-view candidate
    90 #define QC_MRG_CANS_B0048                 1   // JCT3V-B0048, B0086, B0069
    91 #if     QC_MRG_CANS_B0048
    92 #define OL_DISMV_POS_B0069                1   // different pos for disparity MV candidate, B0069
    93 #endif
    94 #define MTK_INTERVIEW_MERGE_A0049         1   // JCT3V-A0049 second part
     81///// ***** INTERVIEW MOTION PARAMETER PREDICTION *********
     82#define H3D_IVMP                          1   // inter-view motion parameter prediction
     83                                              // HHI_INTER_VIEW_MOTION_PRED
     84                                              // SAIT_IMPROV_MOTION_PRED_M24829, improved inter-view motion vector prediction
     85                                              // SHARP_INTERVIEW_DECOUPLE_B0111, decoupling inter-view candidate
     86                                              // QC_MRG_CANS_B0048             , JCT3V-B0048, B0086, B0069
     87                                              // OL_DISMV_POS_B0069            , different pos for disparity MV candidate, B0069
     88                                              // MTK_INTERVIEW_MERGE_A0049     ,// JCT3V-A0049 second part
    9589#define QC_AMVP_MRG_UNIFY_IVCAN_C0051     1
    9690#define QC_C0051_FIXED_BY_MTK             1   // bug fix for C0051 implementation
  • branches/HTM-5.1-dev0/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r287 r292  
    18441844#if DEPTH_MAP_GENERATION
    18451845        UInt uiPredDepthMapGeneration = 0, uiPdmPrecision = 0;
    1846 #if HHI_INTER_VIEW_MOTION_PRED
     1846#if H3D_IVMP
    18471847        UInt uiMultiviewMvPredMode = 0;
    18481848#endif
     
    18591859            READ_SVLC( iCode, "Pdm_offset" );   m_aaiTempPdmOffset       [ uiViewId ][ uiBaseId ] = iCode;
    18601860          }
    1861 #if HHI_INTER_VIEW_MOTION_PRED
     1861#if H3D_IVMP
    18621862          READ_UVLC( uiMultiviewMvPredMode, "multi_view_mv_pred_mode" );
    18631863#endif
     
    18661866#endif
    18671867        }
    1868 #if HHI_INTER_VIEW_MOTION_PRED
     1868#if H3D_IVMP
    18691869        pcSPS->setPredDepthMapGeneration( uiViewId, false, uiPredDepthMapGeneration, uiMultiviewMvPredMode, uiPdmPrecision, m_aaiTempPdmScaleNomDelta, m_aaiTempPdmOffset );
    18701870#else
     
    25012501  }
    25022502
    2503 #if ( HHI_MPI || HHI_INTER_VIEW_MOTION_PRED )
    2504   #if ( HHI_MPI && HHI_INTER_VIEW_MOTION_PRED )
     2503#if ( HHI_MPI || H3D_IVMP )
     2504  #if ( HHI_MPI && H3D_IVMP )
    25052505  const int iExtraMergeCandidates = ( sps->getUseMVI() || sps->getMultiviewMvPredMode() ) ? 1 : 0;
    25062506  #elif HHI_MPI
     
    27802780#endif
    27812781
    2782 #if HHI_INTER_VIEW_MOTION_PRED
     2782#if H3D_IVMP
    27832783Void TDecCavlc::parseMVPIdx( Int& riMVPIdx, Int iAMVPCands )
    27842784#else
  • branches/HTM-5.1-dev0/source/Lib/TLibDecoder/TDecCAVLC.h

    r280 r292  
    141141  Void  parseTerminatingBit ( UInt& ruiBit );
    142142 
    143 #if HHI_INTER_VIEW_MOTION_PRED
     143#if H3D_IVMP
    144144  Void  parseMVPIdx         ( Int& riMVPIdx, Int iAMVPCands );
    145145#else
  • branches/HTM-5.1-dev0/source/Lib/TLibDecoder/TDecCu.cpp

    r287 r292  
    339339    m_ppcCU[uiDepth]->copyInterPredInfoFrom( pcCU, uiAbsPartIdx, REF_PIC_LIST_0 );
    340340    m_ppcCU[uiDepth]->copyInterPredInfoFrom( pcCU, uiAbsPartIdx, REF_PIC_LIST_1 );
    341 #if HHI_INTER_VIEW_MOTION_PRED
     341#if H3D_IVMP
    342342    TComMvField cMvFieldNeighbours[MRG_MAX_NUM_CANDS_MEM << 1]; // double length for mv of both lists
    343343    UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS_MEM];
  • branches/HTM-5.1-dev0/source/Lib/TLibDecoder/TDecEntropy.cpp

    r290 r292  
    276276
    277277#if CU_BASED_MRG_CAND_LIST
    278 #if HHI_INTER_VIEW_MOTION_PRED
     278#if H3D_IVMP
    279279  TComMvField cMvFieldNeighbours[MRG_MAX_NUM_CANDS_MEM << 1]; // double length for mv of both lists
    280280  UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS_MEM];
     
    297297  {
    298298#if !CU_BASED_MRG_CAND_LIST
    299 #if HHI_INTER_VIEW_MOTION_PRED
     299#if H3D_IVMP
    300300    TComMvField cMvFieldNeighbours[MRG_MAX_NUM_CANDS_MEM << 1]; // double length for mv of both lists
    301301    UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS_MEM];
     
    523523  if ( (pcSubCU->getInterDir(uiPartAddr) & ( 1 << eRefList )) && (pcSubCU->getAMVPMode(uiPartAddr) == AM_EXPL) )
    524524  {
    525 #if HHI_INTER_VIEW_MOTION_PRED
     525#if H3D_IVMP
    526526    const Int iNumAMVPCands = AMVP_MAX_NUM_CANDS + ( pcSubCU->getSlice()->getSPS()->getMultiviewMvPredMode() ? 1 : 0 );
    527527    m_pcEntropyDecoderIf->parseMVPIdx( iMVPIdx, iNumAMVPCands );
     
    530530#endif
    531531  }
    532 #if SHARP_INTERVIEW_DECOUPLE_B0111
     532#if H3D_IVMP
    533533  pcSubCU->fillMvpCand(uiPartIdx, uiPartAddr, eRefList, iRefIdx, pAMVPInfo, iMVPIdx);
    534534#else
  • branches/HTM-5.1-dev0/source/Lib/TLibDecoder/TDecEntropy.h

    r280 r292  
    9999  virtual Void  parseTerminatingBit       ( UInt& ruilsLast )                                     = 0;
    100100 
    101 #if HHI_INTER_VIEW_MOTION_PRED
     101#if H3D_IVMP
    102102  virtual Void parseMVPIdx        ( Int& riMVPIdx, Int iNumAMVPCands ) = 0;
    103103#else
  • branches/HTM-5.1-dev0/source/Lib/TLibDecoder/TDecSbac.cpp

    r287 r292  
    728728#endif
    729729
    730 #if HHI_INTER_VIEW_MOTION_PRED
     730#if H3D_IVMP
    731731Void TDecSbac::parseMVPIdx      ( Int& riMVPIdx, Int iNumAMVPCands )
    732732{
  • branches/HTM-5.1-dev0/source/Lib/TLibDecoder/TDecSbac.h

    r287 r292  
    114114
    115115  Void  parseTerminatingBit       ( UInt& ruiBit );
    116 #if HHI_INTER_VIEW_MOTION_PRED
     116#if H3D_IVMP
    117117  Void  parseMVPIdx               ( Int& riMVPIdx, Int iNumAMVPCands );
    118118#else
  • branches/HTM-5.1-dev0/source/Lib/TLibEncoder/TEncCavlc.cpp

    r287 r292  
    795795          WRITE_SVLC( pcSPS->getPdmOffset       ()[ uiId ], "Pdm_offset" );
    796796        }
    797 #if HHI_INTER_VIEW_MOTION_PRED
     797#if H3D_IVMP
    798798        WRITE_UVLC( pcSPS->getMultiviewMvPredMode(), "multi_view_mv_pred_mode" );
    799799#endif
     
    13061306  }
    13071307 
    1308 #if ( HHI_MPI || HHI_INTER_VIEW_MOTION_PRED )
    1309   #if ( HHI_MPI && HHI_INTER_VIEW_MOTION_PRED )
     1308#if ( HHI_MPI || H3D_IVMP )
     1309  #if ( HHI_MPI && H3D_IVMP )
    13101310  const int iExtraMergeCandidates = ( pcSlice->getSPS()->getUseMVI() || pcSlice->getSPS()->getMultiviewMvPredMode() ) ? 1 : 0;
    13111311  #elif HHI_MPI
     
    14901490}
    14911491
    1492 #if HHI_INTER_VIEW_MOTION_PRED
     1492#if H3D_IVMP
    14931493Void TEncCavlc::codeMVPIdx ( TComDataCU* pcCU, UInt uiAbsPartIdx, RefPicList eRefList, Int iNum )
    14941494#else
  • branches/HTM-5.1-dev0/source/Lib/TLibEncoder/TEncCavlc.h

    r280 r292  
    139139  Void  encodeStart             () {}
    140140 
    141 #if HHI_INTER_VIEW_MOTION_PRED
     141#if H3D_IVMP
    142142  Void codeMVPIdx ( TComDataCU* pcCU, UInt uiAbsPartIdx, RefPicList eRefList, Int iNum );
    143143#else
  • branches/HTM-5.1-dev0/source/Lib/TLibEncoder/TEncCfg.h

    r280 r292  
    352352#endif
    353353
    354 #if HHI_INTER_VIEW_MOTION_PRED
     354#if H3D_IVMP
    355355  UInt        m_uiMultiviewMvPredMode;
    356356  UInt        m_uiMultiviewMvRegMode;
     
    447447#endif
    448448
    449 #if HHI_INTER_VIEW_MOTION_PRED
     449#if H3D_IVMP
    450450  Void      setMultiviewMvPredMode          ( UInt  u )      { m_uiMultiviewMvPredMode      = u; }
    451451  Void      setMultiviewMvRegMode           ( UInt  u )      { m_uiMultiviewMvRegMode       = u; }
     
    482482  Void      setVerticalDisparitySearchRange ( Int   i )      { m_iVerticalDisparitySearchRange = i; }
    483483#endif
    484 #if HHI_INTER_VIEW_MOTION_PRED
     484#if H3D_IVMP
    485485  UInt      getMultiviewMvRegMode           ()      { return  m_uiMultiviewMvRegMode; }
    486486  Double    getMultiviewMvRegLambdaScale    ()      { return  m_dMultiviewMvRegLambdaScale; }
  • branches/HTM-5.1-dev0/source/Lib/TLibEncoder/TEncCu.cpp

    r290 r292  
    19421942{
    19431943  assert( rpcTempCU->getSlice()->getSliceType() != I_SLICE );
    1944 #if HHI_INTER_VIEW_MOTION_PRED
     1944#if H3D_IVMP
    19451945  TComMvField  cMvFieldNeighbours[MRG_MAX_NUM_CANDS_MEM << 1]; // double length for mv of both lists
    19461946  UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS_MEM];
     
    19591959#endif
    19601960
    1961 #if HHI_INTER_VIEW_MOTION_PRED
     1961#if H3D_IVMP
    19621962  for( UInt ui = 0; ui < MRG_MAX_NUM_CANDS_MEM; ++ui )
    19631963#else
  • branches/HTM-5.1-dev0/source/Lib/TLibEncoder/TEncEntropy.cpp

    r287 r292  
    15081508  if ( (pcCU->getInterDir( uiAbsPartIdx ) & ( 1 << eRefList )) && (pcCU->getAMVPMode(uiAbsPartIdx) == AM_EXPL) )
    15091509  {
    1510 #if HHI_INTER_VIEW_MOTION_PRED
     1510#if H3D_IVMP
    15111511    const Int iNumCands = AMVP_MAX_NUM_CANDS + ( pcCU->getSlice()->getSPS()->getMultiviewMvPredMode() ? 1 : 0 );
    15121512    m_pcEntropyCoderIf->codeMVPIdx( pcCU, uiAbsPartIdx, eRefList, iNumCands );
  • branches/HTM-5.1-dev0/source/Lib/TLibEncoder/TEncEntropy.h

    r287 r292  
    103103 
    104104  virtual Void codeAlfCtrlDepth() = 0;
    105 #if HHI_INTER_VIEW_MOTION_PRED
     105#if H3D_IVMP
    106106  virtual Void codeMVPIdx ( TComDataCU* pcCU, UInt uiAbsPartIdx, RefPicList eRefList, Int iNum ) = 0;
    107107#else
  • branches/HTM-5.1-dev0/source/Lib/TLibEncoder/TEncGOP.cpp

    r289 r292  
    758758#endif
    759759#endif
    760 #if HHI_INTER_VIEW_MOTION_PRED
     760#if H3D_IVMP
    761761      m_pcDepthMapGenerator->covertOrgDepthMap( pcPic );
    762762#endif
     
    15821582        pcPic->removeUsedPelsMapBuffer() ;
    15831583#endif
    1584 #if HHI_INTER_VIEW_MOTION_PRED
     1584#if H3D_IVMP
    15851585      pcPic->removeOrgDepthMapBuffer();
    15861586#endif
  • branches/HTM-5.1-dev0/source/Lib/TLibEncoder/TEncSbac.cpp

    r287 r292  
    600600}
    601601
    602 #if HHI_INTER_VIEW_MOTION_PRED
     602#if H3D_IVMP
    603603Void TEncSbac::codeMVPIdx ( TComDataCU* pcCU, UInt uiAbsPartIdx, RefPicList eRefList, Int iNum )
    604604#else
     
    607607{
    608608  Int iSymbol = pcCU->getMVPIdx(eRefList, uiAbsPartIdx);
    609 #if HHI_INTER_VIEW_MOTION_PRED
     609#if H3D_IVMP
    610610#else
    611611  Int iNum = AMVP_MAX_NUM_CANDS;
  • branches/HTM-5.1-dev0/source/Lib/TLibEncoder/TEncSbac.h

    r287 r292  
    220220#endif
    221221  Void codeSplitFlag     ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
    222 #if HHI_INTER_VIEW_MOTION_PRED
     222#if H3D_IVMP
    223223  Void codeMVPIdx        ( TComDataCU* pcCU, UInt uiAbsPartIdx, RefPicList eRefList, Int iNum );
    224224#else
  • branches/HTM-5.1-dev0/source/Lib/TLibEncoder/TEncSearch.cpp

    r290 r292  
    205205#endif
    206206 
    207 #if HHI_INTER_VIEW_MOTION_PRED
     207#if H3D_IVMP
    208208  const Int iNumAMVPCands = AMVP_MAX_NUM_CANDS + 1;
    209209  for( Int iNum = 0; iNum < iNumAMVPCands+1; iNum++)
     
    29632963{
    29642964#if !CU_BASED_MRG_CAND_LIST
    2965 #if HHI_INTER_VIEW_MOTION_PRED
     2965#if H3D_IVMP
    29662966  TComMvField  cMvFieldNeighbours[MRG_MAX_NUM_CANDS_MEM << 1]; // double length for mv of both lists
    29672967  UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS_MEM];
     
    30093009
    30103010
    3011 #if HHI_INTER_VIEW_MOTION_PRED
     3011#if H3D_IVMP
    30123012  const int maxNumMergeCand = MRG_MAX_NUM_CANDS_SIGNALED + ( pcCU->getSlice()->getSPS()->getMultiviewMvPredMode() ? 1 : 0 );
    30133013#endif
     
    30743074      xGetInterPredictionError( pcCU, pcYuvOrg, iPUIdx, uiCostCand, m_pcEncCfg->getUseHADME() );
    30753075      uiBitsCand = uiMergeCand + 1;
    3076 #if HHI_INTER_VIEW_MOTION_PRED
     3076#if H3D_IVMP
    30773077      if (uiMergeCand == maxNumMergeCand - 1 )
    30783078#else
     
    31823182
    31833183#if CU_BASED_MRG_CAND_LIST
    3184 #if HHI_INTER_VIEW_MOTION_PRED
     3184#if H3D_IVMP
    31853185  TComMvField cMvFieldNeighbours[MRG_MAX_NUM_CANDS_MEM << 1]; // double length for mv of both lists
    31863186  UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS_MEM];
     
    31933193#endif
    31943194
    3195 #if HHI_INTER_VIEW_MOTION_PRED
     3195#if H3D_IVMP
    31963196  Int iNumAMVPCands = AMVP_MAX_NUM_CANDS + ( pcCU->getSlice()->getSPS()->getMultiviewMvPredMode() ? 1 : 0 );
    31973197#endif
     
    32993299#endif
    33003300
    3301 #if HHI_INTER_VIEW_MOTION_PRED
     3301#if H3D_IVMP
    33023302        uiBitsTemp += m_auiMVPIdxCost[aaiMvpIdx[iRefList][iRefIdxTemp]][iNumAMVPCands];
    33033303#else
     
    34863486        }
    34873487
    3488 #if HHI_INTER_VIEW_MOTION_PRED
     3488#if H3D_IVMP
    34893489        uiMotBits[1] += m_auiMVPIdxCost[aaiMvpIdxBi[1][bestBiPRefIdxL1]][iNumAMVPCands];
    34903490#else
     
    35513551            if ( iRefIdxTemp == pcCU->getSlice()->getNumRefIdx(eRefPicList)-1 ) uiBitsTemp--;
    35523552          }
    3553 #if HHI_INTER_VIEW_MOTION_PRED
     3553#if H3D_IVMP
    35543554          uiBitsTemp += m_auiMVPIdxCost[aaiMvpIdxBi[iRefList][iRefIdxTemp]][iNumAMVPCands];
    35553555#else
     
    40324032    if(pcCU->getSlice()->getMvdL1ZeroFlag() && eRefPicList==REF_PIC_LIST_1)
    40334033    {
    4034 #if HHI_INTER_VIEW_MOTION_PRED
     4034#if H3D_IVMP
    40354035      Int iNumAMVPCands = AMVP_MAX_NUM_CANDS + ( pcCU->getSlice()->getSPS()->getMultiviewMvPredMode() ? 1 : 0 );
    40364036#if ZERO_MVD_EST
     
    40684068    {
    40694069      UInt uiTmpCost;
    4070 #if HHI_INTER_VIEW_MOTION_PRED
     4070#if H3D_IVMP
    40714071      Int iNumAMVPCands = AMVP_MAX_NUM_CANDS + ( pcCU->getSlice()->getSPS()->getMultiviewMvPredMode() ? 1 : 0 );
    40724072#if ZERO_MVD_EST
     
    42034203  Int iBestMVPIdx = riMVPIdx;
    42044204 
    4205 #if HHI_INTER_VIEW_MOTION_PRED
     4205#if H3D_IVMP
    42064206  Int iNumAMVPCands = AMVP_MAX_NUM_CANDS + ( pcCU->getSlice()->getSPS()->getMultiviewMvPredMode() ? 1 : 0 );
    42074207#endif
     
    42094209  m_pcRdCost->setPredictor( rcMvPred );
    42104210  Int iOrgMvBits  = m_pcRdCost->getBits(cMv.getHor(), cMv.getVer());
    4211 #if HHI_INTER_VIEW_MOTION_PRED
     4211#if H3D_IVMP
    42124212  iOrgMvBits += m_auiMVPIdxCost[riMVPIdx][iNumAMVPCands];
    42134213#else
     
    42234223   
    42244224    Int iMvBits = m_pcRdCost->getBits(cMv.getHor(), cMv.getVer());
    4225 #if HHI_INTER_VIEW_MOTION_PRED
     4225#if H3D_IVMP
    42264226    iMvBits += m_auiMVPIdxCost[iMVPIdx][iNumAMVPCands];
    42274227#else
     
    44084408  m_pcRdCost->setCostScale  ( 2 );
    44094409
    4410 #if HHI_INTER_VIEW_MOTION_PRED
     4410#if H3D_IVMP
    44114411  { // init inter-view regularization
    44124412    TComMv  cOrgDepthMapMv;
  • branches/HTM-5.1-dev0/source/Lib/TLibEncoder/TEncSearch.h

    r287 r292  
    121121 
    122122  // AMVP cost computation
    123 #if HHI_INTER_VIEW_MOTION_PRED
     123#if H3D_IVMP
    124124  UInt            m_auiMVPIdxCost[AMVP_MAX_NUM_CANDS+2][AMVP_MAX_NUM_CANDS+2]; //th array bounds
    125125#else
  • branches/HTM-5.1-dev0/source/Lib/TLibEncoder/TEncSlice.cpp

    r287 r292  
    409409#endif
    410410 
    411 #if HHI_INTER_VIEW_MOTION_PRED
     411#if H3D_IVMP
    412412  m_pcRdCost ->setLambdaMVReg ( dLambda * m_pcCfg->getMultiviewMvRegLambdaScale() );
    413413#endif
     
    469469  rpcSlice->setEntropySliceArgument ( m_pcCfg->getEntropySliceArgument() );
    470470
    471 #if ( HHI_MPI || HHI_INTER_VIEW_MOTION_PRED )
    472   #if ( HHI_MPI && HHI_INTER_VIEW_MOTION_PRED )
     471#if ( HHI_MPI || H3D_IVMP )
     472  #if ( HHI_MPI && H3D_IVMP )
    473473  const int iExtraMergeCandidates = ( pSPS->getUseMVI() || pSPS->getMultiviewMvPredMode() ) ? 1 : 0;
    474474  #elif HHI_MPI
     
    582582    pcSlice       ->setLambda              ( m_pdRdPicLambda[uiQpIdx] );
    583583#endif
    584 #if HHI_INTER_VIEW_MOTION_PRED
     584#if H3D_IVMP
    585585    m_pcRdCost    ->setLambdaMVReg         ( m_pdRdPicLambda[uiQpIdx] * m_pcCfg->getMultiviewMvRegLambdaScale() );
    586586#endif
     
    638638  pcSlice       ->setLambda              ( m_pdRdPicLambda[uiQpIdxBest] );
    639639#endif
    640 #if HHI_INTER_VIEW_MOTION_PRED
     640#if H3D_IVMP
    641641  m_pcRdCost    ->setLambdaMVReg         ( m_pdRdPicLambda[uiQpIdxBest] * m_pcCfg->getMultiviewMvRegLambdaScale() );
    642642#endif
  • branches/HTM-5.1-dev0/source/Lib/TLibEncoder/TEncTop.cpp

    r280 r292  
    409409  pcPicCurr->setScaleOffset( m_aaiCodedScale, m_aaiCodedOffset );
    410410
    411 #if HHI_INTER_VIEW_MOTION_PRED
     411#if H3D_IVMP
    412412  if( m_uiMultiviewMvRegMode )
    413413  {
     
    486486
    487487
    488 #if HHI_INTERVIEW_SKIP || HHI_INTER_VIEW_MOTION_PRED || HHI_INTER_VIEW_RESIDUAL_PRED
     488#if HHI_INTERVIEW_SKIP || H3D_IVMP || HHI_INTER_VIEW_RESIDUAL_PRED
    489489Void
    490490TEncTop::deleteExtraPicBuffers( Int iPoc )
     
    504504  if ( pcPic )
    505505  {
    506 #if HHI_INTER_VIEW_MOTION_PRED
     506#if H3D_IVMP
    507507    pcPic->removeOrgDepthMapBuffer();
    508508#endif
     
    594594  m_iNumPicRcvd++;
    595595 
    596 #if HHI_INTER_VIEW_MOTION_PRED
     596#if H3D_IVMP
    597597  if( m_uiMultiviewMvRegMode )
    598598  {
     
    801801    {
    802802#if DEPTH_MAP_GENERATION
    803 #if HHI_INTER_VIEW_MOTION_PRED
     803#if H3D_IVMP
    804804      m_cSPS.setPredDepthMapGeneration( m_viewId, false, m_uiPredDepthMapGeneration, m_uiMultiviewMvPredMode, m_uiPdmPrecision, m_aaiPdmScaleNomDelta, m_aaiPdmOffset );
    805805#else
  • branches/HTM-5.1-dev0/source/Lib/TLibEncoder/TEncTop.h

    r56 r292  
    173173    }
    174174  }
    175 #if HHI_INTERVIEW_SKIP || HHI_INTER_VIEW_MOTION_PRED || HHI_INTER_VIEW_RESIDUAL_PRED
     175#if HHI_INTERVIEW_SKIP || H3D_IVMP || HHI_INTER_VIEW_RESIDUAL_PRED
    176176  Void      deleteExtraPicBuffers   ( Int iPoc );
    177177#endif
Note: See TracChangeset for help on using the changeset viewer.