Changeset 608 in 3DVCSoftware for trunk/source/App/TAppEncoder/TAppEncTop.h
- Timestamp:
- 1 Sep 2013, 22:47:26 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/App/TAppEncoder/TAppEncTop.h
r443 r608 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 2, ITU/ISO/IEC6 * Copyright (c) 2010-2013, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * … … 46 46 #include "TLibCommon/AccessUnit.h" 47 47 #include "TAppEncCfg.h" 48 #include "TLibCommon/TComDepthMapGenerator.h" 49 #if HHI_VSO || HHI_INTERVIEW_SKIP 48 #if H_3D 50 49 #include "../../Lib/TLibRenderer/TRenTop.h" 51 50 #endif … … 63 62 private: 64 63 // class interface 65 std::vector<TEncTop*> m_acTEncTopList ; 66 std::vector<TEncTop*> m_acTEnc DepthTopList ;64 #if H_MV 65 std::vector<TEncTop*> m_acTEncTopList ; ///< encoder class per layer 67 66 std::vector<TVideoIOYuv*> m_acTVideoIOYuvInputFileList; ///< input YUV file 68 std::vector<TVideoIOYuv*> m_acTVideoIOYuvDepthInputFileList;69 67 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 71 70 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 74 72 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 87 83 #endif 88 84 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 94 88 TRenTop m_cRendererTop; 95 89 TRenModel m_cRendererModel; 96 90 #endif 97 98 #if HHI_INTERVIEW_SKIP99 TRenTop m_cUsedPelsRenderer; ///< renderer for used pels map100 #endif101 102 91 protected: 103 92 // initialization … … 108 97 109 98 /// 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 112 105 /// delete allocated buffers 113 106 Void xDeleteBuffer (); 114 107 115 108 // 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 123 131 public: 124 132 TAppEncTop(); 125 133 virtual ~TAppEncTop(); 126 127 134 128 135 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 171 138 #else 172 Void setBWVSPLUT( Int iCodedViewIdx, Int gopId, Bool isDepth); 173 #endif 139 TEncTop& getTEncTop () { return m_cTEncTop; } ///< return encoder class pointer reference 174 140 #endif 175 141 };// END CLASS DEFINITION TAppEncTop
Note: See TracChangeset for help on using the changeset viewer.