Changeset 1483 in SHVCSoftware for branches/SHM-dev/source/Lib/TLibCommon
- Timestamp:
- 22 Oct 2015, 14:50:29 (9 years ago)
- Location:
- branches/SHM-dev/source/Lib/TLibCommon
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-dev/source/Lib/TLibCommon/TComDataCU.cpp
r1465 r1483 460 460 461 461 memset( m_skipFlag , false, m_uiNumPartition * sizeof( *m_skipFlag ) ); 462 463 #if SVC_EXTENSION464 m_layerId = pcPic->getLayerId();465 #endif466 467 462 memset( m_pePartSize , NUMBER_OF_PART_SIZES, m_uiNumPartition * sizeof( *m_pePartSize ) ); 468 463 memset( m_pePredMode , NUMBER_OF_PREDICTION_MODES, m_uiNumPartition * sizeof( *m_pePredMode ) ); … … 3290 3285 UInt uiCUAddrBase = 0, uiAbsPartAddrBase = 0; 3291 3286 // the right reference layerIdc should be specified, currently it is set to m_layerId-1 3292 TComDataCU* pcTempCU = getBaseColCU(m_ layerId- 1, uiAbsPartIdx, uiCUAddrBase, uiAbsPartAddrBase, posScalingFactor, false );3287 TComDataCU* pcTempCU = getBaseColCU(m_pcPic->getLayerId() - 1, uiAbsPartIdx, uiCUAddrBase, uiAbsPartAddrBase, posScalingFactor, false ); 3293 3288 3294 3289 if( pcTempCU->getPredictionMode( uiAbsPartAddrBase ) != MODE_INTRA ) … … 3363 3358 TComPic* refPic = m_pcSlice->getRefPic(REF_PIC_LIST_0, refIdxL0); 3364 3359 3365 if(refPic->isILR(m_ layerId))3360 if(refPic->isILR(m_pcPic->getLayerId())) 3366 3361 { 3367 3362 checkZeroMVILR &= (cMvFieldL0.getHor() == 0 && cMvFieldL0.getVer() == 0); … … 3369 3364 // It is a requirement of bitstream conformance that when the reference picture represented by the variable refIdxLX is an inter-layer reference picture, 3370 3365 // VpsInterLayerSamplePredictionEnabled[ LayerIdxInVps[ currLayerId ] ][ LayerIdxInVps[ rLId ] ] shall be equal to 1, where rLId is set equal to nuh_layer_id of the inter-layer picture 3371 checkZeroMVILR &= m_pcSlice->getVPS()->isSamplePredictionType( getLayerIdx(), refPic->getLayerIdx() );3366 checkZeroMVILR &= m_pcSlice->getVPS()->isSamplePredictionType( m_pcPic->getLayerIdx(), refPic->getLayerIdx() ); 3372 3367 } 3373 3368 } … … 3377 3372 TComPic* refPic = m_pcSlice->getRefPic(REF_PIC_LIST_1, refIdxL1); 3378 3373 3379 if(refPic->isILR(m_ layerId))3374 if(refPic->isILR(m_pcPic->getLayerId())) 3380 3375 { 3381 3376 checkZeroMVILR &= (cMvFieldL1.getHor() == 0 && cMvFieldL1.getVer() == 0); … … 3383 3378 // It is a requirement of bitstream conformance that when the reference picture represented by the variable refIdxLX is an inter-layer reference picture, 3384 3379 // VpsInterLayerSamplePredictionEnabled[ LayerIdxInVps[ currLayerId ] ][ LayerIdxInVps[ rLId ] ] shall be equal to 1, where rLId is set equal to nuh_layer_id of the inter-layer picture 3385 checkZeroMVILR &= m_pcSlice->getVPS()->isSamplePredictionType( getLayerIdx(), refPic->getLayerIdx() );3380 checkZeroMVILR &= m_pcSlice->getVPS()->isSamplePredictionType( m_pcPic->getLayerIdx(), refPic->getLayerIdx() ); 3386 3381 } 3387 3382 } … … 3397 3392 Bool checkZeroMVILR = true; 3398 3393 3399 if(getSlice()->getRefPic(eRefPicList, iRefIdx)->isILR(m_ layerId))3394 if(getSlice()->getRefPic(eRefPicList, iRefIdx)->isILR(m_pcPic->getLayerId())) 3400 3395 { 3401 3396 AMVPInfo* pcAMVPInfo = getCUMvField(eRefPicList)->getAMVPInfo(); … … 3416 3411 { 3417 3412 Int refIdxL0 = cMvFieldL0.getRefIdx(); 3418 checkILR = getSlice()->getRefPic(REF_PIC_LIST_0, refIdxL0)->isILR(m_ layerId);3413 checkILR = getSlice()->getRefPic(REF_PIC_LIST_0, refIdxL0)->isILR(m_pcPic->getLayerId()); 3419 3414 } 3420 3415 if(uhInterDir&0x2) //list1 3421 3416 { 3422 3417 Int refIdxL1 = cMvFieldL1.getRefIdx(); 3423 checkILR = checkILR || getSlice()->getRefPic(REF_PIC_LIST_1, refIdxL1)->isILR(m_ layerId);3418 checkILR = checkILR || getSlice()->getRefPic(REF_PIC_LIST_1, refIdxL1)->isILR(m_pcPic->getLayerId()); 3424 3419 } 3425 3420 -
branches/SHM-dev/source/Lib/TLibCommon/TComDataCU.h
r1465 r1483 88 88 89 89 #if SVC_EXTENSION 90 UInt m_layerId; ///< layer id91 90 #if FAST_INTRA_SHVC 92 91 UChar m_reducedSetIntraModes[NUM_INTRA_MODE-1]; … … 481 480 482 481 #if SVC_EXTENSION 483 Void setLayerId ( UInt layerId ) { m_layerId = layerId; }484 UInt getLayerId ( ) const { return m_layerId; }485 UInt getLayerIdx ( ) const { return m_pcSlice->getVPS()->getLayerIdxInVps(m_layerId); }486 482 #if N0383_IL_CONSTRAINED_TILE_SETS_SEI 487 483 Bool isInterLayerReference ( UChar uhInterDir, TComMvField& cMvFieldL0, TComMvField& cMvFieldL1 ) const; -
branches/SHM-dev/source/Lib/TLibCommon/TComPrediction.cpp
r1468 r1483 580 580 581 581 #if SVC_EXTENSION 582 if( pcCU->get LayerId() > 0 )582 if( pcCU->getPic()->getLayerId() > 0 ) 583 583 { 584 584 TComPic* refPic = pcCU->getSlice()->getRefPic(eRefPicList, iRefIdx); 585 585 586 if( refPic->isILR(pcCU->get LayerId()) )586 if( refPic->isILR(pcCU->getPic()->getLayerId()) ) 587 587 { 588 588 // It is a requirement of bitstream conformance that when the reference picture represented by the variable refIdxLX is an inter-layer reference picture, 589 589 // VpsInterLayerSamplePredictionEnabled[ LayerIdxInVps[ currLayerId ] ][ LayerIdxInVps[ rLId ] ] shall be equal to 1, where rLId is set equal to nuh_layer_id of the inter-layer picture 590 assert( pcCU->getSlice()->getVPS()->isSamplePredictionType( pcCU->get LayerIdx(), refPic->getLayerIdx() ) );590 assert( pcCU->getSlice()->getVPS()->isSamplePredictionType( pcCU->getPic()->getLayerIdx(), refPic->getLayerIdx() ) ); 591 591 592 592 #if REF_IDX_ME_ZEROMV -
branches/SHM-dev/source/Lib/TLibCommon/TComSlice.cpp
r1472 r1483 3594 3594 3595 3595 pcIlpPic[refLayerIdc]->getPicYuvRec()->setBorderExtension( false ); 3596 pcIlpPic[refLayerIdc]->getPicYuvRec()->extendPicBorder(); 3597 for (Int j=0; j<pcIlpPic[refLayerIdc]->getPicSym()->getNumberOfCtusInFrame(); j++) // set reference CU layerId 3598 { 3599 pcIlpPic[refLayerIdc]->getPicSym()->getCtu(j)->setLayerId( pcIlpPic[refLayerIdc]->getLayerId() ); 3600 } 3601 pcIlpPic[refLayerIdc]->setIsLongTerm(1); 3596 pcIlpPic[refLayerIdc]->getPicYuvRec()->extendPicBorder(); 3597 pcIlpPic[refLayerIdc]->setIsLongTerm(true); 3602 3598 3603 3599 // assign PPS to ILRP to be used for reference location offsets
Note: See TracChangeset for help on using the changeset viewer.