环路恢复滤波器(restoration filter)适用于64 × 64、128 × 128 或 256 × 256 像素块单元,称为 loop restoration units (LRUs)。每个单元可以独立选择是否跳过滤波、使用维纳滤波器(Wiener filter)或使用自导滤波器(self-guided filter)。它应用于任何先前的环路滤波(Deblock、CDEF)后的重建像素。
1. Wiener Filter
维纳滤波器:在 LRU 上应用 7x7 可分离维纳滤波器,垂直和水平滤波器的滤波器参数由编码器决定,并在比特流中发出信号。由于对称和归一化约束,每个滤波器只需要发送三个系数。此外,需要注意的是,维纳滤波器对原点的权重幅度预计会更高,因此编解码器减少了用于较高抽头系数的位数,如下图所示:
Bit precision for Wiener filter parameters.
2. Self-Guided Filter:
该方案对重构像素 X 进行简单滤波,生成两个去噪版本 X1 和 X2,很大程度上保留了边缘过渡。它们与重建像素的差值 (X1−X) 和 (X2−X) 被用来跨出一个子空间,在这个子空间上我们投影重建像素与原始像素的差值 (Xs−X),如下图所示。编码器获得的最小二乘回归参数被发送给解码器,解码器使用该参数基于已知的基数 (X1−X) 和 (X2−X) 建立 (Xs−X) 的线性近似。
Project the gap between the source pixels Xs and
reconstructed pixels X on to a subspace spanned by simple
denoising results, X1 − X and X2 − X. The parameters in red are the
ones configurable through bitstream syntax.
特别地,使用半径 r 和噪声方差 e 来生成 LRU 的去噪版本,如下所示。
-
求得每个像素 x 周围 (2r + 1) × (2r + 1) 窗口中像素的均值 μ 和方差 σ2。
-
计算去噪像素为
(r, e) 对有效地控制去噪滤波器的强度。使用 (r1, e1) 和 (r2, e2) 生成两组去噪像素,以向量形式X1和X2表示,它们由编码器选择并在比特流中发出信号。设X为重构像素形成的向量,X为源像素的向量。自导滤波器的公式为
参数 (α, β) 由编码器用最小二乘回归得到
其中
其中参数(α, β)被发送到解码器以计算 Xr。