Changeset 726 in SHVCSoftware


Ignore:
Timestamp:
23 Apr 2014, 08:24:48 (11 years ago)
Author:
seregin
Message:

checks for ILRP prediction type

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

Legend:

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

    r717 r726  
    785785  //set L0 inter-layer reference picture modification
    786786#if RPL_INIT_N0316_N0082
    787   Bool hasModification = (m_aiNumRefIdx[REF_PIC_LIST_0] == (numberOfPocBeforeCurr + m_activeNumILRRefIdx)) ? false : true;
     787  Bool hasModification = (m_aiNumRefIdx[REF_PIC_LIST_0] >= (numberOfPocBeforeCurr + m_activeNumILRRefIdx)) ? false : true;
    788788#else
    789789  Bool hasModification = (m_aiNumRefIdx[REF_PIC_LIST_0] == numberOfRpsCurrTempList) ? false : true;
     
    799799      refPicListModification->setRefPicSetIdxL0(i, i);
    800800    }
     801
    801802    if(m_aiNumRefIdx[REF_PIC_LIST_0] > numberOfRpsCurrTempList)
    802803    {
    803         // repeat last ref pic when the number of active ref idx are more than RPS entries
     804      // repeat last ref pic when the number of active ref idx are more than RPS entries
    804805      for (Int i = numberOfRpsCurrTempList; i < m_aiNumRefIdx[REF_PIC_LIST_0]; i ++)
    805806      {
     
    809810    else
    810811    {
    811       for(Int i = m_activeNumILRRefIdx; i > 0; i-- )
     812      // number of ILRPs included into the reference picture list with the list modification
     813      Int inlucdeNumILRP = min(m_aiNumRefIdx[REF_PIC_LIST_0]-numberOfPocBeforeCurr, m_activeNumILRRefIdx);
     814
     815      for(Int i = inlucdeNumILRP; i > 0; i-- )
    812816      {
    813817#if RPL_INIT_N0316_N0082
     
    821825          for (Int j = numberOfPocBeforeCurr; j < (m_aiNumRefIdx[REF_PIC_LIST_0] - i); j++)
    822826          {
    823             refPicListModification->setRefPicSetIdxL0(j, j + m_activeNumILRRefIdx);
     827            assert( j + inlucdeNumILRP < numberOfRpsCurrTempList );
     828            refPicListModification->setRefPicSetIdxL0(j, j + inlucdeNumILRP);
    824829          }
    825830        }
     
    832837
    833838  //set L1 inter-layer reference picture modification
    834   hasModification = (m_aiNumRefIdx[REF_PIC_LIST_1] == numberOfRpsCurrTempList) ? false : true;
     839  hasModification = (m_aiNumRefIdx[REF_PIC_LIST_1] >= numberOfRpsCurrTempList) ? false : true;
    835840#if N0147_IRAP_ALIGN_FLAG
    836841  hasModification = hasModification && ( m_aiNumRefIdx[REF_PIC_LIST_1] > 1 );
     
    854859    else
    855860    {
    856       for(Int i = m_activeNumILRRefIdx; i > 0; i-- )
     861      Int inlucdeNumILRP = min(m_aiNumRefIdx[REF_PIC_LIST_1], m_activeNumILRRefIdx);
     862
     863      for(Int i = inlucdeNumILRP; i > 0; i-- )
    857864      {
    858865        refPicListModification->setRefPicSetIdxL1(m_aiNumRefIdx[REF_PIC_LIST_1] - i, numberOfRpsCurrTempList - i);
  • branches/SHM-6-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r716 r726  
    29902990#if SVC_EXTENSION && REF_IDX_MFM
    29912991      // set motion mapping flag
    2992       rpcSlice->setMFMEnabledFlag( ( rpcSlice->getNumMotionPredRefLayers() > 0 && rpcSlice->getActiveNumILRRefIdx() ) ? true : false );
     2992      rpcSlice->setMFMEnabledFlag( ( rpcSlice->getNumMotionPredRefLayers() > 0 && rpcSlice->getActiveNumILRRefIdx() && !rpcSlice->isIntra() ) ? true : false );
    29932993#endif
    29942994      if ( rpcSlice->getSliceType() == B_SLICE )
  • branches/SHM-6-dev/source/Lib/TLibDecoder/TDecTop.cpp

    r725 r726  
    17371737    if( pcSlice->getMFMEnabledFlag() )
    17381738    {
    1739       Int refLayerId = pcSlice->getRefPic( pcSlice->getSliceType() == B_SLICE ? ( RefPicList )( 1 - pcSlice->getColFromL0Flag() ) : REF_PIC_LIST_0 , pcSlice->getColRefIdx() )->getLayerId();
     1739      TComPic* refPic = pcSlice->getRefPic( pcSlice->getSliceType() == B_SLICE ? ( RefPicList )( 1 - pcSlice->getColFromL0Flag() ) : REF_PIC_LIST_0 , pcSlice->getColRefIdx() );
     1740
     1741      assert( refPic );
     1742
     1743      Int refLayerId = refPic->getLayerId();
     1744
    17401745      if( refLayerId != pcSlice->getLayerId() )
    17411746      {
     
    17651770#endif
    17661771
    1767     if( m_layerId > 0 && pcSlice->getEnableTMVPFlag() )
     1772    if( m_layerId > 0 && !pcSlice->isIntra() && pcSlice->getEnableTMVPFlag() )
    17681773    {
    17691774      TComPic* refPic = pcSlice->getRefPic(RefPicList(1 - pcSlice->getColFromL0Flag()), pcSlice->getColRefIdx());
     1775
     1776      assert( refPic );
    17701777
    17711778      // It is a requirement of bitstream conformance when the collocated picture, used for temporal motion vector prediction, is an inter-layer reference picture,
  • branches/SHM-6-dev/source/Lib/TLibEncoder/TEncCu.cpp

    r595 r726  
    696696#if (ENCODER_FAST_MODE)
    697697        if( rpcBestCU->getSlice()->getSliceType() == I_SLICE ||
     698          rpcBestCU->getPredictionMode(0) == SIZE_NONE ||  // if there is no valid inter prediction
    698699          !testInter ||
    699700          rpcBestCU->getCbf( 0, TEXT_LUMA     ) != 0   ||
     
    701702          rpcBestCU->getCbf( 0, TEXT_CHROMA_V ) != 0     ) // avoid very complex intra if it is unlikely
    702703#else
    703           if( rpcBestCU->getSlice()->getSliceType() == I_SLICE ||
    704             rpcBestCU->getCbf( 0, TEXT_LUMA     ) != 0   ||
    705             rpcBestCU->getCbf( 0, TEXT_CHROMA_U ) != 0   ||
    706             rpcBestCU->getCbf( 0, TEXT_CHROMA_V ) != 0     ) // avoid very complex intra if it is unlikely
    707 #endif
     704        if( rpcBestCU->getSlice()->getSliceType() == I_SLICE ||
     705          rpcBestCU->getCbf( 0, TEXT_LUMA     ) != 0   ||
     706          rpcBestCU->getCbf( 0, TEXT_CHROMA_U ) != 0   ||
     707          rpcBestCU->getCbf( 0, TEXT_CHROMA_V ) != 0     ) // avoid very complex intra if it is unlikely
     708#endif
     709        {
     710          xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_2Nx2N );
     711          rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );
     712          if( uiDepth == g_uiMaxCUDepth - g_uiAddCUDepth )
    708713          {
    709             xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_2Nx2N );
    710           rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );
    711             if( uiDepth == g_uiMaxCUDepth - g_uiAddCUDepth )
     714            if( rpcTempCU->getWidth(0) > ( 1 << rpcTempCU->getSlice()->getSPS()->getQuadtreeTULog2MinSize() ) )
    712715            {
    713               if( rpcTempCU->getWidth(0) > ( 1 << rpcTempCU->getSlice()->getSPS()->getQuadtreeTULog2MinSize() ) )
    714               {
    715                 xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_NxN   );
     716              xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_NxN   );
    716717              rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );
    717               }
    718718            }
    719719          }
     720        }
    720721
    721722        // test PCM
     
    734735#if (ENCODER_FAST_MODE)
    735736#if N0383_IL_CONSTRAINED_TILE_SETS_SEI
    736       if(pcPic->getLayerId() > 0 && !m_disableILP)
    737 #else
    738       if(pcPic->getLayerId() > 0)
    739 #endif
    740       {
    741         for(Int refLayer = 0; refLayer < pcSlice->getActiveNumILRRefIdx(); refLayer++)
    742         { 
    743            xCheckRDCostILRUni( rpcBestCU, rpcTempCU, pcSlice->getInterLayerPredLayerIdc(refLayer));
    744            rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );
     737        if(pcPic->getLayerId() > 0 && !m_disableILP)
     738#else
     739        if(pcPic->getLayerId() > 0)
     740#endif
     741        {
     742          for(Int refLayer = 0; refLayer < pcSlice->getActiveNumILRRefIdx(); refLayer++)
     743          { 
     744            xCheckRDCostILRUni( rpcBestCU, rpcTempCU, pcSlice->getInterLayerPredLayerIdc(refLayer));
     745            rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );
     746          }
    745747        }
    746       }
    747748#endif
    748749
     
    821822
    822823  if ( m_pcEncCfg->getCUTransquantBypassFlagForceValue() )
    823     {
     824  {
    824825    iMaxQP = iMinQP; // If all blocks are forced into using transquant bypass, do not loop here.
    825     }
     826  }
    826827
    827828  for (Int iQP=iMinQP; iQP<=iMaxQP; iQP++)
     
    14761477  rpcTempCU->setPredModeSubParts  ( MODE_INTER, 0, uhDepth );
    14771478 
     1479#if SVC_EXTENSION
     1480#if AMP_MRG
     1481  rpcTempCU->setMergeAMP (true);
     1482  Bool ret = m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth], false, bUseMRG );
     1483#else 
     1484  Bool ret = m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth] );
     1485#endif
     1486
     1487  if( !ret )
     1488  {
     1489    return;
     1490  }
     1491#else
    14781492#if AMP_MRG
    14791493  rpcTempCU->setMergeAMP (true);
     
    14811495#else 
    14821496  m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth] );
     1497#endif
    14831498#endif
    14841499
  • branches/SHM-6-dev/source/Lib/TLibEncoder/TEncGOP.cpp

    r724 r726  
    14761476    if( m_layerId > 0 && pcSlice->getActiveNumILRRefIdx() )
    14771477    {
     1478#if POC_RESET_FLAG
     1479      if ( pocCurr > 0          && pcSlice->isRADL() && pcPic->getSlice(0)->getBaseColPic(pcPic->getSlice(0)->getInterLayerPredLayerIdc(0))->getSlice(0)->isRASL())
     1480#else
     1481      if (pcSlice->getPOC()>0  && pcSlice->isRADL() && pcPic->getSlice(0)->getBaseColPic(pcPic->getSlice(0)->getInterLayerPredLayerIdc(0))->getSlice(0)->isRASL())
     1482#endif
     1483      {
     1484        pcSlice->setActiveNumILRRefIdx(0);
     1485        pcSlice->setInterLayerPredEnabledFlag(0);
     1486      }
     1487      if( pcSlice->getNalUnitType() >= NAL_UNIT_CODED_SLICE_BLA_W_LP && pcSlice->getNalUnitType() <= NAL_UNIT_CODED_SLICE_CRA )
     1488      {
     1489        pcSlice->setNumRefIdx(REF_PIC_LIST_0, pcSlice->getActiveNumILRRefIdx());
     1490        pcSlice->setNumRefIdx(REF_PIC_LIST_1, pcSlice->getActiveNumILRRefIdx());
     1491      }
     1492      else
     1493      {
     1494        pcSlice->setNumRefIdx(REF_PIC_LIST_0, pcSlice->getNumRefIdx(REF_PIC_LIST_0)+pcSlice->getActiveNumILRRefIdx());
     1495        pcSlice->setNumRefIdx(REF_PIC_LIST_1, pcSlice->getNumRefIdx(REF_PIC_LIST_1)+pcSlice->getActiveNumILRRefIdx());
     1496      }
     1497
    14781498      // check for the reference pictures whether there is at least one either temporal picture or ILRP with sample prediction type
    1479       if( pcSlice->getNumRefIdx( REF_PIC_LIST_0 ) == 0 && pcSlice->getNumRefIdx( REF_PIC_LIST_1 ) == 0 )
    1480       {
    1481         Bool foundSamplePredPicture = false;
     1499      if( pcSlice->getNumRefIdx( REF_PIC_LIST_0 ) - pcSlice->getActiveNumILRRefIdx() == 0 && pcSlice->getNumRefIdx( REF_PIC_LIST_1 ) - pcSlice->getActiveNumILRRefIdx() == 0 )
     1500      {
     1501        Bool foundSamplePredPicture = false;               
    14821502
    14831503        for( Int i = 0; i < pcSlice->getActiveNumILRRefIdx(); i++ )
     
    14931513        {
    14941514          pcSlice->setSliceType(I_SLICE);
    1495         }
    1496       }
    1497 
    1498 #if POC_RESET_FLAG
    1499       if ( pocCurr > 0          && pcSlice->isRADL() && pcPic->getSlice(0)->getBaseColPic(pcPic->getSlice(0)->getInterLayerPredLayerIdc(0))->getSlice(0)->isRASL())
    1500 #else
    1501       if (pcSlice->getPOC()>0  && pcSlice->isRADL() && pcPic->getSlice(0)->getBaseColPic(pcPic->getSlice(0)->getInterLayerPredLayerIdc(0))->getSlice(0)->isRASL())
    1502 #endif
    1503       {
    1504         pcSlice->setActiveNumILRRefIdx(0);
    1505         pcSlice->setInterLayerPredEnabledFlag(0);
    1506       }
    1507       if( pcSlice->getNalUnitType() >= NAL_UNIT_CODED_SLICE_BLA_W_LP && pcSlice->getNalUnitType() <= NAL_UNIT_CODED_SLICE_CRA )
    1508       {
    1509         pcSlice->setNumRefIdx(REF_PIC_LIST_0, pcSlice->getActiveNumILRRefIdx());
    1510         pcSlice->setNumRefIdx(REF_PIC_LIST_1, pcSlice->getActiveNumILRRefIdx());
    1511       }
    1512       else
    1513       {
    1514         pcSlice->setNumRefIdx(REF_PIC_LIST_0, pcSlice->getNumRefIdx(REF_PIC_LIST_0)+pcSlice->getActiveNumILRRefIdx());
    1515         pcSlice->setNumRefIdx(REF_PIC_LIST_1, pcSlice->getNumRefIdx(REF_PIC_LIST_1)+pcSlice->getActiveNumILRRefIdx());
     1515          pcSlice->setInterLayerPredEnabledFlag(0);
     1516          pcSlice->setActiveNumILRRefIdx(0);
     1517        }
    15161518      }
    15171519    }
     
    15451547      //  Set reference list
    15461548      pcSlice->setRefPicList ( rcListPic );
    1547 #endif //SVC_EXTENSION
     1549#endif
    15481550      pcSlice->setRefPicListModificationSvc();
    15491551      pcSlice->setRefPicList( rcListPic, false, m_pcEncTop->getIlpList());
     
    16021604          pcSlice->setColFromL0Flag(ColFromL0Flag);
    16031605          pcSlice->setColRefIdx(ColRefIdx);
    1604 
    1605           // remove motion only ILRP from the end of the ColFromL0Flag reference picture list
    1606           RefPicList refList = RefPicList(ColFromL0Flag);
    1607           Int numRefIdx = pcSlice->getNumRefIdx(refList);
    1608 
    1609           if( numRefIdx > 0 )
    1610           {
    1611             for( Int refIdx = pcSlice->getNumRefIdx(refList) - 1; refIdx >= pcSlice->getNumRefIdx(refList) - pcSlice->getActiveNumILRRefIdx(); refIdx-- )
    1612             {
    1613               TComPic* ilrp = pcSlice->getRefPic(refList, refIdx);
    1614 
    1615               assert( ilrp->isILR(m_layerId) );
    1616 
    1617               if( m_ppcTEncTop[m_layerId]->getSamplePredEnabledFlag( ilrp->getLayerId() ) )
    1618               {
    1619                 break;
    1620               }
    1621               else
    1622               {
    1623                 assert( numRefIdx > 1 );
    1624                 numRefIdx--;             
    1625               }
    1626             }
    1627 
    1628             pcSlice->setNumRefIdx( refList, numRefIdx );
    1629           }
    1630 
    1631           // remove motion only ILRP from the end of the (1-ColFromL0Flag) reference picture list up to ColRefIdx
    1632           refList = RefPicList(1 - ColFromL0Flag);
    1633           numRefIdx = pcSlice->getNumRefIdx(refList);
    1634 
    1635           if( numRefIdx > 0 )
    1636           {
    1637             for( Int refIdx = pcSlice->getNumRefIdx(refList) - 1; refIdx >= pcSlice->getNumRefIdx(refList) - pcSlice->getActiveNumILRRefIdx() && refIdx > ColRefIdx; refIdx-- )
    1638             {
    1639               TComPic* ilrp = pcSlice->getRefPic(refList, refIdx);
    1640 
    1641               assert( ilrp->isILR(m_layerId) );
    1642 
    1643               if( m_ppcTEncTop[m_layerId]->getSamplePredEnabledFlag( ilrp->getLayerId() ) )
    1644               {
    1645                 break;
    1646               }
    1647               else
    1648               {
    1649                 assert( numRefIdx > 1 );
    1650                 numRefIdx--;             
    1651               }
    1652             }
    1653 
    1654             pcSlice->setNumRefIdx( refList, numRefIdx );
    1655           }
    16561606        }
    16571607      }
     
    17371687      pcSlice->setEnableTMVPFlag(0);
    17381688    }
     1689
     1690#if SVC_EXTENSION
     1691    if( m_layerId > 0 && !pcSlice->isIntra() )
     1692    {
     1693      Int colFromL0Flag = 1;
     1694      Int colRefIdx = 0;
     1695
     1696      // check whether collocated picture is valid
     1697      if( pcSlice->getEnableTMVPFlag() )
     1698      {
     1699        colFromL0Flag = pcSlice->getColFromL0Flag();
     1700        colRefIdx = pcSlice->getColRefIdx();
     1701
     1702        TComPic* refPic = pcSlice->getRefPic(RefPicList(1-colFromL0Flag), colRefIdx);
     1703
     1704        assert( refPic );
     1705
     1706        // It is a requirement of bitstream conformance when the collocated picture, used for temporal motion vector prediction, is an inter-layer reference picture,
     1707        // VpsInterLayerMotionPredictionEnabled[ LayerIdxInVps[ currLayerId ] ][ LayerIdxInVps[ rLId ] ] shall be equal to 1, where rLId is set equal to nuh_layer_id of the inter-layer picture.
     1708        if( refPic->isILR(m_layerId) && !m_ppcTEncTop[m_layerId]->getMotionPredEnabledFlag(refPic->getLayerId()) )
     1709        {
     1710          pcSlice->setEnableTMVPFlag(false);
     1711          pcSlice->setMFMEnabledFlag(false);
     1712          colRefIdx = 0;
     1713        }
     1714      }
     1715
     1716      // remove motion only ILRP from the end of the colFromL0Flag reference picture list
     1717      RefPicList refList = RefPicList(colFromL0Flag);
     1718      Int numRefIdx = pcSlice->getNumRefIdx(refList);
     1719
     1720      if( numRefIdx > 0 )
     1721      {
     1722        for( Int refIdx = pcSlice->getNumRefIdx(refList) - 1; refIdx > 0; refIdx-- )
     1723        {
     1724          TComPic* refPic = pcSlice->getRefPic(refList, refIdx);
     1725
     1726          if( !refPic->isILR(m_layerId) || refPic->isILR(m_layerId) && m_ppcTEncTop[m_layerId]->getSamplePredEnabledFlag( refPic->getLayerId() ) )
     1727          {
     1728            break;
     1729          }
     1730          else
     1731          {
     1732            assert( numRefIdx > 1 );
     1733            numRefIdx--;             
     1734          }
     1735        }
     1736
     1737        pcSlice->setNumRefIdx( refList, numRefIdx );
     1738      }
     1739
     1740      // remove motion only ILRP from the end of the (1-colFromL0Flag) reference picture list up to colRefIdx
     1741      refList = RefPicList(1 - colFromL0Flag);
     1742      numRefIdx = pcSlice->getNumRefIdx(refList);
     1743
     1744      if( numRefIdx > 0 )
     1745      {
     1746        for( Int refIdx = pcSlice->getNumRefIdx(refList) - 1; refIdx > colRefIdx; refIdx-- )
     1747        {
     1748          TComPic* refPic = pcSlice->getRefPic(refList, refIdx);
     1749
     1750          if( !refPic->isILR(m_layerId) || refPic->isILR(m_layerId) && m_ppcTEncTop[m_layerId]->getSamplePredEnabledFlag( refPic->getLayerId() ) )
     1751          {
     1752            break;
     1753          }
     1754          else
     1755          {
     1756            assert( numRefIdx > 1 );
     1757            numRefIdx--;             
     1758          }
     1759        }
     1760
     1761        pcSlice->setNumRefIdx( refList, numRefIdx );
     1762      }
     1763
     1764      assert( pcSlice->getNumRefIdx(REF_PIC_LIST_0) > 0 && ( pcSlice->isInterP() || (pcSlice->isInterB() && pcSlice->getNumRefIdx(REF_PIC_LIST_1) > 0) ) );
     1765    }
     1766#endif
     1767
    17391768    /////////////////////////////////////////////////////////////////////////////////////////////////// Compress a slice
    17401769    //  Slice compression
  • branches/SHM-6-dev/source/Lib/TLibEncoder/TEncSearch.cpp

    r722 r726  
    31023102 * \returns Void
    31033103 */
     3104#if SVC_EXTENSION
     3105#if AMP_MRG
     3106Bool TEncSearch::predInterSearch( TComDataCU* pcCU, TComYuv* pcOrgYuv, TComYuv*& rpcPredYuv, TComYuv*& rpcResiYuv, TComYuv*& rpcRecoYuv, Bool bUseRes, Bool bUseMRG )
     3107#else
     3108Bool TEncSearch::predInterSearch( TComDataCU* pcCU, TComYuv* pcOrgYuv, TComYuv*& rpcPredYuv, TComYuv*& rpcResiYuv, TComYuv*& rpcRecoYuv, Bool bUseRes )
     3109#endif
     3110#else
    31043111#if AMP_MRG
    31053112Void TEncSearch::predInterSearch( TComDataCU* pcCU, TComYuv* pcOrgYuv, TComYuv*& rpcPredYuv, TComYuv*& rpcResiYuv, TComYuv*& rpcRecoYuv, Bool bUseRes, Bool bUseMRG )
    31063113#else
    31073114Void TEncSearch::predInterSearch( TComDataCU* pcCU, TComYuv* pcOrgYuv, TComYuv*& rpcPredYuv, TComYuv*& rpcResiYuv, TComYuv*& rpcRecoYuv, Bool bUseRes )
     3115#endif
    31083116#endif
    31093117{
     
    32153223#endif
    32163224
     3225#if SVC_EXTENSION
     3226      Bool doneUniPred = false;
     3227#endif
     3228
    32173229    //  Uni-directional prediction
    32183230    for ( Int iRefList = 0; iRefList < iNumPredDir; iRefList++ )
     
    32433255        }
    32443256#endif
     3257        doneUniPred = true;
    32453258#endif
    32463259
     
    33513364      }
    33523365    }
     3366
     3367#if SVC_EXTENSION
     3368    if( pcCU->getLayerId() && !doneUniPred )
     3369    {
     3370      // there is no valid reference pictures for inter prediction
     3371      return false;
     3372    }
     3373#endif
     3374
    33533375    //  Bi-directional prediction
    33543376#if REF_IDX_ME_ZEROMV
     
    37973819  setWpScalingDistParam( pcCU, -1, REF_PIC_LIST_X );
    37983820
     3821#if SVC_EXTENSION
     3822  return true;
     3823#else
    37993824  return;
     3825#endif
    38003826}
    38013827
  • branches/SHM-6-dev/source/Lib/TLibEncoder/TEncSearch.h

    r722 r726  
    193193 
    194194  /// encoder estimation - inter prediction (non-skip)
     195#if SVC_EXTENSION
     196  Bool predInterSearch          ( TComDataCU* pcCU,
     197#else
    195198  Void predInterSearch          ( TComDataCU* pcCU,
     199#endif
    196200                                  TComYuv*    pcOrgYuv,
    197201                                  TComYuv*&   rpcPredYuv,
Note: See TracChangeset for help on using the changeset viewer.