summaryrefslogtreecommitdiff
path: root/vp8/common/onyxc_int.h
diff options
context:
space:
mode:
authorDeb Mukherjee <debargha@google.com>2012-06-20 05:07:24 -0700
committerYaowu Xu <yaowu@google.com>2012-06-25 18:09:54 -0700
commitf3dff402556cb1b1dd3c7dbc1877104a792f329c (patch)
tree8969a12f67f323c51a03994861a42ec055a7200d /vp8/common/onyxc_int.h
parent9c9d6743d460da1bfb88af66bf43597ae6927af3 (diff)
downloadlibvpx-f3dff402556cb1b1dd3c7dbc1877104a792f329c.tar
libvpx-f3dff402556cb1b1dd3c7dbc1877104a792f329c.tar.gz
libvpx-f3dff402556cb1b1dd3c7dbc1877104a792f329c.tar.bz2
libvpx-f3dff402556cb1b1dd3c7dbc1877104a792f329c.zip
Continued adaptive entropy coding
Incorporates mv_ref, mbsplit and second_mv into the adaptive entropy framework. The mv_ref framework has been modified from before. Adds some clean-ups and fixes. Results with the adaptive entropy experiment are currently up by +1.93% on derf; +2.33% std-hd and +1.87% yt-hd. Fixed a nasty intermittent bug. Change-Id: I4b1ac9f9483b48432597595195bfec05f31d1e39
Diffstat (limited to 'vp8/common/onyxc_int.h')
-rw-r--r--vp8/common/onyxc_int.h22
1 files changed, 16 insertions, 6 deletions
diff --git a/vp8/common/onyxc_int.h b/vp8/common/onyxc_int.h
index a068b43ae..f2795a8f8 100644
--- a/vp8/common/onyxc_int.h
+++ b/vp8/common/onyxc_int.h
@@ -48,7 +48,8 @@ typedef struct frame_contexts
vp8_prob ymode_prob [VP8_YMODES-1]; /* interframe intra mode probs */
vp8_prob uv_mode_prob [VP8_YMODES][VP8_UV_MODES-1];
vp8_prob i8x8_mode_prob [VP8_I8X8_MODES-1];
- vp8_prob sub_mv_ref_prob [VP8_SUBMVREFS-1];
+ vp8_prob sub_mv_ref_prob [SUBMVREF_COUNT][VP8_SUBMVREFS-1];
+ vp8_prob mbsplit_prob [VP8_NUMMBSPLITS-1];
vp8_prob coef_probs [BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES];
vp8_prob coef_probs_8x8 [BLOCK_TYPES_8X8] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES];
MV_CONTEXT mvc[2];
@@ -64,10 +65,14 @@ typedef struct frame_contexts
vp8_prob pre_ymode_prob [VP8_YMODES-1]; /* interframe intra mode probs */
vp8_prob pre_uv_mode_prob [VP8_YMODES][VP8_UV_MODES-1];
vp8_prob pre_i8x8_mode_prob [VP8_I8X8_MODES-1];
+ vp8_prob pre_sub_mv_ref_prob [SUBMVREF_COUNT][VP8_SUBMVREFS-1];
+ vp8_prob pre_mbsplit_prob [VP8_NUMMBSPLITS-1];
unsigned int bmode_counts [VP8_BINTRAMODES];
unsigned int ymode_counts [VP8_YMODES]; /* interframe intra mode probs */
unsigned int uv_mode_counts [VP8_YMODES][VP8_UV_MODES];
unsigned int i8x8_mode_counts [VP8_I8X8_MODES]; /* interframe intra mode probs */
+ unsigned int sub_mv_ref_counts [SUBMVREF_COUNT][VP8_SUBMVREFS];
+ unsigned int mbsplit_counts [VP8_NUMMBSPLITS];
vp8_prob pre_coef_probs [BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES];
vp8_prob pre_coef_probs_8x8 [BLOCK_TYPES_8X8] [COEF_BANDS] [PREV_COEF_CONTEXTS] [ENTROPY_NODES];
@@ -80,6 +85,11 @@ typedef struct frame_contexts
unsigned int MVcount_hp [2] [MVvals_hp];
#endif
#endif /* CONFIG_ADAPTIVE_ENTROPY */
+ int mode_context[6][4];
+ int mode_context_a[6][4];
+ int vp8_mode_contexts[6][4];
+ int mv_ref_ct[6][4][2];
+ int mv_ref_ct_a[6][4][2];
} FRAME_CONTEXT;
typedef enum
@@ -254,11 +264,11 @@ typedef struct VP8Common
FRAME_CONTEXT lfc; /* last frame entropy */
FRAME_CONTEXT fc; /* this frame entropy */
- int mv_ref_ct[6][4][2];
- int mode_context[6][4];
- int mv_ref_ct_a[6][4][2];
- int mode_context_a[6][4];
- int vp8_mode_contexts[6][4];
+ //int mv_ref_ct[6][4][2];
+ //int mv_ref_ct_a[6][4][2];
+ //int mode_context[6][4];
+ //int mode_context_a[6][4];
+ //int vp8_mode_contexts[6][4];
unsigned int current_video_frame;
int near_boffset[3];