Changeset 994 in 3DVCSoftware


Ignore:
Timestamp:
15 Jul 2014, 15:44:07 (10 years ago)
Author:
hisilicon-htm
Message:

Integration of JCT3V-I0120 Remove "depth_dc_flag" signalling in DMM cases

Location:
branches/HTM-11.2-dev3-HiSilicon
Files:
3 added
7 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-11.2-dev3-HiSilicon/source/Lib/TLibCommon/TComDataCU.cpp

    r983 r994  
    26772677  }
    26782678
     2679#if HS_DMM_SIGNALLING_I0120
     2680  if( isDimMode( getLumaIntraDir( uiAbsPartIdx ) ) )
     2681#else
    26792682  if( isDimMode( getLumaIntraDir( uiAbsPartIdx ) ) && !isDimDeltaDC( getLumaIntraDir( uiAbsPartIdx ) ) )
     2683#endif
    26802684  {
    26812685    return true;
     
    26902694  // check prediction mode
    26912695  UInt uiLumaPredMode = getLumaIntraDir( uiAbsPartIdx ); 
     2696#if HS_DMM_SIGNALLING_I0120
     2697  if( uiLumaPredMode == PLANAR_IDX || ( getDimType( uiLumaPredMode ) == DMM1_IDX  ) )
     2698#else
    26922699  if( uiLumaPredMode == PLANAR_IDX || ( getDimType( uiLumaPredMode ) == DMM1_IDX && !isDimDeltaDC( uiLumaPredMode ) ) )
     2700#endif
    26932701    return true;
    26942702 
  • branches/HTM-11.2-dev3-HiSilicon/source/Lib/TLibCommon/TComPrediction.cpp

    r976 r994  
    423423
    424424  UInt dimType    = getDimType  ( uiIntraMode );
    425   Bool dimDeltaDC = isDimDeltaDC( uiIntraMode );   
     425#if !HS_DMM_SIGNALLING_I0120
     426  Bool dimDeltaDC = isDimDeltaDC( uiIntraMode );
     427#endif
    426428  Bool isDmmMode  = (dimType <  DMM_NUM_TYPE);
    427429
     
    474476  Pel segDC1 = 0;
    475477  Pel segDC2 = 0;
     478#if HS_DMM_SIGNALLING_I0120
     479  if( !pcCU->getSDCFlag( uiAbsPartIdx ) )
     480#else
    476481  if( dimDeltaDC )
     482#endif
    477483  {
    478484    Pel deltaDC1 = pcCU->getDimDeltaDC( dimType, 0, uiAbsPartIdx );
  • branches/HTM-11.2-dev3-HiSilicon/source/Lib/TLibCommon/TComWedgelet.h

    r773 r994  
    5858#define DIM_NO_IDX     MAX_UINT
    5959
     60#if HS_DMM_SIGNALLING_I0120
     61__inline UInt getDimType  ( Int intraMode )
     62{
     63    Int dimType = intraMode-DIM_OFFSET;
     64    return (dimType >= 0 && dimType < DIM_NUM_TYPE) ? (UInt)dimType : DIM_NO_IDX;
     65}
     66#else
    6067__inline UInt getDimType  ( Int intraMode ) { Int dimType = (intraMode-DIM_OFFSET)/2; return (dimType >= 0 && dimType < DIM_NUM_TYPE) ? (UInt)dimType : DIM_NO_IDX; }
     68#endif
    6169__inline Bool isDimMode   ( Int intraMode ) { return (getDimType( intraMode ) < DIM_NUM_TYPE); }
     70#if !HS_DMM_SIGNALLING_I0120
    6271__inline Bool isDimDeltaDC( Int intraMode ) { return (isDimMode( intraMode ) && ((intraMode-DIM_OFFSET)%2) == 1); }
     72#endif
    6373#endif
    6474
  • branches/HTM-11.2-dev3-HiSilicon/source/Lib/TLibCommon/TypeDef.h

    r993 r994  
    294294#define H_3D_DIM_SDC                      1   // Simplified Depth Coding method
    295295#define H_3D_DIM_DLT                      1   // Depth Lookup Table
     296#define HS_DMM_SIGNALLING_I0120  1   
    296297
    297298#if H_3D_DIM_DLT
  • branches/HTM-11.2-dev3-HiSilicon/source/Lib/TLibDecoder/TDecSbac.cpp

    r983 r994  
    11941194    if( !uiSymbol )
    11951195    {
     1196#if HS_DMM_SIGNALLING_I0120
     1197      pcCU->setLumaIntraDirSubParts( DIM_OFFSET, absPartIdx, depth );
     1198#else
    11961199      pcCU->setLumaIntraDirSubParts( ( 2 * DMM1_IDX + DIM_OFFSET ), absPartIdx, depth );
     1200#endif
    11971201    }
    11981202    else
    11991203    {
     1204#if HS_DMM_SIGNALLING_I0120
     1205      pcCU->setLumaIntraDirSubParts( ( 1+ DIM_OFFSET ), absPartIdx, depth );
     1206#else
    12001207      pcCU->setLumaIntraDirSubParts( ( 2 * DMM4_IDX + DIM_OFFSET ), absPartIdx, depth );
     1208#endif
    12011209    }
    12021210  }
     
    21122120  }
    21132121
     2122#if HS_DMM_SIGNALLING_I0120
     2123  UInt symbol = 1;
     2124  UInt uiNumSegments = isDimMode( pcCU->getLumaIntraDir( absPartIdx ) ) ? 2 : 1;
     2125#else
    21142126  UInt symbol = 0;
    21152127  UInt uiNumSegments = 0;
    2116 
     2128#endif
     2129
     2130#if HS_DMM_SIGNALLING_I0120
     2131  if( pcCU->isIntra( absPartIdx ) && pcCU->getSDCFlag( absPartIdx ))
     2132  {
     2133#else
    21172134  if( pcCU->isIntra( absPartIdx ) )
    21182135  {
    21192136    UInt dir     = pcCU->getLumaIntraDir( absPartIdx );
    21202137    uiNumSegments = isDimMode( dir ) ? 2 : 1;
     2138#endif
    21212139    m_pcTDecBinIf->decodeBin( symbol, m_cDdcFlagSCModel.get( 0, 0, 0 ) );
     2140#if !HS_DMM_SIGNALLING_I0120
    21222141    if( pcCU->getSDCFlag( absPartIdx ) )
    21232142    {
     2143#endif
    21242144      assert( pcCU->getPartitionSize( absPartIdx ) == SIZE_2Nx2N );
    21252145      pcCU->setTrIdxSubParts( 0, absPartIdx, depth );
    21262146      pcCU->setCbfSubParts( 1, 1, 1, absPartIdx, depth );
    21272147    }
     2148#if !HS_DMM_SIGNALLING_I0120
    21282149    else
    21292150    {
     
    21362157    symbol = 1;
    21372158  }
     2159#endif
    21382160
    21392161
  • branches/HTM-11.2-dev3-HiSilicon/source/Lib/TLibEncoder/TEncSbac.cpp

    r983 r994  
    23242324  }
    23252325
     2326#if HS_DMM_SIGNALLING_I0120
     2327  UInt uiNumSegments = isDimMode( pcCU->getLumaIntraDir( absPartIdx ) ) ? 2 : 1;
     2328  UInt dimDeltaDC = 1;
     2329#else
    23262330  UInt uiNumSegments = 0;
    23272331  UInt dimDeltaDC = 0;
    2328 
     2332#endif
     2333
     2334#if HS_DMM_SIGNALLING_I0120
     2335  if( pcCU->isIntra( absPartIdx ) && pcCU->getSDCFlag( absPartIdx ))
     2336  {
     2337#else
    23292338  if( pcCU->isIntra( absPartIdx ) )
    23302339  {
     
    23342343    if( pcCU->getSDCFlag( absPartIdx ) )
    23352344    {
     2345#endif
    23362346      if( uiNumSegments == 1 )
    23372347      {
     
    23422352        dimDeltaDC = ( pcCU->getSDCSegmentDCOffset( 0, absPartIdx ) || pcCU->getSDCSegmentDCOffset( 1, absPartIdx ) ) ? 1 : 0;
    23432353      }
     2354#if !HS_DMM_SIGNALLING_I0120
    23442355    }
    23452356    else
     
    23472358      dimDeltaDC = isDimDeltaDC( dir );
    23482359    }
     2360#endif
    23492361    m_pcBinIf->encodeBin( dimDeltaDC, m_cDdcFlagSCModel.get( 0, 0, 0 ) );
    23502362  }
     2363#if !HS_DMM_SIGNALLING_I0120
    23512364  else //all-zero inter SDC is not allowed
    23522365  {
     
    23542367    dimDeltaDC = 1;
    23552368  }
     2369#endif
    23562370
    23572371  if( dimDeltaDC )
  • branches/HTM-11.2-dev3-HiSilicon/source/Lib/TLibEncoder/TEncSearch.cpp

    r993 r994  
    31573157            pcCU->setDimDeltaDC( dmmType, 1, uiPartOffset, deltaDC2 );
    31583158
     3159#if HS_DMM_SIGNALLING_I0120
     3160            uiRdModeList[ numModesForFullRD++ ] = (dmmType  +DIM_OFFSET);
     3161#else
    31593162            uiRdModeList[ numModesForFullRD++ ] = (2*dmmType  +DIM_OFFSET);
    31603163            uiRdModeList[ numModesForFullRD++ ] = (2*dmmType+1+DIM_OFFSET);
     3164#endif
    31613165
    31623166            if( DMM4_IDX == dmmType ) { biSegmentation->destroy(); delete biSegmentation; }
     
    32133217      if (uiMode < numModesForFullRD)
    32143218      {   
    3215            uiOrgMode = uiRdModeList[uiMode];
     3219         uiOrgMode = uiRdModeList[uiMode];
    32163220      }
    32173221      else
     
    32263230           {
    32273231              if (uiOrgMode != uiBestPUModeConv && uiOrgMode != uiSecondBestPUModeConv && uiOrgMode != uiThirdBestPUModeConv
    3228                  && uiOrgMode > 1 && uiOrgMode < NUM_INTRA_MODE && varCU < 4)
     3232                  && uiOrgMode > 1 && uiOrgMode < NUM_INTRA_MODE && varCU < 4)
    32293233              continue;
    32303234           }
Note: See TracChangeset for help on using the changeset viewer.