AOMedia AV1 Codec
FIRSTPASS_STATS Struct Reference

The stucture of acummulated frame stats in the first pass. More...

#include <firstpass.h>

Data Fields

double frame
 
double weight
 
double intra_error
 
double frame_avg_wavelet_energy
 
double coded_error
 
double sr_coded_error
 
double pcnt_inter
 
double pcnt_motion
 
double pcnt_second_ref
 
double pcnt_neutral
 
double intra_skip_pct
 
double inactive_zone_rows
 
double inactive_zone_cols
 
double MVr
 
double mvr_abs
 
double MVc
 
double mvc_abs
 
double MVrv
 
double MVcv
 
double mv_in_out_count
 
double new_mv_count
 
double duration
 
double count
 
double raw_error_stdev
 
int64_t is_flash
 
double noise_var
 
double cor_coeff
 

Detailed Description

The stucture of acummulated frame stats in the first pass.

Errors (coded_error, intra_error, etc.) and counters (new_mv_count) are normalized to each MB. MV related stats (MVc, MVr, etc.) are normalized to the frame width and height. See function normalize_firstpass_stats.

Field Documentation

◆ frame

double FIRSTPASS_STATS::frame

Frame number in display order, if stats are for a single frame. No real meaning for a collection of frames.

◆ weight

double FIRSTPASS_STATS::weight

Weight assigned to this frame (or total weight for the collection of frames) currently based on intra factor and brightness factor. This is used to distribute bits betweeen easier and harder frames.

Referenced by define_kf_interval().

◆ intra_error

double FIRSTPASS_STATS::intra_error

◆ frame_avg_wavelet_energy

double FIRSTPASS_STATS::frame_avg_wavelet_energy

Average wavelet energy computed using Discrete Wavelet Transform (DWT).

Referenced by define_kf_interval(), find_next_key_frame(), and get_twopass_worst_quality().

◆ coded_error

double FIRSTPASS_STATS::coded_error

Best of intra pred error and inter pred error using last frame as ref.

Referenced by av1_get_second_pass_params(), av1_gop_bit_allocation(), calculate_total_gf_group_bits(), define_kf_interval(), find_next_key_frame(), and get_twopass_worst_quality().

◆ sr_coded_error

double FIRSTPASS_STATS::sr_coded_error

Best of intra pred error and inter pred error using golden frame as ref.

Referenced by calculate_total_gf_group_bits(), define_kf_interval(), find_next_key_frame(), and get_twopass_worst_quality().

◆ pcnt_inter

double FIRSTPASS_STATS::pcnt_inter

Percentage of blocks with inter pred error < intra pred error.

Referenced by av1_gop_bit_allocation(), define_kf_interval(), and get_twopass_worst_quality().

◆ pcnt_motion

double FIRSTPASS_STATS::pcnt_motion

Percentage of blocks using (inter prediction and) non-zero motion vectors.

Referenced by define_kf_interval(), and get_twopass_worst_quality().

◆ pcnt_second_ref

double FIRSTPASS_STATS::pcnt_second_ref

Percentage of blocks where golden frame was better than last or intra: inter pred error using golden frame < inter pred error using last frame and inter pred error using golden frame < intra pred error

Referenced by av1_gop_bit_allocation(), define_kf_interval(), and get_twopass_worst_quality().

◆ pcnt_neutral

double FIRSTPASS_STATS::pcnt_neutral

Percentage of blocks where intra and inter prediction errors were very close. Note that this is a 'weighted count', that is, the so blocks may be weighted by how close the two errors were.

Referenced by av1_gop_bit_allocation(), define_kf_interval(), and get_twopass_worst_quality().

◆ intra_skip_pct

double FIRSTPASS_STATS::intra_skip_pct

Percentage of blocks that have almost no intra error residual (i.e. are in effect completely flat and untextured in the intra domain). In natural videos this is uncommon, but it is much more common in animations, graphics and screen content, so may be used as a signal to detect these types of content.

Referenced by define_kf_interval(), find_next_key_frame(), and get_twopass_worst_quality().

◆ inactive_zone_rows

double FIRSTPASS_STATS::inactive_zone_rows

Image mask rows top and bottom.

Referenced by define_kf_interval(), and get_twopass_worst_quality().

◆ inactive_zone_cols

double FIRSTPASS_STATS::inactive_zone_cols

Image mask columns at left and right edges.

Referenced by define_kf_interval().

◆ MVr

double FIRSTPASS_STATS::MVr

Average of row motion vectors.

Referenced by define_kf_interval(), and get_twopass_worst_quality().

◆ mvr_abs

double FIRSTPASS_STATS::mvr_abs

Mean of absolute value of row motion vectors.

Referenced by define_kf_interval(), and get_twopass_worst_quality().

◆ MVc

double FIRSTPASS_STATS::MVc

Mean of column motion vectors.

Referenced by define_kf_interval(), and get_twopass_worst_quality().

◆ mvc_abs

double FIRSTPASS_STATS::mvc_abs

Mean of absolute value of column motion vectors.

Referenced by define_kf_interval(), and get_twopass_worst_quality().

◆ MVrv

double FIRSTPASS_STATS::MVrv

Variance of row motion vectors.

Referenced by define_kf_interval().

◆ MVcv

double FIRSTPASS_STATS::MVcv

Variance of column motion vectors.

Referenced by define_kf_interval().

◆ mv_in_out_count

double FIRSTPASS_STATS::mv_in_out_count

Value in range [-1,1] indicating fraction of row and column motion vectors that point inwards (negative MV value) or outwards (positive MV value). For example, value of 1 indicates, all row/column MVs are inwards.

Referenced by define_kf_interval(), and get_twopass_worst_quality().

◆ new_mv_count

double FIRSTPASS_STATS::new_mv_count

Count of unique non-zero motion vectors.

Referenced by define_kf_interval(), and get_twopass_worst_quality().

◆ duration

double FIRSTPASS_STATS::duration

Duration of the frame / collection of frames.

Referenced by av1_get_second_pass_params(), and define_kf_interval().

◆ count

double FIRSTPASS_STATS::count

1.0 if stats are for a single frame, OR Number of frames in this collection for which the stats are accumulated.

Referenced by av1_get_second_pass_params(), and define_kf_interval().

◆ raw_error_stdev

double FIRSTPASS_STATS::raw_error_stdev

standard deviation for (0, 0) motion prediction error

Referenced by get_twopass_worst_quality().

◆ is_flash

int64_t FIRSTPASS_STATS::is_flash

Whether the frame contains a flash

Referenced by find_next_key_frame().

◆ noise_var

double FIRSTPASS_STATS::noise_var

Estimated noise variance

Referenced by calculate_gf_length(), and find_next_key_frame().

◆ cor_coeff

double FIRSTPASS_STATS::cor_coeff

Correlation coefficient with the previous frame

Referenced by calculate_gf_length(), calculate_total_gf_group_bits(), and find_next_key_frame().


The documentation for this struct was generated from the following file: