Ignore:
Timestamp:
5 Nov 2012, 02:24:25 (12 years ago)
Author:
qualcomm
Message:

JCT3V-B0047

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-4.1-dev1-Qualcomm/source/Lib/TLibCommon/TComPic.cpp

    r100 r167  
    8181  m_aaiCodedScale     = 0;
    8282  m_aaiCodedOffset    = 0;
     83#if QC_SIMPLE_NBDV_B0047
     84  m_bRapCheck = false;
     85  m_eRapRefList = REF_PIC_LIST_0;
     86  m_uiRapRefIdx = 0;
     87#endif
     88
    8389}
    8490
     
    480486  }
    481487}
     488#if QC_SIMPLE_NBDV_B0047
     489Bool TComPic::getDisCandRefPictures(Int iColPOC)
     490{
     491  UInt uiTempLayerCurr=7;
     492  TComSlice* currSlice = getCurrSlice();
     493  UInt iPOCCurr=currSlice->getPOC();
     494  UInt iPOCDiff = 255;
     495  Bool  bRAP=false;
     496  Bool bCheck = false;
     497  Int MaxRef = currSlice->getNumRefIdx(RefPicList(0));
     498  RefPicList eRefPicList = REF_PIC_LIST_0 ;
     499  if(currSlice->isInterB())
     500  {
     501    if(currSlice->getNumRefIdx(RefPicList(0))< currSlice->getNumRefIdx(RefPicList(1)))
     502      MaxRef = currSlice->getNumRefIdx(RefPicList(1));
     503  }
     504  for(Int lpRef = 0; lpRef < MaxRef; lpRef++)
     505  {
     506    for(Int lpNr = 0; lpNr < (currSlice->isInterB() ? 2: 1); lpNr ++)
     507    {
     508      eRefPicList = RefPicList(0);
     509      if(currSlice->isInterB())
     510        eRefPicList = RefPicList(lpNr==0 ? (currSlice->getColDir()): (1-currSlice->getColDir()));
     511      if(iColPOC == currSlice->getRefPOC(eRefPicList, lpRef))
     512        continue;
     513      if(lpRef >= currSlice->getNumRefIdx(eRefPicList)||(currSlice->getViewId() != currSlice->getRefPic( eRefPicList, lpRef)->getViewId()))
     514        continue;
     515      Int iTempPoc = currSlice->getRefPic(eRefPicList, lpRef)->getPOC();
     516      UInt uiTempLayer = currSlice->getRefPic(eRefPicList, lpRef)->getCurrSlice()->getTLayer();
     517      Int iTempDiff = (iTempPoc > iPOCCurr) ? (iTempPoc - iPOCCurr): (iPOCCurr - iTempPoc);
     518      bRAP = (currSlice->getRefPic(eRefPicList, lpRef)->getCurrSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDV? 1:0);
     519      if( bRAP)
     520      {
     521         bCheck = true;
     522         this->setRapRefIdx(lpRef);
     523         this->setRapRefList(eRefPicList);
     524         return bCheck;
     525      }
     526      if(uiTempLayerCurr > uiTempLayer)
     527      {
     528        bCheck = true;
     529        if(uiTempLayerCurr == uiTempLayer)
     530        {
     531          if(iPOCDiff > iTempDiff)
     532          {
     533            iPOCDiff=iTempDiff;
     534            if(iPOCDiff < 255)
     535            {
     536              this->setRapRefIdx(lpRef);
     537              this->setRapRefList(eRefPicList);
     538            }
     539          }
     540        }
     541        else
     542        {
     543          iPOCDiff=iTempDiff;
     544          uiTempLayerCurr = uiTempLayer;
     545          this->setRapRefIdx(lpRef);
     546          this->setRapRefList(eRefPicList);
     547        }
     548      }
     549    }
     550  }
     551  return bCheck;
     552}
     553#endif
    482554
    483555#if HHI_INTERVIEW_SKIP
Note: See TracChangeset for help on using the changeset viewer.