Changeset 646 in 3DVCSoftware for branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibDecoder
- Timestamp:
- 19 Oct 2013, 02:18:06 (11 years ago)
- Location:
- branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibDecoder
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibDecoder/TDecCAVLC.cpp
r622 r646 1253 1253 } 1254 1254 #endif 1255 #if LGE_INTER_SDC_E01561255 #if H_3D_INTER_SDC 1256 1256 READ_FLAG( uiCode, "depth_inter_SDC_flag" ); pcVPS->setInterSDCFlag( i, uiCode ? true : false ); 1257 1257 #endif … … 1640 1640 } 1641 1641 #endif 1642 #if LGE_INTER_SDC_E01561642 #if H_3D_INTER_SDC 1643 1643 READ_FLAG( uiCode, "depth_inter_SDC_flag" ); pcVPS->setInterSDCFlag( i, uiCode ? true : false ); 1644 1644 #endif … … 2651 2651 } 2652 2652 #endif 2653 #if LGE_INTER_SDC_E01562653 #if H_3D_INTER_SDC 2654 2654 Void TDecCavlc::parseInterSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 2655 2655 { -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibDecoder/TDecCAVLC.h
r622 r646 117 117 Void parseICFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 118 118 #endif 119 #if LGE_INTER_SDC_E0156119 #if H_3D_INTER_SDC 120 120 Void parseInterSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 121 121 Void parseInterSDCResidualData ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPart ); -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibDecoder/TDecCu.cpp
r622 r646 458 458 m_pcEntropyDecoder->decodeARPW ( pcCU , uiAbsPartIdx , uiDepth ); 459 459 #endif 460 #if LGE_INTER_SDC_E0156460 #if H_3D_INTER_SDC 461 461 m_pcEntropyDecoder->decodeInterSDCFlag( pcCU, uiAbsPartIdx, uiDepth ); 462 462 #endif … … 525 525 { 526 526 case MODE_INTER: 527 #if LGE_INTER_SDC_E0156527 #if H_3D_INTER_SDC 528 528 if( m_ppcCU[uiDepth]->getInterSDCFlag( 0 ) ) 529 529 { … … 534 534 #endif 535 535 xReconInter( m_ppcCU[uiDepth], uiDepth ); 536 #if LGE_INTER_SDC_E0156536 #if H_3D_INTER_SDC 537 537 } 538 538 #endif … … 578 578 } 579 579 580 #if LGE_INTER_SDC_E0156580 #if H_3D_INTER_SDC 581 581 Void TDecCu::xReconInterSDC( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 582 582 { … … 895 895 // get DC prediction for each segment 896 896 Pel apDCPredValues[2]; 897 #if KWU_SDC_SIMPLE_DC_E0117898 897 m_pcPrediction->analyzeSegmentsSDC(piPred, uiStride, uiWidth, apDCPredValues, uiNumSegments, pbMask, uiMaskStride, uiLumaPredMode); 899 #else900 m_pcPrediction->analyzeSegmentsSDC(piPred, uiStride, uiWidth, apDCPredValues, uiNumSegments, pbMask, uiMaskStride);901 #endif902 898 903 899 // reconstruct residual based on mask + DC residuals -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibDecoder/TDecCu.h
r608 r646 118 118 Void xReconIntraSDC ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 119 119 #endif 120 #if LGE_INTER_SDC_E0156120 #if H_3D_INTER_SDC 121 121 Void xReconInterSDC ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 122 122 #endif -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibDecoder/TDecEntropy.cpp
r622 r646 650 650 #endif 651 651 652 #if LGE_INTER_SDC_E0156652 #if H_3D_INTER_SDC 653 653 if( pcCU->getInterSDCFlag( uiAbsPartIdx ) ) 654 654 { … … 683 683 } 684 684 685 #if LGE_INTER_SDC_E0156685 #if H_3D_INTER_SDC 686 686 Void TDecEntropy::decodeInterSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 687 687 { -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibDecoder/TDecEntropy.h
r608 r646 91 91 virtual Void parseICFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 92 92 #endif 93 #if LGE_INTER_SDC_E015693 #if H_3D_INTER_SDC 94 94 virtual Void parseInterSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 95 95 virtual Void parseInterSDCResidualData ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPart ) = 0; … … 170 170 Void decodeICFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 171 171 #endif 172 #if LGE_INTER_SDC_E0156172 #if H_3D_INTER_SDC 173 173 Void decodeInterSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 174 174 Void decodeInterSDCResidualData ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibDecoder/TDecGop.cpp
r608 r646 226 226 rpcPic->destroyNonDBFilterInfo(); 227 227 } 228 #if MTK_SONY_PROGRESSIVE_MV_COMPRESSION_E0170228 #if H_3D 229 229 rpcPic->compressMotion(2); 230 230 #endif -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibDecoder/TDecSbac.cpp
r622 r646 89 89 #if H_3D_DIM_DMM 90 90 , m_cDmm1DataSCModel ( 1, 1, NUM_DMM1_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 91 #if !SEC_DMM2_E0146_HHIFIX92 , m_cDmm2DataSCModel ( 1, 1, NUM_DMM2_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels)93 #endif94 91 , m_cDmm3DataSCModel ( 1, 1, NUM_DMM3_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 95 92 #endif … … 102 99 #endif 103 100 #endif 104 #if LGE_INTER_SDC_E0156101 #if H_3D_INTER_SDC 105 102 , m_cInterSDCFlagSCModel ( 1, 1, NUM_INTER_SDC_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 106 103 , m_cInterSDCResidualSCModel ( 1, 1, NUM_INTER_SDC_RESIDUAL_CTX , m_contextModels + m_numContextModels, m_numContextModels) … … 179 176 #if H_3D_DIM_DMM 180 177 m_cDmm1DataSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DMM1_DATA ); 181 #if !SEC_DMM2_E0146_HHIFIX182 m_cDmm2DataSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DMM2_DATA );183 #endif184 178 m_cDmm3DataSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DMM3_DATA ); 185 179 #endif … … 192 186 #endif 193 187 #endif 194 #if LGE_INTER_SDC_E0156188 #if H_3D_INTER_SDC 195 189 m_cInterSDCFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_INTER_SDC_FLAG ); 196 190 m_cInterSDCResidualSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_INTER_SDC_RESIDUAL ); … … 255 249 #if H_3D_DIM_DMM 256 250 m_cDmm1DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA ); 257 #if !SEC_DMM2_E0146_HHIFIX258 m_cDmm2DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM2_DATA );259 #endif260 251 m_cDmm3DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM3_DATA ); 261 252 #endif … … 268 259 #endif 269 260 #endif 270 #if LGE_INTER_SDC_E0156261 #if H_3D_INTER_SDC 271 262 m_cInterSDCFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_INTER_SDC_FLAG ); 272 263 m_cInterSDCResidualSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_INTER_SDC_RESIDUAL ); … … 444 435 ruiTabIdx = uiIdx; 445 436 } 446 #if !SEC_DMM2_E0146_HHIFIX 447 Void TDecSbac::xParseDmm2Offset( Int& riOffset ) 448 { 449 Int iDeltaEnd = 0; 450 if( DMM2_DELTAEND_MAX > 0 ) 451 { 452 UInt uiFlag = 0; 453 m_pcTDecBinIf->decodeBin( uiFlag, m_cDmm2DataSCModel.get(0, 0, 0) ); 454 455 if( uiFlag ) 456 { 457 UInt uiAbsValMinus1; 458 UInt uiSymbol; 459 m_pcTDecBinIf->decodeBin( uiSymbol, m_cDmm2DataSCModel.get(0, 0, 0) ); uiAbsValMinus1 = uiSymbol; 460 m_pcTDecBinIf->decodeBin( uiSymbol, m_cDmm2DataSCModel.get(0, 0, 0) ); uiAbsValMinus1 |= uiSymbol << 1; 461 iDeltaEnd = uiAbsValMinus1 + 1; 462 UInt uiSign; 463 m_pcTDecBinIf->decodeBinEP( uiSign ); 464 if( uiSign ) 465 { 466 iDeltaEnd = -iDeltaEnd; 467 } 468 } 469 } 470 riOffset = iDeltaEnd; 471 } 472 #endif 437 473 438 Void TDecSbac::xParseDmm3WedgeIdx( UInt& ruiIntraIdx, Int iNumBit ) 474 439 { … … 1175 1140 pcCU->setDmmWedgeTabIdxSubParts( uiTabIdx, dimType, absPartIdx, depth ); 1176 1141 } break; 1177 #if !SEC_DMM2_E0146_HHIFIX1178 case( DMM2_IDX ):1179 {1180 Int iOffset = 0;1181 xParseDmm2Offset( iOffset );1182 pcCU->setDmm2DeltaEndSubParts( iOffset, absPartIdx, depth );1183 } break;1184 #endif1185 1142 case( DMM3_IDX ): 1186 1143 { … … 1283 1240 else 1284 1241 { 1285 #if ZJU_DEPTH_INTRA_MODE_E0204 1286 UInt maxBinNum = 0; 1287 m_pcTDecBinIf->decodeBinEP(symbol); 1288 if( symbol == 1 ) 1289 { 1290 maxBinNum = 3; 1291 } 1292 else 1293 { 1294 maxBinNum = 2; 1295 symbol = 1; 1296 } 1297 while( binNum<maxBinNum && symbol ) 1298 { 1299 ctxDepthMode = puIdx*3 + ( binNum >= 2 ? 2 : binNum ); 1300 m_pcTDecBinIf->decodeBin(symbol,m_cDepthIntraModeSCModel.get(0,0,ctxDepthMode)); 1301 modeCode = (modeCode<<1)+symbol; 1302 binNum++; 1303 } 1304 if( maxBinNum == 3 ) 1305 { 1306 if ( modeCode == 0 ) { dir = PLANAR_IDX; sdcFlag = 1;} 1307 else if ( modeCode == 2 ) { dir = (2* RBC_IDX+DIM_OFFSET); sdcFlag = 0;} 1308 else if ( modeCode == 6 ) { dir = (2*DMM3_IDX+DIM_OFFSET); sdcFlag = 0;} 1309 else if ( modeCode == 7 ) { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 0;} 1310 } 1311 else 1312 { 1313 if ( modeCode == 0 ) { dir = 5; sdcFlag = 0;} 1314 else if ( modeCode == 2 ) { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 1;} 1315 else if ( modeCode == 3 ) { dir = (2*DMM4_IDX+DIM_OFFSET); sdcFlag = 0;} 1316 } 1317 #else 1318 ctxDepthMode = puIdx*3 ; 1319 m_pcTDecBinIf->decodeBin( symbol, m_cDepthIntraModeSCModel.get(0,0,ctxDepthMode) ); 1320 modeCode = (modeCode<<1) + symbol; 1321 if( !symbol ) 1322 { 1323 ctxDepthMode = puIdx*3 + 1; 1324 m_pcTDecBinIf->decodeBin( symbol, m_cDepthIntraModeSCModel.get(0,0,ctxDepthMode) ); 1325 modeCode = (modeCode<<1) + symbol; 1326 if( symbol ) 1327 { 1328 ctxDepthMode = puIdx*3 + 2; 1329 m_pcTDecBinIf->decodeBin( symbol, m_cDepthIntraModeSCModel.get(0,0,ctxDepthMode) ); 1330 modeCode = (modeCode<<1) + symbol; 1331 } 1242 UInt maxBinNum = 0; 1243 m_pcTDecBinIf->decodeBinEP(symbol); 1244 if( symbol == 1 ) 1245 { 1246 maxBinNum = 3; 1332 1247 } 1333 1248 else 1334 1249 { 1335 ctxDepthMode = puIdx*3 + 1; 1336 m_pcTDecBinIf->decodeBin( symbol, m_cDepthIntraModeSCModel.get(0,0,ctxDepthMode) ); 1337 modeCode = (modeCode<<1) + symbol; 1338 if( !symbol ) 1339 { 1340 ctxDepthMode = puIdx*3 + 2; 1341 m_pcTDecBinIf->decodeBin( symbol, m_cDepthIntraModeSCModel.get(0,0,ctxDepthMode) ); 1342 modeCode = (modeCode<<1) + symbol; 1343 } 1344 else 1345 { 1346 binNum = 0; 1347 #if LGE_SDC_REMOVE_DC_E0158 1348 #if !SEC_DMM2_E0146_HHIFIX 1349 while( symbol && binNum < 2 ) 1350 #endif 1351 #else 1352 #if SEC_DMM2_E0146_HHIFIX 1353 while( symbol && binNum < 2 ) 1354 #else 1355 while( symbol && binNum < 3 ) 1356 #endif 1357 #endif 1358 { 1359 ctxDepthMode = puIdx*3 + 2; 1360 m_pcTDecBinIf->decodeBin( symbol, m_cDepthIntraModeSCModel.get(0,0,ctxDepthMode) ); 1361 modeCode = (modeCode<<1) + symbol; 1362 binNum++; 1363 } 1364 } 1365 } 1366 if( modeCode == 0 ) { dir = PLANAR_IDX; sdcFlag = 1;} 1367 else if( modeCode == 2 ) { dir = 5; sdcFlag = 0;} 1368 else if( modeCode == 3 ) { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 1;} 1369 else if( modeCode == 4 ) { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 0;} 1370 else if( modeCode == 5 ) { dir = (2*DMM4_IDX+DIM_OFFSET); sdcFlag = 0;} 1371 else if( modeCode == 6 ) { dir = (2*DMM3_IDX+DIM_OFFSET); sdcFlag = 0;} 1372 #if LGE_SDC_REMOVE_DC_E0158 1373 #if SEC_DMM2_E0146_HHIFIX 1374 else if( modeCode == 7 ) { dir = (2* RBC_IDX+DIM_OFFSET); sdcFlag = 0;} 1375 #else 1376 else if( modeCode == 14 ) { dir = (2* RBC_IDX+DIM_OFFSET); sdcFlag = 0;} 1377 else if( modeCode == 15 ) { dir = (2*DMM2_IDX+DIM_OFFSET); sdcFlag = 0;} 1378 #endif 1379 #else 1380 else if( modeCode == 14 ) { dir = DC_IDX; sdcFlag = 1;} 1381 #if SEC_DMM2_E0146_HHIFIX 1382 else if( modeCode == 15 ) { dir = (2* RBC_IDX+DIM_OFFSET); sdcFlag = 0;} 1383 #else 1384 else if( modeCode == 30 ) { dir = (2* RBC_IDX+DIM_OFFSET); sdcFlag = 0;} 1385 else if( modeCode == 31 ) { dir = (2*DMM2_IDX+DIM_OFFSET); sdcFlag = 0;} 1386 #endif 1387 #endif 1388 #endif 1250 maxBinNum = 2; 1251 symbol = 1; 1252 } 1253 while( binNum<maxBinNum && symbol ) 1254 { 1255 ctxDepthMode = puIdx*3 + ( binNum >= 2 ? 2 : binNum ); 1256 m_pcTDecBinIf->decodeBin(symbol,m_cDepthIntraModeSCModel.get(0,0,ctxDepthMode)); 1257 modeCode = (modeCode<<1)+symbol; 1258 binNum++; 1259 } 1260 if( maxBinNum == 3 ) 1261 { 1262 if ( modeCode == 0 ) { dir = PLANAR_IDX; sdcFlag = 1;} 1263 else if ( modeCode == 2 ) { dir = (2* RBC_IDX+DIM_OFFSET); sdcFlag = 0;} 1264 else if ( modeCode == 6 ) { dir = (2*DMM3_IDX+DIM_OFFSET); sdcFlag = 0;} 1265 else if ( modeCode == 7 ) { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 0;} 1266 } 1267 else 1268 { 1269 if ( modeCode == 0 ) { dir = 5; sdcFlag = 0;} 1270 else if ( modeCode == 2 ) { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 1;} 1271 else if ( modeCode == 3 ) { dir = (2*DMM4_IDX+DIM_OFFSET); sdcFlag = 0;} 1272 } 1389 1273 } 1390 1274 pcCU->setLumaIntraDirSubParts( (UChar)dir, absPartIdx, depth ); … … 2338 2222 #endif 2339 2223 2340 #if LGE_INTER_SDC_E01562224 #if H_3D_INTER_SDC 2341 2225 Void TDecSbac::parseInterSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 2342 2226 { -
branches/HTM-8.2-dev0-Cleanup/source/Lib/TLibDecoder/TDecSbac.h
r622 r646 102 102 #if H_3D_DIM_DMM 103 103 Void xParseDmm1WedgeIdx ( UInt& ruiTabIdx, Int iNumBit ); 104 #if !SEC_DMM2_E0146_HHIFIX105 Void xParseDmm2Offset ( Int& riOffset );106 #endif107 104 Void xParseDmm3WedgeIdx ( UInt& ruiIntraIdx, Int iNumBit ); 108 105 #endif … … 114 111 #endif 115 112 #endif 116 #if LGE_INTER_SDC_E0156113 #if H_3D_INTER_SDC 117 114 Void parseInterSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 118 115 Void parseInterSDCResidualData ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPart ); … … 216 213 #if H_3D_DIM_DMM 217 214 ContextModel3DBuffer m_cDmm1DataSCModel; 218 #if !SEC_DMM2_E0146_HHIFIX219 ContextModel3DBuffer m_cDmm2DataSCModel;220 #endif221 215 ContextModel3DBuffer m_cDmm3DataSCModel; 222 216 #endif … … 229 223 #endif 230 224 #endif 231 #if LGE_INTER_SDC_E0156225 #if H_3D_INTER_SDC 232 226 ContextModel3DBuffer m_cInterSDCFlagSCModel; 233 227 ContextModel3DBuffer m_cInterSDCResidualSCModel;
Note: See TracChangeset for help on using the changeset viewer.