Ignore:
Timestamp:
29 Aug 2013, 15:10:30 (12 years ago)
Author:
tech
Message:

Merged dev3: DEV-2.0-DEV3-KWU@589

Location:
branches/HTM-DEV-2.0-dev0/source/Lib/TLibEncoder
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-DEV-2.0-dev0/source/Lib/TLibEncoder/TEncSbac.cpp

    r598 r601  
    9595#if H_3D_DIM_DMM
    9696, m_cDmm1DataSCModel          ( 1,             1,               NUM_DMM1_DATA_CTX             , m_contextModels + m_numContextModels, m_numContextModels)
     97#if !SEC_DMM2_E0146
    9798, m_cDmm2DataSCModel          ( 1,             1,               NUM_DMM2_DATA_CTX             , m_contextModels + m_numContextModels, m_numContextModels)
     99#endif
    98100, m_cDmm3DataSCModel          ( 1,             1,               NUM_DMM3_DATA_CTX             , m_contextModels + m_numContextModels, m_numContextModels)
    99101#endif
     
    175177#if H_3D_DIM_DMM
    176178  m_cDmm1DataSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA );
     179#if !SEC_DMM2_E0146
    177180  m_cDmm2DataSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_DMM2_DATA );
     181#endif
    178182  m_cDmm3DataSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_DMM3_DATA );
    179183#endif
     
    264268#if H_3D_DIM_DMM
    265269      curCost += m_cDmm1DataSCModel.calcCost          ( curSliceType, qp, (UChar*)INIT_DMM1_DATA );
     270#if !SEC_DMM2_E0146
    266271      curCost += m_cDmm2DataSCModel.calcCost          ( curSliceType, qp, (UChar*)INIT_DMM2_DATA );
     272#endif
    267273      curCost += m_cDmm3DataSCModel.calcCost          ( curSliceType, qp, (UChar*)INIT_DMM3_DATA );
    268274#endif
     
    334340#if H_3D_DIM_DMM
    335341  m_cDmm1DataSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA );
     342#if !SEC_DMM2_E0146
    336343  m_cDmm2DataSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_DMM2_DATA );
     344#endif
    337345  m_cDmm3DataSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_DMM3_DATA );
    338346#endif
     
    541549}
    542550
     551#if !SEC_DMM2_E0146
    543552Void TEncSbac::xCodeDmm2Offset( Int iOffset )
    544553{
     
    557566  }
    558567}
     568#endif
    559569
    560570Void TEncSbac::xCodeDmm3WedgeIdx( UInt uiIntraIdx, Int iNumBit )
     
    12161226      xCodeDmm1WedgeIdx( pcCU->getDmmWedgeTabIdx( dimType, absPartIdx ), g_dmm1TabIdxBits[pcCU->getIntraSizeIdx(absPartIdx)] );
    12171227    } break;
     1228#if !SEC_DMM2_E0146
    12181229  case( DMM2_IDX ):
    12191230    {
    12201231      xCodeDmm2Offset( pcCU->getDmm2DeltaEnd( absPartIdx ) );
    12211232    } break;
     1233#endif
    12221234  case( DMM3_IDX ):
    12231235    {
     
    12681280Void TEncSbac::codeIntraDepthMode( TComDataCU* pcCU, UInt absPartIdx )
    12691281{
     1282#if ZJU_DEPTH_INTRA_MODE_E0204
     1283    UInt codeWordTable[3][7] =    {{0, 0, 0, 2, 0,6, 7},{0, 0, 2, 7, 3, 6, 2},{0, 1, 0, 0, 0, 0, 0}};
     1284    UInt codeWordLenTable[3][7] = {{0, 1, 0, 2, 0,3, 3},{1, 1, 2, 3, 2, 3, 2},{1, 1, 0, 0, 0, 0, 0}};
     1285#else
     1286#if LGE_SDC_REMOVE_DC_E0158
     1287#if SEC_DMM2_E0146
     1288  UInt codeWordTable[3][7] =    {{0, 0, 0, 2, 0,6, 7},{0, 2, 3, 4, 5, 6, 7},{0, 1, 0, 0, 0, 0, 0}};
     1289  UInt codeWordLenTable[3][7] = {{0, 1, 0, 2, 0,3, 3},{2, 3, 3, 3, 3, 3, 3},{1, 1, 0, 0, 0, 0, 0}};
     1290#else
     1291  UInt codeWordTable[3][8] =    { { 0, 0, 0, 2, 0, 6, 0, 7 }, { 0, 2, 3, 4, 5, 6, 15, 14 }, { 0, 1, 0, 0, 0, 0, 0, 0 } };
     1292  UInt codeWordLenTable[3][8] = { { 0, 1, 0, 2, 0, 3, 0, 3 }, { 2, 3, 3, 3, 3, 3,  4,  4 }, { 1, 1, 0, 0, 0, 0, 0, 0 } };
     1293#endif
     1294#else
     1295#if SEC_DMM2_E0146
     1296  UInt codeWordTable[3][8] =    {{0, 0, 0, 2, 0,6, 0, 7},{0, 2, 3, 4, 5, 6, 14, 15},{0, 2, 0, 0, 0, 0, 3, 0}};
     1297  UInt codeWordLenTable[3][8] = {{0, 1, 0, 2, 0,3, 0, 3},{2, 3, 3, 3, 3, 3,  4,  4},{1, 2, 0, 0, 0, 0, 2, 0}};
     1298#else
    12701299  UInt codeWordTable[3][9] =    {{0, 0, 0, 2, 0,6, 0, 0, 7},{0, 2, 3, 4, 5, 6, 14, 31, 30},{0, 2, 0, 0, 0, 0, 3, 0, 0}};
    12711300  UInt codeWordLenTable[3][9] = {{0, 1, 0, 2, 0,3, 0, 0, 3},{2, 3, 3, 3, 3, 3,  4,  5,  5},{1, 2, 0, 0, 0, 0, 2, 0, 0}};
     1301#endif
     1302#endif
     1303#endif
    12721304  UInt dir = pcCU->getLumaIntraDir( absPartIdx );
    12731305  UInt puIdx = (pcCU->getWidth(absPartIdx) == 64) ? 2 : ( (pcCU->getPartitionSize(absPartIdx) == SIZE_NxN && pcCU->getWidth(absPartIdx) == 8) ? 0 : 1 );
     
    12851317    case DMM4_IDX: codeIdx = 4; break;
    12861318    case DMM3_IDX: codeIdx = 5; break;
     1319#if LGE_SDC_REMOVE_DC_E0158
     1320#if SEC_DMM2_E0146
     1321    case  RBC_IDX: codeIdx = 6; break;
     1322#else
     1323    case DMM2_IDX: codeIdx = 6; break;
     1324    case  RBC_IDX: codeIdx = 7; break;
     1325#endif
     1326#else
     1327#if SEC_DMM2_E0146
     1328    case  RBC_IDX: codeIdx = 7; break;
     1329#else
    12871330    case DMM2_IDX: codeIdx = 7; break;
    12881331    case  RBC_IDX: codeIdx = 8; break;
     1332#endif
     1333#endif
    12891334    default:                    break;
    12901335    }
     
    12971342    {
    12981343      case PLANAR_IDX:  codeIdx = 0; break;
     1344#if !LGE_SDC_REMOVE_DC_E0158
    12991345      case DC_IDX:      codeIdx = 6; break;
     1346#endif
    13001347      default:          codeIdx = 2; break;
    13011348    }
     1349  }
     1350#endif
     1351#if ZJU_DEPTH_INTRA_MODE_E0204
     1352  if( puIdx==1 )
     1353  {
     1354      if( codeIdx==1 || codeIdx==2 || codeIdx==4 )
     1355      {
     1356          m_pcBinIf->encodeBinEP( 0 );
     1357      }
     1358      else
     1359      {
     1360          m_pcBinIf->encodeBinEP( 1 );
     1361      }
    13021362  }
    13031363#endif
  • branches/HTM-DEV-2.0-dev0/source/Lib/TLibEncoder/TEncSbac.h

    r598 r601  
    121121#if H_3D_DIM_DMM
    122122  Void  xCodeDmm1WedgeIdx    ( UInt uiTabIdx, Int iNumBit );
     123#if !SEC_DMM2_E0146
    123124  Void  xCodeDmm2Offset      ( Int iOffset );
     125#endif
    124126  Void  xCodeDmm3WedgeIdx    ( UInt uiIntraIdx, Int iNumBit );
    125127#endif
     
    254256#if H_3D_DIM_DMM
    255257  ContextModel3DBuffer m_cDmm1DataSCModel;
     258#if !SEC_DMM2_E0146
    256259  ContextModel3DBuffer m_cDmm2DataSCModel;
     260#endif
    257261  ContextModel3DBuffer m_cDmm3DataSCModel;
    258262#endif
  • branches/HTM-DEV-2.0-dev0/source/Lib/TLibEncoder/TEncSearch.cpp

    r598 r601  
    19001900  // get DC prediction for each segment
    19011901  Pel apDCPredValues[2];
     1902#if KWU_SDC_SIMPLE_DC_E0117
     1903  analyzeSegmentsSDC(piPred, uiStride, uiWidth, apDCPredValues, uiNumSegments, pbMask, uiMaskStride, uiLumaPredMode );
     1904#else
    19021905  analyzeSegmentsSDC(piPred, uiStride, uiWidth, apDCPredValues, uiNumSegments, pbMask, uiMaskStride );
     1906#endif
    19031907 
    19041908  // get original DC for each segment
    19051909  Pel apDCOrigValues[2];
     1910#if KWU_SDC_SIMPLE_DC_E0117
     1911  analyzeSegmentsSDC(piOrg, uiStride, uiWidth, apDCOrigValues, uiNumSegments, pbMask, uiMaskStride, uiLumaPredMode, true );
     1912#else
    19061913  analyzeSegmentsSDC(piOrg, uiStride, uiWidth, apDCOrigValues, uiNumSegments, pbMask, uiMaskStride );
     1914#endif
    19071915 
    19081916  for( UInt uiSegment = 0; uiSegment < uiNumSegments; uiSegment++ )
     
    28422850    if( m_pcEncCfg->getIsDepth() && uiWidth >= DIM_MIN_SIZE && uiWidth <= DIM_MAX_SIZE && uiWidth == uiHeight )
    28432851    {
     2852
     2853#if SCU_HS_FAST_DEPTH_INTRA_E0238
     2854      Int  threshold    = max(((pcCU->getQP(0))>>3)-1,3);
     2855      Int  varThreshold = (Int)( threshold * threshold - 8 );
     2856      UInt varCU      = m_pcRdCost->calcVAR(piOrg, uiStride, uiWidth,uiHeight,pcCU->getDepth(0));
     2857#endif
     2858
     2859
    28442860#if H_3D_DIM_DMM
    2845       if( m_pcEncCfg->getUseDMM() )
     2861      if( m_pcEncCfg->getUseDMM()
     2862#if SCU_HS_FAST_DEPTH_INTRA_E0238
     2863         && (uiRdModeList[0] != 0 || varCU >= varThreshold)
     2864#endif
     2865        )
    28462866      {
    28472867        for( UInt dmmType = 0; dmmType < DMM_NUM_TYPE; dmmType++ )
     
    28582878              biSegmentation = &(g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])][uiTabIdx]);
    28592879            } break;
     2880#if !SEC_DMM2_E0146
    28602881          case( DMM2_IDX ):
    28612882            {
     
    28692890              }
    28702891            } break;
     2892#endif
    28712893          case( DMM3_IDX ):
    28722894            {
     2895#if LGE_PKU_DMM3_OVERLAP_E0159
     2896              TComPic*      pcPicTex = pcCU->getSlice()->getTexturePic();
     2897              TComDataCU* pcColTexCU = pcPicTex->getCU( pcCU->getAddr() );
     2898              UInt      uiTexPartIdx = pcCU->getZorderIdxInCU() + uiPartOffset;
     2899              Int   uiColTexIntraDir = pcColTexCU->isIntra( uiTexPartIdx ) ? pcColTexCU->getLumaIntraDir( uiTexPartIdx ) : 255;
     2900
     2901              if( uiColTexIntraDir > DC_IDX && uiColTexIntraDir < 35 )
     2902              {
     2903#endif
    28732904              UInt uiIntraTabIdx = 0;
    28742905              xSearchDmm3Wedge( pcCU, uiPartOffset, piOrg, uiStride, uiWidth, uiHeight, uiTabIdx, uiIntraTabIdx );
     
    28762907              pcCU->setDmm3IntraTabIdxSubParts( uiIntraTabIdx, uiPartOffset, uiDepth + uiInitTrDepth );
    28772908              biSegmentation = &(g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])][uiTabIdx]);
     2909#if LGE_PKU_DMM3_OVERLAP_E0159
     2910              }
     2911#endif
    28782912            } break;
    28792913          case( DMM4_IDX ):
     
    29032937#endif
    29042938#if H_3D_DIM_RBC
    2905       if( m_pcEncCfg->getUseRBC() )
     2939      if( m_pcEncCfg->getUseRBC()
     2940#if SCU_HS_FAST_DEPTH_INTRA_E0238
     2941          && (uiRdModeList[0] != 0 || varCU >= varThreshold)
     2942#endif
     2943        )
    29062944      {
    29072945        if( xSearchRbcEdge( pcCU, uiPartOffset, piOrg, uiStride, uiWidth, uiHeight ) )
     
    73237361}
    73247362
     7363#if !SEC_DMM2_E0146
    73257364Void TEncSearch::xSearchDmm2Wedge( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piRef, UInt uiRefStride, UInt uiWidth, UInt uiHeight, UInt& ruiTabIdx, Int& riWedgeDeltaEnd )
    73267365{
     
    73887427  return;
    73897428}
     7429#endif
    73907430
    73917431Void TEncSearch::xSearchDmm3Wedge( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piRef, UInt uiRefStride, UInt uiWidth, UInt uiHeight, UInt& ruiTabIdx, UInt& ruiIntraTabIdx )
  • branches/HTM-DEV-2.0-dev0/source/Lib/TLibEncoder/TEncSearch.h

    r598 r601  
    352352  Void xSearchDmmDeltaDCs         ( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piOrig, Pel* piPredic, UInt uiStride, Bool* biSegPattern, Int patternStride, UInt uiWidth, UInt uiHeight, Pel& rDeltaDC1, Pel& rDeltaDC2 );
    353353  Void xSearchDmm1Wedge           ( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piRef, UInt uiRefStride, UInt uiWidth, UInt uiHeight, UInt& ruiTabIdx );
     354#if !SEC_DMM2_E0146
    354355  Void xSearchDmm2Wedge           ( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piRef, UInt uiRefStride, UInt uiWidth, UInt uiHeight, UInt& ruiTabIdx, Int& riWedgeDeltaEnd );
     356#endif
    355357  Void xSearchDmm3Wedge           ( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piRef, UInt uiRefStride, UInt uiWidth, UInt uiHeight, UInt& ruiTabIdx, UInt& ruiIntraTabIdx );
    356358#endif
Note: See TracChangeset for help on using the changeset viewer.