JVET-W0093 AHG8: On significance, GT1, and GT2 flag coding for high bit depths [A. Browne, S. Keating, K. Sharman (Sony)]
This document describes a study of the use of significance, GT1 and GT2 flags in regular residual coding for high bit depths at low QP and lossless operating points. An analysis using VTM 13.0 is provided which lists the number of these flags used and the fraction of them that are set for each QP in the low QP high bit depth CTC. This analysis outlines how as QPs decrease, the fraction of the flags that are set increases to almost 100%. A modification is described which effectively shifts the significance, GT1 and GT2 tests left by a number of bits signalled from the encoder. A non-normative algorithm is also described which computes a suitable value for this shift in a pre-encode step. The analysis, previously done for VTM 13.0, is repeated for the modification and indicates that the fraction of flags that are set does not rise as QPs decrease, unlike VTM 13.0.
The following results are reported for the modification against an anchor of VTM 13.0:
Lossless | AI | LDB | RA | |
PQ | -0.36% | -0.41% | -0.41% | |
HLG | -0.77% | -1.13% | -1.13% | |
SVT-12 | -1.10% | -1.33% | -1.34% | |
SVT-16 | -1.12% | -1.45% | -1.46% | |
Low QP | AI | LDB | RA | |||||||
Y/G | U/B | V/R | Y/G | U/B | V/R | Y/G | U/B | V/R | ||
PQ | 0.05% | 0.05% | 0.06% | 0.03% | 0.03% | 0.04% | 0.03% | 0.04% | 0.04% | |
HLG | -0.08% | -0.10% | -0.10% | 0.02% | 0.03% | 0.03% | 0.01% | 0.03% | 0.03% | |
SVT-12 | -0.25% | -0.23% | -0.25% | -0.09% | -0.06% | -0.07% | -0.10% | -0.05% | -0.06% | |
SVT-16 | -0.87% | -0.89% | -0.89% | -0.87% | -0.80% | -0.80% | -0.85% | -0.77% | -0.77% | |
If GolombRiceParameterAdaptation is disabled for both VTM 13.0 and the modification, the following results are reported:
Lossless | AI | LDB | RA | |
PQ | -1.00% | -1.06% | -1.00% | |
HLG | -2.74% | -2.65% | -2.51% | |
SVT-12 | -3.16% | -2.91% | -2.90% | |
SVT-16 | -2.81% | -2.41% | -2.42% | |
Low QP | AI | LDB | RA | |||||||
Y/G | U/B | V/R | Y/G | U/B | V/R | Y/G | U/B | V/R | ||
PQ | 0.02% | 0.04% | 0.05% | 0.03% | 0.03% | 0.03% | 0.02% | 0.02% | 0.03% | |
HLG | -0.30% | -0.16% | -0.17% | -0.01% | 0.01% | 0.01% | -0.01% | 0.01% | 0.01% | |
SVT-12 | -0.82% | -0.55% | -0.56% | -0.38% | -0.34% | -0.35% | -0.38% | -0.28% | -0.29% | |
SVT-16 | -2.33% | -2.08% | -2.06% | -1.78% | -1.82% | -1.82% | -1.76% | -1.69% | -1.69% | |
Amount of shift is signalled in the slice header (separate for luma and chroma).
The shift is likely somewhat sequence dependent – does this cause problems?
The method to determine the shift is a two-pass algorithm (based on estimate of the residual)
Run for every picture, though it is likely that the change of is similar over the sequence
Most gain achieved for SVT (noisy sequences) and lossless. 10 bit performance was not studied.
Some small losses in normal QP range were noted.
LSBs (lower than the position of shift offset) are always coded.
It is recommended to measure the benefit in terms of throughput.
Further study was recommended.