JVET-K0025 CE5: Summary report of CE on Arithmetic Coding Engine [T. Nguyen, A. Said]
This report summarizes the experimental results and the findings for the Core Experiment 5 on Arithmetic Coding Engine. Twelve experiments have been conducted: two experiments in the main category (experiments 5.1.1 and 5.1.2), four experiments in Subset A (experiments 5.2.1 – 5.2.4), four experiments in Subset B (experiments 5.3.1 – 5.3.4), and two experiments in Subset C (experiments 5.4.1 and 5.4.2). The experimental results indicate that further analysis is necessary on the topic of probability estimators and its memory requirements. Furthermore, the results show that a final rLPS design that has a maximum size equal to or less than 2048 bit is sufficient to achieve the compression efficiency.
Main Category
The proposals in the main category indicate the best performance in compression efficiency that can be achieved for the time of this document, considering the increase in complexity. There were only two experiments in this sub-category, and they share the same basic design: (a) high-precision probability estimation; (b) double window probability estimation using different window pairs per context; (c) small multiplication tables; and (d) Context probability initialization from previous frames.
The results below summarize the performance of Experiment 5.1.1 (JVET-K0381).
5.1.1 | Over VTM-1.0 | Over BMS-1.0 | ||||||||
Y | U | V | EncT | DecT | Y | U | V | EncT | DecT | |
AI | -0.97% | -0.45% | -0.41% | 103% | 103% | -1.04% | -0.30% | -0.36% | 103% | 99% |
RA | -1.02% | -0.14% | -0.28% | 102% | 101% | -1.17% | -0.21% | -0.44% | 103% | 100% |
LB | -0.87% | 1.06% | 1.11% | 102% | 103% | -1.23% | 0.93% | 1.47% | 101% | 100% |
and for experiment 5.1.2 (JVET-K0283)
5.1.2 | Over VTM-1.0 | Over BMS-1.0 | ||||||||
Y | U | V | EncT | DecT | Y | U | V | EncT | DecT | |
AI | -0.98% | -0.66% | -0.68% | 106% | 103% | -0.84% | -0.47% | -0.58% | 105% | 107% |
RA | -1.00% | -0.51% | -0.48% | 103% | 101% | -0.98% | -0.39% | -0.64% | 104% | 104% |
LB | -1.17% | 0.44% | 0.55% | 103% | 102% | -1.32% | 0.57% | 0.82% | 102% | 100% |
Performance: Both experiments yield an improvement in coding efficiency of about 1% in BD-rate in the AI and RA configurations. Slight differences can be observed, but with deltas between the two proposals smaller than 0.2%. Both the encoding and the decoding run times are similar with an increase of about 3% for the encoder and 1–2% for the decoder. Experiment 5.1.2 introduces new context initialization values. The difference in the performance is not significant, i.e., an improvement of about 0.05% in BD-rate can be observed with new initialization values.
Notes: Both experiments include the usage of context model states from the previously coded frame.
Observation: An improvement in BD-rate of about 0.9–1.3% can be achieved by modifying all parts of the arithmetic coding engine. A slight increase in run times can be observed. The performance can be achieved with a rLPS table size similar to the reference (compare experiments 5.1.1 and 5.1.2, and 5.2.1). The new initialization values do not improve the performance significantly (see detailed results for experiment 5.1.2).
Memory: As the reference, CABAC, as specified in HEVC, has a 64×4×8 (2048 bit) rLPS table, and each context model requires 7 bits. Moreover, a 64×6 (384 bit) transition table is necessary. Experiment 5.1.1 employs a 16×16×8 (2048 bits) rLPS table and custom window sizes for each context model. Each context model requires 2×15+4 (34 bits). The experiment 5.1.2 employs a 32×8×8 (2048 bits) rLPS table and custom window sizes for each context model, resulting in 2×15+4 (34 bits). For both experiments, each context model requires about 5.14 times the memory of the reference. The following table summarizes the memory requirements with all values in number of bit. The numbers are derived as follows:
- Number of context models: 359, by analyzing the BMS-1.0 software implementation
- Initialization values: 8×3×359=8616 (8-bit initialization values, three slice types, 359 context models)
- Total number of context memory: number of context models multiplied by memory per context
- CABAC in HEVC: Transition table for the states 64×6 (384 bit)
- Experiment 5.1.1: 4 bit for each context model specifying custom window size (1436 bit in total)
- Experiment 5.1.2: same as 5.1.1, but separately for each slice type (4308 bit in total)
Configuration | rLPS | stateTable | cwInit | ROM | perCtx | RAM |
HEVC | 2048 | 384 | 0 | 11048 | 7 | 2513 |
5.1.1 | 2048 | 0 | 1436 | 12100 | 34 | 12206 |
5.1.2 | 2048 | 0 | 4308 | 14972 | 34 | 12206 |
Subset A and B: Probability Estimation and Derivation of Sub-Interval Range for LPS
The idea of these two subsets is the evaluation of the proposed probability estimators (PE) and the modified rLPS tables separately. It is however not always possible to decouple the derivation of the sub-interval range for LPS from the probability estimation. The table below, therefore, summarizes the results of the experiments of both subsets.
Experiment | Document / Proponent | Description | Results |
CE5-2.1 | Qualcomm | PE fix, rLPS variation Observation: | rLPS: 8×8×8 (512) rLPS: 16×16×8 (2048) |
CE5-2.2 | JVET-K0283 HHI | rLPS fix, PE variation Observation: Memory: | PE: 10+14 (24) PE: 10+14+4 (28) PE: 15+15 (30) PE: 15+15+4 (34) |
CE5-2.3 | JVET-K0282 DJI and Peking Univ. | rLPS: 512×64×9 (294912) Observation: Memory: | -0.66% 0.13% 0.22% |
CE5-2.4 | JVET-K0170 Samsung | rLPS: 512×64×9 (294912) Observation: Memory: | -0.81% -0.56% -0.39% |
CE5-3.1 | JVET-K0383 Qualcomm | PE fix, rLPS variation Observation: Memory: | Relative to CABAC engine 1 of BMS-1.0 rLPS: 16×16×8 (2048) rLPS: 8×8×8 (512) |
CE5-3.2 | JVET-K0283 HHI | PE fix, smaller rLPS table tested. Observation: Memory: | Relative to BMS-1.0 rLPS: 32×8×8 (2048) rLPS: 16×8×8 (1024) |
CE5-3.3 | JVET-K0249 MediaTek | PE fix, smaller rLPS table tested. Observation: Memory: | Relative to CABAC engine 3 of BMS-1.0 rLPS: 16×8×8 (1024) rLPS: 32×8×8 (2048) |
CE5-3.4 | JVET-K0249 MediaTek | PE fix, smaller rLPS tables, derivation requires multiplications Observation: Memory: | Relative to CABAC engine 3 of BMS-1.0 rLPS: 5×5×8 (200) rLPS: 6×6×8 (288) |
The conclusion from the rLPS configuration tests is that we can use tables that are about as small as those used for HEVC without a significant loss.
For the probability estimator, double windows were proposed. Most of the gain comes from using a double window without a customized window size.
It was suggested to use a double window with a fixed window size and to use a high-precision range computation as the basic thing to compare against.
A suggestion was a 32×8 table. 512x64 was used in the JEM – use that.
Further study in a CE was requested, with a straightforward double window anchor.
This was further discussed Thursday 1445 (chaired by GJS).
We would like a specific design that is straightforward, well understood and at least reasonably tested, in which we’re confident that there are no unnecessary elements, before acting.
It was commented that we need to make sure the design has high throughput, not just good coding efficiency.
Subset C: Context Initialization and Parameterization
This subset of the CE was discussed at 1400–1445 on Thursday 12 July (chaired by GJS).
The final subset evaluates two experiments employing techniques that allow the inheritance of context model states from previously coded frames. The difference between the two proposals is the granularity level of the state inheritance, either slice level (7.4.1) or CTU-line level (7.4.2). The latter requires more memory but has benefit for parallel processing applications.
Summary: The improvement in compression efficiency is relatively small for RA configuration, whereas the improvement for LB-BMS is almost 0.7% for both schemes. It seems that the LB configuration is generally prone to initialization values.
It was noted that the method of context probability initialization might differ, and that these might have been trained on the test set, or even on the low-resolution class (which would appear to have the most benefit). It was suggested that, properly, there should be a specific method of initializing the values.
It was commented that the overall benefit of initialization is pretty small, especially for high-resolution video. A participant said that initializing the coefficient coding probabilities to 0.5 results in a loss of only 0.15% in RA and 0.05 in AI and 0.54% in LB (esp. higher in LB because that average does not include the UHD sequences, and the average number of coded bins per frame is lower due to having fewer bits per frame).
It was asked how it was determined where to inherit the contexts from. For the experiments the last coded frame with the same QP was used and only one slice per frame was used. No proposals had been made about how this would work in the actual standard.
No memory analysis had been provided for the proposals.
Further study was needed to determine how this feature would really work in the standard.