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 toolNo 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 codedusing 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