Changeset 716 in 3DVCSoftware for branches/HTM-8.2-dev0-MediaTek/source/Lib/TLibDecoder
- Timestamp:
- 28 Nov 2013, 10:04:37 (12 years ago)
- Location:
- branches/HTM-8.2-dev0-MediaTek/source/Lib/TLibDecoder
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-8.2-dev0-MediaTek/source/Lib/TLibDecoder/TDecCAVLC.cpp
r712 r716 1245 1245 pcVPS->setARPStepNum( i, 1 ); 1246 1246 #endif 1247 #if MTK_SPIVMP_F0110 1248 pcVPS->setSubPULog2Size(i, 0); 1249 #endif 1247 1250 if ( i != 0 ) 1248 1251 { … … 1251 1254 #if H_3D_IV_MERGE 1252 1255 READ_FLAG( uiCode, "iv_mv_pred_flag[i]"); pcVPS->setIvMvPredFlag ( i, uiCode == 1 ? true : false ); 1256 #if MTK_SPIVMP_F0110 1257 READ_UVLC (uiCode, "log2_sub_PU_size_minus2"); pcVPS->setSubPULog2Size(i, uiCode+2); 1258 #endif 1253 1259 #endif 1254 1260 #if H_3D_ARP … … 1269 1275 { 1270 1276 READ_FLAG( uiCode, "iv_mv_pred_flag[i]"); pcVPS->setIvMvPredFlag ( i, uiCode == 1 ? true : false ); 1277 } 1278 #endif 1279 #if MTK_SPIVMP_F0110 1280 if (i!=1) 1281 { 1282 READ_UVLC (uiCode, "log2_sub_PU_size_minus2"); pcVPS->setSubPULog2Size(i, uiCode+2); 1271 1283 } 1272 1284 #endif -
branches/HTM-8.2-dev0-MediaTek/source/Lib/TLibDecoder/TDecCu.cpp
r712 r716 403 403 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 404 404 InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM]; 405 405 #if MTK_SPIVMP_F0110 406 Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM]; 407 memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM); 408 TComMvField* pcMvFieldSP; 409 UChar* puhInterDirSP; 410 pcMvFieldSP = new TComMvField[pcCU->getPic()->getPicSym()->getNumPartition()*2]; 411 puhInterDirSP = new UChar[pcCU->getPic()->getPicSym()->getNumPartition()]; 412 #endif 406 413 #if ETRIKHU_MERGE_REUSE_F0093 407 414 m_ppcCU[uiDepth]->initAvailableFlags(); 408 415 m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 409 m_ppcCU[uiDepth]->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo, numValidMergeCand, uiMergeIndex ); 416 m_ppcCU[uiDepth]->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo 417 #if MTK_SPIVMP_F0110 418 , bSPIVMPFlag, pcMvFieldSP, puhInterDirSP 419 #endif 420 , numValidMergeCand, uiMergeIndex ); 410 421 #else 411 422 m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo, numValidMergeCand, uiMergeIndex ); … … 457 468 } 458 469 } 470 #if MTK_SPIVMP_F0110 471 pcCU->setSPIVMPFlagSubParts(bSPIVMPFlag[uiMergeIndex], uiAbsPartIdx, 0, uiDepth ); 472 if (bSPIVMPFlag[uiMergeIndex]) 473 { 474 UInt uiSPAddr; 475 Int iWidth = pcCU->getWidth(uiAbsPartIdx); 476 Int iHeight = pcCU->getHeight(uiAbsPartIdx); 477 478 Int iNumSPInOneLine, iNumSP, iSPWidth, iSPHeight; 479 480 pcCU->getSPPara(iWidth, iHeight, iNumSP, iNumSPInOneLine, iSPWidth, iSPHeight); 481 482 for (Int iPartitionIdx = 0; iPartitionIdx < iNumSP; iPartitionIdx++) 483 { 484 pcCU->getSPAbsPartIdx(uiAbsPartIdx, iSPWidth, iSPHeight, iPartitionIdx, iNumSPInOneLine, uiSPAddr); 485 pcCU->setInterDirSP(puhInterDirSP[iPartitionIdx], uiSPAddr, iSPWidth, iSPHeight); 486 pcCU->getCUMvField( REF_PIC_LIST_0 )->setMvFieldSP(pcCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx], iSPWidth, iSPHeight); 487 pcCU->getCUMvField( REF_PIC_LIST_1 )->setMvFieldSP(pcCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx + 1], iSPWidth, iSPHeight); 488 } 489 } 490 delete pcMvFieldSP; 491 delete puhInterDirSP; 492 #endif 459 493 #if !LGE_SHARP_VSP_INHERIT_F0104 460 494 #if H_3D_IC -
branches/HTM-8.2-dev0-MediaTek/source/Lib/TLibDecoder/TDecEntropy.cpp
r712 r716 213 213 UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS]; 214 214 #endif 215 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 216 222 for ( UInt ui = 0; ui < pcCU->getSlice()->getMaxNumMergeCand(); ui++ ) 217 223 { … … 256 262 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 257 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 258 267 #if ETRIKHU_MERGE_REUSE_F0093 259 268 pcSubCU->initAvailableFlags(); 260 269 pcSubCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand); 261 pcSubCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo, numValidMergeCand ); 270 pcSubCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo 271 #if MTK_SPIVMP_F0110 272 , bSPIVMPFlag, pcMvFieldSP, puhInterDirSP 273 #endif 274 , numValidMergeCand ); 262 275 #else 263 276 pcSubCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo, numValidMergeCand ); … … 290 303 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 291 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 292 308 #if ETRIKHU_MERGE_REUSE_F0093 293 309 pcSubCU->initAvailableFlags(); 294 310 pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 295 pcSubCU->xGetInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo,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 ); 296 316 #else 297 317 pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo,numValidMergeCand, uiMergeIndex ); … … 325 345 } 326 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 327 370 } 328 371 else … … 358 401 } 359 402 } 403 #if MTK_SPIVMP_F0110 404 delete pcMvFieldSP; 405 delete puhInterDirSP; 406 #endif 360 407 return; 361 408 }
Note: See TracChangeset for help on using the changeset viewer.