Index: branches/HTM-12.2-dev0/source/Lib/TLibEncoder/TEncCavlc.cpp
===================================================================
--- branches/HTM-12.2-dev0/source/Lib/TLibEncoder/TEncCavlc.cpp	(revision 1117)
+++ branches/HTM-12.2-dev0/source/Lib/TLibEncoder/TEncCavlc.cpp	(revision 1118)
@@ -1679,4 +1679,7 @@
         WRITE_FLAG( pcVPS->getInterSDCFlag( i ) ? 1 : 0, "depth_inter_SDC_flag" );
 #endif
+#if MTK_SINGLE_DEPTH_VPS_FLAG_J0060
+        WRITE_FLAG( pcVPS->getSingleDepthModeFlag( i ) ? 1 : 0, "single_depth_mode_flag" );
+#endif
       }
     }  
@@ -2135,4 +2138,5 @@
     }
 #endif
+#if !MTK_SINGLE_DEPTH_VPS_FLAG_J0060
 #if H_3D_SINGLE_DEPTH
     if(pcSlice->getIsDepth())
@@ -2140,4 +2144,5 @@
       WRITE_FLAG( pcSlice->getApplySingleDepthMode() ? 1 : 0, "slice_enable_single_depth_mode" );
     }
+#endif
 #endif
 #if H_3D_IV_MERGE
@@ -2161,7 +2166,11 @@
       {
         Bool ivMvPredFlag = pcSlice->getVPS()->getIvMvPredFlag( pcSlice->getLayerIdInVps() ) ;
+#if MTK_MRG_LIST_SIZE_CLEANUP_J0059
+        Bool vspFlag = pcSlice->getVPS()->getViewSynthesisPredFlag( pcSlice->getLayerIdInVps() ) ;
+        WRITE_UVLC( ( ivMvPredFlag || vspFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS ) - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand");
+#else
         WRITE_UVLC( ( ivMvPredFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS ) - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand");
-      }
-#endif
+#endif
+      }
 #else
       WRITE_UVLC(MRG_MAX_NUM_CANDS - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand");
Index: branches/HTM-12.2-dev0/source/Lib/TLibEncoder/TEncCu.cpp
===================================================================
--- branches/HTM-12.2-dev0/source/Lib/TLibEncoder/TEncCu.cpp	(revision 1117)
+++ branches/HTM-12.2-dev0/source/Lib/TLibEncoder/TEncCu.cpp	(revision 1118)
@@ -739,5 +739,9 @@
 #if H_3D_SINGLE_DEPTH
     rpcTempCU->initEstData( uiDepth, iMinQP, isAddLowestQP  );
+#if MTK_SINGLE_DEPTH_VPS_FLAG_J0060
+    if(rpcBestCU->getSlice()->getVPS()->getSingleDepthModeFlag(rpcBestCU->getSlice()->getLayerIdInVps()))
+#else
     if(rpcBestCU->getSlice()->getApplySingleDepthMode())
+#endif
     {
       xCheckRDCostSingleDepth( rpcBestCU, rpcTempCU, SIZE_2Nx2N );
Index: branches/HTM-12.2-dev0/source/Lib/TLibEncoder/TEncEntropy.cpp
===================================================================
--- branches/HTM-12.2-dev0/source/Lib/TLibEncoder/TEncEntropy.cpp	(revision 1117)
+++ branches/HTM-12.2-dev0/source/Lib/TLibEncoder/TEncEntropy.cpp	(revision 1118)
@@ -134,9 +134,15 @@
     return;
   }
+#if MTK_SINGLE_DEPTH_VPS_FLAG_J0060
+  if(!pcCU->getSlice()->getVPS()->getSingleDepthModeFlag(pcCU->getSlice()->getLayerIdInVps()))
+  {
+     return;
+  }
+#else
   if(!pcCU->getSlice()->getApplySingleDepthMode())
   {
      return;
   }
-  
+#endif
   if( bRD )
   {
Index: branches/HTM-12.2-dev0/source/Lib/TLibEncoder/TEncGOP.cpp
===================================================================
--- branches/HTM-12.2-dev0/source/Lib/TLibEncoder/TEncGOP.cpp	(revision 1117)
+++ branches/HTM-12.2-dev0/source/Lib/TLibEncoder/TEncGOP.cpp	(revision 1118)
@@ -957,4 +957,5 @@
     pcSlice->setRefPicList ( rcListPic );
 #endif
+#if !MTK_SINGLE_DEPTH_VPS_FLAG_J0060
 #if H_3D_SINGLE_DEPTH
 #if HHI_TOOL_PARAMETERS_I2_J0107
@@ -972,5 +973,6 @@
     pcSlice->setApplySingleDepthMode(enableSingleDepthMode);
 #endif
-#endif    
+#endif   
+#endif 
 #if SEC_ARP_VIEW_REF_CHECK_J0037 || SEC_DBBP_VIEW_REF_CHECK_J0037
     pcSlice->setDefaultRefView();
Index: branches/HTM-12.2-dev0/source/Lib/TLibEncoder/TEncSearch.cpp
===================================================================
--- branches/HTM-12.2-dev0/source/Lib/TLibEncoder/TEncSearch.cpp	(revision 1117)
+++ branches/HTM-12.2-dev0/source/Lib/TLibEncoder/TEncSearch.cpp	(revision 1118)
@@ -2881,7 +2881,15 @@
   Int index=0;
   Pel testDepth;
+#if SINGLE_DEPTH_SIMP_J0115
+  Pel DepthNeighbours[2];
+#else
   Pel DepthNeighbours[5];
+#endif
   //construction of depth candidates
+#if SINGLE_DEPTH_SIMP_J0115
+  for( Int i = 0; (i < 2)  && (index<SINGLE_DEPTH_MODE_CAND_LIST_SIZE) ; i++ )
+#else
   for( Int i = 0; (i < 5)  && (index<SINGLE_DEPTH_MODE_CAND_LIST_SIZE) ; i++ )
+#endif
   {
     if(!pcCU->getNeighDepth (0, 0, &testDepth, i))
@@ -2891,4 +2899,5 @@
     DepthNeighbours[index]=testDepth;
     index++;
+#if !SINGLE_DEPTH_SIMP_J0115
     for(Int j=0;j<index-1;j++)
     {
@@ -2899,4 +2908,5 @@
       }
     }
+#endif
   }
 
Index: branches/HTM-12.2-dev0/source/Lib/TLibEncoder/TEncSlice.cpp
===================================================================
--- branches/HTM-12.2-dev0/source/Lib/TLibEncoder/TEncSlice.cpp	(revision 1117)
+++ branches/HTM-12.2-dev0/source/Lib/TLibEncoder/TEncSlice.cpp	(revision 1118)
@@ -622,7 +622,10 @@
   else
   {
+#if MTK_MRG_LIST_SIZE_CLEANUP_J0059
+    rpcSlice->setMaxNumMergeCand      ( m_pcCfg->getMaxNumMergeCand()   + ( rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() )  || rpcSlice->getVPS()->getViewSynthesisPredFlag( rpcSlice->getLayerIdInVps() ) ? 1 : 0 ) );
+#else
     rpcSlice->setMaxNumMergeCand      ( m_pcCfg->getMaxNumMergeCand()   + ( rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() ) ? 1 : 0 ) );
-  }
-#endif
+#endif
+  }
 #else
   rpcSlice->setMaxNumMergeCand        ( m_pcCfg->getMaxNumMergeCand()        );
