Ignore:
Timestamp:
9 Apr 2014, 09:39:39 (10 years ago)
Author:
mediatek-htm
Message:

Integration of low-latency IC encoding as proposed in JCT3V-H0086.
The MACRO is "MTK_LOW_LATENCY_IC_ENCODING_H0086"
The configuration files are modified by adding one additional control parameter "IlluCompLowLatencyEnc" which is set to 0 for CTC.

By Yi-Wen Chen (yiwen.chen@…)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-10.2-dev3-MediaTek/source/Lib/TLibCommon/TComSlice.cpp

    r884 r902  
    32203220#endif
    32213221#if H_3D_IC
     3222#if MTK_LOW_LATENCY_IC_ENCODING_H0086
     3223Void TComSlice::xSetApplyIC(Bool bUseLowLatencyICEnc)
     3224#else
    32223225Void TComSlice::xSetApplyIC()
    3223 {
     3226#endif
     3227{
     3228#if MTK_LOW_LATENCY_IC_ENCODING_H0086
     3229  if(bUseLowLatencyICEnc)
     3230  {
     3231    Bool existInterViewRef=false;
     3232    TComPic* pcCurrPic = getPic();
     3233    TComPic* pcRefPic = NULL;
     3234    for ( Int i = 0; (i < getNumRefIdx( REF_PIC_LIST_0 )) && !existInterViewRef; i++ )
     3235    {
     3236      pcRefPic = getRefPic( REF_PIC_LIST_0, i );
     3237      if ( pcRefPic != NULL )
     3238      {
     3239        if ( pcCurrPic->getViewIndex() != pcRefPic->getViewIndex() )
     3240        {
     3241          existInterViewRef = true;       
     3242        }
     3243      }
     3244    }
     3245
     3246    for ( Int i = 0; (i < getNumRefIdx( REF_PIC_LIST_1 )) && !existInterViewRef; i++ )
     3247    {
     3248      pcRefPic = getRefPic( REF_PIC_LIST_1, i );
     3249      if ( pcRefPic != NULL )
     3250      {
     3251        if ( pcCurrPic->getViewIndex() != pcRefPic->getViewIndex() )
     3252        {
     3253          existInterViewRef = true;       
     3254        }
     3255      }
     3256    }
     3257
     3258    if(!existInterViewRef)
     3259    {
     3260      m_bApplyIC = false;
     3261    }
     3262    else
     3263    {
     3264      Int curLayer=getDepth();
     3265      if( curLayer>9) curLayer=9; // Max layer is 10
     3266
     3267      m_bApplyIC = true;
     3268      Int refLayer = curLayer-1;
     3269      if( (refLayer>=0) && (g_aICEnableCANDIDATE[refLayer]>0) )
     3270      {   
     3271        Double ratio=Double(g_aICEnableNUM[refLayer])/Double(g_aICEnableCANDIDATE[refLayer]);
     3272
     3273        if( ratio > MTK_LOW_LATENCY_IC_ENCODING_THRESHOLD_H0086)
     3274        {
     3275          m_bApplyIC=true;
     3276        }
     3277        else
     3278        {
     3279          m_bApplyIC=false;
     3280        }
     3281      }
     3282      g_aICEnableNUM[curLayer]=0;
     3283      g_aICEnableCANDIDATE[curLayer]=0;
     3284      g_lastlayer=getDepth();
     3285    }
     3286  }
     3287  else
     3288  {
     3289#endif
    32243290  Int iMaxPelValue = ( 1 << g_bitDepthY );
    32253291  Int *aiRefOrgHist;
     
    32953361  aiCurrHist = NULL;
    32963362  aiRefOrgHist = NULL;
     3363#if MTK_LOW_LATENCY_IC_ENCODING_H0086
     3364  }//if(bUseLowLatencyICEnc)
     3365#endif
    32973366}
    32983367#endif
Note: See TracChangeset for help on using the changeset viewer.