Index: branches/HTM-10.2-dev0/source/Lib/TLibEncoder/TEncCfg.h
===================================================================
--- branches/HTM-10.2-dev0/source/Lib/TLibEncoder/TEncCfg.h	(revision 937)
+++ branches/HTM-10.2-dev0/source/Lib/TLibEncoder/TEncCfg.h	(revision 939)
@@ -401,4 +401,7 @@
 #if H_3D_IC
   Bool      m_bUseIC;
+#if MTK_LOW_LATENCY_IC_ENCODING_H0086
+  Bool      m_bUseICLowLatencyEnc;
+#endif
 #endif
 #if H_3D_INTER_SDC
@@ -511,4 +514,8 @@
   Void       setUseIC                       ( Bool bVal )    { m_bUseIC = bVal; }
   Bool       getUseIC                       ()               { return m_bUseIC; }
+#if MTK_LOW_LATENCY_IC_ENCODING_H0086
+  Void       setUseICLowLatencyEnc          ( Bool bVal )    { m_bUseICLowLatencyEnc = bVal; }
+  Bool       getUseICLowLatencyEnc          ()               { return m_bUseICLowLatencyEnc; }
+#endif
 #endif
 #if H_3D_INTER_SDC
Index: branches/HTM-10.2-dev0/source/Lib/TLibEncoder/TEncEntropy.cpp
===================================================================
--- branches/HTM-10.2-dev0/source/Lib/TLibEncoder/TEncEntropy.cpp	(revision 937)
+++ branches/HTM-10.2-dev0/source/Lib/TLibEncoder/TEncEntropy.cpp	(revision 939)
@@ -163,5 +163,14 @@
     uiAbsPartIdx = 0;
   }
-
+#if MTK_LOW_LATENCY_IC_ENCODING_H0086
+  else
+  {
+    g_aICEnableCANDIDATE[pcCU->getSlice()->getDepth()]++;
+    if(pcCU->getICFlag(uiAbsPartIdx))
+    {
+      g_aICEnableNUM[pcCU->getSlice()->getDepth()]++;
+    }
+  }
+#endif
   if( pcCU->isICFlagRequired( uiAbsPartIdx ) )
     m_pcEntropyCoderIf->codeICFlag( pcCU, uiAbsPartIdx );
@@ -281,4 +290,5 @@
     return;
   }
+#if !MTK_SDC_FLAG_FIX_H0095
 #if H_3D_DIM_SDC
   if( pcCU->getSDCFlag(uiAbsPartIdx) )
@@ -286,4 +296,5 @@
     return;
   }
+#endif
 #endif
   
Index: branches/HTM-10.2-dev0/source/Lib/TLibEncoder/TEncSbac.cpp
===================================================================
--- branches/HTM-10.2-dev0/source/Lib/TLibEncoder/TEncSbac.cpp	(revision 937)
+++ branches/HTM-10.2-dev0/source/Lib/TLibEncoder/TEncSbac.cpp	(revision 939)
@@ -93,5 +93,5 @@
 , m_cDdcDataSCModel           ( 1,             1,               NUM_DDC_DATA_CTX              , m_contextModels + m_numContextModels, m_numContextModels)
 , m_cAngleFlagSCModel         ( 1,             1,               NUM_ANGLE_FLAG_CTX            , m_contextModels + m_numContextModels, m_numContextModels)
-#if H_3D_DIM_DMM
+#if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092
 , m_cDmm1DataSCModel          ( 1,             1,               NUM_DMM1_DATA_CTX             , m_contextModels + m_numContextModels, m_numContextModels)
 #endif
@@ -169,5 +169,5 @@
   m_cDdcDataSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_DDC_DATA );
   m_cAngleFlagSCModel.initBuffer         ( eSliceType, iQp, (UChar*)INIT_ANGLE_FLAG );
-#if H_3D_DIM_DMM
+#if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092
   m_cDmm1DataSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA );
 #endif
@@ -255,5 +255,5 @@
       curCost += m_cDdcDataSCModel.calcCost           ( curSliceType, qp, (UChar*)INIT_DDC_DATA );
       curCost += m_cAngleFlagSCModel.calcCost         ( curSliceType, qp, (UChar*)INIT_ANGLE_FLAG );  
-#if H_3D_DIM_DMM
+#if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092
       curCost += m_cDmm1DataSCModel.calcCost          ( curSliceType, qp, (UChar*)INIT_DMM1_DATA );
 #endif
@@ -319,5 +319,5 @@
   m_cDdcDataSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_DDC_DATA );
   m_cAngleFlagSCModel.initBuffer         ( eSliceType, iQp, (UChar*)INIT_ANGLE_FLAG );
-#if H_3D_DIM_DMM
+#if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092
   m_cDmm1DataSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA );
 #endif
@@ -482,7 +482,13 @@
     m_pcBinIf->encodeBin( 1, rcSCModel );
     UInt uiCount = 0;
+#if QC_SIMP_DELTADC_CODING_H0131
+    Bool bNoExGo = ( uiSymbol < 3 );
+
+    while( --uiSymbol && ++uiCount < 3 )
+#else
     Bool bNoExGo = (uiSymbol < 13);
 
     while( --uiSymbol && ++uiCount < 13 )
+#endif
     {
       m_pcBinIf->encodeBin( 1, rcSCModel );
@@ -520,5 +526,9 @@
   for ( Int i = 0; i < iNumBit; i++ )
   {
+#if MTK_DMM_SIMP_CODE_H0092
+      m_pcBinIf->encodeBinEP( ( uiTabIdx >> i ) & 1 );
+#else
     m_pcBinIf->encodeBin( ( uiTabIdx >> i ) & 1, m_cDmm1DataSCModel.get(0, 0, 0) );
+#endif
   }
 }
@@ -1233,5 +1243,9 @@
   if( ( pcCU->getSlice()->getSPS()->getMaxCUWidth() >> pcCU->getDepth( absPartIdx ) ) < 64 ) //DMM and HEVC intra modes are both allowed
   {
+#if LGE_SIMP_DIM_NOT_PRESENT_FLAG_CODING_H0119_H0135
+    m_pcBinIf->encodeBin( isDimMode( dir ) ? 0 : 1, m_cAngleFlagSCModel.get( 0, 0, 0 ) );
+#else
     m_pcBinIf->encodeBin( isDimMode( dir ) ? 0 : 1, m_cAngleFlagSCModel.get( 0, 0, pcCU->getCtxAngleFlag( absPartIdx ) ) );
+#endif
   }
   if( isDimMode( dir ) )
@@ -2313,6 +2327,9 @@
       dimDeltaDC = isDimDeltaDC( dir );
     }
-
+#if MTK_DELTA_DC_FLAG_ONE_CONTEXT_H0084_H0100_H0113
+    m_pcBinIf->encodeBin( dimDeltaDC, m_cDdcFlagSCModel.get( 0, 0, 0 ) );
+#else
     m_pcBinIf->encodeBin( dimDeltaDC, m_cDdcFlagSCModel.get( 0, 0, uiNumSegments-1 ) );
+#endif
   }
   else //all-zero inter SDC is not allowed
Index: branches/HTM-10.2-dev0/source/Lib/TLibEncoder/TEncSbac.h
===================================================================
--- branches/HTM-10.2-dev0/source/Lib/TLibEncoder/TEncSbac.h	(revision 937)
+++ branches/HTM-10.2-dev0/source/Lib/TLibEncoder/TEncSbac.h	(revision 939)
@@ -258,5 +258,5 @@
   ContextModel3DBuffer m_cDdcDataSCModel;
   ContextModel3DBuffer m_cAngleFlagSCModel;
-#if H_3D_DIM_DMM
+#if H_3D_DIM_DMM && !MTK_DMM_SIMP_CODE_H0092
   ContextModel3DBuffer m_cDmm1DataSCModel;
 #endif
Index: branches/HTM-10.2-dev0/source/Lib/TLibEncoder/TEncSearch.cpp
===================================================================
--- branches/HTM-10.2-dev0/source/Lib/TLibEncoder/TEncSearch.cpp	(revision 937)
+++ branches/HTM-10.2-dev0/source/Lib/TLibEncoder/TEncSearch.cpp	(revision 939)
@@ -1989,4 +1989,12 @@
   // get DC prediction for each segment
   Pel apDCPredValues[2];
+#if HS_DMM_SDC_PREDICTOR_UNIFY_H0108
+  if ( getDimType( uiLumaPredMode ) == DMM1_IDX || getDimType( uiLumaPredMode ) == DMM4_IDX )
+  {
+    apDCPredValues[0] = pcCU->getDmmPredictor( 0 );
+    apDCPredValues[1] = pcCU->getDmmPredictor( 1 );
+  }
+  else
+#endif
   analyzeSegmentsSDC(piPred, uiStride, uiWidth, apDCPredValues, uiNumSegments, pbMask, uiMaskStride, uiLumaPredMode );
 
Index: branches/HTM-10.2-dev0/source/Lib/TLibEncoder/TEncSlice.cpp
===================================================================
--- branches/HTM-10.2-dev0/source/Lib/TLibEncoder/TEncSlice.cpp	(revision 937)
+++ branches/HTM-10.2-dev0/source/Lib/TLibEncoder/TEncSlice.cpp	(revision 939)
@@ -866,5 +866,9 @@
      )
   {
+#if MTK_LOW_LATENCY_IC_ENCODING_H0086
+    pcSlice ->xSetApplyIC(pcEncTop->getUseICLowLatencyEnc());
+#else
     pcSlice ->xSetApplyIC();
+#endif
     if ( pcSlice->getApplyIC() )
     {
