| Index: source/libvpx/vp9/encoder/vp9_onyx_int.h
|
| ===================================================================
|
| --- source/libvpx/vp9/encoder/vp9_onyx_int.h (revision 223100)
|
| +++ source/libvpx/vp9/encoder/vp9_onyx_int.h (working copy)
|
| @@ -36,6 +36,8 @@
|
| #define DISABLE_RC_LONG_TERM_MEM 0
|
| #endif
|
|
|
| +// #define MODE_TEST_HIT_STATS
|
| +
|
| // #define SPEEDSTATS 1
|
| #if CONFIG_MULTIPLE_ARF
|
| // Set MIN_GF_INTERVAL to 1 for the full decomposition.
|
| @@ -145,19 +147,20 @@
|
| // const MODE_DEFINITION vp9_mode_order[MAX_MODES] used in the rd code.
|
| typedef enum {
|
| THR_NEARESTMV,
|
| + THR_NEARESTA,
|
| + THR_NEARESTG,
|
| +
|
| THR_DC,
|
|
|
| - THR_NEARESTA,
|
| - THR_NEARESTG,
|
| THR_NEWMV,
|
| + THR_NEWA,
|
| + THR_NEWG,
|
| +
|
| + THR_NEARMV,
|
| + THR_NEARA,
|
| THR_COMP_NEARESTLA,
|
| - THR_NEARMV,
|
| THR_COMP_NEARESTGA,
|
|
|
| - THR_NEWG,
|
| - THR_NEWA,
|
| - THR_NEARA,
|
| -
|
| THR_TM,
|
|
|
| THR_COMP_NEARLA,
|
| @@ -255,7 +258,6 @@
|
| int reduce_first_step_size;
|
| int auto_mv_step_size;
|
| int optimize_coefficients;
|
| - int search_best_filter;
|
| int static_segmentation;
|
| int comp_inter_joint_search_thresh;
|
| int adaptive_rd_thresh;
|
| @@ -266,12 +268,11 @@
|
| int use_lp32x32fdct;
|
| int use_avoid_tested_higherror;
|
| int skip_lots_of_modes;
|
| - int adjust_thresholds_by_speed;
|
| int partition_by_variance;
|
| int use_one_partition_size_always;
|
| int less_rectangular_check;
|
| int use_square_partition_only;
|
| - int unused_mode_skip_lvl;
|
| + int mode_skip_start;
|
| int reference_masking;
|
| BLOCK_SIZE always_this_block_size;
|
| int auto_min_max_partition_size;
|
| @@ -298,6 +299,7 @@
|
| int use_rd_breakout;
|
| int use_uv_intra_rd_estimate;
|
| int use_fast_lpf_pick;
|
| + int use_fast_coef_updates; // 0: 2-loop, 1: 1-loop, 2: 1-loop reduced
|
| } SPEED_FEATURES;
|
|
|
| typedef struct VP9_COMP {
|
| @@ -348,6 +350,10 @@
|
| int lst_fb_idx;
|
| int gld_fb_idx;
|
| int alt_fb_idx;
|
| +
|
| + int current_layer;
|
| + int use_svc;
|
| +
|
| #if CONFIG_MULTIPLE_ARF
|
| int alt_ref_fb_idx[NUM_REF_FRAMES - 3];
|
| #endif
|
| @@ -377,7 +383,7 @@
|
| unsigned int mode_check_freq[MAX_MODES];
|
| unsigned int mode_test_hit_counts[MAX_MODES];
|
| unsigned int mode_chosen_counts[MAX_MODES];
|
| - int64_t unused_mode_skip_mask;
|
| + int64_t mode_skip_mask;
|
| int ref_frame_mask;
|
| int set_ref_frame_mask;
|
|
|
| @@ -487,6 +493,7 @@
|
| int last_boost;
|
| int kf_boost;
|
| int kf_zeromotion_pct;
|
| + int gf_zeromotion_pct;
|
|
|
| int64_t target_bandwidth;
|
| struct vpx_codec_pkt_list *output_pkt_list;
|
| @@ -647,6 +654,10 @@
|
| int initial_width;
|
| int initial_height;
|
|
|
| + int number_spatial_layers;
|
| + int enable_encode_breakout; // Default value is 1. From first pass stats,
|
| + // encode_breakout may be disabled.
|
| +
|
| #if CONFIG_MULTIPLE_ARF
|
| // ARF tracking variables.
|
| int multi_arf_enabled;
|
| @@ -663,6 +674,12 @@
|
| #ifdef ENTROPY_STATS
|
| int64_t mv_ref_stats[INTER_MODE_CONTEXTS][INTER_MODES - 1][2];
|
| #endif
|
| +
|
| +
|
| +#ifdef MODE_TEST_HIT_STATS
|
| + // Debug / test stats
|
| + int64_t mode_test_hits[BLOCK_SIZES];
|
| +#endif
|
| } VP9_COMP;
|
|
|
| static int get_ref_frame_idx(VP9_COMP *cpi, MV_REFERENCE_FRAME ref_frame) {
|
| @@ -675,6 +692,17 @@
|
| }
|
| }
|
|
|
| +static int get_scale_ref_frame_idx(VP9_COMP *cpi,
|
| + MV_REFERENCE_FRAME ref_frame) {
|
| + if (ref_frame == LAST_FRAME) {
|
| + return 0;
|
| + } else if (ref_frame == GOLDEN_FRAME) {
|
| + return 1;
|
| + } else {
|
| + return 2;
|
| + }
|
| +}
|
| +
|
| void vp9_encode_frame(VP9_COMP *cpi);
|
|
|
| void vp9_pack_bitstream(VP9_COMP *cpi, unsigned char *dest,
|
|
|