Ignore:
Timestamp:
18 Jun 2013, 23:24:53 (12 years ago)
Author:
tech
Message:
  • changed IV-MERGE HLS to match Test Model 4 spec
  • incorporated iv-refpic list to TComSlice
  • removed TComDepthMapGenerator
Location:
branches/HTM-DEV-0.3-dev2/source/App/TAppEncoder
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-DEV-0.3-dev2/source/App/TAppEncoder/TAppEncCfg.cpp

    r478 r479  
    718718#endif //HHI_VSO
    719719#if H_3D_IV_MERGE
    720   ("PredDepthMapGen",  m_uiPredDepthMapGeneration, (UInt)0, "generation of prediction depth maps for motion data prediction" )
    721   ("MultiviewMvPred",  m_uiMultiviewMvPredMode,    (UInt)0, "usage of predicted depth maps" )
     720  ("IvMvPred",                       m_ivMvPredFlag,           false           , "inter view motion prediction " ) 
    722721#endif
    723722#endif //H_3D
     
    14431442  xConfirmPara( ((UInt) m_numberOfLayers >> 1 ) != m_cCameraData.getBaseViewNumbers().size(),   "Number of Views in BaseViewCameraNumbers must be equal to NumberOfViews" );
    14441443  xConfirmPara    ( m_iCodedCamParPrecision < 0 || m_iCodedCamParPrecision > 5,       "CodedCamParsPrecision must be in range of 0..5" );
    1445 #if H_3D_IV_MERGE
    1446   xConfirmPara    ( m_uiPredDepthMapGeneration > 2,                                   "PredDepthMapGen must be less than or equal to 2" );
    1447   xConfirmPara    ( m_uiMultiviewMvPredMode > 7,                                      "MultiviewMvPred must be less than or equal to 7" ); 
    1448   xConfirmPara    ( m_uiMultiviewMvPredMode > 0 && m_uiPredDepthMapGeneration == 0 ,  "MultiviewMvPred > 0 requires PredDepthMapGen > 0" );
    1449 #endif
    14501444#if H_3D_VSO
    14511445    if( m_bUseVSO )
     
    22882282#endif
    22892283#if H_3D_IV_MERGE
    2290   printf("MultiviewMvPred:%d", m_uiMultiviewMvPredMode);
     2284  printf("IvMvPred:%d", m_ivMvPredFlag );
    22912285#endif
    22922286  printf("\n\n"); 
  • branches/HTM-DEV-0.3-dev2/source/App/TAppEncoder/TAppEncCfg.h

    r476 r479  
    8585  Bool                   m_splittingFlag;                     ///< Splitting Flag
    8686  Int                    m_scalabilityMask;                   ///< Mask indicating scalabilities, 1: texture; 3: texture + depth                                                               
    87   std::vector<Int>       m_dimensionIdLen;                   ///< Length of scalability dimension s
     87  std::vector<Int>       m_dimensionIdLen;                    ///< Length of scalability dimension s
     88#if H_3D_IV_MERGE
     89  Bool                   m_ivMvPredFlag;                      ///< Interview motion vector prediction
     90#endif
    8891#endif
    8992  Double    m_adLambdaModifier[ MAX_TLAYER ];                 ///< Lambda modifier array for each temporal layer
     
    381384  TAppComCamPara m_cCameraData;
    382385  Int       m_iCodedCamParPrecision;                          ///< precision for coding of camera parameters
    383 #if H_3D_IV_MERGE
    384   UInt      m_uiMultiviewMvPredMode;   
    385   UInt      m_uiPredDepthMapGeneration;
    386 #endif
    387386#if H_3D_VSO
    388387  Char*     m_pchVSOConfig;
  • branches/HTM-DEV-0.3-dev2/source/App/TAppEncoder/TAppEncTop.cpp

    r478 r479  
    121121#if H_3D
    122122  vps.initViewIndex();
     123#if H_3D_GEN
     124  xSetVPSExtension2        ( vps );
     125#endif
    123126  m_ivPicLists.setVPS      ( &vps );
    124127#endif
     
    166169    m_cTEncTop.setDWeight                      ( isDepth ? m_iDWeight             : 0     );
    167170#endif // H_3D_VSO
    168 #if H_3D_IV_MERGE
    169     m_cTEncTop.setMultiviewMvPredMode          ( m_uiMultiviewMvPredMode     );
    170     m_cTEncTop.setPredDepthMapGeneration       ( m_uiPredDepthMapGeneration );
    171 #endif
    172171#endif // H_3D
    173172
     
    211210    m_cTEncTop.setNumReorderPics             ( m_numReorderPics[i], i );
    212211    m_cTEncTop.setMaxDecPicBuffering         ( m_maxDecPicBuffering[i], i );
    213 #if H_3D_IV_MERGE
    214         m_acTEncDepthTopList[iViewIdx]->setNumReorderPics             ( m_numReorderPics[iViewIdx][i], i );
    215         m_acTEncDepthTopList[iViewIdx]->setMaxDecPicBuffering         ( m_maxDecPicBuffering[iViewIdx][i], i );
    216 #endif
    217   }
    218 #if H_3D_IV_MERGE
    219       m_acTEncDepthTopList[iViewIdx]->setQP                           ( m_aiQP[1] );
    220 
    221       m_acTEncDepthTopList[iViewIdx]->setTemporalLayerQPOffset        ( m_aiTLayerQPOffset );
    222       m_acTEncDepthTopList[iViewIdx]->setPad                          ( m_aiPad );
    223 
    224       m_acTEncDepthTopList[iViewIdx]->setMaxTempLayer                 ( m_maxTempLayer[iViewIdx] );
    225 
    226       m_acTEncDepthTopList[iViewIdx]->setDisInter4x4                  ( m_bDisInter4x4);
    227 
    228       m_acTEncDepthTopList[iViewIdx]->setUseNSQT( m_enableNSQT );
    229       m_acTEncDepthTopList[iViewIdx]->setUseAMP( m_enableAMP );
    230 #endif
     212  }
    231213#endif
    232214  for( UInt uiLoop = 0; uiLoop < MAX_TLAYER; ++uiLoop )
     
    625607  for(Int layer=0; layer<m_numberOfLayers; layer++)
    626608  {
    627 #if H_3D_IV_MERGE
    628     m_acTEncTopList[layer]->init(this );
    629 #else
    630609    m_acTEncTopList[layer]->init( );
    631 #endif
    632610  }
    633611#else
     
    10571035}
    10581036#endif
     1037#if H_3D_GEN
     1038Void TAppEncTop::xSetVPSExtension2( TComVPS& vps )
     1039{
     1040  for ( Int layer = 0; layer < vps.getMaxLayers(); layer++ )
     1041  {
     1042    if ( layer != 0 )
     1043    {   
     1044      if( ( vps.getDepthId( layer ) == 0 ) )
     1045      {
    10591046#if H_3D_IV_MERGE
    1060  // GT: This function is not necessary anymore m_ivPicLists should be used instead
    1061 TComPic* TAppEncTop::xGetPicFromView( Int viewIdx, Int poc, Bool isDepth )
    1062 {
    1063   assert( ( viewIdx >= 0 ) && ( viewIdx < m_iNumberOfViews ) );
    1064 
    1065   TComList<TComPic*>* apcListPic =  m_acTEncTopList[(isDepth ? 1 : 0) + viewIdx * 2]->getListPic() ;
    1066 
    1067  
    1068 
    1069   TComPic* pcPic = NULL;
    1070   for(TComList<TComPic*>::iterator it=apcListPic->begin(); it!=apcListPic->end(); it++)
    1071   {
    1072     if( (*it)->getPOC() == poc )
    1073     {
    1074       pcPic = *it ;
    1075       break ;
    1076     }
    1077   }
    1078 
    1079   return pcPic;
    1080 };
     1047        vps.setIvMvPredFlag( layer, m_ivMvPredFlag );
     1048#endif
     1049      }
     1050    }
     1051  }
     1052}
    10811053#endif
    10821054//! \}
  • branches/HTM-DEV-0.3-dev2/source/App/TAppEncoder/TAppEncTop.h

    r478 r479  
    4848#if H_3D
    4949#include "../../Lib/TLibRenderer/TRenTop.h"
    50 #if H_3D_IV_MERGE
    51 #include "TLibCommon/TComDepthMapGenerator.h"
    52 #endif
    5350#endif
    5451
     
    9289  TRenModel                   m_cRendererModel;   
    9390#endif
    94 #if H_3D_IV_MERGE
    95   TComVPSAccess               m_cVPSAccess;
    96   TComSPSAccess               m_cSPSAccess;
    97   TComAUPicAccess             m_cAUPicAccess;
    98 #endif
    9991protected:
    10092  // initialization
     
    122114  void rateStatsAccum(const AccessUnit& au, const std::vector<UInt>& stats);
    123115  void printRateSummary();
    124 #if H_3D_IV_MERGE
    125   TComPic* xGetPicFromView( Int viewIdx, Int iPoc, Bool isDepth );
    126 #endif
     116
    127117#if H_MV
    128118  Void xSetLayerIds               ( TComVPS& vps ); 
     
    131121  Int  xGetMax( std::vector<Int>& vec);
    132122#endif
     123#if H_3D_GEN
     124  Void xSetVPSExtension2( TComVPS& vps );
     125#endif
    133126public:
    134127  TAppEncTop();
     
    136129 
    137130  Void        encode      ();                               ///< main encoding function
    138 #if H_3D_IV_MERGE
    139   TComPic*              getPicFromView     ( Int viewIdx, Int poc, Bool isDepth ) { return xGetPicFromView( viewIdx, poc, isDepth ); }
    140 #endif
    141131#if H_MV
    142132  TEncTop*    getTEncTop( UInt layer ) { return  m_acTEncTopList[layer]; }  ///< return pointer to encoder class for specific layer
    143133#else
    144134  TEncTop&    getTEncTop  ()   { return  m_cTEncTop; }      ///< return encoder class pointer reference
    145 #endif
    146 #if H_3D_IV_MERGE
    147   TComVPSAccess*    getVPSAccess  () { return &m_cVPSAccess;   }
    148   TComSPSAccess*    getSPSAccess  () { return &m_cSPSAccess;   }
    149   TComAUPicAccess*  getAUPicAccess() { return &m_cAUPicAccess; }
    150135#endif
    151136};// END CLASS DEFINITION TAppEncTop
Note: See TracChangeset for help on using the changeset viewer.