From 68569dee1416593955c1570d638b3d9250b33012 Mon Sep 17 00:00:00 2001 From: trav90 Date: Mon, 15 Oct 2018 21:45:30 -0500 Subject: Import aom library This is the reference implementation for the Alliance for Open Media's av1 video code. The commit used was 4d668d7feb1f8abd809d1bca0418570a7f142a36. --- third_party/aom/av1/encoder/firstpass.h | 202 ++++++++++++++++++++++++++++++++ 1 file changed, 202 insertions(+) create mode 100644 third_party/aom/av1/encoder/firstpass.h (limited to 'third_party/aom/av1/encoder/firstpass.h') diff --git a/third_party/aom/av1/encoder/firstpass.h b/third_party/aom/av1/encoder/firstpass.h new file mode 100644 index 000000000..db459cc22 --- /dev/null +++ b/third_party/aom/av1/encoder/firstpass.h @@ -0,0 +1,202 @@ +/* + * Copyright (c) 2016, Alliance for Open Media. All rights reserved + * + * This source code is subject to the terms of the BSD 2 Clause License and + * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License + * was not distributed with this source code in the LICENSE file, you can + * obtain it at www.aomedia.org/license/software. If the Alliance for Open + * Media Patent License 1.0 was not distributed with this source code in the + * PATENTS file, you can obtain it at www.aomedia.org/license/patent. + */ + +#ifndef AV1_ENCODER_FIRSTPASS_H_ +#define AV1_ENCODER_FIRSTPASS_H_ + +#include "av1/encoder/lookahead.h" +#include "av1/encoder/ratectrl.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if CONFIG_FP_MB_STATS + +#define FPMB_DCINTRA_MASK 0x01 + +#define FPMB_MOTION_ZERO_MASK 0x02 +#define FPMB_MOTION_LEFT_MASK 0x04 +#define FPMB_MOTION_RIGHT_MASK 0x08 +#define FPMB_MOTION_UP_MASK 0x10 +#define FPMB_MOTION_DOWN_MASK 0x20 + +#define FPMB_ERROR_SMALL_MASK 0x40 +#define FPMB_ERROR_LARGE_MASK 0x80 +#define FPMB_ERROR_SMALL_TH 2000 +#define FPMB_ERROR_LARGE_TH 48000 + +typedef struct { + uint8_t *mb_stats_start; + uint8_t *mb_stats_end; +} FIRSTPASS_MB_STATS; +#endif + +#if CONFIG_EXT_REFS +// Length of the bi-predictive frame group (BFG) +// NOTE: Currently each BFG contains one backward ref (BWF) frame plus a certain +// number of bi-predictive frames. +#define BFG_INTERVAL 2 +// The maximum number of extra ALT_REF's +// NOTE: This number cannot be greater than 2 or the reference frame buffer will +// overflow. +#define MAX_EXT_ARFS 2 +#define MIN_EXT_ARF_INTERVAL 4 +#endif // CONFIG_EXT_REFS + +#define VLOW_MOTION_THRESHOLD 950 + +typedef struct { + double frame; + double weight; + double intra_error; + 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; // Image mask rows top and bottom. + double inactive_zone_cols; // Image mask columns at left and right edges. + 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; +} FIRSTPASS_STATS; + +typedef enum { + KF_UPDATE = 0, + LF_UPDATE = 1, + GF_UPDATE = 2, + ARF_UPDATE = 3, + OVERLAY_UPDATE = 4, +#if CONFIG_EXT_REFS + BRF_UPDATE = 5, // Backward Reference Frame + LAST_BIPRED_UPDATE = 6, // Last Bi-predictive Frame + BIPRED_UPDATE = 7, // Bi-predictive Frame, but not the last one + INTNL_OVERLAY_UPDATE = 8, // Internal Overlay Frame + FRAME_UPDATE_TYPES = 9 +#else + FRAME_UPDATE_TYPES = 5 +#endif // CONFIG_EXT_REFS +} FRAME_UPDATE_TYPE; + +#define FC_ANIMATION_THRESH 0.15 +typedef enum { + FC_NORMAL = 0, + FC_GRAPHICS_ANIMATION = 1, + FRAME_CONTENT_TYPES = 2 +} FRAME_CONTENT_TYPE; + +typedef struct { + unsigned char index; + RATE_FACTOR_LEVEL rf_level[(MAX_LAG_BUFFERS * 2) + 1]; + FRAME_UPDATE_TYPE update_type[(MAX_LAG_BUFFERS * 2) + 1]; + unsigned char arf_src_offset[(MAX_LAG_BUFFERS * 2) + 1]; + unsigned char arf_update_idx[(MAX_LAG_BUFFERS * 2) + 1]; + unsigned char arf_ref_idx[(MAX_LAG_BUFFERS * 2) + 1]; +#if CONFIG_EXT_REFS + unsigned char brf_src_offset[(MAX_LAG_BUFFERS * 2) + 1]; + unsigned char bidir_pred_enabled[(MAX_LAG_BUFFERS * 2) + 1]; +#endif // CONFIG_EXT_REFS + int bit_allocation[(MAX_LAG_BUFFERS * 2) + 1]; +} GF_GROUP; + +typedef struct { + unsigned int section_intra_rating; + FIRSTPASS_STATS total_stats; + FIRSTPASS_STATS this_frame_stats; + const FIRSTPASS_STATS *stats_in; + const FIRSTPASS_STATS *stats_in_start; + const FIRSTPASS_STATS *stats_in_end; + FIRSTPASS_STATS total_left_stats; + int first_pass_done; + int64_t bits_left; + double modified_error_min; + double modified_error_max; + double modified_error_left; + double mb_av_energy; + +#if CONFIG_FP_MB_STATS + uint8_t *frame_mb_stats_buf; + uint8_t *this_frame_mb_stats; + FIRSTPASS_MB_STATS firstpass_mb_stats; +#endif + // An indication of the content type of the current frame + FRAME_CONTENT_TYPE fr_content_type; + + // Projected total bits available for a key frame group of frames + int64_t kf_group_bits; + + // Error score of frames still to be coded in kf group + int64_t kf_group_error_left; + + // The fraction for a kf groups total bits allocated to the inter frames + double kfgroup_inter_fraction; + + int sr_update_lag; + + int kf_zeromotion_pct; + int last_kfgroup_zeromotion_pct; + int gf_zeromotion_pct; + int active_worst_quality; + int baseline_active_worst_quality; + int extend_minq; + int extend_maxq; + int extend_minq_fast; + + GF_GROUP gf_group; +} TWO_PASS; + +struct AV1_COMP; + +void av1_init_first_pass(struct AV1_COMP *cpi); +void av1_rc_get_first_pass_params(struct AV1_COMP *cpi); +void av1_first_pass(struct AV1_COMP *cpi, const struct lookahead_entry *source); +void av1_end_first_pass(struct AV1_COMP *cpi); + +void av1_init_second_pass(struct AV1_COMP *cpi); +void av1_rc_get_second_pass_params(struct AV1_COMP *cpi); +void av1_twopass_postencode_update(struct AV1_COMP *cpi); + +// Post encode update of the rate control parameters for 2-pass +void av1_twopass_postencode_update(struct AV1_COMP *cpi); + +void av1_init_subsampling(struct AV1_COMP *cpi); + +void av1_calculate_coded_size(struct AV1_COMP *cpi, int *scaled_frame_width, + int *scaled_frame_height); + +#if CONFIG_EXT_REFS +static INLINE int get_number_of_extra_arfs(int interval, int arf_pending) { + if (arf_pending && MAX_EXT_ARFS > 0) + return interval >= MIN_EXT_ARF_INTERVAL * (MAX_EXT_ARFS + 1) + ? MAX_EXT_ARFS + : interval >= MIN_EXT_ARF_INTERVAL * MAX_EXT_ARFS + ? MAX_EXT_ARFS - 1 + : 0; + else + return 0; +} +#endif // CONFIG_EXT_REFS + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // AV1_ENCODER_FIRSTPASS_H_ -- cgit v1.2.3 From df9477dfa60ebb5d31bc142e58ce46535c17abce Mon Sep 17 00:00:00 2001 From: trav90 Date: Wed, 17 Oct 2018 05:59:08 -0500 Subject: Update aom to slightly newer commit ID --- third_party/aom/av1/encoder/firstpass.h | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'third_party/aom/av1/encoder/firstpass.h') diff --git a/third_party/aom/av1/encoder/firstpass.h b/third_party/aom/av1/encoder/firstpass.h index db459cc22..43104454c 100644 --- a/third_party/aom/av1/encoder/firstpass.h +++ b/third_party/aom/av1/encoder/firstpass.h @@ -177,10 +177,17 @@ void av1_twopass_postencode_update(struct AV1_COMP *cpi); // Post encode update of the rate control parameters for 2-pass void av1_twopass_postencode_update(struct AV1_COMP *cpi); -void av1_init_subsampling(struct AV1_COMP *cpi); - -void av1_calculate_coded_size(struct AV1_COMP *cpi, int *scaled_frame_width, - int *scaled_frame_height); +void av1_calculate_next_scaled_size(const struct AV1_COMP *cpi, + int *scaled_frame_width, + int *scaled_frame_height); + +#if CONFIG_FRAME_SUPERRES +// This is the size after superress scaling, which could be 1:1. +// Superres scaling happens after regular downscaling. +// TODO(afergs): Limit overall reduction to 1/2 of the original size +void av1_calculate_superres_size(const struct AV1_COMP *cpi, int *encoded_width, + int *encoded_height); +#endif // CONFIG_FRAME_SUPERRES #if CONFIG_EXT_REFS static INLINE int get_number_of_extra_arfs(int interval, int arf_pending) { -- cgit v1.2.3 From 7369c7d7a5eed32963d8af37658286617919f91c Mon Sep 17 00:00:00 2001 From: trav90 Date: Thu, 18 Oct 2018 06:04:57 -0500 Subject: Update aom to commit id f5bdeac22930ff4c6b219be49c843db35970b918 --- third_party/aom/av1/encoder/firstpass.h | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) (limited to 'third_party/aom/av1/encoder/firstpass.h') diff --git a/third_party/aom/av1/encoder/firstpass.h b/third_party/aom/av1/encoder/firstpass.h index 43104454c..266766d99 100644 --- a/third_party/aom/av1/encoder/firstpass.h +++ b/third_party/aom/av1/encoder/firstpass.h @@ -52,6 +52,13 @@ typedef struct { #define MIN_EXT_ARF_INTERVAL 4 #endif // CONFIG_EXT_REFS +#if CONFIG_FLEX_REFS +#define MIN_ZERO_MOTION 0.95 +#define MAX_SR_CODED_ERROR 40 +#define MAX_RAW_ERR_VAR 2000 +#define MIN_MV_IN_OUT 0.4 +#endif // CONFIG_FLEX_REFS + #define VLOW_MOTION_THRESHOLD 950 typedef struct { @@ -77,6 +84,10 @@ typedef struct { double new_mv_count; double duration; double count; +#if CONFIG_FLEX_REFS + // standard deviation for (0, 0) motion prediction error + double raw_error_stdev; +#endif // CONFIG_FLEX_REFS } FIRSTPASS_STATS; typedef enum { @@ -177,18 +188,6 @@ void av1_twopass_postencode_update(struct AV1_COMP *cpi); // Post encode update of the rate control parameters for 2-pass void av1_twopass_postencode_update(struct AV1_COMP *cpi); -void av1_calculate_next_scaled_size(const struct AV1_COMP *cpi, - int *scaled_frame_width, - int *scaled_frame_height); - -#if CONFIG_FRAME_SUPERRES -// This is the size after superress scaling, which could be 1:1. -// Superres scaling happens after regular downscaling. -// TODO(afergs): Limit overall reduction to 1/2 of the original size -void av1_calculate_superres_size(const struct AV1_COMP *cpi, int *encoded_width, - int *encoded_height); -#endif // CONFIG_FRAME_SUPERRES - #if CONFIG_EXT_REFS static INLINE int get_number_of_extra_arfs(int interval, int arf_pending) { if (arf_pending && MAX_EXT_ARFS > 0) -- cgit v1.2.3 From ec910d81405c736a4490383a250299a7837c2e64 Mon Sep 17 00:00:00 2001 From: trav90 Date: Thu, 18 Oct 2018 21:53:44 -0500 Subject: Update aom to commit id e87fb2378f01103d5d6e477a4ef6892dc714e614 --- third_party/aom/av1/encoder/firstpass.h | 38 ++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 12 deletions(-) (limited to 'third_party/aom/av1/encoder/firstpass.h') diff --git a/third_party/aom/av1/encoder/firstpass.h b/third_party/aom/av1/encoder/firstpass.h index 266766d99..9ac542bf3 100644 --- a/third_party/aom/av1/encoder/firstpass.h +++ b/third_party/aom/av1/encoder/firstpass.h @@ -12,6 +12,8 @@ #ifndef AV1_ENCODER_FIRSTPASS_H_ #define AV1_ENCODER_FIRSTPASS_H_ +#include "av1/common/enums.h" +#include "av1/common/onyxc_int.h" #include "av1/encoder/lookahead.h" #include "av1/encoder/ratectrl.h" @@ -45,19 +47,24 @@ typedef struct { // NOTE: Currently each BFG contains one backward ref (BWF) frame plus a certain // number of bi-predictive frames. #define BFG_INTERVAL 2 -// The maximum number of extra ALT_REF's -// NOTE: This number cannot be greater than 2 or the reference frame buffer will -// overflow. -#define MAX_EXT_ARFS 2 +// The maximum number of extra ALTREF's except ALTREF_FRAME +// NOTE: REF_FRAMES indicates the maximum number of frames that may be buffered +// to serve as references. Currently REF_FRAMES == 8. +#define USE_GF16_MULTI_LAYER 0 + +#if USE_GF16_MULTI_LAYER +#define MAX_EXT_ARFS (REF_FRAMES - BWDREF_FRAME) +#else // !USE_GF16_MULTI_LAYER +#define MAX_EXT_ARFS (REF_FRAMES - BWDREF_FRAME - 1) +#endif // USE_GF16_MULTI_LAYER + #define MIN_EXT_ARF_INTERVAL 4 -#endif // CONFIG_EXT_REFS -#if CONFIG_FLEX_REFS #define MIN_ZERO_MOTION 0.95 #define MAX_SR_CODED_ERROR 40 #define MAX_RAW_ERR_VAR 2000 #define MIN_MV_IN_OUT 0.4 -#endif // CONFIG_FLEX_REFS +#endif // CONFIG_EXT_REFS #define VLOW_MOTION_THRESHOLD 950 @@ -84,10 +91,10 @@ typedef struct { double new_mv_count; double duration; double count; -#if CONFIG_FLEX_REFS +#if CONFIG_EXT_REFS || CONFIG_BGSPRITE // standard deviation for (0, 0) motion prediction error double raw_error_stdev; -#endif // CONFIG_FLEX_REFS +#endif // CONFIG_EXT_REFS } FIRSTPASS_STATS; typedef enum { @@ -101,8 +108,9 @@ typedef enum { LAST_BIPRED_UPDATE = 6, // Last Bi-predictive Frame BIPRED_UPDATE = 7, // Bi-predictive Frame, but not the last one INTNL_OVERLAY_UPDATE = 8, // Internal Overlay Frame - FRAME_UPDATE_TYPES = 9 -#else + INTNL_ARF_UPDATE = 9, // Internal Altref Frame (candidate for ALTREF2) + FRAME_UPDATE_TYPES = 10 +#else // !CONFIG_EXT_REFS FRAME_UPDATE_TYPES = 5 #endif // CONFIG_EXT_REFS } FRAME_UPDATE_TYPE; @@ -124,6 +132,9 @@ typedef struct { #if CONFIG_EXT_REFS unsigned char brf_src_offset[(MAX_LAG_BUFFERS * 2) + 1]; unsigned char bidir_pred_enabled[(MAX_LAG_BUFFERS * 2) + 1]; + unsigned char ref_fb_idx_map[(MAX_LAG_BUFFERS * 2) + 1][REF_FRAMES]; + unsigned char refresh_idx[(MAX_LAG_BUFFERS * 2) + 1]; + unsigned char refresh_flag[(MAX_LAG_BUFFERS * 2) + 1]; #endif // CONFIG_EXT_REFS int bit_allocation[(MAX_LAG_BUFFERS * 2) + 1]; } GF_GROUP; @@ -183,12 +194,15 @@ void av1_end_first_pass(struct AV1_COMP *cpi); void av1_init_second_pass(struct AV1_COMP *cpi); void av1_rc_get_second_pass_params(struct AV1_COMP *cpi); -void av1_twopass_postencode_update(struct AV1_COMP *cpi); // Post encode update of the rate control parameters for 2-pass void av1_twopass_postencode_update(struct AV1_COMP *cpi); #if CONFIG_EXT_REFS +#if USE_GF16_MULTI_LAYER +void av1_ref_frame_map_idx_updates(struct AV1_COMP *cpi, int gf_frame_index); +#endif // USE_GF16_MULTI_LAYER + static INLINE int get_number_of_extra_arfs(int interval, int arf_pending) { if (arf_pending && MAX_EXT_ARFS > 0) return interval >= MIN_EXT_ARF_INTERVAL * (MAX_EXT_ARFS + 1) -- cgit v1.2.3 From bbcc64772580c8a979288791afa02d30bc476d2e Mon Sep 17 00:00:00 2001 From: trav90 Date: Fri, 19 Oct 2018 21:52:15 -0500 Subject: Update aom to v1.0.0 Update aom to commit id d14c5bb4f336ef1842046089849dee4a301fbbf0. --- third_party/aom/av1/encoder/firstpass.h | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) (limited to 'third_party/aom/av1/encoder/firstpass.h') diff --git a/third_party/aom/av1/encoder/firstpass.h b/third_party/aom/av1/encoder/firstpass.h index 9ac542bf3..4ff0f73b0 100644 --- a/third_party/aom/av1/encoder/firstpass.h +++ b/third_party/aom/av1/encoder/firstpass.h @@ -42,7 +42,6 @@ typedef struct { } FIRSTPASS_MB_STATS; #endif -#if CONFIG_EXT_REFS // Length of the bi-predictive frame group (BFG) // NOTE: Currently each BFG contains one backward ref (BWF) frame plus a certain // number of bi-predictive frames. @@ -64,7 +63,6 @@ typedef struct { #define MAX_SR_CODED_ERROR 40 #define MAX_RAW_ERR_VAR 2000 #define MIN_MV_IN_OUT 0.4 -#endif // CONFIG_EXT_REFS #define VLOW_MOTION_THRESHOLD 950 @@ -72,6 +70,7 @@ typedef struct { double frame; double weight; double intra_error; + double frame_avg_wavelet_energy; double coded_error; double sr_coded_error; double pcnt_inter; @@ -91,10 +90,8 @@ typedef struct { double new_mv_count; double duration; double count; -#if CONFIG_EXT_REFS || CONFIG_BGSPRITE // standard deviation for (0, 0) motion prediction error double raw_error_stdev; -#endif // CONFIG_EXT_REFS } FIRSTPASS_STATS; typedef enum { @@ -103,16 +100,12 @@ typedef enum { GF_UPDATE = 2, ARF_UPDATE = 3, OVERLAY_UPDATE = 4, -#if CONFIG_EXT_REFS BRF_UPDATE = 5, // Backward Reference Frame LAST_BIPRED_UPDATE = 6, // Last Bi-predictive Frame BIPRED_UPDATE = 7, // Bi-predictive Frame, but not the last one INTNL_OVERLAY_UPDATE = 8, // Internal Overlay Frame INTNL_ARF_UPDATE = 9, // Internal Altref Frame (candidate for ALTREF2) FRAME_UPDATE_TYPES = 10 -#else // !CONFIG_EXT_REFS - FRAME_UPDATE_TYPES = 5 -#endif // CONFIG_EXT_REFS } FRAME_UPDATE_TYPE; #define FC_ANIMATION_THRESH 0.15 @@ -129,13 +122,11 @@ typedef struct { unsigned char arf_src_offset[(MAX_LAG_BUFFERS * 2) + 1]; unsigned char arf_update_idx[(MAX_LAG_BUFFERS * 2) + 1]; unsigned char arf_ref_idx[(MAX_LAG_BUFFERS * 2) + 1]; -#if CONFIG_EXT_REFS unsigned char brf_src_offset[(MAX_LAG_BUFFERS * 2) + 1]; unsigned char bidir_pred_enabled[(MAX_LAG_BUFFERS * 2) + 1]; unsigned char ref_fb_idx_map[(MAX_LAG_BUFFERS * 2) + 1][REF_FRAMES]; unsigned char refresh_idx[(MAX_LAG_BUFFERS * 2) + 1]; unsigned char refresh_flag[(MAX_LAG_BUFFERS * 2) + 1]; -#endif // CONFIG_EXT_REFS int bit_allocation[(MAX_LAG_BUFFERS * 2) + 1]; } GF_GROUP; @@ -153,6 +144,7 @@ typedef struct { double modified_error_max; double modified_error_left; double mb_av_energy; + double frame_avg_haar_energy; #if CONFIG_FP_MB_STATS uint8_t *frame_mb_stats_buf; @@ -198,7 +190,6 @@ void av1_rc_get_second_pass_params(struct AV1_COMP *cpi); // Post encode update of the rate control parameters for 2-pass void av1_twopass_postencode_update(struct AV1_COMP *cpi); -#if CONFIG_EXT_REFS #if USE_GF16_MULTI_LAYER void av1_ref_frame_map_idx_updates(struct AV1_COMP *cpi, int gf_frame_index); #endif // USE_GF16_MULTI_LAYER @@ -213,7 +204,6 @@ static INLINE int get_number_of_extra_arfs(int interval, int arf_pending) { else return 0; } -#endif // CONFIG_EXT_REFS #ifdef __cplusplus } // extern "C" -- cgit v1.2.3 From b8df135c97a854c2ff9b4394b016649c601177fa Mon Sep 17 00:00:00 2001 From: trav90 Date: Fri, 19 Oct 2018 23:00:02 -0500 Subject: Update libaom to rev b25610052a1398032320008d69b51d2da94f5928 --- third_party/aom/av1/encoder/firstpass.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'third_party/aom/av1/encoder/firstpass.h') diff --git a/third_party/aom/av1/encoder/firstpass.h b/third_party/aom/av1/encoder/firstpass.h index 4ff0f73b0..b0c1a21e4 100644 --- a/third_party/aom/av1/encoder/firstpass.h +++ b/third_party/aom/av1/encoder/firstpass.h @@ -122,6 +122,11 @@ typedef struct { unsigned char arf_src_offset[(MAX_LAG_BUFFERS * 2) + 1]; unsigned char arf_update_idx[(MAX_LAG_BUFFERS * 2) + 1]; unsigned char arf_ref_idx[(MAX_LAG_BUFFERS * 2) + 1]; +#if USE_SYMM_MULTI_LAYER + unsigned char arf_pos_in_gf[(MAX_LAG_BUFFERS * 2) + 1]; + unsigned char pyramid_level[(MAX_LAG_BUFFERS * 2) + 1]; + unsigned char pyramid_height; +#endif unsigned char brf_src_offset[(MAX_LAG_BUFFERS * 2) + 1]; unsigned char bidir_pred_enabled[(MAX_LAG_BUFFERS * 2) + 1]; unsigned char ref_fb_idx_map[(MAX_LAG_BUFFERS * 2) + 1][REF_FRAMES]; @@ -186,6 +191,8 @@ void av1_end_first_pass(struct AV1_COMP *cpi); void av1_init_second_pass(struct AV1_COMP *cpi); void av1_rc_get_second_pass_params(struct AV1_COMP *cpi); +void av1_configure_buffer_updates_firstpass(struct AV1_COMP *cpi, + FRAME_UPDATE_TYPE update_type); // Post encode update of the rate control parameters for 2-pass void av1_twopass_postencode_update(struct AV1_COMP *cpi); -- cgit v1.2.3 From d2499ead93dc4298c0882fe98902acb1b5209f99 Mon Sep 17 00:00:00 2001 From: trav90 Date: Fri, 19 Oct 2018 23:05:00 -0500 Subject: Update libaom to commit ID 1e227d41f0616de9548a673a83a21ef990b62591 --- third_party/aom/av1/encoder/firstpass.h | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) (limited to 'third_party/aom/av1/encoder/firstpass.h') diff --git a/third_party/aom/av1/encoder/firstpass.h b/third_party/aom/av1/encoder/firstpass.h index b0c1a21e4..4b7325ae2 100644 --- a/third_party/aom/av1/encoder/firstpass.h +++ b/third_party/aom/av1/encoder/firstpass.h @@ -9,8 +9,8 @@ * PATENTS file, you can obtain it at www.aomedia.org/license/patent. */ -#ifndef AV1_ENCODER_FIRSTPASS_H_ -#define AV1_ENCODER_FIRSTPASS_H_ +#ifndef AOM_AV1_ENCODER_FIRSTPASS_H_ +#define AOM_AV1_ENCODER_FIRSTPASS_H_ #include "av1/common/enums.h" #include "av1/common/onyxc_int.h" @@ -47,15 +47,7 @@ typedef struct { // number of bi-predictive frames. #define BFG_INTERVAL 2 // The maximum number of extra ALTREF's except ALTREF_FRAME -// NOTE: REF_FRAMES indicates the maximum number of frames that may be buffered -// to serve as references. Currently REF_FRAMES == 8. -#define USE_GF16_MULTI_LAYER 0 - -#if USE_GF16_MULTI_LAYER -#define MAX_EXT_ARFS (REF_FRAMES - BWDREF_FRAME) -#else // !USE_GF16_MULTI_LAYER #define MAX_EXT_ARFS (REF_FRAMES - BWDREF_FRAME - 1) -#endif // USE_GF16_MULTI_LAYER #define MIN_EXT_ARF_INTERVAL 4 @@ -126,6 +118,7 @@ typedef struct { unsigned char arf_pos_in_gf[(MAX_LAG_BUFFERS * 2) + 1]; unsigned char pyramid_level[(MAX_LAG_BUFFERS * 2) + 1]; unsigned char pyramid_height; + unsigned char pyramid_lvl_nodes[MAX_PYRAMID_LVL]; #endif unsigned char brf_src_offset[(MAX_LAG_BUFFERS * 2) + 1]; unsigned char bidir_pred_enabled[(MAX_LAG_BUFFERS * 2) + 1]; @@ -197,10 +190,6 @@ void av1_configure_buffer_updates_firstpass(struct AV1_COMP *cpi, // Post encode update of the rate control parameters for 2-pass void av1_twopass_postencode_update(struct AV1_COMP *cpi); -#if USE_GF16_MULTI_LAYER -void av1_ref_frame_map_idx_updates(struct AV1_COMP *cpi, int gf_frame_index); -#endif // USE_GF16_MULTI_LAYER - static INLINE int get_number_of_extra_arfs(int interval, int arf_pending) { if (arf_pending && MAX_EXT_ARFS > 0) return interval >= MIN_EXT_ARF_INTERVAL * (MAX_EXT_ARFS + 1) @@ -216,4 +205,4 @@ static INLINE int get_number_of_extra_arfs(int interval, int arf_pending) { } // extern "C" #endif -#endif // AV1_ENCODER_FIRSTPASS_H_ +#endif // AOM_AV1_ENCODER_FIRSTPASS_H_ -- cgit v1.2.3