Changeset 655 in SHVCSoftware
- Timestamp:
- 9 Apr 2014, 04:52:27 (11 years ago)
- Location:
- branches/SHM-6-dev/source/Lib/TLibCommon
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-6-dev/source/Lib/TLibCommon/TComDataCU.cpp
r652 r655 3485 3485 TComDataCU* TComDataCU::getBaseColCU( UInt refLayerIdc, UInt uiPelX, UInt uiPelY, UInt &uiCUAddrBase, UInt &uiAbsPartIdxBase, Int iMotionMapping ) 3486 3486 { 3487 TComPic* cBaseColPic = m_pcSlice->getBaseColPic(refLayerIdc);3487 TComPic* baseColPic = m_pcSlice->getBaseColPic(refLayerIdc); 3488 3488 3489 3489 uiPelX = (UInt)Clip3<UInt>(0, m_pcPic->getPicYuvRec()->getWidth() - 1, uiPelX); … … 3495 3495 3496 3496 #if O0098_SCALED_REF_LAYER_ID 3497 Int leftStartL = getSlice()->getSPS()->getScaledRefLayerWindowForLayer(getSlice()->getVPS()->getRefLayerId(getSlice()->getLayerId(), refLayerIdc)).getWindowLeftOffset();3498 Int topStartL = getSlice()->getSPS()->getScaledRefLayerWindowForLayer(getSlice()->getVPS()->getRefLayerId(getSlice()->getLayerId(), refLayerIdc)).getWindowTopOffset();3497 Int leftStartL = baseColPic->getSlice(0)->getSPS()->getScaledRefLayerWindowForLayer(baseColPic->getSlice(0)->getVPS()->getRefLayerId(getSlice()->getLayerId(), refLayerIdc)).getWindowLeftOffset(); 3498 Int topStartL = baseColPic->getSlice(0)->getSPS()->getScaledRefLayerWindowForLayer(baseColPic->getSlice(0)->getVPS()->getRefLayerId(getSlice()->getLayerId(), refLayerIdc)).getWindowTopOffset(); 3499 3499 #else 3500 Int leftStartL = this->getSlice()->getSPS()->getScaledRefLayerWindow(refLayerIdc).getWindowLeftOffset();3501 Int topStartL = this->getSlice()->getSPS()->getScaledRefLayerWindow(refLayerIdc).getWindowTopOffset();3500 Int leftStartL = baseColPic->getSlice(0)->getSPS()->getScaledRefLayerWindow(refLayerIdc).getWindowLeftOffset(); 3501 Int topStartL = baseColPic->getSlice(0)->getSPS()->getScaledRefLayerWindow(refLayerIdc).getWindowTopOffset(); 3502 3502 #endif 3503 3503 Int iBX = ((uiPelX - leftStartL)*g_posScalingFactor[refLayerIdc][0] + (1<<15)) >> 16; … … 3512 3512 #endif 3513 3513 3514 if ( iBX >= cBaseColPic->getPicYuvRec()->getWidth() || iBY >= cBaseColPic->getPicYuvRec()->getHeight() ||3514 if ( iBX >= baseColPic->getPicYuvRec()->getWidth() || iBY >= baseColPic->getPicYuvRec()->getHeight() || 3515 3515 iBX < 0 || iBY < 0 ) 3516 3516 { … … 3519 3519 3520 3520 #if LAYER_CTB 3521 UInt baseMaxCUHeight = cBaseColPic->getPicSym()->getMaxCUHeight();3522 UInt baseMaxCUWidth = cBaseColPic->getPicSym()->getMaxCUWidth();3523 UInt baseMinUnitSize = cBaseColPic->getMinCUWidth();3524 3525 uiCUAddrBase = ( iBY / cBaseColPic->getPicSym()->getMaxCUHeight() ) * cBaseColPic->getFrameWidthInCU() + ( iBX / cBaseColPic->getPicSym()->getMaxCUWidth());3521 UInt baseMaxCUHeight = baseColPic->getPicSym()->getMaxCUHeight(); 3522 UInt baseMaxCUWidth = baseColPic->getPicSym()->getMaxCUWidth(); 3523 UInt baseMinUnitSize = baseColPic->getMinCUWidth(); 3524 3525 uiCUAddrBase = ( iBY / baseMaxCUHeight ) * baseColPic->getFrameWidthInCU() + ( iBX / baseMaxCUWidth ); 3526 3526 #else 3527 3527 uiCUAddrBase = (iBY/g_uiMaxCUHeight)*cBaseColPic->getFrameWidthInCU() + (iBX/g_uiMaxCUWidth); 3528 3528 #endif 3529 3529 3530 assert(uiCUAddrBase < cBaseColPic->getNumCUsInFrame());3530 assert(uiCUAddrBase < baseColPic->getNumCUsInFrame()); 3531 3531 3532 3532 #if LAYER_CTB 3533 UInt uiRasterAddrBase = ( iBY - (iBY/baseMaxCUHeight)*baseMaxCUHeight ) / baseMinUnitSize * cBaseColPic->getNumPartInWidth() + ( iBX - (iBX/baseMaxCUWidth)*baseMaxCUWidth ) / baseMinUnitSize;3534 3535 uiAbsPartIdxBase = g_auiLayerRasterToZscan[ cBaseColPic->getLayerId()][uiRasterAddrBase];3533 UInt uiRasterAddrBase = ( iBY - (iBY/baseMaxCUHeight)*baseMaxCUHeight ) / baseMinUnitSize * baseColPic->getNumPartInWidth() + ( iBX - (iBX/baseMaxCUWidth)*baseMaxCUWidth ) / baseMinUnitSize; 3534 3535 uiAbsPartIdxBase = g_auiLayerRasterToZscan[baseColPic->getLayerId()][uiRasterAddrBase]; 3536 3536 #else 3537 3537 UInt uiRasterAddrBase = (iBY - (iBY/g_uiMaxCUHeight)*g_uiMaxCUHeight)/uiMinUnitSize*cBaseColPic->getNumPartInWidth() … … 3541 3541 #endif 3542 3542 3543 return cBaseColPic->getCU(uiCUAddrBase);3543 return baseColPic->getCU(uiCUAddrBase); 3544 3544 } 3545 3545 -
branches/SHM-6-dev/source/Lib/TLibCommon/TComSlice.cpp
r654 r655 3668 3668 3669 3669 TComPic* pcRefPicBL = pcRefPicRL[refLayerIdc]; 3670 3670 3671 //set reference picture POC of each ILP reference 3671 3672 Int thePoc = ilpPic[refLayerIdc]->getPOC(); … … 3674 3675 ilpPic[refLayerIdc]->getSlice(0)->setBaseColPic( refLayerIdc, pcRefPicBL ); 3675 3676 3676 //copy reference pictures marking from the reference layer 3677 ilpPic[refLayerIdc]->getSlice(0)->copySliceInfo(pcRefPicBL->getSlice(0)); 3677 //copy layer id from the reference layer 3678 ilpPic[refLayerIdc]->setLayerId( pcRefPicBL->getLayerId() ); 3679 3680 //copy slice type from the reference layer 3681 ilpPic[refLayerIdc]->getSlice(0)->setSliceType( pcRefPicBL->getSlice(0)->getSliceType() ); 3678 3682 3679 3683 for( Int refList = 0; refList < 2; refList++ ) … … 3697 3701 ilpPic[refLayerIdc]->getSlice(0)->setRefPOC(0, refPicList, refIdx); 3698 3702 ilpPic[refLayerIdc]->getSlice(0)->setRefPic(NULL, refPicList, refIdx); 3703 } 3704 3705 //copy reference pictures' marking from the reference layer 3706 for(Int j = 0; j < MAX_NUM_REF + 1; j++) 3707 { 3708 ilpPic[refLayerIdc]->getSlice(0)->setIsUsedAsLongTerm(refList, j, pcRefPicBL->getSlice(0)->getIsUsedAsLongTerm(refList, j)); 3699 3709 } 3700 3710 }
Note: See TracChangeset for help on using the changeset viewer.