全称 Bjøntegaard-Delta rate,用于评价不同的视频编码器RD(率-Rate,失真-Distortion)性能 是 Gisle Bjøntegaard 等人在 H.264 标准开发过程中提出的
通常分为:
由于测试的工作量比较大,通常只选用4个典型的 QP 值,H.26X 中常采用的是:
其他编码算法由于量化方法的不同会选择不同的 QP 值,但为了方便比较通常要求器码率画着 PSNR 变化范围相近。
Lagrange 插值容易严重 overshoot,目前的版本中通常采用形状保持的分段三次 Hermite 插值法(SPPCHIP)。
相当于 p = 0 的 Hermite
\begin{aligned} P^{(j)}(x_k) = y_k^{(j)}, \\ k=1,2,...,n, \\ j=0,1,...,p. \end{aligned}
三次 Hermite 插值多项式 (Cubic Hermite Interpolation Polynomial, CHIP),一阶可导
n = 2, p = 1 的 Hermite
设已知两点 (x_0, x_1) 和 (x_1, y_1),x_0<x_1d_0, d_1
P(x) = a_0+a_1x+a_2x^2+a_3x^3, x\epsilon[x_0, x_1].
则
P(x_0) = a_0+a_1x_0+a_2{x_0}^2+a_3{x_0}^3=y_0 P(x_1) = a_0+a_1x_1+a_2{x_1}^2+a_3{x_1}^3=y_1 P'(x_0) = a_1+2a_2x_0+3a_3{x_0}^2=d_0 P'(x_1) = a_1+2a_2x_1+3a_3{x_1}^2=d_1
令
\begin{aligned} h=x_1-x_0, \\ s=x-x_0,\\ \delta=\frac{y_1-y_0}{x_1-x_0} \end{aligned}
可得
\begin{aligned} P(x) &= H_1(x)y_0+H_2(x)y_1+H_3(x)d_0+H_4(x)d_1 \\ &=\frac{h^3-3hs^2+2s^3}{h^3}y_0+\frac{3hs^2-2s^3}{h^3}y_1+\frac{s(s-h)^2}{h^2}d_0+\frac{s^2(s-h)}{h^2}d_1 \\ &=y_0+sd_0+s^2\frac{3\delta-2d_0-d_1}{h}+s^3\frac{d_0-2\delta+d_1}{h^2} \\ &=y_0+sd_0+s^2c_0+s^3b_0 \end{aligned}
H 为三次 Hermite 基函数。
\begin{aligned} P'(x) = d_0+2sc_0+3s^2b_0, \\ P''(x) = 2c_0+6sb_0, \\ \int_m^nP(x)dx = (sy_0+\frac{1}{2}s^2d_0+\frac{1}{3}s^3c_0+\frac{1}{4}s^4b_0+C)|_{m-x_0}^{n-x_0} \end{aligned}
需要保证 [x_0, x_1] 两点间的函数图像单调
d_0, d_1 是两端点处的导数
=> 单调必要条件:
如果 \delta=0, 单调充要条件 d_0=d_1=0, P(x) 是常数
如果 \delta\neq0,
P'(x) = d_0+2s\frac{3\delta-2d_0-d_1}{h}+3s^2\frac{d_0-2\delta+d_1}{h^2}
没看懂,略~
分段三次 Hermite 插值多项式 (Piecewise Cubic Hermite Interpolation Polynomial, PCHIP),一阶可导,不一定二阶可导
形状保持的分段三次 Hermite 插值多项式(Shape-Preserving Piecewise Cubic Hermite Interpolation Polynomial, SPPCHIP),是在保持区间单调性的同时,使得样点处的一阶导数连续,从而使得插值后的曲线更加平滑。
样点斜率是于左右相邻点的两个斜率加权调和平均值,且保证单调。
令
\begin{aligned} h_k = x_{+1}-x_k, \\ s_k = x-x_k, \\ \delta_k = \frac{y_{k+1}-y_k}{x_{k+1}-x_k} \end{aligned}
非边界点 d_k, k=2,3,…,n-1 一阶导数
边界点 d_1, d_n 的一阶导数
d_k=\frac{(2h_p+h_q)\delta_p-h_p\delta_q}{h_p+h_q}, \\ if d_k \delta_p 异号 => d_k=0; \\ else if \delta_p \delta_q 异号 且 |d_k|>|3\delta_p| => d_k=2\delta_p
d_1 的 p q 取前两个, d_n 的 p q 取最后两个
分段三次样条插值
Spline 与 PCHIP 区别
用来比较不同分类器的相关性能
横坐标 FPR (costs),纵坐标 TPR (benefits)
ROC Curve 越接近左上角,分类器性能越好,意味着分类器在假阳率很低的同时获得了很高的真阳率
任取一对(正、负)样本,正样本的 score 大于负样本的 score 的概率。
我的 TypeScipt 实现:(YoungSx/bjontegaard.js)[https://github.com/YoungSx/bjontegaard.js]