diff options
author | trav90 <travawine@palemoon.org> | 2018-10-19 23:05:00 -0500 |
---|---|---|
committer | trav90 <travawine@palemoon.org> | 2018-10-19 23:05:03 -0500 |
commit | d2499ead93dc4298c0882fe98902acb1b5209f99 (patch) | |
tree | cb0b942aed59e5108f9a3e9d64e7b77854383421 /third_party/aom/av1/encoder/ratectrl.h | |
parent | 41fbdea457bf50c0a43e1c27c5cbf7f0a3a9eb33 (diff) | |
download | UXP-d2499ead93dc4298c0882fe98902acb1b5209f99.tar UXP-d2499ead93dc4298c0882fe98902acb1b5209f99.tar.gz UXP-d2499ead93dc4298c0882fe98902acb1b5209f99.tar.lz UXP-d2499ead93dc4298c0882fe98902acb1b5209f99.tar.xz UXP-d2499ead93dc4298c0882fe98902acb1b5209f99.zip |
Update libaom to commit ID 1e227d41f0616de9548a673a83a21ef990b62591
Diffstat (limited to 'third_party/aom/av1/encoder/ratectrl.h')
-rw-r--r-- | third_party/aom/av1/encoder/ratectrl.h | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/third_party/aom/av1/encoder/ratectrl.h b/third_party/aom/av1/encoder/ratectrl.h index f0508da9e..198ecab97 100644 --- a/third_party/aom/av1/encoder/ratectrl.h +++ b/third_party/aom/av1/encoder/ratectrl.h @@ -9,8 +9,8 @@ * PATENTS file, you can obtain it at www.aomedia.org/license/patent. */ -#ifndef AV1_ENCODER_RATECTRL_H_ -#define AV1_ENCODER_RATECTRL_H_ +#ifndef AOM_AV1_ENCODER_RATECTRL_H_ +#define AOM_AV1_ENCODER_RATECTRL_H_ #include "aom/aom_codec.h" #include "aom/aom_integer.h" @@ -25,13 +25,27 @@ extern "C" { #define BPER_MB_NORMBITS 9 #define CUSTOMIZED_GF 1 -#define FIX_GF_INTERVAL_LENGTH 0 -#if FIX_GF_INTERVAL_LENGTH +#if CONFIG_FIX_GF_LENGTH #define FIXED_GF_LENGTH 16 +#define MAX_PYRAMID_LVL 4 +// We allow a frame to have at most two left/right descendants before changing +// them into to a subtree, i.e., we allow the following structure: +/* OUT_OF_ORDER_FRAME + / / \ \ +(two left children) F F F F (two right children) */ +// Therefore the max gf size supported by 4 layer structure is +// 1 (KEY/OVERLAY) + 1 + 2 + 4 + 16 (two children on both side of their parent) +#define MAX_PYRAMID_SIZE 24 #define USE_SYMM_MULTI_LAYER 1 +#define REDUCE_LAST_ALT_BOOST 1 +#define REDUCE_LAST_GF_LENGTH 1 +#define MULTI_LVL_BOOST_VBR_CQ 1 #else #define USE_SYMM_MULTI_LAYER 0 +#define REDUCE_LAST_ALT_BOOST 0 +#define REDUCE_LAST_GF_LENGTH 0 +#define MULTI_LVL_BOOST_VBR_CQ 0 #endif #if USE_SYMM_MULTI_LAYER @@ -159,6 +173,9 @@ typedef struct { // Auto frame-scaling variables. int rf_level_maxq[RATE_FACTOR_LEVELS]; + float_t arf_boost_factor; + // Q index used for ALT frame + int arf_q; } RATE_CONTROL; struct AV1_COMP; @@ -228,7 +245,7 @@ void av1_rc_compute_frame_size_bounds(const struct AV1_COMP *cpi, int *frame_over_shoot_limit); // Picks q and q bounds given the target for bits -int av1_rc_pick_q_and_bounds(const struct AV1_COMP *cpi, int width, int height, +int av1_rc_pick_q_and_bounds(struct AV1_COMP *cpi, int width, int height, int *bottom_index, int *top_index); // Estimates q to achieve a target bits per frame @@ -275,4 +292,4 @@ int av1_resize_one_pass_cbr(struct AV1_COMP *cpi); } // extern "C" #endif -#endif // AV1_ENCODER_RATECTRL_H_ +#endif // AOM_AV1_ENCODER_RATECTRL_H_ |