Changeset 712 in 3DVCSoftware for branches/HTM-8.2-dev0/source/Lib/TLibCommon


Ignore:
Timestamp:
21 Nov 2013, 13:28:24 (11 years ago)
Author:
tech
Message:

Merged DEV3 ( branch HTM-8.2-dev3-Samsung@699 )

Location:
branches/HTM-8.2-dev0/source/Lib/TLibCommon
Files:
8 edited

Legend:

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

    r710 r712  
    109109#define NUM_DEPTH_INTRA_MODE_CTX      8       ///< number of context models for depth intra modes
    110110#define NUM_DDC_FLAG_CTX              2       ///< number of context models for deltaDC flag (DMM or RBC)
     111#if QC_DIM_DELTADC_UNIFY_F0132
     112#define NUM_DDC_DATA_CTX              1       ///< number of context models for deltaDC data (DMM or RBC)
     113#else
    111114#define NUM_DDC_DATA_CTX              2       ///< number of context models for deltaDC data (DMM or RBC)
     115#endif
    112116#if H_3D_DIM_DMM
    113117#define NUM_DMM1_DATA_CTX             1       ///< number of context models for DMM1 data
     118#if !SEC_DMM3_RBC_F0147
    114119#define NUM_DMM3_DATA_CTX             1       ///< number of context models for DMM3 data
     120#endif
    115121#endif
    116122#if H_3D_DIM_RBC
     
    387393INIT_IC_FLAG[3][NUM_IC_FLAG_CTX] = 
    388394{
     395#if LGE_IC_CTX_F0160
     396    { 154,  154,  154, },
     397    { 154,  154,  154, },
     398    { 154,  154,  154, },
     399#else
    389400  { CNU,  CNU,  CNU, },
    390401  { 197,  185,  201, },
    391402  { 197,  185,  201, },
     403#endif
    392404};
    393405#endif
     
    411423INIT_DDC_DATA[3][NUM_DDC_DATA_CTX] =
    412424{
     425#if QC_DIM_DELTADC_UNIFY_F0132
     426  { 154 },
     427  { 154 },
     428  { 154 },
     429#else
    413430  { CNU, CNU },
    414431  { CNU, CNU },
    415432  { CNU, CNU },
     433#endif
    416434};
    417435#if H_3D_DIM_DMM
     
    423441  { CNU },
    424442};
     443#if !SEC_DMM3_RBC_F0147
    425444static const UChar
    426445INIT_DMM3_DATA[3][NUM_DMM3_DATA_CTX] =
     
    430449  { CNU },
    431450};
     451#endif
    432452#endif
    433453#if H_3D_DIM_RBC
  • branches/HTM-8.2-dev0/source/Lib/TLibCommon/TComDataCU.cpp

    r708 r712  
    120120    m_dmmWedgeTabIdx[i] = NULL;
    121121  }
     122#if !SEC_DMM3_RBC_F0147
    122123  m_dmm3IntraTabIdx = NULL;
     124#endif
    123125#endif
    124126#if H_3D_DIM_RBC
     
    271273      m_dmmWedgeTabIdx[i]    = (UInt*)xMalloc(UInt, uiNumPartition);
    272274    }
     275#if !SEC_DMM3_RBC_F0147
    273276    m_dmm3IntraTabIdx = (UInt*)xMalloc(UInt, uiNumPartition);
     277#endif
    274278#endif
    275279#if H_3D_DIM_RBC
     
    404408      if ( m_dmmWedgeTabIdx[i] ) { xFree( m_dmmWedgeTabIdx[i] ); m_dmmWedgeTabIdx[i] = NULL; }
    405409    }
     410#if !SEC_DMM3_RBC_F0147
    406411    if ( m_dmm3IntraTabIdx ) { xFree( m_dmm3IntraTabIdx ); m_dmm3IntraTabIdx = NULL; }
     412#endif
    407413#endif
    408414#if H_3D_DIM_RBC
     
    622628      memset( m_dmmWedgeTabIdx[i] + firstElement, 0,                      numElements * sizeof( *m_dmmWedgeTabIdx[i] ) );
    623629    }
     630#if !SEC_DMM3_RBC_F0147
    624631    memset( m_dmm3IntraTabIdx   + firstElement, 0,                        numElements * sizeof( *m_dmm3IntraTabIdx ) );
     632#endif
    625633#endif
    626634#if H_3D_DIM_RBC
     
    799807        m_dmmWedgeTabIdx[i] [ui] = 0;
    800808      }
     809#if !SEC_DMM3_RBC_F0147
    801810      m_dmm3IntraTabIdx [ui] = 0;
     811#endif
    802812#endif
    803813#if H_3D_DIM_SDC
     
    910920    memset( m_dmmWedgeTabIdx[i], 0, sizeof(UInt) * m_uiNumPartition );
    911921  }
     922#if !SEC_DMM3_RBC_F0147
    912923  memset( m_dmm3IntraTabIdx, 0, sizeof(UInt) * m_uiNumPartition );
     924#endif
    913925#endif
    914926#if H_3D_DIM_RBC
     
    9921004        m_dmmWedgeTabIdx[i] [ui] = pcCU->m_dmmWedgeTabIdx[i] [uiPartOffset+ui];
    9931005      }
     1006#if !SEC_DMM3_RBC_F0147
    9941007      m_dmm3IntraTabIdx [ui] = pcCU->m_dmm3IntraTabIdx[uiPartOffset+ui];
     1008#endif
    9951009#endif
    9961010#if H_3D_DIM_SDC
     
    11461160    m_dmmWedgeTabIdx[i] = pcCU->getDmmWedgeTabIdx( i ) + uiPart;
    11471161  }
     1162#if !SEC_DMM3_RBC_F0147
    11481163  m_dmm3IntraTabIdx = pcCU->getDmm3IntraTabIdx() + uiPart;
     1164#endif
    11491165#endif
    11501166#if H_3D_DIM_RBC
     
    13421358    memcpy( m_dmmWedgeTabIdx[i] + uiOffset, pcCU->getDmmWedgeTabIdx( i ), sizeof(UInt) * uiNumPartition );
    13431359  }
     1360#if !SEC_DMM3_RBC_F0147
    13441361  memcpy( m_dmm3IntraTabIdx + uiOffset, pcCU->getDmm3IntraTabIdx(), sizeof(UInt) * uiNumPartition );
     1362#endif
    13451363#endif
    13461364#if H_3D_DIM_RBC
     
    14691487    memcpy( rpcCU->getDmmWedgeTabIdx( i ) + m_uiAbsIdxInLCU, m_dmmWedgeTabIdx[i], sizeof(UInt) * m_uiNumPartition );
    14701488  }
     1489#if !SEC_DMM3_RBC_F0147
    14711490  memcpy( rpcCU->getDmm3IntraTabIdx() + m_uiAbsIdxInLCU, m_dmm3IntraTabIdx, sizeof(UInt) * m_uiNumPartition );
     1491#endif
    14721492#endif
    14731493#if H_3D_DIM_RBC
     
    15821602    memcpy( rpcCU->getDmmWedgeTabIdx( i ) + uiPartOffset, m_dmmWedgeTabIdx[i], sizeof(UInt) * uiQNumPart );
    15831603  }
     1604#if !SEC_DMM3_RBC_F0147
    15841605  memcpy( rpcCU->getDmm3IntraTabIdx() + uiPartOffset, m_dmm3IntraTabIdx, sizeof(UInt) * uiQNumPart );
     1606#endif
    15851607#endif
    15861608#if H_3D_DIM_RBC
     
    23132335{
    23142336  UInt        uiCtx = 0;
     2337
     2338#if LGE_IC_CTX_F0160
     2339  TComDataCU* pcTempCU = NULL;
     2340  UInt        uiTempPartIdx = 0;
     2341
     2342  pcTempCU = getPULeft( uiTempPartIdx, m_uiAbsIdxInLCU + uiAbsPartIdx );
     2343  uiCtx    = ( pcTempCU ) ? pcTempCU->isIC( uiTempPartIdx ) : 0;
     2344
     2345  pcTempCU = getPUAbove( uiTempPartIdx, m_uiAbsIdxInLCU + uiAbsPartIdx );
     2346  uiCtx    += ( pcTempCU ) ? pcTempCU->isIC( uiTempPartIdx ) : 0;
     2347#endif
    23152348
    23162349  return uiCtx;
     
    66476680}
    66486681
     6682#if LGE_IC_CTX_F0160
     6683Bool TComDataCU::isIC( UInt uiPartIdx )
     6684{
     6685    if ( m_pcSlice->isIntra () )
     6686    {
     6687        return false;
     6688    }
     6689    return ( ( getSkipFlag(uiPartIdx) || getPredictionMode(uiPartIdx) == MODE_INTER) && getICFlag( uiPartIdx ) && isICFlagRequired( uiPartIdx ) );
     6690}
     6691#endif
     6692
    66496693// ====================================================================================================================
    66506694// Protected member functions
     
    83048348  for( UInt ui = 0; ui < uiCurrPartNumb; ui++ ) { m_dmmWedgeTabIdx[dmmType][uiAbsPartIdx+ui] = tabIdx; }
    83058349}
     8350#if !SEC_DMM3_RBC_F0147
    83068351Void  TComDataCU::setDmm3IntraTabIdxSubParts( UInt uiTIdx, UInt uiAbsPartIdx, UInt uiDepth )
    83078352{
     
    83098354  for( UInt ui = 0; ui < uiCurrPartNumb; ui++ ) { m_dmm3IntraTabIdx[uiAbsPartIdx+ui] = uiTIdx; }
    83108355}
     8356#endif
    83118357#endif
    83128358#if H_3D_DIM_RBC
  • branches/HTM-8.2-dev0/source/Lib/TLibCommon/TComDataCU.h

    r708 r712  
    208208#if H_3D_DIM_DMM
    209209  UInt*         m_dmmWedgeTabIdx[DMM_NUM_TYPE];
     210#if !SEC_DMM3_RBC_F0147
    210211  UInt*         m_dmm3IntraTabIdx;
     212#endif
    211213#endif
    212214#if H_3D_DIM_RBC
     
    570572  Void  setDmmWedgeTabIdxSubParts     ( UInt tabIdx, UInt dmmType, UInt uiAbsPartIdx, UInt uiDepth );
    571573
     574#if !SEC_DMM3_RBC_F0147
    572575  UInt* getDmm3IntraTabIdx            ()                      { return m_dmm3IntraTabIdx;        }
    573576  UInt  getDmm3IntraTabIdx            ( UInt uiIdx )          { return m_dmm3IntraTabIdx[uiIdx]; }
    574577  Void  setDmm3IntraTabIdx            ( UInt uiIdx, UInt uh ) { m_dmm3IntraTabIdx[uiIdx] = uh;   }
    575578  Void  setDmm3IntraTabIdxSubParts    ( UInt uiTIdx, UInt uiAbsPartIdx, UInt uiDepth );
     579#endif
    576580#endif
    577581#if H_3D_DIM_RBC
     
    725729  Bool          isSkipped ( UInt uiPartIdx );                                                     ///< SKIP (no residual)
    726730  Bool          isBipredRestriction( UInt puIdx );
     731
     732#if LGE_IC_CTX_F0160
     733  Bool          isIC      ( UInt uiPartIdx );
     734#endif
    727735
    728736  // -------------------------------------------------------------------------------------------------------------------
  • branches/HTM-8.2-dev0/source/Lib/TLibCommon/TComPrediction.cpp

    r710 r712  
    425425  Bool dimDeltaDC = isDimDeltaDC( uiIntraMode );   
    426426  Bool isDmmMode  = (dimType <  DMM_NUM_TYPE);
     427#if !SEC_DMM3_RBC_F0147
    427428  Bool isRbcMode  = (dimType == RBC_IDX);
     429#endif
    428430
    429431  Bool* biSegPattern  = NULL;
     
    441443        dmmSegmentation = &(g_dmmWedgeLists[ g_aucConvertToBit[iWidth] ][ pcCU->getDmmWedgeTabIdx( dimType, uiAbsPartIdx ) ]);
    442444      } break;
     445#if !SEC_DMM3_RBC_F0147
    443446    case( DMM3_IDX ):
    444447      {
     
    452455        dmmSegmentation = &(g_dmmWedgeLists[ g_aucConvertToBit[iWidth] ][ uiTabIdx ]);
    453456      } break;
     457#endif
    454458    case( DMM4_IDX ):
    455459      {
     
    475479  assert( biSegPattern );
    476480  Int* piMask = NULL;
     481#if QC_DIM_DELTADC_UNIFY_F0132 || HHI_DIM_PREDSAMP_FIX_F0171
     482  piMask = pcCU->getPattern()->getAdiOrgBuf( iWidth, iHeight, m_piYuvExt ); // no filtering
     483#else
    477484  if( isDmmMode ) piMask = pcCU->getPattern()->getAdiOrgBuf( iWidth, iHeight, m_piYuvExt ); // no filtering for DMM
    478485  else            piMask = pcCU->getPattern()->getPredictorPtr( 0, g_aucConvertToBit[ iWidth ] + 2, m_piYuvExt );
     486#endif
    479487  assert( piMask );
    480488  Int maskStride = 2*iWidth + 1; 
     
    491499    Pel deltaDC2 = pcCU->getDimDeltaDC( dimType, 1, uiAbsPartIdx );
    492500#if H_3D_DIM_DMM
     501#if QC_DIM_DELTADC_UNIFY_F0132 && !SEC_DMM3_RBC_F0147
     502    if( isDmmMode || isRbcMode)
     503#else
    493504    if( isDmmMode )
     505#endif
    494506    {
    495507#if H_3D_DIM_DLT
     
    502514    }
    503515#endif
    504 #if H_3D_DIM_RBC
     516#if H_3D_DIM_RBC && !QC_DIM_DELTADC_UNIFY_F0132
    505517    if( isRbcMode )
    506518    {
     
    23982410
    23992411#if H_3D_DIM_DMM
     2412#if !SEC_DMM3_RBC_F0147
    24002413UInt TComPrediction::xPredWedgeFromTex( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, UInt intraTabIdx )
    24012414{
     
    24092422  return g_aauiWdgLstM3[g_aucConvertToBit[uiWidth]][uiColTexIntraDir-2].at(intraTabIdx);
    24102423}
     2424#endif
    24112425
    24122426Void TComPrediction::xPredContourFromTex( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, TComWedgelet* pcContourWedge )
  • branches/HTM-8.2-dev0/source/Lib/TLibCommon/TComRom.cpp

    r655 r712  
    604604std::vector< std::vector<TComWedgeRef>  > g_dmmWedgeRefLists;
    605605std::vector< std::vector<TComWedgeNode> > g_dmmWedgeNodeLists;
     606#if !SEC_DMM3_RBC_F0147
    606607std::vector< std::vector< std::vector<UInt> > > g_aauiWdgLstM3;
     608#endif
    607609
    608610Void initWedgeLists( Bool initNodeList )
     
    723725  }
    724726
     727#if !SEC_DMM3_RBC_F0147
    725728  UInt uiThrSz = DMM3_SIMPLIFY_TR;
    726729  std::vector< std::vector<UInt> > auiWdgListSz;
     
    739742  }
    740743  g_aauiWdgLstM3.push_back(auiWdgListSz);
     744#endif
    741745}
    742746
  • branches/HTM-8.2-dev0/source/Lib/TLibCommon/TComRom.h

    r655 r712  
    172172extern       std::vector< std::vector<TComWedgeRef> >        g_dmmWedgeRefLists;
    173173extern       std::vector< std::vector<TComWedgeNode> >       g_dmmWedgeNodeLists;
     174#if !SEC_DMM3_RBC_F0147
    174175extern       std::vector< std::vector< std::vector<UInt> > > g_aauiWdgLstM3;
     176#endif
    175177
    176178Void initWedgeLists( Bool initNodeList = false );
  • branches/HTM-8.2-dev0/source/Lib/TLibCommon/TComWedgelet.h

    r655 r712  
    5050enum DIM_IDX
    5151{
     52#if SEC_DMM3_RBC_F0147
     53  DMM1_IDX = 0,
     54  DMM4_IDX = 1,
     55#else
    5256  DMM1_IDX = 0,
    5357  DMM3_IDX = 1,
    5458  DMM4_IDX = 2,
    5559  RBC_IDX  = 3
     60#endif
    5661};
    5762
     63#if SEC_DMM3_RBC_F0147
     64#define DMM_NUM_TYPE   2
     65#define DIM_NUM_TYPE   (DMM_NUM_TYPE)
     66#else
    5867#define DMM_NUM_TYPE   3
    5968#define RBC_NUM_TYPE   1
    6069#define DIM_NUM_TYPE   (DMM_NUM_TYPE+RBC_NUM_TYPE)
     70#endif
    6171#define DIM_NO_IDX     MAX_UINT
    6272
     
    7585#define DMM_NO_WEDGEINDEX       MAX_UINT
    7686#define DMM_NUM_WEDGE_REFINES   8
     87#if !SEC_DMM3_RBC_F0147
    7788#define DMM3_SIMPLIFY_TR        1
     89#endif
    7890
    7991enum WedgeResolution
  • branches/HTM-8.2-dev0/source/Lib/TLibCommon/TypeDef.h

    r711 r712  
    6565#define H_3D          ( HEVC_EXT == 2)
    6666
     67#define LGE_BUGFIX_F0158 1 //JCT3V-F0158
    6768/////////////////////////////////////////////////////////////////////////////////////////
    6869///////////////////////////////////   MAJOR DEFINES   /////////////////////////////////// 
     
    103104                                              // MTK_CLIPPING_ALIGN_IC_E0168       // To support simplify bi-prediction PU with identical motion checking, JCT3V-E0168
    104105
     106#define LGE_IC_CTX_F0160 1 //JCT3V-F0160
     107#define SEC_ONLY_TEXTURE_IC_F0151         1
     108
    105109#if H_3D_NBDV
    106110#define H_3D_NBDV_REF                     1   // Depth oriented neighboring block disparity derivation
     
    158162                                              // LGE_SDC_REMOVE_DC_E0158 Removal of DC mode from SDC
    159163                                              // LGE_PKU_DMM3_OVERLAP_E0159_HHIFIX 1   Removal of overlap between DMM3 and DMM1
     164#define SEC_DMM3_RBC_F0147                1   // Removal of DMM3 and RBC from DMMs
    160165
    161166#define H_3D_INTER_SDC                    1   // INTER SDC, Inter simplified depth coding
     
    213218#if H_3D_DIM
    214219#define H_3D_DIM_DMM                      1   // Depth Modeling Modes
     220#if !SEC_DMM3_RBC_F0147
    215221#define H_3D_DIM_RBC                      1   // Region Boundary Chain mode
     222#endif
    216223#define H_3D_DIM_SDC                      1   // Simplified Depth Coding method
    217224#define H_3D_DIM_DLT                      1   // Depth Lookup Table
     
    219226                                              // HHI_DEPTH_INTRA_SEARCH_RAU_C0160
    220227                                              // LG_ZEROINTRADEPTHRESI_A0087
     228#define QC_DIM_DELTADC_UNIFY_F0132        1   // Unify delta DC coding in depth intra modes
     229#define HHI_DIM_PREDSAMP_FIX_F0171        1
     230#define LGE_PRED_RES_CODING_DLT_DOMAIN_F0159 1 //JCT3V-F0159
    221231#endif
    222232///// ***** VIEW SYNTHESIS PREDICTION *********
Note: See TracChangeset for help on using the changeset viewer.