| 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.
|
|
|