summaryrefslogtreecommitdiff
path: root/vp9
diff options
context:
space:
mode:
authorRonald S. Bultje <rbultje@google.com>2013-05-02 13:56:06 -0700
committerGerrit Code Review <gerrit@gerrit.golo.chromium.org>2013-05-02 13:56:06 -0700
commitc8de931e06cbd71e976a9e0618e42930b71aac88 (patch)
treef56c3201e5dc9b88cd0c69234ca582eb3ea0a9d3 /vp9
parent1cc0e67d85576ca6831416204ad58aa88d1c3298 (diff)
parente931dac733665970949138933b73621e55b321cd (diff)
downloadlibvpx-c8de931e06cbd71e976a9e0618e42930b71aac88.tar
libvpx-c8de931e06cbd71e976a9e0618e42930b71aac88.tar.gz
libvpx-c8de931e06cbd71e976a9e0618e42930b71aac88.tar.bz2
libvpx-c8de931e06cbd71e976a9e0618e42930b71aac88.zip
Merge "Fix i4x4 mode reading and writing in sb8x8 bitstream." into experimental
Diffstat (limited to 'vp9')
-rw-r--r--vp9/decoder/vp9_decodemv.c9
-rw-r--r--vp9/encoder/vp9_bitstream.c4
-rw-r--r--vp9/encoder/vp9_encodeframe.c7
3 files changed, 17 insertions, 3 deletions
diff --git a/vp9/decoder/vp9_decodemv.c b/vp9/decoder/vp9_decodemv.c
index a290c5537..e17fcdfd6 100644
--- a/vp9/decoder/vp9_decodemv.c
+++ b/vp9/decoder/vp9_decodemv.c
@@ -952,7 +952,12 @@ static void read_mb_modes_mv(VP9D_COMP *pbi, MODE_INFO *mi, MB_MODE_INFO *mbmi,
// required for left and above block mv
mv0->as_int = 0;
- if (mbmi->sb_type > BLOCK_SIZE_MB16X16) {
+#if CONFIG_SB8X8
+ if (mbmi->sb_type > BLOCK_SIZE_SB8X8)
+#else
+ if (mbmi->sb_type > BLOCK_SIZE_MB16X16)
+#endif
+ {
mbmi->mode = read_sb_ymode(r, cm->fc.sb_ymode_prob);
cm->fc.sb_ymode_counts[mbmi->mode]++;
} else {
@@ -970,7 +975,7 @@ static void read_mb_modes_mv(VP9D_COMP *pbi, MODE_INFO *mi, MB_MODE_INFO *mbmi,
if (m == B_CONTEXT_PRED) m -= CONTEXT_PRED_REPLACEMENTS;
#endif
cm->fc.bmode_counts[m]++;
- } while (++j < 16);
+ } while (++j < (16 >> (2 * CONFIG_SB8X8)));
}
#if !CONFIG_SB8X8
diff --git a/vp9/encoder/vp9_bitstream.c b/vp9/encoder/vp9_bitstream.c
index 5811b1d00..e2ecf2955 100644
--- a/vp9/encoder/vp9_bitstream.c
+++ b/vp9/encoder/vp9_bitstream.c
@@ -671,7 +671,11 @@ static void pack_inter_mode_mvs(VP9_COMP *cpi, MODE_INFO *m,
active_section = 6;
#endif
+#if CONFIG_SB8X8
+ if (m->mbmi.sb_type > BLOCK_SIZE_SB8X8)
+#else
if (m->mbmi.sb_type > BLOCK_SIZE_MB16X16)
+#endif
write_sb_ymode(bc, mode, pc->fc.sb_ymode_prob);
else
write_ymode(bc, mode, pc->fc.ymode_prob);
diff --git a/vp9/encoder/vp9_encodeframe.c b/vp9/encoder/vp9_encodeframe.c
index 0642c31bd..9e77f8125 100644
--- a/vp9/encoder/vp9_encodeframe.c
+++ b/vp9/encoder/vp9_encodeframe.c
@@ -2073,7 +2073,12 @@ static void sum_intra_stats(VP9_COMP *cpi, MACROBLOCK *x) {
#endif
#endif
- if (xd->mode_info_context->mbmi.sb_type > BLOCK_SIZE_MB16X16) {
+#if CONFIG_SB8X8
+ if (xd->mode_info_context->mbmi.sb_type > BLOCK_SIZE_SB8X8)
+#else
+ if (xd->mode_info_context->mbmi.sb_type > BLOCK_SIZE_MB16X16)
+#endif
+ {
++cpi->sb_ymode_count[m];
} else {
++cpi->ymode_count[m];