Changeset 724 in SHVCSoftware for branches/SHM-6-dev/source/Lib/TLibCommon


Ignore:
Timestamp:
22 Apr 2014, 21:28:34 (11 years ago)
Author:
seregin
Message:

add checks for ILRP prediction type fore merge mode and collocated picture

Location:
branches/SHM-6-dev/source/Lib/TLibCommon
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-6-dev/source/Lib/TLibCommon/TComDataCU.cpp

    r709 r724  
    36373637  {
    36383638    Int refIdxL0 = cMvFieldL0.getRefIdx();
    3639     if(getSlice()->getRefPic(REF_PIC_LIST_0, refIdxL0)->isILR(m_layerId))
     3639    TComPic* refPic = m_pcSlice->getRefPic(REF_PIC_LIST_0, refIdxL0);
     3640
     3641    if(refPic->isILR(m_layerId))
    36403642    {
    36413643      checkZeroMVILR &= (cMvFieldL0.getHor() == 0 && cMvFieldL0.getVer() == 0);
     3644
     3645      // It is a requirement of bitstream conformance that when the reference picture represented by the variable refIdxLX is an inter-layer reference picture,
     3646      // VpsInterLayerSamplePredictionEnabled[ LayerIdxInVps[ currLayerId ] ][ LayerIdxInVps[ rLId ] ] shall be equal to 1, where rLId is set equal to nuh_layer_id of the inter-layer picture
     3647      checkZeroMVILR &= m_pcSlice->getVPS()->isSamplePredictionType( m_layerId, refPic->getLayerId() );
    36423648    }
    36433649  }
     
    36453651  {
    36463652    Int refIdxL1  = cMvFieldL1.getRefIdx();
    3647     if(getSlice()->getRefPic(REF_PIC_LIST_1, refIdxL1)->isILR(m_layerId))
     3653    TComPic* refPic = m_pcSlice->getRefPic(REF_PIC_LIST_1, refIdxL1);
     3654
     3655    if(refPic->isILR(m_layerId))
    36483656    {
    36493657      checkZeroMVILR &= (cMvFieldL1.getHor() == 0 && cMvFieldL1.getVer() == 0);
     3658
     3659      // It is a requirement of bitstream conformance that when the reference picture represented by the variable refIdxLX is an inter-layer reference picture,
     3660      // VpsInterLayerSamplePredictionEnabled[ LayerIdxInVps[ currLayerId ] ][ LayerIdxInVps[ rLId ] ] shall be equal to 1, where rLId is set equal to nuh_layer_id of the inter-layer picture
     3661      checkZeroMVILR &= m_pcSlice->getVPS()->isSamplePredictionType( m_layerId, refPic->getLayerId() );
    36503662    }
    36513663  }
  • branches/SHM-6-dev/source/Lib/TLibCommon/TComPrediction.cpp

    r723 r724  
    492492    TComPic* refPic = pcCU->getSlice()->getRefPic(eRefPicList, iRefIdx);
    493493
    494     // It is a requirement of bitstream conformance that when the reference picture represented by the variable refIdxLX is an inter-layer reference picture,
    495     // VpsInterLayerSamplePredictionEnabled[ LayerIdxInVps[ currLayerId ] ][ LayerIdxInVps[ rLId ] ] shall be equal to 1, where rLId is set equal to nuh_layer_id of the inter-layer picture
    496     assert( ( refPic->isILR(pcCU->getLayerId()) && pcCU->getSlice()->getVPS()->isSamplePredictionType( pcCU->getLayerId(), refPic->getLayerId() ) ) || refPic->isILR(pcCU->getLayerId()) == false );
     494    if( refPic->isILR(pcCU->getLayerId()) )
     495    {
     496      // It is a requirement of bitstream conformance that when the reference picture represented by the variable refIdxLX is an inter-layer reference picture,
     497      // VpsInterLayerSamplePredictionEnabled[ LayerIdxInVps[ currLayerId ] ][ LayerIdxInVps[ rLId ] ] shall be equal to 1, where rLId is set equal to nuh_layer_id of the inter-layer picture
     498      assert( pcCU->getSlice()->getVPS()->isSamplePredictionType( pcCU->getLayerId(), refPic->getLayerId() ) );
    497499
    498500#if REF_IDX_ME_ZEROMV
    499     // It is a requirement of bitstream conformance that the variables mvLX[ 0 ] and mvLX[ 1 ] shall be equal to 0 if the value of refIdxLX corresponds to an inter-layer reference picture.
    500     assert( ( refPic->isILR(pcCU->getLayerId()) && cMv.getHor() == 0 && cMv.getVer() == 0 ) || refPic->isILR(pcCU->getLayerId()) == false );
     501      // It is a requirement of bitstream conformance that the variables mvLX[ 0 ] and mvLX[ 1 ] shall be equal to 0 if the value of refIdxLX corresponds to an inter-layer reference picture.
     502      assert( cMv.getHor() == 0 && cMv.getVer() == 0 );
    501503#endif
     504    }
     505
    502506  }
    503507#endif
Note: See TracChangeset for help on using the changeset viewer.