45 #ifndef _RATE_CONTROL_H_
46 #define _RATE_CONTROL_H_
void CalcTotalBits(const SourceParams &sourceparams)
Calculate the total number of bits in a GOP.
void CalcNextIntraQualFactor()
Calculate the Quality factor of the next I frame to encode.
int m_num_Iframe
Number of I frames.
Definition: rate_control.h:170
int IComplexity()
Return the complexity of I frame.
Definition: rate_control.h:59
long int m_L2frame_bits
Number of bits for L2 frame.
Definition: rate_control.h:167
long int m_GOP_target
The target number of bits for the current GOP.
Definition: rate_control.h:197
double m_qf
Current Quality Factor.
Definition: rate_control.h:149
long int m_buffer_bits
Number of bits in the buffer.
Definition: rate_control.h:188
void SetIComplexity(int cpx)
Set the complexity of I frame.
Definition: rate_control.h:68
Parameters relating to the source material being encoded/decoded.
Definition: common.h:288
void CalcNextQualFactor(const PictureParams &fparams, int num_bits)
Calculate the Quality factor of the next frame to encode.
void SetL1Complexity(int cpx)
Set the complexity of L1 frame.
Definition: rate_control.h:71
int m_num_L1frame
Number of L1 frames.
Definition: rate_control.h:173
double m_I_qf
I frame Quality Factor.
Definition: rate_control.h:152
void Report()
Report the allocation to picture types.
long int m_L1frame_bits
Number of bits for L1 frame.
Definition: rate_control.h:164
double IntraQualFactor()
Return I frame qf.
Definition: rate_control.h:109
void Allocate(const int fnum)
Allocate the bits to each type of frame in a GOP.
void UpdateBuffer(const long int num_bits)
Update the internal decoder buffer model.
float ClipQualityFactor(const float qfac)
Clip the quality factor to something sensible.
double m_I_qf_long_term
Long-term average of I frame Quality Factor.
Definition: rate_control.h:155
double ProjectedSubgroupRate()
long int m_old_buffer_bits
The old buffer occupancy.
Definition: rate_control.h:191
Parameters for the encoding process.
Definition: common.h:1279
EncoderParams & m_encparams
A reference to the encoder parameters.
Definition: rate_control.h:203
int m_XL1
Complexity of L1 frame.
Definition: rate_control.h:83
int m_num_L2frame
Number of L2 frames.
Definition: rate_control.h:176
const int m_target_rate
Target bit rate in kbps.
Definition: rate_control.h:158
Parameters for initialising picture class objects.
Definition: common.h:532
void SetFrameDistribution()
Set the number of I, L1 and L2 frames in the GOP.
long int m_picture_bits
Mean number of bits in a picture.
Definition: rate_control.h:182
long int m_Iframe_bits
Number of bits for I frame.
Definition: rate_control.h:161
int m_XI
Complexity of I frame.
Definition: rate_control.h:80
int L2Complexity()
Return the complexity of L2 frame.
Definition: rate_control.h:65
void SetIntraQualFactor(double value)
Set the value of Current IQF.
Definition: rate_control.h:131
void SetCutPictureQualFactor()
Use the long-term average intra quality factor.
float ReviewQualityFactor(const float qfac, const long int num_bits)
Review the quality factor to make sure it's being set sensibly.
double m_GOP_duration
The duration of a GOP.
Definition: rate_control.h:200
A clas for allocation the bits to each and every types of frames in a GOP.
Definition: rate_control.h:91
int m_fcount
A frame counter, giving the position within a subgroup.
Definition: rate_control.h:209
long int m_total_GOP_bits
Total Number of bits in a GOP.
Definition: rate_control.h:179
FrameComplexity()
Default constructor.
double m_buffer_rate_of_change
The rate of change of buffer occupancy.
Definition: rate_control.h:194
bool m_intra_only
Definition: rate_control.h:212
void SetL2Complexity(int cpx)
Set the complexity of L2 frame.
Definition: rate_control.h:74
FrameComplexity m_frame_complexity
A class to hold the frame complexity object.
Definition: rate_control.h:206
RateController(int trate, SourceParams &srcp, EncoderParams &encp)
Default constructor.
int m_L2_complexity_sum
Definition: rate_control.h:215
int m_XL2
Complexity of L2 frame.
Definition: rate_control.h:86
int L1Complexity()
Return the complexity of L1 frame.
Definition: rate_control.h:62
const long int m_buffer_size
Size of the decoded bit buffer.
Definition: rate_control.h:185
double TargetSubgroupRate()
double QualFactor()
Return qf.
Definition: rate_control.h:112
Definition: rate_control.h:52