Adaptive Deblocking Filter in H.264

Preview:

DESCRIPTION

Course Project:. Adaptive Deblocking Filter in H.264. Ehsan Maani. 122. 107. 106. 111. 103. 102. 101. 112. 106. 100. 98. 110. 121. 105. 101. 123. Goal. example of the square error distribution over a 4x4 block. Block Sources. - PowerPoint PPT Presentation

Citation preview

Adaptive Deblocking Filter in H.264

Ehsan Maani

Course Project:

Goal

123101105121

11098100106

112101102103

111106107122

example of the square error distribution over a 4x4 block.

Block Sources

• Block-based discrete cosine transform (DCTs) and coarse quantization of the transform coefficients.

• Motion compensated blocks. (blocks copied from different locations of the reference frames.)

Different problem approaches

• Post Filter: Operates at the display buffer outside of the coding loop.

• Loop Filter: Operates inside coding loop, i.e. filtered frames are used as reference frames for motion compensation.

Loop filter vs. Post filter

• Encoder performs the deblocking; thus, content providers can safely assume that their material is processed by proper deblocking filter.

• There is no need for an extra buffer at the decoder .

• Loop filters achieve higher quality by preventing propagation of blocking artifacts due to motion compensation.

Filter Adaptivity

• On the slice level, the global filtering strength can be

adjusted to the individual characteristics of the sequence.

• On the block-edge level, filter strength depends on the parameters of the participating blocks.

• On the sample level, sample values and quantizer-dependent thresholds can turn the filter off for each individual sample

Edge-Level Adaptivity• To every edge between two 4x4 luminance samples,

a Boundary-Strength (Bs) is assigned an integer value between 0 to 4.

Block modes and conditions Bs

One of the blocks is Intra and the edge is a macroblock edge.

4

One of the blocks is Intra 3

One of the blocks has coded residues 2

Difference of block motion >1 luma sample

1

Motion compensation from different reference frames

1

Else 0

A macroblock

16 p

ix

16 pix

Sample-Level Adaptivityq3q2q1q0p0p1p2p3

1-D visualization of a block edge

35 42 1036 48 1137 54 1138 63 1239 69 1240 78 1341 90 1342 99 1443 114 1444 126 1545 144 1546 159 1647 180 1648 204 1749 228 1750 255 18

0

50

100

150

200

250

1 11 21 31 41

index

Val

ue

a b

Pre-defined arrays a and b

• Filtering on a line of samples takes place only if:

|p0-q0| < a (IndexA)

|p1-p0| < b (IndexB)

|q1-q0| < b (IndexB)

IndexA and IndexB linearly depend on QP and offset parameters

Filtering with Bs<4

• Let

then, edge pixel values are calculated as

0

5

10

15

20

25

30

1 11 21 31 41 51

IndexT

hre

sho

ld Bs=1 Bs=2 Bs=3

q3q2q1q0p0p1p2p3

1-D visualization of a block edge

0 0 0 1 1(4( ) (( ) 4) 3i q p p q

0 0 0

0 0 0

p p

q q

Filtering with Bs<4

2 0

2 0

( )

( )

B

B

p p Index

q q Index

b

b

1 2 0 0 1( (( 1) 1) 2 ) 1p i p p q p

• Furthermore, if

Then

and

1 1 1

1 1 1

p

p

p p

q q

p3 p2 p1 p0 q0 q1 q2 q3

Filtering with Bs=4• In nearly uniform image areas very small differences

in intensity values are perceived as abrupt steps; thus, if

then, a very strong 4- and 5-tap filter is used that modifies the edge and two interior luma samples. Otherwise a weaker 3-tap filter is used.

0 0 ( 2) 2p q a

Results

PSNR=29.3374SSIM=0.8043

PSNR=29.7730SSIM=0.8500

Results

PSNR=30.1537 SSIM=0.7902

PSNR=30.4492SSIM=0.8115

Recommended