Index: source/libvpx/vp9/encoder/vp9_block.h |
=================================================================== |
--- source/libvpx/vp9/encoder/vp9_block.h (revision 219822) |
+++ source/libvpx/vp9/encoder/vp9_block.h (working copy) |
@@ -47,8 +47,8 @@ |
int hybrid_pred_diff; |
int comp_pred_diff; |
int single_pred_diff; |
- int64_t txfm_rd_diff[NB_TXFM_MODES]; |
- int64_t best_filter_diff[VP9_SWITCHABLE_FILTERS + 1]; |
+ int64_t tx_rd_diff[TX_MODES]; |
+ int64_t best_filter_diff[SWITCHABLE_FILTERS + 1]; |
// Bit flag for each mode whether it has high error in comparison to others. |
unsigned int modes_with_high_error; |
@@ -72,6 +72,11 @@ |
int16_t zbin_extra; |
}; |
+/* The [2] dimension is for whether we skip the EOB node (i.e. if previous |
+ * coefficient in this block was zero) or not. */ |
+typedef unsigned int vp9_coeff_cost[BLOCK_TYPES][REF_TYPES][COEF_BANDS][2] |
+ [PREV_COEF_CONTEXTS][MAX_ENTROPY_TOKENS]; |
+ |
typedef struct macroblock MACROBLOCK; |
struct macroblock { |
struct macroblock_plane plane[MAX_MB_PLANE]; |
@@ -97,6 +102,7 @@ |
int mv_best_ref_index[MAX_REF_FRAMES]; |
unsigned int max_mv_context[MAX_REF_FRAMES]; |
+ unsigned int source_variance; |
int nmvjointcost[MV_JOINTS]; |
int nmvcosts[2][MV_VALS]; |
@@ -115,9 +121,9 @@ |
int mbmode_cost[MB_MODE_COUNT]; |
unsigned inter_mode_cost[INTER_MODE_CONTEXTS][MB_MODE_COUNT - NEARESTMV]; |
int intra_uv_mode_cost[2][MB_MODE_COUNT]; |
- int y_mode_costs[VP9_INTRA_MODES][VP9_INTRA_MODES][VP9_INTRA_MODES]; |
- int switchable_interp_costs[VP9_SWITCHABLE_FILTERS + 1] |
- [VP9_SWITCHABLE_FILTERS]; |
+ int y_mode_costs[INTRA_MODES][INTRA_MODES][INTRA_MODES]; |
+ int switchable_interp_costs[SWITCHABLE_FILTERS + 1] |
+ [SWITCHABLE_FILTERS]; |
// These define limits to motion vector components to prevent them |
// from extending outside the UMV borders |
@@ -133,12 +139,12 @@ |
unsigned char *active_ptr; |
// note that token_costs is the cost when eob node is skipped |
- vp9_coeff_count token_costs[TX_SIZE_MAX_SB][BLOCK_TYPES][2]; |
+ vp9_coeff_cost token_costs[TX_SIZES]; |
int optimize; |
// indicate if it is in the rd search loop or encoding process |
- int rd_search; |
+ int use_lp32x32fdct; |
int skip_encode; |
// Used to store sub partition's choices. |
@@ -164,10 +170,10 @@ |
PICK_MODE_CONTEXT sb64_context; |
int partition_cost[NUM_PARTITION_CONTEXTS][PARTITION_TYPES]; |
- BLOCK_SIZE_TYPE b_partitioning[4][4][4]; |
- BLOCK_SIZE_TYPE mb_partitioning[4][4]; |
- BLOCK_SIZE_TYPE sb_partitioning[4]; |
- BLOCK_SIZE_TYPE sb64_partitioning; |
+ BLOCK_SIZE b_partitioning[4][4][4]; |
+ BLOCK_SIZE mb_partitioning[4][4]; |
+ BLOCK_SIZE sb_partitioning[4]; |
+ BLOCK_SIZE sb64_partitioning; |
void (*fwd_txm4x4)(int16_t *input, int16_t *output, int pitch); |
void (*fwd_txm8x4)(int16_t *input, int16_t *output, int pitch); |