summaryrefslogtreecommitdiff
path: root/vp9/encoder
diff options
context:
space:
mode:
authorPaul Wilkins <paulwilkins@google.com>2013-02-06 13:02:53 +0000
committerPaul Wilkins <paulwilkins@google.com>2013-02-08 10:16:13 +0000
commitbbede82f24dbe8233f5d5a9d1d2565b5a34efb4e (patch)
treeaf2ad973cfce431d3adce45e91228640889dcc4f /vp9/encoder
parente6ad9ab02c9914182fec83b9170c5bc86baf4102 (diff)
downloadlibvpx-bbede82f24dbe8233f5d5a9d1d2565b5a34efb4e.tar
libvpx-bbede82f24dbe8233f5d5a9d1d2565b5a34efb4e.tar.gz
libvpx-bbede82f24dbe8233f5d5a9d1d2565b5a34efb4e.tar.bz2
libvpx-bbede82f24dbe8233f5d5a9d1d2565b5a34efb4e.zip
Nearest / Zero Mv default entropy tweak.
Tweak to default mode context to account for the fact that when there are no non zero motion candidates Nearest is now the preferred mode for coding a 0,0 vector. Also resolve duplicate function name and typos. Change-Id: I76802788d46c84e3d1c771be216a537ab7b12817
Diffstat (limited to 'vp9/encoder')
-rw-r--r--vp9/encoder/vp9_bitstream.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/vp9/encoder/vp9_bitstream.c b/vp9/encoder/vp9_bitstream.c
index 71109f8f4..0858b291f 100644
--- a/vp9/encoder/vp9_bitstream.c
+++ b/vp9/encoder/vp9_bitstream.c
@@ -221,8 +221,8 @@ static void update_refpred_stats(VP9_COMP *cpi) {
//
// The branch counts table is re-populated during the actual pack stage and in
// the decoder to facilitate backwards update of the context.
-static void update_mode_probs(VP9_COMMON *cm,
- int mode_context[INTER_MODE_CONTEXTS][4]) {
+static void update_inter_mode_probs(VP9_COMMON *cm,
+ int mode_context[INTER_MODE_CONTEXTS][4]) {
int i, j;
unsigned int (*mv_ref_ct)[4][2];
@@ -813,7 +813,7 @@ static void pack_inter_mode_mvs(VP9_COMP *cpi, MODE_INFO *m,
active_section = 3;
#endif
- // Is segment skip is not enabled code the mode.
+ // If segment skip is not enabled code the mode.
if (!vp9_segfeature_active(xd, segment_id, SEG_LVL_SKIP)) {
if (mi->sb_type) {
write_sb_mv_ref(bc, mode, mv_ref_p);
@@ -1871,7 +1871,13 @@ void vp9_pack_bitstream(VP9_COMP *cpi, unsigned char *dest,
if (pc->frame_type != KEY_FRAME) {
int i, j;
int new_context[INTER_MODE_CONTEXTS][4];
- update_mode_probs(pc, new_context);
+ if (!cpi->dummy_packing) {
+ update_inter_mode_probs(pc, new_context);
+ } else {
+ // In dummy pack assume context unchanged.
+ vpx_memcpy(new_context, pc->fc.vp9_mode_contexts,
+ sizeof(pc->fc.vp9_mode_contexts));
+ }
for (i = 0; i < INTER_MODE_CONTEXTS; i++) {
for (j = 0; j < 4; j++) {