VTM4-0中的QPA

本文主要介绍了:QPA,VTM4.0中的QPA相关提案,原理与实现。

QPA

QPA 是quantization parameter adaption 的缩写,也可以表示为AQP, adaptive quantization parameter。

常见的用途是,在fix QP编码中,通过分析视频的content information进行frame level或者ctu level的QP调整,从而达到优化整体RD性能的目的。

优化ctu level的QP有以下几种思路:

  • ROI优化
    • 对显著性区域优化
    • 对不同JND区域优化
  • 块的依赖关系优化
    • 依据帧间依赖模型(后续D的前移)进行优化
    • 根据帧间依赖的强度(CU-Tree)进行优化

VTM4.0中的QPA相关提案

最早提案:Improved perceptually optimized QP adaptation and associated distortion measure, JVET-K0206
后续的提案对其进行验证和部分参数修改,包括:JVET-H0047-v5,JVET-M0091-v1。

主要参考JVET-K0206和JVET-H0047-v5即可。

VTM4.0中的QPA的原理

具体描述和公式可在JVET-K0206中找到。

key words: perceptually suboptimal, low-medium bitrates, visual activity
思路:提升低纹理区域质量,降低高纹理区域质量。
原因:视觉上,低纹理区域的失真更加明显

结果存在的问题:整体的PSNR有所下降
原因:没有体现视觉的加权效果
假设:同一帧的块间具有独立性,所以各个块的SSE失真可以叠加。
原始版本RDO:
$$
\begin{aligned}
J &=D_{pic}+\lambda_{pic}\cdot R_{pic}\
&=\sum_{k} D_{k}+ \lambda_{pic}\cdot(\sum_kR_{k})
\end{aligned}
$$
加权版本RDO,块间独立性假设:
$$
\begin{aligned}
J &=D_{pic}+\lambda_{pic}\cdot R_{pic}\
&=\sum_{k} w_k\cdot D_{k}+ \lambda_{pic}\cdot(\sum_kR_{k})\
&=\sum_{k} (w_k\cdot D_{k}+\lambda_{pic}\cdot R_{k})\
&=\sum_{k} w_k\cdot(D_{k}+\lambda_{pic}/w_k \cdot R_{k})\
&=\sum_{k} w_k\cdot(D_{k}+\lambda_{k} \cdot R_{k})
\end{aligned}
$$
由于$$\lambda_{k}\propto \triangle_k^2 (\text{QP stepsize}) \propto 2^{\frac{QP_k}{6}}$$, 所以$$QP_k=QP-3\log_2w_k$$

WPSNR的计算:$$WPSNR=10\log_{10}(\frac{W\cdot H \cdot 255^2 \cdot 2^{2B-16}}{D_{pic}^{WSSE}})$$, 和传统的PSNR的区别就是SSE是加权的SSE。

具体步骤:

  • 计算当前块的权重
    • 高通滤波,4抽头,计算当前位置像素和上下左右四个像素的差别。$$H(x,y)=4S(x,y)-S(x+1,y)-S(x-1,y)-S(x,y+1)-S(x,y-1)$$
    • 对每个块$B_k$, 计算local activity(负相关与平滑程度,相关于纹理复杂度)。$$a_k=\max(1,(\frac{1}{|B_k^|}\sum|h(x,y)|)^2)$$,$B_k^$表示当前块去掉最外面一圈像素的块(h-2,w-2)
    • 对帧内所有块求平均$a_{pic}$
    • 求出权重$$w_k=(\frac{a_{pic}}{a_k})^{\beta}$$,$\beta=0.5$
  • 求解当前块的QPA$$QP_k=QP-3\log_2w_k$$

参数的分析

  1. 区域越平滑,权重越高,$QP_k$越小
  2. $a_k=\max(1,(\frac{1}{|B_k^*|}\sum|h(x,y)|)^2)$中1的作用,平滑区域的截断权重。越大则平滑区域权重越小,越小则平滑区域权重越大
  3. $\beta=0.5$,同样控制权重的分配。对得到的权重直接进行指数缩放,调整权重的分布。越大则分布越分散,平滑与复杂区域的差别越大,越小则分布越集中,差别越小。

    原理的批判

  4. 计算的权重到底能不能代表视觉特性?目前已知的视觉特性有saliency和JND,一般来说,纹理复杂区域saliency比较高,JND也比较高,那么此种计算应该算出来的是一种类似JND的权重,但是是否合理有待商榷。
  5. 块间独立性假设,成立条件比较苛刻。

VTM4.0中的QPA的开关

在当前software manual中,AQP是用--AdaptiveQP-aqp来开启,但实际上此项配置是无效的。目前开启的参数应该是-qpa 1,此时PSNR为未加权PSNR,如需得到加权的WPSNR,需要-wpsnr 1

VTM4.0中的QPA的代码