WebM Codec SDK

vpx_ext_ratectrl.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2020 The WebM project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
15#ifndef VPX_VPX_VPX_EXT_RATECTRL_H_
16#define VPX_VPX_VPX_EXT_RATECTRL_H_
17
18#ifdef __cplusplus
19 extern "C" {
20#endif
21
22#include "./vpx_integer.h"
23#include "./vpx_tpl.h"
24
33#define VPX_EXT_RATECTRL_ABI_VERSION (7 + VPX_TPL_ABI_VERSION)
34
37#define VPX_RC_MAX_STATIC_GF_GROUP_LENGTH 250
38
43#define VPX_RC_MAX_REF_FRAMES 4
44
50 typedef enum vpx_rc_type {
55 VPX_RC_NONE = 0,
60 VPX_RC_QP = 1 << 0,
65 VPX_RC_GOP = 1 << 1,
70 VPX_RC_RDMULT = 1 << 2,
74 VPX_RC_GOP_QP = VPX_RC_QP | VPX_RC_GOP,
78 VPX_RC_GOP_QP_RDMULT = VPX_RC_QP | VPX_RC_GOP | VPX_RC_RDMULT
79} vpx_rc_type_t;
80
83 typedef enum vpx_ext_rc_mode {
84 VPX_RC_QMODE = 0,
85 VPX_RC_VBR = 1,
86 VPX_RC_CQ = 2,
87} vpx_ext_rc_mode_t;
88
91 typedef enum vpx_rc_frame_update_type {
92 VPX_RC_INVALID_UPDATE_TYPE = -1,
93 VPX_RC_KF_UPDATE = 0,
94 VPX_RC_LF_UPDATE = 1,
95 VPX_RC_GF_UPDATE = 2,
96 VPX_RC_ARF_UPDATE = 3,
97 VPX_RC_OVERLAY_UPDATE = 4,
98 VPX_RC_MID_OVERLAY_UPDATE = 5,
99 VPX_RC_USE_BUF_FRAME = 6,
100} vpx_rc_frame_update_type_t;
101
106 typedef enum vpx_rc_ref_name {
107 VPX_RC_INVALID_REF_FRAME = -1,
108 VPX_RC_INTRA_FRAME = 0,
109 VPX_RC_LAST_FRAME = 1,
110 VPX_RC_GOLDEN_FRAME = 2,
111 VPX_RC_ALTREF_FRAME = 3,
112} vpx_rc_ref_name_t;
113
119 typedef void *vpx_rc_model_t;
120
126#define VPX_DEFAULT_Q -1
127
133#define VPX_DEFAULT_RDMULT -1
134
138 typedef struct sb_parameters {
139 int q_index;
140 int rdmult;
141} sb_params;
142
148 typedef struct vpx_rc_encodeframe_decision {
149 int q_index;
150 int rdmult;
151 int delta_q_uv;
157 sb_params *sb_params_list;
158} vpx_rc_encodeframe_decision_t;
159
166 typedef struct vpx_rc_encodeframe_info {
174 int frame_type;
175 int show_index;
176 int coding_index;
180 int gop_index;
181 int ref_frame_coding_indexes[3];
187 int ref_frame_valid_list[3];
191 int gop_size;
195 int use_alt_ref;
196} vpx_rc_encodeframe_info_t;
197
203 typedef struct vpx_rc_encodeframe_result {
204 int64_t bit_count;
205 int actual_encoding_qindex;
206} vpx_rc_encodeframe_result_t;
207
210 typedef enum vpx_rc_status {
211 VPX_RC_OK = 0,
212 VPX_RC_ERROR = 1,
213} vpx_rc_status_t;
214
219 typedef struct vpx_rc_frame_stats {
224 double frame;
230 double weight;
234 double intra_error;
238 double coded_error;
242 double sr_coded_error;
246 double frame_noise_energy;
250 double pcnt_inter;
254 double pcnt_motion;
260 double pcnt_second_ref;
265 double pcnt_neutral;
273 double pcnt_intra_low;
281 double pcnt_intra_high;
289 double intra_skip_pct;
296 double intra_smooth_pct;
300 double inactive_zone_rows;
304 double inactive_zone_cols;
308 double MVr;
312 double mvr_abs;
316 double MVc;
320 double mvc_abs;
324 double MVrv;
328 double MVcv;
334 double mv_in_out_count;
338 double duration;
343 double count;
347 double new_mv_count;
348} vpx_rc_frame_stats_t;
349
352 typedef struct vpx_rc_firstpass_stats {
358 vpx_rc_frame_stats_t *frame_stats;
362 int num_frames;
363} vpx_rc_firstpass_stats_t;
364
367 typedef struct vpx_rc_config {
368 int frame_width;
369 int frame_height;
370 int show_frame_count;
371 int max_gf_interval;
372 int min_gf_interval;
376 int target_bitrate_kbps;
377 int frame_rate_num;
378 int frame_rate_den;
383 vpx_ext_rc_mode_t rc_mode;
384 int overshoot_percent;
385 int undershoot_percent;
386 int min_base_q_index;
387 int max_base_q_index;
388 int base_qp;
389} vpx_rc_config_t;
390
393 typedef struct vpx_rc_ref_frame {
398 int index[VPX_RC_MAX_REF_FRAMES];
404 vpx_rc_ref_name_t name[VPX_RC_MAX_REF_FRAMES];
405} vpx_rc_ref_frame_t;
406
410 typedef struct vpx_rc_gop_decision {
411 int gop_coding_frames;
412 int use_alt_ref;
413 int use_key_frame;
419 vpx_rc_frame_update_type_t update_type[VPX_RC_MAX_STATIC_GF_GROUP_LENGTH + 2];
421 int update_ref_index[VPX_RC_MAX_STATIC_GF_GROUP_LENGTH + 2];
423 vpx_rc_ref_frame_t ref_frame_list[VPX_RC_MAX_STATIC_GF_GROUP_LENGTH + 2];
424} vpx_rc_gop_decision_t;
425
429 typedef struct vpx_rc_key_frame_decision {
430 int key_frame_show_index;
431 int key_frame_group_size;
432} vpx_rc_key_frame_decision_t;
433
443 typedef vpx_rc_status_t (*vpx_rc_create_model_cb_fn_t)(
444 void *priv, const vpx_rc_config_t *ratectrl_config,
445 vpx_rc_model_t *rate_ctrl_model_ptr);
446
456 typedef vpx_rc_status_t (*vpx_rc_send_firstpass_stats_cb_fn_t)(
457 vpx_rc_model_t rate_ctrl_model,
458 const vpx_rc_firstpass_stats_t *first_pass_stats);
459
469 typedef vpx_rc_status_t (*vpx_rc_send_tpl_gop_stats_cb_fn_t)(
470 vpx_rc_model_t rate_ctrl_model, const VpxTplGopStats *tpl_gop_stats);
471
481 typedef vpx_rc_status_t (*vpx_rc_get_encodeframe_decision_cb_fn_t)(
482 vpx_rc_model_t rate_ctrl_model, const int frame_gop_index,
483 vpx_rc_encodeframe_decision_t *frame_decision);
484
493 typedef vpx_rc_status_t (*vpx_rc_update_encodeframe_result_cb_fn_t)(
494 vpx_rc_model_t rate_ctrl_model,
495 const vpx_rc_encodeframe_result_t *encode_frame_result);
496
505 typedef vpx_rc_status_t (*vpx_rc_get_key_frame_decision_cb_fn_t)(
506 vpx_rc_model_t rate_ctrl_model,
507 vpx_rc_key_frame_decision_t *key_frame_decision);
508
517 typedef vpx_rc_status_t (*vpx_rc_get_gop_decision_cb_fn_t)(
518 vpx_rc_model_t rate_ctrl_model, vpx_rc_gop_decision_t *gop_decision);
519
529 typedef vpx_rc_status_t (*vpx_rc_get_frame_rdmult_cb_fn_t)(
530 vpx_rc_model_t rate_ctrl_model, const vpx_rc_encodeframe_info_t *frame_info,
531 int *rdmult);
532
540 typedef vpx_rc_status_t (*vpx_rc_delete_model_cb_fn_t)(
541 vpx_rc_model_t rate_ctrl_model);
542
549 typedef struct vpx_rc_funcs {
553 vpx_rc_type_t rc_type;
557 vpx_rc_create_model_cb_fn_t create_model;
561 vpx_rc_send_firstpass_stats_cb_fn_t send_firstpass_stats;
565 vpx_rc_send_tpl_gop_stats_cb_fn_t send_tpl_gop_stats;
569 vpx_rc_get_encodeframe_decision_cb_fn_t get_encodeframe_decision;
573 vpx_rc_update_encodeframe_result_cb_fn_t update_encodeframe_result;
577 vpx_rc_get_key_frame_decision_cb_fn_t get_key_frame_decision;
581 vpx_rc_get_gop_decision_cb_fn_t get_gop_decision;
585 vpx_rc_get_frame_rdmult_cb_fn_t get_frame_rdmult;
589 vpx_rc_delete_model_cb_fn_t delete_model;
590
594 const char *rate_ctrl_log_path;
598 void *priv;
599} vpx_rc_funcs_t;
600
601#ifdef __cplusplus
602} // extern "C"
603#endif
604
605#endif // VPX_VPX_VPX_EXT_RATECTRL_H_
VpxTplGopStats
Temporal dependency model stats for each GOP before propagation.
Definition vpx_tpl.h:60
sb_parameters
Superblock quantization parameters Store the superblock quantization parameters.
Definition vpx_ext_ratectrl.h:138
sb_parameters::q_index
int q_index
Definition vpx_ext_ratectrl.h:139
sb_parameters::rdmult
int rdmult
Definition vpx_ext_ratectrl.h:140
vpx_rc_config
Encode config sent to external rate control model.
Definition vpx_ext_ratectrl.h:367
vpx_rc_config::min_base_q_index
int min_base_q_index
Definition vpx_ext_ratectrl.h:386
vpx_rc_config::frame_height
int frame_height
Definition vpx_ext_ratectrl.h:369
vpx_rc_config::max_base_q_index
int max_base_q_index
Definition vpx_ext_ratectrl.h:387
vpx_rc_config::frame_width
int frame_width
Definition vpx_ext_ratectrl.h:368
vpx_rc_config::show_frame_count
int show_frame_count
Definition vpx_ext_ratectrl.h:370
vpx_rc_config::overshoot_percent
int overshoot_percent
Definition vpx_ext_ratectrl.h:384
vpx_rc_config::base_qp
int base_qp
Definition vpx_ext_ratectrl.h:388
vpx_rc_config::max_gf_interval
int max_gf_interval
Definition vpx_ext_ratectrl.h:371
vpx_rc_config::undershoot_percent
int undershoot_percent
Definition vpx_ext_ratectrl.h:385
vpx_rc_config::target_bitrate_kbps
int target_bitrate_kbps
Definition vpx_ext_ratectrl.h:376
vpx_rc_config::rc_mode
vpx_ext_rc_mode_t rc_mode
Definition vpx_ext_ratectrl.h:383
vpx_rc_config::frame_rate_num
int frame_rate_num
Definition vpx_ext_ratectrl.h:377
vpx_rc_config::min_gf_interval
int min_gf_interval
Definition vpx_ext_ratectrl.h:372
vpx_rc_config::frame_rate_den
int frame_rate_den
Definition vpx_ext_ratectrl.h:378
vpx_rc_encodeframe_decision
Encode frame decision made by the external rate control model.
Definition vpx_ext_ratectrl.h:148
vpx_rc_encodeframe_decision::rdmult
int rdmult
Definition vpx_ext_ratectrl.h:150
vpx_rc_encodeframe_decision::q_index
int q_index
Definition vpx_ext_ratectrl.h:149
vpx_rc_encodeframe_decision::delta_q_uv
int delta_q_uv
Definition vpx_ext_ratectrl.h:151
vpx_rc_encodeframe_decision::sb_params_list
sb_params * sb_params_list
Definition vpx_ext_ratectrl.h:157
vpx_rc_encodeframe_info
Information for the frame to be encoded.
Definition vpx_ext_ratectrl.h:166
vpx_rc_encodeframe_info::show_index
int show_index
Definition vpx_ext_ratectrl.h:175
vpx_rc_encodeframe_info::coding_index
int coding_index
Definition vpx_ext_ratectrl.h:176
vpx_rc_encodeframe_info::ref_frame_coding_indexes
int ref_frame_coding_indexes[3]
Definition vpx_ext_ratectrl.h:181
vpx_rc_encodeframe_info::ref_frame_valid_list
int ref_frame_valid_list[3]
Definition vpx_ext_ratectrl.h:187
vpx_rc_encodeframe_info::gop_index
int gop_index
Definition vpx_ext_ratectrl.h:180
vpx_rc_encodeframe_info::frame_type
int frame_type
Definition vpx_ext_ratectrl.h:174
vpx_rc_encodeframe_info::use_alt_ref
int use_alt_ref
Definition vpx_ext_ratectrl.h:195
vpx_rc_encodeframe_info::gop_size
int gop_size
Definition vpx_ext_ratectrl.h:191
vpx_rc_encodeframe_result
Frame coding result.
Definition vpx_ext_ratectrl.h:203
vpx_rc_encodeframe_result::actual_encoding_qindex
int actual_encoding_qindex
Definition vpx_ext_ratectrl.h:205
vpx_rc_encodeframe_result::bit_count
int64_t bit_count
Definition vpx_ext_ratectrl.h:204
vpx_rc_firstpass_stats
Collection of first pass frame stats.
Definition vpx_ext_ratectrl.h:352
vpx_rc_firstpass_stats::frame_stats
vpx_rc_frame_stats_t * frame_stats
Definition vpx_ext_ratectrl.h:358
vpx_rc_firstpass_stats::num_frames
int num_frames
Definition vpx_ext_ratectrl.h:362
vpx_rc_frame_stats
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:219
vpx_rc_frame_stats::mvr_abs
double mvr_abs
Definition vpx_ext_ratectrl.h:312
vpx_rc_frame_stats::duration
double duration
Definition vpx_ext_ratectrl.h:338
vpx_rc_frame_stats::pcnt_intra_low
double pcnt_intra_low
Definition vpx_ext_ratectrl.h:273
vpx_rc_frame_stats::inactive_zone_cols
double inactive_zone_cols
Definition vpx_ext_ratectrl.h:304
vpx_rc_frame_stats::weight
double weight
Definition vpx_ext_ratectrl.h:230
vpx_rc_frame_stats::MVr
double MVr
Definition vpx_ext_ratectrl.h:308
vpx_rc_frame_stats::mv_in_out_count
double mv_in_out_count
Definition vpx_ext_ratectrl.h:334
vpx_rc_frame_stats::inactive_zone_rows
double inactive_zone_rows
Definition vpx_ext_ratectrl.h:300
vpx_rc_frame_stats::frame
double frame
Definition vpx_ext_ratectrl.h:224
vpx_rc_frame_stats::new_mv_count
double new_mv_count
Definition vpx_ext_ratectrl.h:347
vpx_rc_frame_stats::intra_error
double intra_error
Definition vpx_ext_ratectrl.h:234
vpx_rc_frame_stats::frame_noise_energy
double frame_noise_energy
Definition vpx_ext_ratectrl.h:246
vpx_rc_frame_stats::pcnt_neutral
double pcnt_neutral
Definition vpx_ext_ratectrl.h:265
vpx_rc_frame_stats::MVc
double MVc
Definition vpx_ext_ratectrl.h:316
vpx_rc_frame_stats::mvc_abs
double mvc_abs
Definition vpx_ext_ratectrl.h:320
vpx_rc_frame_stats::intra_smooth_pct
double intra_smooth_pct
Definition vpx_ext_ratectrl.h:296
vpx_rc_frame_stats::MVrv
double MVrv
Definition vpx_ext_ratectrl.h:324
vpx_rc_frame_stats::pcnt_motion
double pcnt_motion
Definition vpx_ext_ratectrl.h:254
vpx_rc_frame_stats::MVcv
double MVcv
Definition vpx_ext_ratectrl.h:328
vpx_rc_frame_stats::pcnt_intra_high
double pcnt_intra_high
Definition vpx_ext_ratectrl.h:281
vpx_rc_frame_stats::count
double count
Definition vpx_ext_ratectrl.h:343
vpx_rc_frame_stats::pcnt_inter
double pcnt_inter
Definition vpx_ext_ratectrl.h:250
vpx_rc_frame_stats::intra_skip_pct
double intra_skip_pct
Definition vpx_ext_ratectrl.h:289
vpx_rc_frame_stats::sr_coded_error
double sr_coded_error
Definition vpx_ext_ratectrl.h:242
vpx_rc_frame_stats::pcnt_second_ref
double pcnt_second_ref
Definition vpx_ext_ratectrl.h:260
vpx_rc_frame_stats::coded_error
double coded_error
Definition vpx_ext_ratectrl.h:238
vpx_rc_funcs
Callback function set for external rate control.
Definition vpx_ext_ratectrl.h:549
vpx_rc_funcs::send_firstpass_stats
vpx_rc_send_firstpass_stats_cb_fn_t send_firstpass_stats
Definition vpx_ext_ratectrl.h:561
vpx_rc_funcs::get_encodeframe_decision
vpx_rc_get_encodeframe_decision_cb_fn_t get_encodeframe_decision
Definition vpx_ext_ratectrl.h:569
vpx_rc_funcs::create_model
vpx_rc_create_model_cb_fn_t create_model
Definition vpx_ext_ratectrl.h:557
vpx_rc_funcs::send_tpl_gop_stats
vpx_rc_send_tpl_gop_stats_cb_fn_t send_tpl_gop_stats
Definition vpx_ext_ratectrl.h:565
vpx_rc_funcs::get_gop_decision
vpx_rc_get_gop_decision_cb_fn_t get_gop_decision
Definition vpx_ext_ratectrl.h:581
vpx_rc_funcs::rc_type
vpx_rc_type_t rc_type
Definition vpx_ext_ratectrl.h:553
vpx_rc_funcs::priv
void * priv
Definition vpx_ext_ratectrl.h:598
vpx_rc_funcs::update_encodeframe_result
vpx_rc_update_encodeframe_result_cb_fn_t update_encodeframe_result
Definition vpx_ext_ratectrl.h:573
vpx_rc_funcs::rate_ctrl_log_path
const char * rate_ctrl_log_path
Definition vpx_ext_ratectrl.h:594
vpx_rc_funcs::get_key_frame_decision
vpx_rc_get_key_frame_decision_cb_fn_t get_key_frame_decision
Definition vpx_ext_ratectrl.h:577
vpx_rc_funcs::delete_model
vpx_rc_delete_model_cb_fn_t delete_model
Definition vpx_ext_ratectrl.h:589
vpx_rc_funcs::get_frame_rdmult
vpx_rc_get_frame_rdmult_cb_fn_t get_frame_rdmult
Definition vpx_ext_ratectrl.h:585
vpx_rc_gop_decision
The decision made by the external rate control model to set the group of picture.
Definition vpx_ext_ratectrl.h:410
vpx_rc_gop_decision::use_key_frame
int use_key_frame
Definition vpx_ext_ratectrl.h:413
vpx_rc_gop_decision::use_alt_ref
int use_alt_ref
Definition vpx_ext_ratectrl.h:412
vpx_rc_gop_decision::gop_coding_frames
int gop_coding_frames
Definition vpx_ext_ratectrl.h:411
vpx_rc_gop_decision::ref_frame_list
vpx_rc_ref_frame_t ref_frame_list[250+2]
Definition vpx_ext_ratectrl.h:423
vpx_rc_gop_decision::update_type
vpx_rc_frame_update_type_t update_type[250+2]
Definition vpx_ext_ratectrl.h:419
vpx_rc_gop_decision::update_ref_index
int update_ref_index[250+2]
Definition vpx_ext_ratectrl.h:421
vpx_rc_key_frame_decision
The decision made by the external rate control model to set the key frame location and the show frame...
Definition vpx_ext_ratectrl.h:429
vpx_rc_key_frame_decision::key_frame_group_size
int key_frame_group_size
Definition vpx_ext_ratectrl.h:431
vpx_rc_key_frame_decision::key_frame_show_index
int key_frame_show_index
Definition vpx_ext_ratectrl.h:430
vpx_rc_ref_frame
Control what ref frame to use and its index.
Definition vpx_ext_ratectrl.h:393
vpx_rc_ref_frame::name
vpx_rc_ref_name_t name[4]
Definition vpx_ext_ratectrl.h:404
vpx_rc_ref_frame::index
int index[4]
Definition vpx_ext_ratectrl.h:398
vpx_rc_type_t
enum vpx_rc_type vpx_rc_type_t
The type of the external rate control.
vpx_rc_frame_update_type
vpx_rc_frame_update_type
Corresponds to FRAME_UPDATE_TYPE defined in vp9_firstpass.h.
Definition vpx_ext_ratectrl.h:91
VPX_RC_MAX_REF_FRAMES
#define VPX_RC_MAX_REF_FRAMES
Max number of ref frames returned by the external RC.
Definition vpx_ext_ratectrl.h:43
vpx_rc_update_encodeframe_result_cb_fn_t
vpx_rc_status_t(* vpx_rc_update_encodeframe_result_cb_fn_t)(vpx_rc_model_t rate_ctrl_model, const vpx_rc_encodeframe_result_t *encode_frame_result)
Update encode frame result callback prototype.
Definition vpx_ext_ratectrl.h:493
vpx_rc_encodeframe_info_t
struct vpx_rc_encodeframe_info vpx_rc_encodeframe_info_t
Information for the frame to be encoded.
vpx_rc_send_firstpass_stats_cb_fn_t
vpx_rc_status_t(* vpx_rc_send_firstpass_stats_cb_fn_t)(vpx_rc_model_t rate_ctrl_model, const vpx_rc_firstpass_stats_t *first_pass_stats)
Send first pass stats to the external rate control model callback prototype.
Definition vpx_ext_ratectrl.h:456
vpx_rc_ref_frame_t
struct vpx_rc_ref_frame vpx_rc_ref_frame_t
Control what ref frame to use and its index.
vpx_rc_frame_update_type_t
enum vpx_rc_frame_update_type vpx_rc_frame_update_type_t
Corresponds to FRAME_UPDATE_TYPE defined in vp9_firstpass.h.
vpx_rc_get_gop_decision_cb_fn_t
vpx_rc_status_t(* vpx_rc_get_gop_decision_cb_fn_t)(vpx_rc_model_t rate_ctrl_model, vpx_rc_gop_decision_t *gop_decision)
Get the GOP structure from the external rate control model.
Definition vpx_ext_ratectrl.h:517
vpx_rc_get_frame_rdmult_cb_fn_t
vpx_rc_status_t(* vpx_rc_get_frame_rdmult_cb_fn_t)(vpx_rc_model_t rate_ctrl_model, const vpx_rc_encodeframe_info_t *frame_info, int *rdmult)
Get the frame rdmult from the external rate control model.
Definition vpx_ext_ratectrl.h:529
sb_params
struct sb_parameters sb_params
Superblock quantization parameters Store the superblock quantization parameters.
vpx_rc_status
vpx_rc_status
Status returned by rate control callback functions.
Definition vpx_ext_ratectrl.h:210
vpx_rc_firstpass_stats_t
struct vpx_rc_firstpass_stats vpx_rc_firstpass_stats_t
Collection of first pass frame stats.
vpx_rc_key_frame_decision_t
struct vpx_rc_key_frame_decision vpx_rc_key_frame_decision_t
The decision made by the external rate control model to set the key frame location and the show frame...
vpx_rc_gop_decision_t
struct vpx_rc_gop_decision vpx_rc_gop_decision_t
The decision made by the external rate control model to set the group of picture.
vpx_rc_type
vpx_rc_type
The type of the external rate control.
Definition vpx_ext_ratectrl.h:50
VPX_RC_RDMULT
@ VPX_RC_RDMULT
Definition vpx_ext_ratectrl.h:70
VPX_RC_GOP
@ VPX_RC_GOP
Definition vpx_ext_ratectrl.h:65
VPX_RC_QP
@ VPX_RC_QP
Definition vpx_ext_ratectrl.h:60
VPX_RC_GOP_QP
@ VPX_RC_GOP_QP
Definition vpx_ext_ratectrl.h:74
VPX_RC_NONE
@ VPX_RC_NONE
Definition vpx_ext_ratectrl.h:55
VPX_RC_GOP_QP_RDMULT
@ VPX_RC_GOP_QP_RDMULT
Definition vpx_ext_ratectrl.h:78
VPX_RC_MAX_STATIC_GF_GROUP_LENGTH
#define VPX_RC_MAX_STATIC_GF_GROUP_LENGTH
Corresponds to MAX_STATIC_GF_GROUP_LENGTH defined in vp9_ratectrl.h.
Definition vpx_ext_ratectrl.h:37
vpx_rc_frame_stats_t
struct vpx_rc_frame_stats vpx_rc_frame_stats_t
First pass frame stats This is a mirror of vp9's FIRSTPASS_STATS except that spatial_layer_id is omit...
vpx_rc_encodeframe_decision_t
struct vpx_rc_encodeframe_decision vpx_rc_encodeframe_decision_t
Encode frame decision made by the external rate control model.
vpx_rc_get_encodeframe_decision_cb_fn_t
vpx_rc_status_t(* vpx_rc_get_encodeframe_decision_cb_fn_t)(vpx_rc_model_t rate_ctrl_model, const int frame_gop_index, vpx_rc_encodeframe_decision_t *frame_decision)
Receive encode frame decision callback prototype.
Definition vpx_ext_ratectrl.h:481
vpx_rc_status_t
enum vpx_rc_status vpx_rc_status_t
Status returned by rate control callback functions.
vpx_ext_rc_mode
vpx_ext_rc_mode
The rate control mode for the external rate control model.
Definition vpx_ext_ratectrl.h:83
vpx_rc_get_key_frame_decision_cb_fn_t
vpx_rc_status_t(* vpx_rc_get_key_frame_decision_cb_fn_t)(vpx_rc_model_t rate_ctrl_model, vpx_rc_key_frame_decision_t *key_frame_decision)
Get the key frame decision from the external rate control model.
Definition vpx_ext_ratectrl.h:505
vpx_rc_encodeframe_result_t
struct vpx_rc_encodeframe_result vpx_rc_encodeframe_result_t
Frame coding result.
vpx_rc_model_t
void * vpx_rc_model_t
Abstract rate control model handler.
Definition vpx_ext_ratectrl.h:119
vpx_rc_ref_name
vpx_rc_ref_name
Name for the ref frames returned by the external RC.
Definition vpx_ext_ratectrl.h:106
vpx_rc_send_tpl_gop_stats_cb_fn_t
vpx_rc_status_t(* vpx_rc_send_tpl_gop_stats_cb_fn_t)(vpx_rc_model_t rate_ctrl_model, const VpxTplGopStats *tpl_gop_stats)
Send TPL stats for the current GOP to the external rate control model callback prototype.
Definition vpx_ext_ratectrl.h:469
vpx_rc_config_t
struct vpx_rc_config vpx_rc_config_t
Encode config sent to external rate control model.
vpx_rc_delete_model_cb_fn_t
vpx_rc_status_t(* vpx_rc_delete_model_cb_fn_t)(vpx_rc_model_t rate_ctrl_model)
Delete the external rate control model callback prototype.
Definition vpx_ext_ratectrl.h:540
vpx_rc_ref_name_t
enum vpx_rc_ref_name vpx_rc_ref_name_t
Name for the ref frames returned by the external RC.
vpx_ext_rc_mode_t
enum vpx_ext_rc_mode vpx_ext_rc_mode_t
The rate control mode for the external rate control model.
vpx_rc_create_model_cb_fn_t
vpx_rc_status_t(* vpx_rc_create_model_cb_fn_t)(void *priv, const vpx_rc_config_t *ratectrl_config, vpx_rc_model_t *rate_ctrl_model_ptr)
Create an external rate control model callback prototype.
Definition vpx_ext_ratectrl.h:443
vpx_rc_funcs_t
struct vpx_rc_funcs vpx_rc_funcs_t
Callback function set for external rate control.
vpx_tpl.h
Describes the TPL stats descriptor and associated operations.