Ignore:
Timestamp:
3 Aug 2015, 03:23:44 (9 years ago)
Author:
chen
Message:

The reactivation of fast texture encoding with the MACRO "NH_3D_FAST_TEXTURE_ENCODING".

by Yi-Wen Chen (yiwen.chen@…)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-14.1-update-dev1/source/Lib/TLibEncoder/TEncCu.cpp

    r1305 r1307  
    517517
    518518  const Bool bBoundary = !( uiRPelX < sps.getPicWidthInLumaSamples() && uiBPelY < sps.getPicHeightInLumaSamples() );
    519 
    520   if ( !bBoundary )
    521   {
    522 #if  H_3D_FAST_TEXTURE_ENCODING
     519#if  NH_3D_FAST_TEXTURE_ENCODING
    523520    Bool bIVFMerge = false;
    524521    Int  iIVFMaxD = 0;
    525522    Bool bFMD = false;
    526 #endif
     523    Bool bSubBranch = true;
     524#endif
     525  if ( !bBoundary )
     526  {
    527527    for (Int iQP=iMinQP; iQP<=iMaxQP; iQP++)
    528528    {
     
    650650        }
    651651      }
    652 #if  H_3D_FAST_TEXTURE_ENCODING
     652#if  NH_3D_FAST_TEXTURE_ENCODING
    653653      if(rpcTempCU->getSlice()->getViewIndex() && !rpcTempCU->getSlice()->getIsDepth() && rpcTempCU->getSlice()->getDefaultRefViewIdxAvailableFlag() )
    654654      {
     
    674674            rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth);
    675675#endif
    676 #if  H_3D_FAST_TEXTURE_ENCODING
    677           xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N, bFMD );  rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode  );//by Competition for inter_2Nx2N
     676#if  NH_3D_FAST_TEXTURE_ENCODING
     677          xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N DEBUG_STRING_PASS_INTO(sDebug), bFMD );  rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode  );//by Competition for inter_2Nx2N
    678678#else
    679679          xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N DEBUG_STRING_PASS_INTO(sDebug) );
     
    689689#endif
    690690        xCheckRDCostMerge2Nx2N( rpcBestCU, rpcTempCU DEBUG_STRING_PASS_INTO(sDebug), &earlyDetectionSkipMode );//by Merge for inter_2Nx2N
    691 #if  H_3D_FAST_TEXTURE_ENCODING
     691#if  NH_3D_FAST_TEXTURE_ENCODING
    692692          bFMD = bIVFMerge && rpcBestCU->isSkipped(0);
    693693#endif
     
    704704            rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth);
    705705#endif
    706 #if  H_3D_FAST_TEXTURE_ENCODING
    707             xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N, bFMD );  rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );
     706#if  NH_3D_FAST_TEXTURE_ENCODING
     707            xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2Nx2N DEBUG_STRING_PASS_INTO(sDebug), bFMD );  rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );
    708708#else
    709709
     
    794794)
    795795            {
    796 #if  H_3D_FAST_TEXTURE_ENCODING
    797                 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_NxN, bFMD  );
     796#if  NH_3D_FAST_TEXTURE_ENCODING
     797              xCheckRDCostInter( rpcBestCU, rpcTempCU DEBUG_STRING_PASS_INTO(sDebug), SIZE_NxN, bFMD  );
    798798#else
    799799
     
    814814)
    815815          {
    816 #if  H_3D_FAST_TEXTURE_ENCODING
    817             xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_Nx2N, bFMD  );
     816#if  NH_3D_FAST_TEXTURE_ENCODING
     817            xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_Nx2N DEBUG_STRING_PASS_INTO(sDebug), bFMD  );
    818818#else
    819819            xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_Nx2N DEBUG_STRING_PASS_INTO(sDebug)  );
     
    835835)
    836836          {
    837 #if  H_3D_FAST_TEXTURE_ENCODING
    838             xCheckRDCostInter      ( rpcBestCU, rpcTempCU, SIZE_2NxN, bFMD  );
     837#if  NH_3D_FAST_TEXTURE_ENCODING
     838            xCheckRDCostInter      ( rpcBestCU, rpcTempCU, SIZE_2NxN DEBUG_STRING_PASS_INTO(sDebug), bFMD  );
    839839#else
    840840
     
    876876)
    877877              {
    878 #if  H_3D_FAST_TEXTURE_ENCODING
    879                 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, bFMD );
     878#if  NH_3D_FAST_TEXTURE_ENCODING
     879                xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU DEBUG_STRING_PASS_INTO(sDebug), bFMD );
    880880#else
    881881                xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU DEBUG_STRING_PASS_INTO(sDebug) );
     
    896896)
    897897              {
    898 #if  H_3D_FAST_TEXTURE_ENCODING
    899                 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, bFMD );
     898#if  NH_3D_FAST_TEXTURE_ENCODING
     899                xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD DEBUG_STRING_PASS_INTO(sDebug), bFMD );
    900900#else
    901901                xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD DEBUG_STRING_PASS_INTO(sDebug) );
     
    922922)
    923923              {
    924 #if  H_3D_FAST_TEXTURE_ENCODING
    925                 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, bFMD, true );
     924#if  NH_3D_FAST_TEXTURE_ENCODING
     925                xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU DEBUG_STRING_PASS_INTO(sDebug), bFMD, true );
    926926#else
    927927
     
    944944)
    945945              {
    946 #if  H_3D_FAST_TEXTURE_ENCODING
    947                 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, bFMD, true );
     946#if  NH_3D_FAST_TEXTURE_ENCODING
     947                xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD DEBUG_STRING_PASS_INTO(sDebug), bFMD, true );
    948948#else
    949949                xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD DEBUG_STRING_PASS_INTO(sDebug), true );
     
    971971)
    972972              {
    973 #if  H_3D_FAST_TEXTURE_ENCODING
    974                 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, bFMD );
     973#if  NH_3D_FAST_TEXTURE_ENCODING
     974                xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N DEBUG_STRING_PASS_INTO(sDebug), bFMD );
    975975#else
    976976                xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N DEBUG_STRING_PASS_INTO(sDebug) );
     
    992992)
    993993              {
    994 #if  H_3D_FAST_TEXTURE_ENCODING
    995                 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, bFMD );
     994#if  NH_3D_FAST_TEXTURE_ENCODING
     995                xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N DEBUG_STRING_PASS_INTO(sDebug), bFMD );
    996996#else
    997997                xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N DEBUG_STRING_PASS_INTO(sDebug) );
     
    10121012)
    10131013              {
    1014 #if  H_3D_FAST_TEXTURE_ENCODING
    1015                 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, bFMD, true );
     1014#if  NH_3D_FAST_TEXTURE_ENCODING
     1015                xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N DEBUG_STRING_PASS_INTO(sDebug), bFMD, true );
    10161016#else
    10171017                xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N DEBUG_STRING_PASS_INTO(sDebug), true );
     
    10321032)
    10331033              {
    1034 #if  H_3D_FAST_TEXTURE_ENCODING
    1035                 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, bFMD, true );
     1034#if  NH_3D_FAST_TEXTURE_ENCODING
     1035                xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N DEBUG_STRING_PASS_INTO(sDebug), bFMD, true );
    10361036#else
    10371037
     
    10861086          }
    10871087        }
    1088 #if  H_3D_FAST_TEXTURE_ENCODING
     1088#if  NH_3D_FAST_TEXTURE_ENCODING
    10891089        if(!bFMD)
    10901090        {
     
    11781178          }
    11791179        }
    1180 #if  H_3D_FAST_TEXTURE_ENCODING
     1180#if  NH_3D_FAST_TEXTURE_ENCODING
    11811181        }
    11821182#endif
     
    12051205      m_pcRDGoOnSbacCoder->store(m_pppcRDSbacCoder[uiDepth][CI_NEXT_BEST]);
    12061206    }
    1207 #if  H_3D_FAST_TEXTURE_ENCODING
     1207#if  NH_3D_FAST_TEXTURE_ENCODING
    12081208    if(rpcBestCU->getSlice()->getViewIndex() && !rpcBestCU->getSlice()->getIsDepth() && (uiDepth >=iIVFMaxD) && rpcBestCU->isSkipped(0))
    12091209    {
     
    12471247    iMaxQP = iMinQP; // If all TUs are forced into using transquant bypass, do not loop here.
    12481248  }
    1249 
     1249#if  NH_3D_FAST_TEXTURE_ENCODING
     1250  bSubBranch = bSubBranch && (bBoundary || !( m_pcEncCfg->getUseEarlyCU() && rpcBestCU->getTotalCost()!=MAX_DOUBLE && rpcBestCU->isSkipped(0) ));
     1251#else
    12501252  const Bool bSubBranch = bBoundary || !( m_pcEncCfg->getUseEarlyCU() && rpcBestCU->getTotalCost()!=MAX_DOUBLE && rpcBestCU->isSkipped(0) );
     1253#endif
    12511254#if NH_3D_QTLPC
    12521255  if( bSubBranch && uiDepth < sps.getLog2DiffMaxMinCodingBlockSize() && (!getFastDeltaQp() || uiWidth > fastDeltaQPCuMaxSize || bBoundary) && bTrySplitDQP )
     
    22322235
    22332236#if AMP_MRG
    2234 #if  H_3D_FAST_TEXTURE_ENCODING
    2235 Void TEncCu::xCheckRDCostInter( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize, Bool bFMD, Bool bUseMRG)
     2237#if  NH_3D_FAST_TEXTURE_ENCODING
     2238Void TEncCu::xCheckRDCostInter( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize DEBUG_STRING_FN_DECLARE(sDebug), Bool bFMD, Bool bUseMRG)
    22362239#else
    22372240Void TEncCu::xCheckRDCostInter( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize DEBUG_STRING_FN_DECLARE(sDebug), Bool bUseMRG)
     
    22572260  const Bool bTransquantBypassFlag = rpcTempCU->getCUTransquantBypass(0);
    22582261#endif
    2259 #if  H_3D_FAST_TEXTURE_ENCODING
     2262#if  NH_3D_FAST_TEXTURE_ENCODING
    22602263  if(!(bFMD && (ePartSize == SIZE_2Nx2N)))  //have  motion estimation or merge check
    22612264  {
     
    23182321#if AMP_MRG
    23192322  rpcTempCU->setMergeAMP (true);
    2320 #if  H_3D_FAST_TEXTURE_ENCODING
    2321         m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth], bFMD, false, bUseMRG );
     2323#if  NH_3D_FAST_TEXTURE_ENCODING
     2324        m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth] DEBUG_STRING_PASS_INTO(sTest), bFMD, false, bUseMRG );
    23222325#else
    23232326  m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth] DEBUG_STRING_PASS_INTO(sTest), false, bUseMRG );
     
    24582461    }
    24592462#endif
    2460 #if  H_3D_FAST_TEXTURE_ENCODING
     2463#if  NH_3D_FAST_TEXTURE_ENCODING
    24612464  }
    24622465#endif
Note: See TracChangeset for help on using the changeset viewer.