Index: branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibCommon/TComDataCU.cpp
===================================================================
--- branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibCommon/TComDataCU.cpp	(revision 338)
+++ branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibCommon/TComDataCU.cpp	(revision 351)
@@ -241,4 +241,7 @@
   m_apSegmentDCOffset[1] = NULL;
 #endif
+#if QC_CU_NBDV_D0181
+  m_pDvInfo              = NULL;
+#endif
 }
 
@@ -287,4 +290,7 @@
 #if LGE_ILLUCOMP_B0045
     m_pbICFlag           = (Bool*  )xMalloc(Bool,   uiNumPartition);
+#endif
+#if QC_CU_NBDV_D0181
+    m_pDvInfo            = (DisInfo* )xMalloc(DisInfo,  uiNumPartition);
 #endif
     m_puhMergeIndex      = (UChar* )xMalloc(UChar,  uiNumPartition);
@@ -454,4 +460,7 @@
     if ( m_pbResPredFlag      ) { xFree(m_pbResPredFlag);       m_pbResPredFlag     = NULL; }
 #endif
+#if QC_CU_NBDV_D0181
+    if ( m_pDvInfo            ) { xFree(m_pDvInfo);             m_pDvInfo           = NULL; }
+#endif
     if ( m_puhLumaIntraDir    ) { xFree(m_puhLumaIntraDir);     m_puhLumaIntraDir   = NULL; }
     if ( m_puhChromaIntraDir  ) { xFree(m_puhChromaIntraDir);   m_puhChromaIntraDir = NULL; }
@@ -1015,5 +1024,7 @@
   memset( m_apSegmentDCOffset[1],     0, sizeof(Pel) * m_uiNumPartition);
 #endif
-
+#if QC_CU_NBDV_D0181
+  m_pDvInfo->bDV = false;
+#endif
   UChar uhWidth  = g_uiMaxCUWidth  >> uiDepth;
   UChar uhHeight = g_uiMaxCUHeight >> uiDepth;
@@ -1313,8 +1324,20 @@
   m_apSegmentDCOffset[1]    = pcCU->getSDCSegmentDCOffset(1) + uiPart;
 #endif
-}
-
+#if QC_CU_NBDV_D0181
+  m_pDvInfo                 = pcCU->getDvInfo()              + uiPart;
+#endif
+}
+#if QC_CU_NBDV_D0181
+Void TComDataCU::copyDVInfoFrom (TComDataCU* pcCU, UInt uiAbsPartIdx)
+{
+  m_pDvInfo            = pcCU->getDvInfo()                + uiAbsPartIdx;
+}
+#endif
 // Copy inter prediction info from the biggest CU
-Void TComDataCU::copyInterPredInfoFrom    ( TComDataCU* pcCU, UInt uiAbsPartIdx, RefPicList eRefPicList )
+Void TComDataCU::copyInterPredInfoFrom    ( TComDataCU* pcCU, UInt uiAbsPartIdx, RefPicList eRefPicList 
+#if QC_CU_NBDV_D0181
+  , Bool bNBDV
+#endif
+  )
 {
   m_pcPic              = pcCU->getPic();
@@ -1336,4 +1359,14 @@
   
   m_pePartSize         = pcCU->getPartitionSize ()        + uiAbsPartIdx;
+#if QC_CU_NBDV_D0181
+  if(bNBDV == true)
+  {
+    m_puhWidth           = pcCU->getWidth ()                + uiAbsPartIdx;
+    m_puhHeight          = pcCU->getHeight()                + uiAbsPartIdx;
+    m_puhDepth           = pcCU->getDepth ()                + uiAbsPartIdx;
+  }
+  else
+  {
+#endif
 #if HHI_INTERVIEW_SKIP
   m_pbRenderable         = pcCU->getRenderable()        + uiAbsPartIdx;
@@ -1369,4 +1402,7 @@
   memcpy(m_uiSliceStartCU,pcCU->m_uiSliceStartCU+uiAbsPartIdx,sizeof(UInt)*m_uiNumPartition);
   memcpy(m_uiEntropySliceStartCU,pcCU->m_uiEntropySliceStartCU+uiAbsPartIdx,sizeof(UInt)*m_uiNumPartition);
+#if QC_CU_NBDV_D0181
+  }
+#endif
 }
 
@@ -1540,4 +1576,7 @@
 #if LGE_ILLUCOMP_B0045
   memcpy( rpcCU->getICFlag()            + m_uiAbsIdxInLCU, m_pbICFlag,            iSizeInBool );
+#endif
+#if QC_CU_NBDV_D0181
+  memcpy( rpcCU->getDvInfo()            + m_uiAbsIdxInLCU, m_pDvInfo,             sizeof(* m_pDvInfo) * m_uiNumPartition );
 #endif
   memcpy( rpcCU->getMergeIndex()        + m_uiAbsIdxInLCU, m_puhMergeIndex,       iSizeInUchar );
@@ -2967,5 +3006,14 @@
 }
 #endif
-
+#if QC_CU_NBDV_D0181
+Void TComDataCU::setDvInfoSubParts( DisInfo cDvInfo, UInt uiAbsPartIdx, UInt uiDepth )
+{
+  UInt uiCurrPartNumb = m_pcPic->getNumPartInCU() >> (uiDepth << 1);
+  for (UInt ui = 0; ui < uiCurrPartNumb; ui++ )
+  {
+    m_pDvInfo[uiAbsPartIdx + ui] = cDvInfo;
+  }
+}
+#endif
 Void TComDataCU::setChromIntraDirSubParts( UInt uiDir, UInt uiAbsPartIdx, UInt uiDepth )
 {
@@ -3590,5 +3638,7 @@
 #if H3D_NBDV
   DisInfo cDisInfo;
+#if !QC_CU_NBDV_D0181
   cDisInfo.iN = 0;
+#endif
   if(!bNoPdmMerge)
   {
@@ -3596,4 +3646,12 @@
     if( !getPic()->getDepthCoded() )
 #endif
+#if QC_CU_NBDV_D0181
+    {
+      cDisInfo.iN = getDvInfo(uiAbsPartIdx).iN;
+      cDisInfo.bDV = getDvInfo(uiAbsPartIdx).bDV;
+      cDisInfo.m_acMvCand[0] = getDvInfo(uiAbsPartIdx).m_acMvCand[0];
+      cDisInfo.m_aVIdxCan[0] = getDvInfo(uiAbsPartIdx).m_aVIdxCan[0];
+    }
+#else
     getDisMvpCandNBDV(uiPUIdx, uiAbsPartIdx, &cDisInfo , true
 #if MERL_VSP_C0152
@@ -3601,4 +3659,5 @@
 #endif      
 );
+#endif
   }
 #if FCO_DVP_REFINE_C0132_C0170
@@ -3618,10 +3677,16 @@
   }
 #endif
+#if !QC_CU_NBDV_D0181
   if(cDisInfo.iN==0)
-  {
+#else
+  if(cDisInfo.bDV == false)
+#endif
+  {
+#if !QC_CU_NBDV_D0181
     cDisInfo.iN = 1;
     cDisInfo.m_acMvCand[0].setHor(0);
     cDisInfo.m_acMvCand[0].setVer(0);
     cDisInfo.m_aVIdxCan[0] = 0;
+#endif
 #if H3D_IVRP
     bDVAvail = false;
@@ -4992,5 +5057,7 @@
 
           TComPic* picDepth = getSlice()->getRefPicBaseDepth();
-
+#if QC_CU_NBDV_D0181 && MERL_VSP_C0152
+          pNbDvInfo->m_acMvCandNoRef[pNbDvInfo->iN] = cMvPred;
+#endif
           if (picDepth && bDepthRefine)
             estimateDVFromDM(uiPartIdx, picDepth, uiPartAddr, &cMvPred, true);
@@ -5014,4 +5081,7 @@
       { 
         TComPic* picDepth = pcTmpCU->getSlice()->getRefPicBaseDepth();
+#if QC_CU_NBDV_D0181 && MERL_VSP_C0152
+        pNbDvInfo->m_acMvCandNoRef[pNbDvInfo->iN] = cMvPred;
+#endif
         if (picDepth && bDepthRefine)
           estimateDVFromDM(uiPartIdx, picDepth, uiPartAddr, &cMvPred);
@@ -5075,6 +5145,9 @@
 }
 
-
+#if QC_CU_NBDV_D0181
+Bool TComDataCU::getDisMvpCandNBDV( UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDInfo , Bool bParMerge
+#else
 Void TComDataCU::getDisMvpCandNBDV( UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDInfo , Bool bParMerge
+#endif
 #if MERL_VSP_C0152
                                 , Bool bDepthRefine
@@ -5101,4 +5174,7 @@
   // Get Positions  
   PartSize eCUMode    = getPartitionSize( uiPartAddr );    
+#if QC_CU_NBDV_D0181
+  assert(eCUMode == SIZE_2Nx2N);
+#endif
   UInt uiPartIdxLT, uiPartIdxRT, uiPartIdxLB;  
 
@@ -5169,4 +5245,7 @@
             clipMv(cColMv);
             TComPic* picDepth = getSlice()->getRefPicBaseDepth();
+#if QC_CU_NBDV_D0181 && MERL_VSP_C0152
+            pDInfo->m_acMvCandNoRef[pDInfo->iN] = cColMv;
+#endif
             if (picDepth && bDepthRefine)
               estimateDVFromDM(uiPartIdx, picDepth, uiPartAddr, &cColMv, true);
@@ -5174,5 +5253,9 @@
             pDInfo->m_acMvCand[ pDInfo->iN] = cColMv;
             pDInfo->m_aVIdxCan[ pDInfo->iN++] = iTargetViewIdx;
+#if QC_CU_NBDV_D0181
+            return true;
+#else
             return ;
+#endif
           }
         } // Loop positions
@@ -5203,6 +5286,9 @@
   bCheckMcpDv = true; 
   if ( xCheckSpatialNBDV( pcTmpCU, uiIdx, uiPartIdx, uiPartAddr, pDInfo, bCheckMcpDv, &cMvpDvInfo, DVFROM_LEFT, bDepthRefine ) )
+#if !QC_CU_NBDV_D0181
     return;
-
+#else
+    return true;
+#endif
 
   //// ******* Get disparity from above block ******* /////
@@ -5225,5 +5311,9 @@
     bCheckMcpDv = ( ( getAddr() - pcTmpCU->getAddr() ) == 0);
     if ( xCheckSpatialNBDV( pcTmpCU, uiIdx, uiPartIdx, uiPartAddr, pDInfo, bCheckMcpDv, &cMvpDvInfo, DVFROM_ABOVE, bDepthRefine ) )
+#if !QC_CU_NBDV_D0181
       return;
+#else
+      return true;
+#endif
   }
 
@@ -5243,5 +5333,9 @@
     bCheckMcpDv = ( ( getAddr() - pcTmpCU->getAddr() ) == 0);
     if ( xCheckSpatialNBDV( pcTmpCU, uiIdx, uiPartIdx, uiPartAddr, pDInfo, bCheckMcpDv, &cMvpDvInfo, DVFROM_ABOVERIGHT, bDepthRefine ) )
+#if !QC_CU_NBDV_D0181
       return;
+#else
+      return true;
+#endif
   }
 
@@ -5262,5 +5356,9 @@
     bCheckMcpDv = true; 
     if ( xCheckSpatialNBDV( pcTmpCU, uiIdx, uiPartIdx, uiPartAddr, pDInfo, bCheckMcpDv, &cMvpDvInfo, DVFROM_LEFTBELOW, bDepthRefine ) )
+#if !QC_CU_NBDV_D0181
       return;
+#else
+      return true;
+#endif
   }
 
@@ -5282,5 +5380,9 @@
     bCheckMcpDv = (( getAddr() - pcTmpCU->getAddr() ) <= 1); 
     if ( xCheckSpatialNBDV( pcTmpCU, uiIdx, uiPartIdx, uiPartAddr, pDInfo, bCheckMcpDv, &cMvpDvInfo, DVFROM_ABOVELEFT, bDepthRefine ) )
+#if !QC_CU_NBDV_D0181
       return;
+#else
+      return true;
+#endif
   }
 
@@ -5298,4 +5400,7 @@
 
           TComPic* picDepth = getSlice()->getRefPicBaseDepth();
+#if QC_CU_NBDV_D0181 && MERL_VSP_C0152
+          pDInfo->m_acMvCandNoRef[pDInfo->iN] = cDispVec;
+#endif
           if (picDepth && bDepthRefine)
             estimateDVFromDM(uiPartIdx, picDepth, uiPartAddr, &cDispVec, true);
@@ -5303,10 +5408,18 @@
           pDInfo->m_acMvCand[ pDInfo->iN]   = cDispVec;
           pDInfo->m_aVIdxCan[ pDInfo->iN++] = 0;
+#if !QC_CU_NBDV_D0181
           return;
+#else
+          return true;
+#endif
         }
       }
     }
   }
+#if QC_CU_NBDV_D0181
+  return false;
+#else
   return;
+#endif
 }
 #endif
@@ -5350,4 +5463,10 @@
       // Extension part
       DisInfo cDisInfo;
+#if QC_CU_NBDV_D0181
+      cDisInfo.iN = this->getDvInfo(0).iN;
+      cDisInfo.m_acMvCand[0]=this->getDvInfo(0).m_acMvCand[0];
+      cDisInfo.m_aVIdxCan[0] = this->getDvInfo(0).m_aVIdxCan[0];
+      cDisInfo.bDV = this->getDvInfo(0).bDV;
+#else
       cDisInfo.iN = 0;
 #if FCO_DVP_REFINE_C0132_C0170
@@ -5382,4 +5501,5 @@
         cDisInfo.m_aVIdxCan[0] = 0;
       }
+#endif
       Int paiPdmRefIdx[4] = {-1, -1, -1, -1};
       Int iPdmDir[4]      = {-1, -1, -1, -1};
@@ -7162,5 +7282,9 @@
 #if H3D_NBDV
   DisInfo cDisInfo;
+#if !QC_CU_NBDV_D0181
   cDisInfo.iN = 0;
+#else
+  cDisInfo.bDV = false;
+#endif
   PartSize m_peSaved =  getPartitionSize( 0 );
   m_pePartSize[0] =  SIZE_2Nx2N;
@@ -7182,8 +7306,19 @@
   else
 #endif
-
+#if !QC_CU_NBDV_D0181
   getDisMvpCandNBDV( 0, 0,  &cDisInfo, false );  
 
   if( cDisInfo.iN == 0)
+#else
+  cDisInfo.bDV = getDvInfo(0).bDV;
+#if MERL_VSP_C0152
+  cDisInfo.m_acMvCand[0] = getDvInfo(0).m_acMvCandNoRef[0];
+#else
+  cDisInfo.m_acMvCand[0] = getDvInfo(0).m_acMvCand[0];
+#endif
+  cDisInfo.m_aVIdxCan[0] = 0;
+  cDisInfo.iN = getDvInfo(0).iN;
+  if( cDisInfo.bDV == false)
+#endif
   {
     m_pePartSize[0] = m_peSaved;
Index: branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibCommon/TComDataCU.h
===================================================================
--- branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibCommon/TComDataCU.h	(revision 338)
+++ branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibCommon/TComDataCU.h	(revision 351)
@@ -268,5 +268,7 @@
   Pel*          m_apSegmentDCOffset[2];
 #endif
-
+#if QC_CU_NBDV_D0181
+  DisInfo*      m_pDvInfo;
+#endif
 protected:
   
@@ -326,7 +328,13 @@
   Void          initSubCU             ( TComDataCU* pcCU, UInt uiPartUnitIdx, UInt uiDepth, Int qp );
   Void          setOutsideCUPart      ( UInt uiAbsPartIdx, UInt uiDepth );
-
+#if QC_CU_NBDV_D0181
+  Void          copyDVInfoFrom (TComDataCU* pcCU, UInt uiAbsPartIdx);
+#endif
   Void          copySubCU             ( TComDataCU* pcCU, UInt uiPartUnitIdx, UInt uiDepth );
-  Void          copyInterPredInfoFrom ( TComDataCU* pcCU, UInt uiAbsPartIdx, RefPicList eRefPicList );
+  Void          copyInterPredInfoFrom ( TComDataCU* pcCU, UInt uiAbsPartIdx, RefPicList eRefPicList 
+#if QC_CU_NBDV_D0181
+  , Bool bNBDV = false
+#endif
+  );
   Void          copyPartFrom          ( TComDataCU* pcCU, UInt uiPartUnitIdx, UInt uiDepth );
   
@@ -474,4 +482,9 @@
 #endif
 #endif
+#if QC_CU_NBDV_D0181
+  DisInfo*      getDvInfo             ()                        { return m_pDvInfo;                }
+  DisInfo       getDvInfo             (UInt uiIdx)              { return m_pDvInfo[uiIdx];         }
+  Void          setDvInfoSubParts( DisInfo cDvInfo, UInt uiAbsPartIdx, UInt uiDepth );
+#endif
 
 #if AMP_MRG
@@ -537,5 +550,9 @@
   Bool          getUnifiedMvPredCan       ( UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* iPdm, Bool bMerge );
   Void          getDisMvpCand        ( UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDInfo );
+#if QC_CU_NBDV_D0181
+  Bool          getDisMvpCandNBDV( UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDInfo , Bool bParMerg = false
+#else
   Void          getDisMvpCandNBDV( UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDInfo , Bool bParMerg = false
+#endif
 #if MERL_VSP_C0152
                               , Bool bDepthRefine = false
Index: branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibCommon/TComMotionInfo.h
===================================================================
--- branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibCommon/TComMotionInfo.h	(revision 338)
+++ branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibCommon/TComMotionInfo.h	(revision 351)
@@ -64,4 +64,10 @@
   TComMv m_acMvCand[ DIS_CANS ];            ///< array of motion vector predictor candidates
   Int    m_aVIdxCan[ DIS_CANS ];            ///< array of motion vector predictor candidates
+#if QC_CU_NBDV_D0181 
+  Bool bDV;
+#if MERL_VSP_C0152
+  TComMv m_acMvCandNoRef[ DIS_CANS ];
+#endif
+#endif
   Int    iN;                                ///< number of motion vector predictor candidates
 } DisInfo;
Index: branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibCommon/TComResidualGenerator.cpp
===================================================================
--- branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibCommon/TComResidualGenerator.cpp	(revision 338)
+++ branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibCommon/TComResidualGenerator.cpp	(revision 351)
@@ -345,5 +345,7 @@
   UInt        uiCUAddr  = pcCU->getAddr();
   pcSubCU->copySubCU( pcCU, uiAbsPartIdx, uiDepth );
-
+#if QC_CU_NBDV_D0181
+  pcSubCU->copyDVInfoFrom( pcCU, uiAbsPartIdx);
+#endif
   //--- set residual ---
   switch( pcSubCU->getPredictionMode( 0 ) )
Index: branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibCommon/TypeDef.h
===================================================================
--- branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibCommon/TypeDef.h	(revision 338)
+++ branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibCommon/TypeDef.h	(revision 351)
@@ -111,5 +111,5 @@
                                               // MTK_SIMPLIFY_DVTC_C0135           
                                               // FIX_CHROMA_RESIDUAL_C0129         
-
+#define QC_CU_NBDV_D0181                  1
 ///// ***** MOTION PARAMETER INHERITANCE  *********
 #define MTK_DEPTH_MERGE_TEXTURE_CANDIDATE_C0137   1   // JCT3V-C0137
Index: branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecCu.cpp
===================================================================
--- branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecCu.cpp	(revision 338)
+++ branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecCu.cpp	(revision 351)
@@ -312,5 +312,39 @@
     pcCU->setQPSubParts( pcCU->getRefQP(uiAbsPartIdx), uiAbsPartIdx, uiDepth ); // set QP to default QP
   }
-
+#if QC_CU_NBDV_D0181
+      DisInfo DvInfo; 
+      DvInfo.bDV = false;
+      if(!pcCU->getSlice()->isIntra())
+      {
+        if(( pcCU->getSlice()->getSPS()->getMultiviewMvPredMode() || pcCU->getSlice()->getSPS()->getMultiviewResPredMode()) && pcCU->getSlice()->getViewId())
+        {  
+          m_ppcCU[uiDepth]->copyInterPredInfoFrom( pcCU, uiAbsPartIdx, REF_PIC_LIST_0, true );
+          m_ppcCU[uiDepth]->copyDVInfoFrom( pcCU, uiAbsPartIdx);
+          PartSize ePartTemp = m_ppcCU[uiDepth]->getPartitionSize(0);
+          UChar cWidTemp     = m_ppcCU[uiDepth]->getWidth(0);
+          UChar cHeightTemp  = m_ppcCU[uiDepth]->getHeight(0);
+          m_ppcCU[uiDepth]->setWidth  ( 0, pcCU->getSlice()->getSPS()->getMaxCUWidth ()/(1<<uiDepth)  );
+          m_ppcCU[uiDepth]->setHeight ( 0, pcCU->getSlice()->getSPS()->getMaxCUHeight()/(1<<uiDepth)  );
+          m_ppcCU[uiDepth]->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth );     
+  #if MERL_VSP_C0152
+          DvInfo.bDV = m_ppcCU[uiDepth]->getDisMvpCandNBDV(0, 0, &DvInfo, false, true);
+  #else
+          DvInfo.bDV = m_ppcCU[uiDepth]->getDisMvpCandNBDV(0, 0, &DvInfo, false);
+  #endif
+          pcCU->setDvInfoSubParts(DvInfo, uiAbsPartIdx, uiDepth);
+          m_ppcCU[uiDepth]->setPartSizeSubParts( ePartTemp, 0, uiDepth );
+          m_ppcCU[uiDepth]->setWidth  ( 0, cWidTemp );
+          m_ppcCU[uiDepth]->setHeight ( 0, cHeightTemp );
+        }
+        if(DvInfo.bDV==false)
+        {
+          DvInfo.iN=1;
+          DvInfo.m_acMvCand[0].setHor(0);
+          DvInfo.m_acMvCand[0].setVer(0);
+          DvInfo.m_aVIdxCan[0] = 0;
+          pcCU->setDvInfoSubParts(DvInfo, uiAbsPartIdx, uiDepth);
+        }
+      }
+#endif
   // decode CU mode and the partition size
   if( !pcCU->getSlice()->isIntra() && pcCU->getNumSucIPCM() == 0 )
Index: branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibEncoder/TEncCu.cpp
===================================================================
--- branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibEncoder/TEncCu.cpp	(revision 338)
+++ branches/HTM-6.2-dev2-Qualcomm/source/Lib/TLibEncoder/TEncCu.cpp	(revision 351)
@@ -591,5 +591,33 @@
       }
 #endif
-
+#if QC_CU_NBDV_D0181
+      DisInfo DvInfo; 
+      DvInfo.bDV = false;
+      if( rpcTempCU->getSlice()->getSliceType() != I_SLICE )
+      {
+        if(( rpcTempCU->getSlice()->getSPS()->getMultiviewMvPredMode() || rpcTempCU->getSlice()->getSPS()->getMultiviewResPredMode()) && rpcTempCU->getSlice()->getViewId())
+        {  
+          PartSize ePartTemp = rpcTempCU->getPartitionSize(0);
+          rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth );     
+#if MERL_VSP_C0152
+          DvInfo.bDV = rpcTempCU->getDisMvpCandNBDV(0, 0, &DvInfo, false, true);
+#else
+          DvInfo.bDV = rpcTempCU->getDisMvpCandNBDV(0, 0, &DvInfo, false);
+#endif
+          rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
+          rpcBestCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
+          rpcTempCU->setPartSizeSubParts( ePartTemp, 0, uiDepth );
+        }
+        if(DvInfo.bDV==false)
+        {
+          DvInfo.iN=1;
+          DvInfo.m_acMvCand[0].setHor(0);
+          DvInfo.m_acMvCand[0].setVer(0);
+          DvInfo.m_aVIdxCan[0] = 0;
+          rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
+          rpcBestCU->setDvInfoSubParts(DvInfo, 0, uiDepth);
+         }
+       }
+#endif
       // do inter modes, SKIP and 2Nx2N
       if( rpcBestCU->getSlice()->getSliceType() != I_SLICE )
