- Timestamp:
- 11 Aug 2013, 17:37:58 (11 years ago)
- Location:
- branches/HTM-DEV-2.0-dev3-Zhejiang
- Files:
-
- 2 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-DEV-2.0-dev3-Zhejiang/source/Lib/TLibCommon/ContextTables.h
r554 r561 384 384 #endif 385 385 #if H_3D_DIM 386 #if ZJU_DEPTH_INTRA_MODE_E0204 387 static const UChar 388 INIT_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 386 395 static const UChar 387 396 INIT_DEPTH_INTRA_MODE[3][NUM_DEPTH_INTRA_MODE_CTX] = … … 391 400 {64, 0, CNU, 0, CNU, 0, 0, 0} 392 401 }; 402 #endif 393 403 static const UChar 394 404 INIT_DDC_FLAG[3][NUM_DDC_FLAG_CTX] = -
branches/HTM-DEV-2.0-dev3-Zhejiang/source/Lib/TLibCommon/TypeDef.h
r557 r561 172 172 #if H_3D_DIM 173 173 #define SEC_DMM2_E0146 1 // Removal of DMM2 from DMMs 174 #define ZJU_DEPTH_INTRA_MODE_E0204 1 // Simplified Binarization for depth_intra_mode 174 175 #endif 175 176 #define H_3D_DIM_RBC 1 // Region Boundary Chain mode -
branches/HTM-DEV-2.0-dev3-Zhejiang/source/Lib/TLibDecoder/TDecSbac.cpp
r557 r561 1255 1255 else 1256 1256 { 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 1257 1290 ctxDepthMode = puIdx*3 ; 1258 1291 m_pcTDecBinIf->decodeBin( symbol, m_cDepthIntraModeSCModel.get(0,0,ctxDepthMode) ); … … 1323 1356 else if( modeCode == 30 ) { dir = (2* RBC_IDX+DIM_OFFSET); sdcFlag = 0;} 1324 1357 else if( modeCode == 31 ) { dir = (2*DMM2_IDX+DIM_OFFSET); sdcFlag = 0;} 1358 #endif 1325 1359 #endif 1326 1360 #endif -
branches/HTM-DEV-2.0-dev3-Zhejiang/source/Lib/TLibEncoder/TEncSbac.cpp
r557 r561 1261 1261 Void TEncSbac::codeIntraDepthMode( TComDataCU* pcCU, UInt absPartIdx ) 1262 1262 { 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 1263 1267 #if LGE_SDC_REMOVE_DC_E0158 1264 1268 #if SEC_DMM2_E0146 … … 1276 1280 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}}; 1277 1281 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 1278 1283 #endif 1279 1284 #endif … … 1323 1328 default: codeIdx = 2; break; 1324 1329 } 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 } 1325 1343 } 1326 1344 #endif
Note: See TracChangeset for help on using the changeset viewer.