Changeset 166 in 3DVCSoftware for branches/HTM-4.0.1-VSP-dev0/source/Lib/TLibDecoder/TDecCu.cpp
- Timestamp:
- 1 Nov 2012, 19:22:41 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-4.0.1-VSP-dev0/source/Lib/TLibDecoder/TDecCu.cpp
r100 r166 52 52 m_ppcYuvResPred = NULL; 53 53 #endif 54 #if FORCE_REF_VSP 55 m_ppcYuvAvail = NULL; 56 m_ppcYuvSynth = NULL; 57 #endif 54 58 m_ppcCU = NULL; 55 59 } … … 79 83 #if HHI_INTER_VIEW_RESIDUAL_PRED 80 84 m_ppcYuvResPred = new TComYuv* [m_uiMaxDepth-1]; 85 #endif 86 #if FORCE_REF_VSP 87 m_ppcYuvAvail = new TComYuv* [m_uiMaxDepth-1]; 88 m_ppcYuvSynth = new TComYuv* [m_uiMaxDepth-1]; 81 89 #endif 82 90 m_ppcCU = new TComDataCU*[m_uiMaxDepth-1]; … … 94 102 m_ppcYuvResPred[ui] = new TComYuv; m_ppcYuvResPred[ui]->create( uiWidth, uiHeight ); 95 103 #endif 104 #if FORCE_REF_VSP 105 m_ppcYuvAvail [ui] = new TComYuv; m_ppcYuvAvail [ui]->create( uiWidth, uiHeight ); 106 m_ppcYuvSynth [ui] = new TComYuv; m_ppcYuvSynth [ui]->create( uiWidth, uiHeight ); 107 #endif 96 108 m_ppcCU [ui] = new TComDataCU; m_ppcCU [ui]->create( uiNumPartitions, uiWidth, uiHeight, true, uiMaxWidth >> (m_uiMaxDepth - 1) ); 97 109 } … … 118 130 m_ppcYuvResPred[ui]->destroy(); delete m_ppcYuvResPred[ui]; m_ppcYuvResPred[ui] = NULL; 119 131 #endif 132 #if FORCE_REF_VSP 133 m_ppcYuvAvail [ui]->destroy(); delete m_ppcYuvAvail [ui]; m_ppcYuvAvail [ui] = NULL; 134 m_ppcYuvSynth [ui]->destroy(); delete m_ppcYuvSynth [ui]; m_ppcYuvSynth [ui] = NULL; 135 #endif 120 136 m_ppcCU [ui]->destroy(); delete m_ppcCU [ui]; m_ppcCU [ui] = NULL; 121 137 } … … 125 141 #if HHI_INTER_VIEW_RESIDUAL_PRED 126 142 delete [] m_ppcYuvResPred; m_ppcYuvResPred = NULL; 143 #endif 144 #if FORCE_REF_VSP 145 delete [] m_ppcYuvAvail; m_ppcYuvAvail = NULL; 146 delete [] m_ppcYuvSynth; m_ppcYuvSynth = NULL; 127 147 #endif 128 148 delete [] m_ppcCU ; m_ppcCU = NULL; … … 328 348 { 329 349 m_pcEntropyDecoder->decodeSkipFlag( pcCU, uiAbsPartIdx, uiDepth ); 350 351 #if FORCE_REF_VSP==1 352 if( pcCU->isSkipped(uiAbsPartIdx) && pcCU->getSlice()->getViewId() != 0 ) 353 #if VSP_TEXT_ONLY 354 if( !pcCU->getSlice()->getSPS()->isDepth() ) 355 #endif 356 { 357 m_pcEntropyDecoder->decodeVspFlag( pcCU, uiAbsPartIdx, uiDepth ); 358 } 359 #endif 330 360 } 331 361 332 362 if( pcCU->isSkipped(uiAbsPartIdx) ) 363 #if FORCE_REF_VSP==1 364 if( !pcCU->isVspMode(uiAbsPartIdx) ) 365 #endif 333 366 { 334 367 m_ppcCU[uiDepth]->copyInterPredInfoFrom( pcCU, uiAbsPartIdx, REF_PIC_LIST_0 ); … … 352 385 if( pcCU->getTextureModeDepth( uiAbsPartIdx ) == uiDepth ) 353 386 { 387 #if DEBUGLOGOUT 388 PredMode eOrgPred = pcCU->getPredictionMode( uiAbsPartIdx ); 389 #endif 354 390 TComDataCU *pcTextureCU = pcCU->getSlice()->getTexturePic()->getCU( pcCU->getAddr() ); 355 391 pcCU->copyTextureMotionDataFrom( pcTextureCU, uiDepth, pcCU->getZorderIdxInCU() + uiAbsPartIdx, uiAbsPartIdx ); 392 #if DEBUGLOGOUT 393 if( eOrgPred == MODE_SKIP ) 394 pcCU->setPredModeSubParts( MODE_SKIP, uiAbsPartIdx, uiDepth ); 395 m_cDebug.DebugLogOut( pcCU, uiAbsPartIdx, uiDepth ); 396 #endif 356 397 357 398 UInt uiCurrPartNumb = pcCU->getPic()->getNumPartInCU() >> (uiDepth << 1); … … 396 437 #endif 397 438 xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast ); 439 #if DEBUGLOGOUT 440 #if HHI_MPI 441 if( pcCU->getTextureModeDepth( uiAbsPartIdx ) != uiDepth ) 442 #endif 443 m_cDebug.DebugLogOut( pcCU, uiAbsPartIdx, uiDepth ); 444 #endif 398 445 return; 399 446 } 447 448 #if FORCE_REF_VSP==1 449 if( pcCU->isVspMode( uiAbsPartIdx ) ) 450 { 451 TComMv cMvZero; 452 453 pcCU->setPartSizeSubParts( SIZE_2Nx2N, uiAbsPartIdx, uiDepth ); 454 pcCU->setSizeSubParts( g_uiMaxCUWidth>>uiDepth, g_uiMaxCUHeight>>uiDepth, uiAbsPartIdx, uiDepth ); 455 456 pcCU->getCUMvField(REF_PIC_LIST_0)->setAllMvField( TComMvField(), SIZE_2Nx2N, uiAbsPartIdx, uiDepth, 0 ); 457 pcCU->getCUMvField(REF_PIC_LIST_1)->setAllMvField( TComMvField(), SIZE_2Nx2N, uiAbsPartIdx, uiDepth, 0 ); 458 pcCU->getCUMvField(REF_PIC_LIST_0)->setAllMvd ( cMvZero, SIZE_2Nx2N, uiAbsPartIdx, uiDepth, 0 ); 459 pcCU->getCUMvField(REF_PIC_LIST_1)->setAllMvd ( cMvZero, SIZE_2Nx2N, uiAbsPartIdx, uiDepth, 0 ); 460 461 //pcCU->getCUMvField(REF_PIC_LIST_0)->setAllRefIdx ( pcCU->getSlice()->getRefIdxVsp(REF_PIC_LIST_0), SIZE_2Nx2N, 0, pcCU->getDepth(0), 0 ); 462 //pcCU->getCUMvField(REF_PIC_LIST_1)->setAllRefIdx ( pcCU->getSlice()->getRefIdxVsp(REF_PIC_LIST_1), SIZE_2Nx2N, 0, pcCU->getDepth(0), 0 ); 463 464 pcCU->setMVPIdxSubParts( -1, REF_PIC_LIST_0, uiAbsPartIdx, 0, uiDepth ); 465 pcCU->setMVPNumSubParts( -1, REF_PIC_LIST_0, uiAbsPartIdx, 0, uiDepth ); 466 pcCU->setMVPIdxSubParts( -1, REF_PIC_LIST_1, uiAbsPartIdx, 0, uiDepth ); 467 pcCU->setMVPNumSubParts( -1, REF_PIC_LIST_1, uiAbsPartIdx, 0, uiDepth ); 468 469 pcCU->setCbfSubParts( 0, 0, 0, uiAbsPartIdx, uiDepth ); 470 pcCU->setTrIdxSubParts( 0 , uiAbsPartIdx, uiDepth ); 471 pcCU->setNSQTIdxSubParts( uiAbsPartIdx, uiDepth ); 472 473 xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast ); 474 #if DEBUGLOGOUT 475 m_cDebug.DebugLogOut( pcCU, uiAbsPartIdx, uiDepth ); 476 #endif 477 return; 478 } 479 #endif 400 480 401 481 #if HHI_MPI … … 428 508 { 429 509 xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast ); 510 #if DEBUGLOGOUT 511 m_cDebug.DebugLogOut( pcCU, uiAbsPartIdx, uiDepth ); 512 #endif 430 513 return; 431 514 } … … 527 610 setdQPFlag( bCodeDQP ); 528 611 xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast ); 612 #if DEBUGLOGOUT 613 m_cDebug.DebugLogOut( pcCU, uiAbsPartIdx, uiDepth ); 614 #endif 529 615 } 530 616 … … 553 639 { 554 640 TComPic* pcPic = pcCU->getPic(); 641 #if FORCE_REF_VSP 642 if(pcPic->getPicYuvSynth()) m_ppcYuvSynth[uiDepth]->copyFromPicYuv( pcPic->getPicYuvSynth(), pcCU->getAddr(), uiAbsPartIdx ); 643 if(pcPic->getPicYuvAvail()) m_ppcYuvAvail[uiDepth]->copyFromPicYuv( pcPic->getPicYuvAvail(), pcCU->getAddr(), uiAbsPartIdx ); 644 #endif 555 645 556 646 Bool bBoundary = false; … … 603 693 xReconIntraQT( m_ppcCU[uiDepth], uiAbsPartIdx, uiDepth ); 604 694 break; 695 #if FORCE_REF_VSP==1 696 case MODE_SYNTH: 697 m_ppcYuvReco[uiDepth]->copyFromPicYuv(pcPic->getPicYuvSynth(), pcCU->getAddr(), uiAbsPartIdx); 698 break; 699 #endif 605 700 default: 606 701 assert(0); … … 615 710 616 711 xCopyToPic( m_ppcCU[uiDepth], pcPic, uiAbsPartIdx, uiDepth ); 712 #if DEBUGIMGOUT 713 xColsetToPicMerge( m_ppcCU[uiDepth], pcPic->getPicYuvRecDbg(), uiAbsPartIdx, uiDepth ); 714 #endif 617 715 } 618 716 … … 626 724 // inter prediction 627 725 m_pcPrediction->motionCompensation( pcCU, m_ppcYuvReco[uiDepth] ); 628 629 726 #if HHI_MPI 630 727 if( pcCU->getTextureModeDepth( 0 ) != -1 )
Note: See TracChangeset for help on using the changeset viewer.