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


Ignore:
Timestamp:
22 Oct 2015, 14:50:29 (9 years ago)
Author:
seregin
Message:

remove m_layerId from TComDataCU

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

Legend:

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

    r1465 r1483  
    460460
    461461  memset( m_skipFlag          , false,                      m_uiNumPartition * sizeof( *m_skipFlag ) );
    462 
    463 #if SVC_EXTENSION
    464   m_layerId           = pcPic->getLayerId();
    465 #endif
    466 
    467462  memset( m_pePartSize        , NUMBER_OF_PART_SIZES,       m_uiNumPartition * sizeof( *m_pePartSize ) );
    468463  memset( m_pePredMode        , NUMBER_OF_PREDICTION_MODES, m_uiNumPartition * sizeof( *m_pePredMode ) );
     
    32903285  UInt uiCUAddrBase = 0, uiAbsPartAddrBase = 0;
    32913286  // the right reference layerIdc should be specified, currently it is set to m_layerId-1
    3292   TComDataCU* pcTempCU = getBaseColCU(m_layerId - 1, uiAbsPartIdx, uiCUAddrBase, uiAbsPartAddrBase, posScalingFactor, false );
     3287  TComDataCU* pcTempCU = getBaseColCU(m_pcPic->getLayerId() - 1, uiAbsPartIdx, uiCUAddrBase, uiAbsPartAddrBase, posScalingFactor, false );
    32933288
    32943289  if( pcTempCU->getPredictionMode( uiAbsPartAddrBase ) != MODE_INTRA )
     
    33633358    TComPic* refPic = m_pcSlice->getRefPic(REF_PIC_LIST_0, refIdxL0);
    33643359
    3365     if(refPic->isILR(m_layerId))
     3360    if(refPic->isILR(m_pcPic->getLayerId()))
    33663361    {
    33673362      checkZeroMVILR &= (cMvFieldL0.getHor() == 0 && cMvFieldL0.getVer() == 0);
     
    33693364      // It is a requirement of bitstream conformance that when the reference picture represented by the variable refIdxLX is an inter-layer reference picture,
    33703365      // VpsInterLayerSamplePredictionEnabled[ LayerIdxInVps[ currLayerId ] ][ LayerIdxInVps[ rLId ] ] shall be equal to 1, where rLId is set equal to nuh_layer_id of the inter-layer picture
    3371       checkZeroMVILR &= m_pcSlice->getVPS()->isSamplePredictionType( getLayerIdx(), refPic->getLayerIdx() );
     3366      checkZeroMVILR &= m_pcSlice->getVPS()->isSamplePredictionType( m_pcPic->getLayerIdx(), refPic->getLayerIdx() );
    33723367    }
    33733368  }
     
    33773372    TComPic* refPic = m_pcSlice->getRefPic(REF_PIC_LIST_1, refIdxL1);
    33783373
    3379     if(refPic->isILR(m_layerId))
     3374    if(refPic->isILR(m_pcPic->getLayerId()))
    33803375    {
    33813376      checkZeroMVILR &= (cMvFieldL1.getHor() == 0 && cMvFieldL1.getVer() == 0);
     
    33833378      // It is a requirement of bitstream conformance that when the reference picture represented by the variable refIdxLX is an inter-layer reference picture,
    33843379      // VpsInterLayerSamplePredictionEnabled[ LayerIdxInVps[ currLayerId ] ][ LayerIdxInVps[ rLId ] ] shall be equal to 1, where rLId is set equal to nuh_layer_id of the inter-layer picture
    3385       checkZeroMVILR &= m_pcSlice->getVPS()->isSamplePredictionType( getLayerIdx(), refPic->getLayerIdx() );
     3380      checkZeroMVILR &= m_pcSlice->getVPS()->isSamplePredictionType( m_pcPic->getLayerIdx(), refPic->getLayerIdx() );
    33863381    }
    33873382  }
     
    33973392  Bool checkZeroMVILR = true;
    33983393
    3399   if(getSlice()->getRefPic(eRefPicList, iRefIdx)->isILR(m_layerId))
     3394  if(getSlice()->getRefPic(eRefPicList, iRefIdx)->isILR(m_pcPic->getLayerId()))
    34003395  {
    34013396    AMVPInfo* pcAMVPInfo = getCUMvField(eRefPicList)->getAMVPInfo();
     
    34163411  {
    34173412    Int refIdxL0 = cMvFieldL0.getRefIdx();
    3418     checkILR = getSlice()->getRefPic(REF_PIC_LIST_0, refIdxL0)->isILR(m_layerId);
     3413    checkILR = getSlice()->getRefPic(REF_PIC_LIST_0, refIdxL0)->isILR(m_pcPic->getLayerId());
    34193414  }
    34203415  if(uhInterDir&0x2)  //list1
    34213416  {
    34223417    Int refIdxL1  = cMvFieldL1.getRefIdx();
    3423     checkILR = checkILR || getSlice()->getRefPic(REF_PIC_LIST_1, refIdxL1)->isILR(m_layerId);
     3418    checkILR = checkILR || getSlice()->getRefPic(REF_PIC_LIST_1, refIdxL1)->isILR(m_pcPic->getLayerId());
    34243419  }
    34253420
  • branches/SHM-dev/source/Lib/TLibCommon/TComDataCU.h

    r1465 r1483  
    8888
    8989#if SVC_EXTENSION
    90   UInt          m_layerId;                              ///< layer id
    9190#if FAST_INTRA_SHVC
    9291  UChar         m_reducedSetIntraModes[NUM_INTRA_MODE-1];
     
    481480
    482481#if SVC_EXTENSION
    483   Void          setLayerId                    ( UInt layerId )                                             { m_layerId = layerId;        }
    484   UInt          getLayerId                    ( ) const                                                    { return m_layerId;           }
    485   UInt          getLayerIdx                   ( ) const                                                    { return m_pcSlice->getVPS()->getLayerIdxInVps(m_layerId); }
    486482#if N0383_IL_CONSTRAINED_TILE_SETS_SEI
    487483  Bool          isInterLayerReference         ( UChar uhInterDir, TComMvField& cMvFieldL0, TComMvField& cMvFieldL1 ) const;
  • branches/SHM-dev/source/Lib/TLibCommon/TComPrediction.cpp

    r1468 r1483  
    580580
    581581#if SVC_EXTENSION
    582   if( pcCU->getLayerId() > 0 )
     582  if( pcCU->getPic()->getLayerId() > 0 )
    583583  {
    584584    TComPic* refPic = pcCU->getSlice()->getRefPic(eRefPicList, iRefIdx);
    585585
    586     if( refPic->isILR(pcCU->getLayerId()) )
     586    if( refPic->isILR(pcCU->getPic()->getLayerId()) )
    587587    {
    588588      // It is a requirement of bitstream conformance that when the reference picture represented by the variable refIdxLX is an inter-layer reference picture,
    589589      // VpsInterLayerSamplePredictionEnabled[ LayerIdxInVps[ currLayerId ] ][ LayerIdxInVps[ rLId ] ] shall be equal to 1, where rLId is set equal to nuh_layer_id of the inter-layer picture
    590       assert( pcCU->getSlice()->getVPS()->isSamplePredictionType( pcCU->getLayerIdx(), refPic->getLayerIdx() ) );
     590      assert( pcCU->getSlice()->getVPS()->isSamplePredictionType( pcCU->getPic()->getLayerIdx(), refPic->getLayerIdx() ) );
    591591
    592592#if REF_IDX_ME_ZEROMV
  • branches/SHM-dev/source/Lib/TLibCommon/TComSlice.cpp

    r1472 r1483  
    35943594
    35953595      pcIlpPic[refLayerIdc]->getPicYuvRec()->setBorderExtension( false );
    3596       pcIlpPic[refLayerIdc]->getPicYuvRec()->extendPicBorder();
    3597       for (Int j=0; j<pcIlpPic[refLayerIdc]->getPicSym()->getNumberOfCtusInFrame(); j++)    // set reference CU layerId
    3598       {
    3599         pcIlpPic[refLayerIdc]->getPicSym()->getCtu(j)->setLayerId( pcIlpPic[refLayerIdc]->getLayerId() );
    3600       }
    3601       pcIlpPic[refLayerIdc]->setIsLongTerm(1);
     3596      pcIlpPic[refLayerIdc]->getPicYuvRec()->extendPicBorder();     
     3597      pcIlpPic[refLayerIdc]->setIsLongTerm(true);
    36023598
    36033599      // assign PPS to ILRP to be used for reference location offsets
Note: See TracChangeset for help on using the changeset viewer.