HEVC/VVC中R-Lambda码率控制算法原理

本文深入探讨了VVC(Versatile Video Coding)中的码率控制算法,包括比特分配策略和λ的计算更新。详细介绍了GOP、帧和LCU级别的比特分配方法,以及如何通过调整编码参数达到目标比特数。同时,解析了R-λ模型在码率控制中的应用,包括参数QP的确定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


VVC中码率控制算法沿用了HEVC中经典的 R-λ码率控制模型, R-λ由中科大的李斌博士提出(详情参考 JCTVC-K0103)。 R-λ模型的基础为视频编码中 R(比特 bpp)和 D(失真 MSE)之间的双曲线模型,即
D ( R ) = C R − K D(R) = CR^{-K} D(R)=CRK
R-λ模型中λ是R-D曲线的斜率,对上式求导,可得
λ = − ∂ D ∂ R = C K ⋅ R − K − 1 ≜ α ⋅ R β \lambda=-\frac{\partial D}{\partial R} = CK\cdot R^{-K-1} \triangleq \alpha \cdot R^ \beta λ=RD=CKRK1αRβ
其中 α α α β β β是和视频内容相关的参数。

码率控制主要可分成两个步骤:
1. 首先是比特分配,即将序列目标比特以一定策略确定GOP、帧和LCU各级单元的目标编码比特。
2. 依据分配到的目标比特,通过调整编码单元的编码参数,以达到分配到的目标比特。

1. 比特分配

一般情况下,序列第一帧所需分配的比特需要特殊考虑,第一帧的质量会很大程度上影响后续的编码效率和质量。实际应用中,第一帧的编码参数会根据一些先验知识进行设定。编码第一帧所需比特由于缺乏必要先验信息很难预测,一般采取的策略即给第一帧多分配,以保证质量。
首先定义平均每帧比特
R p i c A v g = R t a r / F R R_{picAvg} = R_{tar} / FR RpicAvg=Rtar/FR
其中 R t a r R_{tar} Rtar为目标比特,FR为帧率。

1.1 GOP级比特分配

一般来说,每个GOP所分配的比特应该是一样的,但是由于实际编码的比特和目标比特总是有差异,GOP级比特分配引入滑动窗口SW来消除每个GOP的实际编码比特与目标比特的误差,每个GOP所分配的比特计算如下
T G O P = R p i c A v g ⋅ ( N c o d e d + S W ) − R c o d e d S W × N G O P T_{GOP} = \frac{R_{picAvg}\cdot (N_{coded} + SW) - R_{coded}}{SW} \times N_{GOP} TGOP=SWRpicAvg(Ncoded+SW)Rcoded×NGOP
公式写成这样可能比较不容易理解,换个表达如下
T G O P = T p i c A v g × N G O P T_{GOP} = T_{picAvg}\times N_{GOP} T

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值