summaryrefslogtreecommitdiff
path: root/vp8/encoder
diff options
context:
space:
mode:
authorYaowu Xu <yaowu@google.com>2012-04-17 18:37:23 +0000
committerOn2 (Google) Code Review <on2-gerrit@google.com>2012-04-17 18:37:23 +0000
commitbd49603be411c979cfa82238ced0c3eafa2b04f0 (patch)
tree8c38f4864bbe3ab76c347f68b967cb864df48657 /vp8/encoder
parentbb4ed8d8a30590a766ccb8f712a10e05dbb65a25 (diff)
parent31afc7706356f1953258911e0dd472a538cbce09 (diff)
downloadlibvpx-bd49603be411c979cfa82238ced0c3eafa2b04f0.tar
libvpx-bd49603be411c979cfa82238ced0c3eafa2b04f0.tar.gz
libvpx-bd49603be411c979cfa82238ced0c3eafa2b04f0.tar.bz2
libvpx-bd49603be411c979cfa82238ced0c3eafa2b04f0.zip
Merge "Added intra mode probabilites into coding_context" into experimental
Diffstat (limited to 'vp8/encoder')
-rw-r--r--vp8/encoder/onyx_int.h7
-rw-r--r--vp8/encoder/ratectrl.c6
2 files changed, 13 insertions, 0 deletions
diff --git a/vp8/encoder/onyx_int.h b/vp8/encoder/onyx_int.h
index 932e8ca7c..703235c33 100644
--- a/vp8/encoder/onyx_int.h
+++ b/vp8/encoder/onyx_int.h
@@ -90,6 +90,13 @@ typedef struct
vp8_prob coef_probs_8x8[BLOCK_TYPES]
[COEF_BANDS][PREV_COEF_CONTEXTS][ENTROPY_NODES];
+ vp8_prob ymode_prob [VP8_YMODES-1]; /* interframe intra mode probs */
+#if CONFIG_UVINTRA
+ vp8_prob uv_mode_prob [VP8_YMODES][VP8_UV_MODES-1];
+#else
+ vp8_prob uv_mode_prob [VP8_UV_MODES-1];
+#endif
+
int mv_ref_ct[6][4][2];
int mode_context[6][4];
int mv_ref_ct_a[6][4][2];
diff --git a/vp8/encoder/ratectrl.c b/vp8/encoder/ratectrl.c
index 1ff13754f..9c7b019aa 100644
--- a/vp8/encoder/ratectrl.c
+++ b/vp8/encoder/ratectrl.c
@@ -155,6 +155,9 @@ void vp8_save_coding_context(VP8_COMP *cpi)
vp8_copy( cc->mv_ref_ct_a, cm->mv_ref_ct_a );
vp8_copy( cc->mode_context_a, cm->mode_context_a );
+ vp8_copy( cc->ymode_prob, cm->fc.ymode_prob );
+ vp8_copy( cc->uv_mode_prob, cm->fc.uv_mode_prob );
+
// Stats
#ifdef MODE_STATS
vp8_copy(cc->y_modes, y_modes);
@@ -201,6 +204,9 @@ void vp8_restore_coding_context(VP8_COMP *cpi)
vp8_copy( cm->mv_ref_ct_a, cc->mv_ref_ct_a );
vp8_copy( cm->mode_context_a, cc->mode_context_a );
+ vp8_copy( cm->fc.ymode_prob, cc->ymode_prob);
+ vp8_copy( cm->fc.uv_mode_prob, cc->uv_mode_prob);
+
// Stats
#ifdef MODE_STATS
vp8_copy(y_modes, cc->y_modes);