[NORMATIVE] Don't transmit skip_mode for intra blk
In particular, when FeatureData[ segment_id ][ SEG_LVL_REF_FRAME ]
== INTRA_FRAME, this is an intra block. So, don't signal skip_mode, but
rather infer that skip_mode is FALSE.
BUG=aomedia:1874
Change-Id: If2c493e418755a41da9b260ebde01cd3837b27f6
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index 394ecfe..cd15d24 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -238,6 +238,12 @@
assert(!skip_mode);
return 0;
}
+ if (segfeature_active(&cm->seg, segment_id, SEG_LVL_REF_FRAME) &&
+ get_segdata(&cm->seg, segment_id, SEG_LVL_REF_FRAME) == INTRA_FRAME) {
+ // This is an intra block, so skip_mode is implicitly 0.
+ assert(!skip_mode);
+ return 0;
+ }
const int ctx = av1_get_skip_mode_context(xd);
aom_write_symbol(w, skip_mode, xd->tile_ctx->skip_mode_cdfs[ctx], 2);
return skip_mode;