Index: source/libvpx/vp9/encoder/vp9_block.h |
=================================================================== |
--- source/libvpx/vp9/encoder/vp9_block.h (revision 278778) |
+++ source/libvpx/vp9/encoder/vp9_block.h (working copy) |
@@ -20,43 +20,6 @@ |
extern "C" { |
#endif |
-// Structure to hold snapshot of coding context during the mode picking process |
-typedef struct { |
- MODE_INFO mic; |
- uint8_t *zcoeff_blk; |
- int16_t *coeff[MAX_MB_PLANE][3]; |
- int16_t *qcoeff[MAX_MB_PLANE][3]; |
- int16_t *dqcoeff[MAX_MB_PLANE][3]; |
- uint16_t *eobs[MAX_MB_PLANE][3]; |
- |
- // dual buffer pointers, 0: in use, 1: best in store |
- int16_t *coeff_pbuf[MAX_MB_PLANE][3]; |
- int16_t *qcoeff_pbuf[MAX_MB_PLANE][3]; |
- int16_t *dqcoeff_pbuf[MAX_MB_PLANE][3]; |
- uint16_t *eobs_pbuf[MAX_MB_PLANE][3]; |
- |
- int is_coded; |
- int num_4x4_blk; |
- int skip; |
- int_mv best_ref_mv[2]; |
- int_mv ref_mvs[MAX_REF_FRAMES][MAX_MV_REF_CANDIDATES]; |
- int rate; |
- int distortion; |
- int best_mode_index; |
- int rddiv; |
- int rdmult; |
- int hybrid_pred_diff; |
- int comp_pred_diff; |
- int single_pred_diff; |
- int64_t tx_rd_diff[TX_MODES]; |
- int64_t best_filter_diff[SWITCHABLE_FILTER_CONTEXTS]; |
- |
- // motion vector cache for adaptive motion search control in partition |
- // search loop |
- int_mv pred_mv[MAX_REF_FRAMES]; |
- INTERP_FILTER pred_interp_filter; |
-} PICK_MODE_CONTEXT; |
- |
struct macroblock_plane { |
DECLARE_ALIGNED(16, int16_t, src_diff[64 * 64]); |
int16_t *qcoeff; |
@@ -65,6 +28,7 @@ |
struct buf_2d src; |
// Quantizer setings |
+ int16_t *quant_fp; |
int16_t *quant; |
int16_t *quant_shift; |
int16_t *zbin; |
@@ -73,18 +37,6 @@ |
// Zbin Over Quant value |
int16_t zbin_extra; |
}; |
-typedef struct PC_TREE { |
- int index; |
- PARTITION_TYPE partitioning; |
- BLOCK_SIZE block_size; |
- PICK_MODE_CONTEXT none; |
- PICK_MODE_CONTEXT horizontal[2]; |
- PICK_MODE_CONTEXT vertical[2]; |
- union { |
- struct PC_TREE *split[4]; |
- PICK_MODE_CONTEXT *leaf_split[4]; |
- }; |
-} PC_TREE; |
/* The [2] dimension is for whether we skip the EOB node (i.e. if previous |
* coefficient in this block was zero) or not. */ |
@@ -97,7 +49,7 @@ |
MACROBLOCKD e_mbd; |
int skip_block; |
- int select_txfm_size; |
+ int select_tx_size; |
int skip_recode; |
int skip_optimize; |
int q_index; |
@@ -154,18 +106,16 @@ |
int use_lp32x32fdct; |
int skip_encode; |
+ // skip forward transform and quantization |
+ int skip_txfm; |
+ |
// Used to store sub partition's choices. |
- int_mv pred_mv[MAX_REF_FRAMES]; |
+ MV pred_mv[MAX_REF_FRAMES]; |
- PICK_MODE_CONTEXT *leaf_tree; |
- PC_TREE *pc_tree; |
- PC_TREE *pc_root; |
- int partition_cost[PARTITION_CONTEXTS][PARTITION_TYPES]; |
- |
void (*fwd_txm4x4)(const int16_t *input, int16_t *output, int stride); |
+ void (*itxm_add)(const int16_t *input, uint8_t *dest, int stride, int eob); |
}; |
- |
#ifdef __cplusplus |
} // extern "C" |
#endif |