Ignore:
Timestamp:
1 Nov 2012, 19:22:41 (12 years ago)
Author:
mitsubishi-htm
Message:

Initial integration of VSP into HTM 4.0.1. The version used for JCT3V-B0102 at Shanghai meeting.

  • VC9 project/solution files updated. Other Visual C++ project/solution files are not updated.
  • Linux make file updated.

TODO

  • A second release is expected to include some bug fix and improvements on the interface, e.g. to move switches from macro definition to the configuration file.
  • A third release is expected after being integrated within HTM 5.x, which is to be used for CE1.h anchor.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-4.0.1-VSP-dev0/source/Lib/TLibEncoder/TEncSbac.cpp

    r101 r166  
    718718{
    719719  // get context function is here
     720#if FORCE_REF_VSP==1
     721  UInt uiSymbol = (pcCU->isSkipped( uiAbsPartIdx ) || pcCU->isVspMode( uiAbsPartIdx )) ? 1 : 0;
     722#else
    720723  UInt uiSymbol = pcCU->isSkipped( uiAbsPartIdx ) ? 1 : 0;
     724#endif
    721725  UInt uiCtxSkip = pcCU->getCtxSkipFlag( uiAbsPartIdx ) ;
    722726  m_pcBinIf->encodeBin( uiSymbol, m_cCUSkipFlagSCModel.get( 0, 0, uiCtxSkip ) );
     
    730734}
    731735
     736#if FORCE_REF_VSP==1
     737Void TEncSbac::codeVspFlag( TComDataCU* pcCU, UInt uiAbsPartIdx )
     738{
     739  // get context function is here
     740  UInt uiSymbol = (UInt)pcCU->isVspMode( uiAbsPartIdx );
     741  UInt uiCtxSkip = pcCU->getCtxSkipFlag( uiAbsPartIdx ) ;
     742  m_pcBinIf->encodeBin( uiSymbol, m_cCUSkipFlagSCModel.get( 0, 0, uiCtxSkip ) );
     743  DTRACE_CABAC_VL( g_nSymbolCounter++ );
     744  DTRACE_CABAC_T( "\tVspFlag" );
     745  DTRACE_CABAC_T( "\tuiCtxSkip: ");
     746  DTRACE_CABAC_V( uiCtxSkip );
     747  DTRACE_CABAC_T( "\tuiSymbol: ");
     748  DTRACE_CABAC_V( uiSymbol );
     749  DTRACE_CABAC_T( "\n");
     750}
     751#endif
     752
    732753/** code merge flag
    733754 * \param pcCU
     
    764785  uiNumCand = pcCU->getSlice()->getMaxNumMergeCand();
    765786#if HHI_MPI
     787#if VSP_TEXT_ONLY
     788  TComDataCU* pcTextCU = pcCU->getSlice()->getSPS()->getUseMVI() ? pcCU->getSlice()->getTexturePic()->getCU( pcCU->getAddr() ) : NULL;
     789  Int aiRefIdxVsp[2] = { pcTextCU ? pcTextCU->getCUMvField( RefPicList(0) )->getRefIdx( uiAbsPartIdx ) : -1,
     790                         pcTextCU ? pcTextCU->getCUMvField( RefPicList(1) )->getRefIdx( uiAbsPartIdx ) : -1 };
     791  const Bool bMVIAvailable = pcCU->getSlice()->getSPS()->getUseMVI() && pcCU->getSlice()->getSliceType() != I_SLICE
     792    && !( aiRefIdxVsp[0] >= 0 && pcTextCU->getSlice()->getRefViewId( RefPicList(0), aiRefIdxVsp[0] ) == NUM_VIEW_VSP )
     793    && !( aiRefIdxVsp[1] >= 0 && pcTextCU->getSlice()->getRefViewId( RefPicList(1), aiRefIdxVsp[1] ) == NUM_VIEW_VSP );
     794#else
    766795  const Bool bMVIAvailable = pcCU->getSlice()->getSPS()->getUseMVI() && pcCU->getSlice()->getSliceType() != I_SLICE;
     796#endif
    767797  if( bMVIAvailable )
    768798  {
Note: See TracChangeset for help on using the changeset viewer.