Skip to content
  • Yaowu Xu's avatar
    new loop filter functions for macroblock boundaries · 5e7d7d3d
    Yaowu Xu authored
    The commit adds a new set of loop filter for macroblock edge filtering.
    The new loop filter has a mask to detect so-called "flat" regions. The
    detection checks 5 pixels of each side of an edge. If the all pixels
    have value with +/-1 from the edge pixel on the same side, the region
    is treated as a "flat" region. For such case, a 7 tap filter is used
    to change 3 pixel values on each side. The 7 taps are:
                   [1, 1, 1, 2, 1, 1, 1]/8
    The furthest away pixels used as input are +/-5 away from edge. For
    non-flat region, we fall back to old filtering. It should be noted
    here that the thresholds and filter taps may require more optimization
    for best possible results.
    
    Tests on a set of hd clips showed consistent gains:
    http://www.corp.google.com/~yaowu/no_crawl/mblpf_hd.html
    (avg psnr: .83% glb psnr: .77% ssim: .82%)
    
    Tests on derf set also showed consistent gains:
    http://www.corp.google.com/~yaowu/no_crawl/mblpf_derf.html
    (avg psnr: .24% glb psnr: .22% ssim: .48%)
    
    Change-Id: I0855b1ff48e79e1175c20b81967137e18b2af352
    5e7d7d3d