Changeset 561 in 3DVCSoftware for branches/HTM-DEV-2.0-dev3-Zhejiang/source/Lib


Ignore:
Timestamp:
11 Aug 2013, 17:37:58 (11 years ago)
Author:
zhejiang
Message:

JCT3V-E0204 Simplified Binarization for depth_intra_mode by Zhejiang University

Location:
branches/HTM-DEV-2.0-dev3-Zhejiang/source/Lib
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-DEV-2.0-dev3-Zhejiang/source/Lib/TLibCommon/ContextTables.h

    r554 r561  
    384384#endif
    385385#if H_3D_DIM
     386#if ZJU_DEPTH_INTRA_MODE_E0204
     387static const UChar
     388INIT_DEPTH_INTRA_MODE[3][NUM_DEPTH_INTRA_MODE_CTX] =
     389{
     390    {0,  0,  64, 168, 168, 124, CNU, 0},
     391    {0, 64,   0, 183, CNU, 108,   0, 0},
     392    {64, 0, CNU, CNU, 168, 109,   0, 0}
     393};
     394#else
    386395static const UChar
    387396INIT_DEPTH_INTRA_MODE[3][NUM_DEPTH_INTRA_MODE_CTX] =
     
    391400  {64, 0, CNU,   0, CNU,   0,   0, 0}
    392401};
     402#endif
    393403static const UChar
    394404INIT_DDC_FLAG[3][NUM_DDC_FLAG_CTX] =
  • branches/HTM-DEV-2.0-dev3-Zhejiang/source/Lib/TLibCommon/TypeDef.h

    r557 r561  
    172172#if H_3D_DIM
    173173#define SEC_DMM2_E0146                    1   // Removal of DMM2 from DMMs
     174#define ZJU_DEPTH_INTRA_MODE_E0204        1   // Simplified Binarization for depth_intra_mode
    174175#endif
    175176#define H_3D_DIM_RBC                      1   // Region Boundary Chain mode
  • branches/HTM-DEV-2.0-dev3-Zhejiang/source/Lib/TLibDecoder/TDecSbac.cpp

    r557 r561  
    12551255  else
    12561256  {
     1257#if ZJU_DEPTH_INTRA_MODE_E0204
     1258      UInt maxBinNum = 0;
     1259      m_pcTDecBinIf->decodeBinEP(symbol);
     1260      if( symbol == 1 )
     1261      {
     1262          maxBinNum = 3;
     1263      }
     1264      else
     1265      {
     1266          maxBinNum = 2;
     1267          symbol = 1;
     1268      }
     1269      while( binNum<maxBinNum && symbol )
     1270      {
     1271          ctxDepthMode = puIdx*3 + ( binNum >= 2 ? 2 : binNum );
     1272          m_pcTDecBinIf->decodeBin(symbol,m_cDepthIntraModeSCModel.get(0,0,ctxDepthMode));
     1273          modeCode = (modeCode<<1)+symbol;
     1274          binNum++;
     1275      }
     1276      if( maxBinNum == 3 )
     1277      {
     1278          if ( modeCode == 0 )       { dir =  PLANAR_IDX;             sdcFlag = 1;}
     1279          else if ( modeCode == 2 )  { dir = (2* RBC_IDX+DIM_OFFSET); sdcFlag = 0;}
     1280          else if ( modeCode == 6 )  { dir = (2*DMM3_IDX+DIM_OFFSET); sdcFlag = 0;}
     1281          else if ( modeCode == 7 )  { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 0;}
     1282      }
     1283      else
     1284      {
     1285          if ( modeCode == 0 )       { dir = 5;                       sdcFlag = 0;}
     1286          else if ( modeCode == 2 )  { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 1;}
     1287          else if ( modeCode == 3 )  { dir = (2*DMM4_IDX+DIM_OFFSET); sdcFlag = 0;}
     1288      }
     1289#else
    12571290    ctxDepthMode = puIdx*3 ;
    12581291    m_pcTDecBinIf->decodeBin( symbol, m_cDepthIntraModeSCModel.get(0,0,ctxDepthMode) );
     
    13231356    else if( modeCode == 30 ) { dir = (2* RBC_IDX+DIM_OFFSET); sdcFlag = 0;}
    13241357    else if( modeCode == 31 ) { dir = (2*DMM2_IDX+DIM_OFFSET); sdcFlag = 0;}
     1358#endif
    13251359#endif
    13261360#endif
  • branches/HTM-DEV-2.0-dev3-Zhejiang/source/Lib/TLibEncoder/TEncSbac.cpp

    r557 r561  
    12611261Void TEncSbac::codeIntraDepthMode( TComDataCU* pcCU, UInt absPartIdx )
    12621262{
     1263#if ZJU_DEPTH_INTRA_MODE_E0204
     1264    UInt codeWordTable[3][7] =    {{0, 0, 0, 2, 0,6, 7},{0, 0, 2, 7, 3, 6, 2},{0, 1, 0, 0, 0, 0, 0}};
     1265    UInt codeWordLenTable[3][7] = {{0, 1, 0, 2, 0,3, 3},{1, 1, 2, 3, 2, 3, 2},{1, 1, 0, 0, 0, 0, 0}};
     1266#else
    12631267#if LGE_SDC_REMOVE_DC_E0158
    12641268#if SEC_DMM2_E0146
     
    12761280  UInt codeWordTable[3][9] =    {{0, 0, 0, 2, 0,6, 0, 0, 7},{0, 2, 3, 4, 5, 6, 14, 31, 30},{0, 2, 0, 0, 0, 0, 3, 0, 0}};
    12771281  UInt codeWordLenTable[3][9] = {{0, 1, 0, 2, 0,3, 0, 0, 3},{2, 3, 3, 3, 3, 3,  4,  5,  5},{1, 2, 0, 0, 0, 0, 2, 0, 0}};
     1282#endif
    12781283#endif
    12791284#endif
     
    13231328      default:          codeIdx = 2; break;
    13241329    }
     1330  }
     1331#endif
     1332#if ZJU_DEPTH_INTRA_MODE_E0204
     1333  if( puIdx==1 )
     1334  {
     1335      if( codeIdx==1 || codeIdx==2 || codeIdx==4 )
     1336      {
     1337          m_pcBinIf->encodeBinEP( 0 );
     1338      }
     1339      else
     1340      {
     1341          m_pcBinIf->encodeBinEP( 1 );
     1342      }
    13251343  }
    13261344#endif
Note: See TracChangeset for help on using the changeset viewer.