Back to Search Document details
15th Meeting: Gothenburg, SE, July 2019 2019-07-08 15:00
CE1: Summary report on CABAC initialization
Abstract
Core experiment 1 on CABAC initialization was conducted between the 14th and 15th JVET meeting. Results are reported for five experiments, all aimed at simplifying the CABAC initialization process.
JVET-O0021 CE1: Summary report on CABAC initialization [F. Bossen, J. Dong, H. Kirchhoffer]

This contribution was discussed in Track A Wednesday 3 July 1645 (chaired by GJS).

Core experiment 1 on CABAC initialization was conducted between the 14th and 15th JVET meeting. Results are reported for five experiments, all aimed at simplifying the CABAC initialization process.

Detailed reports are provided in the following input contributions, which were provided in a timely manner:

  • JVET-O0065: CE1-1.2 and CE1-2.1: Simplification of CABAC initialization process
  • JVET-O0085: CE1-1.1: Simplification of the initialization process for context variables
  • JVET-O0112: CE1: CABAC Initialization, all experiments

Detailed descriptions of experiments are provided in the CE description document JVET-N1021. At a high-level, experiments can be distinguished between:

  • Methods that use a 6-bit initValue (CE1-1.1, CE1-1.2, CE1-3.1.b) and methods that use an 8-bit initValue (CE1-2.1, CE1-3.1.a)
  • Methods that use a linear space (CE1-1.1, CE1-1.2, CE1-2.1) and methods that use a logarithmic space (CE1-3.1.a, CE1-3.1.b)

In addition to regular CTC conditions, the “random access” configuration was also tested at very low (2-17) and very high (42-57) QP values. The table below captures BD rate difference averages for the luma component.

The table below captures BD rate difference averages for the luma component.

Experiment

AI

RA

LB

LP

RA (low)

RA (high)

6-bit

Linear Space

CE1-1.1

-0.02%

0.01%

0.04%

0.00%

-0.01%

0.66%

CE1-1.2

-0.02%

-0.01%

0.03%

-0.09%

-0.01%

0.22%

8-bit

CE1-2.1

-0.02%

-0.02%

-0.01%

-0.07%

-0.02%

0.74%

Logarithmic Space

CE1-3.1.a

-0.01%

-0.02%

-0.01%

-0.02%

0.00%

0.33%

6-bit

CE1-3.1.b

0.00%

0.00%

0.00%

-0.04%

0.01%

0.65%

Coding efficiency differences are minor except for the very high QP values case. In general, no significant differences in coding efficiency are observed between:

  • Methods that use a 6-bit initValue (CE1-1.1, CE1-1.2, CE1-3.1.b) and methods that use an 8-bit initValue (CE1-2.1, CE1-3.1.a)
  • Methods that use a linear space (CE1-1.1, CE1-1.2, CE1-2.1) and methods that use a logarithmic space (CE1-3.1.a, CE1-3.1.b)

No complexity analysis metric was defined in the CE description. Nevertheless, at a high level, the following can be said about the methods studied in this CE:

  • all methods are less complex than the method in the current VVC draft because they avoid a large lookup table
  • methods that use a logarithmic space (CE1-3.1.x) are a bit more complex because a log-to-linear conversion needs to be done
  • methods that use a 6-bit initValue (CE1-1.1, CE1-1.2, CE1-3.1.b) do not require more operations than those that use an 8-bit initValue (CE1-2.1, CE1-3.1.a)

An analysis of operation counts for each method is provided below, based on the implementations provided in the CE software repository. Note that multiplications by a constant are counted as combinations of shift and add operations. Also note that the bit width of each operation is not considered here. It was remarked that there was not full agreement on the reported necessary operation counts (esp. for CE1-1.1).

Shift
(<<, >>)

Multiplication
(×)

Addition
(+/-)

AND
(&)

XOR
(^)

Compare
(if, Clip3)

CE1-1.1

7 or 5

1

5

1

0

4

CE1-1.2

5

1

5

1

0

2

CE1-2.1

4

1

4

1

0

2

CE1-3.1.a

8

1

8

2

1

2

CE1-3.1.b

10

1

8

2

1

2

Additionally, cycle counts based on optimized software implementations are reported in JVET-O0191.

Tools for training were kindly provided by Fraunhofer HHI. It was remarked that training effects could be having some effect on the results.

The following non-CE contributions related to CE1 have been registered:

  • JVET-O0191: CE1-related: Simplified CABAC initialization method

It was commented that this is just for the initial state, and in the way it was tested, the initial state value does not matter so much for low QPs.

The current draft has a mapping from log domain to linear domain that serves no function and can be eliminated (apparently without a penalty) by adopting one of the proposed linear domain approaches.

The main motivation here is a cleanup simplification. The mapping is not a rational part of the design; it resulted from a prior design change.

Testing with more frequent probability resets was suggested, to increase the effect of the initialization on the test results. One suggestion was to initialize CABAC for every CTU.

Decision (cleanup): Adopt CE1-1.2, pending consideration of non-CE contributions or additional test results.

Decisions
adopted
Decision (cleanup): Adopt CE1-1.2, pending consideration of non-CE contributions or additional test results.
Citation