[Mp4-tech] Updating probabilities of context models for significance and last non-zero maps in CABAC coding

Michael Chertok Michael.Chertok ceva-dsp.com
Sun Aug 29 16:00:25 EDT 2004


When using CABAC, every block of transform coefficients is preceded by a
significance map and map of last non-zero coefficient. These maps are
coded by means if CABAC as well. Every coefficient position in a scan
order has it's own associated model (16 models for significance map and
16 models for last non-zero coefficient map).
My question is regarding coefficients, which are beyond the last non
zero coefficient. In this case, all the coefficients beyond the last
non-zero coefficient are zero, and the models (their probabilities and
maybe the MPS) should be influenced/updated by these zero coefficients.
If one looks at the reference software one can see that the
encoder/decoder doesn't treat these coefficients at all. That's, only
coefficients, which are located before the last non-zero coefficient in
scan order influence their respective model. 
Now the question is whether this implementation of reference software
reflects the intention of the standard ?
Example:
 ---------------
| 5 | 3 | 0 | 0 |
| 0 | 1 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
 ---------------
In this example '1' is the last non-zero coefficient.
All the coefficients in scanning order before (and including) '1' are
coded by their respective models (and thus update these model). The
coefficients beyond '1' are not coded and as a side effect they don't
update their models. But these coefficients are effectively 0 and thus
should update the probability of 0/1 of their respective model.
Any ideas of what is wrong ?
Regards,
		Michael.


More information about the Mp4-tech mailing list