- Timestamp:
- 27 Jan 2016, 19:19:24 (9 years ago)
- Location:
- branches/SHM-dev/source/Lib
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-dev/source/Lib/TLibCommon/TComSlice.cpp
r1512 r1522 464 464 TComPic* rpsCurrList1[MAX_NUM_REF+1]; 465 465 #if SVC_EXTENSION 466 Int numInterLayerRPSPics = 0;467 466 if( m_layerId > 0 && m_activeNumILRRefIdx > 0 ) 468 467 { 469 for( i=0; i < m_pcVPS->getNumDirectRefLayers( m_layerId ); i++ )470 {471 Int maxTidIlRefPicsPlus1 = getVPS()->getMaxTidIlRefPicsPlus1(ilpPic[i]->getSlice(0)->getLayerIdx(), getLayerIdx());472 473 if( ((Int)(ilpPic[i]->getSlice(0)->getTLayer())<= maxTidIlRefPicsPlus1-1) || (maxTidIlRefPicsPlus1==0 && ilpPic[i]->getSlice(0)->getRapPicFlag() ) )474 {475 numInterLayerRPSPics++;476 477 assert( ilpPic[i]->getSlice(0)->getDiscardableFlag() == 0 ); // Inter-layer RPS shall not contain picture with discardable_flag = 1.478 }479 }480 if (numInterLayerRPSPics < m_activeNumILRRefIdx)481 {482 m_activeNumILRRefIdx = numInterLayerRPSPics;483 }484 485 468 // max one resampling direct layer 486 469 if( m_pcVPS->getScalabilityMask( SCALABILITY_ID ) ) … … 587 570 if( m_layerId > 0 ) 588 571 { 589 for( i = 0; i < m_activeNumILRRefIdx && cIdx < numPicTotalCurr; cIdx ++, i ++)572 for( i = 0; i < m_activeNumILRRefIdx && cIdx < numPicTotalCurr; cIdx++, i++ ) 590 573 { 591 574 Int refLayerIdc = m_interLayerPredLayerIdc[i]; 592 Int maxTidIlRefPicsPlus1 = getVPS()->getMaxTidIlRefPicsPlus1(ilpPic[refLayerIdc]->getSlice(0)->getLayerIdx(), getLayerIdx()); 593 if( ((Int)(ilpPic[refLayerIdc]->getSlice(0)->getTLayer())<=maxTidIlRefPicsPlus1-1) || (maxTidIlRefPicsPlus1==0 && ilpPic[refLayerIdc]->getSlice(0)->getRapPicFlag()) ) 594 { 595 rpsCurrList0[cIdx] = ilpPic[refLayerIdc]; 596 } 575 Int maxTidIlRefPicsPlus1 = m_pcVPS->getMaxTidIlRefPicsPlus1(ilpPic[refLayerIdc]->getSlice(0)->getLayerIdx(), getLayerIdx()); 576 577 // SHM: ILP is not valid due to temporal layer restriction, bitstream is not conformant 578 assert( Int(ilpPic[refLayerIdc]->getSlice(0)->getTLayer()) < maxTidIlRefPicsPlus1 || (maxTidIlRefPicsPlus1==0 && ilpPic[refLayerIdc]->getSlice(0)->getRapPicFlag()) ); 579 580 // SHM: Inter-layer RPS shall not contain picture with discardable_flag = 1. 581 assert( ilpPic[refLayerIdc]->getSlice(0)->getDiscardableFlag() == 0 ); 582 583 rpsCurrList0[cIdx] = ilpPic[refLayerIdc]; 597 584 } 598 585 } … … 628 615 if( m_layerId > 0 ) 629 616 { 630 for( i = 0; i < m_activeNumILRRefIdx && cIdx < numPicTotalCurr; cIdx ++, i ++)617 for( i = 0; i < m_activeNumILRRefIdx && cIdx < numPicTotalCurr; cIdx++, i++ ) 631 618 { 632 619 Int refLayerIdc = m_interLayerPredLayerIdc[i]; 633 Int maxTidIlRefPicsPlus1 = getVPS()->getMaxTidIlRefPicsPlus1( ilpPic[refLayerIdc]->getSlice(0)->getLayerIdx(), getLayerIdx() ); 634 if( ((Int)(ilpPic[refLayerIdc]->getSlice(0)->getTLayer())<=maxTidIlRefPicsPlus1-1) || (maxTidIlRefPicsPlus1==0 && ilpPic[refLayerIdc]->getSlice(0)->getRapPicFlag()) ) 635 { 636 rpsCurrList1[cIdx] = ilpPic[refLayerIdc]; 637 } 620 Int maxTidIlRefPicsPlus1 = m_pcVPS->getMaxTidIlRefPicsPlus1( ilpPic[refLayerIdc]->getSlice(0)->getLayerIdx(), getLayerIdx() ); 621 622 // SHM: ILP is not valid due to temporal layer restriction, bitstream is not conformant 623 assert( Int(ilpPic[refLayerIdc]->getSlice(0)->getTLayer()) < maxTidIlRefPicsPlus1 || (maxTidIlRefPicsPlus1==0 && ilpPic[refLayerIdc]->getSlice(0)->getRapPicFlag()) ); 624 625 // SHM: Inter-layer RPS shall not contain picture with discardable_flag = 1. 626 assert( ilpPic[refLayerIdc]->getSlice(0)->getDiscardableFlag() == 0 ); 627 628 rpsCurrList1[cIdx] = ilpPic[refLayerIdc]; 638 629 } 639 630 } -
branches/SHM-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp
r1515 r1522 1606 1606 Int numRefLayerPics = 0; 1607 1607 Int i = 0; 1608 Int refLayerPicIdc 1608 Int refLayerPicIdc[MAX_VPS_LAYER_IDX_PLUS1]; 1609 1609 for(i = 0, numRefLayerPics = 0; i < pcSlice->getNumILRRefIdx(); i++ ) 1610 1610 { 1611 1611 if( ( vps->getMaxTidIlRefPicsPlus1(vps->getLayerIdxInVps(i), pcSlice->getLayerIdx()) > pcSlice->getTLayer() || pcSlice->getTLayer()==0 ) && 1612 vps->getMaxTSLayersMinus1(vps->getLayerIdxInVps(i)) >= 1613 { 1612 vps->getMaxTSLayersMinus1(vps->getLayerIdxInVps(i)) >= pcSlice->getTLayer() ) 1613 { 1614 1614 refLayerPicIdc[ numRefLayerPics++ ] = i; 1615 1615 } -
branches/SHM-dev/source/Lib/TLibEncoder/TEncGOP.cpp
r1512 r1522 1608 1608 // Apply temporal layer restriction to inter-layer prediction 1609 1609 Int maxTidIlRefPicsPlus1 = m_pcEncTop->getVPS()->getMaxTidIlRefPicsPlus1(pcSlice->getBaseColPic(refLayerIdc)->getSlice(0)->getLayerIdx(), pcSlice->getLayerIdx()); 1610 if( ((Int)(pcSlice->getBaseColPic(refLayerIdc)->getSlice(0)->getTLayer()) <=maxTidIlRefPicsPlus1-1) || (maxTidIlRefPicsPlus1==0 && pcSlice->getBaseColPic(refLayerIdc)->getSlice(0)->getRapPicFlag()) )1610 if( ((Int)(pcSlice->getBaseColPic(refLayerIdc)->getSlice(0)->getTLayer()) < maxTidIlRefPicsPlus1) || (maxTidIlRefPicsPlus1==0 && pcSlice->getBaseColPic(refLayerIdc)->getSlice(0)->getRapPicFlag()) ) 1611 1611 { 1612 1612 interLayerPredLayerIdcTmp[activeNumILRRefIdxTmp++] = refLayerIdc; // add picture to the list of valid inter-layer pictures … … 1614 1614 else 1615 1615 { 1616 continue; // ILP is not valid due to temporal layer restriction1616 continue; // SHM: ILP is not valid due to temporal layer restriction 1617 1617 } 1618 1618
Note: See TracChangeset for help on using the changeset viewer.