混合视频编码器中最常用的RD模型将
R
R
R 表示为
D
D
D 的对数函数:
R
(
D
)
=
a
×
log
2
(
b
D
)
R(D) = a \times \log_2{(\frac{b}{D})}
R(D)=a×log2(Db)
因此:
∂
R
∂
D
=
−
a
1
D
ln
2
=
−
1
λ
\frac{\partial R}{\partial D} = -a \frac{1}{D\ln2} = -\frac{1}{\lambda}
∂D∂R=−aDln21=−λ1
⇒
λ
=
ln
2
a
D
\Rightarrow \lambda = \frac{\ln2}{a}D
⇒λ=aln2D
利用量化间隔
Q
Q
Q对失真
D
D
D进行建模:
D
=
Q
2
3
D = \frac{Q^2}{3}
D=3Q2
HEVC 中的量化间隔
Q
Q
Q可以由量化参数
Q
P
QP
QP 得到:
Q
2
=
2
(
Q
P
−
12
)
/
3
Q^2 = 2^{(QP-12)/3}
Q2=2(QP−12)/3
结合上述式子可以得到:
λ
=
c
×
2
(
Q
P
−
12
)
/
3
\lambda = c \times 2^{(QP-12)/3}
λ=c×2(QP−12)/3
其中,
c
=
ln
2
/
3
a
c=\ln2/3a
c=ln2/3a。
在 HEVC 参考软件 HM 的实现中,对于 I 帧:
λ
I
=
(
1
−
m
a
x
(
0
,
m
i
n
(
0.5
,
0.05
N
B
)
)
)
×
0.57
×
2
(
Q
P
−
12
)
/
3
\lambda_{I} = (1 − max(0, min(0.5, 0.05 N_B))) \times 0.57 \times 2^{(QP-12)/3}
λI=(1−max(0,min(0.5,0.05NB)))×0.57×2(QP−12)/3
其中,
N
B
N_B
NB表示一个 GOP 中连续的 B 帧数量。
对于 P 帧:
λ
P
=
f
×
2
(
Q
P
−
12
)
/
3
\lambda_{P} = f \times 2^{(QP-12)/3}
λP=f×2(QP−12)/3
其中,
f
f
f表示 ‘QPfactor’,默认为 0.5,但是可以在配置文件中自己定义。
对于 B 帧:
λ
B
=
f
×
m
a
x
(
2
,
m
i
n
(
4
,
(
Q
P
−
12
)
/
6
)
)
×
2
(
Q
P
−
12
)
/
3
\lambda_{B} = f \times max(2, min(4, (QP − 12)/6)) \times 2^{(QP-12)/3}
λB=f×max(2,min(4,(QP−12)/6))×2(QP−12)/3
HEVC之lambda的推导
最新推荐文章于 2024-05-31 16:31:53 发布