基于编解码端缓存的视频编码码率控制系统和方法

文档序号:7857707阅读:202来源:国知局
专利名称:基于编解码端缓存的视频编码码率控制系统和方法
技术领域
本发明属于视频传输和视频编码技术领域,具体涉及应用于高性能视频传输的视频编解码系统和方法,特别是一种基于编解码端缓存的视频编码码率控制系统和方法。
背景技术
近年来,随着多媒体通信的发展,基于多媒体通信的各种应用也得到迅猛发展,例如数字电视广播、远程监控、数字视频点播(VoD)、无线多媒体通信等。随着接入网络的发展,高清晰视频(分辨率从320X240像素到7680X4320像素)应用需求增加,为满足编码 及传输的要求,2010 年 4 月,ISO 的 MPEG 和 ITU-T 的 VCEG (Video Coding Experts Group)组织组成了 JCT (Joint Video Team) _VT联合工作组,负责下一代编码标准HEVC (HighEfficiency Video Coding)的制定工作。HEVC针对不同的应用要求分别由不同的编码方式,如high efficiency (高性能)和low complexity (低复杂度)等配置。但是目前HEVC还没有码率控制机制,要得到一个连续分辨率的码流,就只能初始定义一个QP (Quantization Parameter,量化参数),在这个初始QP下,根据每个GOP中各帧的QP与初始QP的差值为每帧分配对应的QP。但是这种方法既没有考虑到当前的视频传输网络的状态,也没有考虑到编解码端的缓存装置的状态。如果初始QP下的码率和当前网络状态能够承受的码率相差太大,则会带来很多问题。如果初始QP比目标QP大,则会导致编码码率较小,使得视频质量较差,同时编码端的缓存区没有足够的比特供应网络传输,导致编解码端的缓存装置下溢,使得网络带宽有所浪费和解码端需要暂停播放,或者为了保证编解码端缓存区有一定的比特保留以供传输而导致时延较长;如果初始QP比目标QP小,则会导致编码码率偏大,使得视频质量较高,但是编码端缓存装置可能没有足够的空间保存码流,导致缓存装置上溢,从而丢失大量的数据,使得解码端无法获得完整的码流以正确解码。因而有必要对HEVC的码率控制进行研究。目前,在已有的视频编码标准中,如札264和SVC中一般都已经有了一些比较成形的码率控制算法,它们主要利用的方法是HR和VBV’ HR可参见如下参考文献[I] Jordi Ribas-Corbera, Philip A. Chou, Shankar L. Regunathan,“A Generalized Hypothetical Reference Decoder for H. 264/AVC”,IEEE TRANSTransactions on Circuits and Systems for Video Technology, JULY.2003 ;[2] Jordi Ribas-Corbera, Philip A. Chou, Shankar Regunathan,“A FlexibleDecoder Buffer Model for JVT Video Voding”, IEEE ICIP 2002 ;[3] “Annex B, hypothetical reference decoder,,,in Video Coding for LowBit Rate Communication, ITU-T Recommendation H. 263, Jan,1998 ;VBV 可参见[4] “Annex C, video buffer verifier, in InformationTechnology-Generic Coding of Moving Pictures and Associated Audio Information Video(MPEG-2/H. 262),2000,ISO|IEC 138180-2。
当我们对视频序列进行编码的时候,每一单位时间所产生的码流的比特数各不相同,因此在通信信道上(无论其传输率是恒定还是可变),必须在编码装置和信道间放置一个先入先出(FIFO)的缓存装置以平滑输入,缓存装置越大,越能够承受码率的波动,但是缓存带来的时延也越大,即缓存装置的容量与时延成反比。同时还需有一个控制系统即码率控制系统来进行必要的控制,它可以根据传输通道以及缓存装置的满度的情况来获取所要编码的目标比特率,然后,结合目标比特率,调节编码装置的编码参数来对由于图像变化而引起的码率变化进行调整,防止缓存装置的上溢或下溢,从而使得输出码流在保证图像质量稳定的条件下,适应有限的信道容量。也就是说,码率控制的目的是,通过对量化参数的控制和选择,使视频编码装置在一定视频数据带宽的限制下能够保证较稳定的码率和帧率以及较小的视频时延。因此,在考虑编码端能够根据信道和编码缓存装置的满度的情况来获取目标比特率,适应有限的信道容量的前提下,还需要保证解码端能够流畅的播放,因此需要考虑解码端缓存装置的满度情况,需要保证解码端的缓存区中至少要有一帧的数据以供解码,即解 码端缓存装置的满度也需要在一定的范围内。图I是现有技术的一个简单的视频编码码率控制系统的框图。在图I中,视频编码码率控制系统包括编码端和解码端,所述编码端通过视频传输信道与所述解码端相连接,所述编码端包括视频编码装置、编码端缓存装置和码率控制装置,所述解码端包括解码端缓存装置和视频解码装置。视频编码装置用于对输入视频数据进行编码,编码端缓存装置用于缓存编码视频数据,编码视频数据通过视频传输信道传输到解码端,解码端缓存装置用于缓存传输到解码端的编码视频数据,视频解码装置用于将编码视频数据进行解码以便进行播放。可见,编码端缓存装置和解码端缓存装置均用于避免比特率的波动导致的播放不畅。编码端缓存装置和解码端缓存装置均连接有一个码率控制装置,其通过监视编、解码端缓存装置的满度,调整影响视频编码装置的比特率的QP来防止编码端缓存装置上溢和下溢。换言之,在量化处理过程中,使用QP来控制码率。在视频编码中,QP反映了空间细节压缩情况,当QP较小时,大部分的细节都会被保留,码率较大;当QP较大时,一些细节丢失,码率较小,但图像质量下降。也就是说,QP和比特率成反比的关系,而且随着视频源的复杂度的提高,这种反比关系会更明显。码率控制算法就是动态调整QP,得到目标比特率,而建立缓存模型就是为了在保证合理利用带宽条件和流畅播放的前提下对目标比特率进行一定的约束。简单的说,缓存模型的建立主要有两个作用第一就是通过对编码端缓存装置内存储数据的满度情况来对码率控制装置的目标码率进行修正,使得编码端可以根据信道的状况以及编码视频各帧不同的比特数进行适度的调节以便适应当前的网络状况;第就是通过对解码端缓存装置内存储数据的满度情况进行限制,对码率控制装置的目标码率进行修正,使得解码端可以有足够的数据以供流畅的播放同时又能充分利用信道可以提供的带宽。现有的码率控制有两种方式VBR (可变比特率)和CBR (固定比特率)。VBR方式是一种开环处理,输入为视频源和一个QP值。由于实际视频序列中的图像复杂度是不断变化的,所以细节多少、运动快慢等会造成比特率变化而不稳定。CBR方式是一种闭环处理,输入为视频源和目标比特。它根据对视频源的复杂度估计、解码端缓存装置的大小及视频传输网络带宽估计动态调整QP,得到符合要求的码率。为了保证编码端有足够的数据发送以充分利用网络带宽,同时解码端可以流畅的播放,需要对编解码端的缓存装置进行一定的约束,当然在不同的应用背景下对时延也有着不同的要求,因此需要 对缓存装置进行一定的限制。限制一为缓存装置的大小;限制二为时延条件;限制三为缓存装置的满度的上溢和下溢边界;限制四为缓存装置的满度阈值,大于或等于该值则开始传输数据。现有技术一编码端模拟解码端缓存装置的情况参考文献[I]、[2],在H. 264/AVC中,为了满足发送端服务器硬件条件上缓存装置的大小限制及接收端缓存装置的大小限制,对缓存装置的状态进行了跟踪调整以保证满足播放要求。现有技术一通过在编码端假设解码端缓存装置的情况(HRD),对解码端缓存装置需要的码率约束条件在编码端获得,而无需反馈。在具体实现时,如图2所示,建立编解码端之间缓存模型的关系。图2中Si表示编码第i帧的时刻山表示解码第i帧的时刻;S表示编解码之间由于传输导致的时延山表示解码的时延;F表示编解码端的缓存装置的满度的阈值,大于或等于该值则编码端开始传输,解码端开始解码表示缓存装置的大小;斜率为R的直线表示编码端输出的速度和解码端接收的速度,所以两条斜线之间的竖直距离就是缓存装置的大小B。在该模型下,要求初始输入数据为(R,B,F),分别表示传输比特率、缓存装置大小以及传输阈值。左边的两条斜线(斜线I和斜线2)之间的阴影部分表示编码端缓存装置的占用情况,右边的两条斜线(斜线3和斜线4)之间的阴影部分表示解码端缓存装置的占用情况。整个编码过程为编码端在Stl时刻开始编码第一帧,并且假设瞬时编完就直接存储到编码端缓存装置中,其编码比特数为Iv在编码端由于缓存装置的占用量小于传输的阈值F,所以并不开始传输,到S1时刻开始编码第二帧,并且假设瞬时编完直接存储到编码端缓存装置中,此时编码端缓存装置中的满度已经超过阈值,因此开始传输,在S1时刻斜线2开始以斜率R往上增加,阴影部分开始减小,即缓存装置的数据开始往外传输。此后,编码端缓存装置就每时间就加入一帧数据,同时以码率R输出一部分
K数据。在解码端,在S1+S时开始接收到数据,并且以码率R接收数据,在h时刻超过解码端缓存装置的阈值,开始解码,从解码端缓存装置中瞬时输出第一帧数据,此后,每隔¥时间就瞬时输出一帧数据,并且一直以码率R输入数据。根据以上描述的模型可以发现,编码端缓存装置的空自部分正好是解码端的阴影部分,即编码端缓存装置的空闲部分刚好是解码端缓存装置的占用部分。因此可以在编码端虚拟的模拟出解码端缓存装置的占用情况。从而在保证利用编码端缓存装置占用情况约束目标比特率使得网络带宽充分利用,同时利用解码端缓存装置占用情况约束目标比特率使得解码端播放流畅。现有技术一的缺点第一,从上面的描述可见,该模型的输入数据只有三个(R,F,B),分别表示视频传输网络允许传输的比特率、传输缓存装置的占用阈值、缓存装置的大小。在该模型下,可以在编码端正确模拟出解码端缓存装置的情况的前提条件是编解码端的缓存装置的大小以及阈值必须完全一致。但是这对于现实情况是不一定可以满足的。第二,在确定何时开始传输时只是根据F这个阈值,即编码端缓存装置占用大于或等于F值就开始传输,解码端缓存装置占用大于或等于F就开始解码,但是实际传输中是按数据包为单位传输的,因此并不会那么精确的使得缓存装置的比特数大于或等于F ;同时F值的设置如果不合理可能会导致编解码的时延过长而无法满足实际应用。第三,初始阈值F的设定如果不合理,有可能会对不同的视频传输网络带宽和不同的视频序列有不同的影响,比如,如果当前视频之前几帧数据的相关性非常强,因此需要消耗的比特数很少,从而导致编码很多帧后缓存装置的满度才大于或等于F值,使得时延过长。又如视频传输网络带宽太小,解码端要经过很长时间才能接收到一定的数据,使得解码端缓存装置的满度大于或等于F,再开始解码,从而导致解码端的时延过长。 现有技术二 根据编码端缓存装置占用调整目标比特率参考文献[5]、[6]、[7]如下[5] Joint Video Team, “Adaptive Basic Unit Layer Rate Control for JVTJVT-GO12”,March,2003 ;[6] Tea Anselmo, Daniele Alfonso,“Buffer-based Constant Bit-rateControl for Scalable Video Coding”,PCS, November,2007 ;[7] Joint Collaborative Team on Video coding, “Rate control Based onUnified RQ model for HEVC|JCTVC-H0213”,Feb.2012。在H. 264/AVC中,为了满足编码端缓存装置的满度不会上下溢,主要根据编码端缓存装置的状态对下一帧或下一个GOP的数据所分配的目标比特数进行约束和修正(参考文献[5]、[6])。在HEVC中,为了满足编码端缓存装置的满度不会上溢或下溢,需要根据缓存装置中存储的数据对后面的目标比特进行估计(参考文献[7]),因此,现有提案的目标比特数的分配方法如下在GOP层,由式⑴可见,根据带宽(RiU))和帧率(f)得到一个GOP需要的比特数,再减去当前缓存装置中已有的数据(ViU))作为GOP的初始目标比特数,后面各帧也根据编完上一帧后对当前GOP所剩比特数的影响(即加上码率的不稳定性造成的传输影响
权利要求
1.一种视频编码码率控制系统,包括编码端和解码端,所述编码端通过视频传输信道与所述解码端相连接,所述编码端包括视频编码装置、编码端缓存装置和码率控制装置,所述解码端包括解码端缓存装置和视频解码装置,其特征在于, 所述编码端还包括虚拟解码端缓存装置,用于模拟所述解码端缓存装置在每一时刻的缓存状态,并且 所述码率控制装置用于根据所述编码端缓存装置的缓存状态和虚拟解码端缓存装置模拟的解码端缓存装置的缓存状态,控制视频编码装置的编码码率。
2.如权利要求I所述的视频编码码率控制系统,其特征在于,所述虚拟解码端缓存装置用于估算所述解码端缓存装置的满度,并且所述视频编码装置根据所述编码端缓存装置的满度和所述虚拟解码端缓存装置所估算的解码端缓存装置的满度对视频编码的目标比特数进行约束。
3.如权利要求2所述的视频编码码率控制系统,其特征在于,当所述编码端缓存装置的满度大于或等于满度阈值,或者当所述编码端的时延大于或等于时延阈值,编码端开始向解码端传输编码视频;当所述解码端缓存装置的满度大于或等于满度阈值,或者当所述解码端的时延大于或等于时延阈值,解码端开始解码视频。
4.如权利要求3所述的视频编码码率控制系统,其特征在于,所述编码端缓存装置的满度阈值、解码端缓存装置的满度阈值是相同的或者分别独立设定的;所述编码端缓存装置的时延阈值、解码端缓存装置的时延阈值也是相同的或者分别独立设定的。
5.如权利要求4所述的视频编码码率控制系统,其特征在于,所述虚拟解码端缓存装置根据下式估算所述解码端缓存装置的满度
6.如权利要求5所述的视频编码码率控制系统,其特征在于,所述编码端缓存装置还用于根据下式计算所述编码端缓存装置的满度
7.如权利要求6所述的视频编码码率控制系统,其特征在于,在CBR情况下,所述码率控制装置按照下式对视频编码的目标比特数进行约束
8.如权利要求6所述的视频编码码率控制系统,其特征在于,在VBR情况下,所述码率控制装置按照下式对视频编码的目标比特数进行约束 LowerBound ^ Ei ^ UpperBound, LowerBound 表不码率下界,UpperBound 表不码率上界,并且 ,其中At表示编解码端的时延之和;k为时刻参数;Bd表示解码端缓存装置的最大容量表示编码端缓存装置的最大容量。
9.一种视频编码码率控制方法,用于控制编码端和解码端进行视频数据传输时的编码码率,所述编码端通过视频传输信道与所述解码端相连接,编码端包括编码端缓存装置,解码端包括解码端缓存装置,其特征在于,该方法包括如下步骤 模拟所述解码端缓存装置在每一时刻的缓存状态;以及 根据所述编码端缓存装置的缓存状态和模拟的解码端缓存装置的缓存状态,控制视频编码的编码码率。
10.如权利要求9所述的视频编码码率控制方法,其特征在于,所述模拟所述解码端缓存装置在每一时刻的缓存状态的步骤为估算所述解码端缓存装置的满度; 所述控制视频编码的编码码率的步骤为根据所述编码端缓存装置的满度和所估算的解码端缓存装置的满度对视频编码的目标比特数进行约束。
11.如权利要求10所述的视频编码码率控制方法,其特征在于,当所述编码端缓存装置的满度大于或等于满度阈值,或者当所述编码端的时延大于或等于时延阈值,编码端开始向解码端传输编码视频;当所述解码端缓存装置的满度大于或等于满度阈值,或者当所述解码端的时延大于或等于时延阈值,解码端开始解码视频。
12.如权利要求11所述的视频编码码率控制方法,其特征在于,所述编码端缓存装置的满度阈值、解码端缓存装置的满度阈值是相同的或者分别独立设定的;同样,所述编码端缓存装置的时延阈值、解码端缓存装置的时延阈值也是相同的或者分别独立设定的。
13.如权利要求12所述的视频编码码率控制方法,其特征在于, 所述估算所述解码端缓存装置的满度的步骤是根据下式进行估算 其中 表示第i时刻解码端缓存装置的满度; 表示第i+l时刻解码端缓存装置的满度办表示第i时刻解码的比特数况表示解码端接收的码率;f 表示帧率,*表示相邻两帧之间的时间间隔;所述的第i时刻表示编码第i帧的时刻。
14.如权利要求13所述的视频编码码率控制方法,其特征在于, 所述方法还包括根据下式计算所述编码端缓存装置的满度
15.如权利要求14所述的视频编码码率控制方法,其特征在于, 在CBR情况下,所述按照所述编码端缓存装置的满度和估算的解码端缓存装置的满度对视频编码的目标比特数进行约束的步骤为根据下式对视频编码的目标比特数进行约束 LowerBound ^ Ei ^ UpperBound, LowerBound 表不码率下界,UpperBound 表不码率上界,并且
16.如权利要求14所述的视频编码码率控制方法,其特征在于, 在VBR情况下,所述按照所述编码端缓存装置的满度和估算的解码端缓存装置的满度对视频编码的目标比特数进行约束的步骤为根据下式对视频编码的目标比特数进行约束 LowerBound ^ Ei ^ UpperBound, LowerBound 表不码率下界,UpperBound 表不码率上界,并且
全文摘要
本发明公开了一种视频编码码率控制系统和方法,该系统包括的编码端还包括虚拟解码端缓存装置,用于模拟解码端缓存装置在每一时刻的缓存状态,并且包括一个码率控制装置以根据编码端缓存装置的缓存状态和虚拟解码端缓存装置提供的虚拟解码端缓存装置的缓存状态,控制视频编码装置的码率。本发明通过加入解码端的缓存装置的状态约束,保证了解码端观看视频时可以流畅的播放,不会出现由于解码端缓存装置中的码流不足一帧而无法播放导致播放暂停,也不会由于解码端缓存装置中的编码视频数据达到容量限制而导致数据丢失。
文档编号H04N7/50GK102761741SQ20121021344
公开日2012年10月31日 申请日期2012年6月26日 优先权日2012年6月26日
发明者张冬, 张金雷, 李厚强, 李斌, 李礼 申请人:中国科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1