📄 sliceheaderbase.h
字号:
Void setTemporalLevel ( UInt ui ) { m_uiTemporalLevel = ui; }
Void setQualityLevel ( UInt ui ) { m_uiQualityLevel = ui; }
Void setFirstMbInSlice ( UInt ui ) { m_uiFirstMbInSlice = ui; }
Void setSliceType ( SliceType e ) { m_eSliceType = e; }
Void setPicParameterSetId ( UInt ui ) { m_uiPicParameterSetId = ui; }
Void setFrameNum ( UInt ui ) { m_uiFrameNum = ui; }
Void setNumMbsInSlice ( UInt ui ) { m_uiNumMbsInSlice = ui; }
Void setFgsComponentSep ( Bool b ) { m_bFgsComponentSep = b; }
Void setIdrPicId ( UInt ui ) { m_uiIdrPicId = ui; }
Void setPicOrderCntLsb ( UInt ui ) { m_uiPicOrderCntLsb = ui; }
Void setDeltaPicOrderCntBottom ( Int i ) { m_iDeltaPicOrderCntBottom = i; }
Void setDeltaPicOrderCnt ( UInt ui,
Int i ) { m_aiDeltaPicOrderCnt[ui] = i; }
Void setBasePredWeightTableFlag ( Bool b ) { m_bBasePredWeightTableFlag = b; }
Void setLumaLog2WeightDenom ( UInt ui ) { m_uiLumaLog2WeightDenom = ui; }
Void setChromaLog2WeightDenom ( UInt ui ) { m_uiChromaLog2WeightDenom = ui; }
Void setDirectSpatialMvPredFlag ( Bool b ) { m_bDirectSpatialMvPredFlag = b; }
Void setSnapShotId ( Int ui ) { m_uiSnapShotId = ui; } //SEI
Void setKeyPictureFlag ( Bool b ) { m_bKeyPictureFlag = b; }
Void setKeyPicFlagScalable ( Bool b ) { m_bKeyPicFlagScalable = b; } //JVT-S036
Void setBaseLayerId ( UInt ui ) { m_uiBaseLayerId = ui; }
Void setBaseQualityLevel ( UInt ui ) { m_uiBaseQualityLevel = ui; }
Void setAdaptivePredictionFlag ( Bool b ) { m_bAdaptivePredictionFlag = b; }
Void setNumRefIdxActiveOverrideFlag( Bool b ) { m_bNumRefIdxActiveOverrideFlag = b; }
Void setNumRefIdxActive ( ListIdx e,
UInt ui ) { m_auiNumRefIdxActive[e] = ui; }
Void setNumRefIdxUpdate ( UInt ui,
ListIdx e,
UInt p ) { m_aauiNumRefIdxActiveUpdate[ui][e] = p; }
Void setNoOutputOfPriorPicsFlag ( Bool b ) { m_bNoOutputOfPriorPicsFlag = b; }
Void setAdaptiveRefPicBufferingFlag( Bool b ) { m_bAdaptiveRefPicBufferingModeFlag = b; }
Void setAdaptiveRefPicMarkingFlag (Bool b ) { m_bAdaptiveRefPicMarkingModeFlag = b; }//JVT-S036
Void setCabacInitIdc ( UInt ui ) { m_uiCabacInitIdc = ui; }
Void setSliceQpDelta ( Int i ) { m_iSliceQpDelta = i; }
Void setSliceHeaderQp ( Int i ) { setSliceQpDelta( i - m_rcPPS.getPicInitQp() ); }
#if JMVM_ONLY // JVT-W081
Void setGlobalDisparityL0 ( UInt uiIdx, Short sHor, Short sVer )
{ m_iGlobalDisparityL0[uiIdx][0]=sHor;
m_iGlobalDisparityL0[uiIdx][1]=sVer; }
Void setGlobalDisparityL1 ( UInt uiIdx, Short sHor, Short sVer )
{ m_iGlobalDisparityL1[uiIdx][0]=sHor;
m_iGlobalDisparityL1[uiIdx][1]=sVer; }
Void setGlobalDisparityVIdL0 ( UInt uiIdx, Int iVId ) { m_iGlobalDisparityRefVIdL0[uiIdx]=iVId; }
Void setGlobalDisparityVIdL1 ( UInt uiIdx, Int iVId ) { m_iGlobalDisparityRefVIdL1[uiIdx]=iVId; }
// JVT-W081
//JVT-Z021
Void setMbMotionModeIdx ( UInt uiList, UInt uiModeIdx ) { m_cMbMotionRd[uiList].m_uiModeIdx = uiModeIdx; }
Void setMbMotionModeNum ( UInt uiList, Int iModeNumber ) { m_cMbMotionRd[uiList].m_iModeNumber = iModeNumber; }
Void setMbMotionInfo ( UInt uiList, UInt uiIdx, MBMotion cMbMotionInfo )
{
m_cMbMotionRd[uiList].m_cMbMotionInfo[uiIdx].m_iViewMode = cMbMotionInfo.m_iViewMode;
m_cMbMotionRd[uiList].m_cMbMotionInfo[uiIdx].m_uiFwdBwd = cMbMotionInfo.m_uiFwdBwd;
memcpy(&m_cMbMotionRd[uiList].m_cMbMotionInfo[uiIdx].m_iBlkMode, cMbMotionInfo.m_iBlkMode,4*sizeof(Int));
memcpy(&m_cMbMotionRd[uiList].m_cMbMotionInfo[uiIdx].m_iRefMultiViewL0, cMbMotionInfo.m_iRefMultiViewL0,4*sizeof(Int));
memcpy(&m_cMbMotionRd[uiList].m_cMbMotionInfo[uiIdx].m_iRefMultiViewL1, cMbMotionInfo.m_iRefMultiViewL1,4*sizeof(Int));
memcpy(&m_cMbMotionRd[uiList].m_cMbMotionInfo[uiIdx].m_iMvL0Hor, cMbMotionInfo.m_iMvL0Hor,16*sizeof(Int));
memcpy(&m_cMbMotionRd[uiList].m_cMbMotionInfo[uiIdx].m_iMvL0Ver, cMbMotionInfo.m_iMvL0Ver,16*sizeof(Int));
memcpy(&m_cMbMotionRd[uiList].m_cMbMotionInfo[uiIdx].m_iMvL1Hor, cMbMotionInfo.m_iMvL1Hor,16*sizeof(Int));
memcpy(&m_cMbMotionRd[uiList].m_cMbMotionInfo[uiIdx].m_iMvL1Ver, cMbMotionInfo.m_iMvL1Ver,16*sizeof(Int));
}
#endif //JVT-Z021
Void setAnchorPicFlag (Bool anchor_pic_flag) { m_anchor_pic_flag = anchor_pic_flag; }
Void setSvcMvcFlag (Bool svc_mvc_flag) { m_svc_mvc_flag = svc_mvc_flag; }
Void setAVCFlag (Bool bAVCFlag) { m_bAVCFlag = bAVCFlag; }
Void setViewId (UInt view_id) { m_view_id = view_id; }
Void setIDRFlag (Bool bIDRFlag) { m_bIDRFlag = bIDRFlag; }
Void setInterViewFalg (Bool inter_view_flag) { m_inter_view_flag = inter_view_flag; } // JVT-W056 Samsung
Void setReservedZeroBits (UInt reserved_zero_bits) { m_reserved_zero_bits=reserved_zero_bits;}
// JVT-W035
//{{Variable Lengh NAL unit header data with priority and dead substream flag
//France Telecom R&D- (nathalie.cammas@francetelecom.com)
Void setSimplePriorityId (UInt ui) { m_uiSimplePriorityId = ui;}
Void setDiscardableFlag (Bool b) { m_bDiscardableFlag = b;}
Void setReservedZeroBit (Bool b) { m_bReservedZeroBit = b;} //JVT-S036
//}}Variable Lengh NAL unit header data with priority and dead substream flag
Void setBaseLayerUsesConstrainedIntraPred( Bool b ) { m_bBaseLayerUsesConstrainedIntraPred = b; }
Void setSliceGroupChangeCycle(UInt uiSliceGroupChangeCycle){m_uiSliceGroupChangeCycle = uiSliceGroupChangeCycle;};
ErrVal FMOInit();
// TMM_EC {{
Bool getTrueSlice() const { return m_bTrueSlice;}
Void setTrueSlice( Bool bTrueSlice) { m_bTrueSlice = bTrueSlice;}
ERROR_CONCEAL m_eErrorConceal;
Bool m_bTrueSlice;
// TMM_EC }}
Void setRedundantPicCnt (UInt ui ) { m_uiRedundantPicCnt = ui; } // JVT-Q054 Red. Picture
//JVT-T054{
Void setLayerCGSSNR(UInt ui) { m_uiLayerCGSSNR = ui;}
UInt getLayerCGSSNR() { return m_uiLayerCGSSNR;}
Void setQualityLevelCGSSNR(UInt ui) { m_uiQualityLevelCGSSNR = ui;}
UInt getQualityLevelCGSSNR() { return m_uiQualityLevelCGSSNR;}
Void setBaseLayerCGSSNR(UInt ui) { m_uiBaseLayerCGSSNR = ui;}
Void setBaseQualityLevelCGSSNR(UInt ui) { m_uiBaseQualityLevelCGSSNR = ui;}
//JVT-T054}
Void setIsEncodingFlag(Bool b) { m_bIsEncodingFlag = b;}
Bool getIsEncodingFlag() { return m_bIsEncodingFlag;}
#if JMVM_ONLY // JVT-U052
Void setIcEnable ( UInt ui ) { m_uiIcEnable = ui; }
Void setMotionSkip ( UInt ui ) { m_bMotionSkip = (ui!=0); }
#endif
Void setInterViewRef ( Bool b) { m_bInterViewRef=b;} //
Bool getInterViewRef ( ) { return m_bInterViewRef;}
protected:
ErrVal xReadH264AVCCompatible ( HeaderSymbolReadIf* pcReadIf );
ErrVal xReadScalable ( HeaderSymbolReadIf* pcReadIf );
ErrVal xWriteScalable ( HeaderSymbolWriteIf* pcWriteIf ) const;
ErrVal xWriteH264AVCCompatible ( HeaderSymbolWriteIf* pcWriteIf ) const;
ErrVal xReadMVCCompatible ( HeaderSymbolReadIf* pcReadIf );
protected:
const PictureParameterSet& m_rcPPS;
const SequenceParameterSet& m_rcSPS;
Bool m_bInterViewRef; // may be removed later
Bool m_eAVCCompatible; //JVT-S036 lsj
NalRefIdc m_eNalRefIdc;
NalUnitType m_eNalUnitType;
UInt m_uiLayerId;
UInt m_uiTemporalLevel;
UInt m_uiQualityLevel;
UInt m_uiFirstMbInSlice;
SliceType m_eSliceType;
UInt m_uiPicParameterSetId;
UInt m_uiFrameNum;
UInt m_uiNumMbsInSlice;
Bool m_bFgsComponentSep;
UInt m_uiIdrPicId;
UInt m_uiPicOrderCntLsb;
Int m_iDeltaPicOrderCntBottom;
Int m_aiDeltaPicOrderCnt[2];
Bool m_bBasePredWeightTableFlag;
UInt m_uiLumaLog2WeightDenom;
UInt m_uiChromaLog2WeightDenom;
PredWeightTable m_acPredWeightTable[2];
Bool m_bDirectSpatialMvPredFlag;
Int m_uiSnapShotId; //SEI
Bool m_bKeyPictureFlag;
Bool m_bKeyPicFlagScalable; //JVT-S036
UInt m_uiBaseLayerId;
UInt m_uiBaseQualityLevel;
UInt m_uiBaseFragmentOrder;
Bool m_bAdaptivePredictionFlag;
Bool m_bNumRefIdxActiveOverrideFlag;
UInt m_auiNumRefIdxActive[2];
RplrBuffer m_acRplrBuffer [2];
UInt m_aauiNumRefIdxActiveUpdate[MAX_TEMP_LEVELS][2];
Bool m_bNoOutputOfPriorPicsFlag;
Bool m_bAdaptiveRefPicBufferingModeFlag;
//JVT-S036 start
Bool m_bAdaptiveRefPicMarkingModeFlag;
UInt m_bMemoryManagementControlOperation;
UInt m_bDifferenceOfPicNumsMinus1;
UInt m_bLongTermPicNum;
MmcoBuffer m_cMmmcoBaseBuffer;
//JVT-S036 end
MmcoBuffer m_cMmmcoBuffer;
UInt m_uiCabacInitIdc;
Int m_iSliceQpDelta;
DeblockingFilterParameter m_cDeblockingFilterParameter;
UInt m_uiSliceGroupChangeCycle;
FMO* m_pcFMO;
Bool m_bBaseLayerUsesConstrainedIntraPred;
#if JMVM_ONLY // JVT-W081
Int m_iGlobalDisparityL0[100][2];
Int m_iGlobalDisparityL1[100][2];
UInt m_iGlobalDisparityRefVIdL0[100];
UInt m_iGlobalDisparityRefVIdL1[100];
// JVT-W081
class MBMotion_RD m_cMbMotionRd[2]; //JVT-Z021
#endif //JMVM_ONLY
//{{Variable Lengh NAL unit header data with priority and dead substream flag
//France Telecom R&D- (nathalie.cammas@francetelecom.com)
UInt m_uiSimplePriorityId;
Bool m_bDiscardableFlag;
Bool m_bReservedZeroBit; //JVT-S036
//}}Variable Lengh NAL unit header data with priority and dead substream flag
Bool m_svc_mvc_flag; // u(1)
Bool m_bAVCFlag; // no bit for this temporal flag
Bool m_anchor_pic_flag; // u(1)
UInt m_view_id; // u(10)
Bool m_bIDRFlag;
Bool m_inter_view_flag; //u(1) JVT-W056 Samsung
UInt m_reserved_zero_bits; // u(1)
//JVT-P031
Bool m_bFragmentedFlag;
UInt m_uiFragmentOrder;
Bool m_bLastFragmentFlag;
//~JVT-P031
UInt m_uiRedundantPicCnt; // JVT-Q054 Red. Picture
//JVT-T054{
UInt m_uiLayerCGSSNR;
UInt m_uiQualityLevelCGSSNR;
UInt m_uiBaseLayerCGSSNR;
UInt m_uiBaseQualityLevelCGSSNR;
//JVT-T054}
#if JMVM_ONLY // JVT-U052
UInt m_uiIcEnable;
#endif
// TMM_ESS {
public:
Int getLeftOffset () const { return m_iScaledBaseLeftOffset; }
Int getRightOffset () const { return m_iScaledBaseRightOffset; }
Int getTopOffset () const { return m_iScaledBaseTopOffset; }
Int getBottomOffset () const { return m_iScaledBaseBottomOffset; }
Int getBaseChromaPhaseX () const { return (Int)m_uiBaseChromaPhaseXPlus1-1; }
Int getBaseChromaPhaseY () const { return (Int)m_uiBaseChromaPhaseYPlus1-1; }
Void setLeftOffset ( Int i ) { m_iScaledBaseLeftOffset = i; }
Void setRightOffset ( Int i ) { m_iScaledBaseRightOffset = i; }
Void setTopOffset ( Int i ) { m_iScaledBaseTopOffset = i; }
Void setBottomOffset ( Int i ) { m_iScaledBaseBottomOffset = i; }
Void setBaseChromaPhaseX ( Int i) { m_uiBaseChromaPhaseXPlus1 = i+1; }
Void setBaseChromaPhaseY ( Int i) { m_uiBaseChromaPhaseYPlus1 = i+1; }
Void Print ( );
Bool m_bIsEncodingFlag; // ying to fix Spatial Direct
protected:
UInt m_uiBaseChromaPhaseXPlus1;
UInt m_uiBaseChromaPhaseYPlus1;
Int m_iScaledBaseLeftOffset;
Int m_iScaledBaseTopOffset;
Int m_iScaledBaseRightOffset;
Int m_iScaledBaseBottomOffset;
// TMM_ESS }
Bool m_bArFgsUsageFlag;
Bool m_bFgsEntropyOrderFlag;
UInt m_uiLowPassFgsMcFilter;
UInt m_uiBaseWeightZeroBaseBlock;
UInt m_uiBaseWeightZeroBaseCoeff;
Bool m_bMotionSkip;
};
#define IS_KEY_PICTURE(pcSH) ( (pcSH)->getKeyPictureFlag() )
#if defined( WIN32 )
# pragma warning( default: 4251 )
# pragma warning( default: 4275 )
#endif
typedef SliceHeaderBase::PredWeight PW;
H264AVC_NAMESPACE_END
#endif // !defined(AFX_SLICEHEADERBASE_H__2CC1FD0F_CACB_4799_84BE_FC5FC9B9C245__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -