Back to Search Document details
11th Meeting: Ljubljana, July 2018 2018-07-18 11:30
Specification draft for Adaptive Loop Filter
Abstract
Adaptive Loop Filter was adopted to VTM in the following configuration:
JVET-K0564 Specification draft for Adaptive Loop Filter [V. Seregin, N. Hu, M. Karczewicz (Qualcomm)] [late]

Some suggestions were made during the review of this proposed draft text as follows:

  • Specifiy the ranges of variables
  • Correctly specify the bit depth of filtering operations
  • Impose constraints that an encoder should not send coefficients that cause overflows
  • Describe in a way that it is neutral about the bit depth of the signal samples

This looked generally OK, but probably needed more detailed checking by editors.

Sub-CE5: Non-local filter

Test#

Description

Document#

2.5.1

Non-local Structure-based Filter

JVET-K0160

2.5.2

Non-local mean in-loop filter

JVET-K0236

2.5.3

Noise Suppression Filter

JVET-K0053

Notes: SVD: singular-value decomposition

Test#

Line buffer size

Filter unit

Search window size

Overlapped units?

matching criterion

Division

Required

?

How to filter

Matrix size/filter tap

Filter coeffs

On/off control

Stage

2.5.1

8 (L), 4 (C)

6×6

32×32

Y

SSD

Y

SVD-based filtering

21×6×6

Derived on-the-fly

Frame and CTU level

After deblocking, before SAO

2.5.2

16 (L)
8 (C)

8×8

33 x 33

N

SSD

Y

Linear filter with normalization

16-tap

Based on estimated quantization noise (signalled index) and SSD between current and reference patch

Slice/CTB/

32×32

After deblocking, before SAO

2.5.3

0 (L)
0 (C)

8×8

16×16 within CTB

N

SSD

Y

Noise Suppressor’s Collaborative Filter in Hadamard transform domain

Hadamard transform 8x1; 8x1-tap filter

Based on QP value

Slice/256×256/128×128/64×64/32×32

After SAO, before ALF

Results vs. VTM

 

AI

RA

LDB

Test#

Y

U

V

EncT

DecT

Y

U

V

EncT

DecT

Y

U

V

EncT

DecT

2.5.1

-2.55%

-4.26%

-5.03%

108%

4748%

-3.66%

-2.26%

-2.56%

100%

2431%

-2.20%

-0.84%

-1.27%

112%

3086%

2.5.2*

-0.63%

-1.98%

-1.99%

102%

235%

-1.24%

-3.95%

-3.49%

100%

211%

-1.00%

-3.99%

-4.24%

101%

179%

2.5.3.a*

-0.61%

-1.58%

-1.79%

100%

135%

-1.03%

-2.04%

-1.89%

100%

134%

-0.67%

-1.49%

-1.59%

100%

128%

2.5.3.b*

-0.61%

0.09%

0.09%

100%

125%

-0.99%

-0.02%

0.00%

100%

123%

-0.62%

0.69%

0.50%

100%

119%

Results vs. BMS

 

AI

RA

LDB

Test#

Y

U

V

EncT

DecT

Y

U

V

EncT

DecT

Y

U

V

EncT

DecT

2.5.1

-0.93%

-1.95%

-2.30%

100%

2581%

-1.47%

-1.88%

-2.16%

97%

1255%

-1.53%

-1.10%

-0.88%

103%

1861%

2.5.2*

-0.31%

-1.45%

-1.48%

100%

167%

-0.57%

-3.57%

-3.25%

100%

139%

-0.76%

-3.94%

-3.99%

101%

138%

2.5.3.a*

-0.34%

-0.81%

-0.90%

100%

119%

-0.62%

-2.41%

-2.42%

100%

114%

-0.73%

-2.58%

-2.35%

100%

117%

2.5.3.b*

-0.34%

0.11%

0.11%

100%

113%

-0.60%

0.18%

0.18%

100%

109%

-0.68%

0.40%

0.43%

100%

112%

2.5.1: Current SVD as used in CE uses floating point implementation. There was a proposal on fixed point implementation by the last meeting, but this was not investigated in CE. Overall, decoder complexity of 2.5.1 is very high. The compression is reduced (but still around 1.5% rate reduction) when combined with GALF (in BMS). The method itself is probably more complex than GALF but provides less gain on top of VTM.

2.5.2/2.5.3 These two approaches provide 1.2% (non-local mean filter) and 1% (Hadamard based noise suppression). This reduces to roughly 0.6% when used in BMS (probably less gain when combined with ALF). Both of these approaches are more complex than e.g. the current design of the bilateral filter from CE2.1, which still gives similar gain (0.5%) for BMS.

No action at this moment, further study for significant complexity reduction. Would also be interesting to identify in which cases the non-local filters are able to provide gain that the other loop filters cannot provide. For the SVD based approach, the proponents report that the usage is between 10% and 50%, depending on sequence.

As a general statement, VVC should have an overall clean design, and it should be avoided to operate a large number of loop filters sequentially, unless they provide substantial individual gains, and not being overly complex.

References:
JVET-K0371
Decisions
As a general statement, VVC should have an overall clean design, and it should be avoided to operate a large number of loop filters sequentially, unless they provide substantial individual gains, and not being overly complex.
Citation