11#ifndef VPX_VPX_VPX_EXT_RATECTRL_H_
12#define VPX_VPX_VPX_EXT_RATECTRL_H_
18#include "./vpx_integer.h"
29#define VPX_EXT_RATECTRL_ABI_VERSION (7)
43typedef enum vpx_rc_type {
46 VPX_RC_RDMULT = 1 << 2,
47 VPX_RC_GOP_QP = VPX_RC_QP | VPX_RC_GOP,
48 VPX_RC_GOP_QP_RDMULT = VPX_RC_QP | VPX_RC_GOP | VPX_RC_RDMULT
53typedef enum vpx_ext_rc_mode {
64typedef void *vpx_rc_model_t;
71#define VPX_DEFAULT_Q -1
78#define VPX_DEFAULT_RDMULT -1
149typedef enum vpx_rc_status {
414typedef vpx_rc_status_t (*vpx_rc_create_model_cb_fn_t)(
416 vpx_rc_model_t *rate_ctrl_model_ptr);
427typedef vpx_rc_status_t (*vpx_rc_send_firstpass_stats_cb_fn_t)(
428 vpx_rc_model_t rate_ctrl_model,
440typedef vpx_rc_status_t (*vpx_rc_send_tpl_gop_stats_cb_fn_t)(
441 vpx_rc_model_t rate_ctrl_model,
const VpxTplGopStats *tpl_gop_stats);
452typedef vpx_rc_status_t (*vpx_rc_get_encodeframe_decision_cb_fn_t)(
453 vpx_rc_model_t rate_ctrl_model,
465typedef vpx_rc_status_t (*vpx_rc_update_encodeframe_result_cb_fn_t)(
466 vpx_rc_model_t rate_ctrl_model,
478typedef vpx_rc_status_t (*vpx_rc_get_gop_decision_cb_fn_t)(
491typedef vpx_rc_status_t (*vpx_rc_get_frame_rdmult_cb_fn_t)(
502typedef vpx_rc_status_t (*vpx_rc_delete_model_cb_fn_t)(
503 vpx_rc_model_t rate_ctrl_model);
Temporal dependency model stats for each GOP before propagation.
Definition: vpx_tpl.h:59
Encode config sent to external rate control model.
Definition: vpx_ext_ratectrl.h:306
int frame_height
Definition: vpx_ext_ratectrl.h:308
int frame_width
Definition: vpx_ext_ratectrl.h:307
int show_frame_count
Definition: vpx_ext_ratectrl.h:309
int overshoot_percent
Definition: vpx_ext_ratectrl.h:323
int max_gf_interval
Definition: vpx_ext_ratectrl.h:310
int undershoot_percent
Definition: vpx_ext_ratectrl.h:324
int target_bitrate_kbps
Definition: vpx_ext_ratectrl.h:315
vpx_ext_rc_mode_t rc_mode
Definition: vpx_ext_ratectrl.h:322
int frame_rate_num
Definition: vpx_ext_ratectrl.h:316
int min_gf_interval
Definition: vpx_ext_ratectrl.h:311
int frame_rate_den
Definition: vpx_ext_ratectrl.h:317
Encode frame decision made by the external rate control model.
Definition: vpx_ext_ratectrl.h:92
int q_index
Definition: vpx_ext_ratectrl.h:93
int max_frame_size
Definition: vpx_ext_ratectrl.h:94
Information for the frame to be encoded.
Definition: vpx_ext_ratectrl.h:103
int show_index
Definition: vpx_ext_ratectrl.h:112
int coding_index
Definition: vpx_ext_ratectrl.h:113
int ref_frame_coding_indexes[3]
Definition: vpx_ext_ratectrl.h:118
int ref_frame_valid_list[3]
Definition: vpx_ext_ratectrl.h:124
int gop_index
Definition: vpx_ext_ratectrl.h:117
int frame_type
Definition: vpx_ext_ratectrl.h:111
int use_alt_ref
Definition: vpx_ext_ratectrl.h:132
int gop_size
Definition: vpx_ext_ratectrl.h:128
Frame coding result.
Definition: vpx_ext_ratectrl.h:140
int actual_encoding_qindex
Definition: vpx_ext_ratectrl.h:144
int64_t sse
Definition: vpx_ext_ratectrl.h:141
int64_t pixel_count
Definition: vpx_ext_ratectrl.h:143
int64_t bit_count
Definition: vpx_ext_ratectrl.h:142
Collection of first pass frame stats.
Definition: vpx_ext_ratectrl.h:291
vpx_rc_frame_stats_t * frame_stats
Definition: vpx_ext_ratectrl.h:297
int num_frames
Definition: vpx_ext_ratectrl.h:301
First pass frame stats This is a mirror of vp9's FIRSTPASS_STATS except that spatial_layer_id is omit...
Definition: vpx_ext_ratectrl.h:158
double mvr_abs
Definition: vpx_ext_ratectrl.h:251
double duration
Definition: vpx_ext_ratectrl.h:277
double pcnt_intra_low
Definition: vpx_ext_ratectrl.h:212
double inactive_zone_cols
Definition: vpx_ext_ratectrl.h:243
double weight
Definition: vpx_ext_ratectrl.h:169
double MVr
Definition: vpx_ext_ratectrl.h:247
double mv_in_out_count
Definition: vpx_ext_ratectrl.h:273
double inactive_zone_rows
Definition: vpx_ext_ratectrl.h:239
double frame
Definition: vpx_ext_ratectrl.h:163
double new_mv_count
Definition: vpx_ext_ratectrl.h:286
double intra_error
Definition: vpx_ext_ratectrl.h:173
double frame_noise_energy
Definition: vpx_ext_ratectrl.h:185
double pcnt_neutral
Definition: vpx_ext_ratectrl.h:204
double MVc
Definition: vpx_ext_ratectrl.h:255
double mvc_abs
Definition: vpx_ext_ratectrl.h:259
double intra_smooth_pct
Definition: vpx_ext_ratectrl.h:235
double MVrv
Definition: vpx_ext_ratectrl.h:263
double pcnt_motion
Definition: vpx_ext_ratectrl.h:193
double MVcv
Definition: vpx_ext_ratectrl.h:267
double pcnt_intra_high
Definition: vpx_ext_ratectrl.h:220
double count
Definition: vpx_ext_ratectrl.h:282
double pcnt_inter
Definition: vpx_ext_ratectrl.h:189
double intra_skip_pct
Definition: vpx_ext_ratectrl.h:228
double sr_coded_error
Definition: vpx_ext_ratectrl.h:181
double pcnt_second_ref
Definition: vpx_ext_ratectrl.h:199
double coded_error
Definition: vpx_ext_ratectrl.h:177
Callback function set for external rate control.
Definition: vpx_ext_ratectrl.h:511
vpx_rc_send_firstpass_stats_cb_fn_t send_firstpass_stats
Definition: vpx_ext_ratectrl.h:523
vpx_rc_get_encodeframe_decision_cb_fn_t get_encodeframe_decision
Definition: vpx_ext_ratectrl.h:531
vpx_rc_create_model_cb_fn_t create_model
Definition: vpx_ext_ratectrl.h:519
vpx_rc_send_tpl_gop_stats_cb_fn_t send_tpl_gop_stats
Definition: vpx_ext_ratectrl.h:527
vpx_rc_get_gop_decision_cb_fn_t get_gop_decision
Definition: vpx_ext_ratectrl.h:539
vpx_rc_type_t rc_type
Definition: vpx_ext_ratectrl.h:515
void * priv
Definition: vpx_ext_ratectrl.h:551
vpx_rc_update_encodeframe_result_cb_fn_t update_encodeframe_result
Definition: vpx_ext_ratectrl.h:535
vpx_rc_delete_model_cb_fn_t delete_model
Definition: vpx_ext_ratectrl.h:547
vpx_rc_get_frame_rdmult_cb_fn_t get_frame_rdmult
Definition: vpx_ext_ratectrl.h:543
The decision made by the external rate control model to set the group of picture.
Definition: vpx_ext_ratectrl.h:400
int use_alt_ref
Definition: vpx_ext_ratectrl.h:402
int gop_coding_frames
Definition: vpx_ext_ratectrl.h:401
Information passed to the external rate control model to help make GOP decisions.
Definition: vpx_ext_ratectrl.h:330
int active_min_gf_interval
Definition: vpx_ext_ratectrl.h:347
int show_index
Definition: vpx_ext_ratectrl.h:385
int frames_since_key
Definition: vpx_ext_ratectrl.h:371
int allow_alt_ref
Definition: vpx_ext_ratectrl.h:358
int is_key_frame
Definition: vpx_ext_ratectrl.h:362
int active_max_gf_interval
Definition: vpx_ext_ratectrl.h:352
int max_gf_interval
Definition: vpx_ext_ratectrl.h:342
int min_gf_interval
Definition: vpx_ext_ratectrl.h:338
int last_gop_use_alt_ref
Definition: vpx_ext_ratectrl.h:366
int frames_to_key
Definition: vpx_ext_ratectrl.h:376
int coding_index
Definition: vpx_ext_ratectrl.h:389
int lag_in_frames
Definition: vpx_ext_ratectrl.h:380
int gop_global_index
Definition: vpx_ext_ratectrl.h:394
Describes the TPL stats descriptor and associated operations.