Ignore:
Timestamp:
13 Nov 2013, 08:14:41 (11 years ago)
Author:
sharpjp-htm
Message:

Integration of F0105

File:
1 edited

Legend:

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

    r666 r693  
    751751    if ( this->getNumRefIdx( RefPicList( uiRefListIdx ) ) == 0)
    752752        continue;
     753#if !SHARP_ARP_REF_CHECK_F0105
     754// move the following to setARPStepNum() to define ARP related thing in ARP function.
    753755#if QC_MTK_INTERVIEW_ARP_F0123_F0108
    754756     for(Int i = 0; i < this->getNumRefIdx(RefPicList(uiRefListIdx)); i++ )
     
    760762       }
    761763     }
     764#endif
    762765#endif
    763766    Bool bZeroIdxLtFlag = this->getRefPic(RefPicList(uiRefListIdx), 0)->getIsLongTerm();
     
    28402843
    28412844#if H_3D_ARP
     2845#if SHARP_ARP_REF_CHECK_F0105
     2846Void TComSlice::setARPStepNum( TComPicLists*ivPicLists )
     2847#else
    28422848Void TComSlice::setARPStepNum()                                 
    2843 {
     2849#endif
     2850{
     2851#if SHARP_ARP_REF_CHECK_F0105
     2852  Bool tempRefPicInListsFlag = false;
     2853#else
    28442854  Bool bAllIvRef = true;
     2855#endif
    28452856#if QC_MTK_INTERVIEW_ARP_F0123_F0108
    28462857  if(!getVPS()->getUseAdvRP(getLayerId()) || this->isIRAP())
     
    28532864  else
    28542865  {
     2866#if SHARP_ARP_REF_CHECK_F0105
     2867    setFirstTRefIdx (REF_PIC_LIST_0, -1);
     2868    setFirstTRefIdx (REF_PIC_LIST_1, -1);
     2869    for ( Int refListIdx = 0; refListIdx < ((m_eSliceType==B_SLICE) ? 2 : 1); refListIdx++ )
     2870    {
     2871      for(Int i = 0; i < getNumRefIdx(RefPicList(refListIdx)); i++ )
     2872      {
     2873        if ( getRefPic(RefPicList(refListIdx), i)->getPOC() != getPOC() )
     2874        {
     2875          setFirstTRefIdx (RefPicList(refListIdx), i);
     2876          break;
     2877        }
     2878      }
     2879    }
     2880    tempRefPicInListsFlag = getFirstTRefIdx(REF_PIC_LIST_0) >= 0 || getFirstTRefIdx(REF_PIC_LIST_1) >= 0;
     2881    m_nARPStepNum = tempRefPicInListsFlag ? getVPS()->getARPStepNum(getLayerId()) : 0;
     2882#else
    28552883    for( Int iRefListId = 0; iRefListId < 2; iRefListId++ )
    28562884    {
     
    28752903    }
    28762904    m_nARPStepNum = !bAllIvRef ? getVPS()->getARPStepNum(getLayerId()) : 0;
    2877   }
     2905#endif
     2906  }
     2907#if SHARP_ARP_REF_CHECK_F0105
     2908  if (tempRefPicInListsFlag)
     2909  {
     2910    for ( Int refListIdx = 0; refListIdx < ((m_eSliceType==B_SLICE) ? 2 : 1); refListIdx++ )
     2911    {
     2912      RefPicList eRefPicList = RefPicList( refListIdx );
     2913      Int prevPOC = getRefPic(eRefPicList, getFirstTRefIdx(eRefPicList) )->getPOC();
     2914      for( Int i = 0; i < getNumActiveRefLayerPics(); i++ )
     2915      {
     2916        Int layerIdInNuh = getRefPicLayerId( i );
     2917        Int viewIdx = getVPS()->getViewId( layerIdInNuh );
     2918        TComPic*pcPicPrev = ivPicLists->getPic(viewIdx, 0, prevPOC);
     2919        if (getFirstTRefIdx(eRefPicList) >= 0 && pcPicPrev && pcPicPrev->getSlice( 0 )->isReferenced())
     2920        {
     2921          m_arpRefPicAvailable[eRefPicList][layerIdInNuh] = true;
     2922        }
     2923        else
     2924        {
     2925          m_arpRefPicAvailable[eRefPicList][layerIdInNuh] = false;
     2926        }
     2927      }
     2928    }
     2929  }
     2930#endif
    28782931}
    28792932#endif
Note: See TracChangeset for help on using the changeset viewer.