Ignore:
Timestamp:
8 Feb 2014, 15:29:19 (11 years ago)
Author:
tech
Message:

Further fixes.

Location:
branches/HTM-10.0rc1-dev0/source/Lib/TLibEncoder
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-10.0rc1-dev0/source/Lib/TLibEncoder/TEncCu.cpp

    r839 r840  
    18051805    memset( mergeCandBuffer, 0, MRG_MAX_NUM_CANDS_MEM*sizeof(Int) );
    18061806    rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to LCU level
     1807#if !UPDATE_HM13
    18071808    rpcTempCU->setCUTransquantBypassSubParts( m_pcEncCfg->getCUTransquantBypassFlagValue(), 0, uhDepth );
     1809#endif
    18081810    rpcTempCU->setARPWSubParts( (UChar)nARPW , 0 , uhDepth );
    18091811#if H_3D_IC
     
    19921994              if( rpcTempCU != rpcTempCUPre )
    19931995              {
    1994                 rpcTempCU->initEstData( uhDepth, orgQP );
     1996                rpcTempCU->initEstData( uhDepth, orgQP, bTransquantBypassFlag );
    19951997                rpcTempCU->copyPartFrom( rpcBestCU, 0, uhDepth );
    19961998              }
     
    20222024            if( rpcTempCU != rpcTempCUPre )
    20232025            {
    2024               rpcTempCU->initEstData( uhDepth, orgQP );
     2026              rpcTempCU->initEstData( uhDepth, orgQP, bTransquantBypassFlag );
    20252027              rpcTempCU->copyPartFrom( rpcBestCU, 0, uhDepth );
    20262028            }
     
    21212123#endif
    21222124{
     2125
     2126#if UPDATE_HM13
     2127#if H_3D
     2128  const Bool bTransquantBypassFlag = rpcTempCU->getCUTransquantBypass(0);
     2129#endif
     2130#endif
    21232131#if  H_3D_FAST_TEXTURE_ENCODING
    21242132  if(!(bFMD && (ePartSize == SIZE_2Nx2N)))  //have  motion estimation or merge check
     
    21442152    if( bFirstTime == false && rpcTempCU->getSlice()->getVPS()->getUseAdvRP( iLayerId ) )
    21452153    {
     2154#if UPDATE_HM13
     2155      rpcTempCU->initEstData( rpcTempCU->getDepth(0), rpcTempCU->getQP(0),bTransquantBypassFlag );     
     2156#else
    21462157      rpcTempCU->initEstData( rpcTempCU->getDepth(0), rpcTempCU->getQP(0) );
     2158#endif
    21472159    }
    21482160#endif
     
    22582270      {
    22592271        Int orgQP = rpcBestCU->getQP( 0 );
     2272#if UPDATE_HM13
     2273        rpcTempCU->initEstData( uhDepth, orgQP ,bTransquantBypassFlag );     
     2274#else
    22602275        rpcTempCU->initEstData( uhDepth, orgQP );
     2276#endif
    22612277        rpcTempCU->copyPartFrom( rpcBestCU, 0, uhDepth );
    22622278      }
  • branches/HTM-10.0rc1-dev0/source/Lib/TLibEncoder/TEncEntropy.cpp

    r837 r840  
    798798}
    799799
     800#if H_3D_INTER_SDC
     801#if QC_SDC_UNIFY_G0130
     802Void TEncEntropy::encodeDeltaDC  ( TComDataCU* pcCU, UInt absPartIdx )
     803{
     804  m_pcEntropyCoderIf->codeDeltaDC( pcCU, absPartIdx );
     805}
     806
     807Void TEncEntropy::encodeSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD )
     808{
     809  if( ( !pcCU->isIntra( uiAbsPartIdx ) && !pcCU->getSlice()->getVPS()->getInterSDCFlag( pcCU->getSlice()->getLayerIdInVps() ) ) ||
     810    ( pcCU->isIntra( uiAbsPartIdx ) && !pcCU->getSlice()->getVPS()->getVpsDepthModesFlag( pcCU->getSlice()->getLayerIdInVps() ) ) )
     811  {
     812    return;
     813  }
     814
     815#if SEC_INTER_SDC_G0101
     816  if( !pcCU->getSlice()->getIsDepth() || pcCU->getPartitionSize( uiAbsPartIdx ) != SIZE_2Nx2N || pcCU->isSkipped( uiAbsPartIdx ) )
     817#else
     818  if( !pcCU->getSlice()->getIsDepth() || ( pcCU->isIntra( uiAbsPartIdx ) && pcCU->getPartitionSize( uiAbsPartIdx ) != SIZE_2Nx2N ) || pcCU->isSkipped( uiAbsPartIdx ) )
     819#endif
     820  {
     821    return;
     822  }
     823
     824#if SEC_INTER_SDC_G0101
     825  assert( pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_2Nx2N || ( !pcCU->isIntra( uiAbsPartIdx ) && !pcCU->isSkipped( uiAbsPartIdx ) ) );
     826#else
     827  assert( ( pcCU->isIntra( uiAbsPartIdx ) && pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_2Nx2N ) || ( !pcCU->isIntra( uiAbsPartIdx ) && !pcCU->isSkipped( uiAbsPartIdx ) ) );
     828#endif
     829
     830  if( bRD )
     831  {
     832    uiAbsPartIdx = 0;
     833  }
     834
     835  m_pcEntropyCoderIf->codeSDCFlag( pcCU, uiAbsPartIdx );
     836}
     837#else
     838Void TEncEntropy::encodeInterSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD )
     839{
     840  if( !pcCU->getSlice()->getVPS()->getInterSDCFlag( pcCU->getSlice()->getLayerIdInVps() ) )
     841  {
     842    return;
     843  }
     844
     845  if( !pcCU->getSlice()->getIsDepth() || pcCU->isIntra( uiAbsPartIdx ) || pcCU->isSkipped( uiAbsPartIdx ) )
     846  {
     847    return;
     848  }
     849
     850  if( bRD )
     851  {
     852    uiAbsPartIdx = 0;
     853  }
     854
     855  m_pcEntropyCoderIf->codeInterSDCFlag( pcCU, uiAbsPartIdx );
     856}
     857
     858Void TEncEntropy::encodeInterSDCResidualData( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD )
     859{
     860  if( !pcCU->getSlice()->getVPS()->getInterSDCFlag( pcCU->getSlice()->getLayerIdInVps() ) )
     861  {
     862    return;
     863  }
     864
     865  if( !pcCU->getSlice()->getIsDepth() || pcCU->isIntra( uiAbsPartIdx ) || !pcCU->getInterSDCFlag( uiAbsPartIdx ) )
     866  {
     867    return;
     868  }
     869
     870  if( bRD )
     871  {
     872    uiAbsPartIdx = 0;
     873  }
     874
     875  // number of segments depends on prediction mode for INTRA
     876  UInt uiNumSegments = ( pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_2Nx2N ) ? 1 : ( pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_NxN ? 4 : 2 );
     877
     878  // encode residual data for each segment
     879  for( UInt uiSeg = 0; uiSeg < uiNumSegments; uiSeg++ )
     880  {
     881    m_pcEntropyCoderIf->codeInterSDCResidualData( pcCU, uiAbsPartIdx, uiSeg );
     882  }
     883}
     884#endif
     885#endif
     886#if H_3D_DBBP
     887Void TEncEntropy::encodeDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD )
     888{
     889  if( bRD )
     890  {
     891    uiAbsPartIdx = 0;
     892  }
     893  m_pcEntropyCoderIf->codeDBBPFlag( pcCU, uiAbsPartIdx );
     894}
     895#endif
    800896//! \}
  • branches/HTM-10.0rc1-dev0/source/Lib/TLibEncoder/TEncSbac.h

    r837 r840  
    257257  ContextModel3DBuffer m_cTransformSkipSCModel;
    258258  ContextModel3DBuffer m_CUTransquantBypassFlagSCModel;
     259
     260#if H_3D_DIM
     261  ContextModel3DBuffer m_cDepthIntraModeSCModel;
     262  ContextModel3DBuffer m_cDdcFlagSCModel;
     263  ContextModel3DBuffer m_cDdcDataSCModel;
     264#if QC_GENERIC_SDC_G0122
     265  ContextModel3DBuffer m_cAngleFlagSCModel;
     266#if !QC_SDC_UNIFY_G0130
     267  ContextModel3DBuffer m_cIntraSdcFlagSCModel;
     268#endif
     269#endif
     270#if H_3D_DIM_DMM
     271  ContextModel3DBuffer m_cDmm1DataSCModel;
     272#endif
     273#if H_3D_DIM_SDC 
     274  ContextModel3DBuffer m_cSDCResidualFlagSCModel;
     275  ContextModel3DBuffer m_cSDCResidualSCModel;
     276#endif
     277#endif
     278#if H_3D_INTER_SDC && !QC_SDC_UNIFY_G0130
     279  ContextModel3DBuffer m_cInterSDCFlagSCModel;
     280  ContextModel3DBuffer m_cInterSDCResidualSCModel;
     281  ContextModel3DBuffer m_cInterSDCResidualSignFlagSCModel;
     282#endif
     283#if QC_SDC_UNIFY_G0130
     284  ContextModel3DBuffer m_cSDCFlagSCModel;
     285#endif
     286#if H_3D_DBBP
     287  ContextModel3DBuffer m_cDBBPFlagSCModel;
     288#endif
    259289};
    260290
  • branches/HTM-10.0rc1-dev0/source/Lib/TLibEncoder/TEncSearch.cpp

    r839 r840  
    60446044    UInt uiBits = 0;
    60456045    TComYuv *pDummy = NULL;
    6046     if( m_bUseSBACRD )
    6047     {
    6048       m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[pcCU->getDepth(0)][CI_CURR_BEST] );
    6049     }
     6046    m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[pcCU->getDepth(0)][CI_CURR_BEST] );
    60506047
    60516048    xAddSymbolBitsInter( pcCU, 0, 0, uiBits, pDummy, NULL, pDummy );
     
    60666063    pcCU->getTotalCost()       = rdCost;
    60676064
    6068     if( m_bUseSBACRD )
    6069     {
    6070       m_pcRDGoOnSbacCoder->store( m_pppcRDSbacCoder[ pcCU->getDepth( 0 ) ][ CI_TEMP_BEST ] );
    6071     }
     6065    m_pcRDGoOnSbacCoder->store( m_pppcRDSbacCoder[ pcCU->getDepth( 0 ) ][ CI_TEMP_BEST ] );
    60726066  }
    60736067
Note: See TracChangeset for help on using the changeset viewer.