Index: branches/HTM-11.2-dev2-MediaTek/source/App/TAppEncoder/TAppEncCfg.cpp
===================================================================
--- branches/HTM-11.2-dev2-MediaTek/source/App/TAppEncoder/TAppEncCfg.cpp	(revision 1006)
+++ branches/HTM-11.2-dev2-MediaTek/source/App/TAppEncoder/TAppEncCfg.cpp	(revision 1007)
@@ -761,7 +761,12 @@
 
 #endif //HHI_VSO
+#if MTK_I0099_VPS_EX2
+  ("LimQtPredFlag",                   m_bLimQtPredFlag          , true          , "Use Predictive Coding with QTL" )
+#endif
+#if !MTK_I0099_VPS_EX2
 #if H_3D_QTLPC
   ("QTL",                             m_bUseQTL                 , true          , "Use depth Quadtree Limitation" )
   ("PC",                              m_bUsePC                  , true          , "Use Predictive Coding with QTL" )
+#endif
 #endif
 #if H_3D_IV_MERGE
@@ -2491,7 +2496,12 @@
   printf("WVSO:%d ", m_bUseWVSO );  
 #endif
+#if MTK_I0099_VPS_EX2
+  printf("LimQtPredFlag:%d", m_bLimQtPredFlag ? 1 : 0);
+#endif
+#if !MTK_I0099_VPS_EX2
 #if H_3D_QTLPC
   printf("QTL:%d ", m_bUseQTL);
   printf("PC:%d " , m_bUsePC );
+#endif
 #endif
 #if H_3D_IV_MERGE
Index: branches/HTM-11.2-dev2-MediaTek/source/App/TAppEncoder/TAppEncCfg.h
===================================================================
--- branches/HTM-11.2-dev2-MediaTek/source/App/TAppEncoder/TAppEncCfg.h	(revision 1006)
+++ branches/HTM-11.2-dev2-MediaTek/source/App/TAppEncoder/TAppEncCfg.h	(revision 1007)
@@ -128,7 +128,10 @@
   vector<Bool>           m_ivMvPredFlag;                      ///< Interview motion vector prediction 
 #if H_3D_SPIVMP
-  Int                    m_iSubPULog2Size;                    
-  Int                    m_iSubPUMPILog2Size;                    
-#endif
+  Int                    m_iSubPULog2Size;   
+  Int                    m_iSubPUMPILog2Size;   
+#endif
+#endif
+#if MTK_I0099_VPS_EX2
+  Bool                   m_bLimQtPredFlag;
 #endif
 #if H_3D_ARP                                                  /// < flag and number of weighting factors in ARP
@@ -473,7 +476,9 @@
   Bool      m_useDLT;                                        ///< flag for using DLT
 #endif
+#if !MTK_I0099_VPS_EX2
 #if H_3D_QTLPC
   Bool      m_bUseQTL;                                        ///< flag for using depth QuadTree Limitation
   Bool      m_bUsePC;                                         ///< flag for using Predictive Coding with QTL
+#endif
 #endif
 #if H_3D_INTER_SDC
Index: branches/HTM-11.2-dev2-MediaTek/source/App/TAppEncoder/TAppEncTop.cpp
===================================================================
--- branches/HTM-11.2-dev2-MediaTek/source/App/TAppEncoder/TAppEncTop.cpp	(revision 1006)
+++ branches/HTM-11.2-dev2-MediaTek/source/App/TAppEncoder/TAppEncTop.cpp	(revision 1007)
@@ -202,7 +202,9 @@
     m_cTEncTop.setUseDLT                       ( isDepth ? m_useDLT               : false );
 #endif
+#if !MTK_I0099_VPS_EX2
 #if H_3D_QTLPC
     m_cTEncTop.setUseQTL                       ( isDepth ? m_bUseQTL               : false );
     m_cTEncTop.setUsePC                        ( isDepth ? m_bUsePC                : false );
+#endif
 #endif
     //====== Depth Inter SDC =========
@@ -1815,4 +1817,7 @@
     {
       vps.setSubPULog2Size         ( layer, (layer != 1) ? 6: 0 ); 
+#if MTK_I0099_VPS_EX2
+      vps.setSubPUMPILog2Size      ( layer, (!isLayerZero) ? m_iSubPUMPILog2Size: 0 ); 
+#endif
     }
     else
@@ -1843,4 +1848,7 @@
     }
 #endif
+#if MTK_I0099_VPS_EX2
+    vps.setLimQtPredFlag         ( layer, isDepth && m_bLimQtPredFlag ); 
+#endif
 #if H_3D_NBDV_REF
     vps.setDepthRefinementFlag  ( layer, !isLayerZero && !isDepth && m_depthRefinementFlag );         
@@ -1859,6 +1867,8 @@
 #endif
   }  
+#if !MTK_I0099_VPS_EX2
 #if H_3D_SPIVMP
   vps.setSubPUMPILog2Size( m_iSubPUMPILog2Size );
+#endif
 #endif
 #if H_3D
Index: branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibCommon/TComDataCU.cpp
===================================================================
--- branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibCommon/TComDataCU.cpp	(revision 1006)
+++ branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibCommon/TComDataCU.cpp	(revision 1007)
@@ -6650,5 +6650,9 @@
   if( getSlice()->getIsDepth() )
   {
+#if MTK_I0099_VPS_EX2
+    iSubPUSize = 1<<getSlice()->getVPS()->getSubPUMPILog2Size(getSlice()->getLayerId());
+#else
     iSubPUSize = 1 << getSlice()->getVPS()->getSubPUMPILog2Size();
+#endif
   }
 
Index: branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibCommon/TComSlice.cpp
===================================================================
--- branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibCommon/TComSlice.cpp	(revision 1006)
+++ branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibCommon/TComSlice.cpp	(revision 1007)
@@ -1974,4 +1974,7 @@
 #endif
 #endif
+#if MTK_I0099_VPS_EX2
+    m_bLimQtPredFlag       [ i ] = false;
+#endif
 #if H_3D_VSP
     m_viewSynthesisPredFlag[ i ] = false;
@@ -2502,7 +2505,9 @@
 , m_pcmLog2MaxSize            (  5)
 , m_uiPCMLog2MinSize          (  7)
+#if !MTK_I0099_VPS_EX2
 #if H_3D_QTLPC
 , m_bUseQTL                   (false)
 , m_bUsePC                    (false)
+#endif
 #endif
 , m_bitDepthY                 (  8)
Index: branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibCommon/TComSlice.h
===================================================================
--- branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibCommon/TComSlice.h	(revision 1006)
+++ branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibCommon/TComSlice.h	(revision 1007)
@@ -800,6 +800,13 @@
 #if H_3D_SPIVMP
   Int         m_iSubPULog2Size           [MAX_NUM_LAYERS   ];
+#if MTK_I0099_VPS_EX2
+  Int         m_iSubPUMPILog2Size        [MAX_NUM_LAYERS   ];
+#else
   Int         m_iSubPUMPILog2Size;
 #endif
+#endif
+#endif
+#if MTK_I0099_VPS_EX2
+  Bool        m_bLimQtPredFlag           [ MAX_NUM_LAYERS ];
 #endif
 #if H_3D_VSP
@@ -1130,7 +1137,16 @@
   Int     getSubPULog2Size(Int layerIdInVps)           { return m_iSubPULog2Size[layerIdInVps]; }
   Void    setSubPULog2Size(Int layerIdInVps, Int u)    { m_iSubPULog2Size[layerIdInVps] = u;}
+#if MTK_I0099_VPS_EX2
+  Int     getSubPUMPILog2Size(Int layerIdInVps)           { return m_iSubPUMPILog2Size[layerIdInVps]; }
+  Void    setSubPUMPILog2Size(Int layerIdInVps, Int u)    { m_iSubPUMPILog2Size[layerIdInVps] = u;}
+#else
   Int     getSubPUMPILog2Size( )           { return m_iSubPUMPILog2Size; }
   Void    setSubPUMPILog2Size( Int u )     { m_iSubPUMPILog2Size = u;    }
 #endif
+#endif
+#endif
+#if MTK_I0099_VPS_EX2
+  Void    setLimQtPredFlag    ( Int layerIdInVps, Bool val )  { m_bLimQtPredFlag[ layerIdInVps ] = val; }
+  Bool    getLimQtPredFlag    ( Int layerIdInVps ) { return m_bLimQtPredFlag[layerIdInVps];}
 #endif
 #if H_3D_VSP
@@ -1466,7 +1482,9 @@
   Bool        m_useAMP;
 
+#if !MTK_I0099_VPS_EX2
 #if H_3D_QTLPC
   Bool        m_bUseQTL;
   Bool        m_bUsePC;
+#endif
 #endif
   // Parameter
@@ -1732,4 +1750,5 @@
 
 #endif
+#if !MTK_I0099_VPS_EX2
 #if H_3D_QTLPC
   Void setUseQTL( Bool b ) { m_bUseQTL = b;    }
@@ -1737,4 +1756,5 @@
   Void setUsePC ( Bool b ) { m_bUsePC  = b;    }
   Bool getUsePC ()         { return m_bUsePC;  }
+#endif
 #endif
 #if H_MV
Index: branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibCommon/TypeDef.h
===================================================================
--- branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibCommon/TypeDef.h	(revision 1006)
+++ branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibCommon/TypeDef.h	(revision 1007)
@@ -249,4 +249,7 @@
                                               // SCU_HS_FAST_DEPTH_INTRA_E0238_HHIFIX
 #endif
+
+#define MTK_I0099_VPS_EX2                 1  ///< JCT3V-I0099, sub-PU size signaling and lim_qt_pred_flag in VPS extension 2
+
 
 // Rate Control
Index: branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibDecoder/TDecCAVLC.cpp
===================================================================
--- branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibDecoder/TDecCAVLC.cpp	(revision 1006)
+++ branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibDecoder/TDecCAVLC.cpp	(revision 1007)
@@ -1051,4 +1051,5 @@
 Void TDecCavlc::parseSPSExtension2( TComSPS* pcSPS, Int viewIndex, Bool depthFlag )
 { 
+#if !MTK_I0099_VPS_EX2
   UInt uiCode; 
 #if H_3D_QTLPC
@@ -1061,4 +1062,5 @@
     pcSPS->setUsePC( uiCode );
   }
+#endif
 #endif
 }
@@ -1767,8 +1769,13 @@
     if ( i != 0 )
     {
+#if MTK_I0099_VPS_EX2
+      READ_FLAG( uiCode, "iv_mv_pred_flag[i]");          pcVPS->setIvMvPredFlag         ( i, uiCode == 1 ? true : false );
+#endif
       if( !( pcVPS->getDepthId( i ) == 1 ) )
       {
 #if H_3D_IV_MERGE
+#if !MTK_I0099_VPS_EX2
         READ_FLAG( uiCode, "iv_mv_pred_flag[i]");          pcVPS->setIvMvPredFlag         ( i, uiCode == 1 ? true : false );
+#endif
         if( !pcVPS->getNumDirectRefLayers(i) )
         {
@@ -1802,4 +1809,5 @@
       else
       {
+#if !MTK_I0099_VPS_EX2
 #if H_3D_IV_MERGE
         if(i!=1)
@@ -1818,9 +1826,15 @@
         }
 #endif
+#endif
 #if H_3D_IV_MERGE
         READ_FLAG( uiCode, "mpi_flag[i]" );             pcVPS->setMPIFlag( i, uiCode == 1 ? true : false );
 #endif
+#if MTK_I0099_VPS_EX2
+        READ_UVLC (uiCode, "log2_mpi_sub_PU_size_minus3[i]");     pcVPS->setSubPUMPILog2Size(i, uiCode+3);
+#endif
         READ_FLAG( uiCode, "vps_depth_modes_flag[i]" );             pcVPS->setVpsDepthModesFlag( i, uiCode == 1 ? true : false );
-        //          READ_FLAG( uiCode, "lim_qt_pred_flag[i]");                  pcVPS->setLimQtPreFlag     ( i, uiCode == 1 ? true : false ); 
+#if MTK_I0099_VPS_EX2
+        READ_FLAG( uiCode, "lim_qt_pred_flag[i]");                  pcVPS->setLimQtPredFlag     ( i, uiCode == 1 ? true : false ); 
+#endif
 #if H_3D_INTER_SDC
             READ_FLAG( uiCode, "depth_inter_SDC_flag" );              pcVPS->setInterSDCFlag( i, uiCode ? true : false );
@@ -1857,5 +1871,7 @@
     }
   }
+#if !MTK_I0099_VPS_EX2
   READ_UVLC (uiCode, "log2_sub_PU_MPI_size_minus3");              pcVPS->setSubPUMPILog2Size( uiCode + 3 ); 
+#endif
   READ_FLAG( uiCode, "iv_mv_scaling_flag");                       pcVPS->setIvMvScalingFlag( uiCode == 1 ? true : false ); 
 }
Index: branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibDecoder/TDecSbac.cpp
===================================================================
--- branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibDecoder/TDecSbac.cpp	(revision 1006)
+++ branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibDecoder/TDecSbac.cpp	(revision 1007)
@@ -721,5 +721,10 @@
   Bool bParseSplitFlag    = true;
 
-  TComSPS *sps            = pcCU->getPic()->getSlice(0)->getSPS();
+#if MTK_I0099_VPS_EX2
+  TComVPS *vps           = pcCU->getPic()->getSlice(0)->getVPS();
+  Bool    bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId());
+#else
+  TComSPS *sps           = pcCU->getPic()->getSlice(0)->getSPS();
+#endif
   TComPic *pcTexture      = pcCU->getSlice()->getTexturePic();
   Bool bDepthMapDetect    = (pcTexture != NULL);
@@ -728,5 +733,9 @@
   Bool rapPic = (pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA);
 
+#if MTK_I0099_VPS_EX2
+  if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFlag)
+#else
   if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTL() && sps->getUsePC())
+#endif
   {
     TComDataCU *pcTextureCU = pcTexture->getCU(pcCU->getAddr());
@@ -770,5 +779,10 @@
 #if H_3D_QTLPC
   Bool bParsePartSize    = true;
+#if MTK_I0099_VPS_EX2
+  TComVPS *vps           = pcCU->getPic()->getSlice(0)->getVPS();
+  Bool    bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId());
+#else
   TComSPS *sps           = pcCU->getPic()->getSlice(0)->getSPS();
+#endif
   TComPic *pcTexture     = pcCU->getSlice()->getTexturePic();
   Bool bDepthMapDetect   = (pcTexture != NULL);
@@ -779,5 +793,9 @@
   Bool depthDependent = false;
   UInt uiTexturePart = uiMode;
+#if MTK_I0099_VPS_EX2
+  if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFlag )
+#else
   if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTL() && sps->getUsePC())
+#endif
   {
     TComDataCU *pcTextureCU = pcTexture->getCU(pcCU->getAddr());
Index: branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibEncoder/TEncCavlc.cpp
===================================================================
--- branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibEncoder/TEncCavlc.cpp	(revision 1006)
+++ branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibEncoder/TEncCavlc.cpp	(revision 1007)
@@ -887,4 +887,5 @@
 {
 #if H_3D_QTLPC
+#if !MTK_I0099_VPS_EX2
 //GT: This has to go to VPS
 if( depthFlag )
@@ -893,4 +894,5 @@
   WRITE_FLAG( pcSPS->getUsePC()  ? 1 : 0, "use_pc_flag");
 }
+#endif
 #endif
 }
@@ -1562,8 +1564,13 @@
     if (i!= 0)
     {
+#if MTK_I0099_VPS_EX2
+      WRITE_FLAG( pcVPS->getIvMvPredFlag         ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]");
+#endif
       if ( !( pcVPS->getDepthId( i ) == 1 ) )
       {
 #if H_3D_IV_MERGE
+#if !MTK_I0099_VPS_EX2
         WRITE_FLAG( pcVPS->getIvMvPredFlag         ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]");
+#endif
 #if H_3D_SPIVMP
         WRITE_UVLC( pcVPS->getSubPULog2Size(i)-3, "log2_sub_PU_size_minus3[i]");
@@ -1585,4 +1592,5 @@
       else
       {
+#if !MTK_I0099_VPS_EX2
         if(i!=1)
         {
@@ -1595,9 +1603,15 @@
         }
 #endif
+#endif
 #if H_3D_IV_MERGE
         WRITE_FLAG( pcVPS->getMPIFlag( i ) ? 1 : 0 ,          "mpi_flag[i]" );
 #endif
+#if MTK_I0099_VPS_EX2
+        WRITE_UVLC( pcVPS->getSubPUMPILog2Size(i)-3, "log2_mpi_sub_PU_size_minus3[i]");
+#endif
         WRITE_FLAG( pcVPS->getVpsDepthModesFlag( i ) ? 1 : 0 ,          "vps_depth_modes_flag[i]" );
-        //WRITE_FLAG( pcVPS->getLimQtPredFlag    ( i ) ? 1 : 0 ,          "lim_qt_pred_flag[i]"     ); 
+#if MTK_I0099_VPS_EX2
+        WRITE_FLAG( pcVPS->getLimQtPredFlag    ( i ) ? 1 : 0 ,          "lim_qt_pred_flag[i]"     ); 
+#endif
 #if H_3D_INTER_SDC
         WRITE_FLAG( pcVPS->getInterSDCFlag( i ) ? 1 : 0, "depth_inter_SDC_flag" );
@@ -1625,5 +1639,7 @@
     }
   }
+#if !MTK_I0099_VPS_EX2
   WRITE_UVLC( pcVPS->getSubPUMPILog2Size( ) - 3, "log2_sub_PU_MPI_size_minus3");
+#endif
 #if H_3D_TMVP
   WRITE_FLAG( pcVPS->getIvMvScalingFlag( ) ? 1 : 0 ,          "iv_mv_scaling_flag" );
Index: branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibEncoder/TEncCfg.h
===================================================================
--- branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibEncoder/TEncCfg.h	(revision 1006)
+++ branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibEncoder/TEncCfg.h	(revision 1007)
@@ -420,7 +420,9 @@
   Bool      m_useMPI;
 #endif
+#if !MTK_I0099_VPS_EX2
 #if H_3D_QTLPC
   Bool      m_bUseQTL;
   Bool      m_bUsePC;
+#endif
 #endif
 #endif
@@ -1008,4 +1010,5 @@
   Void      setUseDLT                       ( Bool b) { m_useDLT = b;    }
 #endif
+#if !MTK_I0099_VPS_EX2
 #if H_3D_QTLPC
   Void      setUseQTL                       ( Bool b ) { m_bUseQTL = b;    }
@@ -1014,4 +1017,5 @@
   Bool      getUsePC                        ()         { return m_bUsePC;  }
 #endif
+#endif
 #if H_3D_IV_MERGE
   Void      setUseMPI                       ( Bool b ) { m_useMPI = b;    }
Index: branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibEncoder/TEncCu.cpp
===================================================================
--- branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibEncoder/TEncCu.cpp	(revision 1006)
+++ branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibEncoder/TEncCu.cpp	(revision 1007)
@@ -409,5 +409,10 @@
 
 #if H_3D_QTLPC
+#if MTK_I0099_VPS_EX2
+  TComVPS *vps            = pcPic->getSlice(0)->getVPS();
+  Bool  bLimQtPredFalg    = vps->getLimQtPredFlag(pcPic->getSlice(0)->getLayerId()); 
+#else
   TComSPS *sps            = pcPic->getSlice(0)->getSPS();
+#endif
   TComPic *pcTexture      = rpcBestCU->getSlice()->getTexturePic();
 
@@ -531,5 +536,9 @@
       //logic for setting bTrySplit using the partition information that is stored of the texture colocated CU
 
+#if MTK_I0099_VPS_EX2
+      if(depthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFalg)
+#else
       if(depthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTL())
+#endif
       {
         TComDataCU* pcTextureCU = pcTexture->getCU( rpcBestCU->getAddr() ); //Corresponding texture LCU
@@ -685,5 +694,9 @@
 
 #if H_3D_QTLPC      
+#if MTK_I0099_VPS_EX2
+      if(depthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFalg)
+#else
       if(depthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTL())
+#endif
       {
         bTrySplitDQP = bTrySplit;
Index: branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibEncoder/TEncSbac.cpp
===================================================================
--- branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibEncoder/TEncSbac.cpp	(revision 1006)
+++ branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibEncoder/TEncSbac.cpp	(revision 1007)
@@ -664,5 +664,10 @@
   PartSize eSize         = pcCU->getPartitionSize( uiAbsPartIdx );
 #if H_3D_QTLPC
+#if MTK_I0099_VPS_EX2
+  TComVPS *vps           = pcCU->getPic()->getSlice(0)->getVPS();
+  Bool    bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId());
+#else
   TComSPS *sps           = pcCU->getPic()->getSlice(0)->getSPS();
+#endif
   TComPic *pcTexture     = pcCU->getSlice()->getTexturePic();
   Bool bDepthMapDetect   = (pcTexture != NULL);
@@ -673,5 +678,9 @@
   Bool depthDependent = false;
   UInt uiTexturePart = eSize;
+#if MTK_I0099_VPS_EX2
+  if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && bLimQtPredFlag )
+#else
   if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && sps->getUseQTL() && sps->getUsePC() )
+#endif
   {
     TComDataCU *pcTextureCU = pcTexture->getCU(pcCU->getAddr());
@@ -1031,5 +1040,10 @@
   Bool bCodeSplitFlag    = true;
 
+#if MTK_I0099_VPS_EX2
+  TComVPS *vps           = pcCU->getPic()->getSlice(0)->getVPS();
+  Bool    bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId());
+#else
   TComSPS *sps           = pcCU->getPic()->getSlice(0)->getSPS();
+#endif
   TComPic *pcTexture     = pcCU->getSlice()->getTexturePic();
   Bool bDepthMapDetect   = (pcTexture != NULL);
@@ -1038,5 +1052,9 @@
   Bool rapPic     = (pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA);
 
+#if MTK_I0099_VPS_EX2
+  if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && bLimQtPredFlag  )
+#else
   if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && sps->getUseQTL() && sps->getUsePC())
+#endif
   {
     TComDataCU *pcTextureCU = pcTexture->getCU(pcCU->getAddr());
Index: branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibEncoder/TEncTop.cpp
===================================================================
--- branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibEncoder/TEncTop.cpp	(revision 1006)
+++ branches/HTM-11.2-dev2-MediaTek/source/Lib/TLibEncoder/TEncTop.cpp	(revision 1007)
@@ -744,7 +744,9 @@
   m_cSPS.setUseAMP ( m_useAMP );
 
+#if !MTK_I0099_VPS_EX2
 #if H_3D_QTLPC
   m_cSPS.setUseQTL( m_bUseQTL );
   m_cSPS.setUsePC ( m_bUsePC  );
+#endif
 #endif
 
