Changeset 100 in 3DVCSoftware for trunk/source/App/TAppRenderer


Ignore:
Timestamp:
9 Aug 2012, 12:53:16 (12 years ago)
Author:
tech
Message:

Adopted modifications:

  • disparity vector generation (A0097)
  • inter-view motion prediction modification (A0049)
  • simplification of disparity vector derivation (A0126)
  • region boundary chain coding (A0070)
  • residual skip intra (A0087)
  • VSO modification (A0033/A0093)

+ Clean ups + Bug fixes

Update of cfg files (A0033 modification 2)

Location:
trunk/source/App/TAppRenderer
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/App/TAppRenderer/RendererMain.cpp

    r56 r100  
    4242
    4343int main(int argc, char* argv[])
    44         {
     44  {
    4545  TAppRendererTop  cTAppRendererTop;
    4646
  • trunk/source/App/TAppRenderer/TAppRendererCfg.cpp

    r56 r100  
    5353// ====================================================================================================================
    5454
    55 #define MAX_INPUT_VIEW_NUM                                      10
     55#define MAX_INPUT_VIEW_NUM          10
    5656#define MAX_OUTPUT_VIEW_NUM         64
    5757
  • trunk/source/App/TAppRenderer/TAppRendererCfg.h

    r56 r100  
    8080  ////camera specification ////
    8181  Char*               m_pchCameraParameterFile;         ///< camera parameter file
    82   Char*               m_pchSynthViewCameraNumbers;            ///< numbers of views to synthesize
     82  Char*               m_pchSynthViewCameraNumbers;      ///< numbers of views to synthesize
    8383  Char*               m_pchViewConfig;                  ///< String to setup renderer
    84   Char*               m_pchBaseViewCameraNumbers;             ///< numbers of base views
     84  Char*               m_pchBaseViewCameraNumbers;       ///< numbers of base views
    8585
    8686  // derived
     
    8989  Bool                m_bUseSetupString;                ///< true if setup string is used
    9090
    91   Int                 m_iNumberOfInputViews;                                            ///< number of input Views
    92   Int                 m_iNumberOfOutputViews;                                           ///< number views to synthesize
     91  Int                 m_iNumberOfInputViews;            ///< number of input Views
     92  Int                 m_iNumberOfOutputViews;           ///< number views to synthesize
    9393
    9494  //// renderer Modes ////
    95   Int                 m_iRenderDirection;                  ///< 0: interpolate, 1: extrapolate from left, 2: extrapolate from right
     95  Int                 m_iRenderDirection;               ///< 0: interpolate, 1: extrapolate from left, 2: extrapolate from right
    9696
    9797  Int                 m_iLog2SamplingFactor;            ///< factor for horizontal upsampling before processing
  • trunk/source/App/TAppRenderer/TAppRendererTop.cpp

    r81 r100  
    7070    pcVideoInput->open( m_pchVideoInputFileList[iViewIdx], false, iFileBitDepth, iInteralBitDepth );  // read mode
    7171    pcDepthInput->open( m_pchDepthInputFileList[iViewIdx], false, iFileBitDepth, iInteralBitDepth );  // read mode
    72 #if HHI_FIX
    7372    pcVideoInput->skipFrames(m_iFrameSkip, m_iSourceWidth, m_iSourceHeight  );
    7473    pcDepthInput->skipFrames(m_iFrameSkip, m_iSourceWidth, m_iSourceHeight  );
    75 #endif
     74
    7675    m_apcTVideoIOYuvVideoInput.push_back( pcVideoInput );
    7776    m_apcTVideoIOYuvDepthInput.push_back( pcDepthInput );
     
    186185  while ( ( ( iNumOfRenderedFrames < m_iFramesToBeRendered ) || ( m_iFramesToBeRendered == 0 ) ) && !bAnyEOS )
    187186  {
    188 
    189 #if HHI_FIX
    190187    if ( iFrame >= m_iFrameSkip )
    191188    {
    192 #endif
    193     // read in depth and video
    194     for(Int iBaseViewIdx=0; iBaseViewIdx < m_iNumberOfInputViews; iBaseViewIdx++ )
    195     {
    196       m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->read( apcPicYuvBaseVideo[iBaseViewIdx], aiPad  ) ;
    197 
    198       apcPicYuvBaseVideo[iBaseViewIdx]->extendPicBorder();
    199 
    200       bAnyEOS |= m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->isEof();
    201 
    202       m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->read( apcPicYuvBaseDepth[iBaseViewIdx], aiPad  ) ;
    203       apcPicYuvBaseDepth[iBaseViewIdx]->extendPicBorder();
    204       bAnyEOS |= m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->isEof();
    205 
    206       if ( m_bTempDepthFilter && (iFrame >= m_iFrameSkip) )
     189      // read in depth and video
     190      for(Int iBaseViewIdx=0; iBaseViewIdx < m_iNumberOfInputViews; iBaseViewIdx++ )
    207191      {
    208         m_pcRenTop->temporalFilterVSRS( apcPicYuvBaseVideo[iBaseViewIdx], apcPicYuvBaseDepth[iBaseViewIdx], apcPicYuvLastBaseVideo[iBaseViewIdx], apcPicYuvLastBaseDepth[iBaseViewIdx], ( iFrame == m_iFrameSkip) );
     192        m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->read( apcPicYuvBaseVideo[iBaseViewIdx], aiPad  ) ;
     193
     194        apcPicYuvBaseVideo[iBaseViewIdx]->extendPicBorder();
     195
     196        bAnyEOS |= m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->isEof();
     197
     198        m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->read( apcPicYuvBaseDepth[iBaseViewIdx], aiPad  ) ;
     199        apcPicYuvBaseDepth[iBaseViewIdx]->extendPicBorder();
     200        bAnyEOS |= m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->isEof();
     201
     202        if ( m_bTempDepthFilter && (iFrame >= m_iFrameSkip) )
     203        {
     204          m_pcRenTop->temporalFilterVSRS( apcPicYuvBaseVideo[iBaseViewIdx], apcPicYuvBaseDepth[iBaseViewIdx], apcPicYuvLastBaseVideo[iBaseViewIdx], apcPicYuvLastBaseDepth[iBaseViewIdx], ( iFrame == m_iFrameSkip) );
     205        }
    209206      }
    210207    }
    211 
    212 #if HHI_FIX
    213     }
    214     else
    215 #else
    216     if ( iFrame < m_iFrameSkip ) // Skip Frames
    217 #endif
    218    
     208    else   
    219209    {
    220210      std::cout << "Skipping Frame " << iFrame << std::endl;
     
    536526
    537527    AOT( m_iLog2SamplingFactor != 0 );
     528#if LGE_VSO_EARLY_SKIP_A0093
     529    cCurModel.create( m_cRenModStrParser.getNumOfBaseViews(), m_cRenModStrParser.getNumOfModels(), m_iSourceWidth, m_iSourceHeight, m_iShiftPrecision, m_iBlendHoleMargin, false );
     530#else
    538531    cCurModel.create( m_cRenModStrParser.getNumOfBaseViews(), m_cRenModStrParser.getNumOfModels(), m_iSourceWidth, m_iSourceHeight, m_iShiftPrecision, m_iBlendHoleMargin );
     532#endif
     533
     534#if HHI_VSO_SPEEDUP_A033
     535    cCurModel.setHorOffset( 0 );
     536#endif
    539537
    540538    for ( Int iViewIdx = 0; iViewIdx < m_iNumberOfInputViews; iViewIdx++ )
     
    563561    {
    564562
    565 #if HHI_FIX
    566563      if ( iFrame >= m_iFrameSkip )
    567564      {     
    568 #endif
    569       // read in depth and video
    570       for(Int iBaseViewIdx=0; iBaseViewIdx < m_iNumberOfInputViews; iBaseViewIdx++ )
    571       {
    572         m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->read( apcPicYuvBaseVideo[iBaseViewIdx], aiPad  ) ;
    573         bAnyEOS |= m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->isEof();
    574 
    575         m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->read( apcPicYuvBaseDepth[iBaseViewIdx], aiPad  ) ;
    576         bAnyEOS |= m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->isEof();
    577       }
    578 #if HHI_FIX
     565        // read in depth and video
     566        for(Int iBaseViewIdx=0; iBaseViewIdx < m_iNumberOfInputViews; iBaseViewIdx++ )
     567        {
     568          m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->read( apcPicYuvBaseVideo[iBaseViewIdx], aiPad  ) ;
     569          bAnyEOS |= m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->isEof();
     570
     571          m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->read( apcPicYuvBaseDepth[iBaseViewIdx], aiPad  ) ;
     572          bAnyEOS |= m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->isEof();
     573        }
    579574      }
    580575      else
    581 #else
    582       if ( iFrame < m_iFrameSkip )
    583 #endif
    584576      {
    585 #if HHI_FIX
    586577        iFrame++;
    587 #endif
    588578        continue;
    589579      }
     
    598588      }
    599589
    600 #if HHI_FIX
    601590      m_cCameraData.update( (UInt) ( iFrame - m_iFrameSkip ));
    602 #endif
    603591
    604592      for(Int iBaseViewIdx=0; iBaseViewIdx < m_iNumberOfInputViews; iBaseViewIdx++ )
    605593      {
    606 #if HHI_FIX
    607 #else
    608         m_cCameraData.update( (UInt)iFrame );
    609 #endif
    610 
    611594        // setup virtual views
    612595        Int iBaseViewSIdx = m_cCameraData.getBaseId2SortedId()[iBaseViewIdx];
     
    726709
    727710  AOT( m_iLog2SamplingFactor != 0 );
     711#if HHI_VSO_SPEEDUP_A033
     712  cCurModel.setHorOffset( 0 );
     713#endif
     714#if LGE_VSO_EARLY_SKIP_A0093
     715  cCurModel.create( m_iNumberOfInputViews, m_iNumberOfOutputViews, m_iSourceWidth, m_iSourceHeight, m_iShiftPrecision, m_iBlendHoleMargin, false );
     716#else
    728717  cCurModel.create( m_iNumberOfInputViews, m_iNumberOfOutputViews, m_iSourceWidth, m_iSourceHeight, m_iShiftPrecision, m_iBlendHoleMargin );
     718#endif
    729719
    730720  for ( UInt uiBaseView = 0; uiBaseView < m_iNumberOfInputViews; uiBaseView++ )
     
    788778  {
    789779
    790 #if HHI_FIX
    791780    if ( iFrame >= m_iFrameSkip )
    792781    {     
    793 #endif
    794     // read in depth and video
    795     for(Int iBaseViewIdx=0; iBaseViewIdx < m_iNumberOfInputViews; iBaseViewIdx++ )
    796     {
    797       m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->read( apcPicYuvBaseVideo[iBaseViewIdx], aiPad  ) ;
    798       bAnyEOS |= m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->isEof();
    799 
    800       m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->read( apcPicYuvBaseDepth[iBaseViewIdx], aiPad  ) ;
    801       bAnyEOS |= m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->isEof();
    802 
    803       if ( iFrame >= m_iFrameSkip )
     782      // read in depth and video
     783      for(Int iBaseViewIdx=0; iBaseViewIdx < m_iNumberOfInputViews; iBaseViewIdx++ )
    804784      {
    805         Int iBaseViewSIdx = m_cCameraData.getBaseId2SortedId()[iBaseViewIdx];
    806         cCurModel.setBaseView( iBaseViewSIdx, apcPicYuvBaseVideo[iBaseViewIdx], apcPicYuvBaseDepth[iBaseViewIdx], NULL, NULL );
     785        m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->read( apcPicYuvBaseVideo[iBaseViewIdx], aiPad  ) ;
     786        bAnyEOS |= m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->isEof();
     787
     788        m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->read( apcPicYuvBaseDepth[iBaseViewIdx], aiPad  ) ;
     789        bAnyEOS |= m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->isEof();
     790
     791        if ( iFrame >= m_iFrameSkip )
     792        {
     793          Int iBaseViewSIdx = m_cCameraData.getBaseId2SortedId()[iBaseViewIdx];
     794          cCurModel.setBaseView( iBaseViewSIdx, apcPicYuvBaseVideo[iBaseViewIdx], apcPicYuvBaseDepth[iBaseViewIdx], NULL, NULL );
     795        }
    807796      }
    808797    }
    809 
    810 #if HHI_FIX
    811     }
    812798    else
    813 #else
    814     if ( iFrame < m_iFrameSkip ) // Skip Frames
    815 #endif
    816799    {
    817800      iFrame++;
    818801      continue;
    819802    }
    820 
    821 #if HHI_FIX
    822803    m_cCameraData.update( (UInt) (iFrame - m_iFrameSkip ));
    823 #else
    824     m_cCameraData.update( (UInt)iFrame );
    825 #endif
    826 
    827804    for(Int iSynthViewIdx=0; iSynthViewIdx < m_iNumberOfOutputViews; iSynthViewIdx++ )
    828805    {
     
    972949  {
    973950
    974 #if HHI_FIX
     951
    975952    if ( iFrame >= m_iFrameSkip )
    976953    {     
    977 #endif
    978     // read in depth and video
    979     for(Int iBaseViewIdx=0; iBaseViewIdx < m_iNumberOfInputViews; iBaseViewIdx++ )
    980     {
    981       m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->read( apcPicYuvBaseVideo[iBaseViewIdx], aiPad  ) ;
    982       apcPicYuvBaseVideo[iBaseViewIdx]->extendPicBorder();
    983       bAnyEOS |= m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->isEof();
    984 
    985       m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->read( apcPicYuvBaseDepth[iBaseViewIdx], aiPad  ) ;
    986       apcPicYuvBaseDepth[iBaseViewIdx]->extendPicBorder();
    987       bAnyEOS |= m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->isEof();
    988 
    989       if ( m_bTempDepthFilter && (iFrame >= m_iFrameSkip) )
     954      // read in depth and video
     955      for(Int iBaseViewIdx=0; iBaseViewIdx < m_iNumberOfInputViews; iBaseViewIdx++ )
    990956      {
    991         m_pcRenTop->temporalFilterVSRS( apcPicYuvBaseVideo[iBaseViewIdx], apcPicYuvBaseDepth[iBaseViewIdx], apcPicYuvLastBaseVideo[iBaseViewIdx], apcPicYuvLastBaseDepth[iBaseViewIdx], ( iFrame == m_iFrameSkip) );
     957        m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->read( apcPicYuvBaseVideo[iBaseViewIdx], aiPad  ) ;
     958        apcPicYuvBaseVideo[iBaseViewIdx]->extendPicBorder();
     959        bAnyEOS |= m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->isEof();
     960
     961        m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->read( apcPicYuvBaseDepth[iBaseViewIdx], aiPad  ) ;
     962        apcPicYuvBaseDepth[iBaseViewIdx]->extendPicBorder();
     963        bAnyEOS |= m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->isEof();
     964
     965        if ( m_bTempDepthFilter && (iFrame >= m_iFrameSkip) )
     966        {
     967          m_pcRenTop->temporalFilterVSRS( apcPicYuvBaseVideo[iBaseViewIdx], apcPicYuvBaseDepth[iBaseViewIdx], apcPicYuvLastBaseVideo[iBaseViewIdx], apcPicYuvLastBaseDepth[iBaseViewIdx], ( iFrame == m_iFrameSkip) );
     968        }
    992969      }
    993970    }
    994 
    995 #if HHI_FIX
    996     }
    997971    else
    998 #else
    999     if ( iFrame < m_iFrameSkip ) // Skip Frames
    1000 #endif
    1001972    {
    1002973      std::cout << "Skipping Frame " << iFrame << std::endl;
     
    1005976      continue;
    1006977    }
    1007 
    1008 #if HHI_FIX
    1009978    m_cCameraData.update( (UInt) ( iFrame - m_iFrameSkip ) );
    1010 #else
    1011     m_cCameraData.update( (UInt)iFrame );
    1012 #endif
    1013979
    1014980    for(Int iViewIdx=1; iViewIdx < m_iNumberOfInputViews; iViewIdx++ )
  • trunk/source/App/TAppRenderer/TAppRendererTop.h

    r56 r100  
    6060private:
    6161  // class interface
    62   std::vector<TVideoIOYuv*>              m_apcTVideoIOYuvVideoInput;
     62  std::vector<TVideoIOYuv*>    m_apcTVideoIOYuvVideoInput;
    6363  std::vector<TVideoIOYuv*>    m_apcTVideoIOYuvDepthInput;
    64   std::vector<TVideoIOYuv*>              m_apcTVideoIOYuvSynthOutput;
     64  std::vector<TVideoIOYuv*>    m_apcTVideoIOYuvSynthOutput;
    6565
    6666  // RendererInterface
Note: See TracChangeset for help on using the changeset viewer.