Index: source/libvpx/vp9/encoder/vp9_encoder.h |
=================================================================== |
--- source/libvpx/vp9/encoder/vp9_encoder.h (revision 281795) |
+++ source/libvpx/vp9/encoder/vp9_encoder.h (working copy) |
@@ -32,7 +32,7 @@ |
#include "vp9/encoder/vp9_mcomp.h" |
#include "vp9/encoder/vp9_quantize.h" |
#include "vp9/encoder/vp9_ratectrl.h" |
-#include "vp9/encoder/vp9_rdopt.h" |
+#include "vp9/encoder/vp9_rd.h" |
#include "vp9/encoder/vp9_speed_features.h" |
#include "vp9/encoder/vp9_svc_layercontext.h" |
#include "vp9/encoder/vp9_tokenize.h" |
@@ -248,11 +248,7 @@ |
VP9EncoderConfig oxcf; |
struct lookahead_ctx *lookahead; |
struct lookahead_entry *source; |
-#if CONFIG_MULTIPLE_ARF |
- struct lookahead_entry *alt_ref_source[REF_FRAMES]; |
-#else |
struct lookahead_entry *alt_ref_source; |
-#endif |
struct lookahead_entry *last_source; |
YV12_BUFFER_CONFIG *Source; |
@@ -266,14 +262,13 @@ |
int alt_is_last; // Alt same as last ( short circuit altref search) |
int gold_is_alt; // don't do both alt and gold search ( just do gold). |
+ int skippable_frame; |
+ |
int scaled_ref_idx[3]; |
int lst_fb_idx; |
int gld_fb_idx; |
int alt_fb_idx; |
-#if CONFIG_MULTIPLE_ARF |
- int alt_ref_fb_idx[REF_FRAMES - 3]; |
-#endif |
int refresh_last_frame; |
int refresh_golden_frame; |
int refresh_alt_ref_frame; |
@@ -291,13 +286,6 @@ |
TOKENEXTRA *tok; |
unsigned int tok_count[4][1 << 6]; |
-#if CONFIG_MULTIPLE_ARF |
- // Position within a frame coding order (including any additional ARF frames). |
- unsigned int sequence_number; |
- // Next frame in naturally occurring order that has not yet been coded. |
- int next_frame_in_order; |
-#endif |
- |
// Ambient reconstruction err target for force key frames |
int ambient_err; |
@@ -347,9 +335,6 @@ |
unsigned char *complexity_map; |
- unsigned char *active_map; |
- unsigned int active_map_enabled; |
- |
CYCLIC_REFRESH *cyclic_refresh; |
fractional_mv_step_fp *find_fractional_mv_step; |
@@ -363,6 +348,10 @@ |
uint64_t time_pick_lpf; |
uint64_t time_encode_sb_row; |
+#if CONFIG_FP_MB_STATS |
+ int use_fp_mb_stats; |
+#endif |
+ |
TWO_PASS twopass; |
YV12_BUFFER_CONFIG alt_ref_buffer; |
@@ -416,7 +405,11 @@ |
SVC svc; |
- int use_large_partition_rate; |
+ // Store frame variance info in SOURCE_VAR_BASED_PARTITION search type. |
+ diff *source_diff_var; |
+ // The threshold used in SOURCE_VAR_BASED_PARTITION search type. |
+ unsigned int source_var_thresh; |
+ int frames_till_next_var_check; |
int frame_flags; |
@@ -433,18 +426,9 @@ |
PC_TREE *pc_root; |
int partition_cost[PARTITION_CONTEXTS][PARTITION_TYPES]; |
-#if CONFIG_MULTIPLE_ARF |
- // ARF tracking variables. |
+ int multi_arf_allowed; |
int multi_arf_enabled; |
- unsigned int frame_coding_order_period; |
- unsigned int new_frame_coding_order_period; |
- int frame_coding_order[MAX_LAG_BUFFERS * 2]; |
- int arf_buffer_idx[MAX_LAG_BUFFERS * 3 / 2]; |
- int arf_weight[MAX_LAG_BUFFERS]; |
- int arf_buffered; |
- int this_frame_weight; |
- int max_arf_level; |
-#endif |
+ int multi_arf_last_grp_enabled; |
#if CONFIG_DENOISING |
VP9_DENOISER denoiser; |
@@ -544,10 +528,14 @@ |
int64_t vp9_rescale(int64_t val, int64_t num, int denom); |
+void vp9_set_high_precision_mv(VP9_COMP *cpi, int allow_high_precision_mv); |
+ |
YV12_BUFFER_CONFIG *vp9_scale_if_required(VP9_COMMON *cm, |
YV12_BUFFER_CONFIG *unscaled, |
YV12_BUFFER_CONFIG *scaled); |
+void vp9_apply_encoding_flags(VP9_COMP *cpi, vpx_enc_frame_flags_t flags); |
+ |
static INLINE void set_ref_ptrs(VP9_COMMON *cm, MACROBLOCKD *xd, |
MV_REFERENCE_FRAME ref0, |
MV_REFERENCE_FRAME ref1) { |