?? gopencoder.h
字號:
ErrVal xSetRplrAndMmco ( SliceHeader& rcSH );
ErrVal xWriteSEI ( ExtBinDataAccessorList& rcOutExtBinDataAccessorList, SliceHeader& rcSH, UInt& ruiBit );
ErrVal xWriteSuffixUnit ( ExtBinDataAccessorList& rcOutExtBinDataAccessorList, SliceHeader& rcSH, UInt& ruiBit );//JVT-S036 lsj
ErrVal xSetMmcoBase ( SliceHeader& rcSH, UInt iNum ); //JVT-S036 lsj
//NonRequired JVT-Q066 (06-04-08){{
ErrVal xWriteNonRequiredSEI( ExtBinDataAccessorList& rcOutExtBinDataAccessorList, SEI::NonRequiredSei* pcNonRequiredSei, UInt& ruiBit );
ErrVal xSetNonRequiredSEI ( SliceHeader* pcSliceHeader, SEI::NonRequiredSei* pcNonRequiredSei);
//ErrVal xWriteNonRequiredSEI( ExtBinDataAccessorList& rcOutExtBinDataAccessorList, UInt& ruiBit );
//NonRequired JVT-Q066 (06-04-08)}}
ErrVal xGetFrameNumList ( SliceHeader& rcSH, UIntList& rcFrameNumList, ListIdx eLstIdx, UInt uiCurrBasePos );
MbDataCtrl* xGetMbDataCtrlL1 ( SliceHeader& rcSH, UInt uiCurrBasePos );
Void xAssignSimplePriorityId ( SliceHeader *pcSliceHeader );
//===== ESS =====
ErrVal xFillPredictionLists_ESS( UInt uiBaseLevel , UInt uiFrame );
ErrVal setDiffPrdRefLists ( RefFrameList& diffPrdRefList,
IntFrame* baseFrame,
IntFrame* enhFrame,
YuvBufferCtrl* pcYuvFullPelBufferCtrl);
ErrVal freeDiffPrdRefLists ( RefFrameList& diffPrdRefList);
UInt getSuffixUnitEnable() {return m_uiSuffixUnitEnable;} //JVT-S036 lsj
UInt getMMCOBaseEnable () const { return m_uiMMCOBaseEnable; } //JVT-S036 lsj
//S051{
Bool xSIPCheck (UInt POC);
int xGetMbDataCtrlL1Pos( const SliceHeader& rcSH, UInt uiCurrBasePos );
//S051}
protected:
//----- instances -----
ExtBinDataAccessor m_cExtBinDataAccessor;
BinData m_cBinData;
DownConvert m_cDownConvert;
//----- references -----
const SequenceParameterSet* m_pcSPS;
const PictureParameterSet* m_pcPPSLP;
const PictureParameterSet* m_pcPPSHP;
const SequenceParameterSet* m_pcSPS_FGS;
const PictureParameterSet* m_pcPPSLP_FGS;
const PictureParameterSet* m_pcPPSHP_FGS;
YuvBufferCtrl* m_pcYuvFullPelBufferCtrl;
YuvBufferCtrl* m_pcYuvHalfPelBufferCtrl;
PocCalculator* m_pcPocCalculator;
H264AVCEncoder* m_pcH264AVCEncoder;
SliceEncoder* m_pcSliceEncoder;
NalUnitEncoder* m_pcNalUnitEncoder;
LoopFilter* m_pcLoopFilter;
QuarterPelFilter* m_pcQuarterPelFilter;
MotionEstimation* m_pcMotionEstimation;
RQFGSEncoder* m_pcRQFGSEncoder;
//----- fixed control parameters ----
Bool m_bTraceEnable; // trace file
UInt m_uiLayerId; // layer id for current layer
UInt m_uiScalableLayerId; // scalable layer id for current layer
UInt m_uiBaseLayerId; // layer if of base layer
UInt m_uiBaseQualityLevel; // quality level of the base layer
UInt m_uiQualityLevelForPrediction; // quality level for prediction
UInt m_uiFrameWidthInMb; // frame width in macroblocks
UInt m_uiFrameHeightInMb; // frame height in macroblocks
UInt m_uiMbNumber; // number of macroblocks in a frame
UInt m_uiMaxGOPSize; // maximum possible GOP size (specified by the level)
UInt m_uiDecompositionStages; // number of decomposition stages
UInt m_uiTemporalResolution; // temporal subsampling in comparison to highest layer
UInt m_uiNotCodedMCTFStages; // number of MCTF stages that are only used for temporal downsampling
UInt m_uiFrameDelay; // maximum possible delay in frames
UInt m_uiMaxNumRefFrames; // maximum number of active reference pictures in a list
UInt m_uiLowPassIntraPeriod; // intra period for lowest temporal resolution
UInt m_uiNumMaxIter; // maximum number of iteration for bi-directional search
UInt m_uiIterSearchRange; // search range for iterative search
UInt m_iMaxDeltaQp; // maximum QP changing
UInt m_uiClosedLoopMode; // closed-loop coding mode (0:open-loop)
Bool m_bH264AVCCompatible; // H.264/AVC compatibility
Bool m_bInterLayerPrediction; // inter-layer prediction
Bool m_bAdaptivePrediction; // adaptive inter-layer prediction
Bool m_bHaarFiltering; // haar-based decomposition
Bool m_bBiPredOnly; // only bi-direktional prediction
Bool m_bForceReOrderingCommands; // always write re-ordering commands (error robustness)
Bool m_bWriteSubSequenceSei; // Subsequence SEI message (H.264/AVC base layer)
Double m_adBaseQpLambdaMotion[MAX_DSTAGES]; // base QP's for mode decision and motion estimation
Double m_dBaseQpLambdaMotionLP;
Double m_dBaseQPResidual; // base residual QP
Double m_dNumFGSLayers; // number of FGS layers
UInt m_uiFilterIdc; // de-blocking filter idc
Int m_iAlphaOffset; // alpha offset for de-blocking filter
Int m_iBetaOffset; // beta offset for de-blocking filter
Bool m_bLoadMotionInfo; // load motion data from file
Bool m_bSaveMotionInfo; // save motion data to file
FILE* m_pMotionInfoFile; // motion data file
UInt m_uiFGSMotionMode; // 0: no FGS motion refinement, 1: only non-key framees, 2: for all frames
//----- variable control parameters -----
Bool m_bInitDone; // initilisation
Bool m_bFirstGOPCoded; // true if first GOP of a sequence has been coded
UInt m_uiGOPSize; // current GOP size
UInt m_uiFrameCounter; // current frame counter
UInt m_uiFrameNum; // current value of syntax element frame_num
UInt m_uiGOPNumber; // number of coded GOP's
Bool m_abIsRef[MAX_DSTAGES]; // state of temporal layer (H.264/AVC base layer)
UIntList m_cLPFrameNumList; // list of frame_num for low-pass frames
//----- frame memories -----
IntFrame* m_apcFrameTemp[NUM_TMP_FRAMES]; // auxiliary frame memories
IntFrame** m_papcFrame; // frame stores
IntFrame** m_papcOrgFrame; // original (highpass) frames
IntFrame** m_papcBQFrame; // base quality frames
IntFrame** m_papcCLRecFrame; // closed-loop rec. (needed when m_uiQualityLevelForPrediction < NumFGS)
IntFrame** m_papcResidual; // frame stores for residual data
IntFrame** m_papcSubband; // reconstructed subband pictures
IntFrame* m_pcLowPassBaseReconstruction; // base reconstruction of last low-pass picture
//TMM_WP
Bool m_bBaseLayerWp;
//TMM_WP
IntFrame* m_pcAnchorFrameOriginal; // original anchor frame
IntFrame* m_pcAnchorFrameReconstructed; // reconstructed anchor frame
IntFrame* m_pcBaseLayerFrame; // base layer frame
IntFrame* m_pcBaseLayerResidual; // base layer residual
IntFrame** m_papcSmoothedFrame; // JVT-R091; smoothed reference frame
//----- control data arrays -----
ControlData* m_pacControlData; // control data arrays
MbDataCtrl* m_pcBaseLayerCtrl; // macroblock data of the base layer pictures
ControlData* m_pacControlDataEL; // control data arrays
MbDataCtrl* m_pcBaseLayerCtrlEL; // macroblock data of the base layer pictures
//----- auxiliary buffers -----
UInt m_uiWriteBufferSize; // size of temporary write buffer
UChar* m_pucWriteBuffer; // write buffer
//----- PSNR & rate -----
Double m_fOutputFrameRate;
UInt m_uiParameterSetBits;
UInt m_auiNumFramesCoded [MAX_DSTAGES+1];
UInt m_auiCurrGOPBitsBase[MAX_DSTAGES+1];
UInt m_auiCurrGOPBitsFGS [MAX_DSTAGES+1];
Double m_adSeqBitsBase [MAX_DSTAGES+1];
Double m_adSeqBitsFGS [MAX_DSTAGES+1];
Double m_adPSNRSumY [MAX_DSTAGES+1];
Double m_adPSNRSumU [MAX_DSTAGES+1];
Double m_adPSNRSumV [MAX_DSTAGES+1];
UInt m_auiCurrGOPBits [ MAX_SCALABLE_LAYERS ];
Double m_adSeqBits [ MAX_SCALABLE_LAYERS ];
//----- FGS -----
UInt m_uiFGSMode;
FILE* m_pFGSFile;
Double m_dFGSCutFactor;
Double m_dFGSBitRateFactor;
Double m_dFGSRoundingOffset;
Int m_iLastFGSError;
UInt m_uiNotYetConsideredBaseLayerBits;
Bool m_bExtendedPriorityId;
//----- ESS -----
ResizeParameters* m_pcResizeParameters;
UInt m_uiBaseWeightZeroBaseBlock;
UInt m_uiBaseWeightZeroBaseCoeff;
UInt m_uiFgsEncStructureFlag;
UInt m_uiNumLayers[2];
IntFrame* m_aapcFGSRecon[2][MAX_FGS_LAYERS+1]; // previous low-pass base layer reconstruction
IntFrame* m_aapcFGSPredFrame;
Double m_dLowPassEnhRef;
UInt m_uiLowPassFgsMcFilter;
//JVT-P031
Bool m_bUseDiscardableUnit;
Double m_dPredFGSCutFactor;
Double m_dPredFGSBitRateFactor;
Int m_iPredLastFGSError;
Double m_dPredFGSRoundingOffset;
// JVT-Q065 EIDR{
Int m_iIDRPeriod;
Bool m_bBLSkipEnable;
// JVT-Q065 EIDR}
//JVT-R057 LA-RDO{
Bool m_bLARDOEnable;
//JVT-R057 LA-RD}
UInt m_uiNonRequiredWrite; //NonRequired JVT-Q066 (06-04-08)
UInt m_uiSuffixUnitEnable; //JVT-S036 lsj
UInt m_uiMMCOBaseEnable; //JVT-S036 lsj
//S051{
UInt m_uiTotalFrame;
UInt* m_auiFrameBits;
UIntList m_cPOCList;
UInt m_uiAnaSIP;
Bool m_bEncSIP;
std::string m_cInSIPFileName;
std::string m_cOutSIPFileName;
//S051}
// JVT-S054 (ADD) ->
Bool m_bIroiSliceDivisionFlag;
UInt m_uiNumSliceMinus1;
UInt* m_puiFirstMbInSlice;
UInt* m_puiLastMbInSlice;
// JVT-S054 (ADD) <-
//JVT-T054{
UInt m_uiLayerCGSSNR;
UInt m_uiQualityLevelCGSSNR;
UInt m_uiBaseLayerCGSSNR;
UInt m_uiBaseQualityLevelCGSSNR;
//JVT-T054}
};
#if defined( WIN32 )
# pragma warning( default: 4251 )
#endif
H264AVC_NAMESPACE_END
#endif // !defined(AFX_GOPENCODER_H__75F41F36_C28D_41F9_AB5E_4C90D66D160C__INCLUDED_)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -