Changeset 291 in SHVCSoftware for branches/SHM-2.1-dev/source/Lib/TLibDecoder


Ignore:
Timestamp:
18 Jun 2013, 14:06:13 (12 years ago)
Author:
nokia
Message:

JCTVC-M0457: Co-located picture signaling

Location:
branches/SHM-2.1-dev/source/Lib/TLibDecoder
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-2.1-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r290 r291  
    717717  READ_FLAG( uiCode, "sps_temporal_mvp_enable_flag" );            pcSPS->setTMVPFlagsPresent(uiCode);
    718718#if REF_IDX_MFM
     719#if !M0457_COL_PICTURE_SIGNALING
    719720  if(pcSPS->getLayerId() > 0)
    720721  {
     
    722723    pcSPS->setMFMEnabledFlag( uiCode ? true : false );
    723724  }
     725#endif
    724726#endif
    725727  READ_FLAG( uiCode, "sps_strong_intra_smoothing_enable_flag" );  pcSPS->setUseStrongIntraSmoothing(uiCode);
     
    16131615    if ( rpcSlice->getEnableTMVPFlag() )
    16141616    {
     1617#if REF_IDX_FRAMEWORK && M0457_COL_PICTURE_SIGNALING
     1618      rpcSlice->setMFMEnabledFlag( false );
     1619      rpcSlice->setColRefLayerIdx( 0 );
     1620      rpcSlice->setAltColIndicationFlag( false );
     1621      if ( sps->getLayerId() > 0 && rpcSlice->getNumMotionPredRefLayers() > 0 )
     1622      {
     1623        READ_FLAG( uiCode, "alt_collocated_indication_flag" );
     1624        rpcSlice->setAltColIndicationFlag( uiCode == 1 ? true : false );
     1625        rpcSlice->setMFMEnabledFlag( uiCode == 1 ? true : false );
     1626        if ( rpcSlice->getNumMotionPredRefLayers() > 1 )
     1627        {
     1628          READ_UVLC( uiCode, "collocated_ref_layer_idx" );
     1629          rpcSlice->setColRefLayerIdx( uiCode );
     1630        }
     1631      }
     1632      else
     1633      {
     1634#endif
    16151635      if ( rpcSlice->getSliceType() == B_SLICE )
    16161636      {
     
    16341654        rpcSlice->setColRefIdx(0);
    16351655      }
     1656#if REF_IDX_FRAMEWORK && M0457_COL_PICTURE_SIGNALING
     1657      }
     1658#endif
    16361659    }
    16371660    if ( (pps->getUseWP() && rpcSlice->getSliceType()==P_SLICE) || (pps->getWPBiPred() && rpcSlice->getSliceType()==B_SLICE) )
  • branches/SHM-2.1-dev/source/Lib/TLibDecoder/TDecTop.cpp

    r290 r291  
    541541  setRefLayerParams(m_apcSlicePilot->getVPS());
    542542#endif
     543#if REF_IDX_FRAMEWORK && M0457_COL_PICTURE_SIGNALING
     544  m_apcSlicePilot->setNumMotionPredRefLayers(m_numMotionPredRefLayers);
     545#endif
     546
    543547#if SVC_EXTENSION
    544548  m_cEntropyDecoder.decodeSliceHeader (m_apcSlicePilot, &m_parameterSetManagerDecoder[m_layerId]);
     
    919923      setILRPic(pcPic);
    920924#if REF_IDX_MFM
     925#if M0457_COL_PICTURE_SIGNALING
     926      if( pcSlice->getMFMEnabledFlag() )
     927#else
    921928      if( pcSlice->getSPS()->getMFMEnabledFlag() )
     929#endif
    922930      {
    923931        pcSlice->setRefPOCListILP(m_ppcTDecTop[m_layerId]->m_cIlpPic, pcSlice->getBaseColPic());
     932#if M0457_COL_PICTURE_SIGNALING
     933        pcSlice->setMotionPredIlp(getMotionPredIlp(pcSlice));
     934#endif
    924935      }
    925936#endif
     
    13721383
    13731384#endif
     1385
     1386#if M0457_COL_PICTURE_SIGNALING
     1387TComPic* TDecTop::getMotionPredIlp(TComSlice* pcSlice)
     1388{
     1389  TComPic* ilpPic = NULL;
     1390  Int activeMotionPredReflayerIdx = 0;
     1391
     1392  for( Int i = 0; i < pcSlice->getActiveNumILRRefIdx(); i++ )
     1393  {
     1394    UInt refLayerIdc = pcSlice->getInterLayerPredLayerIdc(i);
     1395    if (getMotionPredEnabledFlag(refLayerIdc))
     1396    {
     1397      if (activeMotionPredReflayerIdx == pcSlice->getColRefLayerIdx())
     1398      {
     1399        ilpPic = m_cIlpPic[i];
     1400        break;
     1401      }
     1402      else
     1403      {
     1404        activeMotionPredReflayerIdx++;
     1405      }
     1406    }
     1407  }
     1408
     1409  assert(ilpPic != NULL);
     1410
     1411  return ilpPic;
     1412}
     1413#endif
     1414
    13741415//! \}
  • branches/SHM-2.1-dev/source/Lib/TLibDecoder/TDecTop.h

    r290 r291  
    230230  Void      xDecodePPS();
    231231  Void      xDecodeSEI( TComInputBitstream* bs, const NalUnitType nalUnitType );
     232#if M0457_COL_PICTURE_SIGNALING
     233  TComPic*  getMotionPredIlp(TComSlice* pcSlice);
     234#endif
    232235
    233236};// END CLASS DEFINITION TDecTop
Note: See TracChangeset for help on using the changeset viewer.