Changeset 939 in 3DVCSoftware for branches/HTM-10.2-dev0/source/Lib/TLibCommon


Ignore:
Timestamp:
22 Apr 2014, 17:08:54 (11 years ago)
Author:
tech
Message:

Merged 10.2-dev3-HiSilicon@928.

Location:
branches/HTM-10.2-dev0/source/Lib/TLibCommon
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-10.2-dev0/source/Lib/TLibCommon/ContextTables.h

    r936 r939  
    110110#define NUM_DMM1_DATA_CTX             1       ///< number of context models for DMM1 data
    111111#endif
     112#if LGE_SIMP_DIM_NOT_PRESENT_FLAG_CODING_H0119_H0135
     113#define NUM_ANGLE_FLAG_CTX            1
     114#else
    112115#define NUM_ANGLE_FLAG_CTX            3
     116#endif
    113117#endif
    114118
     
    368372};
    369373
     374#if LGE_SIMP_DIM_NOT_PRESENT_FLAG_CODING_H0119_H0135
     375static const UChar
     376INIT_ANGLE_FLAG[3][NUM_ANGLE_FLAG_CTX] =
     377{
     378  { 154 },
     379  { 141 },
     380  { 155 },
     381};
     382#else
    370383static const UChar
    371384INIT_ANGLE_FLAG[3][NUM_ANGLE_FLAG_CTX] =
     
    375388  { 155, 170, 157 },
    376389};
     390#endif
    377391
    378392static const UChar
  • branches/HTM-10.2-dev0/source/Lib/TLibCommon/TComDataCU.cpp

    r936 r939  
    610610    memset( m_apSegmentDCOffset[1]  + firstElement,     0,                numElements * sizeof( *m_apSegmentDCOffset[1] ) );
    611611#endif
     612#if HS_DMM_SDC_PREDICTOR_UNIFY_H0108
     613    m_apDmmPredictor[0] = 0;
     614    m_apDmmPredictor[1] = 0;
     615#endif
    612616#endif
    613617#if H_3D_DBBP
     
    784788      m_apSegmentDCOffset[1][ui] = 0;
    785789#endif
     790#if HS_DMM_SDC_PREDICTOR_UNIFY_H0108
     791      m_apDmmPredictor[0] = 0;
     792      m_apDmmPredictor[1] = 0;
     793#endif
    786794#endif
    787795#if H_3D_DBBP
     
    898906  memset( m_apSegmentDCOffset[0], 0, sizeof(Pel) * m_uiNumPartition   );
    899907  memset( m_apSegmentDCOffset[1], 0, sizeof(Pel) * m_uiNumPartition   );
     908#endif
     909#if HS_DMM_SDC_PREDICTOR_UNIFY_H0108
     910  m_apDmmPredictor[0] = 0;
     911  m_apDmmPredictor[1] = 0;
    900912#endif
    901913#endif
     
    23892401UInt TComDataCU::getCtxAngleFlag( UInt uiAbsPartIdx )
    23902402{
     2403#if LGE_SIMP_DIM_NOT_PRESENT_FLAG_CODING_H0119_H0135
     2404  return 0;
     2405#else
    23912406  TComDataCU* pcTempCU;
    23922407  UInt        uiTempPartIdx;
     
    24022417
    24032418  return uiCtx;
     2419#endif
    24042420}
    24052421#endif
  • branches/HTM-10.2-dev0/source/Lib/TLibCommon/TComDataCU.h

    r936 r939  
    195195  Bool*         m_pbSDCFlag;
    196196  Pel*          m_apSegmentDCOffset[2];
     197#if HS_DMM_SDC_PREDICTOR_UNIFY_H0108
     198  Pel          m_apDmmPredictor[2];
     199#endif
    197200#endif
    198201#endif
     
    580583  Pel           getSDCSegmentDCOffset( UInt uiSeg, UInt uiPartIdx ) { return m_apSegmentDCOffset[uiSeg][uiPartIdx]; }
    581584  Void          setSDCSegmentDCOffset( Pel pOffset, UInt uiSeg, UInt uiPartIdx) { m_apSegmentDCOffset[uiSeg][uiPartIdx] = pOffset; }
     585#if HS_DMM_SDC_PREDICTOR_UNIFY_H0108
     586  Void          setDmmPredictor ( Pel pOffset, UInt uiSeg) { m_apDmmPredictor[uiSeg] = pOffset; }
     587  Pel           getDmmPredictor ( UInt uiSeg) { return m_apDmmPredictor[uiSeg]; }
     588#endif
    582589  UInt          getCtxSDCFlag          ( UInt   uiAbsPartIdx );
    583590  UInt          getCtxAngleFlag        ( UInt   uiAbsPartIdx );
  • branches/HTM-10.2-dev0/source/Lib/TLibCommon/TComPrediction.cpp

    r936 r939  
    500500  Pel* pDst = piPred;
    501501  xAssignBiSegDCs( pDst, uiStride, biSegPattern, patternStride, segDC1, segDC2 );
     502#if HS_DMM_SDC_PREDICTOR_UNIFY_H0108
     503  pcCU->setDmmPredictor(segDC1, 0);
     504  pcCU->setDmmPredictor(segDC2, 1);
     505#endif
    502506
    503507#if H_3D_DIM_DMM
     
    23242328  if (orgDC == false)
    23252329  {
     2330#if !HS_DMM_SDC_PREDICTOR_UNIFY_H0108
    23262331    if ( getDimType(uiIntraMode) == DMM1_IDX )
    23272332    {
     
    23692374    }
    23702375    else
     2376#endif
    23712377    {
    23722378      Pel* pLeftTop = pOrig;
  • branches/HTM-10.2-dev0/source/Lib/TLibCommon/TComRom.cpp

    r872 r939  
    360360Char  g_aucConvertToBit  [ MAX_CU_SIZE+1 ];
    361361
     362#if MTK_LOW_LATENCY_IC_ENCODING_H0086
     363UInt g_aICEnableCANDIDATE[10] = { 0, };
     364UInt g_aICEnableNUM[ 10 ] = { 0, };
     365Int g_lastlayer=0;
     366#endif
    362367#if ENC_DEC_TRACE
    363368FILE*  g_hTrace = NULL;
  • branches/HTM-10.2-dev0/source/Lib/TLibCommon/TComRom.h

    r872 r939  
    189189extern       Char   g_aucConvertToBit  [ MAX_CU_SIZE+1 ];   // from width to log2(width)-2
    190190
     191#if MTK_LOW_LATENCY_IC_ENCODING_H0086
     192extern UInt g_aICEnableCANDIDATE[10];
     193extern UInt g_aICEnableNUM[ 10 ]; //10 layers
     194extern Int g_lastlayer;
     195#endif
     196
    191197#ifndef ENC_DEC_TRACE
    192198#define ENC_DEC_TRACE   0
  • branches/HTM-10.2-dev0/source/Lib/TLibCommon/TComSlice.cpp

    r884 r939  
    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
  • branches/HTM-10.2-dev0/source/Lib/TLibCommon/TComSlice.h

    r884 r939  
    21792179  Bool      getApplyIC()                                        { return m_bApplyIC; }
    21802180  Void      xSetApplyIC();
     2181#if MTK_LOW_LATENCY_IC_ENCODING_H0086
     2182  Void      xSetApplyIC(Bool bUseLowLatencyICEnc);
     2183#endif
    21812184  Void      setIcSkipParseFlag( Bool b )                        { m_icSkipParseFlag = b; }
    21822185  Bool      getIcSkipParseFlag()                                { return m_icSkipParseFlag; }
  • branches/HTM-10.2-dev0/source/Lib/TLibCommon/TypeDef.h

    r937 r939  
    120120                                              // SEC_IC_ARP_SIG_G0072, Disabling IC when ARP is enabled, option 1 in JCT3V-G0072, part 2 in JCT3V-G0121
    121121
     122#define MTK_LOW_LATENCY_IC_ENCODING_H0086   1 // Low-latency IC encoding in JCT3V-H0086
     123#if MTK_LOW_LATENCY_IC_ENCODING_H0086
     124#define MTK_LOW_LATENCY_IC_ENCODING_THRESHOLD_H0086    0.1 // Threshold for low-latency IC encoding in JCT3V-H0086
     125#endif
     126
    122127#if H_3D_NBDV
    123128#define H_3D_NBDV_REF                     1   // Depth oriented neighboring block disparity derivation
     
    196201                                              // HS_TSINGHUA_SDC_SPLIT_G0111
    197202                                              // QC_PKU_SDC_SPLIT_G0123 Intra SDC Split
    198 
    199 
     203#define MTK_DELTA_DC_FLAG_ONE_CONTEXT_H0084_H0100_H0113     1 // Use only one context for CABAC of delta_dc_flag as in JCTVC-H0084, JCTVC-H0100 and JCTVC-H0113
     204#define MTK_SDC_FLAG_FIX_H0095            1   // Remove conditional check of PCM flag based on SDC flag, JCTVC-H0095
     205
     206
     207#define MTK_DMM_SIMP_CODE_H0092           1   // Remove CABAC context for DMM1 mode coding
    200208
    201209#define H_3D_INTER_SDC                    1   // INTER SDC, Inter simplified depth coding
     
    222230#define H_3D_FAST_TEXTURE_ENCODING        1   // Fast merge mode decision and early CU determination for texture component of dependent view, JCT3V-E0173
    223231                                              // MTK_FAST_TEXTURE_ENCODING_E0173
     232#define QC_IV_PRED_CONSTRAINT_H0137       1   // Constraint on inter-view (motion) prediction tools
    224233#if H_3D_DIM
    225234#define H_3D_FAST_DEPTH_INTRA             1   // Fast DMM and RBC Mode Selection
     
    275284#define H_3D_DIM_DLT                      1   // Depth Lookup Table
    276285
     286#define HS_DMM_SDC_PREDICTOR_UNIFY_H0108  1   // Unification of DMM and SDC predictor derivation
     287#define LGE_SIMP_DIM_NOT_PRESENT_FLAG_CODING_H0119_H0135  1 // Use only one context for CABAC of dim_not_present_flag
     288#define QC_SIMP_DELTADC_CODING_H0131      1   // Simplify detaDC entropy coding
    277289#if H_3D_DIM_DLT
    278290#define H_3D_DELTA_DLT                    1
Note: See TracChangeset for help on using the changeset viewer.