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