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

📄 mode.hpp

📁 完整的RTP RTSP代码库
💻 HPP
📖 第 1 页 / 共 2 页
字号:
/*************************************************************************This software module was originally developed by 	Ming-Chieh Lee (mingcl@microsoft.com), Microsoft Corporation	Wei-ge Chen (wchen@microsoft.com), Microsoft Corporation	Bruce Lin (blin@microsoft.com), Microsoft Corporation	Chuang Gu (chuanggu@microsoft.com), Microsoft Corporation	Simon Winder (swinder@microsoft.com), Microsoft Corporation	(date: March, 1996)and edited by        Wei Wu (weiwu@stallion.risc.rockwell.com) Rockwell Science Centerand also edited by	Yoshihiro Kikuchi (TOSHIBA CORPORATION)	Takeshi Nagai (TOSHIBA CORPORATION)	Toshiaki Watanabe (TOSHIBA CORPORATION)	Noboru Yamaguchi (TOSHIBA CORPORATION)	Marc Mongenet (Marc.Mongenet@epfl.ch), Swiss Federal Institute of Technology, Lausanne (EPFL)    and also edited by    Mathias Wien (wien@ient.rwth-aachen.de) RWTH Aachen / Robert BOSCH GmbHand also edited by	Yoshinori Suzuki (Hitachi, Ltd.)and also edited by	Hideaki Kimata (NTT)and also edited by    Fujitsu Laboratories Ltd. (contact: Eishi Morimatsu)and also edited by 	Takefumi Nagumo (nagumo@av.crl.sony.co.jp) SONY corporation    Sehoon Son (shson@unitel.co.kr) Samsung AITin the course of development of the MPEG-4 Video (ISO/IEC 14496-2). This software module is an implementation of a part of one or more MPEG-4 Video tools as specified by the MPEG-4 Video. ISO/IEC gives users of the MPEG-4 Video free license to this software module or modifications thereof for use in hardware or software products claiming conformance to the MPEG-4 Video. Those intending to use this software module in hardware or software products are advised that its use may infringe existing patents. The original developer of this software module and his/her company, the subsequent editors and their companies, and ISO/IEC have no liability for use of this software module or modifications thereof in an implementation. Copyright is not released for non MPEG-4 Video conforming products. Microsoft retains full right to use the code for his/her own purpose, assign or donate the code to a third party and to inhibit third parties from using the code for non <MPEG standard> conforming products. This copyright notice must be included in all copies or derivative works. Copyright (c) 1996, 1997.Module Name:	mode.hAbstract:	basic coding modes for VO, VOL, VOP, MB	and RDRevision History:	Sept. 29, 1997: add Video Packet, data partition, RVLC by Toshiba	Nov.  27, 1997: add horizontal & vertical sampling factor by Takefumi Nagumo 									(nagumo@av.crl.sony.co.jp) SONY	Dec.12 1997 : add interlace tools by NextLevel Systems (General Instrucment), 				  X. Chen (xchen@nlvl.com) and B. Eifrig (beifrig@nlvl.com)	May. 9 1998 : add boundary by Hyundai Electronics 				  Cheol-Soo Park (cspark@super5.hyundai.co.kr)	May. 9 1998 : add field based MC padding by Hyundai Electronics 				  Cheol-Soo Park (cspark@super5.hyundai.co.kr)	Jun.15 1998 : add Complexity Estimation syntax support				  Marc Mongenet (Marc.Mongenet@epfl.ch) - EPFL    Feb.16 1999 : add Quarter Sample                   Mathias Wien (wien@ient.rwth-aachen.de) 	Feb.23 1999 : GMC added by Yoshinori Suzuki (Hitachi, Ltd.) 	May 9, 1999 : tm5 rate control by DemoGraFX, duhoff@mediaone.net, (added by mwi)	Aug.24, 1999 : NEWPRED added by Hideaki Kimata (NTT) 	Sep.06	1999 : RRV added by Eishi Morimatsu (Fujitsu Laboratories Ltd.) 	Feb.01	2000 : Added bBGComposition flag by Takefumi Nagumo (Sony Corporation)	Mar.22  2000 : Added bResyncMarkerDisable by Takefumi Nagumo (Sony Corporation)*************************************************************************/#ifndef __MODE_H_#define __MODE_H_class CMBMode;class CDirectModeData;class CStatistics;typedef enum {BASE_LAYER, ENHN_LAYER} VOLtype; // will be generlized latertypedef enum {INTRA, INTRAQ, INTER, INTERQ} DCTMode; // define pixel componenttypedef enum {DIRECT, INTERPOLATE, BACKWARD, FORWARD} MBType; // define MB typetypedef enum {UNKNOWN_DIR, HORIZONTAL, VERTICAL, DIAGONAL} Direction;	typedef enum {ALL_TRANSP, ALL_OPAQUE, INTRA_CAE, INTER_CAE_MVDZ, INTER_CAE_MVDNZ, MVDZ_NOUPDT, MVDNZ_NOUPDT, UNKNOWN} ShapeMode;//OBSS_SAIT_991015typedef enum {INTRA_NOT_CODED, INTRA_CODED, INTER_NOT_CODED, INTER_CODED, UNDEFINED} ShapeSSMode; //for OBSS shape modetypedef enum {V_SCANNING, H_SCANNING} SIDirection;	//for OBSS shape coding//~OBSS_SAIT_991015typedef enum {UNTRANSMITTED, TRANSMITTED, UPDATED, FINISHED} MBSptMode; // MB sprite modetypedef enum {ALPHA_CODED, ALPHA_SKIPPED, ALPHA_ALL255} CODAlpha;typedef Direction IntraPredDirection;								//for readabilitytypedef Direction CAEScanDirection;								//for readability#ifndef NOT_IN_TABLE#define NOT_IN_TABLE -1#endif#ifndef	TCOEF_ESCAPE#define TCOEF_ESCAPE 102							// see table.13/H.263#endif// Added for error resilience mode By Toshiba(1998-1-16:DP+RVLC)#define TCOEF_RVLC_ESCAPE 169	  	// see table.//	End Toshiba(1998-1-16:DP+RVLC)// VM 5.1 Rate Control#define RC_MAX_SLIDING_WINDOW	20#define RC_PAST_PERCENT  		0.05#define RC_SAFETY_MARGIN 		0.10#define RC_SKIP_MARGIN 			80#define RC_MAX_Q_INCREASE		0.25#define RC_MAX_QUANT 			31#define RC_MIN_QUANT 			1#define MAX_MAC 10// RRV insertiontypedef struct {//for parameter input, see Documents	Int		iOnOff;	Int		iOnOffForI;	Float	fC1;	Float	fC2;	Float	fFR1;	Float	fFR2;	Int		iQP1;	Int		iQP2;	Int		iCycle;//for parameter calculate,decide	Int		iRRVOnOff;		//1==ON,0==OFF	Int		iQcount;		//Quantizer counter	Int		iQave;			//average of Q	Int		iPrevOnOff;		//OnOff of previous VOP	Int		iNumBits;		//number of previous bits    Int		iCutoffThr;		// for encoder} RRVmodeStr;// ~RRVtypedef struct MVInfo					 // for motion vector coding{	UInt uiRange;						 // search range	UInt uiFCode;						 // f-code 	UInt uiScaleFactor;					 // scale factor} MVInfo;#define PVOP_MV_PER_REF_PER_MB  9#define BVOP_MV_PER_REF_PER_MB  5typedef struct VOLMode					 // VideoObjectLayer Mode{	UInt		uiVerID;		 // Version identification // GMC	// type of VOL	VOLtype		volType;				 // what type of VOL	// NBIT: nbit information	Bool bNot8Bit;	UInt uiQuantPrecision;	UInt nBits;	// time info	Int			iClockRate;				 //rate of clock used to count vops in Hz	Double	    dFrameHz;				 // Frame frequency (Hz), (floating point in case of 29.97 Hz)	// shape info	AlphaUsage	fAUsage;				 //binary or gray level alpha; or no alpha (rectangle VO)  Int     iAlphaShapeExtension;  Int     iAuxCompCount;	Bool		bShapeOnly;				 // code only the shape	Int			iBinaryAlphaTH;			 //binary shaperounding parameter	Int			iBinaryAlphaRR;			 //binary shaperounding refresh rate: for Added error resilient mode by Toshiba(1997-11-14)	Int			iGrayToBinaryTH;	Bool		bNoCrChange;			 //nobinary shape size conversion		// motion info	Bool	bOriginalForME;			// flag indicating whether use the original previous VOP for ME	UInt	uiWarpingAccuracy;		// indicates the quantization accuracy of motion vector for sprite warping	Bool	bAdvPredDisable;		// No OBMC, (8x8 in the future).  Bool    bQuarterSample;         // Quarter sample	Bool	bRoundingControlDisable;	Int	iInitialRoundingType;// NEWPRED	Bool	bNewpredEnable;	int 	iRequestedBackwardMessegeType;	Bool	bNewpredSegmentType;	char	*cNewpredRefName;	char	*cNewpredSlicePoint;// ~NEWPRED//RESYNC_MARKER_FIX	Bool	bResyncMarkerDisable;		// resync marker Disable//~RESYNC_MARKER_FIX	Bool	bVPBitTh;				// Bit threshold for video packet spacing control	Bool	bDataPartitioning;		// data partitioning	Bool	bReversibleVlc;			// reversible VLC	Bool    bCodeSequenceHead;	UInt    uiProfileAndLevel;	// texture coding info	Quantizer fQuantizer;			// either H.263 or MPEG	Bool bLoadIntraMatrix;			// flag indicating whether to load intra Q-matrix	Int rgiIntraQuantizerMatrix [BLOCK_SQUARE_SIZE]; // Intra Q-Matrix	Bool bLoadInterMatrix;			// flag indicating whether to load inter Q-matrix	Int rgiInterQuantizerMatrix [BLOCK_SQUARE_SIZE]; // Inter Q-Matrix	Bool bLoadIntraMatrixAlpha;			// flag indicating whether to load intra Q-matrix	Int  rgiIntraQuantizerMatrixAlpha[MAX_MAC][BLOCK_SQUARE_SIZE];	Bool bLoadInterMatrixAlpha;			// flag indicating whether to load inter Q-matrix	Int  rgiInterQuantizerMatrixAlpha[MAX_MAC][BLOCK_SQUARE_SIZE];	Bool bDeblockFilterDisable;		// apply deblocking filter or not.	Bool bNoGrayQuantUpdate;		// decouple gray quant and dquant	EntropyCodeType fEntropyType;	// Entropy code type	// HHI Klaas Schueuer sadct flag	Bool	bSadctDisable;	// end HHI 	// START: Complexity Estimation syntax support - Marc Mongenet (EPFL) - 15 Jun 1998	Bool bComplexityEstimationDisable;	Int iEstimationMethod;	Bool bShapeComplexityEstimationDisable;	Bool bOpaque;	Bool bTransparent;	Bool bIntraCAE;	Bool bInterCAE;	Bool bNoUpdate;	Bool bUpsampling;	Bool bTextureComplexityEstimationSet1Disable;	Bool bIntraBlocks;	Bool bInterBlocks;	Bool bInter4vBlocks;	Bool bNotCodedBlocks;	Bool bTextureComplexityEstimationSet2Disable;	Bool bDCTCoefs;	Bool bDCTLines;	Bool bVLCSymbols;	Bool bVLCBits;	Bool bMotionCompensationComplexityDisable;	Bool bAPM;	Bool bNPM;	Bool bInterpolateMCQ;	Bool bForwBackMCQ;	Bool bHalfpel2;	Bool bHalfpel4;	// START: Complexity Estimation syntax support - Update version 2 - Massimo Ravasi (EPFL) - 5 Nov 1999	Bool bVersion2ComplexityEstimationDisable;	Bool bSadct;	Bool bQuarterpel;	// END: Complexity Estimation syntax support - Update version 2	// START: Vol Control Parameters	UInt uiVolControlParameters;	UInt uiChromaFormat;	UInt uiLowDelay;	UInt uiVBVParams;	UInt uiBitRate;	UInt uiVbvBufferSize;	UInt uiVbvBufferOccupany;	// END: Vol Control Parameters	// frame rate info	Int iTemporalRate;				//no. of input frames between two encoded VOP's assuming 30Hz input	Int iPbetweenI;	Int iBbetweenP;	Int iGOVperiod;					//number of VOP from GOV header to next GOV header									//added by SONY 980212	Bool bAllowSkippedPMBs;	// scalability info//#ifdef _Scalable_SONY_	Int iHierarchyType;//#endif _Scalable_SONY_	Int iEnhnType;					//enhancement type	Int iEnhnTypeSpatial;					//for OBSS partial enhancement mode		//OBSS_SAIT_991015	Int iSpatialOption;	Int ihor_sampling_factor_m ;	Int ihor_sampling_factor_n ;	Int iver_sampling_factor_m ;	Int iver_sampling_factor_n ;//OBSS_SAIT_991015    // object based spatial scalability	Int iFrmWidth_SS;							Int iFrmHeight_SS;							Int iuseRefShape;		Int iuseRefTexture;	Int ihor_sampling_factor_m_shape ;	Int ihor_sampling_factor_n_shape ;	Int iver_sampling_factor_m_shape ;	Int iver_sampling_factor_n_shape ;	Bool bSpatialScalability;	//~OBSS_SAIT_991015	// temporal scalability  // added by Sharp (98/2/10)	Bool bTemporalScalability;	// statistics dumping options	Bool bDumpMB;			// dump statitstics at MB level	Bool bTrace;			// dumping trace file	Int	iMVRadiusPerFrameAwayFromRef;	// MV serach radius per frame away from reference VOP// RRV insertion	Bool	breduced_resolution_vop_enable;// ~RRV	} VOLMode;typedef struct VOPMode // VideoObjectPlane Mode{	// user specify, per VOP	Int intStepI;	// I-VOP stepsize for DCT	Int intStep;	// P-VOP stepsize for DCT	Int intStepB;	// B-VOP stepsize for DCT	  Int intStepIAlpha[MAX_MAC];	// I-VOP stepsize for DCT alpha	Int intStepPAlpha[MAX_MAC];	// P-VOP stepsize for DCT alpha	Int intStepBAlpha[MAX_MAC];	// B-VOP stepsize for DCT alpha	Int intStepDiff;	// stepsize difference for updating for DCT (DQUANT)//	Int intDBQuant;	VOPpredType vopPredType; //whether IVOP, PVOP, BVOP, or Sprite	Int iIntraDcSwitchThr;	 //threshold to code intraDC as with AC VLCs	Int iRoundingControl;	 //rounding control	Int iRoundingControlEncSwitch;

⌨️ 快捷键说明

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