Changeset 260 in SHVCSoftware for branches/SHM-2.1-multilayers-dev


Ignore:
Timestamp:
5 Jun 2013, 09:06:22 (11 years ago)
Author:
seregin
Message:

TMVP setting fix, encoder speed up fix, and other minor corrections

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

Legend:

Unmodified
Added
Removed
  • branches/SHM-2.1-multilayers-dev/source/Lib/TLibCommon/TComSlice.cpp

    r259 r260  
    576576      m_activeNumILRRefIdx = numInterLayerRPSPics;
    577577    }
    578 #if MAX_ONE_RESAMPLING_DIRECT_LAYERS
     578#if MAX_ONE_RESAMPLING_DIRECT_LAYERS && SIMPLIFIED_MV_POS_SCALING
    579579    if( m_pcVPS->getScalabilityMask(1) )
    580580    {
  • branches/SHM-2.1-multilayers-dev/source/Lib/TLibCommon/TComUpsampleFilter.cpp

    r255 r260  
    127127  Pel* piDstV;
    128128
     129#if SIMPLIFIED_MV_POS_SCALING
    129130  Int scaleX = g_posScalingFactor[refLayerIdc][0];
    130131  Int scaleY = g_posScalingFactor[refLayerIdc][1];
     132#else
     133  Int   scaleX     = ( ( widthBL << shiftX ) + ( widthEL >> 1 ) ) / widthEL;
     134  Int   scaleY     = ( ( heightBL << shiftY ) + ( heightEL >> 1 ) ) / heightEL;
     135#endif
    131136
    132137  if( scaleX == 65536 && scaleY == 65536 ) // ratio 1x
     
    334339    shiftYM4 = shiftY - 4;
    335340
     341#if !SIMPLIFIED_MV_POS_SCALING
     342    scaleX     = ( ( widthBL << shiftX ) + ( widthEL >> 1 ) ) / widthEL;
     343    scaleY     = ( ( heightBL << shiftY ) + ( heightEL >> 1 ) ) / heightEL;
     344#endif
     345
    336346#if ILP_DECODED_PICTURE
    337347    widthEL   = pcUsPic->getWidth () >> 1;
  • branches/SHM-2.1-multilayers-dev/source/Lib/TLibDecoder/TDecTop.cpp

    r257 r260  
    186186    if(m_cIlpPic[refLayerIdc])
    187187    {
    188       m_cIlpPic[refLayerIdc]->copyUpsampledPictureYuv(pcPic->getFullPelBaseRec(i), m_cIlpPic[refLayerIdc]->getPicYuvRec());
     188      m_cIlpPic[refLayerIdc]->copyUpsampledPictureYuv(pcPic->getFullPelBaseRec(refLayerIdc), m_cIlpPic[refLayerIdc]->getPicYuvRec());
    189189      m_cIlpPic[refLayerIdc]->getSlice(0)->setPOC(pcPic->getPOC());
    190       m_cIlpPic[refLayerIdc]->setLayerId(pcPic->getSlice(0)->getBaseColPic(i)->getLayerId()); //set reference layerId
     190      m_cIlpPic[refLayerIdc]->setLayerId(pcPic->getSlice(0)->getBaseColPic(refLayerIdc)->getLayerId()); //set reference layerId
    191191      m_cIlpPic[refLayerIdc]->getPicYuvRec()->setBorderExtension(false);
    192192      m_cIlpPic[refLayerIdc]->getPicYuvRec()->extendPicBorder();
     
    890890
    891891#if SVC_UPSAMPLING
    892         if ( pcPic->isSpatialEnhLayer(refLayerIdc))
     892        if( pcPic->isSpatialEnhLayer(refLayerIdc) )
    893893        {   
    894894#if SCALED_REF_LAYER_OFFSETS
    895895          m_cPrediction.upsampleBasePic( refLayerIdc, pcPic->getFullPelBaseRec(refLayerIdc), pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec(), pcPic->getPicYuvRec(), pcSlice->getSPS()->getScaledRefLayerWindow() );
    896896#else
    897           m_cPrediction.upsampleBasePic( refLayerIdc, pcPic->getFullPelBaseRec(), pcSlice->getBaseColPic()->getPicYuvRec(), pcPic->getPicYuvRec() );
     897          m_cPrediction.upsampleBasePic( refLayerIdc, pcPic->getFullPelBaseRec(refLayerIdc), pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec(), pcPic->getPicYuvRec() );
    898898#endif
    899899        }
     
    908908
    909909#if REF_IDX_FRAMEWORK
     910#if ZERO_NUM_DIRECT_LAYERS
     911    if( m_layerId > 0 && pcSlice->getActiveNumILRRefIdx() )
     912#else
    910913    if(m_layerId > 0)
     914#endif
    911915    {
    912916      setILRPic(pcPic);
  • branches/SHM-2.1-multilayers-dev/source/Lib/TLibEncoder/TEncGOP.cpp

    r255 r260  
    543543        TComList<TComPic*> *cListPic = m_ppcTEncTop[m_layerId-1]->getListPic();
    544544#endif
    545         pcSlice->setBaseColPic (*cListPic, refLayerIdc );
     545        pcSlice->setBaseColPic( *cListPic, refLayerIdc );
    546546
    547547#if SIMPLIFIED_MV_POS_SCALING
     
    936936    {
    937937      pcSlice->getSPS()->setTMVPFlagsPresent(1);
     938#if SVC_EXTENSION
     939      if( pcSlice->getIdrPicFlag() )
     940      {
     941        pcSlice->setEnableTMVPFlag(0);
     942      }
     943      else
     944#endif
    938945      pcSlice->setEnableTMVPFlag(1);
    939946    }
  • branches/SHM-2.1-multilayers-dev/source/Lib/TLibEncoder/TEncSearch.cpp

    r212 r260  
    33133313     
    33143314#if (ENCODER_FAST_MODE)
    3315       if (pcCU->getSlice()->getNumRefIdx(eRefPicList) > 1)
     3315      if( pcCU->getSlice()->getNumRefIdx(eRefPicList) - pcCU->getSlice()->getActiveNumILRRefIdx() > 0)
    33163316      {
    33173317        testILR = false;
  • branches/SHM-2.1-multilayers-dev/source/Lib/TLibEncoder/TEncSlice.cpp

    r259 r260  
    995995    TComDataCU*& pcCU = rpcPic->getCU( uiCUAddr );
    996996    pcCU->initCU( rpcPic, uiCUAddr );
    997 #if SVC_EXTENSION
    998     pcCU->setLayerId(m_pcCfg->getLayerId());
    999 #endif
    1000997
    1001998#if !RATE_CONTROL_LAMBDA_DOMAIN
  • branches/SHM-2.1-multilayers-dev/source/Lib/TLibEncoder/TEncTop.cpp

    r257 r260  
    12221222  }
    12231223
    1224   return (TEncTop *)getLayerEnc( getVPS()->getRefLayerId( m_layerId, refLayerIdc ) );
     1224  return (TEncTop *)getLayerEnc( m_cVPS.getRefLayerId( m_layerId, refLayerIdc ) );
    12251225}
    12261226#endif
Note: See TracChangeset for help on using the changeset viewer.