Index: source/libvpx/vp9/encoder/vp9_speed_features.h |
=================================================================== |
--- source/libvpx/vp9/encoder/vp9_speed_features.h (revision 278778) |
+++ source/libvpx/vp9/encoder/vp9_speed_features.h (working copy) |
@@ -44,6 +44,11 @@ |
} SUBPEL_SEARCH_METHODS; |
typedef enum { |
+ NO_MOITION_THRESHOLD = 0, |
+ LOW_MOITION_THRESHOLD = 7 |
+} MOTION_THRESHOLD; |
+ |
+typedef enum { |
LAST_FRAME_PARTITION_OFF = 0, |
LAST_FRAME_PARTITION_LOW_MOTION = 1, |
LAST_FRAME_PARTITION_ALL = 2 |
@@ -51,9 +56,8 @@ |
typedef enum { |
USE_FULL_RD = 0, |
- USE_LARGESTINTRA, |
- USE_LARGESTINTRA_MODELINTER, |
- USE_LARGESTALL |
+ USE_LARGESTALL, |
+ USE_TX_8X8 |
} TX_SIZE_SEARCH_METHOD; |
typedef enum { |
@@ -129,15 +133,22 @@ |
ONE_LOOP_REDUCED = 2 |
} FAST_COEFF_UPDATE; |
-typedef struct SPEED_FEATURES { |
- // Frame level coding parameter update |
- int frame_parameter_update; |
- |
+typedef struct MV_SPEED_FEATURES { |
// Motion search method (Diamond, NSTEP, Hex, Big Diamond, Square, etc). |
SEARCH_METHODS search_method; |
- RECODE_LOOP_TYPE recode_loop; |
+ // This parameter controls the number of steps we'll do in a diamond |
+ // search. |
+ int max_step_search_steps; |
+ // This parameter controls which step in the n-step process we start at. |
+ // It's changed adaptively based on circumstances. |
+ int reduce_first_step_size; |
+ |
+ // If this is set to 1, we limit the motion search range to 2 times the |
+ // largest motion vector found in the last frame. |
+ int auto_mv_step_size; |
+ |
// Subpel_search_method can only be subpel_tree which does a subpixel |
// logarithmic search that keeps stepping at 1/2 pixel units until |
// you stop getting a gain, and then goes on to 1/4 and repeats |
@@ -149,18 +160,15 @@ |
// Control when to stop subpel search |
int subpel_force_stop; |
+} MV_SPEED_FEATURES; |
- // This parameter controls the number of steps we'll do in a diamond |
- // search. |
- int max_step_search_steps; |
+typedef struct SPEED_FEATURES { |
+ MV_SPEED_FEATURES mv; |
- // This parameter controls which step in the n-step process we start at. |
- // It's changed adaptively based on circumstances. |
- int reduce_first_step_size; |
+ // Frame level coding parameter update |
+ int frame_parameter_update; |
- // If this is set to 1, we limit the motion search range to 2 times the |
- // largest motion vector found in the last frame. |
- int auto_mv_step_size; |
+ RECODE_LOOP_TYPE recode_loop; |
// Trellis (dynamic programming) optimization of quantized values (+1, 0). |
int optimize_coefficients; |
@@ -200,6 +208,10 @@ |
// partitioning. |
LAST_FRAME_PARTITION_METHOD use_lastframe_partitioning; |
+ // The threshold is to determine how slow the motino is, it is used when |
+ // use_lastframe_partitioning is set to LAST_FRAME_PARTITION_LOW_MOTION |
+ MOTION_THRESHOLD lf_motion_threshold; |
+ |
// Determine which method we use to determine transform size. We can choose |
// between options like full rd, largest for prediction size, largest |
// for intra and model coefs for the rest. |
@@ -274,9 +286,6 @@ |
// encoding process for RTC. |
int partition_check; |
- // Chessboard pattern index |
- int chessboard_index; |
- |
// Use finer quantizer in every other few frames that run variable block |
// partition type search. |
int force_frame_boost; |
@@ -321,13 +330,9 @@ |
// This flag controls the use of non-RD mode decision. |
int use_nonrd_pick_mode; |
- // This variable sets the encode_breakout threshold. Currently, it is only |
- // enabled in real time mode. |
- int encode_breakout_thresh; |
- |
// A binary mask indicating if NEARESTMV, NEARMV, ZEROMV, NEWMV |
- // modes are disabled in order from LSB to MSB for each BLOCK_SIZE. |
- int disable_inter_mode_mask[BLOCK_SIZES]; |
+ // modes are used in order from LSB to MSB for each BLOCK_SIZE. |
+ int inter_mode_mask[BLOCK_SIZES]; |
// This feature controls whether we do the expensive context update and |
// calculation in the rd coefficient costing loop. |