Changeset 655 in 3DVCSoftware for trunk/source/Lib/TLibEncoder/TEncSbac.cpp
- Timestamp:
- 23 Oct 2013, 23:01:30 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibEncoder/TEncSbac.cpp
r622 r655 95 95 #if H_3D_DIM_DMM 96 96 , m_cDmm1DataSCModel ( 1, 1, NUM_DMM1_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 97 #if !SEC_DMM2_E0146_HHIFIX98 , m_cDmm2DataSCModel ( 1, 1, NUM_DMM2_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels)99 #endif100 97 , m_cDmm3DataSCModel ( 1, 1, NUM_DMM3_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 101 98 #endif … … 108 105 #endif 109 106 #endif 110 #if LGE_INTER_SDC_E0156107 #if H_3D_INTER_SDC 111 108 , m_cInterSDCFlagSCModel ( 1, 1, NUM_INTER_SDC_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 112 109 , m_cInterSDCResidualSCModel ( 1, 1, NUM_INTER_SDC_RESIDUAL_CTX , m_contextModels + m_numContextModels, m_numContextModels) … … 177 174 #if H_3D_DIM_DMM 178 175 m_cDmm1DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA ); 179 #if !SEC_DMM2_E0146_HHIFIX180 m_cDmm2DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM2_DATA );181 #endif182 176 m_cDmm3DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM3_DATA ); 183 177 #endif … … 190 184 #endif 191 185 #endif 192 #if LGE_INTER_SDC_E0156186 #if H_3D_INTER_SDC 193 187 m_cInterSDCFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_INTER_SDC_FLAG ); 194 188 m_cInterSDCResidualSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_INTER_SDC_RESIDUAL ); … … 232 226 curCost += m_cCUICFlagSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_IC_FLAG ); 233 227 #endif 234 #if LGE_INTER_SDC_E0156228 #if H_3D_INTER_SDC 235 229 curCost += m_cInterSDCFlagSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_INTER_SDC_FLAG ); 236 230 curCost += m_cInterSDCResidualSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_INTER_SDC_RESIDUAL ); … … 268 262 #if H_3D_DIM_DMM 269 263 curCost += m_cDmm1DataSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_DMM1_DATA ); 270 #if !SEC_DMM2_E0146_HHIFIX271 curCost += m_cDmm2DataSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_DMM2_DATA );272 #endif273 264 curCost += m_cDmm3DataSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_DMM3_DATA ); 274 265 #endif … … 340 331 #if H_3D_DIM_DMM 341 332 m_cDmm1DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA ); 342 #if !SEC_DMM2_E0146_HHIFIX343 m_cDmm2DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM2_DATA );344 #endif345 333 m_cDmm3DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM3_DATA ); 346 334 #endif … … 353 341 #endif 354 342 #endif 355 #if LGE_INTER_SDC_E0156343 #if H_3D_INTER_SDC 356 344 m_cInterSDCFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_INTER_SDC_FLAG ); 357 345 m_cInterSDCResidualSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_INTER_SDC_RESIDUAL ); … … 548 536 } 549 537 } 550 551 #if !SEC_DMM2_E0146_HHIFIX552 Void TEncSbac::xCodeDmm2Offset( Int iOffset )553 {554 if( DMM2_DELTAEND_MAX > 0 )555 {556 m_pcBinIf->encodeBin( (iOffset != 0) , m_cDmm2DataSCModel.get(0, 0, 0) );557 if( iOffset != 0 )558 {559 UInt uiAbsValMinus1 = abs(iOffset)-1;560 m_pcBinIf->encodeBin( (uiAbsValMinus1 & 0x01), m_cDmm2DataSCModel.get(0, 0, 0) );561 m_pcBinIf->encodeBin( (uiAbsValMinus1 & 0x02) >> 1, m_cDmm2DataSCModel.get(0, 0, 0) );562 563 UInt uiSign = (iOffset > 0) ? 0 : 1;564 m_pcBinIf->encodeBinEP( uiSign );565 }566 }567 }568 #endif569 538 570 539 Void TEncSbac::xCodeDmm3WedgeIdx( UInt uiIntraIdx, Int iNumBit ) … … 1240 1209 xCodeDmm1WedgeIdx( pcCU->getDmmWedgeTabIdx( dimType, absPartIdx ), g_dmm1TabIdxBits[pcCU->getIntraSizeIdx(absPartIdx)] ); 1241 1210 } break; 1242 #if !SEC_DMM2_E0146_HHIFIX1243 case( DMM2_IDX ):1244 {1245 xCodeDmm2Offset( pcCU->getDmm2DeltaEnd( absPartIdx ) );1246 } break;1247 #endif1248 1211 case( DMM3_IDX ): 1249 1212 { … … 1294 1257 Void TEncSbac::codeIntraDepthMode( TComDataCU* pcCU, UInt absPartIdx ) 1295 1258 { 1296 #if ZJU_DEPTH_INTRA_MODE_E02041297 1259 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}}; 1298 1260 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}}; 1299 #else1300 #if LGE_SDC_REMOVE_DC_E01581301 #if SEC_DMM2_E0146_HHIFIX1302 UInt codeWordTable[3][7] = {{0, 0, 0, 2, 0,6, 7},{0, 2, 3, 4, 5, 6, 7},{0, 1, 0, 0, 0, 0, 0}};1303 UInt codeWordLenTable[3][7] = {{0, 1, 0, 2, 0,3, 3},{2, 3, 3, 3, 3, 3, 3},{1, 1, 0, 0, 0, 0, 0}};1304 #else1305 UInt codeWordTable[3][8] = { { 0, 0, 0, 2, 0, 6, 0, 7 }, { 0, 2, 3, 4, 5, 6, 15, 14 }, { 0, 1, 0, 0, 0, 0, 0, 0 } };1306 UInt codeWordLenTable[3][8] = { { 0, 1, 0, 2, 0, 3, 0, 3 }, { 2, 3, 3, 3, 3, 3, 4, 4 }, { 1, 1, 0, 0, 0, 0, 0, 0 } };1307 #endif1308 #else1309 #if SEC_DMM2_E0146_HHIFIX1310 UInt codeWordTable[3][8] = {{0, 0, 0, 2, 0,6, 0, 7},{0, 2, 3, 4, 5, 6, 14, 15},{0, 2, 0, 0, 0, 0, 3, 0}};1311 UInt codeWordLenTable[3][8] = {{0, 1, 0, 2, 0,3, 0, 3},{2, 3, 3, 3, 3, 3, 4, 4},{1, 2, 0, 0, 0, 0, 2, 0}};1312 #else1313 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}};1314 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}};1315 #endif1316 #endif1317 #endif1318 1261 UInt dir = pcCU->getLumaIntraDir( absPartIdx ); 1319 1262 UInt puIdx = (pcCU->getWidth(absPartIdx) == 64) ? 2 : ( (pcCU->getPartitionSize(absPartIdx) == SIZE_NxN && pcCU->getWidth(absPartIdx) == 8) ? 0 : 1 ); … … 1331 1274 case DMM4_IDX: codeIdx = 4; break; 1332 1275 case DMM3_IDX: codeIdx = 5; break; 1333 #if LGE_SDC_REMOVE_DC_E01581334 #if SEC_DMM2_E0146_HHIFIX1335 1276 case RBC_IDX: codeIdx = 6; break; 1336 #else1337 case DMM2_IDX: codeIdx = 6; break;1338 case RBC_IDX: codeIdx = 7; break;1339 #endif1340 #else1341 #if SEC_DMM2_E0146_HHIFIX1342 case RBC_IDX: codeIdx = 7; break;1343 #else1344 case DMM2_IDX: codeIdx = 7; break;1345 case RBC_IDX: codeIdx = 8; break;1346 #endif1347 #endif1348 1277 default: break; 1349 1278 } … … 1356 1285 { 1357 1286 case PLANAR_IDX: codeIdx = 0; break; 1358 #if !LGE_SDC_REMOVE_DC_E01581359 case DC_IDX: codeIdx = 6; break;1360 #endif1361 1287 default: codeIdx = 2; break; 1362 1288 } 1363 1289 } 1364 1290 #endif 1365 #if ZJU_DEPTH_INTRA_MODE_E02041366 1291 if( puIdx==1 ) 1367 1292 { … … 1375 1300 } 1376 1301 } 1377 #endif1378 1302 //mode coding 1379 1303 for( UInt i = 0; i < codeWordLenTable[puIdx][codeIdx]; i++ ) … … 2304 2228 } 2305 2229 2306 #if LGE_INTER_SDC_E01562230 #if H_3D_INTER_SDC 2307 2231 Void TEncSbac::codeInterSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx ) 2308 2232 {
Note: See TracChangeset for help on using the changeset viewer.