adaptive deblocking filter in h.264
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 PresentationTRANSCRIPT
![Page 1: Adaptive Deblocking Filter in H.264](https://reader035.vdocuments.us/reader035/viewer/2022062801/5681444f550346895db0ed7c/html5/thumbnails/1.jpg)
Adaptive Deblocking Filter in H.264
Ehsan Maani
Course Project:
![Page 2: Adaptive Deblocking Filter in H.264](https://reader035.vdocuments.us/reader035/viewer/2022062801/5681444f550346895db0ed7c/html5/thumbnails/2.jpg)
Goal
123101105121
11098100106
112101102103
111106107122
example of the square error distribution over a 4x4 block.
![Page 3: Adaptive Deblocking Filter in H.264](https://reader035.vdocuments.us/reader035/viewer/2022062801/5681444f550346895db0ed7c/html5/thumbnails/3.jpg)
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.)
![Page 4: Adaptive Deblocking Filter in H.264](https://reader035.vdocuments.us/reader035/viewer/2022062801/5681444f550346895db0ed7c/html5/thumbnails/4.jpg)
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.
![Page 5: Adaptive Deblocking Filter in H.264](https://reader035.vdocuments.us/reader035/viewer/2022062801/5681444f550346895db0ed7c/html5/thumbnails/5.jpg)
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.
![Page 6: Adaptive Deblocking Filter in H.264](https://reader035.vdocuments.us/reader035/viewer/2022062801/5681444f550346895db0ed7c/html5/thumbnails/6.jpg)
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
![Page 7: Adaptive Deblocking Filter in H.264](https://reader035.vdocuments.us/reader035/viewer/2022062801/5681444f550346895db0ed7c/html5/thumbnails/7.jpg)
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
![Page 8: Adaptive Deblocking Filter in H.264](https://reader035.vdocuments.us/reader035/viewer/2022062801/5681444f550346895db0ed7c/html5/thumbnails/8.jpg)
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
![Page 9: Adaptive Deblocking Filter in H.264](https://reader035.vdocuments.us/reader035/viewer/2022062801/5681444f550346895db0ed7c/html5/thumbnails/9.jpg)
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
![Page 10: Adaptive Deblocking Filter in H.264](https://reader035.vdocuments.us/reader035/viewer/2022062801/5681444f550346895db0ed7c/html5/thumbnails/10.jpg)
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
![Page 11: Adaptive Deblocking Filter in H.264](https://reader035.vdocuments.us/reader035/viewer/2022062801/5681444f550346895db0ed7c/html5/thumbnails/11.jpg)
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
![Page 12: Adaptive Deblocking Filter in H.264](https://reader035.vdocuments.us/reader035/viewer/2022062801/5681444f550346895db0ed7c/html5/thumbnails/12.jpg)
Results
PSNR=29.3374SSIM=0.8043
PSNR=29.7730SSIM=0.8500
![Page 13: Adaptive Deblocking Filter in H.264](https://reader035.vdocuments.us/reader035/viewer/2022062801/5681444f550346895db0ed7c/html5/thumbnails/13.jpg)
Results
PSNR=30.1537 SSIM=0.7902
PSNR=30.4492SSIM=0.8115