Changeset 460 in SHVCSoftware for branches/SHM-4.0-dev/source/Lib/TLibDecoder


Ignore:
Timestamp:
12 Nov 2013, 03:47:27 (12 years ago)
Author:
seregin
Message:

correct refLayerIdc for ILP derivation

Location:
branches/SHM-4.0-dev/source/Lib/TLibDecoder
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-4.0-dev/source/Lib/TLibDecoder/TDecTop.cpp

    r459 r460  
    200200  }
    201201}
    202 
    203 
    204 
    205 Void TDecTop::setILRPic(TComPic *pcPic)
    206 {
    207   for( Int i = 0; i < pcPic->getSlice(0)->getActiveNumILRRefIdx(); i++ )
    208   {
    209     Int refLayerIdc = pcPic->getSlice(0)->getInterLayerPredLayerIdc(i);
    210 
    211     if(m_cIlpPic[refLayerIdc])
    212     {
    213       m_cIlpPic[refLayerIdc]->copyUpsampledPictureYuv(pcPic->getFullPelBaseRec(refLayerIdc), m_cIlpPic[refLayerIdc]->getPicYuvRec());
    214       m_cIlpPic[refLayerIdc]->getSlice(0)->setPOC(pcPic->getPOC());
    215       m_cIlpPic[refLayerIdc]->setLayerId(pcPic->getSlice(0)->getBaseColPic(refLayerIdc)->getLayerId()); //set reference layerId
    216       m_cIlpPic[refLayerIdc]->getPicYuvRec()->setBorderExtension(false);
    217       m_cIlpPic[refLayerIdc]->getPicYuvRec()->extendPicBorder();
    218       for (Int j=0; j<m_cIlpPic[refLayerIdc]->getPicSym()->getNumberOfCUsInFrame(); j++)  // set reference CU layerId
    219       {
    220         m_cIlpPic[refLayerIdc]->getPicSym()->getCU(j)->setLayerId(m_cIlpPic[refLayerIdc]->getLayerId());
    221       }
    222     }
    223   }
    224 }
    225202#endif
    226203
     
    310287#endif
    311288        }
    312 #if MAX_ONE_RESAMPLING_DIRECT_LAYERS
    313 #if SCALABILITY_MASK_E0104
    314         if(pcSlice->getVPS()->getScalabilityMask(2))
    315 #else
    316         if(pcSlice->getVPS()->getScalabilityMask(1))
    317 #endif
    318         {
    319           pcSlice->setPic(rpcPic);
    320         }
    321 #endif
    322289      }
    323290    }
     
    10991066  pcPic->setLayerId(nalu.m_layerId);
    11001067  pcSlice->setLayerId(nalu.m_layerId);
     1068  pcSlice->setPic(pcPic);
    11011069#endif
    11021070
     
    12321200      }
    12331201
    1234       setILRPic(pcPic);
     1202      pcSlice->setILRPic( m_cIlpPic );
    12351203#if REF_IDX_MFM
    12361204#if M0457_COL_PICTURE_SIGNALING
     
    12561224    if( pcSlice->getMFMEnabledFlag() )
    12571225    {
    1258       Int nRefLayerID = pcSlice->getRefPic( pcSlice->getSliceType() == B_SLICE ? ( RefPicList )( 1 - pcSlice->getColFromL0Flag() ) : REF_PIC_LIST_0 , pcSlice->getColRefIdx() )->getLayerId();
    1259       if( nRefLayerID != pcSlice->getLayerId() )
    1260       {
    1261         TComPic * pColBasePic = pcSlice->getBaseColPic( nRefLayerID );
     1226      Int refLayerId = pcSlice->getRefPic( pcSlice->getSliceType() == B_SLICE ? ( RefPicList )( 1 - pcSlice->getColFromL0Flag() ) : REF_PIC_LIST_0 , pcSlice->getColRefIdx() )->getLayerId();
     1227      if( refLayerId != pcSlice->getLayerId() )
     1228      {       
     1229        TComPic * pColBasePic = pcSlice->getBaseColPic( refLayerId );
    12621230        assert( pColBasePic->checkSameRefInfo() == true );
    12631231      }
  • branches/SHM-4.0-dev/source/Lib/TLibDecoder/TDecTop.h

    r442 r460  
    213213  Void      xInitILRP(TComSPS *pcSPS);
    214214#endif
    215   Void      setILRPic(TComPic *pcPic);
    216215#endif
    217216#if AVC_SYNTAX || SYNTAX_OUTPUT
Note: See TracChangeset for help on using the changeset viewer.