Changeset 764 in 3DVCSoftware for branches/HTM-9.2-dev0/source/Lib/TLibDecoder
- Timestamp:
- 12 Jan 2014, 00:23:20 (11 years ago)
- Location:
- branches/HTM-9.2-dev0/source/Lib/TLibDecoder
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-9.2-dev0/source/Lib/TLibDecoder/TDecCAVLC.cpp
r758 r764 2550 2550 } 2551 2551 #if H_3D_IC 2552 #if SEC_ONLY_TEXTURE_IC_F01512553 2552 else if( rpcSlice->getViewIndex() && ( rpcSlice->getSliceType() == P_SLICE || rpcSlice->getSliceType() == B_SLICE ) && !rpcSlice->getIsDepth()) 2554 #else2555 else if( rpcSlice->getViewIndex() && ( rpcSlice->getSliceType() == P_SLICE || rpcSlice->getSliceType() == B_SLICE ) )2556 #endif2557 2553 { 2558 2554 UInt uiCodeTmp = 0; -
branches/HTM-9.2-dev0/source/Lib/TLibDecoder/TDecCu.cpp
r758 r764 390 390 UInt uiMergeIndex = pcCU->getMergeIndex(uiAbsPartIdx); 391 391 392 #if LGE_SHARP_VSP_INHERIT_F0104393 392 #if H_3D_IC 394 393 m_pcEntropyDecoder->decodeICFlag( pcCU, uiAbsPartIdx, uiDepth ); … … 396 395 #if H_3D_ARP 397 396 m_pcEntropyDecoder->decodeARPW( pcCU , uiAbsPartIdx , uiDepth ); 398 #endif399 397 #endif 400 398 … … 411 409 puhInterDirSP = new UChar[pcCU->getPic()->getPicSym()->getNumPartition()]; 412 410 #endif 413 #if ETRIKHU_MERGE_REUSE_F0093414 411 m_ppcCU[uiDepth]->initAvailableFlags(); 415 412 m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); … … 419 416 #endif 420 417 , numValidMergeCand, uiMergeIndex ); 421 #else422 m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo, numValidMergeCand, uiMergeIndex );423 #endif424 418 pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiAbsPartIdx, 0, uiDepth ); 425 419 #else 426 #if ETRIKHU_MERGE_REUSE_F0093420 #if H_3D 427 421 m_ppcCU[uiDepth]->initAvailableFlags(); 428 422 m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); … … 496 490 #endif 497 491 #endif 498 #if !LGE_SHARP_VSP_INHERIT_F0104499 #if H_3D_IC500 m_pcEntropyDecoder->decodeICFlag( pcCU, uiAbsPartIdx, uiDepth );501 #endif502 #if H_3D_ARP503 m_pcEntropyDecoder->decodeARPW( pcCU , uiAbsPartIdx , uiDepth );504 #endif505 #endif506 492 507 493 xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast ); … … 534 520 // prediction mode ( Intra : direction mode, Inter : Mv, reference idx ) 535 521 m_pcEntropyDecoder->decodePredInfo( pcCU, uiAbsPartIdx, uiDepth, m_ppcCU[uiDepth]); 536 #if !LGE_SHARP_VSP_INHERIT_F0104537 #if H_3D_IC538 m_pcEntropyDecoder->decodeICFlag( pcCU, uiAbsPartIdx, uiDepth );539 #endif540 #if H_3D_ARP541 m_pcEntropyDecoder->decodeARPW ( pcCU , uiAbsPartIdx , uiDepth );542 #endif543 #endif544 522 #if H_3D_INTER_SDC 545 523 m_pcEntropyDecoder->decodeInterSDCFlag( pcCU, uiAbsPartIdx, uiDepth ); … … 780 758 for( UInt uiX = 0; uiX < uiWidth; uiX++ ) 781 759 { 782 #if LGE_PRED_RES_CODING_DLT_DOMAIN_F0159760 #if H_3D 783 761 #if DLT_DIFF_CODING_IN_PPS 784 762 if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getPPS()->getDLT()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) ) … … 797 775 pReco [ uiX ] = ClipY( pPred[ uiX ] + pResi[ uiX ] ); 798 776 } 799 #else800 pReco [ uiX ] = ClipY( pPred[ uiX ] + pResi[ uiX ] );801 777 #endif 802 778 pRecIPred[ uiX ] = pReco[ uiX ]; -
branches/HTM-9.2-dev0/source/Lib/TLibDecoder/TDecEntropy.cpp
r735 r764 111 111 pcCU->setICFlagSubParts( false , uiAbsPartIdx, 0, uiDepth ); 112 112 113 #if SEC_ONLY_TEXTURE_IC_F0151114 113 if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() ) 115 #else116 if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) )117 #endif118 114 { 119 115 return; … … 245 241 decodeMergeIndex( pcCU, uiPartIdx, uiSubPartIdx, uiDepth ); 246 242 UInt uiMergeIndex = pcCU->getMergeIndex(uiSubPartIdx); 247 #if LGE_SHARP_VSP_INHERIT_F0104248 243 #if H_3D_IC 249 244 decodeICFlag( pcCU, uiAbsPartIdx, uiDepth ); … … 251 246 #if H_3D_ARP 252 247 decodeARPW ( pcCU, uiAbsPartIdx, uiDepth ); 253 #endif254 248 #endif 255 249 if ( pcCU->getSlice()->getPPS()->getLog2ParallelMergeLevelMinus2() && ePartSize != SIZE_2Nx2N && pcSubCU->getWidth( 0 ) <= 8 ) … … 265 259 memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM); 266 260 #endif 267 #if ETRIKHU_MERGE_REUSE_F0093268 261 pcSubCU->initAvailableFlags(); 269 262 pcSubCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand); … … 273 266 #endif 274 267 , numValidMergeCand ); 275 #else276 pcSubCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo, numValidMergeCand );277 #endif278 268 pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth ); 279 269 … … 283 273 } 284 274 #else 285 #if ETRIKHU_MERGE_REUSE_F0093275 #if H_3D 286 276 pcSubCU->initAvailableFlags(); 287 277 pcSubCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand); … … 306 296 memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM); 307 297 #endif 308 #if ETRIKHU_MERGE_REUSE_F0093309 298 pcSubCU->initAvailableFlags(); 310 299 pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); … … 314 303 #endif 315 304 ,numValidMergeCand, uiMergeIndex ); 316 #else317 pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo,numValidMergeCand, uiMergeIndex );318 #endif319 305 pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth ); 320 306 if(vspFlag[uiMergeIndex]) … … 323 309 } 324 310 #else 325 #if ETRIKHU_MERGE_REUSE_F0093311 #if H_3D 326 312 pcSubCU->initAvailableFlags(); 327 313 pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); … … 381 367 } 382 368 } 383 #if LGE_SHARP_VSP_INHERIT_F0104384 369 #if H_3D_IC 385 370 decodeICFlag( pcCU, uiAbsPartIdx, uiDepth ); … … 387 372 #if H_3D_ARP 388 373 decodeARPW ( pcCU, uiAbsPartIdx, uiDepth ); 389 #endif390 374 #endif 391 375 } -
branches/HTM-9.2-dev0/source/Lib/TLibDecoder/TDecSbac.cpp
r758 r764 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_DMM3_RBC_F014792 , m_cDmm3DataSCModel ( 1, 1, NUM_DMM3_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels)93 #endif94 #endif95 #if H_3D_DIM_RBC96 , m_cRbcDataSCModel ( 1, 1, NUM_RBC_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels)97 91 #endif 98 92 #if H_3D_DIM_SDC … … 178 172 #if H_3D_DIM_DMM 179 173 m_cDmm1DataSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DMM1_DATA ); 180 #if !SEC_DMM3_RBC_F0147181 m_cDmm3DataSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DMM3_DATA );182 #endif183 #endif184 #if H_3D_DIM_RBC185 m_cRbcDataSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_RBC_DATA );186 174 #endif 187 175 #if H_3D_DIM_SDC … … 253 241 #if H_3D_DIM_DMM 254 242 m_cDmm1DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA ); 255 #if !SEC_DMM3_RBC_F0147256 m_cDmm3DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM3_DATA );257 #endif258 #endif259 #if H_3D_DIM_RBC260 m_cRbcDataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_RBC_DATA );261 243 #endif 262 244 #if H_3D_DIM_SDC … … 414 396 } 415 397 416 #if QC_DIM_DELTADC_UNIFY_F0132417 398 Void TDecSbac::xParseDimDeltaDC( Pel& rValDeltaDC, UInt uiNumSeg ) 418 399 { … … 431 412 } 432 413 } 433 #else 434 Void TDecSbac::xParseDimDeltaDC( Pel& rValDeltaDC, UInt dimType ) 435 { 436 UInt absValDeltaDC = 0; 437 xReadExGolombLevel( absValDeltaDC, m_cDdcDataSCModel.get(0, 0, (RBC_IDX == dimType) ? 1 : 0) ); 438 rValDeltaDC = (Pel)absValDeltaDC; 439 440 if( rValDeltaDC != 0 ) 441 { 442 UInt uiSign; 443 m_pcTDecBinIf->decodeBinEP( uiSign ); 444 if ( uiSign ) 445 { 446 rValDeltaDC = -rValDeltaDC; 447 } 448 } 449 } 450 #endif 414 451 415 452 416 #if H_3D_DIM_DMM … … 461 425 ruiTabIdx = uiIdx; 462 426 } 463 #if !SEC_DMM3_RBC_F0147 464 Void TDecSbac::xParseDmm3WedgeIdx( UInt& ruiIntraIdx, Int iNumBit ) 465 { 466 UInt uiSymbol, uiIdx = 0; 467 for( Int i = 0; i < iNumBit; i++ ) 468 { 469 m_pcTDecBinIf->decodeBin( uiSymbol, m_cDmm3DataSCModel.get(0, 0, 0) ); 470 uiIdx += uiSymbol << i; 471 } 472 ruiIntraIdx = uiIdx; 473 } 474 #endif 475 #endif 476 #if H_3D_DIM_RBC 477 Void TDecSbac::xParseRbcEdge( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 478 { 479 UInt uiSymbol = 0; 480 481 // 1. Top(0) or Left(1) 482 UChar ucLeft; 483 m_pcTDecBinIf->decodeBinEP( uiSymbol ); 484 ucLeft = uiSymbol; 485 486 // 2. Start position (lowest bit first) 487 UChar ucStart = 0; 488 for( UInt ui = 0; ui < 6 - uiDepth; ui++ ) 489 { 490 m_pcTDecBinIf->decodeBinEP( uiSymbol ); 491 ucStart |= (uiSymbol << ui); 492 } 493 494 // 3. Number of edges 495 UChar ucMax = 0; 496 for( UInt ui = 0; ui < 7 - uiDepth; ui++ ) 497 { 498 m_pcTDecBinIf->decodeBinEP( uiSymbol ); 499 ucMax |= (uiSymbol << ui); 500 } 501 ucMax++; // +1 502 503 // 4. Edges 504 UChar* pucSymbolList = (UChar*) xMalloc( UChar, 256 * RBC_MAX_EDGE_NUM_PER_4x4 ); 505 for( Int iPtr = 0; iPtr < ucMax; iPtr++ ) 506 { 507 UChar ucEdge = 0; 508 UInt uiReorderEdge = 0; 509 for( UInt ui = 0; ui < 6; ui++ ) 510 { 511 m_pcTDecBinIf->decodeBin( uiSymbol, m_cRbcDataSCModel.get( 0, 0, 0 ) ); 512 ucEdge <<= 1; 513 ucEdge |= uiSymbol; 514 if( uiSymbol == 0 ) 515 break; 516 } 517 518 switch( ucEdge ) 519 { 520 case 0 : // "0" 521 uiReorderEdge = 0; 522 break; 523 case 2 : // "10" 524 uiReorderEdge = 1; 525 break; 526 case 6 : // "110" 527 uiReorderEdge = 2; 528 break; 529 case 14 : // "1110" 530 uiReorderEdge = 3; 531 break; 532 case 30 : // "11110" 533 uiReorderEdge = 4; 534 break; 535 case 62 : // "111110" 536 uiReorderEdge = 5; 537 break; 538 case 63 : // "111111" 539 uiReorderEdge = 6; 540 break; 541 default : 542 printf("parseIntraEdgeChain: error (unknown code %d)\n",ucEdge); 543 assert(false); 544 break; 545 } 546 pucSymbolList[iPtr] = uiReorderEdge; 547 } 548 ///////////////////// 549 // Edge Reconstruction 550 Bool* pbRegion = pcCU->getEdgePartition( uiAbsPartIdx ); 551 pcCU->reconPartition( uiAbsPartIdx, uiDepth, ucLeft == 1, ucStart, ucMax, pucSymbolList, pbRegion ); 552 xFree( pucSymbolList ); 553 } 554 #endif 427 #endif 428 555 429 #if H_3D_DIM_SDC 556 430 Void TDecSbac::xParseSDCResidualData ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiSegment ) … … 1175 1049 pcCU->setDmmWedgeTabIdxSubParts( uiTabIdx, dimType, absPartIdx, depth ); 1176 1050 } break; 1177 #if !SEC_DMM3_RBC_F01471178 case( DMM3_IDX ):1179 {1180 UInt uiIntraIdx = 0;1181 xParseDmm3WedgeIdx( uiIntraIdx, g_dmm3IntraTabIdxBits[pcCU->getIntraSizeIdx(absPartIdx)] );1182 pcCU->setDmm3IntraTabIdxSubParts( uiIntraIdx, absPartIdx, depth );1183 } break;1184 #endif1185 1051 case( DMM4_IDX ): break; 1186 1052 #endif 1187 #if H_3D_DIM_RBC1188 case( RBC_IDX ):1189 {1190 xParseRbcEdge( pcCU, absPartIdx, depth );1191 } break;1192 #endif1193 1053 default: break; 1194 1054 } 1195 1055 1196 #if H_3D_DIM_SDC && !QC_DIM_DELTADC_UNIFY_F0132 1197 if( pcCU->getSDCFlag(absPartIdx) ) 1198 { 1199 assert(pcCU->getPartitionSize(absPartIdx)==SIZE_2Nx2N); 1200 pcCU->setTrIdxSubParts(0, absPartIdx, depth); 1201 pcCU->setCbfSubParts(1, 1, 1, absPartIdx, depth); 1202 1203 UInt uiNumSegments = ( dir == DC_IDX || dir == PLANAR_IDX )? 1 : 2; 1204 for (UInt uiSeg=0; uiSeg<uiNumSegments; uiSeg++) 1205 { 1206 xParseSDCResidualData(pcCU, absPartIdx, depth, uiSeg); 1207 } 1208 } 1209 else 1210 { 1211 #endif 1212 #if QC_DIM_DELTADC_UNIFY_F0132 1213 if( dimType < DIM_NUM_TYPE || pcCU->getSDCFlag( absPartIdx ) ) 1214 #else 1215 if( dimType < DIM_NUM_TYPE ) 1216 #endif 1217 { 1218 UInt symbol; 1219 #if QC_DIM_DELTADC_UNIFY_F0132 1220 UInt uiNumSegments = ( dir == PLANAR_IDX ) ? 1 : 2; 1056 if( dimType < DIM_NUM_TYPE || pcCU->getSDCFlag( absPartIdx ) ) 1057 { 1058 UInt symbol; 1059 UInt uiNumSegments = ( dir == PLANAR_IDX ) ? 1 : 2; 1060 1061 if( pcCU->getSDCFlag( absPartIdx ) ) 1062 { 1063 assert(pcCU->getPartitionSize(absPartIdx)==SIZE_2Nx2N); 1064 pcCU->setTrIdxSubParts(0, absPartIdx, depth); 1065 pcCU->setCbfSubParts(1, 1, 1, absPartIdx, depth); 1066 } 1067 1068 m_pcTDecBinIf->decodeBin( symbol, m_cDdcFlagSCModel.get(0, 0, uiNumSegments-1) ); 1069 1070 if( symbol ) 1071 { 1072 if( !pcCU->getSDCFlag( absPartIdx ) ) 1073 { 1074 dir += symbol; 1075 } 1076 } 1077 for( UInt segment = 0; segment < uiNumSegments; segment++ ) 1078 { 1079 Pel valDeltaDC = 0; 1080 if( symbol ) 1081 { 1082 xParseDimDeltaDC( valDeltaDC, uiNumSegments ); 1083 } 1221 1084 1222 1085 if( pcCU->getSDCFlag( absPartIdx ) ) 1223 1086 { 1224 assert(pcCU->getPartitionSize(absPartIdx)==SIZE_2Nx2N); 1225 pcCU->setTrIdxSubParts(0, absPartIdx, depth); 1226 pcCU->setCbfSubParts(1, 1, 1, absPartIdx, depth); 1227 } 1228 1229 m_pcTDecBinIf->decodeBin( symbol, m_cDdcFlagSCModel.get(0, 0, uiNumSegments-1) ); 1230 1231 if( symbol ) 1232 { 1233 if( !pcCU->getSDCFlag( absPartIdx ) ) 1234 { 1235 dir += symbol; 1236 } 1237 } 1238 for( UInt segment = 0; segment < uiNumSegments; segment++ ) 1239 { 1240 Pel valDeltaDC = 0; 1241 if( symbol ) 1242 { 1243 xParseDimDeltaDC( valDeltaDC, uiNumSegments ); 1244 } 1245 1246 if( pcCU->getSDCFlag( absPartIdx ) ) 1247 { 1248 pcCU->setSDCSegmentDCOffset( valDeltaDC, segment, absPartIdx ); 1249 } 1250 else 1251 { 1252 pcCU->setDimDeltaDC( dimType, segment, absPartIdx, valDeltaDC ); 1253 } 1254 } 1255 #else 1256 m_pcTDecBinIf->decodeBin( symbol, m_cDdcFlagSCModel.get(0, 0, (RBC_IDX == dimType) ? 1 : 0) ); 1257 if( symbol ) 1258 { 1259 dir += symbol; 1260 for( UInt segment = 0; segment < 2; segment++ ) 1261 { 1262 Pel valDeltaDC = 0; 1263 xParseDimDeltaDC( valDeltaDC, dimType ); 1264 pcCU->setDimDeltaDC( dimType, segment, absPartIdx, valDeltaDC ); 1265 } 1266 } 1267 #endif 1268 } 1269 #if H_3D_DIM_SDC && !QC_DIM_DELTADC_UNIFY_F0132 1270 } 1271 #endif 1087 pcCU->setSDCSegmentDCOffset( valDeltaDC, segment, absPartIdx ); 1088 } 1089 else 1090 { 1091 pcCU->setDimDeltaDC( dimType, segment, absPartIdx, valDeltaDC ); 1092 } 1093 } 1094 } 1272 1095 1273 1096 pcCU->setLumaIntraDirSubParts( (UChar)dir, absPartIdx, depth ); … … 1297 1120 else if( puIdx == 0 ) 1298 1121 { 1299 #if SEC_DMM3_RBC_F01471300 1122 while( binNum < 1 && symbol ) 1301 #else1302 while( binNum < 3 && symbol )1303 #endif1304 1123 { 1305 1124 ctxDepthMode = puIdx*3 + ((binNum >= 2) ? 2 : binNum); … … 1308 1127 binNum++; 1309 1128 } 1310 #if SEC_DMM3_RBC_F0147 1311 if( modeCode == 0 ) { dir = 0; sdcFlag = 0;} 1312 else if( modeCode == 1 ) { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 0;} 1313 #else 1314 if( modeCode == 0 ) { dir = 0; sdcFlag = 0;} 1315 else if( modeCode == 2 ) { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 0;} 1316 else if( modeCode == 6 ) { dir = (2*DMM3_IDX+DIM_OFFSET); sdcFlag = 0;} 1317 else if( modeCode == 7 ) { dir = (2* RBC_IDX+DIM_OFFSET); sdcFlag = 0;} 1318 #endif 1129 if( modeCode == 0 ) 1130 { 1131 dir = 0; 1132 sdcFlag = 0; 1133 } 1134 else if ( modeCode == 1 ) 1135 { 1136 dir = (2*DMM1_IDX+DIM_OFFSET); 1137 sdcFlag = 0; 1138 } 1319 1139 } 1320 1140 else 1321 1141 { 1322 #if SEC_DMM3_RBC_F01471323 1142 while( binNum < 4 && symbol ) 1324 1143 { … … 1333 1152 else if ( modeCode == 14 ) { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 0;} 1334 1153 else if ( modeCode == 15 ) { dir = (2*DMM4_IDX+DIM_OFFSET); sdcFlag = 0;} 1335 #else 1336 UInt maxBinNum = 0; 1337 m_pcTDecBinIf->decodeBinEP(symbol); 1338 if( symbol == 1 ) 1339 { 1340 maxBinNum = 3; 1341 } 1342 else 1343 { 1344 maxBinNum = 2; 1345 symbol = 1; 1346 } 1347 while( binNum<maxBinNum && symbol ) 1348 { 1349 ctxDepthMode = puIdx*3 + ( binNum >= 2 ? 2 : binNum ); 1350 m_pcTDecBinIf->decodeBin(symbol,m_cDepthIntraModeSCModel.get(0,0,ctxDepthMode)); 1351 modeCode = (modeCode<<1)+symbol; 1352 binNum++; 1353 } 1354 if( maxBinNum == 3 ) 1355 { 1356 if ( modeCode == 0 ) { dir = PLANAR_IDX; sdcFlag = 1;} 1357 else if ( modeCode == 2 ) { dir = (2* RBC_IDX+DIM_OFFSET); sdcFlag = 0;} 1358 else if ( modeCode == 6 ) { dir = (2*DMM3_IDX+DIM_OFFSET); sdcFlag = 0;} 1359 else if ( modeCode == 7 ) { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 0;} 1360 } 1361 else 1362 { 1363 if ( modeCode == 0 ) { dir = 5; sdcFlag = 0;} 1364 else if ( modeCode == 2 ) { dir = (2*DMM1_IDX+DIM_OFFSET); sdcFlag = 1;} 1365 else if ( modeCode == 3 ) { dir = (2*DMM4_IDX+DIM_OFFSET); sdcFlag = 0;} 1366 } 1367 #endif 1154 1368 1155 } 1369 1156 pcCU->setLumaIntraDirSubParts( (UChar)dir, absPartIdx, depth ); -
branches/HTM-9.2-dev0/source/Lib/TLibDecoder/TDecSbac.h
r758 r764 103 103 #if H_3D_DIM 104 104 Void xReadExGolombLevel ( UInt& ruiSymbol, ContextModel& rcSCModel ); 105 #if QC_DIM_DELTADC_UNIFY_F0132106 105 Void xParseDimDeltaDC ( Pel& rValDeltaDC, UInt uiNumSeg ); 107 #else108 Void xParseDimDeltaDC ( Pel& rValDeltaDC, UInt dimType );109 #endif110 106 #if H_3D_DIM_DMM 111 107 Void xParseDmm1WedgeIdx ( UInt& ruiTabIdx, Int iNumBit ); 112 #if !SEC_DMM3_RBC_F0147113 Void xParseDmm3WedgeIdx ( UInt& ruiIntraIdx, Int iNumBit );114 #endif115 #endif116 #if H_3D_DIM_RBC117 Void xParseRbcEdge ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );118 108 #endif 119 109 #if H_3D_DIM_SDC … … 223 213 #if H_3D_DIM_DMM 224 214 ContextModel3DBuffer m_cDmm1DataSCModel; 225 #if !SEC_DMM3_RBC_F0147226 ContextModel3DBuffer m_cDmm3DataSCModel;227 #endif228 #endif229 #if H_3D_DIM_RBC230 ContextModel3DBuffer m_cRbcDataSCModel;231 215 #endif 232 216 #if H_3D_DIM_SDC
Note: See TracChangeset for help on using the changeset viewer.