1 of 11

Chroma from Luma Intra Prediction for NETVC

draft-egge-netvc-cfl-01

1

Nathan E. Egge

Luc N. Trudeau

David Barr

IETF 100 - Singapore

2017 Nov 15

Mozilla and the Xiph.Org Foundation

2 of 11

What is Chroma from Luma?

Intra prediction tool� No dependencies on other frames

Only available to chroma planes

Predicts chroma using coincident-reconstructed luma pixels

2

3 of 11

What’s New in -01?

​

3

Based on the chroma from luma proposal for AV1

Instead of Daala implementation

​

No longer relies on PVQ

Prediction is done in the spatial domain

Considers only AC contribution of reconstructed luma pixels

Spatial domain equivalent of shape prediction

​

Uses existing chroma DC prediction for DC contribution

Available in AV1, requires no signaling and is more precise

4 of 11

What’s different?

4

​

LM Mode

Thor CfL[1]

Daala CfL[2]

AV1 CfL

Prediction domain

Spatial

Spatial

Frequency

Spatial

Bitstream signaling

No

No

Sign bit

PVQ gain

Signs + Index

Activation mechanism

LM Mode (4x4, 8x8)

Threshold

Signaled

CFL_PRED

(UV-only mode)

Requires PVQ

No

No

Yes

No

Encoder model fitting

Yes

Yes

Via PVQ

Search

Decoder model fitting

Yes

Yes

No

No

[1] draft-midtskogen-netvc-chromapred-02

[2] draft-egge-netvc-cfl-00

5 of 11

How Does it Work?

5

Subsample

Average

Reconstructed

Luma Pixels

Chroma Transform-Sized1

Averages (Q3)

Signaled Scaling Factor α (Q3)

DC_PRED (Q0)

Scaled Values (Q0)

CfL Prediction

Contribution to the AC

(in the spatial domain)

6 of 11

Why use Chroma DC_PRED?

𝛽 is the average chroma reference pixels for a block

​

​

​

​

​

DC_PRED predicts the average value of a block

By computing the average of the neighboring pixels adjacent to the above and left borders of the block

​

No Signaling required

6

0

AC contribution

is zero mean

(it sums to 0)

7 of 11

What are Scaling Factors (αCb, αCr)?

Scaling factors set the tone

Scaling factors are in Q3 and range from -2 to 2

Scaling factors are chosen by a rate-constraint search� α = argmin (D(CfL(a)) + 𝜆R(a))� a in A

Scaling factors are signaled to the decoder

​

​

​

7

αCb

-αCb

αCr

-αCr

8 of 11

How are Scaling Factors Signaled?

​

A sign can either be [0, -, +]

Signs are jointly coded� using an 8-value1 CDF

​

​

8

Each non-zero scaling factor is coded � using a 16-value CDF (0,2]� Joint sign used as context

1. (0,0) is not a valid code as it is equivalent to DC_PRED

9 of 11

UV Mode Selection Example (https://goo.gl/6tKaB8)

9

CFL_PRED 17%

DC_PRED 44.36%

SMOOTH_PRED 4.85%

TM_PRED 7.98%

Ohashi0806shield.y4m

QP = 55

10 of 11

Results (AWCY High Latency)

​

Subset1

​

Objective-1 fast

10

​

BD-Rate (%)

PSNR

PSNR-HVS

SSIM

CIEDE20001

PSNR Cb

PSNR Cr

MS SSIM

Average

-0.46

-0.29

-0.33

-4.65

-12.99

-10.84

-0.32

1. CIEDE2000 is the only metric that combines luma and chroma plane (The distance measured is more perceptually uniform)

​

BD-Rate (%)

PSNR

PSNR-HVS

SSIM

CIEDE20001

PSNR Cb

PSNR Cr

MS SSIM

Average

-0.43

-0.42

-0.38

-2.41

-5.85

-5.51

-0.40

1080p

-0.32

-0.37

-0.28

-2.52

-6.80

-5.31

-0.31

1080p Screen

-1.82

-1.72

-1.71

-8.22

-17.76

-12.00

-1.75

360p

-0.15

-0.05

-0.10

-0.80

-2.17

-6.45

-0.04

720p

-0.12

-0.11

-0.07

-0.52

-1.08

-1.23

-0.12

11 of 11

Awesome for Gaming (Twitch dataset)

11

​

BD-Rate (%)

PSNR

PSNR-HVS

SSIM

CIEDE20001

PSNR Cb

PSNR Cr

MS SSIM

Average

-1.01

-0.93

-0.90

-5.74

-15.55

-9.88

-0.81

​

BD-Rate (%)

PSNR

PSNR-HVS

SSIM

CIEDE20001

PSNR Cb

PSNR Cr

MS SSIM

Minecraft

-3.76

-3.13

-3.68

-20.69

-31.44

-25.54

-3.28

GTA V

-1.11

-1.11

-1.01

-5.88

-15.39

-5.57

-1.04

Starcraft

-1.41

-1.43

-1.38

-4.15

-6.18

-6.21

-1.43

Notable Mentions

Minecraft

MINECRAFT_10_120f.y4m

GTA V

GTAV_0_120f.y4m

Starcraft

STARCRAFT_10_120f.y4m