Commit 22cfc841 authored by Geza Lore's avatar Geza Lore
Browse files

Update VAR_TX related context when using SUPERTX.

The encoder did not update left_txfm_context and above_txfm_context in
MACROBLOCKD (used for choosing the probability context for the vartx
split bits) when the supertx bit was set for a block. The deoder on the
other hand did update these for supertx blocks. The encoder used these
to compute the context counts, which the packer then uses to adapt it's
probabilities. This results in the packer and the decoder using
different probabilities.

This patch harmonizes the encoder and the decoder by making the encoder
update the mentioned context for supertx coded blocks.

Change-Id: I3a22132124b1bce2ee501d640ceab374b19e3ca1
parent 56686b45
...@@ -2052,6 +2052,10 @@ static void encode_sb(VP10_COMP *cpi, ThreadData *td, ...@@ -2052,6 +2052,10 @@ static void encode_sb(VP10_COMP *cpi, ThreadData *td,
} }
if (partition != PARTITION_SPLIT || bsize == BLOCK_8X8) if (partition != PARTITION_SPLIT || bsize == BLOCK_8X8)
update_partition_context(xd, mi_row, mi_col, subsize, bsize); update_partition_context(xd, mi_row, mi_col, subsize, bsize);
set_txfm_ctx(xd->left_txfm_context, supertx_size, xd->n8_h);
set_txfm_ctx(xd->above_txfm_context, supertx_size, mi_height);
#endif // CONFIG_VAR_TX
return; return;
} else { } else {
if (output_enabled) { if (output_enabled) {
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