HEVC之lambda的推导

混合视频编码器中最常用的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} DR=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(QP12)/3
结合上述式子可以得到:
λ = c × 2 ( Q P − 12 ) / 3 \lambda = c \times 2^{(QP-12)/3} λ=c×2(QP12)/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=(1max(0,min(0.5,0.05NB)))×0.57×2(QP12)/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(QP12)/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,(QP12)/6))×2(QP12)/3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值