Back to Search Document details
13th Meeting: Marrakech, January 2019 2019-01-09 15:38
CE3: Summary report on intra prediction and mode coding
Abstract
This is the summary report of the third Core Experiment (CE3) [1]. The goal of CE3 is to study intra prediction tools, including mode coding, for potential inclusion into the VVC standard.
JVET-M0023 CE3: Summary report on intra prediction and mode coding [G. Van der Auwera, J. Heo, A. Filippov]

This contribution was discussed Wednesday 9 January 1750–2030 (chaired by GJS)

This is the summary report of the third Core Experiment (CE3). The goal of CE3 is to study intra prediction tools, including mode coding, for potential inclusion into the VVC standard.

The following is the list of defined sub-tests in CE3:

  • CE3.1: Intra prediction modes (5 tests)
  • CE3.2: Cross-component prediction (11 tests)
  • CE3.3: Intra mode coding (10 tests)

This document summarizes the objective results (BD-rates, runtimes), cross-check reports, and related input contributions.

The source codes of the tests and full test results are uploaded by proponents into the following CE3 GitLab repository:

https://vcgit.hhi.fraunhofer.de/JVET-L-CE3/VVCSoftware_VTM.git

The following changes were made to the CE3 test description document after the T2 deadline (December 6, 2018) had passed. Besides changes to contact persons and assignment of cross-checkers, the following changes were requested on the JVET reflector and discussed for clarification, if needed:

  • CE3.2:
    • Added test CE3.2.2.1 (MMLM; combination of tests CE3.2.1 and CE3.2.2)
    • Added test CE3.2.6.2 (CCLM; testing 3 columns of neighbouring samples on left side of block, 1 row above block)
  • CE3.3:
    • Reduction and clarification of test CE3.3.1 from 7 subtests to 4 (decoder-side intra mode derivation)
    • Additional result for test 3.5 (multiple DM for chroma)

CE3.1 on ‘Intra prediction modes’

Test #

Description

Doc. #

1.1.1

Intra sub-partitions coding mode (conceptually similar to prior “short-distance intra prediction”) with a different trade-off between gain and encoding run-time (at least 16 samples per partition; 2 or 4 partitions)

JVET-M0102

1.1.2

Test 1.1.1 with a restriction: the resulting partitions must have a width of at least 4 samples (but height can be 1, 2, or 4)

1.2.1

Affine linear weighted intra prediction modes with encoder speedup

JVET-M0043

1.2.2

Affine linear weighted intra prediction modes with a fixed number of weights needed per NxN block

1.3

Harmonization simplified linear interpolation intra prediction (LIP) with PDPC

JVET-M0252

All Intra Main 10 - Over VTM-3.0

Random Access Main 10 - Over VTM-3.0

Test #

Y

U

V

EncT

DecT

Y

U

V

EncT

DecT

1.1.1

-0.59%

-0.44%

-0.47%

112%

103%

-0.29%

-0.31%

-0.15%

102%

103%

1.1.2

-0.46%

-0.34%

-0.34%

112%

104%

-0.24%

-0.28%

-0.18%

102%

102%

1.2.1

-1.36%

-1.02%

-1.01%

153%

105%

-0.85%

-0.92%

-0.98%

112%

99%

1.2.2

-0.95%

-0.42%

-0.46%

153%

101%

-0.57%

-0.73%

-0.83%

110%

98%

1.3

-0.08%

-0.14%

-0.11%

106%

100%

-0.04%

0.00%

-0.01%

101%

100%

Regarding 1.1.x, it was commented that this does not really increase decoder complexity. Another participant commented that this has a difficult pipeline dependency. However, other difficult pipline dependencies are already in the VTM, and this is not increasing the difficulty of the worst case.

CE3.1: Related contributions

Doc. #

Related test #

Title

JVET-M0426 (HHI)

1.1.2

CE3-related: Improvement on the Intra Sub-Partitions Coding Mode

CE3.1: Additional test results

All Intra Main10 - Over VTM-3.0

Random Access Main10 - Over VTM-3.0

Test#

Description

Y

U

V

EncT

DecT

Y

U

V

EncT

DecT

1.1.2.1

Test 1.1.2 with 1-D transform and entropy coding for 4xN (N>4) blocks that cannot be vertically divided (JVET-M0102)

-0.52%

-0.40%

-0.42%

112%

104%

-0.25%

-0.25%

-0.16%

102%

102%

It was noted that 1.1.x shows more gain on Class F (SCC content) than on other content, and Class F is not included in the average. A non-proponent participant focused on implementation issues indicated that they had analysed it and found it acceptable for implementation.

This was further discussed in the plenary on Sunday 13 January, and it was agreed to revisit this topic since it has an aspect of reversal of decoding order which may cause it to be difficult to implement. This aspect was studied further and was agreed to be removed. See the notes of the two plenary discussions of this in section 9.1.

Decision: Adopt CE3-1.1.1 proposal (without the reverse coding order aspect); text was provided in a revision of JVET-M0102.

Regarding 1.2.1, this has (in the decoder perspective) a selection of a matrix of stored fixed values among a set of such matrices, followed by a matrix multiply applied to boundary sample values to generate the prediction signal in the frequency domain and then an inverse transform is applied to generate a spatial domain prediction, followed by an ordinary residual difference.

It was noted that this has a bit more gain on RA than is usual for intra coding efficiency proposals (0.85/1.36=0.625 versus the usual ~0.5).

This has some decoder runtime increase. For 1.2.1 there is an increase in computational operations.

It was commented that the need to include an inverse transform in the 1.2.1 variant is an additional functional block unlike anything typically done for intra.

The amount of stored coefficient data is another issue, especially for the 1.2.1 variant (~300 kbytes). The 1.2.2 variant omits the inverse transform and has a (simple 2-tap one-dimensional average) downsampling that reduces the size of the matrices (to about ~18 kbytes – a total of around 14,000 numbers of 10 bits each), with a corresponding (bilinear) upsampling in the decoder. The proponent pointed to CPR as an instance where added storage of a greater amount is needed (although, for screen content, that has quite high gain).

The encoding complexity is another significant concern; both proposed variants increase that by ~50%. Additional encoder-only variants are reported in JVET-M0043 with different trade-offs.

The proponent said the training set did not include the CTC test set.

Between 1/3 and 1/2 of the intra blocks were reportedly using this mode (which is a lot).

Further study was encouraged (not necessarily in a CE). Side activity was encouraged during the meeting to potentially come up with a plan for further study.

For 1.3, the proposal is to add an additional mode; the measured gain was quite small and the encoder runtime increased by about 6%, so no action was taken on this.

CE3.2 on ‘Cross-component prediction’

Test #

Description

Doc. #

2.1

CCLM + MDLM + MMLM

JVET-M0097

2.2

CCLM + MDLM + MMLM + Above-MMLM + Left-MMLM

JVET-M0475

2.2.1

Combination of 2.1 and 2.2 (*)

JVET-M0098

2.3

CCLM + MDLM + Adaptive multiple cross-component linear model

JVET-M0504

2.4

Modified CCLM downsampling filter for “type-2” content (chroma sampling)

JVET-M0142

2.5.1

CCLM + MDLM, using MaxMin method, and derived by using and

JVET-M0401

2.5.2

CCLM + MDLM, using classification-based mean value method

2.5.3

CCLM + MDLM, using MaxMin method; using the first top row and the second left column

2.5.4

CCLM + MDLM, using classification-based mean value method; using the first top row and the second left column

2.6.1

CCLM accessing less neighbouring luma samples, interaction with other adopted coding tools: one row above and one column left luma samples are accessed

JVET-M0263

2.6.2

2.6.1 with three columns of left luma samples as in the anchor

The VTM has 3 CCLM modes (CCLM, CCLM-above, and CCLM-left). The selection between these modes is signalled, but the model parameters are not. The tests in the CE are to improve coding efficiency by adding more models.

 

Test 2.1

Test 2.2

Combination test 2.2.1

Signalling

Adds MMLM modes in LM symbol list

Uses flag and index to indicate MMLM mode

Same as 2.2

Number of lines used for model derivation

Same as CCLM/MDLM

(i.e., Y: 2 lines above, 3 lines left, C: 1 line above and left)

(Y: 4 lines above, 5 lines left, C: 2 lines above and left)

Same as CCLM/MDLM

(i.e., Y: 2 lines above, 3 lines left, C: 1 line above and left)

  • 2.1 uses 3 columns to the left and 2 lines above (except at the CTU boundary)
  • 2.2 uses 5 columns to the left and 4 lines above (except at the CTU boundary)
  • Between 2.1, 2.2, and 2.2.1, it was suggested to focus on the combination test 2.2.1, for using fewer lines and cleaner signalling

All Intra Main10 - Over VTM-3.0

Random Access Main10 - Over VTM-3.0

Test #

Y

U

V

EncT

DecT

Y

U

V

EncT

DecT

2.1

-0.25%

-1.71%

-2.19%

100%

100%

-0.12%

-1.36%

-1.70%

99%

99%

2.2

-0.29%

-1.94%

-2.51%

100%

100%

-0.15%

-1.70%

-1.99%

101%

100%

2.2.1

-0.27%

-1.71%

-2.26%

99%

99%

-0.13%

-1.30%

-1.73%

99%

98%

2.3

-0.10%

-0.86%

-0.88%

102%

100%

-0.03%

-0.62%

-0.66%

100%

100%

2.4

See below (*)

2.5.1

-0.09%

-0.44%

-0.47%

100%

99%

-0.08%

-0.31%

-0.39%

100%

99%

2.5.2

-0.18%

-0.88%

-0.90%

100%

99%

-0.11%

-0.74%

-0.84%

100%

99%

2.5.3

0.05%

0.45%

0.48%

100%

100%

0.02%

0.51%

0.51%

100%

99%

2.5.4

-0.14%

-0.51%

-0.51%

100%

101%

-0.09%

-0.41%

-0.46%

100%

99%

2.6.1

0.09%

0.71%

0.79%

99%

97%

0.06%

0.88%

0.95%

100%

99%

2.6.2

0.03%

0.16%

0.21%

100%

97%

0.00%

0.35%

0.35%

100%

99%

(*) Summary of test 2.4:

All Intra – Over VTM3.0 WCG_EXT=1

Test #

Description

DE100

PSNRL100

wPsnrY

wPsnrU

wPsnrV

PsnrY

PsnrU

PsnrV

EncT

DecT

2.4.a

LM determination: 3-tap filter; prediction: 3-tap filter

-2.5%

-0.2%

-0.2%

-4.2%

-8.6%

-0.2%

-3.4%

-6.7%

101%

101%

2.4.b

LM determination: 3-tap filter; prediction: 5-tap filter

-2.2%

-0.2%

-0.2%

-4.7%

-8.6%

-0.2%

-4.0%

-6.8%

101%

102%

2.4.c

LM determination: 5-tap filter; prediction: 5-tap filter

-2.6%

-0.3%

-0.2%

-5.5%

-9.6%

-0.2%

-4.6%

-7.6%

99%

101%

Random Access – Over VTM3.0 WCG_EXT=1

Test #

Description

DE100

PSNRL100

wPsnrY

wPsnrU

wPsnrV

PsnrY

PsnrU

PsnrV

EncT

DecT

2.4.a

LM determination: 3-tap filter; prediction: 3-tap filter

-1.9%

-0.2%

-0.1%

-4.2%

-5.8%

-0.1%

-3.3%

-4.5%

101%

99%

2.4.b

LM determination: 3-tap filter; prediction: 5-tap filter

-1.7%

-0.1%

-0.1%

-4.7%

-6.0%

-0.1%

-3.7%

-4.6%

101%

100%

2.4.c

LM determination: 5-tap filter; prediction: 5-tap filter

-2.1%

-0.2%

-0.2%

-5.1%

-6.6%

-0.2%

-4.1%

-5.1%

102%

101%

Some comments:

  • Chroma gain tends to roughly translate to luma gain at about a 1:10 ratio
  • Chroma gain in the CTC is often dominated by one particular test sequence: CampFire
  • The MDLM scheme adopted at the previous meeting provided about 2.7% chroma gain
  • The proposed MMLM schemes double the number of models derived and used.

Notes of the previous meeting: “MMLM (and its add-ons MNLM, MFLM) need to determine two models. Whereas the number of samples that is used to compute the models is the same in total, it cannot be foreseen how many samples fall into which class. Therefore, it is more difficult for pipeline processing than CCLM. The classification step, though it is a simple averaging criterion, also may impose some additional pipelining issues. Gain of MMLM standalone is 0.3% luma, approx. 2.5% for chroma [for AI; RA: 0.1% luma, approx. 2.0% for chroma – for 5.2.3.4 scheme]. It is recommended to further study whether the complexity concerns are less valid in combination with the LM computation of JVET-L0191, and whether the gain would still be preserved. It should also be investigated if MMLM and CCLM can use same building blocks.”

In response to the above notes:

  • The gain is somewhat less now: AI: -0.27%, -1.71%, -2.26%, RA: -0.13%, -1.30%, -1.73%
  • The complexity concern (e.g., latency added by determining the threshold and applying the classification step; although the cross-component prediction may not be in a critical-latency path) remains valid.
  • It was remarked that even with the current scheme, the complexity is a problem, esp. for small blocks (2x2 chroma).

Due to complexity concerns, no action was taken on 2.1/2.2/2.2.1. This was also requested to be further discussed in the CE-related BoG to clarify the concerns and recommend what to further study.

2.3 has an adaptive number of models, sometimes more than two per component, and showed less gain, so no action was taken on that.

Regarding 2.4.x, the current scheme is optimized for type 0 chroma (the usual chroma per Rec. 709); 2.4 compensates for co-sited chroma (type 2 per BT.2100). The 2.4 test was done only on the PQ sequences. A decoder might need to support two chroma types, with encoder high-level selection of which to apply.

Testing was not done to determine the potential penalty of running the type 2 optimized scheme on type 0 content. Test results for this were requested.

A participant remarked that he had done some testing on self-generated content that used type 1 (centered both horizontally and vertically) and found not so much (~1-2%) benefit for customizing for that chroma siting. Here the experiments show a much more substantial gain for optimization to type 2.

It was commented that proper chroma alignment may be more visually important than what shows up in objective metrics.

The kernel of the 2.4.c 5-tap filter (except at CTU boundaries, where only one line above is used) is:

0 1 0

1 4 1

0 1 0

Decision: Adopt 2.4.c with a high-level flag to switch between two chroma format type optimizations.

Test results for applying the type 2 scheme to type 0 content. were discussed in a plenary. See notes in section 9.1 about that.

For 2.5.x, there was a focus on the first two variants. These are adding some additional complexity. The gain seemed insuffient to justify changing the current scheme.

2.6.1 reduces the number of neighbour lines used to compute the model parameters to 1 (where the current VTM scheme uses 3 columns to the left and 2 rows above when within the current CTU). 2.6.2 uses 3 columns to the left but only one row above. These would make the processing consistent whether within a CTU or at the boundary.

But it was commented that adoption of the 2.6.1 or 2.6.2 scheme would not be reducing the line buffering needed in a decoder, since it does not apply for the other chroma type. It was also commented that the question of 1 or 2 lines had been discussed at the previous meeting and the 2 line scheme was considered not a problem. So no action was taken on the 2.6.x proposals.

CE3.3 on ‘Intra mode coding’

Test #

Description

Doc. #

3.1.1

Decoder-side intra mode derivation

JVET-M0094

3.1.2

Decoder-side intra mode selection with predictor coding (3 candidates)

3.1.3

Decoder-side intra mode derivation with extended gradient filtering for directly neighbouring pixels

3.1.4

Decoder-side intra mode derivation restricted for blocks with a number of samples <= 128

3.2

6 MPMs and 32 remaining modes (5-bit FLC)

JVET-M0495

3.3.1

Simplified MDMS with 5 chroma intra modes (2-point DM, 5 non-LM)

JVET-M0218

3.3.2

Simplified MDMS with the reduced chroma intra modes (2-point DM, 3 non-LM)

3.4.1

Simplified MDMS by reducing the number of operations (2-point DM, 5 non-LM)

JVET-M0503

3.4.2

Simplified MDMS by reducing the number of candidates (2-point DM, 3 non-LM)

3.5

Simplified MDMS with one DM (1-point DM, 5 non-LM)

JVET-M0203

Test #

All Intra Main10 - Over VTM-3.0

Random Access Main10 - Over VTM-3.0

Y

U

V

EncT

DecT

Y

U

V

EncT

DecT

3.1.1

-0.11%

-0.09%

-0.08%

122%

103%

-0.07%

-0.06%

-0.07%

104%

101%

3.1.2

-0.01%

-0.05%

-0.02%

122%

102%

0.01%

0.06%

0.04%

103%

100%

3.1.3

-0.12%

-0.04%

-0.05%

124%

104%

-0.05%

-0.01%

0.03%

103%

101%

3.1.4

-0.09%

-0.09%

-0.06%

113%

103%

-0.05%

0.10%

0.01%

100%

100%

3.2

-0.03%

-0.04%

-0.05%

97%

100%

0.02%

0.14%

0.13%

99%

99%

3.3.1

-0.03%

-0.88%

-0.86%

100%

100%

-0.01%

-0.46%

-0.50%

100%

100%

3.3.2

-0.02%

-0.29%

-0.20%

97%

100%

0.00%

-0.12%

-0.05%

99%

100%

3.4.1

-0.02%

-0.96%

-1.03%

101%

99%

0.04%

-0.98%

-1.04%

100%

100%

3.4.2

0.03%

-0.34%

-0.32%

97%

100%

0.10%

-0.86%

-0.92%

99%

100%

3.5

-0.01%

-0.61%

-0.64%

100%

100%

0.06%

-0.68%

-0.76%

100%

101%

CE3.3: Additional test results

All Intra Main10 - Over VTM-3.0

Random Access Main10 - Over VTM-3.0

Test #

Description

Y

U

V

EncT

DecT

Y

U

V

EncT

DecT

3.5.1

Simplified MDMS with one DM by using aligned chroma coding of VVC-3.0 (1-point DM, 4 non-LM)

-0.02%

-0.58%

-0.61%

100%

100%

-0.02%

-0.37%

-0.39%

100%

100%

For 3.1.x, the proposal is to add another mode in which the intra prediction mode is inferred by decoder processing rather than signalled. This adds encoder (and some decoder) complexity, but the test results do not show much benefit from this, so no action was taken on this.

For 3.2, the proposal is to restrict the number of selectable intra prediction modes to 32 of the 67. Some gain is observed, but only a small amount, and it was commented that the restriction of what modes an encoder would be allowed to select would restrict encoder freedom on how to make its mode decisions (not allowing an encoder to choose a mode until after it is able to determine which 32 of the 67 are allowed for selection), so no action was taken on this.

3.3.1, 3.3.2, 3.4.1, 3.4.2, and 3.5 are regarding chroma mode coding, which is dependent on luma mode. 3.3.1 and 3.4.1 would increase decoder complexity. One key aspect is how many luma points are considered for deriving the chroma mode candidates (1 or 2). Another key aspect is how many chroma mode candidates there are (3 or 5).

Schemes 3.3.2 and 3.4.2 reduce the number of candidates from 5 to 3. As tested, this reduced encoding time since the encoder checked fewer modes, although the decoder complexity is higher than for the current scheme (because it uses a 2-point check for direct mode selection). It was commented that the DC, planar, horizontal and vertical modes are especially important for some encoder implementations. If these are not always selectable, it would force a dependency between luma and chroma for encoding decisions. These two schemes did not provide much coding gain, although in the way they were tested, they reduced encoding time. The lack of significant coding gain, together with that dependency, did not appear to justify action on those.

Results for an additional scheme called 3.5.1 (proposed in JVET-M0203) were included in the CE report. This was a late addition that was not in the CE plan, so it was considered a non-CE proposal.

3.3.1 and 3.4.1 check two luma locations, whereas the VTM checks only 1 (the central position of the luma block). The VTM sends a flag on whether to use that mode; if not, it sends a CCLM mode flag; if not, it sends 2 bypass-coded bins to select between four modes. If the luma mode was not DC, planar, horizontal or vertical, then those are the four modes; otherwise the luma mode is replaced with the vertical diagonal mode to determine the four modes.

3.3.1 and 3.4.1 check two luma locations and perform some comparison flowchart operations to determine what is the primary selectable mode and what are the other four modes. The DC and planar modes are always among the 5 selectable modes. It was noted that this forces a dependency between the luma and chroma mode decisions unless the encoder only used DC and planar modes for chroma.

The possibility of supporting both the current scheme and the alternative was discussed. The gain seemed insufficient to want to need two different ways to be supported in the decoder.

3.5 checks one luma location (same as VTM); if the luma mode is DC or planar and the block shape is vertical, then instead of the vertical diagonal mode being considered special, the horizontal diagonal mode is considered special; if the luma mode is angular, the other selectable modes are determined by a flowchart (but the horizontal and vertical modes are not always available). This has basically the same forced cross-component dependency as 3.3.1 and 3.4.1.

Since the gain is relatively small and the 3.3.1, 3.3.2, 3.4.1, 3.4.2, and 3.5 proposals introduce an undesirable cross-component dependency for encoders, no action was taken on on these.

Decisions
adopted
Adopt 2.4.c with a high-level flag to switch between two chroma format type optimizations
Citation