视频的编码速率和编码参数,编码结构,视频内容等诸多因素密切相关,速率控制算法无法保证实际编码速率与目标速率一致。为了减少二者之间的差别,通常会在编码器和传输信道之间建立一个数据缓冲区,称为缓冲机制,用于平滑编码速率和信道速率之间的差别,此外,缓冲区还可以容忍一定的速率波动,以避免编码速率与信道速率随时保持一致而引起的视频质量波动。
图12.2 给出了一个司机的视频传输系统,编码器输出的视频码流首先进入缓冲区,缓冲区中的数据以 先进先出 的原则按信道速率进行传输,与之对应的,在解码器和信道间也通过缓冲区来调节信道速率与编码速率的差异。
视频输入->编码器->缓冲器->信道->缓冲器->解码器-->视频输出
缓冲机制可以使编码速率更好的匹配信道速率,然而,它的存在不但会消耗一定的存储空间,而且会引入时延,一般来说,缓冲区越大,消耗的存储空间也越大,适应信道速率的能力越强,但是也会导致解码时延增大,因此,在实际应用中,缓冲区的大小往往由允许的最大试验以及运营成本决定,对于有限的缓冲区,在进行速率控制时需要避免缓冲区溢出。
为了设计含有缓冲区在的速率控制算法,通常将缓冲区的动态变化过程用流体流量模型来表示,令Bc(n)表示n时刻缓冲区充盈度,则n + 1时刻的缓冲区充盈度为。
Bc(n+1) = max(0, Bc(n) + A(n) - u()n);
其中A(n)表示n时刻的实际编码速率,u(n)为n时刻的信道速率,反映了缓冲区充盈度的动态变化,视频编码速率的流体量控制模型。

为了有效发挥缓冲的作用,需要将缓冲区内的数据量维持在一定水平,以应对信道速率的变换以及编码速率与目标速率的匹配误差,使用缓冲区的视频编码速率控制的基本思想如下,如果实际编码速率比可用信道带宽高,则多余的比特会在缓冲区中积累,当缓冲区中的比特数积累到一定高度时,速率控制算法会采取一定措施适量减小实际的编码速率,以降低缓冲区的充盈度,反之,当缓冲区充盈度低于一定程度时,速率控制算法会适量增加实际编码速率,使得缓冲区充盈度回升到一定水平。(备注:VBV水位和充盈度表示的反着的)

896

被折叠的 条评论
为什么被折叠?



