Changeset 608 in 3DVCSoftware for trunk/source/App/TAppEncoder/TAppEncTop.h


Ignore:
Timestamp:
1 Sep 2013, 22:47:26 (11 years ago)
Author:
tech
Message:

Merged DEV-2.0-dev0@604.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/App/TAppEncoder/TAppEncTop.h

    r443 r608  
    44 * granted under this license. 
    55 *
    6  * Copyright (c) 2010-2012, ITU/ISO/IEC
     6 * Copyright (c) 2010-2013, ITU/ISO/IEC
    77 * All rights reserved.
    88 *
     
    4646#include "TLibCommon/AccessUnit.h"
    4747#include "TAppEncCfg.h"
    48 #include "TLibCommon/TComDepthMapGenerator.h"
    49 #if HHI_VSO || HHI_INTERVIEW_SKIP
     48#if H_3D
    5049#include "../../Lib/TLibRenderer/TRenTop.h"
    5150#endif
     
    6362private:
    6463  // class interface
    65   std::vector<TEncTop*>      m_acTEncTopList ;
    66   std::vector<TEncTop*>      m_acTEncDepthTopList ;
     64#if H_MV
     65  std::vector<TEncTop*>      m_acTEncTopList ;              ///< encoder class per layer
    6766  std::vector<TVideoIOYuv*>  m_acTVideoIOYuvInputFileList;  ///< input YUV file
    68   std::vector<TVideoIOYuv*>  m_acTVideoIOYuvDepthInputFileList;
    6967  std::vector<TVideoIOYuv*>  m_acTVideoIOYuvReconFileList;  ///< output reconstruction file
    70   std::vector<TVideoIOYuv*>  m_acTVideoIOYuvDepthReconFileList;
     68 
     69  std::vector<TComList<TComPicYuv*>*>  m_picYuvRec;         ///< list of reconstruction YUV files
    7170
    72   std::vector< TComList<TComPicYuv*>* >  m_picYuvRec;       ///< list of reconstruction YUV files
    73   std::vector< TComList<TComPicYuv*>* >  m_picYuvDepthRec;         
     71  std::vector<Int>           m_frameRcvd;                   ///< number of received frames
    7472
    75   std::vector<Int>           m_frameRcvd;                  ///< number of received frames
    76   std::vector<Int>           m_depthFrameRcvd;   
    77 
    78   unsigned                   m_essentialBytes;
    79   unsigned                   m_totalBytes;
    80 
    81 #if DEPTH_MAP_GENERATION
    82 #if VIDYO_VPS_INTEGRATION
    83   TComVPSAccess               m_cVPSAccess;
    84 #endif
    85   TComSPSAccess               m_cSPSAccess;
    86   TComAUPicAccess             m_cAUPicAccess;
     73  TComPicLists               m_ivPicLists;                  ///< picture buffers of encoder instances
     74  TComVPS                    m_vps;                         ///< vps
     75#else
     76  TEncTop                    m_cTEncTop;                    ///< encoder class
     77  TVideoIOYuv                m_cTVideoIOYuvInputFile;       ///< input YUV file
     78  TVideoIOYuv                m_cTVideoIOYuvReconFile;       ///< output reconstruction file
     79 
     80  TComList<TComPicYuv*>      m_cListPicYuvRec;              ///< list of reconstruction YUV files
     81 
     82  Int                        m_iFrameRcvd;                  ///< number of received frames
    8783#endif
    8884
    89 #if VIDYO_VPS_INTEGRATION|QC_MVHEVC_B0046
    90   TComVPS                     m_cVPS;
    91 #endif
    92  
    93 #if HHI_VSO
     85  UInt m_essentialBytes;
     86  UInt m_totalBytes;
     87#if H_3D_VSO
    9488  TRenTop                     m_cRendererTop;
    9589  TRenModel                   m_cRendererModel;   
    9690#endif
    97 
    98 #if HHI_INTERVIEW_SKIP
    99   TRenTop  m_cUsedPelsRenderer;                               ///< renderer for used pels map
    100 #endif
    101 
    10291protected:
    10392  // initialization
     
    10897 
    10998  /// obtain required buffers
    110   Void xGetBuffer(TComPicYuv*& rpcPicYuvRec, Int iViewIdx, Bool isDepth);
    111  
     99#if H_MV
     100  Void  xGetBuffer(TComPicYuv*& rpcPicYuvRec, UInt layer);
     101#else
     102  Void xGetBuffer(TComPicYuv*& rpcPicYuvRec);
     103#endif
     104
    112105  /// delete allocated buffers
    113106  Void  xDeleteBuffer     ();
    114107 
    115108  // file I/O
    116   Void xWriteOutput(std::ostream& bitstreamFile, Int iNumEncoded, std::list<AccessUnit>& accessUnits, Int iViewIdx, Bool isDepth); ///< write bitstream to file
    117   void rateStatsAccum(const AccessUnit& au, const std::vector<unsigned>& stats);
    118   // void printRateSummary();
    119  
    120   TComPic* xGetPicFromView( Int viewId, Int iPoc, Bool isDepth );
    121   TComPicYuv* xGetPicYuvFromView( Int iViewIdx, Int iPoc, Bool bDepth, Bool bRecon );
    122  
     109#if H_MV
     110  Void xWriteOutput(std::ostream& bitstreamFile, Int iNumEncoded, std::list<AccessUnit>& accessUnits, UInt layerId); ///< write bitstream to file
     111#else
     112  Void xWriteOutput(std::ostream& bitstreamFile, Int iNumEncoded, const std::list<AccessUnit>& accessUnits); ///< write bitstream to file
     113#endif
     114  void rateStatsAccum(const AccessUnit& au, const std::vector<UInt>& stats);
     115  void printRateSummary();
     116
     117#if H_MV
     118  Void xSetLayerIds               ( TComVPS& vps ); 
     119  Void xSetDimensionIdAndLength   ( TComVPS& vps );
     120  Void xSetDependencies           ( TComVPS& vps );
     121  Void xSetLayerSets              ( TComVPS& vps );
     122  Void xSetProfileTierLevel       ( TComVPS& vps );
     123  Int  xGetMax( std::vector<Int>& vec);
     124#endif
     125#if H_3D
     126  Void xSetVPSExtension2( TComVPS& vps );
     127#endif
     128#if H_3D_DIM_DLT
     129  Void  xAnalyzeInputBaseDepth(UInt layer, UInt uiNumFrames, TComVPS* vps);
     130#endif
    123131public:
    124132  TAppEncTop();
    125133  virtual ~TAppEncTop();
    126 
    127 
     134 
    128135  Void        encode      ();                               ///< main encoding function
    129   TEncTop*    getTEncTop( Int viewId, Bool isDepth );   
    130 
    131   std::vector<TComPic*> getInterViewRefPics( Int viewId, Int poc, Bool isDepth, TComSPS* sps );
    132   TComPic*              getPicFromView     ( Int viewId, Int poc, Bool isDepth ) { return xGetPicFromView( viewId, poc, isDepth ); }
    133   TComPicYuv*           getPicYuvFromView  ( Int iViewIdx, Int iPoc, bool bDepth, Bool bRecon ) { return xGetPicYuvFromView( iViewIdx, iPoc, bDepth, bRecon ); }
    134 
    135 #if HHI_INTERVIEW_SKIP
    136   Void                  getUsedPelsMap   ( Int iViewIdx, Int iPoc, TComPicYuv* pcPicYuvUsedPelsMap );
    137 #endif
    138 #if HHI_VSO
    139   Void                  setupRenModel    ( Int iPoc, Int iEncViewIdx, Int iEncContent, Int iHorOffset );
    140 #endif
    141  
    142 #if QC_MVHEVC_B0046
    143   TComVPS*          getVPS()  { return &m_cVPS; }
    144 #endif
    145 #if VIDYO_VPS_INTEGRATION
    146   TComVPS*          getVPS()  { return &m_cVPS; }
    147   TComVPSAccess*    getVPSAccess  () { return &m_cVPSAccess;   }
    148 #endif
    149  
    150 #if DEPTH_MAP_GENERATION
    151   TComSPSAccess*    getSPSAccess  () { return &m_cSPSAccess;   }
    152   TComAUPicAccess*  getAUPicAccess() { return &m_cAUPicAccess; }
    153 #endif
    154 
    155 #if HHI_VSO
    156   TRenModel* getRenModel    () { return  &m_cRendererModel ; };
    157 #endif
    158 
    159 #if HHI_VSO
    160 private:
    161   Void  xStoreVSORefPicsInBuffer();                                                   ///< read in External Ref pic from file and store in buffer
    162 #endif
    163  
    164 #if RWTH_SDC_DLT_B0036
    165   Void  xAnalyzeInputBaseDepth(Int iViewIdx, UInt uiNumFrames);
    166 #endif
    167 
    168 #if MERL_VSP_C0152
    169 #if MERL_VSP_NBDV_RefVId_Fix_D0166
    170   Void setBWVSPLUT( Int refViewIdx, Int iCodedViewIdx, Int gopId, Bool isDepth);
     136#if H_MV
     137  TEncTop*    getTEncTop( UInt layer ) { return  m_acTEncTopList[layer]; }  ///< return pointer to encoder class for specific layer
    171138#else
    172   Void setBWVSPLUT( Int iCodedViewIdx, Int gopId, Bool isDepth);
    173 #endif
     139  TEncTop&    getTEncTop  ()   { return  m_cTEncTop; }      ///< return encoder class pointer reference
    174140#endif
    175141};// END CLASS DEFINITION TAppEncTop
Note: See TracChangeset for help on using the changeset viewer.