⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 picencoder.h

📁 JMVM MPEG MVC/3DAV 测试平台 国际通用标准
💻 H
📖 第 1 页 / 共 2 页
字号:

  ErrVal  xInitSliceHeader          ( SliceHeader*&               rpcSliceHeader,
                                      FrameSpec&                  rcFrameSpec,
                                      Double&                     dLambda, 
                                      Bool                        fakeHeader=false );

  UIntList                      m_cLPFrameNumList;                    
//  }}
  ErrVal          xInitPredWeights              ( SliceHeader&                rcSliceHeader );

  //===== create and delete memory =====
  ErrVal          xCreateData                   ();
  ErrVal          xDeleteData                   ();

  //===== packet management =====
  ErrVal          xInitExtBinDataAccessor       ( ExtBinDataAccessor&         rcExtBinDataAccessor );
  ErrVal          xAppendNewExtBinDataAccessor  ( ExtBinDataAccessorList&     rcExtBinDataAccessorList,
                                                  ExtBinDataAccessor*         pcExtBinDataAccessor );

  //===== encoding =====
  ErrVal          xStartPicture                 ( RecPicBufUnit&              rcRecPicBufUnit,
                                                  SliceHeader&                rcSliceHeader,
                                                  RefFrameList&               rcList0,
                                                  RefFrameList&               rcList1 );
  ErrVal          xEncodePicture                ( ExtBinDataAccessorList&     rcExtBinDataAccessorList,
                                                  RecPicBufUnit&              rcRecPicBufUnit,
                                                  SliceHeader&                rcSliceHeader,
                                                  Double                      dLambda,
                                                  UInt&                       ruiBits );
  ErrVal          xFinishPicture                ( RecPicBufUnit&              rcRecPicBufUnit,
                                                  SliceHeader&                rcSliceHeader,
                                                  RefFrameList&               rcList0,
                                                  RefFrameList&               rcList1,
                                                  UInt                        uiBits );
  ErrVal          xGetPSNR                      ( RecPicBufUnit&              rcRecPicBufUnit,
                                                  Double*                     adPSNR );

#if JMVM_ONLY  // JVT-W081
ErrVal xGlobalDisparityEstimationMotionSkip (SliceHeader& rcSliceHeader,
											 RecPicBufUnit&          rcRecPicBufUnit,
											 RefFrameList& rcList0,
											 RefFrameList& rcList1,
											 GDV* gdvL0,
											 GDV* gdvL1	 );
ErrVal xFindGlobalDisparity (SliceHeader&            rcSliceHeader,
							 RecPicBufUnit&          rcRecPicBufUnit,
							 GDV* gdvL0, GDV* gdvL1,	
							 RefFrameList& rcList0,
							 RefFrameList& rcList1);

ErrVal xSetGlobalDisparity (SliceHeader& rcSliceHeader, GDV* gdvL0, GDV* gdvL1 );

ErrVal xExtractDisparity (SliceHeader&            rcSliceHeader,
						  RecPicBufUnit&          rcRecPicBufUnit,
						  RefFrameList& rcList,
						  GDV* gdv,
						  UInt uiListIdx  );
#endif  // JVT-W081

// ying GOP stucture support, simplify the configuration files {{
  ErrVal          xInitFrameSpec               ();
  ErrVal          xGetNextFrameSpec            ();
  ErrVal          xUpdateFrameSepNextGOP       ();
  ErrVal          xUpdateFrameSepNextGOPFinish ();
  ErrVal          xInitFrameSpecSpecial        ();
  ErrVal          xInitFrameSpecHierarchical   ();
  ErrVal          xGetNextFrameSpecSpecial     ();
//  }}

ErrVal xSetRefPictures(SliceHeader&                rcSliceHeader,
                       RefFrameList&               rcList0,
                       RefFrameList&               rcList1 );

private:
  Bool                        m_bInit;
  Bool                        m_bInitParameterSets;

  //===== members =====
  BinData                     m_cBinData;
  ExtBinDataAccessor          m_cExtBinDataAccessor;
  FrameSpec                   m_cFrameSpecification;
//  {{
  FrameSpec                   m_acFrameSpecification[34];
  UInt                        m_uiAnchorFrameNumber ;
  UInt                        m_uiGOPSize;
  UInt                        m_uiTotalFrames;
  UInt                        m_uiMaxTL;
  UInt                        m_uiFrameDelay;
  UInt                        m_uiMaxNumRefFrames;
  UInt                        m_uiMaxFrameNum;
  UInt                        m_uiAnchorNumFwdViewRef;
  UInt                        m_uiAnchorNumBwdViewRef;
  UInt                        m_uiNonAncNumFwdViewRef;
  UInt                        m_uiNonAncNumBwdViewRef;

  Bool                        m_bInterPridPicsFirst; //JVT-V043 enc

  UInt                        m_uiMaxFrameNumList0;
  UInt                        m_uiMaxFrameNumList1;
  UInt                        m_uiProcessingPocInGOP;
  Bool                        m_bSpecialGOP;
  UInt                        m_uiGOPSizeReal;
  UInt                        m_uiMinTempLevelLastGOP;
  SpsMvcExtension            *m_pcSPSMVCExt;
//  }}
  SequenceStructure*          m_pcSequenceStructure;
  InputPicBuffer*             m_pcInputPicBuffer;
  SequenceParameterSet*       m_pcSPS;
  SequenceParameterSet*       m_pcSPSBase; //
  PictureParameterSet*        m_pcPPSBase;
  PictureParameterSet*        m_pcPPS;
  
  RecPicBuffer*               m_pcRecPicBuffer;

  //===== references =====
  CodingParameter*            m_pcCodingParameter;
  ControlMngIf*               m_pcControlMng;
  SliceEncoder*               m_pcSliceEncoder;
  LoopFilter*                 m_pcLoopFilter;
  PocCalculator*              m_pcPocCalculator;
  NalUnitEncoder*             m_pcNalUnitEncoder;
  YuvBufferCtrl*              m_pcYuvBufferCtrlFullPel;
  YuvBufferCtrl*              m_pcYuvBufferCtrlHalfPel;
  QuarterPelFilter*           m_pcQuarterPelFilter;
  MotionEstimation*           m_pcMotionEstimation;
	PicEncoder*									m_picEncoder; //JVT-W056

  //===== fixed coding parameters =====
  UInt                        m_uiFrameWidthInMb;
  UInt                        m_uiFrameHeightInMb;
  UInt                        m_uiMbNumber;

  //===== variable parameters =====
  UInt                        m_uiFrameNum;
  UInt                        m_uiIdrPicId;
  UInt                        m_uiWrittenBytes;
  UInt                        m_uiCodedFrames;
  Double                      m_dSumYPSNR;
  Double                      m_dSumUPSNR;
  Double                      m_dSumVPSNR;
//JVT-W080
	UInt                        m_uiPdsEnable;
	UInt                        m_uiPdsBlockSize;
	UInt**                      m_ppuiPdsInitialDelayMinus2L0;
	UInt**                      m_ppuiPdsInitialDelayMinus2L1;
//~JVT-W080

  //===== auxiliary buffers =====
  UInt                        m_uiWriteBufferSize;                  // size of temporary write buffer
  UChar*                      m_pucWriteBuffer;                     // write buffer

  Bool                        m_bTraceEnable;
//SEI LSJ{
  Double					  m_dMVCFinalBitrate  [MAX_DSTAGES_MVC];
  Double					  m_dMVCFinalFramerate[MAX_DSTAGES_MVC];
  Double                      m_adMVCSeqBits         [MAX_DSTAGES_MVC+1];
  UInt                        m_auiMVCNumFramesCoded [MAX_DSTAGES_MVC+1];
  Double					  m_adMVCPicBits	  [MAX_FRAMERATE];
  Double					  m_adMaxBitRate;
  UInt						  uiNumPics;
//SEI LSJ}

  //===== multiview stuff

  // The m_vFramePeriod controls period insertion of V-frames.  A V-frame
  // is a frame which may do prediction from other sequences at the same
  // time index, but does not do any temporal prediciton.  This class
  // does not actually implement a V-frame (that is done by RecPicBuffer).
  // Instead, this class just keeps track of the V-frame period and when
  // V-frames should happen using the TimeForVFrameP member function.
  unsigned int  m_vFramePeriod;
  unsigned int	m_CurrentViewId;
  
  Bool          m_bAVCFlag;
  Bool m_SvcMvcFlag;
  



public:
  MultiviewReferencePictureManager m_MultiviewRefPicManager;

};


H264AVC_NAMESPACE_END


#endif // _PIC_ENCODER_INCLUDED_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -