X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fthird_party%2Flibvpx%2Fsource%2Flibvpx%2Fvp9%2Fencoder%2Fvp9_speed_features.h;h=ed840086330f8571f10428bb80cf1c08a3b6219a;hb=3545e9f2671f595d2a2f3ee75ca0393b01e35ef6;hp=929acaf3e10845ead414b8bea0245e9550636882;hpb=7d210d4c7e9ba36e635eabc5b5780495f8a63292;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/third_party/libvpx/source/libvpx/vp9/encoder/vp9_speed_features.h b/src/third_party/libvpx/source/libvpx/vp9/encoder/vp9_speed_features.h index 929acaf..ed84008 100644 --- a/src/third_party/libvpx/source/libvpx/vp9/encoder/vp9_speed_features.h +++ b/src/third_party/libvpx/source/libvpx/vp9/encoder/vp9_speed_features.h @@ -17,6 +17,44 @@ extern "C" { #endif +enum { + INTRA_ALL = (1 << DC_PRED) | + (1 << V_PRED) | (1 << H_PRED) | + (1 << D45_PRED) | (1 << D135_PRED) | + (1 << D117_PRED) | (1 << D153_PRED) | + (1 << D207_PRED) | (1 << D63_PRED) | + (1 << TM_PRED), + INTRA_DC = (1 << DC_PRED), + INTRA_DC_TM = (1 << DC_PRED) | (1 << TM_PRED), + INTRA_DC_H_V = (1 << DC_PRED) | (1 << V_PRED) | (1 << H_PRED), + INTRA_DC_TM_H_V = (1 << DC_PRED) | (1 << TM_PRED) | (1 << V_PRED) | + (1 << H_PRED) +}; + +enum { + INTER_ALL = (1 << NEARESTMV) | (1 << NEARMV) | (1 << ZEROMV) | (1 << NEWMV), + INTER_NEAREST = (1 << NEARESTMV), + INTER_NEAREST_NEAR_NEW = (1 << NEARESTMV) | (1 << NEARMV) | (1 << NEWMV), + INTER_NEAREST_NEAR_ZERO = (1 << NEARESTMV) | (1 << NEARMV) | (1 << ZEROMV), +}; + +enum { + DISABLE_ALL_INTER_SPLIT = (1 << THR_COMP_GA) | + (1 << THR_COMP_LA) | + (1 << THR_ALTR) | + (1 << THR_GOLD) | + (1 << THR_LAST), + + DISABLE_ALL_SPLIT = (1 << THR_INTRA) | DISABLE_ALL_INTER_SPLIT, + + DISABLE_COMPOUND_SPLIT = (1 << THR_COMP_GA) | (1 << THR_COMP_LA), + + LAST_AND_INTRA_SPLIT_ONLY = (1 << THR_COMP_GA) | + (1 << THR_COMP_LA) | + (1 << THR_ALTR) | + (1 << THR_GOLD) +}; + typedef enum { DIAMOND = 0, NSTEP = 1, @@ -40,6 +78,7 @@ typedef enum { typedef enum { SUBPEL_TREE = 0, + SUBPEL_TREE_PRUNED = 1, // Other methods to come } SUBPEL_SEARCH_METHODS; @@ -63,7 +102,8 @@ typedef enum { typedef enum { NOT_IN_USE = 0, RELAXED_NEIGHBORING_MIN_MAX = 1, - STRICT_NEIGHBORING_MIN_MAX = 2 + CONSTRAIN_NEIGHBORING_MIN_MAX = 2, + STRICT_NEIGHBORING_MIN_MAX = 3 } AUTO_MIN_MAX_MODE; typedef enum { @@ -85,11 +125,6 @@ typedef enum { // Skips comp inter modes if the best so far is an intra mode. FLAG_SKIP_COMP_BESTINTRA = 1 << 1, - // Skips comp inter modes if the best single intermode so far does - // not have the same reference as one of the two references being - // tested. - FLAG_SKIP_COMP_REFMISMATCH = 1 << 2, - // Skips oblique intra modes if the best so far is an inter mode. FLAG_SKIP_INTRA_BESTINTER = 1 << 3, @@ -102,6 +137,12 @@ typedef enum { } MODE_SEARCH_SKIP_LOGIC; typedef enum { + FLAG_SKIP_EIGHTTAP = 1 << EIGHTTAP, + FLAG_SKIP_EIGHTTAP_SMOOTH = 1 << EIGHTTAP_SMOOTH, + FLAG_SKIP_EIGHTTAP_SHARP = 1 << EIGHTTAP_SHARP, +} INTERP_FILTER_MASK; + +typedef enum { // Search partitions using RD/NONRD criterion SEARCH_PARTITION = 0, @@ -277,15 +318,26 @@ typedef struct SPEED_FEATURES { // point for this motion search and limits the search range around it. int adaptive_motion_search; + int schedule_mode_search; + // Allows sub 8x8 modes to use the prediction filter that was determined // best for 8x8 mode. If set to 0 we always re check all the filters for // sizes less than 8x8, 1 means we check all filter modes if no 8x8 filter // was selected, and 2 means we use 8 tap if no 8x8 filter mode was selected. int adaptive_pred_interp_filter; + // Adaptive prediction mode search + int adaptive_mode_search; + // Chessboard pattern prediction filter type search int cb_pred_filter_search; + int cb_partition_search; + + int motion_field_mode_search; + + int alt_ref_search_fp; + // Fast quantization process path int use_quant_fp; @@ -305,9 +357,6 @@ typedef struct SPEED_FEATURES { // defined in the MODE_SEARCH_SKIP_HEURISTICS enum unsigned int mode_search_skip_flags; - // 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; @@ -372,6 +421,20 @@ typedef struct SPEED_FEATURES { // default interp filter choice INTERP_FILTER default_interp_filter; + + // Early termination in transform size search, which only applies while + // tx_size_search_method is USE_FULL_RD. + int tx_size_search_breakout; + + // adaptive interp_filter search to allow skip of certain filter types. + int adaptive_interp_filter_search; + + // mask for skip evaluation of certain interp_filter type. + INTERP_FILTER_MASK interp_filter_search_mask; + + // Partition search early breakout thresholds. + int64_t partition_search_breakout_dist_thr; + int partition_search_breakout_rate_thr; } SPEED_FEATURES; struct VP9_COMP;