ratectl.c File Reference

Rate Control algorithm. More...

#include <math.h>
#include <limits.h>
#include "global.h"
#include "ratectl.h"

Include dependency graph for ratectl.c:

Go to the source code of this file.

Functions

void rc_store_mad (Macroblock *currMB)
double QP2Qstep (int QP)
int Qstep2QP (double Qstep, int qp_offset)
int ComputeMBMAD (int diffy[16][16])
double ComputeFrameMAD (ImageParameters *p_Img)
void rc_copy_generic (ImageParameters *p_Img, RCGeneric *dst, RCGeneric *src)
void rc_alloc_generic (ImageParameters *p_Img, RCGeneric **p_quad)
void rc_free_generic (RCGeneric **p_quad)
void rc_init_gop_params (ImageParameters *p_Img, InputParameters *p_Inp)
void rc_init_frame (ImageParameters *p_Img, InputParameters *p_Inp)
void rc_init_sequence (ImageParameters *p_Img, InputParameters *p_Inp)
void rc_store_slice_header_bits (ImageParameters *p_Img, InputParameters *p_Inp, int len)
void rc_store_diff (int diffy[16][16], imgpel **p_curImg, int cpix_x, imgpel **prediction)


Detailed Description

Rate Control algorithm.

Author:
Main contributors (see contributors.h for copyright, address and affiliation details)
Date:
16 Jan. 2003

Definition in file ratectl.c.


Function Documentation

double ComputeFrameMAD ( ImageParameters p_Img  ) 

Compute Frame MAD.

Definition at line 151 of file ratectl.c.

Referenced by rc_update_pict(), and updateRCModel().

int ComputeMBMAD ( int  diffy[16][16]  ) 

calculate MAD for the current macroblock

Returns:
calculated MAD

Definition at line 133 of file ratectl.c.

Referenced by rc_store_mad().

double QP2Qstep ( int  QP  ) 

map QP to Qstep

Definition at line 53 of file ratectl.c.

Referenced by Qstep2QP(), and updateRCModel().

int Qstep2QP ( double  Qstep,
int  qp_offset 
)

map Qstep to QP

Definition at line 74 of file ratectl.c.

References QP2Qstep().

Referenced by updateModelQPBU(), and updateModelQPFrame().

Here is the call graph for this function:

void rc_alloc_generic ( ImageParameters p_Img,
RCGeneric **  p_quad 
)

Dynamically allocate memory needed for generic rate control.

Definition at line 192 of file ratectl.c.

References no_mem_exit().

Referenced by rc_allocate_memory().

Here is the call graph for this function:

void rc_copy_generic ( ImageParameters p_Img,
RCGeneric *  dst,
RCGeneric *  src 
)

Copy JVT rate control objects.

Definition at line 168 of file ratectl.c.

Referenced by encode_one_slice_MBAFF(), rc_init_frame(), rc_init_frame_rdpic(), rc_restore_state(), and rc_save_state().

void rc_free_generic ( RCGeneric **  p_quad  ) 

Free memory needed for generic rate control.

Definition at line 215 of file ratectl.c.

Referenced by rc_free_memory().

void rc_init_frame ( ImageParameters p_Img,
InputParameters p_Inp 
)

Initialize Frame Level Rate Control parameters.

Definition at line 303 of file ratectl.c.

References inp_par_enc::MbInterlace, img_par::number, img_par::qp, rc_copy_generic(), rc_copy_quadratic(), and inp_par_enc::RDPictureDecision.

Referenced by encode_one_frame().

Here is the call graph for this function:

void rc_init_gop_params ( ImageParameters p_Img,
InputParameters p_Inp 
)

Initialize GOP Level Rate Control parameters.

Definition at line 236 of file ratectl.c.

References inp_par_enc::idr_period, inp_par_enc::no_frm_base, img_par::number, inp_par_enc::NumberBFrames, and rc_init_GOP().

Referenced by prepare_first_layer().

Here is the call graph for this function:

void rc_init_sequence ( ImageParameters p_Img,
InputParameters p_Inp 
)

Initialize Sequence Level Rate Control parameters.

Definition at line 340 of file ratectl.c.

References rc_init_seq().

Referenced by init_encoder().

Here is the call graph for this function:

void rc_store_diff ( int  diffy[16][16],
imgpel **  p_curImg,
int  cpix_x,
imgpel **  prediction 
)

void rc_store_mad ( Macroblock currMB  ) 

Update Rate Control Parameters.

Definition at line 32 of file ratectl.c.

References ComputeMBMAD(), macroblock::mbAddrX, macroblock::p_Img, and macroblock::p_slice.

Referenced by encode_one_macroblock_high(), encode_one_macroblock_highfast(), encode_one_macroblock_highloss(), and encode_one_macroblock_low().

Here is the call graph for this function:


Documentation generated with DoxyGen