Index: branches/HTM-6.2-dev3-RWTH/source/Lib/TLibCommon/ContextTables.h
===================================================================
--- branches/HTM-6.2-dev3-RWTH/source/Lib/TLibCommon/ContextTables.h	(revision 395)
+++ branches/HTM-6.2-dev3-RWTH/source/Lib/TLibCommon/ContextTables.h	(revision 397)
@@ -135,6 +135,12 @@
 #endif
 #define SDC_NUM_RESIDUAL_FLAG_CTX        1
+#if !RWTH_SDC_CTX_SIMPL_D0032
 #define SDC_NUM_SIGN_FLAG_CTX            1
+#endif
+#if RWTH_SDC_CTX_SIMPL_D0032
+#define SDC_NUM_RESIDUAL_CTX             8
+#else
 #define SDC_NUM_RESIDUAL_CTX             10
+#endif
 
 #define SDC_NUM_PRED_MODE_CTX            5
@@ -556,4 +562,48 @@
 #endif
 
+#if RWTH_SDC_CTX_SIMPL_D0032
+static const UChar INIT_SDC_RESIDUAL_FLAG[3][SDC_NUM_RESIDUAL_FLAG_CTX] =
+{
+  {
+    CNU
+    
+  },
+  {
+    CNU
+  },
+  {
+    CNU
+  }
+};
+
+static const UChar INIT_SDC_RESIDUAL[3][SDC_NUM_RESIDUAL_CTX] =
+{
+  {
+    CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU
+  },
+  {
+    CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU
+  },
+  {
+    CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU
+  }
+};
+
+static const UChar INIT_SDC_PRED_MODE[3][3*SDC_NUM_PRED_MODE_CTX] =
+{
+  {
+    CNU,    CNU
+    ,CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU
+  },
+  {
+    CNU,    CNU
+    ,CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU
+  },
+  {
+    CNU,    CNU
+    ,CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU
+  }
+};
+#else
 static const Short INIT_SDC_RESIDUAL_FLAG[3][3*SDC_NUM_RESIDUAL_FLAG_CTX][2] =
 {
@@ -633,4 +683,5 @@
 };
 #endif
+#endif
 
 //! \}
Index: branches/HTM-6.2-dev3-RWTH/source/Lib/TLibCommon/TypeDef.h
===================================================================
--- branches/HTM-6.2-dev3-RWTH/source/Lib/TLibCommon/TypeDef.h	(revision 395)
+++ branches/HTM-6.2-dev3-RWTH/source/Lib/TLibCommon/TypeDef.h	(revision 397)
@@ -73,4 +73,5 @@
 #define HHI_DELTADC_DLT_D0035             1   // JCT3V-D0035: DLT for DMM deltaDC coding
 #define INTEL_SDC64_D0193                 1   // JCT3V-D0193: SDC binary clean up (use a 1 bit binary code to signal sdc_pred_mode when CU size is 64x64)
+#define RWTH_SDC_CTX_SIMPL_D0032          1   // JCT3V-D0032: CABAC Context Reduction for Simplified Depth Coding
 #endif
 #define FIX_SDC_ENC_RD_WVSO_D0163         1   // JCT3V-D0163: fix for SDC encoder rd-cost (VSO -> WVSO)
Index: branches/HTM-6.2-dev3-RWTH/source/Lib/TLibDecoder/TDecSbac.cpp
===================================================================
--- branches/HTM-6.2-dev3-RWTH/source/Lib/TLibDecoder/TDecSbac.cpp	(revision 395)
+++ branches/HTM-6.2-dev3-RWTH/source/Lib/TLibDecoder/TDecSbac.cpp	(revision 397)
@@ -114,8 +114,14 @@
 , m_cDmmDeltaFlagModel             ( 1,             1,                 DMM_DELTA_NUM_FLAG_CTX           , m_contextModels + m_numContextModels, m_numContextModels)
 #endif
+#if RWTH_SDC_CTX_SIMPL_D0032
+, m_cSDCResidualFlagSCModel     ( 1,             1,  SDC_NUM_RESIDUAL_FLAG_CTX  , m_contextModels + m_numContextModels, m_numContextModels)
+, m_cSDCResidualSCModel         ( 1,             1,  SDC_NUM_RESIDUAL_CTX       , m_contextModels + m_numContextModels, m_numContextModels)
+, m_cSDCPredModeSCModel             ( 1,             3,                 SDC_NUM_PRED_MODE_CTX     , m_contextModels + m_numContextModels, m_numContextModels)
+#else
 , m_cSDCResidualFlagSCModel     ( 1,             2,  SDC_NUM_RESIDUAL_FLAG_CTX  , m_contextModels + m_numContextModels, m_numContextModels)
 , m_cSDCResidualSignFlagSCModel ( 1,             2,  SDC_NUM_SIGN_FLAG_CTX      , m_contextModels + m_numContextModels, m_numContextModels)
 , m_cSDCResidualSCModel         ( 1,             2,  SDC_NUM_RESIDUAL_CTX       , m_contextModels + m_numContextModels, m_numContextModels)
 , m_cSDCPredModeSCModel             ( 1,             3,                 SDC_NUM_PRED_MODE_CTX     , m_contextModels + m_numContextModels, m_numContextModels)
+#endif
 #endif
 {
@@ -222,5 +228,7 @@
   m_cSDCResidualFlagSCModel.initBuffer      ( sliceType, qp, (UChar*)INIT_SDC_RESIDUAL_FLAG );
   m_cSDCResidualSCModel.initBuffer          ( sliceType, qp, (UChar*)INIT_SDC_RESIDUAL );
+#if !RWTH_SDC_CTX_SIMPL_D0032
   m_cSDCResidualSignFlagSCModel.initBuffer  ( sliceType, qp, (UChar*)INIT_SDC_SIGN_FLAG );
+#endif
   m_cSDCPredModeSCModel.initBuffer              ( sliceType, qp, (UChar*)INIT_SDC_PRED_MODE );
 #endif
@@ -308,5 +316,7 @@
   m_cSDCResidualFlagSCModel.initBuffer      ( eSliceType, iQp, (UChar*)INIT_SDC_RESIDUAL_FLAG );
   m_cSDCResidualSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_SDC_RESIDUAL );
+#if !RWTH_SDC_CTX_SIMPL_D0032
   m_cSDCResidualSignFlagSCModel.initBuffer  ( eSliceType, iQp, (UChar*)INIT_SDC_SIGN_FLAG );
+#endif
   m_cSDCPredModeSCModel.initBuffer              ( eSliceType, iQp, (UChar*)INIT_SDC_PRED_MODE );
 #endif
@@ -2647,15 +2657,27 @@
   assert( uiMaxResidualBits <= g_uiBitDepth );
   
+#if RWTH_SDC_CTX_SIMPL_D0032
+  m_pcTDecBinIf->decodeBin(uiResidual, m_cSDCResidualFlagSCModel.get( 0, 0, 0 ) );
+#else
   m_pcTDecBinIf->decodeBin(uiResidual, m_cSDCResidualFlagSCModel.get( 0, uiSegment, 0 ) );
+#endif
   
   if (uiResidual)
   {
     // decode residual sign bit
+#if RWTH_SDC_CTX_SIMPL_D0032
+    m_pcTDecBinIf->decodeBinEP(uiSign);
+#else
     m_pcTDecBinIf->decodeBin(uiSign, m_cSDCResidualSignFlagSCModel.get( 0, uiSegment, 0 ) );
+#endif
     
     // decode residual magnitude
     for (Int i=0; i<uiMaxResidualBits; i++)
     {
+#if RWTH_SDC_CTX_SIMPL_D0032
+      m_pcTDecBinIf->decodeBin(uiBit, m_cSDCResidualSCModel.get( 0, 0, i ) );
+#else
       m_pcTDecBinIf->decodeBin(uiBit, m_cSDCResidualSCModel.get( 0, uiSegment, i ) );
+#endif
       uiAbsIdx |= uiBit << i;
     }
Index: branches/HTM-6.2-dev3-RWTH/source/Lib/TLibDecoder/TDecSbac.h
===================================================================
--- branches/HTM-6.2-dev3-RWTH/source/Lib/TLibDecoder/TDecSbac.h	(revision 395)
+++ branches/HTM-6.2-dev3-RWTH/source/Lib/TLibDecoder/TDecSbac.h	(revision 397)
@@ -280,5 +280,7 @@
   
   ContextModel3DBuffer m_cSDCResidualFlagSCModel;
+#if !RWTH_SDC_CTX_SIMPL_D0032
   ContextModel3DBuffer m_cSDCResidualSignFlagSCModel;
+#endif
   ContextModel3DBuffer m_cSDCResidualSCModel;
   
Index: branches/HTM-6.2-dev3-RWTH/source/Lib/TLibEncoder/TEncSbac.cpp
===================================================================
--- branches/HTM-6.2-dev3-RWTH/source/Lib/TLibEncoder/TEncSbac.cpp	(revision 395)
+++ branches/HTM-6.2-dev3-RWTH/source/Lib/TLibEncoder/TEncSbac.cpp	(revision 397)
@@ -122,8 +122,14 @@
 , m_cDmmDeltaFlagModel             ( 1,             1,                 DMM_DELTA_NUM_FLAG_CTX           , m_contextModels + m_numContextModels, m_numContextModels)
 #endif
+#if RWTH_SDC_CTX_SIMPL_D0032
+, m_cSDCResidualFlagSCModel     ( 1,             1,  SDC_NUM_RESIDUAL_FLAG_CTX  , m_contextModels + m_numContextModels, m_numContextModels)
+, m_cSDCResidualSCModel         ( 1,             1,  SDC_NUM_RESIDUAL_CTX       , m_contextModels + m_numContextModels, m_numContextModels)
+, m_cSDCPredModeSCModel             ( 1,             3,                 SDC_NUM_PRED_MODE_CTX     , m_contextModels + m_numContextModels, m_numContextModels)
+#else
 , m_cSDCResidualFlagSCModel     ( 1,             2,  SDC_NUM_RESIDUAL_FLAG_CTX  , m_contextModels + m_numContextModels, m_numContextModels)
 , m_cSDCResidualSignFlagSCModel ( 1,             2,  SDC_NUM_SIGN_FLAG_CTX      , m_contextModels + m_numContextModels, m_numContextModels)
 , m_cSDCResidualSCModel         ( 1,             2,  SDC_NUM_RESIDUAL_CTX       , m_contextModels + m_numContextModels, m_numContextModels)
 , m_cSDCPredModeSCModel             ( 1,             3,                 SDC_NUM_PRED_MODE_CTX     , m_contextModels + m_numContextModels, m_numContextModels)
+#endif
 #endif
 {
@@ -215,5 +221,7 @@
   m_cSDCResidualFlagSCModel.initBuffer      ( eSliceType, iQp, (UChar*)INIT_SDC_RESIDUAL_FLAG );
   m_cSDCResidualSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_SDC_RESIDUAL );
+#if !RWTH_SDC_CTX_SIMPL_D0032
   m_cSDCResidualSignFlagSCModel.initBuffer  ( eSliceType, iQp, (UChar*)INIT_SDC_SIGN_FLAG );
+#endif
   m_cSDCPredModeSCModel.initBuffer              ( eSliceType, iQp, (UChar*)INIT_SDC_PRED_MODE );
 #endif
@@ -369,5 +377,7 @@
   m_cSDCResidualFlagSCModel.initBuffer      ( eSliceType, iQp, (UChar*)INIT_SDC_RESIDUAL_FLAG );
   m_cSDCResidualSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_SDC_RESIDUAL );
+#if !RWTH_SDC_CTX_SIMPL_D0032
   m_cSDCResidualSignFlagSCModel.initBuffer  ( eSliceType, iQp, (UChar*)INIT_SDC_SIGN_FLAG );
+#endif
   m_cSDCPredModeSCModel.initBuffer              ( eSliceType, iQp, (UChar*)INIT_SDC_PRED_MODE );
 #endif
@@ -2645,10 +2655,18 @@
   
   // residual flag
+#if RWTH_SDC_CTX_SIMPL_D0032
+  m_pcBinIf->encodeBin( uiResidual, m_cSDCResidualFlagSCModel.get( 0, 0, 0 ) );
+#else
   m_pcBinIf->encodeBin( uiResidual, m_cSDCResidualFlagSCModel.get( 0, uiSegment, 0 ) ); //TODO depthmap: more sophisticated context selection
+#endif
   
   if (uiResidual)
   {
     // encode sign bit of residual
+#if RWTH_SDC_CTX_SIMPL_D0032
+    m_pcBinIf->encodeBinEP( uiSign );
+#else
     m_pcBinIf->encodeBin( uiSign, m_cSDCResidualSignFlagSCModel.get( 0, uiSegment, 0 ) ); //TODO depthmap: more sophisticated context selection
+#endif
         
     assert(uiAbsIdx < GetNumDepthValues());
@@ -2660,5 +2678,9 @@
       uiBit = (uiAbsIdx & (1<<i))>>i;
       
+#if RWTH_SDC_CTX_SIMPL_D0032
+      m_pcBinIf->encodeBin( uiBit, m_cSDCResidualSCModel.get( 0, 0, i ) );
+#else
       m_pcBinIf->encodeBin( uiBit, m_cSDCResidualSCModel.get( 0, uiSegment, i ) ); //TODO depthmap: more sophisticated context selection
+#endif
     }
     
Index: branches/HTM-6.2-dev3-RWTH/source/Lib/TLibEncoder/TEncSbac.h
===================================================================
--- branches/HTM-6.2-dev3-RWTH/source/Lib/TLibEncoder/TEncSbac.h	(revision 395)
+++ branches/HTM-6.2-dev3-RWTH/source/Lib/TLibEncoder/TEncSbac.h	(revision 397)
@@ -336,5 +336,7 @@
   
   ContextModel3DBuffer m_cSDCResidualFlagSCModel;
+#if !RWTH_SDC_CTX_SIMPL_D0032
   ContextModel3DBuffer m_cSDCResidualSignFlagSCModel;
+#endif
   ContextModel3DBuffer m_cSDCResidualSCModel;
   
