From 57d953479bdb811eb12039167b64010e77ee1b28 Mon Sep 17 00:00:00 2001 From: Deb Mukherjee Date: Mon, 19 Mar 2012 11:02:04 -0700 Subject: Adding contextual coding of mb_skip_coeff flag. Using contextual coding of the mkb_skip_coeff flag using the values of this flag from the left and above. There is a small improvement of about 0.15% on Derf: http://www.corp.google.com/~debargha/vp8_results/mbskipcontext.html Refactored to use pred_common.c by adding a new context type. Results on HD set (about 0.66% improvement): http://www.corp.google.com/~debargha/vp8_results/mbskipcontext_hd.html Incliding missing refactoring to use the pred_common utilities. Change-Id: I95373382d429b5a59610d77f69a0fea2be628278 --- vp8/encoder/tokenize.h | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'vp8/encoder/tokenize.h') diff --git a/vp8/encoder/tokenize.h b/vp8/encoder/tokenize.h index 0608102d0..7503188ed 100644 --- a/vp8/encoder/tokenize.h +++ b/vp8/encoder/tokenize.h @@ -44,8 +44,29 @@ extern int mb_is_skippable_8x8(MACROBLOCKD *x); void init_context_counters(); void print_context_counters(); -extern _int64 context_counters[BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [MAX_ENTROPY_TOKENS]; -extern _int64 context_counters_8x8[BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [MAX_ENTROPY_TOKENS]; +extern INT64 context_counters[BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [MAX_ENTROPY_TOKENS]; +extern INT64 context_counters_8x8[BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [MAX_ENTROPY_TOKENS]; + +#if CONFIG_NEWENTROPY +void init_nzc_counters(); +void print_nzc_counters(); +extern INT64 nzc4x4y_counters[MAX_NZC_CONTEXTS][NZC4X4_TOKENS]; +extern INT64 nzc4x4y2_counters[MAX_NZC_CONTEXTS][NZC4X4_TOKENS]; +extern INT64 nzc4x4uv_counters[MAX_NZC_CONTEXTS][NZC4X4_TOKENS]; +extern INT64 nzc8x8y_counters[MAX_NZC_CONTEXTS][NZC8X8_TOKENS]; +extern INT64 nzc8x8uv_counters[MAX_NZC_CONTEXTS][NZC8X8_TOKENS]; +extern INT64 nzc2x2y2_counters[MAX_NZC_CONTEXTS][NZC2X2_TOKENS]; +void init_nzb_counters(); +void print_nzb_counters(); +extern INT64 nzby_counters[MAX_NZB_CONTEXTS][NZBY_TOKENS]; +extern INT64 nzbuv_counters[MAX_NZB_CONTEXTS][NZBUV_TOKENS]; +extern INT64 nzby2_counters[MAX_NZB_CONTEXTS][2]; +void init_nzb2_counters(); +void print_nzb2_counters(); +extern INT64 nzb2y_counters[MAX_NZB_CONTEXTS][2]; +extern INT64 nzb2uv_counters[MAX_NZB_CONTEXTS][2]; +extern INT64 nzb2y2_counters[MAX_NZB_CONTEXTS][2]; +#endif #endif extern const int *vp8_dct_value_cost_ptr; /* TODO: The Token field should be broken out into a separate char array to -- cgit v1.2.3