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