码率控制总结---步骤,流程

简介

讲述码率控制的具体步骤。
前面的两篇文章:
码率控制总结—简介,作用,目标及衡量标准
码率控制总结—相关对象

步骤

码率控制的两个步骤:

  • 对给定的编码单位分配特定的bit
  • 通过模型和给定的bit,计算出编码参数进行编码

编码单位,指的是视频中的组织结构,和码率控制总结—相关对象中的一样,一般分为

  • GOP
  • frame
  • ctu

    GOP级码率分配

    任务:在同一个序列的众多GOP中进行码率分配,确定当前GOP的bit数。

几个值得注意的问题

序列中GOP的划分

目前来说HEVC里面都是固定GOP大小,264中有部分文章提到了adaptive GOP size但是理论性较浅。此问题值得深入探讨。

如何在众多GOP中进行码率分配

这个问题探讨的是GOP级别码率分配的依据。定性的角度来看,依据可以有如下几个:

  1. 编码前的GOP的视频内容特性
    • GOP中帧的相似性
    • 不同GOP的复杂度关系
  2. 编码过程中的budget的修正
    • 损有余而补不足,在一定的窗口范围内平衡已编码GOP的超出/不足比特数

GOP分配的具体步骤

目前来说,GOP级的分配都是按照如下步骤进行:

  • 根据 码率$bitrate$ 和 总帧数$N_{total}$ 计算 平均每帧的比特$R_{avg,f}$
  • 根据 GOP中的帧数$N_{GOP}$ 和 平均每帧的比特$R_{avg,f}$ 计算 GOP的比特数$R_{GOP}$
  • 根据 已编码部分实际消耗的比特 修正 GOP的比特数$R_{GOP}$
  • 设定 最小的GOP比特数 ,不允许$R_{GOP}$低于这个值

帧级码率分配