 |
AOMedia AV1 Codec
|
12 #ifndef AOM_AV1_ENCODER_PASS2_STRATEGY_H_
13 #define AOM_AV1_ENCODER_PASS2_STRATEGY_H_
31 double gf_group_raw_error;
32 double gf_group_skip_pct;
33 double gf_group_inactive_zone_rows;
35 double mv_ratio_accumulator;
36 double decay_accumulator;
37 double zero_motion_accumulator;
38 double loop_decay_rate;
39 double last_loop_decay_rate;
40 double this_frame_mv_in_out;
41 double mv_in_out_accumulator;
42 double abs_mv_in_out_accumulator;
44 double avg_sr_coded_error;
45 double avg_pcnt_second_ref;
46 double avg_new_mv_count;
47 double avg_wavelet_energy;
48 double avg_raw_err_stdev;
49 int non_zero_stdev_count;
59 double frame_coded_error;
60 double frame_sr_coded_error;
65 void av1_init_second_pass(
struct AV1_COMP *cpi);
67 void av1_init_single_pass_lap(
AV1_COMP *cpi);
91 unsigned int frame_flags);
128 GF_GROUP *gf_group,
int is_key_frame,
int use_arf,
129 int64_t gf_group_bits);
135 #endif // AOM_AV1_ENCODER_PASS2_STRATEGY_H_
void av1_gop_bit_allocation(const AV1_COMP *cpi, RATE_CONTROL *const rc, GF_GROUP *gf_group, int is_key_frame, int use_arf, int64_t gf_group_bits)
Distributes bits to frames in a group.
Definition: pass2_strategy.c:2623
int width
Definition: encoder.h:1915
double pcnt_neutral
Definition: firstpass.h:88
int projected_frame_size
Definition: ratectrl.h:137
FrameProbInfo frame_probs
Definition: encoder.h:2618
int mb_rows
Definition: av1_common_int.h:510
Declares top-level encoder structures and functions.
The stucture of acummulated frame stats in the first pass.
Definition: firstpass.h:41
int av1_calc_iframe_target_size_one_pass_cbr(const struct AV1_COMP *cpi)
Calculates how many bits to use for an i frame in one pass cbr.
int64_t gf_group_bits
Definition: ratectrl.h:249
Rate Control parameters and status.
Definition: ratectrl.h:121
int active_best_quality[MAX_ARF_LAYERS+1]
Definition: ratectrl.h:446
Data related to the current GF/ARF group and the individual frames within the group.
Definition: firstpass.h:344
static void define_gf_group_pass0(AV1_COMP *cpi)
Define a GF group in one pass mode when no look ahead stats are available.
Definition: pass2_strategy.c:2121
void av1_get_second_pass_params(AV1_COMP *cpi, EncodeFrameParams *const frame_params, unsigned int frame_flags)
Main per frame entry point for second pass of two pass encode.
Definition: pass2_strategy.c:3607
Encoder rate control configuration parameters.
Definition: encoder.h:503
static void calculate_gf_length(AV1_COMP *cpi, int max_gop_length, int max_intervals)
Determine the length of future GF groups.
Definition: pass2_strategy.c:1856
int64_t is_flash
Definition: firstpass.h:155
static int get_twopass_worst_quality(AV1_COMP *cpi, const double av_frame_err, double inactive_zone, int av_target_bandwidth)
Choose a target maximum Q for a group of frames.
Definition: pass2_strategy.c:307
bool enable_tpl_model
Definition: encoder.h:833
unsigned int vbr_corpus_complexity_lap
Definition: encoder.h:533
double MVcv
Definition: firstpass.h:128
Primary Rate Control parameters and status.
Definition: ratectrl.h:243
TWO_PASS twopass
Definition: encoder.h:2483
SPEED_FEATURES sf
Definition: encoder.h:2833
int last_q[FRAME_TYPES]
Definition: ratectrl.h:461
int best_quality
Definition: ratectrl.h:202
unsigned char gf_frame_index
Definition: encoder.h:2864
COMPRESSOR_STAGE compressor_stage
Definition: encoder.h:3125
accumulated stats and features for a frame
Definition: pass2_strategy.h:56
int arnr_max_frames
Definition: encoder.h:815
double pcnt_motion
Definition: firstpass.h:76
static void define_gf_group(AV1_COMP *cpi, EncodeFrameParams *frame_params, int is_final_pass)
Define a GF group.
Definition: pass2_strategy.c:2408
int gf_intervals[MAX_NUM_GF_INTERVALS]
Definition: ratectrl.h:264
accumulated stats and features in a gf group
Definition: pass2_strategy.h:28
@ AOM_CQ
Definition: aom_encoder.h:187
GF_GROUP gf_group
Definition: encoder.h:2453
double pcnt_second_ref
Definition: firstpass.h:82
Two pass status and control data.
Definition: firstpass.h:412
KeyFrameCfg kf_cfg
Definition: encoder.h:911
int spatial_layer_id
Definition: av1_common_int.h:1054
double sr_coded_error
Definition: firstpass.h:68
int lap_enabled
Definition: encoder.h:2463
THIRD_PASS_DEC_CTX * third_pass_ctx
Definition: encoder.h:3279
int avg_frame_qindex[FRAME_TYPES]
Definition: ratectrl.h:338
static int define_gf_group_pass3(AV1_COMP *cpi, EncodeFrameParams *frame_params, int is_final_pass)
Define a GF group for the third apss.
Definition: pass2_strategy.c:2565
double MVrv
Definition: firstpass.h:124
Describes the codec algorithm interface to applications.
TWO_PASS_FRAME twopass_frame
Definition: encoder.h:3274
Main encoder configuration data structure.
Definition: encoder.h:894
int tx_type_probs[FRAME_UPDATE_TYPES][TX_SIZES_ALL][TX_TYPES]
Definition: encoder.h:1082
int av1_calc_pframe_target_size_one_pass_cbr(const struct AV1_COMP *cpi, FRAME_UPDATE_TYPE frame_update_type)
Calculates how many bits to use for a P frame in one pass cbr.
static void find_next_key_frame(AV1_COMP *cpi, FIRSTPASS_STATS *this_frame)
Determine the next key frame group.
Definition: pass2_strategy.c:3128
int rate_error_estimate
Definition: ratectrl.h:487
Top level encoder structure.
Definition: encoder.h:2632
int gfu_boost
Definition: ratectrl.h:259
int height
Definition: av1_common_int.h:781
TplParams tpl_data
Definition: encoder.h:2551
@ AOM_CBR
Definition: aom_encoder.h:186
int initial_mbs
Definition: encoder.h:2915
int key_freq_min
Definition: encoder.h:449
int temporal_layer_id
Definition: av1_common_int.h:1048
enum aom_rc_mode mode
Definition: encoder.h:587
FRAME_TYPE frame_type
Definition: encoder.h:3310
Data structure used for managing first pass stats.
Definition: firstpass.h:177
TEMPORAL_FILTER_INFO tf_info
Definition: encoder.h:2493
FIRSTPASS_STATS total_stats
Definition: firstpass.h:231
SequenceHeader * seq_params
Definition: av1_common_int.h:981
const FIRSTPASS_STATS * av1_firstpass_info_peek(const FIRSTPASS_INFO *firstpass_info, int offset_from_cur)
Peek at a stats from firstpass_info.
struct lookahead_ctx * lookahead
Definition: encoder.h:2425
int obmc_probs[FRAME_UPDATE_TYPES][BLOCK_SIZES_ALL]
Definition: encoder.h:1067
double mv_in_out_count
Definition: firstpass.h:134
AV1_COMMON common
Definition: encoder.h:2675
int under_shoot_pct
Definition: encoder.h:562
int cq_level
Definition: encoder.h:582
double mvc_abs
Definition: firstpass.h:120
double new_mv_count
Definition: firstpass.h:138
InitialDimensions initial_dimensions
Definition: encoder.h:2907
double pcnt_inter
Definition: firstpass.h:72
Declares frame encoding functions.
int av1_tpl_setup_stats(struct AV1_COMP *cpi, int gop_eval, const struct EncodeFrameParams *const frame_params)
Implements temporal dependency modelling for a GOP (GF/ARF group) and selects between 16 and 32 frame...
double inactive_zone_rows
Definition: firstpass.h:100
int best_allowed_q
Definition: encoder.h:578
void av1_twopass_postencode_update(AV1_COMP *cpi)
Adjustments to two pass and rate control after each frame.
Definition: pass2_strategy.c:3962
bool auto_key
Definition: encoder.h:477
int over_shoot_pct
Definition: encoder.h:568
int frames_till_gf_update_due
Definition: ratectrl.h:157
int av1_calc_iframe_target_size_one_pass_vbr(const struct AV1_COMP *const cpi)
Calculates how many bits to use for an i frame in one pass vbr.
int av1_lookahead_pop_sz(struct lookahead_ctx *ctx, COMPRESSOR_STAGE stage)
Get pop_sz value.
int internal_altref_allowed
Definition: encoder.h:2443
int vbrmin_section
Definition: encoder.h:599
static int has_no_stats_stage(const AV1_COMP *const cpi)
Check if the current stage has statistics.
Definition: encoder.h:3732
int height
Definition: encoder.h:1916
Initial frame dimensions.
Definition: encoder.h:1914
int fwd_kf_dist
Definition: encoder.h:482
enum aom_enc_pass pass
Definition: encoder.h:1019
PRIMARY_RATE_CONTROL p_rc
Definition: encoder.h:2488
int intervals_till_gf_calculate_due
Definition: ratectrl.h:162
static int64_t calculate_total_gf_group_bits(AV1_COMP *cpi, double gf_group_err)
Calculates the bit target for this GF/ARF group.
Definition: pass2_strategy.c:764
int vbrbias
Definition: encoder.h:594
int64_t target_bandwidth
Definition: encoder.h:527
int switchable_interp_probs[FRAME_UPDATE_TYPES][((SWITCHABLE_FILTERS+1) *4)][SWITCHABLE_FILTERS]
Definition: encoder.h:1091
int base_frame_target
Definition: ratectrl.h:128
int show_frame
Definition: av1_common_int.h:890
int rolling_target_bits
Definition: ratectrl.h:508
TPL_SPEED_FEATURES tpl_sf
Definition: speed_features.h:1402
CommonQuantParams quant_params
Definition: av1_common_int.h:927
double duration
Definition: firstpass.h:142
int64_t vbr_bits_off_target
Definition: ratectrl.h:492
int rolling_actual_bits
Definition: ratectrl.h:514
static int define_kf_interval(AV1_COMP *cpi, const FIRSTPASS_INFO *firstpass_info, int num_frames_to_detect_scenecut, int search_start_idx)
Determine the location of the next key frame.
Definition: pass2_strategy.c:2861
@ AOM_RC_ONE_PASS
Definition: aom_encoder.h:176
Describes the encoder algorithm interface to applications.
Encoder config related to the coding of key frames.
Definition: encoder.h:445
int active_worst_quality
Definition: ratectrl.h:219
RATE_CONTROL rc
Definition: encoder.h:2813
int base_qindex
Definition: av1_common_int.h:618
int vbrmax_section
Definition: encoder.h:604
Top level common structure used by both encoder and decoder.
Definition: av1_common_int.h:755
int kf_boost
Definition: ratectrl.h:254
int64_t total_actual_bits
Definition: ratectrl.h:472
@ AOM_Q
Definition: aom_encoder.h:188
AlgoCfg algo_cfg
Definition: encoder.h:906
AV1LevelParams level_params
Definition: encoder.h:2468
void av1_cyclic_refresh_set_golden_update(struct AV1_COMP *const cpi)
Set golden frame update interval nased on cyclic refresh.
double intra_error
Definition: firstpass.h:56
double noise_var
Definition: firstpass.h:159
int skip_tpl_setup_stats
Definition: encoder.h:2734
double inactive_zone_cols
Definition: firstpass.h:104
double MVc
Definition: firstpass.h:116
double framerate
Definition: encoder.h:2818
int MBs
Definition: av1_common_int.h:520
contains per-frame encoding parameters decided upon by av1_encode_strategy() and passed down to av1_e...
Definition: encoder.h:3302
aom_rc_mode
Rate control mode.
Definition: aom_encoder.h:184
double intra_skip_pct
Definition: firstpass.h:96
double raw_error_stdev
Definition: firstpass.h:151
double mvr_abs
Definition: firstpass.h:112
AV1_PRIMARY * ppi
Definition: encoder.h:2636
double MVr
Definition: firstpass.h:108
int av1_firstpass_info_future_count(const FIRSTPASS_INFO *firstpass_info, int offset_from_cur)
Count the future stats from the target in firstpass_info Note that the target stats will be counted a...
double count
Definition: firstpass.h:147
unsigned int av1_lookahead_depth(struct lookahead_ctx *ctx, COMPRESSOR_STAGE stage)
Get the number of frames currently in the lookahead queue.
int64_t vbr_bits_off_target_fast
Definition: ratectrl.h:497
Encoder-side probabilities for pruning of various AV1 tools.
Definition: encoder.h:1061
Frame level Two pass status and control data.
Definition: firstpass.h:455
int warped_probs[FRAME_UPDATE_TYPES]
Definition: encoder.h:1074
int width
Definition: av1_common_int.h:780
GF_STATE gf_state
Definition: encoder.h:2458
int frames_left
Definition: encoder.h:2478
AV1EncoderConfig oxcf
Definition: encoder.h:2680
int av1_calc_pframe_target_size_one_pass_vbr(const struct AV1_COMP *const cpi, FRAME_UPDATE_TYPE frame_update_type)
Calculates how many bits to use for a P frame in one pass vbr.
double cor_coeff
Definition: firstpass.h:163
double coded_error
Definition: firstpass.h:64
RateControlCfg rc_cfg
Definition: encoder.h:916
enum aom_bit_depth aom_bit_depth_t
Bit depth for codecThis enumeration determines the bit depth of the codec.
int cur_gf_index
Definition: ratectrl.h:269
CurrentFrame current_frame
Definition: av1_common_int.h:759
FRAME_INFO frame_info
Definition: encoder.h:2897
CommonModeInfoParams mi_params
Definition: av1_common_int.h:915
double frame_avg_wavelet_energy
Definition: firstpass.h:60
double avg_q
Definition: ratectrl.h:456
void av1_gop_setup_structure(struct AV1_COMP *cpi)
Set up the Group-Of-Pictures structure for this GF_GROUP.
int show_frame
Definition: encoder.h:3320
int frames_to_key
Definition: ratectrl.h:172
int worst_quality
Definition: ratectrl.h:198
int key_freq_max
Definition: encoder.h:454
double weight
Definition: firstpass.h:52
@ AOM_RC_THIRD_PASS
Definition: aom_encoder.h:179