jvt-g012 (2)

 

3.      GOP Layer Rate Control

 

在这一层中,我们需要为每个GOP中未编码的帧计算剩余bit总数 ,并决定每个GOP初始QP值。和【5】一样,我们假设GOP结构为IBBPBBP或者IPPPI为帧内编码,P为帧间编码,B为双向预测帧。GOP的长度通常为15-304

3.1  Total Number of Bits

 

ith GOP开始时,分配给ith GOP的比特数如下:

                                                    (4)

 

在(4)中我们可以看到下一个GOP的编码结果依赖与前一个GOP。为了保证所有的GOP有同样的质量,每个GOP应该使用自己的预算。换言之,每个GOP编码后,缓存占有率应该保持在 。因为信道带宽会随时变化, 每一帧都回更新:

                                     (5)

 

In the case of CBR, i.e. , Equation (5) is simplified as

                                                                  (6)

In other words, Equation (5) is also applicable to the CBR case.

 

3.2  Starting Quantization Parameter of Each GOP

在我们的方案中,将第一个GOP的初始QP定义为 GOPI帧和第一个P帧用 编码, 由可用的信道带宽和GOP长度预先定义。通常,可用带宽大则选择小的 ,带宽小则选择大的 .在同样的带宽下,如果GOP长度加15 1

其他GOP的初始QP计算如下。

                                                       (7)

其中 是前个GOPP帧的总数, 是前个GOP中所有P帧的QP值之和。和 一样, GOP长度和可用信道带宽决定。

I帧和第一个P帧使用 编码。

4.      Frame Layer Rate Control

帧层码率控制方案包括2个阶段:预编码和发布编码(post encoding

 

4.1  Pre-Encoding Stage:

 

这个步骤的目标是为所有的帧计算QP值,我们首先提出一种简单的计算BQP值的方法。

  4.1.1 Quantization parameters of B frames

 

4.1.2 Quantization Parameters of P Frames

 

计算PQP值通过下面2步:

 

步骤1:确定每个P帧的目标比特数,步骤1又由2个子步骤组成。

步骤1.1 宏观控制(在图像中预先分配)

通过预先定义每个P帧的目标缓存level来实现Bit分配。目标缓存level的功能是为每个P帧计算目标bit。然后用于计算QP。因为第一个P帧的QPGOP层提供,我们只需要预先定义GOP中其他P帧的目标缓存level

在编码ith GOP中的第一个P帧之后,我们充值目标缓存level的初始值如下:

                                                                           (12)

其中 是编码第一个P帧之后的缓存实际占用率

后续P帧的目标缓存level由下式决定

                 (13)

其中 p帧的平均复杂权重, B帧的平均复杂权重。 为目标缓存level 用下式计算。

                                                           (14)

  为相应帧编码得到的bit数,   为相应的QP

假如没有B帧,公式(13)简化为

                                                      (15)                  

容易看出 有关。因此,如果实际缓存值精确的和预定义目标缓存level一致,就可以保证每个GOP使用自己的预算。然而,因为RD模型和MAD预测模型并不精确,因此实际缓存值和目标缓存level存在差距。因此我们需要计算每帧的目标bit去减少实际缓存值和目标缓存level的差距。这个使用微观控制实现。

Step 1.2 Microscopic control (target bit rate computation).

使用线性跟踪理论【6】,ith GOPjth 帧的目标bit分配由目标缓存level,帧率,可用信道带宽和实际缓存占用率决定。

                                                      (16)

其中g是一个常量,没有B帧时,典型值为0.75,否则为0.25。如果实际生成bit数在目标附近,可以容易看出

                                            (17)

因此,一个更严格缓存调整(更接近目标bit)可以同过选择更大的g来实现。

同时,目标bit计算的时候剩余bit数也应该考虑在内

                                          (18)

 

目标bit   的加权和

                                                        (19)

其中 是一个常量,其典型值是无B帧时0.5,否则为0.9

 Step 2计算QP,实现RDO

当前P帧的MAD通过模型(2)使用前个P帧的实际MAD值预测。

QP 相应的目标bit使用【1.2】提供的二次模型计算。细节可以在『 1.2.5 』找到,因此本节不详细描述。为了维持连续帧视觉效果的平滑,QP 由下式决定

                                                       (20)

其中 是前个P帧的QP值。

最终QP 还被下式限制

                                                                   (21)

QP值随后使用【7.8】中的方法来计算当前帧每个MBRDO。编码模式由下列性能指标的最小值决定。

                                               (22) with

                                                  (23)

如果图像为P帧或者B帧并且SAD为标准所接受,运动估计的lambda如下

                                                                               (24)

 

4.2  Post-encoding Stage:

 

在这一节中有3个主要的任务:更新model3)参数 ,二次RD模型的参数,和决定有多少帧需要被跳过。

在编码一副图像之后,model3)的参数,和二次RD模型一样需要被更新。和【1.2】中RD模型的方法类似,使用【5】来计算窗口大小代替【1.2

 

一帧的编码之后,实际生成bit数,A( 被加入当前缓存占用率。为了确保更新的缓存占用率不过高,帧跳过参数 被设置为0并增加知道其后的缓存状态达到【1】要求

                                                                        (25)

其中缓存值更新如下

                                               (26)

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值