Changeset 115 in 3DVCSoftware for trunk/source/Lib/TLibEncoder/TEncSbac.cpp


Ignore:
Timestamp:
30 Aug 2012, 14:52:41 (12 years ago)
Author:
tech
Message:

Integrated revision 114. with:

  • A0119: VSO Depth Fidelity
  • A0044: Depth Quadtree Prediction
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TLibEncoder/TEncSbac.cpp

    r101 r115  
    580580{
    581581  PartSize eSize         = pcCU->getPartitionSize( uiAbsPartIdx );
     582#if OL_DEPTHLIMIT
     583  UInt uiSymbol;
     584#endif
    582585  if ( pcCU->isIntra( uiAbsPartIdx ) )
    583586  {
     
    585588    {
    586589      m_pcBinIf->encodeBin( eSize == SIZE_2Nx2N? 1 : 0, m_cCUPartSizeSCModel.get( 0, 0, 0 ) );
    587     }
     590#if OL_DEPTHLIMIT
     591                if(pcCU->getPartDumpFlag())
     592                {
     593                        uiSymbol = (UInt)(eSize == SIZE_2Nx2N? 1 : 0);
     594                        pcCU->updatePartInfo(uiSymbol?0:1,uiDepth); //0 for 2Nx2N and 1 for NxN
     595                        pcCU->incrementPartInfo();
     596                }
     597#endif
     598    }
     599#if OL_DEPTHLIMIT
     600        if(pcCU->getPartDumpFlag() && uiDepth < g_uiMaxCUDepth - g_uiAddCUDepth && !pcCU->getSlice()->isIntra())
     601        {
     602                pcCU->updatePartInfo(0,uiDepth); //0 for 2Nx2N and 1 for NxN
     603                pcCU->incrementPartInfo();
     604        }
     605#endif
    588606    return;
    589607  }
     
    594612    {
    595613      m_pcBinIf->encodeBin( 1, m_cCUPartSizeSCModel.get( 0, 0, 0) );
     614#if OL_DEPTHLIMIT
     615          if(pcCU->getPartDumpFlag())
     616          {
     617//              if (!pcCU->isIntra( uiAbsPartIdx ))
     618                {
     619                        pcCU->updatePartInfo(0,uiDepth); //0 for 2Nx2N
     620                        pcCU->incrementPartInfo();
     621                }
     622          }
     623#endif
    596624      break;
    597625    }
     
    623651        }
    624652      }
     653#if OL_DEPTHLIMIT
     654          if(pcCU->getPartDumpFlag())
     655          {
     656//              if (!pcCU->isIntra( uiAbsPartIdx ))
     657                {
     658                        pcCU->updatePartInfo(2,uiDepth); //2 for 2NxN
     659                        pcCU->incrementPartInfo();
     660                }
     661          }
     662#endif
    625663      break;
    626664    }
     
    656694        }
    657695      }
     696#if OL_DEPTHLIMIT
     697          if(pcCU->getPartDumpFlag())
     698          {
     699//              if (!pcCU->isIntra( uiAbsPartIdx ))
     700                {
     701                        pcCU->updatePartInfo(3,uiDepth); //3 for Nx2N
     702                        pcCU->incrementPartInfo();
     703                }
     704          }
     705#endif
    658706      break;
    659707    }
     
    665713        m_pcBinIf->encodeBin( 0, m_cCUPartSizeSCModel.get( 0, 0, 1) );
    666714        m_pcBinIf->encodeBin( 0, m_cCUPartSizeSCModel.get( 0, 0, 2) );
     715#if OL_DEPTHLIMIT
     716          if(pcCU->getPartDumpFlag())
     717          {
     718                //if (!pcCU->getSlice()->isIntra())
     719                {
     720                        pcCU->updatePartInfo(1,uiDepth); //2Nx2N here since we disable NxN in Inter
     721                        pcCU->incrementPartInfo();
     722                }
     723          }
     724#endif
     725      }
     726          else
     727          {
     728#if OL_DEPTHLIMIT
     729          if(pcCU->getPartDumpFlag())
     730          {
     731                //if (!pcCU->getSlice()->isIntra())
     732                {
     733                        pcCU->updatePartInfo(0,uiDepth); //2Nx2N here since we disable NxN in Inter
     734                        pcCU->incrementPartInfo();
     735                }
     736          }
     737#endif
    667738      }
    668739      break;
     
    828899  assert( uiCtx < 3 );
    829900  m_pcBinIf->encodeBin( uiCurrSplitFlag, m_cCUSplitFlagSCModel.get( 0, 0, uiCtx ) );
     901#if OL_DEPTHLIMIT
     902  if(pcCU->getPartDumpFlag())
     903  {
     904        if(pcCU->getSlice()->isIntra() || (!pcCU->getSlice()->isIntra() && uiCurrSplitFlag!=0))
     905        {
     906        pcCU->updatePartInfo(uiCurrSplitFlag,uiDepth);
     907        pcCU->incrementPartInfo();
     908        }
     909  }
     910#endif
    830911  DTRACE_CABAC_VL( g_nSymbolCounter++ )
    831912  DTRACE_CABAC_T( "\tSplitFlag\n" )
Note: See TracChangeset for help on using the changeset viewer.