150 likes | 428 Views
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.
E N D
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 • 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 thesequence. • 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. A macroblock 16 pix 16 pix
p3 p2 p1 p0 q0 q1 q2 q3 1-D visualization of a block edge Sample-Level Adaptivity • 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 Pre-defined arrays a and b
p3 p2 p1 p0 q0 q1 q2 q3 1-D visualization of a block edge Filtering with Bs<4 • Let then, edge pixel values are calculated as
Filtering with Bs<4 p2 p1 p0 q0 q1 q2 q3 p3 • Furthermore, if Then and
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.
Results PSNR=29.7730 SSIM=0.8500 PSNR=29.3374 SSIM=0.8043
Results PSNR=30.1537 SSIM=0.7902 PSNR=30.4492 SSIM=0.8115