00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _RC_TYPES_H_
00021 #define _RC_TYPES_H_
00022
00023 #define RC_MODEL_HISTORY 21
00024
00025
00026 typedef struct rc_generic
00027 {
00028
00029 int TopFieldFlag;
00030 int FieldControl;
00031 int FieldFrame;
00032 int NoGranularFieldRC;
00033
00034 int NumberofHeaderBits;
00035 int NumberofTextureBits;
00036 int NumberofBasicUnitHeaderBits;
00037 int NumberofBasicUnitTextureBits;
00038
00039 int NumberofGOP;
00040 int NumberofCodedBFrame;
00041
00042 int64 TotalMADBasicUnit;
00043 int *MADofMB;
00044
00045 int64 CurrentBufferFullness;
00046 int64 RemainingBits;
00047
00048 int RCPSliceBits;
00049 int RCISliceBits;
00050 int RCBSliceBits[RC_MAX_TEMPORAL_LEVELS];
00051 int temporal_levels;
00052 int hierNb[RC_MAX_TEMPORAL_LEVELS];
00053 int NPSlice;
00054 int NISlice;
00055 } RCGeneric;
00056
00057 typedef struct rc_quadratic
00058 {
00059 float bit_rate;
00060 float frame_rate;
00061 float PrevBitRate;
00062 double GAMMAP;
00063 double BETAP;
00064 double GOPTargetBufferLevel;
00065 double TargetBufferLevel;
00066 double AveWp;
00067 double AveWb;
00068 int MyInitialQp;
00069 int PAverageQp;
00070 double PreviousPictureMAD;
00071 double MADPictureC1;
00072 double MADPictureC2;
00073 double PMADPictureC1;
00074 double PMADPictureC2;
00075 double PPictureMAD [RC_MODEL_HISTORY];
00076 double PictureMAD [RC_MODEL_HISTORY];
00077 double ReferenceMAD[RC_MODEL_HISTORY];
00078 double m_rgQp [RC_MODEL_HISTORY];
00079 double m_rgRp [RC_MODEL_HISTORY];
00080 double Pm_rgQp [RC_MODEL_HISTORY];
00081 double Pm_rgRp [RC_MODEL_HISTORY];
00082
00083 double m_X1;
00084 double m_X2;
00085 double Pm_X1;
00086 double Pm_X2;
00087 int Pm_Qp;
00088 int Pm_Hp;
00089
00090 int MADm_windowSize;
00091 int m_windowSize;
00092 int m_Qc;
00093
00094 int PPreHeader;
00095 int PrevLastQP;
00096 int CurrLastQP;
00097 int NumberofBFrames;
00098
00099 int TotalFrameQP;
00100 int NumberofBasicUnit;
00101 int PAveHeaderBits1;
00102 int PAveHeaderBits2;
00103 int PAveHeaderBits3;
00104 int PAveFrameQP;
00105 int TotalNumberofBasicUnit;
00106 int CodedBasicUnit;
00107
00108 int NumberofCodedPFrame;
00109 int TotalQpforPPicture;
00110 int NumberofPPicture;
00111
00112 double CurrentFrameMAD;
00113 double CurrentBUMAD;
00114 double TotalBUMAD;
00115 double PreviousFrameMAD;
00116 double PreviousWholeFrameMAD;
00117
00118 int DDquant;
00119 unsigned int MBPerRow;
00120 int QPLastPFrame;
00121 int QPLastGOP;
00122
00123
00124 int FieldQPBuffer;
00125 int FrameQPBuffer;
00126 int FrameAveHeaderBits;
00127 int FieldAveHeaderBits;
00128 double *BUPFMAD;
00129 double *BUCFMAD;
00130 double *FCBUCFMAD;
00131 double *FCBUPFMAD;
00132
00133 Boolean GOPOverdue;
00134 int64 Pprev_bits;
00135
00136
00137 int Xp, Xb;
00138 int Target;
00139 int TargetField;
00140 int Np, Nb, bits_topfield;
00141
00142 int UpperBound1, UpperBound2, LowerBound;
00143 double Wp, Wb;
00144 double DeltaP;
00145 int TotalPFrame;
00146 int PMaxQpChange;
00147
00148 int bitdepth_qp_scale;
00149
00150
00151 int enc_buf_curr;
00152
00153 } RCQuadratic;
00154
00155 #endif
00156