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/TEncTop.cpp

    r105 r166  
    7979  m_pcBitCounters          = NULL;
    8080  m_pcRdCosts              = NULL;
     81
     82#if VSP_N
     83  m_pcPicVSP = NULL;
     84  m_pcPicAvail = NULL;
     85#endif
     86
     87#if VSP_SLICE_HEADER
     88  m_bUseVSP = false;
     89#endif
     90
    8191}
    8292
     
    184194  }
    185195#endif
     196
     197#if VSP_N
     198  m_pcPicVSP = new TComPic;
     199  m_pcPicVSP->create( getSourceWidth(), getSourceHeight(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth );
     200  //m_pcPicVSP->getCurrSlice()->setViewId( this->getViewId() );
     201  m_pcPicVSP->getCurrSlice()->setViewId( NUM_VIEW_VSP );
     202  m_pcPicVSP->getCurrSlice()->setViewOrderIdx( m_iViewOrderIdx );
     203
     204  m_pcPicAvail = new TComPic;
     205  m_pcPicAvail->create( getSourceWidth(), getSourceHeight(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth );
     206  m_pcPicAvail->getCurrSlice()->setViewId( 99 );
     207  m_pcPicAvail->getCurrSlice()->setViewOrderIdx( m_iViewOrderIdx );
     208#endif
     209
    186210}
    187211
     
    325349  }
    326350 
     351#if VSP_N
     352  if( m_pcPicVSP )
     353  {
     354    m_pcPicVSP->destroy();
     355    delete m_pcPicVSP;
     356    m_pcPicVSP = NULL;
     357  }
     358  if( m_pcPicAvail )
     359  {
     360    m_pcPicAvail->destroy();
     361    delete m_pcPicAvail;
     362    m_pcPicAvail = NULL;
     363  }
     364#endif
     365
    327366  return;
    328367}
     
    391430
    392431  m_iMaxRefPicNum = 0;
     432
     433#if VSP_N
     434  m_pcPicVSP->setCurrSliceIdx( 0 );
     435  m_pcPicVSP->getCurrSlice()->setSPS( this->getSPS() );
     436  m_pcPicVSP->getCurrSlice()->setPPS( this->getPPS() );
     437  m_pcPicVSP->getCurrSlice()->setPPSId( this->getPPS()->getPPSId() );
     438  //initialize the motion vector field with zeros - How about the RefIdx ????
     439  //IS THIS REALLY NECESSARY ????
     440  for ( int i=0; i<m_pcPicVSP->getPicSym()->getNumberOfCUsInFrame(); i++ )
     441  {
     442    m_pcPicVSP->getPicSym()->getCU(i)->getCUMvField(RefPicList(0))->clearMvField();
     443    m_pcPicVSP->getPicSym()->getCU(i)->getCUMvField(RefPicList(1))->clearMvField();
     444  }
     445#if DEPTH_MAP_GENERATION
     446#if !QC_MULTI_DIS_CAN
     447  // add extra pic buffers
     448  Bool  bNeedPrdDepthMapBuf = ( m_uiPredDepthMapGeneration > 0 );
     449  if( bNeedPrdDepthMapBuf && !m_pcPicVSP->getPredDepthMap() )
     450  {
     451    m_pcPicVSP->addPrdDepthMapBuffer( PDM_SUB_SAMP_EXP_X(m_uiPredDepthMapGeneration), PDM_SUB_SAMP_EXP_Y(m_uiPredDepthMapGeneration) );
     452    m_cDepthMapGenerator.clearDepthMap( m_pcPicVSP );
     453  }
     454#endif
     455#endif
     456  m_pcPicAvail->setCurrSliceIdx( 0 );
     457  m_pcPicAvail->getCurrSlice()->setSPS( this->getSPS() );
     458  m_pcPicAvail->getCurrSlice()->setPPS( this->getPPS() );
     459  m_pcPicAvail->getCurrSlice()->setPPSId( this->getPPS()->getPPSId() );
     460  //initialize the motion vector field with zeros - How about the RefIdx ????
     461  //IS THIS REALLY NECESSARY ????
     462  for ( int i=0; i<m_pcPicAvail->getPicSym()->getNumberOfCUsInFrame(); i++ )
     463  {
     464    m_pcPicAvail->getPicSym()->getCU(i)->getCUMvField(RefPicList(0))->clearMvField();
     465    m_pcPicAvail->getPicSym()->getCU(i)->getCUMvField(RefPicList(1))->clearMvField();
     466  }
     467#if DEPTH_MAP_GENERATION
     468#if !QC_MULTI_DIS_CAN
     469  // add extra pic buffers
     470  bNeedPrdDepthMapBuf = ( m_uiPredDepthMapGeneration > 0 );
     471  if( bNeedPrdDepthMapBuf && !m_pcPicVSP->getPredDepthMap() )
     472  {
     473    m_pcPicAvail->addPrdDepthMapBuffer( PDM_SUB_SAMP_EXP_X(m_uiPredDepthMapGeneration), PDM_SUB_SAMP_EXP_Y(m_uiPredDepthMapGeneration) );
     474    m_cDepthMapGenerator.clearDepthMap( m_pcPicAvail );
     475  }
     476#endif
     477#endif
     478#endif
    393479}
    394480
Note: See TracChangeset for help on using the changeset viewer.