Ignore:
Timestamp:
5 Jun 2013, 03:48:35 (12 years ago)
Author:
seregin
Message:

reference layers setting and related

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

Legend:

Unmodified
Added
Removed
  • branches/SHM-2.1-multilayers-dev/source/Lib/TLibEncoder/TEncCavlc.cpp

    r249 r259  
    10671067          if( !pcSlice->getVPS()->getMaxOneActiveRefLayerFlag())
    10681068          {
    1069             WRITE_CODE(pcSlice->getNumInterLayerRefPics(), numBits,"num_inter_layer_ref_pics_minus1");
     1069            WRITE_CODE(pcSlice->getActiveNumILRRefIdx() - 1, numBits,"num_inter_layer_ref_pics_minus1");
    10701070          }       
    10711071          for(Int i = 0; i < pcSlice->getActiveNumILRRefIdx(); i++ )
  • branches/SHM-2.1-multilayers-dev/source/Lib/TLibEncoder/TEncCu.cpp

    r253 r259  
    458458    if (rpcBestCU->getLayerId() > 0)
    459459    {
    460       // the right reference layerIdc should be specified, currently it is set to 0
    461       if (rpcBestCU->getSlice()->getBaseColPic(0)->getSlice(0)->getSliceType() == I_SLICE)
     460      TComList<TComPic*> *cListPic = m_ppcTEncTop[rpcBestCU->getLayerId()]->getRefLayerEnc(rpcBestCU->getLayerId()-1)->getListPic();
     461      TComPic* picLowerLayer = pcSlice->getRefPic( *cListPic, pcSlice->getPOC() );
     462      if(picLowerLayer->getSlice(0)->getSliceType() == I_SLICE)
    462463      {
    463464        testInter = false;
  • branches/SHM-2.1-multilayers-dev/source/Lib/TLibEncoder/TEncSlice.cpp

    r191 r259  
    491491  {
    492492#if JCTVC_M0458_INTERLAYER_RPS_SIG
    493   // currently only one reference layer is supported in software and no decision logic to select yet.
    494   // hence num of active inter layer references is set to one always
    495493    if( rpcSlice->getNumILRRefIdx() > 0 )
    496494    {
    497       rpcSlice->setActiveNumILRRefIdx(1);
     495      rpcSlice->setActiveNumILRRefIdx( rpcSlice->getNumILRRefIdx() );
     496      for( Int i = 0; i < rpcSlice->getActiveNumILRRefIdx(); i++ )
     497      {
     498        rpcSlice->setInterLayerPredLayerIdc(i, i);
     499      }
    498500      rpcSlice->setInterLayerPredEnabledFlag(1);
    499501    }
Note: See TracChangeset for help on using the changeset viewer.