Removing skip inferrence with all 0 TX

If a non-skipped block has all transform blocks with only 0 data, then
decoder infers skip flag. This affects the loopfilter. No real encoder
would do this though, so it is pointless. Also, it causes headaches in
HW implmentations as the loop filter cannot proceed until all TX blocks
in the block have been checked. There could be up to 768 of them in
64x64 4:4:4 with 4x4 transform.

Change-Id: I45a021d1f27ca7feefed2242605777e70ce7cabd
This commit is contained in:
Pieter Kapsenberg 2015-05-21 12:14:54 -07:00
parent c238d6cd72
commit 70ddd92d9a

View File

@ -1311,8 +1311,11 @@ static void decode_block(VP9_COMMON *const cm, MACROBLOCKD *const xd,
struct inter_args arg = { cm, xd, r, &eobtotal };
vp9_foreach_transformed_block(xd, bsize, reconstruct_inter_block, &arg);
#if CONFIG_BITSTREAM_FIXES
#else
if (!less8x8 && eobtotal == 0)
mbmi->skip = 1; // skip loopfilter
#endif
}
}
#if CONFIG_SUPERTX