Ignore:
Timestamp:
21 Nov 2013, 11:01:25 (10 years ago)
Author:
tech
Message:

Merged DEV1 ( branch HTM-8.2-dev1-Sharp2@707 )

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-8.2-dev0/source/Lib/TLibCommon/TComSlice.cpp

    r696 r710  
    751751    if ( this->getNumRefIdx( RefPicList( uiRefListIdx ) ) == 0)
    752752        continue;
    753 
     753#if !SHARP_ARP_REF_CHECK_F0105
     754// move the following to setARPStepNum() to define ARP related thing in ARP function.
     755#if QC_MTK_INTERVIEW_ARP_F0123_F0108
     756     for(Int i = 0; i < this->getNumRefIdx(RefPicList(uiRefListIdx)); i++ )
     757       {
     758       if ( this->getRefPic(RefPicList(uiRefListIdx), i)->getPOC() != getPOC() )
     759       {
     760         this->setFirstTRefIdx (RefPicList(uiRefListIdx), i);
     761         break;
     762       }
     763     }
     764#endif
     765#endif
    754766    Bool bZeroIdxLtFlag = this->getRefPic(RefPicList(uiRefListIdx), 0)->getIsLongTerm();
    755767    for(Int i = 1; i < this->getNumRefIdx(RefPicList(uiRefListIdx)); i++ )
     
    28342846
    28352847#if H_3D_ARP
     2848#if SHARP_ARP_REF_CHECK_F0105
     2849Void TComSlice::setARPStepNum( TComPicLists*ivPicLists )
     2850#else
    28362851Void TComSlice::setARPStepNum()                                 
    2837 {
     2852#endif
     2853{
     2854#if SHARP_ARP_REF_CHECK_F0105
     2855  Bool tempRefPicInListsFlag = false;
     2856#else
    28382857  Bool bAllIvRef = true;
    2839 
     2858#endif
     2859#if QC_MTK_INTERVIEW_ARP_F0123_F0108
     2860  if(!getVPS()->getUseAdvRP(getLayerId()) || this->isIRAP())
     2861#else
    28402862  if(!getVPS()->getUseAdvRP(getLayerId()))
     2863#endif
    28412864  {
    28422865    m_nARPStepNum = 0;
     
    28442867  else
    28452868  {
     2869#if SHARP_ARP_REF_CHECK_F0105
     2870    setFirstTRefIdx (REF_PIC_LIST_0, -1);
     2871    setFirstTRefIdx (REF_PIC_LIST_1, -1);
     2872    for ( Int refListIdx = 0; refListIdx < ((m_eSliceType==B_SLICE) ? 2 : 1); refListIdx++ )
     2873    {
     2874      for(Int i = 0; i < getNumRefIdx(RefPicList(refListIdx)); i++ )
     2875      {
     2876        if ( getRefPic(RefPicList(refListIdx), i)->getPOC() != getPOC() )
     2877        {
     2878          setFirstTRefIdx (RefPicList(refListIdx), i);
     2879          break;
     2880        }
     2881      }
     2882    }
     2883    tempRefPicInListsFlag = getFirstTRefIdx(REF_PIC_LIST_0) >= 0 || getFirstTRefIdx(REF_PIC_LIST_1) >= 0;
     2884    m_nARPStepNum = tempRefPicInListsFlag ? getVPS()->getARPStepNum(getLayerId()) : 0;
     2885#else
    28462886    for( Int iRefListId = 0; iRefListId < 2; iRefListId++ )
    28472887    {
     
    28662906    }
    28672907    m_nARPStepNum = !bAllIvRef ? getVPS()->getARPStepNum(getLayerId()) : 0;
    2868   }
     2908#endif
     2909  }
     2910#if SHARP_ARP_REF_CHECK_F0105
     2911  if (tempRefPicInListsFlag)
     2912  {
     2913    for ( Int refListIdx = 0; refListIdx < ((m_eSliceType==B_SLICE) ? 2 : 1); refListIdx++ )
     2914    {
     2915      RefPicList eRefPicList = RefPicList( refListIdx );
     2916      Int prevPOC = getRefPic(eRefPicList, getFirstTRefIdx(eRefPicList) )->getPOC();
     2917      for( Int i = 0; i < getNumActiveRefLayerPics(); i++ )
     2918      {
     2919        Int layerIdInNuh = getRefPicLayerId( i );
     2920        Int viewIdx = getVPS()->getViewId( layerIdInNuh );
     2921        TComPic*pcPicPrev = ivPicLists->getPic(viewIdx, 0, prevPOC);
     2922        if (getFirstTRefIdx(eRefPicList) >= 0 && pcPicPrev && pcPicPrev->getSlice( 0 )->isReferenced())
     2923        {
     2924          m_arpRefPicAvailable[eRefPicList][layerIdInNuh] = true;
     2925        }
     2926        else
     2927        {
     2928          m_arpRefPicAvailable[eRefPicList][layerIdInNuh] = false;
     2929        }
     2930      }
     2931  }
     2932}
     2933#endif
    28692934}
    28702935#endif
Note: See TracChangeset for help on using the changeset viewer.