Changeset 374 in SHVCSoftware for branches/SHM-3.1-dev/source/Lib/TLibEncoder
- Timestamp:
- 28 Aug 2013, 15:33:12 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-3.1-dev/source/Lib/TLibEncoder/TEncGOP.cpp
r370 r374 576 576 pcSlice->setNalUnitType(getNalUnitType(pocCurr, m_iLastIDR)); 577 577 #if SVC_EXTENSION 578 #if ILR_RESTR && ILR_RESTR_FIX 579 Int interLayerPredLayerIdcTmp[MAX_VPS_LAYER_ID_PLUS1]; 580 Int activeNumILRRefIdxTmp = 0; 581 #endif 578 582 if (m_layerId > 0) 579 583 { … … 587 591 #endif 588 592 pcSlice->setBaseColPic( *cListPic, refLayerIdc ); 593 594 #if ILR_RESTR && ILR_RESTR_FIX 595 // Apply temporal layer restriction to inter-layer prediction 596 Int maxSubLayerForILPPlus1 = m_pcEncTop->getVPS()->getMaxSublayerForIlpPlus1(pcSlice->getBaseColPic(refLayerIdc)->getSlice(0)->getLayerId()); 597 if( ((Int)(pcSlice->getBaseColPic(refLayerIdc)->getSlice(0)->getTLayer())<=maxSubLayerForILPPlus1-1) || (maxSubLayerForILPPlus1==0 && pcSlice->getBaseColPic(refLayerIdc)->getSlice(0)->getRapPicFlag()) ) 598 { 599 interLayerPredLayerIdcTmp[activeNumILRRefIdxTmp++] = refLayerIdc; // add picture to the list of valid inter-layer pictures 600 } 601 else 602 { 603 continue; // ILP is not valid due to temporal layer restriction 604 } 605 #endif 589 606 590 607 #if SCALED_REF_LAYER_OFFSETS … … 628 645 #endif 629 646 } 647 648 #if ILR_RESTR && ILR_RESTR_FIX 649 // Update the list of active inter-layer pictures 650 for ( Int i = 0; i < activeNumILRRefIdxTmp; i++) 651 { 652 pcSlice->setInterLayerPredLayerIdc( interLayerPredLayerIdcTmp[i], i ); 653 } 654 pcSlice->setActiveNumILRRefIdx( activeNumILRRefIdxTmp ); 655 if ( pcSlice->getActiveNumILRRefIdx() == 0 ) 656 { 657 // No valid inter-layer pictures -> disable inter-layer prediction 658 pcSlice->setInterLayerPredEnabledFlag(false); 659 } 660 #endif 661 630 662 } 631 663 #endif
Note: See TracChangeset for help on using the changeset viewer.