FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
ratecontrol.c File Reference

Rate control for video encoders. More...

#include "libavutil/attributes.h"
#include "avcodec.h"
#include "ratecontrol.h"
#include "mpegutils.h"
#include "mpegvideo.h"
#include "libavutil/eval.h"
#include <assert.h>

Go to the source code of this file.

Macros

#define M_E   2.718281828
 

Functions

static int init_pass2 (MpegEncContext *s)
 
static double get_qscale (MpegEncContext *s, RateControlEntry *rce, double rate_factor, int frame_num)
 Modify the bitrate curve from pass1 for one frame.
 
void ff_write_pass1_stats (MpegEncContext *s)
 
static double get_fps (AVCodecContext *avctx)
 
static double qp2bits (RateControlEntry *rce, double qp)
 
static double bits2qp (RateControlEntry *rce, double bits)
 
av_cold int ff_rate_control_init (MpegEncContext *s)
 
av_cold void ff_rate_control_uninit (MpegEncContext *s)
 
int ff_vbv_update (MpegEncContext *s, int frame_size)
 
static double get_diff_limited_q (MpegEncContext *s, RateControlEntry *rce, double q)
 
static void get_qminmax (int *qmin_ret, int *qmax_ret, MpegEncContext *s, int pict_type)
 Get the qmin & qmax for pict_type.
 
static double modify_qscale (MpegEncContext *s, RateControlEntry *rce, double q, int frame_num)
 
static double predict_size (Predictor *p, double q, double var)
 
static void update_predictor (Predictor *p, double q, double var, double size)
 
static void adaptive_quantization (MpegEncContext *s, double q)
 
void ff_get_2pass_fcode (MpegEncContext *s)
 
float ff_rate_estimate_qscale (MpegEncContext *s, int dry_run)
 

Detailed Description

Rate control for video encoders.

Definition in file ratecontrol.c.

Macro Definition Documentation

#define M_E   2.718281828

Definition at line 39 of file ratecontrol.c.

Referenced by get_qscale().

Function Documentation

static int init_pass2 ( MpegEncContext s)
static

Definition at line 915 of file ratecontrol.c.

Referenced by ff_rate_control_init().

static double get_qscale ( MpegEncContext s,
RateControlEntry rce,
double  rate_factor,
int  frame_num 
)
static

Modify the bitrate curve from pass1 for one frame.

Definition at line 362 of file ratecontrol.c.

Referenced by ff_rate_control_init(), ff_rate_estimate_qscale(), and init_pass2().

void ff_write_pass1_stats ( MpegEncContext s)

Definition at line 46 of file ratecontrol.c.

Referenced by encode_frame(), and ff_mpv_encode_picture().

static double get_fps ( AVCodecContext avctx)
static
static double qp2bits ( RateControlEntry rce,
double  qp 
)
inlinestatic

Definition at line 72 of file ratecontrol.c.

Referenced by ff_rate_control_init(), get_qscale(), and init_pass2().

static double bits2qp ( RateControlEntry rce,
double  bits 
)
inlinestatic

Definition at line 80 of file ratecontrol.c.

Referenced by ff_rate_control_init(), get_qscale(), and modify_qscale().

av_cold int ff_rate_control_init ( MpegEncContext s)

Definition at line 88 of file ratecontrol.c.

Referenced by encode_init(), and ff_mpv_encode_init().

av_cold void ff_rate_control_uninit ( MpegEncContext s)

Definition at line 303 of file ratecontrol.c.

Referenced by encode_end(), and ff_mpv_encode_end().

int ff_vbv_update ( MpegEncContext s,
int  frame_size 
)

Definition at line 317 of file ratecontrol.c.

Referenced by ff_mpv_encode_picture(), init_pass2(), and select_input_picture().

static double get_diff_limited_q ( MpegEncContext s,
RateControlEntry rce,
double  q 
)
static

Definition at line 441 of file ratecontrol.c.

Referenced by ff_rate_estimate_qscale(), and init_pass2().

static void get_qminmax ( int *  qmin_ret,
int *  qmax_ret,
MpegEncContext s,
int  pict_type 
)
static

Get the qmin & qmax for pict_type.

Definition at line 480 of file ratecontrol.c.

Referenced by ff_rate_estimate_qscale(), and modify_qscale().

static double modify_qscale ( MpegEncContext s,
RateControlEntry rce,
double  q,
int  frame_num 
)
static

Definition at line 508 of file ratecontrol.c.

Referenced by ff_rate_estimate_qscale(), and init_pass2().

static double predict_size ( Predictor p,
double  q,
double  var 
)
static

Definition at line 599 of file ratecontrol.c.

Referenced by ff_rate_estimate_qscale().

static void update_predictor ( Predictor p,
double  q,
double  var,
double  size 
)
static

Definition at line 604 of file ratecontrol.c.

Referenced by ff_rate_estimate_qscale().

static void adaptive_quantization ( MpegEncContext s,
double  q 
)
static

Definition at line 616 of file ratecontrol.c.

Referenced by ff_rate_estimate_qscale().

void ff_get_2pass_fcode ( MpegEncContext s)

Definition at line 733 of file ratecontrol.c.

Referenced by encode_picture().

float ff_rate_estimate_qscale ( MpegEncContext s,
int  dry_run 
)

Definition at line 744 of file ratecontrol.c.

Referenced by encode_frame(), estimate_qp(), and ratecontrol_1pass().