Back to Search Document details
15th Meeting: Gothenburg, SE, July 2019 2019-07-05 08:58
Context memory reduction via selective adaptation
Abstract
This is a proposal reduce the cost of supporting a large number of CABAC contexts by removing the adaptability of the least important contexts. It is shown that this can be done with a minimal change to the context implementation (a single “if” line added), no changes to the CABAC engine, and (unlike converting to bypass) no changes to the any other parts of VTM or the standard’s text. The change can yield significant savings in memory and hardware implementation costs because it changes the context memory requirement from 28 bits to 6 bits, and a part of the context-state total RAM can be replaced by cheaper ROM. Simulation results show that between 40% to 60% percent of the contexts can be converted with very small losses. Under CTC and 4 bits of precision for probabilities, conversion of 100 contexts from adaptive to non-adaptive results in 0.01% and 0.00% luma losses in AI and RA, and conversion of 200 contexts results in 0.06% and 0.xx% luma losses in AI and RA.
JVET-O0741 Context memory reduction via selective adaptation [A. Said, T. Hsieh, J. Dong (Qualcomm)] [late]

This contribution was discussed Friday 5 July at 1645 (chaired by GJS).

This is a proposal reduce the cost of supporting a large number of CABAC contexts by removing the adaptability of the least important contexts. It is reported that this can be done with a minimal change to the context implementation (a single “if” line added), no changes to the CABAC engine, and (unlike converting to bypass) no changes to the any other parts of VTM or the standard’s text. The change can reportedly yield significant savings in memory and hardware implementation costs because it changes the context memory requirement from 28 bits to 6 bits, and a part of the context-state total RAM can be replaced by cheaper ROM. Simulation results show that if the CTC is sufficiently representative of usage, between 40% to 60% percent of the contexts can be converted with very small losses. Under CTC and 4 bits of precision for probabilities, conversion of 100 contexts from adaptive to non-adaptive reportedly results in 0.01% and 0.00% luma losses in AI and RA, and conversion of 200 contexts reportedly results in 0.06% and 0.xx% luma losses in AI and RA CTC conditions.

See also the notes for JVET-O0554. As with that contribution, was noted that not all contexts that are in the software are actually used in the standard, and the CTC does not represent all anticipated usage (e.g., delta QP is not used).

The core engine uses 6 bits for a probability estimate.

A participant said that a typical implementation would not have a benefit from this, since it would have sufficient RAM already, due to more storage being needed for other decoder designs that would be supported in the same implementation. In general it has been agreed that minimizing the number of contexts is not a very high priority currently, as the number of contexts in the design is not very excessive.

The proposal would have a less severe effect on coding efficiency than using bypass coding because this supports skewed (although fixed) probabilities. However, it was noted that the maximum penalty of a mismatch between the estimated and actual probability could be larger in this case if the experienced probability is different from the estimate.

It was commented that it would be undesirable to need to have some “if” condition for whether or not a particular context has probability adaptation. If a particular syntax element would always use an adaptive context or would always use a non-adaptive context, that would be OK, but it would be bad to need a condition check when operating the CABAC process.

If this is done to some degree, selecting which contexts it could apply to would need to be done carefully.

No action was taken on this.

Decisions
No action was taken on this.
Citation