Commit e931dac7 authored by Ronald S. Bultje's avatar Ronald S. Bultje
Browse files

Fix i4x4 mode reading and writing in sb8x8 bitstream.

Don't allow i4x4 except for sb8x8 recursion step. Read only 4 (not 16)
i4x4 submodes if we are i4x4.

Change-Id: Iaaaced1a134006b2c96eed66f014300eae41e0ed
parent 06df1f82
...@@ -968,7 +968,12 @@ static void read_mb_modes_mv(VP9D_COMP *pbi, MODE_INFO *mi, MB_MODE_INFO *mbmi, ...@@ -968,7 +968,12 @@ static void read_mb_modes_mv(VP9D_COMP *pbi, MODE_INFO *mi, MB_MODE_INFO *mbmi,
// required for left and above block mv // required for left and above block mv
mv0->as_int = 0; 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); mbmi->mode = read_sb_ymode(r, cm->fc.sb_ymode_prob);
cm->fc.sb_ymode_counts[mbmi->mode]++; cm->fc.sb_ymode_counts[mbmi->mode]++;
} else { } else {
...@@ -986,7 +991,7 @@ static void read_mb_modes_mv(VP9D_COMP *pbi, MODE_INFO *mi, MB_MODE_INFO *mbmi, ...@@ -986,7 +991,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; if (m == B_CONTEXT_PRED) m -= CONTEXT_PRED_REPLACEMENTS;
#endif #endif
cm->fc.bmode_counts[m]++; cm->fc.bmode_counts[m]++;
} while (++j < 16); } while (++j < (16 >> (2 * CONFIG_SB8X8)));
} }
#if !CONFIG_SB8X8 #if !CONFIG_SB8X8
......
...@@ -722,7 +722,11 @@ static void pack_inter_mode_mvs(VP9_COMP *cpi, MODE_INFO *m, ...@@ -722,7 +722,11 @@ static void pack_inter_mode_mvs(VP9_COMP *cpi, MODE_INFO *m,
active_section = 6; active_section = 6;
#endif #endif
#if CONFIG_SB8X8
if (m->mbmi.sb_type > BLOCK_SIZE_SB8X8)
#else
if (m->mbmi.sb_type > BLOCK_SIZE_MB16X16) if (m->mbmi.sb_type > BLOCK_SIZE_MB16X16)
#endif
write_sb_ymode(bc, mode, pc->fc.sb_ymode_prob); write_sb_ymode(bc, mode, pc->fc.sb_ymode_prob);
else else
write_ymode(bc, mode, pc->fc.ymode_prob); write_ymode(bc, mode, pc->fc.ymode_prob);
......
...@@ -2073,7 +2073,12 @@ static void sum_intra_stats(VP9_COMP *cpi, MACROBLOCK *x) { ...@@ -2073,7 +2073,12 @@ static void sum_intra_stats(VP9_COMP *cpi, MACROBLOCK *x) {
#endif #endif
#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]; ++cpi->sb_ymode_count[m];
} else { } else {
++cpi->ymode_count[m]; ++cpi->ymode_count[m];
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment