| Index: source/libvpx/vp9/encoder/vp9_rd.h
|
| ===================================================================
|
| --- source/libvpx/vp9/encoder/vp9_rd.h (revision 293081)
|
| +++ source/libvpx/vp9/encoder/vp9_rd.h (working copy)
|
| @@ -36,6 +36,9 @@
|
| #define MAX_MODES 30
|
| #define MAX_REFS 6
|
|
|
| +#define RD_THRESH_MAX_FACT 64
|
| +#define RD_THRESH_INC 1
|
| +
|
| // This enumerator type needs to be kept aligned with the mode order in
|
| // const MODE_DEFINITION vp9_mode_order[MAX_MODES] used in the rd code.
|
| typedef enum {
|
| @@ -98,20 +101,12 @@
|
| int thresh_mult_sub8x8[MAX_REFS];
|
|
|
| int threshes[MAX_SEGMENTS][BLOCK_SIZES][MAX_MODES];
|
| - int thresh_freq_fact[BLOCK_SIZES][MAX_MODES];
|
|
|
| - int mode_map[BLOCK_SIZES][MAX_MODES];
|
| -
|
| - int64_t comp_pred_diff[REFERENCE_MODES];
|
| int64_t prediction_type_threshes[MAX_REF_FRAMES][REFERENCE_MODES];
|
| - int64_t tx_select_diff[TX_MODES];
|
| // TODO(agrange): can this overflow?
|
| int tx_select_threshes[MAX_REF_FRAMES][TX_MODES];
|
|
|
| - int64_t filter_diff[SWITCHABLE_FILTER_CONTEXTS];
|
| int64_t filter_threshes[MAX_REF_FRAMES][SWITCHABLE_FILTER_CONTEXTS];
|
| - int64_t filter_cache[SWITCHABLE_FILTER_CONTEXTS];
|
| - int64_t mask_filter;
|
|
|
| int RDMULT;
|
| int RDDIV;
|
| @@ -129,6 +124,7 @@
|
| void vp9_rd_cost_init(RD_COST *rd_cost);
|
|
|
| struct TileInfo;
|
| +struct TileDataEnc;
|
| struct VP9_COMP;
|
| struct macroblock;
|
|
|
| @@ -158,6 +154,9 @@
|
|
|
| void vp9_set_rd_speed_thresholds_sub8x8(struct VP9_COMP *cpi);
|
|
|
| +void vp9_update_rd_thresh_fact(int (*fact)[MAX_MODES], int rd_thresh,
|
| + int bsize, int best_mode_index);
|
| +
|
| static INLINE int rd_less_than_thresh(int64_t best_rd, int thresh,
|
| int thresh_fact) {
|
| return best_rd < ((int64_t)thresh * thresh_fact >> 5) || thresh == INT_MAX;
|
|
|