AVS标准中的视频码流缓冲区校验模型分析
2012-06-06王小根赵海武李国平滕国伟王国中
电视技术 2012年1期
王小根,赵海武,李国平,滕国伟,王国中
(上海大学通信与信息工程学院,上海 200072)
视频编码中每一帧的编码数据通常是不一样的,特别是在利用视频序列的时域相关性进行压缩编码时,采用帧内模式编码的帧和采用帧间模式编码的帧的编码数据量会差别很大。而信道的数据传输率经常是稳定而有限的,或者说从传输的角度,希望视频编码数据的速率越稳定越好,最好是恒定码率。因此,利用缓冲区对视频编码数据的速率进行平滑是必须的。在 MPEG-2[1]和 AVS[2]等标准中,都规定了码流缓冲区校验模型,来规范码流的缓冲。
缓冲区的本质是用延迟来换取码率的稳定,因为缓冲必然会带来延迟。缓冲的数据越多,码率越稳定,延迟也越大。然而,在电视广播等应用中延迟是不能太大的,当然,在其他应用中延迟可以很大,但也是有限制的。在延迟有限,也即缓冲区有限的情况下,就需要对每一帧的编码数据量进行控制,以达到码率稳定的目的。因此,缓冲和延迟最终需要用码率控制来实现[3]。
本文对MPEG-2和AVS的码流缓冲模型进行了比较详细的分析。
1 和码流缓冲模型相关的几个概念
1.1 解码时刻
首先,讨论解码器何时开始解码的问题。解码器开始解码的时刻和码流中的bbv_delay,bbv_buffer_size以及low_delay等3个信息相关。
当bbv_delay!=0xFFFF时,某一帧(包括开始解码的第一帧)的解码时刻等于该帧的编码数据进入缓冲区的时刻加上该帧的bbv_delay(bbv_delay出现在每一帧的头部),这是最常见的情况。
当bbv_delay==0xFFFF时,第一帧的解码时刻是缓冲区被充满的时刻。……
登录APP查看全文
