这篇文章提出了一个PSNR-B指标,旨在衡量 压缩图像的块效应强度 或 去块效应后的残留块效应强度(比较去块效应算法的优劣)。

1. 故事

现有的PSNR虽然形式简单、物理意义清晰,但与主观质量关系不大;SSIM(同时考虑亮度相似度、对比度相似度和结构相似度)和主观质量更贴近,但无法反映块效应强度。

2. 失真变化

首先,我们设无损图像为\(x\),编解码后为压缩图像\(y\),去压缩失真后的图像为\(\tilde{y}\)。我们将像素分为两类:

  1. \(\Vert x_i - \tilde{y}_i \Vert^2 < \Vert x_i - y_i \Vert^2\),即去压缩失真比较成功的像素点。

  2. \(\Vert x_i - \tilde{y}_i \Vert^2 > \Vert x_i - y_i \Vert^2\),即去压缩失真比较失败的像素点。

我们求这两类区域的距离差的均值:\(\bar{\alpha} = ave(\Vert x_i - y_i \Vert^2 - \Vert x_i - \tilde{y}_i \Vert^2), \bar{\beta} = ave(\Vert x_i - \tilde{y}_i \Vert^2 - \Vert x_i - y_i \Vert^2)\)。

所谓失真变化,就是\(\bar{\alpha} - \bar{\beta}\)。该值越大,块效应抑制越明显,去块效应算法越成功。

对于一般的低通滤波器,\(\bar{\alpha}\)虽然很大,但\(\bar{\beta}\)也很大,因此通常是失败的。对于H264内置的环路滤波器,它会自适应地根据 像素点与块边缘的距离 以及 局部灰度梯度信息,选择滤波位置和滤波器尺寸,从而让\(\bar{\beta}\)不至于过大,而\(\bar{\alpha}\)与低通滤波器相当大。但是,该环路滤波器的决策非常耗时,通常会占据1/3以上的解码器复杂度。

3. 方法(PSNR-B)

在本节,作者提出一种对块效应敏感的图像质量指标,作者称之为peak signal-to-noise ratio including blocking effects (PSNR-B)。

我们首先假设图像由整数个块(tiling)组成。例如:

图中每一个块都是\(8 \times 8\)的块,一共有64个。定义以下块类别:

分别代表:纵向接壤块边缘的像素对、纵向非接壤块边缘的像素对、横向接壤块边缘的像素对 和 横向非接壤块边缘的像素对。看图就好了,文字贼绕。

定义两个指标:

前者代表块边缘变化强度,后者代表非块边缘(块内)变化强度。随着量化逐渐粗糙,前者的增大会明显快于后者。

还考虑一个因素:随着块增大,块效应也会逐渐明显。【反过来,如果块很小,那么远看是看不出块效应的】因此我们定义一个块效应因数(blocking effect factor, BEF):
\[
BEF(y) = \eta \cdot [ D_B (y) - D_B^C (y) ]
\]
其中的\(\eta\)随着块尺寸的增大而增大:

例如在H264压缩标准下,一张图像内可以有多种不同尺寸的块。此时就有:

作者定义MSE-B和PSNR-B如下:

注意了,其中的MSE是有参考的指标,但BEF本身是无参考的指标。

4. 实验

我们看看对H264环路滤波器的测试情况。

通过四个视频作者发现:环路滤波器有时可以稍微提升视频的PSNR,有时没有太大作用。而低通滤波器会严重损失PSNR。

SSIM实验结果与PSNR接近,但不同点在于:在有些视频中,低通滤波后的SSIM要比原始压缩图像的SSIM更高。这与主观体验是基本一致的,说明SSIM更趋近于主观质量。

这是PSNR-B的实验结果。可以看到,当量化比较粗糙时,低通滤波器也发挥了作用。

Paper | Quality assessment of deblocked images的更多相关文章

  1. Paper | No-reference Quality Assessment of Deblocked Images

    目录 故事背景 本文方法(DBIQ) 发表在2016年Neurocomputing. 摘要 JPEG is the most commonly used image compression stand ...

  2. Paper | Blind Quality Assessment Based on Pseudo-Reference Image

    目录 1. 技术细节 1.1 失真识别 1.2 得到对应的PRI并评估质量 块效应 模糊和噪声 1.3 扩展为通用的质量评价指标--BPRI 归一化3种质量评分 判断失真类型 加权求和 2. 总结 这 ...

  3. [论文笔记] Methodologies for Data Quality Assessment and Improvement (ACM Comput.Surv, 2009) (1)

    Carlo Batini, Cinzia Cappiello, Chiara Francalanci, and Andrea Maurino. 2009. Methodologies for data ...

  4. Paper | BLIND QUALITY ASSESSMENT OF COMPRESSED IMAGES VIA PSEUDO STRUCTURAL SIMILARITY

    目录 1. 技术细节 1.1 得到MDI 1.2 判别伪结构,计算伪结构相似性 2. 实验 动机:作者认为,基于块的压缩会产生一种伪结构(pseudo structures),并且不同程度压缩产生的伪 ...

  5. [论文笔记] Methodologies for Data Quality Assessment and Improvement (ACM Comput.Surv, 2009) (2)

    本篇博文主要对DMQ(S3.7)的分类进行了研读. 1. 这个章节提出了一种DQM的分类法(如下图) 由上图可见,该分类法的分类标准是对assessment & improvement阶段的支 ...

  6. Quality assessment and quality control of NGS data

    http://www.molecularevolution.org/resources/activities/QC_of_NGS_data_activity_new table of contents ...

  7. ITU-T G.1080 IPTV的体验质量(QoE)要求 (Quality of experience requirements for IPTV services)

    IPTV的服务质量(QoE)要求 Quality of experience requirements for IPTV services Summary This Recommendation de ...

  8. Paper | 帧间相关性 + 压缩视频质量增强(MFQE)

    目录 1. ABSTRACT 2. INTRODUCTION 3. RELATED WORKS 3.1. Quality Enhancement 3.2. Multi-frame Super-reso ...

  9. CVPR 2017 Paper list

    CVPR2017 paper list Machine Learning 1 Spotlight 1-1A Exclusivity-Consistency Regularized Multi-View ...

随机推荐

  1. Python程序中的线程操作-守护线程

    目录 一.守护线程 1.1 详细解释 1.2 守护线程例1 1.3 守护线程例2 一.守护线程 无论是进程还是线程,都遵循:守护xx会等待主xx运行完毕后被销毁.需要强调的是:运行完毕并非终止运行. ...

  2. golang数据结构之递归解决迷宫问题

    简单来说:递归就是函数/方法自己调用自己,只是每次传入不同的变量. 递归可以解决各种数学问题:n皇后问题.阶乘问题.汉诺塔.迷宫问题.球和篮子问题等等: maze.go package maze im ...

  3. java(二)变量

    基础数据类型: 数值型:整型(byte.short.int.long).浮点型(float.double)java各整数类型有固定的表数范围和字段长度,不受具体os的影响,以保持java的可移植性:j ...

  4. Nginx之负载均衡 :两台服务器均衡(填坑)

    第一步,两台服务器都要安装好Nginx和Tomcat,我这边的安装的是Nginx 1.16.1 Tomcat9: 第二步,安装完成之后,选择你要做均衡的那台服务器,,打开其Nginx 配置文件,在se ...

  5. 为了“小命”,这款APP一定要下!火爆了!

    前言中国地震台网在 6 月 17 日测定:6 月 17 日 22 时 55 分,四川省宜宾市长宁县发生 6 级地震,震源深度 16 千米.成都高新减灾研究所通过电台广播.手机短信.电视等途径,提前 6 ...

  6. swoole中http_server的配置与使用

    swoole中为我们提供了一个swoole_http_server类,方便我们处理http请求. 但是它对http协议的支持并不完整,所以一般建议在前面加一层nginx进行代理,对于php文件的处理交 ...

  7. C#截图操作(几种截图方法)

    公共函数获取屏幕截图private Bitmap GetScreenCapture(){ Rectangle tScreenRect = new Rectangle(0, 0, Screen.Prim ...

  8. 【干货】SqlServer 总结几种存储过程分页的使用

    就我而言写代码最烦的就是处理数据,其中之一就是分页的使用. 有的代码写多了,总结出一套适用自己的分页方法:有的查一下资料借鉴一下套用起来也达到目的. 那么小编在这里给大家总结几个方法供大家做一下参考. ...

  9. C#上手练习5(GOTO语句)

    C# goto 语句用于直接在一个程序中转到程序中的标签指定的位置,标签实际上由标识符加上冒号构成 语法形式如下. goto Labell;    语句块 1;Labell    语句块 2; 如果要 ...

  10. char.IsWhiteSpace(str,num),TimeSpan

    IsWhiteSpace(String, Int32) 指示指定字符串中位于指定位置处的字符是否属于空格类别. TimeSpan TimeSpan ts=new TimeSpan(4,30,0); C ...