Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Unified Diff: source/libvpx/vp9/encoder/vp9_onyx_int.h

Issue 23600008: libvpx: Pull from upstream (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/libvpx/
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « source/libvpx/vp9/encoder/vp9_onyx_if.c ('k') | source/libvpx/vp9/encoder/vp9_picklpf.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: source/libvpx/vp9/encoder/vp9_onyx_int.h
===================================================================
--- source/libvpx/vp9/encoder/vp9_onyx_int.h (revision 219822)
+++ source/libvpx/vp9/encoder/vp9_onyx_int.h (working copy)
@@ -77,17 +77,17 @@
// 0 = ZERO_MV, MV
signed char last_mode_lf_deltas[MAX_MODE_LF_DELTAS];
- vp9_coeff_probs_model coef_probs[TX_SIZE_MAX_SB][BLOCK_TYPES];
+ vp9_coeff_probs_model coef_probs[TX_SIZES][BLOCK_TYPES];
- vp9_prob y_mode_prob[4][VP9_INTRA_MODES - 1];
- vp9_prob uv_mode_prob[VP9_INTRA_MODES][VP9_INTRA_MODES - 1];
+ vp9_prob y_mode_prob[4][INTRA_MODES - 1];
+ vp9_prob uv_mode_prob[INTRA_MODES][INTRA_MODES - 1];
vp9_prob partition_prob[2][NUM_PARTITION_CONTEXTS][PARTITION_TYPES - 1];
- vp9_prob switchable_interp_prob[VP9_SWITCHABLE_FILTERS + 1]
- [VP9_SWITCHABLE_FILTERS - 1];
+ vp9_prob switchable_interp_prob[SWITCHABLE_FILTERS + 1]
+ [SWITCHABLE_FILTERS - 1];
- int inter_mode_counts[INTER_MODE_CONTEXTS][VP9_INTER_MODES - 1][2];
- vp9_prob inter_mode_probs[INTER_MODE_CONTEXTS][VP9_INTER_MODES - 1];
+ int inter_mode_counts[INTER_MODE_CONTEXTS][INTER_MODES - 1][2];
+ vp9_prob inter_mode_probs[INTER_MODE_CONTEXTS][INTER_MODES - 1];
struct tx_probs tx_probs;
vp9_prob mbskip_probs[MBSKIP_CONTEXTS];
@@ -145,6 +145,8 @@
// const MODE_DEFINITION vp9_mode_order[MAX_MODES] used in the rd code.
typedef enum {
THR_NEARESTMV,
+ THR_DC,
+
THR_NEARESTA,
THR_NEARESTG,
THR_NEWMV,
@@ -152,8 +154,6 @@
THR_NEARMV,
THR_COMP_NEARESTGA,
- THR_DC,
-
THR_NEWG,
THR_NEWA,
THR_NEARA,
@@ -182,7 +182,7 @@
THR_H_PRED,
THR_V_PRED,
THR_D135_PRED,
- THR_D27_PRED,
+ THR_D207_PRED,
THR_D153_PRED,
THR_D63_PRED,
THR_D117_PRED,
@@ -192,7 +192,9 @@
typedef enum {
DIAMOND = 0,
NSTEP = 1,
- HEX = 2
+ HEX = 2,
+ BIGDIA = 3,
+ SQUARE = 4
} SEARCH_METHODS;
typedef enum {
@@ -224,16 +226,30 @@
// skips oblique intra modes at angles 27, 63, 117, 153 if the best
// intra so far is not one of the neighboring directions
FLAG_SKIP_INTRA_DIRMISMATCH = 16,
+
+ // skips intra modes other than DC_PRED if the source variance
+ // is small
+ FLAG_SKIP_INTRA_LOWVAR = 32,
} MODE_SEARCH_SKIP_LOGIC;
+typedef enum {
+ SUBPEL_ITERATIVE = 0,
+ SUBPEL_TREE = 1,
+ // Other methods to come
+} SUBPEL_SEARCH_METHODS;
+
+#define ALL_INTRA_MODES 0x3FF
+#define INTRA_DC_ONLY 0x01
+#define INTRA_DC_TM ((1 << TM_PRED) | (1 << DC_PRED))
+#define INTRA_DC_TM_H_V (INTRA_DC_TM | (1 << V_PRED) | (1 << H_PRED))
+
typedef struct {
int RD;
SEARCH_METHODS search_method;
int auto_filter;
int recode_loop;
- int iterative_sub_pixel;
- int half_pixel_search;
- int quarter_pixel_search;
+ SUBPEL_SEARCH_METHODS subpel_search_method;
+ int subpel_iters_per_step;
int thresh_mult[MAX_MODES];
int max_step_search_steps;
int reduce_first_step_size;
@@ -247,7 +263,7 @@
int skip_encode_frame;
int use_lastframe_partitioning;
TX_SIZE_SEARCH_METHOD tx_size_search_method;
- int use_8tap_always;
+ int use_lp32x32fdct;
int use_avoid_tested_higherror;
int skip_lots_of_modes;
int adjust_thresholds_by_speed;
@@ -257,11 +273,12 @@
int use_square_partition_only;
int unused_mode_skip_lvl;
int reference_masking;
- BLOCK_SIZE_TYPE always_this_block_size;
- int use_partitions_greater_than;
- BLOCK_SIZE_TYPE greater_than_block_size;
- int use_partitions_less_than;
- BLOCK_SIZE_TYPE less_than_block_size;
+ BLOCK_SIZE always_this_block_size;
+ int auto_min_max_partition_size;
+ int auto_min_max_partition_interval;
+ int auto_min_max_partition_count;
+ BLOCK_SIZE min_partition_size;
+ BLOCK_SIZE max_partition_size;
int adjust_partitioning_from_last_frame;
int last_partitioning_redo_frequency;
int disable_splitmv;
@@ -271,9 +288,16 @@
// The heuristics selected are based on flags
// defined in the MODE_SEARCH_SKIP_HEURISTICS enum
unsigned int mode_search_skip_flags;
- MB_PREDICTION_MODE last_chroma_intra_mode;
+ // A source variance threshold below which the split mode is disabled
+ unsigned int disable_split_var_thresh;
+ // A source variance threshold below which filter search is disabled
+ // Choose a very large value (UINT_MAX) to use 8-tap always
+ unsigned int disable_filter_search_var_thresh;
+ int intra_y_mode_mask;
+ int intra_uv_mode_mask;
int use_rd_breakout;
int use_uv_intra_rd_estimate;
+ int use_fast_lpf_pick;
} SPEED_FEATURES;
typedef struct VP9_COMP {
@@ -357,10 +381,8 @@
int ref_frame_mask;
int set_ref_frame_mask;
- int rd_thresh_mult[MAX_MODES];
- int rd_baseline_thresh[BLOCK_SIZE_TYPES][MAX_MODES];
- int rd_threshes[BLOCK_SIZE_TYPES][MAX_MODES];
- int rd_thresh_freq_fact[BLOCK_SIZE_TYPES][MAX_MODES];
+ int rd_threshes[BLOCK_SIZES][MAX_MODES];
+ int rd_thresh_freq_fact[BLOCK_SIZES][MAX_MODES];
int64_t rd_comp_pred_diff[NB_PREDICTION_TYPES];
// FIXME(rbultje) int64_t?
@@ -370,13 +392,13 @@
unsigned int single_ref_count[REF_CONTEXTS][2][2];
unsigned int comp_ref_count[REF_CONTEXTS][2];
- int64_t rd_tx_select_diff[NB_TXFM_MODES];
+ int64_t rd_tx_select_diff[TX_MODES];
// FIXME(rbultje) can this overflow?
- int rd_tx_select_threshes[4][NB_TXFM_MODES];
+ int rd_tx_select_threshes[4][TX_MODES];
- int64_t rd_filter_diff[VP9_SWITCHABLE_FILTERS + 1];
- int64_t rd_filter_threshes[4][VP9_SWITCHABLE_FILTERS + 1];
- int64_t rd_filter_cache[VP9_SWITCHABLE_FILTERS + 1];
+ int64_t rd_filter_diff[SWITCHABLE_FILTERS + 1];
+ int64_t rd_filter_threshes[4][SWITCHABLE_FILTERS + 1];
+ int64_t rd_filter_cache[SWITCHABLE_FILTERS + 1];
int RDMULT;
int RDDIV;
@@ -451,15 +473,15 @@
int cq_target_quality;
- int y_mode_count[4][VP9_INTRA_MODES];
- int y_uv_mode_count[VP9_INTRA_MODES][VP9_INTRA_MODES];
+ int y_mode_count[4][INTRA_MODES];
+ int y_uv_mode_count[INTRA_MODES][INTRA_MODES];
unsigned int partition_count[NUM_PARTITION_CONTEXTS][PARTITION_TYPES];
nmv_context_counts NMVcount;
- vp9_coeff_count coef_counts[TX_SIZE_MAX_SB][BLOCK_TYPES];
- vp9_coeff_probs_model frame_coef_probs[TX_SIZE_MAX_SB][BLOCK_TYPES];
- vp9_coeff_stats frame_branch_ct[TX_SIZE_MAX_SB][BLOCK_TYPES];
+ vp9_coeff_count coef_counts[TX_SIZES][BLOCK_TYPES];
+ vp9_coeff_probs_model frame_coef_probs[TX_SIZES][BLOCK_TYPES];
+ vp9_coeff_stats frame_branch_ct[TX_SIZES][BLOCK_TYPES];
int gfu_boost;
int last_boost;
@@ -520,14 +542,15 @@
unsigned int active_map_enabled;
fractional_mv_step_fp *find_fractional_mv_step;
+ fractional_mv_step_comp_fp *find_fractional_mv_step_comp;
vp9_full_search_fn_t full_search_sad;
vp9_refining_search_fn_t refining_search_sad;
vp9_diamond_search_fn_t diamond_search_sad;
- vp9_variance_fn_ptr_t fn_ptr[BLOCK_SIZE_TYPES];
+ vp9_variance_fn_ptr_t fn_ptr[BLOCK_SIZES];
uint64_t time_receive_data;
uint64_t time_compress_data;
uint64_t time_pick_lpf;
- uint64_t time_encode_mb_row;
+ uint64_t time_encode_sb_row;
struct twopass_rc {
unsigned int section_intra_rating;
@@ -616,10 +639,10 @@
int dummy_packing; /* flag to indicate if packing is dummy */
- unsigned int switchable_interp_count[VP9_SWITCHABLE_FILTERS + 1]
- [VP9_SWITCHABLE_FILTERS];
+ unsigned int switchable_interp_count[SWITCHABLE_FILTERS + 1]
+ [SWITCHABLE_FILTERS];
- unsigned int txfm_stepdown_count[TX_SIZE_MAX_SB];
+ unsigned int txfm_stepdown_count[TX_SIZES];
int initial_width;
int initial_height;
@@ -638,7 +661,7 @@
#endif
#ifdef ENTROPY_STATS
- int64_t mv_ref_stats[INTER_MODE_CONTEXTS][VP9_INTER_MODES - 1][2];
+ int64_t mv_ref_stats[INTER_MODE_CONTEXTS][INTER_MODES - 1][2];
#endif
} VP9_COMP;
« no previous file with comments | « source/libvpx/vp9/encoder/vp9_onyx_if.c ('k') | source/libvpx/vp9/encoder/vp9_picklpf.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698