Changeset 724 in 3DVCSoftware for trunk/source/Lib/TLibDecoder/TDecEntropy.cpp
- Timestamp:
- 30 Nov 2013, 12:29:49 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibDecoder/TDecEntropy.cpp
r655 r724 111 111 pcCU->setICFlagSubParts( false , uiAbsPartIdx, 0, uiDepth ); 112 112 113 #if SEC_ONLY_TEXTURE_IC_F0151 114 if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() ) 115 #else 113 116 if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) ) 117 #endif 114 118 { 115 119 return; … … 209 213 UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS]; 210 214 #endif 211 215 #if MTK_SPIVMP_F0110 216 Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM]; 217 TComMvField* pcMvFieldSP; 218 UChar* puhInterDirSP; 219 pcMvFieldSP = new TComMvField[pcCU->getPic()->getPicSym()->getNumPartition()*2]; 220 puhInterDirSP = new UChar[pcCU->getPic()->getPicSym()->getNumPartition()]; 221 #endif 212 222 for ( UInt ui = 0; ui < pcCU->getSlice()->getMaxNumMergeCand(); ui++ ) 213 223 { … … 235 245 decodeMergeIndex( pcCU, uiPartIdx, uiSubPartIdx, uiDepth ); 236 246 UInt uiMergeIndex = pcCU->getMergeIndex(uiSubPartIdx); 247 #if LGE_SHARP_VSP_INHERIT_F0104 248 #if H_3D_IC 249 decodeICFlag( pcCU, uiAbsPartIdx, uiDepth ); 250 #endif 251 #if H_3D_ARP 252 decodeARPW ( pcCU, uiAbsPartIdx, uiDepth ); 253 #endif 254 #endif 237 255 if ( pcCU->getSlice()->getPPS()->getLog2ParallelMergeLevelMinus2() && ePartSize != SIZE_2Nx2N && pcSubCU->getWidth( 0 ) <= 8 ) 238 256 { … … 244 262 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 245 263 InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM]; 264 #if MTK_SPIVMP_F0110 265 memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM); 266 #endif 267 #if ETRIKHU_MERGE_REUSE_F0093 268 pcSubCU->initAvailableFlags(); 269 pcSubCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand); 270 pcSubCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo 271 #if MTK_SPIVMP_F0110 272 , bSPIVMPFlag, pcMvFieldSP, puhInterDirSP 273 #endif 274 , numValidMergeCand ); 275 #else 246 276 pcSubCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo, numValidMergeCand ); 277 #endif 247 278 pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth ); 248 279 … … 252 283 } 253 284 #else 285 #if ETRIKHU_MERGE_REUSE_F0093 286 pcSubCU->initAvailableFlags(); 287 pcSubCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand); 288 pcSubCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand ); 289 290 #else 254 291 pcSubCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand ); 292 #endif 255 293 #endif 256 294 isMerged = true; … … 265 303 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 266 304 InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM]; 305 #if MTK_SPIVMP_F0110 306 memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM); 307 #endif 308 #if ETRIKHU_MERGE_REUSE_F0093 309 pcSubCU->initAvailableFlags(); 310 pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 311 pcSubCU->xGetInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo 312 #if MTK_SPIVMP_F0110 313 , bSPIVMPFlag, pcMvFieldSP, puhInterDirSP 314 #endif 315 ,numValidMergeCand, uiMergeIndex ); 316 #else 267 317 pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo,numValidMergeCand, uiMergeIndex ); 318 #endif 268 319 pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth ); 269 320 if(vspFlag[uiMergeIndex]) … … 272 323 } 273 324 #else 325 #if ETRIKHU_MERGE_REUSE_F0093 326 pcSubCU->initAvailableFlags(); 274 327 pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 328 pcSubCU->xGetInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 329 #else 330 pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 331 #endif 275 332 #endif 276 333 } … … 288 345 } 289 346 } 347 #if MTK_SPIVMP_F0110 348 pcCU->setSPIVMPFlagSubParts(bSPIVMPFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth ); 349 if (bSPIVMPFlag[uiMergeIndex] != 0) 350 { 351 Int iWidth, iHeight; 352 UInt uiIdx; 353 pcCU->getPartIndexAndSize( uiPartIdx, uiIdx, iWidth, iHeight, uiSubPartIdx, true ); 354 355 UInt uiSPAddr; 356 357 Int iNumSPInOneLine, iNumSP, iSPWidth, iSPHeight; 358 359 pcCU->getSPPara(iWidth, iHeight, iNumSP, iNumSPInOneLine, iSPWidth, iSPHeight); 360 361 for (Int iPartitionIdx = 0; iPartitionIdx < iNumSP; iPartitionIdx++) 362 { 363 pcCU->getSPAbsPartIdx(uiSubPartIdx, iSPWidth, iSPHeight, iPartitionIdx, iNumSPInOneLine, uiSPAddr); 364 pcCU->setInterDirSP(puhInterDirSP[iPartitionIdx], uiSPAddr, iSPWidth, iSPHeight); 365 pcCU->getCUMvField( REF_PIC_LIST_0 )->setMvFieldSP(pcCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx], iSPWidth, iSPHeight); 366 pcCU->getCUMvField( REF_PIC_LIST_1 )->setMvFieldSP(pcCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx + 1], iSPWidth, iSPHeight); 367 } 368 } 369 #endif 290 370 } 291 371 else … … 301 381 } 302 382 } 383 #if LGE_SHARP_VSP_INHERIT_F0104 384 #if H_3D_IC 385 decodeICFlag( pcCU, uiAbsPartIdx, uiDepth ); 386 #endif 387 #if H_3D_ARP 388 decodeARPW ( pcCU, uiAbsPartIdx, uiDepth ); 389 #endif 390 #endif 303 391 } 304 392 #if H_3D_VSP … … 313 401 } 314 402 } 403 #if MTK_SPIVMP_F0110 404 delete pcMvFieldSP; 405 delete puhInterDirSP; 406 #endif 315 407 return; 316 408 }
Note: See TracChangeset for help on using the changeset viewer.