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
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
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
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
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)
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)
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
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
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
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 |
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