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