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

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

Info

Publication number
CN102761741A
CN102761741A CN2012102134410A CN201210213441A CN102761741A CN 102761741 A CN102761741 A CN 102761741A CN 2012102134410 A CN2012102134410 A CN 2012102134410A CN 201210213441 A CN201210213441 A CN 201210213441A CN 102761741 A CN102761741 A CN 102761741A
Authority
CN
China
Prior art keywords
buffer storage
decoding end
video
coding
full scale
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012102134410A
Other languages
English (en)
Other versions
CN102761741B (zh
Inventor
张金雷
张冬
李斌
李礼
李厚强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Science and Technology of China USTC
Original Assignee
University of Science and Technology of China USTC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Science and Technology of China USTC filed Critical University of Science and Technology of China USTC
Priority to CN201210213441.0A priority Critical patent/CN102761741B/zh
Publication of CN102761741A publication Critical patent/CN102761741A/zh
Application granted granted Critical
Publication of CN102761741B publication Critical patent/CN102761741B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种视频编码码率控制系统和方法,该系统包括的编码端还包括虚拟解码端缓存装置,用于模拟解码端缓存装置在每一时刻的缓存状态,并且包括一个码率控制装置以根据编码端缓存装置的缓存状态和虚拟解码端缓存装置提供的虚拟解码端缓存装置的缓存状态,控制视频编码装置的码率。本发明通过加入解码端的缓存装置的状态约束,保证了解码端观看视频时可以流畅的播放,不会出现由于解码端缓存装置中的码流不足一帧而无法播放导致播放暂停,也不会由于解码端缓存装置中的编码视频数据达到容量限制而导致数据丢失。

Description

基于编解码端缓存的视频编码码率控制系统和方法
技术领域
本发明属于视频传输和视频编码技术领域,具体涉及应用于高性能视频传输的视频编解码系统和方法,特别是一种基于编解码端缓存的视频编码码率控制系统和方法。
背景技术
近年来,随着多媒体通信的发展,基于多媒体通信的各种应用也得到迅猛发展,例如数字电视广播、远程监控、数字视频点播(VoD)、无线多媒体通信等。随着接入网络的发展,高清晰视频(分辨率从320×240像素到7680×4320像素)应用需求增加,为满足编码及传输的要求,2010年4月,ISO的MPEG和ITU-T的VCEG(Video Coding Experts Group)组织组成了JCT(Joint Video Team)-VT联合工作组,负责下一代编码标准HEVC(High Efficiency Video Coding)的制定工作。
HEVC针对不同的应用要求分别由不同的编码方式,如high efficiency(高性能)和low complexity(低复杂度)等配置。但是目前HEVC还没有码率控制机制,要得到一个连续分辨率的码流,就只能初始定义一个QP(Quantization Parameter,量化参数),在这个初始QP下,根据每个GOP中各帧的QP与初始QP的差值为每帧分配对应的QP。但是这种方法既没有考虑到当前的视频传输网络的状态,也没有考虑到编解码端的缓存装置的状态。如果初始QP下的码率和当前网络状态能够承受的码率相差太大,则会带来很多问题。如果初始QP比目标QP大,则会导致编码码率较小,使得视频质量较差,同时编码端的缓存区没有足够的比特供应网络传输,导致编解码端的缓存装置下溢,使得网络带宽有所浪费和解码端需要暂停播放,或者为了保证编解码端缓存区有一定的比特保留以供传输而导致时延较长;如果初始QP比目标QP小,则会导致编码码率偏大,使得视频质量较高,但是编码端缓存装置可能没有足够的空间保存码流,导致缓存装置上溢,从而丢失大量的数据,使得解码端无法获得完整的码流以正确解码。因而有必要对HEVC的码率控制进行研究。目前,在已有的视频编码标准中,如H.264和SVC中一般都已经有了一些比较成形的码率控制算法,它们主要利用的方法是HR和VBV,HR可参见如下参考文献:
[1] Jordi Ribas-Corbera,Philip A.Chou,Shankar L. Regunathan,“AGeneralized 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,“AFlexible Decoder Buffer Model for JVT Video Voding”,IEEE ICIP 2002;
[3] “Annex B,hypothetical reference decoder,”in Video Coding forLow Bit 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 AudioInformation:Video(MPEG-2/H.262),2000,ISO|IEC 138180-2。
当我们对视频序列进行编码的时候,每一单位时间所产生的码流的比特数各不相同,因此在通信信道上(无论其传输率是恒定还是可变),必须在编码装置和信道间放置一个先入先出(FIFO)的缓存装置以平滑输入,缓存装置越大,越能够承受码率的波动,但是缓存带来的时延也越大,即缓存装置的容量与时延成反比。同时还需有一个控制系统即码率控制系统来进行必要的控制,它可以根据传输通道以及缓存装置的满度的情况来获取所要编码的目标比特率,然后,结合目标比特率,调节编码装置的编码参数来对由于图像变化而引起的码率变化进行调整,防止缓存装置的上溢或下溢,从而使得输出码流在保证图像质量稳定的条件下,适应有限的信道容量。也就是说,码率控制的目的是,通过对量化参数的控制和选择,使视频编码装置在一定视频数据带宽的限制下能够保证较稳定的码率和帧率以及较小的视频时延。
因此,在考虑编码端能够根据信道和编码缓存装置的满度的情况来获取目标比特率,适应有限的信道容量的前提下,还需要保证解码端能够流畅的播放,因此需要考虑解码端缓存装置的满度情况,需要保证解码端的缓存区中至少要有一帧的数据以供解码,即:解码端缓存装置的满度也需要在一定的范围内。
图1是现有技术的一个简单的视频编码码率控制系统的框图。在图1中,视频编码码率控制系统包括编码端和解码端,所述编码端通过视频传输信道与所述解码端相连接,所述编码端包括视频编码装置、编码端缓存装置和码率控制装置,所述解码端包括解码端缓存装置和视频解码装置。视频编码装置用于对输入视频数据进行编码,编码端缓存装置用于缓存编码视频数据,编码视频数据通过视频传输信道传输到解码端,解码端缓存装置用于缓存传输到解码端的编码视频数据,视频解码装置用于将编码视频数据进行解码以便进行播放。可见,编码端缓存装置和解码端缓存装置均用于避免比特率的波动导致的播放不畅。编码端缓存装置和解码端缓存装置均连接有一个码率控制装置,其通过监视编、解码端缓存装置的满度,调整影响视频编码装置的比特率的QP来防止编码端缓存装置上溢和下溢。换言之,在量化处理过程中,使用QP来控制码率。在视频编码中,QP反映了空间细节压缩情况,当QP较小时,大部分的细节都会被保留,码率较大;当QP较大时,一些细节丢失,码率较小,但图像质量下降。也就是说,QP和比特率成反比的关系,而且随着视频源的复杂度的提高,这种反比关系会更明显。码率控制算法就是动态调整QP,得到目标比特率,而建立缓存模型就是为了在保证合理利用带宽条件和流畅播放的前提下对目标比特率进行一定的约束。
简单的说,缓存模型的建立主要有两个作用:第一就是通过对编码端缓存装置内存储数据的满度情况来对码率控制装置的目标码率进行修正,使得编码端可以根据信道的状况以及编码视频各帧不同的比特数进行适度的调节以便适应当前的网络状况;第就是通过对解码端缓存装置内存储数据的满度情况进行限制,对码率控制装置的目标码率进行修正,使得解码端可以有足够的数据以供流畅的播放同时又能充分利用信道可以提供的带宽。
现有的码率控制有两种方式:VBR(可变比特率)和CBR(固定比特率)。VBR方式是一种开环处理,输入为视频源和一个QP值。由于实际视频序列中的图像复杂度是不断变化的,所以细节多少、运动快慢等会造成比特率变化而不稳定。CBR方式是一种闭环处理,输入为视频源和目标比特。它根据对视频源的复杂度估计、解码端缓存装置的大小及视频传输网络带宽估计动态调整QP,得到符合要求的码率。
为了保证编码端有足够的数据发送以充分利用网络带宽,同时解码端可以流畅的播放,需要对编解码端的缓存装置进行一定的约束,当然在不同的应用背景下对时延也有着不同的要求,因此需要对缓存装置进行一定的限制。限制一为缓存装置的大小;限制二为时延条件;限制三为缓存装置的满度的上溢和下溢边界;限制四为缓存装置的满度阈值,大于或等于该值则开始传输数据。
现有技术一:编码端模拟解码端缓存装置的情况
参考文献[1]、[2],在H.264/AVC中,为了满足发送端服务器硬件条件上缓存装置的大小限制及接收端缓存装置的大小限制,对缓存装置的状态进行了跟踪调整以保证满足播放要求。现有技术一通过在编码端假设解码端缓存装置的情况(HRD),对解码端缓存装置需要的码率约束条件在编码端获得,而无需反馈。
在具体实现时,如图2所示,建立编解码端之间缓存模型的关系。
图2中Si表示编码第i帧的时刻;ti表示解码第i帧的时刻;δ表示编解码之间由于传输导致的时延;D表示解码的时延;F表示编解码端的缓存装置的满度的阈值,大于或等于该值则编码端开始传输,解码端开始解码;B表示缓存装置的大小;斜率为R的直线表示编码端输出的速度和解码端接收的速度,所以两条斜线之间的竖直距离就是缓存装置的大小B。
在该模型下,要求初始输入数据为:(R,B,F),分别表示传输比特率、缓存装置大小以及传输阈值。左边的两条斜线(斜线1和斜线2)之间的阴影部分表示编码端缓存装置的占用情况,右边的两条斜线(斜线3和斜线4)之间的阴影部分表示解码端缓存装置的占用情况。
整个编码过程为:编码端在S0时刻开始编码第一帧,并且假设瞬时编完就直接存储到编码端缓存装置中,其编码比特数为b0,在编码端由于缓存装置的占用量小于传输的阈值F,所以并不开始传输,到S1时刻开始编码第二帧,并且假设瞬时编完直接存储到编码端缓存装置中,此时编码端缓存装置中的满度已经超过阈值,因此开始传输,在S1时刻斜线2开始以斜率R往上增加,阴影部分开始减小,即缓存装置的数据开始往外传输。
此后,编码端缓存装置就每隔
Figure BDA00001811842600051
时间就加入一帧数据,同时以码率R输出一部分数据。
在解码端,在S1+δ时开始接收到数据,并且以码率R接收数据,在t0时刻超过解码端缓存装置的阈值,开始解码,从解码端缓存装置中瞬时输出第一帧数据,此后,每隔
Figure BDA00001811842600052
时间就瞬时输出一帧数据,并且一直以码率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 forJVT |JVT-G012”,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层,由式(1)可见,根据带宽(Ri(j))和帧率(f)得到一个GOP需要的比特数,再减去当前缓存装置中已有的数据(Vi(j))作为GOP的初始目标比特数,后面各帧也根据编完上一帧后对当前GOP所剩比特数的影响(即加上码率的不稳定性造成的传输影响
Figure BDA00001811842600061
再减去实际该帧编的比特数(bi(j-1)))获得剩余帧的目标比特数(其中i表示第i个GOP,j表示第i个GOP中的第j帧)。
B i ( j ) = R i ( j ) f × N GOP - V i ( j ) j = 1 B i ( j - 1 ) + R i ( j ) - R i ( j - 1 ) f × ( N GOP - j + 1 ) - b i ( j - 1 ) j = 2,3 , . . . , N GOP - - - ( 1 )
最终为每帧分配比特数时是按照带宽得到一个目标比特数,按照Bi(j)得到一个比特数,最终利用这两者进行一定的加权得到。
现有技术二的缺点:
首先,由式(1)可见,对于上一个GOP如果有所误差(即存储在缓存装置中的比特数),就在当前GOP立刻解决,为当前GOP分配比特数时立刻将所有的缓存装置中多余(Vi(j)为正数)或者缺少(Vi(j)为负数)的数据减去,这样可能会导致如果上一个GOP的误差较大,即Vi(j)的绝对值比较大,从而会导致当前GOP分配的比特数和原来带宽分配的比特数差距太远。如果Vi(j)为正数,则会导致当前GOP分得的比特数过小,从而导致当前GOP的质量与前后两个GOP的质量差别较大,会极大的影响到视频的主观视觉效果;如果Vi(j)为负值,则会导致当前GOP分配的比特数过多,从而导致在为每帧分配比特数时完全无法用完,仍然会使得比特数的误差后续修正。
其次,该比特率的分配并没有考虑解码端缓存装置的情况,因此可能会产生解码端由于缓存装置数据量不够而导致播放不流畅的问题,也可能会导致解码端缓存装置数据量超过缓存装置大小而丢失数据,从而对于某些帧完全无法重建的问题。
在现有的码率控制方法中,一般通过平均分配的方法或者只考虑编码端缓存装置的状态,在下一个GOP内立刻将缓存装置中存储的内容发送完毕的方法为下一帧或下一个GOP分配目标比特率。参见如下参考文献:
[8] Jordi Ribas-Corbera,Philip A.Chou,Shankar L. Regunathan,“AGeneralized Hypothetical Reference Decoder for H.264/AVC”,IEEE TRANSTransactions on Circuits and Systems for Video Technology,JULY.2003;
[9] “Annex B,hypothetical reference decoder,”in Video Coding for LowBit Rate Communication,ITU-T Recommendation H.263,Jan,1998。
发明内容
(一)要解决的技术问题
本发明所要解决的技术问题是现有的视频编码码率控制系统和方法存在的视频传输网络带宽利用不足、时延控制不合理的缺陷以及可能造成视频播放不流畅的问题。
(二)技术方案
为了解决上述技术问题,本发明提出一种视频编码码率控制系统,包括编码端和解码端,所述编码端通过视频传输信道与所述解码端相连接,所述编码端包括视频编码装置、编码端缓存装置和码率控制装置,所述解码端包括解码端缓存装置和视频解码装置,所述编码端还包括虚拟解码端缓存装置,用于模拟所述解码端缓存装置在每一时刻的缓存状态,并且所述码率控制装置用于根据所述编码端缓存装置的缓存状态和虚拟解码端缓存装置模拟的解码端缓存装置的缓存状态,控制视频编码装置的编码码率。
根据本发明的一种具体实施方式,所述虚拟解码端缓存装置用于估算所述解码端缓存装置的满度,当所述编码端缓存装置的满度大于或等于满度阈值,或者当所述编码端的时延大于或等于时延阈值,编码端开始向解码端传输编码视频;当所述解码端缓存装置的满度大于或等于满度阈值,或者当所述解码端的时延大于或等于时延阈值,解码端开始解码视频;所述编码端缓存装置的满度阈值、解码端缓存装置的满度阈值是相同的或者分别独立设定的;同样,所述编码端缓存装置的时延阈值、解码端缓存装置的时延阈值也是相同的或者分别独立设定的;并且所述视频编码装置根据所述编码端缓存装置的满度和所述虚拟解码端缓存装置所估算的解码端缓存装置的满度对视频编码的目标比特数进行约束。
根据本发明的一种具体实施方式,所述虚拟解码端缓存装置根据下式估算所述解码端缓存装置的满度:
F i + 1 d = F i d - D i + R i × 1 f , 其中:
Figure BDA00001811842600082
表示第i时刻解码端缓存装置的满度;
Figure BDA00001811842600083
表示第i+1时刻解码端缓存装置的满度;Di表示第i时刻解码的比特数;Ri表示解码端接收的码率;f表示帧率,
Figure BDA00001811842600084
表示相邻两帧之间的时间间隔;所述的第i时刻表示编码第i帧的时刻。
根据本发明的一种具体实施方式,所述编码端缓存装置还用于根据下式计算所述编码端缓存装置的满度:
F i + 1 e = F i e + E i - S i × 1 f , 其中:
表示第i时刻编码端缓存装置的满度;
Figure BDA00001811842600087
表示第i+1时刻编码端缓存装置的满度;Ei表示第i时刻编码的比特数;Si表示编码端发送的码率。
根据本发明的一种具体实施方式,在CBR情况下,所述码率控制装置按照下式对视频编码的目标比特数进行约束:
LowerBound≤Ei≤UpperBound,LowerBound表示码率下界,UpperBound表示码率上界,并且
LowerBound = max ( 2 × R × 1 f - F i e , F i e + ( Δt + 1 ) × R × 1 f - Σ k = i - Δt k = i - 1 E k - B d )
UpperBound = min ( B e + R × 1 f - F i - 1 e , F i d + ( Δt + 1 ) × R × 1 f - Σ k = i - Δt k = i - 1 E k - E i - 1 )
,其中:R表示视频传输信道的带宽;Δt表示编解码时延之和,即发送时延与解码时延之和;k为时刻参数;Bd表示解码端缓存装置的最大容量;Be表示编码端缓存装置的最大容量。
根据本发明的一种具体实施方式,在VBR情况下,所述码率控制装置按照下式对视频编码的目标比特数进行约束:
LowerBound≤Ei≤UpperBound,LowerBound表示码率下界,UpperBound表示码率上界,并且
LowerBound = max ( ( S i + 1 + S i ) × 1 f - F i e , F i d + Σ k = i k = i + Δt R k × 1 f - Σ k = i - Δt k = i - 1 E k - B d )
UpperBound = min ( B e + S i × 1 f - F i e , F i d + Σ k = i k = i + Δt R k × 1 f - Σ k = i - Δt k = i - 1 E k - E i - 1 )
其中:Δt表示编解码时延之和,即发送时延与解码时延之和;k为时刻参数;Bd表示解码端缓存装置的最大容量;Be表示编码端缓存装置的最大容量。
本发明还提出一种视频编码码率控制方法,用于控制编码端和解码端进行视频数据传输时的编码码率,所述编码端通过视频传输信道与所述解码端相连接,编码端包括编码端缓存装置,解码端包括解码端缓存装置,该方法包括如下步骤:模拟所述解码端缓存装置在每一时刻的缓存状态;以及根据所述编码端缓存装置的缓存状态和模拟的解码端缓存装置的缓存状态,控制视频编码的编码码率。
根据本发明的一种具体实施方式,在CBR情况下,所述模拟所述解码端缓存装置在每一时刻的缓存状态的步骤为:估算所述解码端缓存装置的满度;所述控制视频编码的编码码率的步骤为:当估算的解码端缓存装置的满度大于或等于满度阈值,或者编码端缓存时延大于或等于时延阈值时,按照所述编码端缓存装置的满度和估算的解码端缓存装置的满度对视频编码的目标比特数进行约束。
根据本发明的一种具体实施方式,所述估算所述解码端缓存装置的满度的步骤是根据下式进行估算:
F i + 1 d = F i d - D i + R i × 1 f , 其中:
Figure BDA00001811842600102
表示第i时刻解码端缓存装置的满度;
Figure BDA00001811842600103
表示第i+1时刻解码端缓存装置的满度;Di表示第i时刻解码的比特数;Ri表示解码端接收的码率;f表示帧率,
Figure BDA00001811842600104
表示相邻两帧之间的时间间隔;所述的第i时刻表示编码第i帧的时刻。
根据本发明的一种具体实施方式,所述方法还包括根据下式计算所述编码端缓存装置的满度:
F i + 1 e = F i e + E i - S i × 1 f , 其中:
Figure BDA00001811842600106
表示第i时刻编码端缓存装置的满度;
Figure BDA00001811842600107
表示第i+1时刻编码端缓存装置的满度;Ei表示第i时刻编码的比特数;Si表示编码端发送的码率
根据本发明的一种具体实施方式,所述按照所述编码端缓存装置的满度和估算的解码端缓存装置的满度对视频编码的目标比特数进行约束的步骤为根据下式对视频编码的目标比特数进行约束:
LowerBound≤Ei≤UpperBound,LowerBound表示码率下界,UpperBound表示码率上界,并且
LowerBound = max ( 2 × R × 1 f - F i e , F i e + ( Δt + 1 ) × R × 1 f - Σ k = i - Δt k = i - 1 E k - B d )
UpperBound = min ( B e + R × 1 f - F i - 1 e , F i d + ( Δt + 1 ) × R × 1 f - Σ k = i - Δt k = i - 1 E k - E i - 1 )
,其中:R表示视频传输信道的带宽;Δt表示编解码时延之和,即发送时延与解码时延之和;k为时刻参数;Bd表示解码端缓存装置的最大容量;Be表示编码端缓存装置的最大容量。
根据本发明的一种具体实施方式,在VBR情况下,所述按照所述编码端缓存装置的满度和估算的解码端缓存装置的满度对视频编码的目标比特数进行约束的步骤为根据下式对视频编码的目标比特数进行约束:
LowerBound≤Ei≤UpperBound,LowerBound表示码率下界,UpperBound表示码率上界,并且
LowerBound = max ( ( S i + 1 + S i ) × 1 f - F i e , F i d + Σ k = i k = i + Δt R k × 1 f - Σ k = i - Δt k = i - 1 E k - B d )
UpperBound = min ( B e + S i × 1 f - F i e , F i d + Σ k = i k = i + Δt R k × 1 f - Σ k = i - Δt k = i - 1 E k - E i - 1 )
其中:Δt表示编解码时延之和,即发送时延与解码时延之和;k为时刻参数;Bd表示解码端缓存装置的最大容量;Be表示编码端缓存装置的最大容量。
(三)有益效果
本发明不仅考虑了编码端缓存装置的状态,同时考虑了解码端缓存装置的状态,利用这两个状态对每个GOP和每帧的目标比特码率进行约束并适当调整使之更好更平稳的利用视频传输网络带宽,加入解码端的缓存装置的状态约束后,可以保证解码端观看视频时可以流畅的播放,不会出现由于解码端缓存装置中的码流不足一帧而无法播放导致播放暂停,也不会由于解码端的缓存装置中的数据达到容量而导致数据丢失从而使得某些帧的数据完全丢失而无法解码。
根据不同的应用,本发明可以自己通过调整阈值来调整时延。在编解码端可以自己设定阈值来控制编码端开始传输解码端开始解码的时间,从而调整时延。
本发明在编码端端建立虚拟解码端缓存装置,不需要编解码端的缓存装置大小以及阈值完全一致,从而适合更普遍的应用。
附图说明
图1是现有技术的视频编码码率控制系统的结构示意图;
图2是现有技术的编解码端之间缓存模型的关系图;
图3是本发明的视频编码码率控制系统的结构示意图;
图4是本发明的视频编码码率控制系统的编解码端的缓存装置状态变化图;
图5是根据本发明的视频编码码率控制方法的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明自,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
图3所示为本发明的视频编码码率控制系统的结构示意图。如图3所示,本发明的码率控制系统在现有技术的基础上进行了改进,本发明的码率控制系统的编码端除了包括视频编码装置、编码端缓存装置、码率控制装置之外,还包括一个虚拟解码端缓存装置。
虚拟解码端缓存装置用于模拟解码端缓存装置在每一时刻的缓存装置状态,码率控制装置根据编码端缓存装置的缓存状态和虚拟解码端缓存装置模拟的解码端缓存装置的缓存状态,控制视频编码装置的编码码率。在本发明中所称的“装置”既可以由硬件构成,也可以是具有特定功能的软件模块。特别是“缓存装置”,其既可以是由独立的用作缓冲的存储器构成,也可以是存储器中的一部分存储区域,或者是软件中用于缓冲的存储模块。
编解码端的缓存装置的满度都有一个上溢阈值,这个上阈阈值的作用主要是保证数据都可以完整的保存在缓存装置中,不会由于超出缓存装置的存储空间而丢失,从而导致无法正确解码。根据本发明,编码端缓存装置的约束主要是根据视频传输网络可以提供的带宽条件,保证充分利用带宽,以便在编码端缓存装置中始终有足够的数据供应来传输,即编码端缓存装置的满度有一个下溢阈值;解码端缓存装置的约束主要是要保证解码端缓存装置中有足够的数据以供播放,通过保证解码端缓存装置中至少有一帧的数据来保证解码端的播放流畅,即解码端缓存装置的满度有一个下溢阈值。
本发明在编码端采用了虚拟解码端缓存装置来模拟解码端每一时刻的缓存状态,而不再利用反馈机制为编码端随时传输解码端缓存装置的状态,从而能够避免反馈机制所带来的时延问题。
同时,为了避免时延过长,本发明还设定:在编码端超过一定时延就必须要开始传输,在解码端超过一定时延就必须要开始解码。
因此,本发明需要设定的初始数据为:R,Be,Bd
Figure BDA00001811842600122
Figure BDA00001811842600124
其中R表示视频传输信道的带宽,Be表示编码端缓存装置的最大容量;Bd表示解码端缓存装置的最大容量;表示编码端缓存装置的满度阈值,即当编码端缓存装置的满度大于或等于该值时必须开始传输;
Figure BDA00001811842600126
表示解码端缓存装置的满度阈值,即当解码端缓存装置的满度大于或等于该值时必须开始解码;
Figure BDA00001811842600127
表示编码端的时延阈值,即编码端的最大时延,当编码端的时延大于或等于该值时必须开始传输;
Figure BDA00001811842600131
表示解码端的时延阈值,即解码端的最大时延,当解码端的时延大于或等于该值时必须开始解码。由上述说明可知,在本发明中,编码端开始传输的约束条件有两个,分别为编码端缓存装置的满度阈值和编码端的时延阈值,其中,编码端的时延是与编码端缓存装置中存储的视频帧数直接对应的,解码端的时延是与解码端缓存装置中存储的视频帧数直接对应的。也就是说,对于一个帧率为f的视频而言,其时延与帧数之间的关系为:其中T表示时延,n表示已经编码的帧数,f表示帧率,即每秒内编码、传输或播放f个视频帧。在编码端,只要编码端缓存装置的状态满足以上两个约束条件之一,就开始传输。在解码端也一样,只要解码端缓存装置的状态满足解码端缓存装置的满度阈值和解码端时延阈值之一就开始解码。在本发明中还设定编解码时延之和,编解码时延之和为Δt,则Δt与
Figure BDA00001811842600133
Figure BDA00001811842600134
Figure BDA00001811842600135
Figure BDA00001811842600136
这四个阈值有关,由于编码端时延阈值为
Figure BDA00001811842600137
解码端时延阈值为
Figure BDA00001811842600138
因此编解码时延之和Δt的最大值为
Figure BDA00001811842600139
由于本发明的系统在开始传输和解码时有两个共同的约束条件,因此可以根据不同的应用对初始设定的数据进行适当的定义,比如,对于编解码端硬件条件比较差的装置,则可以定义较小的满度阈值,这样可以使得编解码端存储装置不易出现溢出;对于在线播放这种实时性要求较高的系统,可以定义较小的时延阈值,这样可以更快的开始播放。通过这两个阈值的共同约束,适应不同的应用场景。
本发明的系统对编码端和解码端分别独立地设定了满度阈值,因此,编码端和解码端的满度阈值可以相同或者不相同,在该初始条件下,编码端和解码端可以独立的对编码端和解码端的满度建模,从而为所述虚拟解码端缓存装置的缓存状态建立准确模型并计算,因此,该模型下,不仅可以在CBR的情况下,对虚拟解码端缓存装置的缓存状态进行模拟估算,同时还可以在VBR的情况下,对虚拟解码端缓存装置的缓存状态进行模拟估算;并且与编码端缓存装置的缓存状态共同约束视频编码的目标比特数。
本发明主要同时利用编码端缓存装置和解码端缓存装置的满度对当前视频分成两层(GOP层和视频帧层)进行目标比特码率的约束和修正。
图4是本发明的视频编码码率控制系统的编解码端的缓存装置状态变化图。如图4所示,
Figure BDA00001811842600141
表示第i时刻编码端缓存装置的满度,Ei表示第i时刻编码的比特数,
Figure BDA00001811842600142
表示第i时刻解码端缓存装置的满度,Di表示第i时刻解码的比特数,即当前时刻解码帧的编码比特数,其中第i时刻就是表示编码第i帧的时刻。
A、CBR情况下
在码率控制方式为CBR的情况下的整个视频编解码过程为:在编码第0帧之前对当前的编解码端的缓存装置进行初始化,其初始满度均为0,即
Figure BDA00001811842600143
均为0,此后,每完成一个视频帧的编码,在下一帧开始之前,更新一次编码端缓存装置的满度;在解码端,也在解码对应帧之前的解码端缓存装置的满度作为当前时刻的状态。由于解码端相对编码端有一定的时延,因此同一时刻编码端编码的帧与当前时刻解码端解码的帧不是同一帧,此处对应帧指经过时延后,解码端解码相同的帧,而不是同一时刻解码端正在解码的帧。
在编码端缓存装置的满度达到一定满度阈值或者编码端时延超过时延阈值时,编码端就开始传输,解码端开始接收,如图4中所示,在编码完E3后就超过了满度阈值,开始传输。当解码端缓存装置的满度达到一定的满度阈值或者时延超过一定时延阈值时,解码端就开始解码,如图4中
Figure BDA00001811842600145
已经超过满度阈值,因此在此时刻开始解码。因此编解码端的缓存装置的状态可用如下公式(2)和(3)进行递推得到,其中Si和Ri分别表示编码端传输的码率和解码端接收的码率,一般情况下两者是相等的,都是信道允许的带宽下对应的码率R,f表示帧率,则
Figure BDA00001811842600146
表示相邻两帧之间的时间间隔:
F i + 1 e = F i e + E i - S i × 1 f - - - ( 2 )
F i + 1 d = F i d - D i + R i × 1 f - - - ( 3 )
根据实际要求,在CBR的情况下,编码端要求必须时刻有足够多的数据供应信道传输以充分利用信道允许的带宽Si,同时要求编码端缓存装置的满度
Figure BDA00001811842600149
不能超过缓存装置的容量Be,因此,在编码端为了既能充分利用带宽又不会丢失数据,需要有如式(4)的约束:
S i × 1 f ≤ F i e ≤ B e - - - ( 4 )
在解码端要求必须至少要有一帧数据以供解码播放,同时解码端缓存装置的满度不能超过缓存装置的容量Bd,因此在解码端为了既能流畅的播放,又不会丢失数据,需要有如式(5)所示的约束:
D i ≤ F i d ≤ B d - - - ( 5 )
(a)编码端
将式(2)代入(4)得:
S i × 1 f ≤ F i e = F i - 1 e + E i - 1 - S i - 1 × 1 f ≤ B e - - - ( 6 )
因此,由上式可解得:
( S i + S i - 1 ) × 1 f - F i - 1 e ≤ E i - 1 ≤ B e + S i - 1 × 1 f - F i - 1 e - - - ( 7 )
由于在CBR情况下,Si(i为任意非负整数),只要开始传输了,其值就相等,并且恒为R。因此,
2 × R × 1 f - F i - 1 e ≤ E i - 1 ≤ B e + R × 1 f - F i - 1 e - - - ( 8 )
(b)解码端
将式(3)代入(5)得:
D i ≤ F i d = F i - 1 d - D i - 1 + R i - 1 × 1 f ≤ B d - - - ( 9 )
因此,由上式可解得:
F i d + R i × 1 f - B d ≤ D i ≤ F i - 1 d - D i - 1 + R i - 1 × 1 f - - - ( 10 )
由于在CBR情况下,只要开始传输了,Ri(i为任意非负整数)值就相等,并且恒为R。因此,
F i d + R × 1 f - B d ≤ D i ≤ F i - 1 d - D i - 1 + R × 1 f - - - ( 11 )
由于解码端的Di与Ei之间有一定的关系,因为在第i时刻解码的比特数就是第i-Δt时刻编码的比特数,其中Δt为编解码时延之和。因此有如下关系式:
Di=Ei-Δt    (12)
所以,由式(11)带入式(12)可知,
F i d + R × 1 f - B d ≤ E i - Δt ≤ F i - 1 d - D i - 1 + R × 1 f - - - ( 13 )
同时后移Δt时刻可得,
F i + Δt d + R × 1 f - B d ≤ E i ≤ F i - 1 + Δt d - D i - 1 + Δt + R × 1 f - - - ( 14 )
由式(3)可知,在任意两个时刻(i+Δt和i)之间解码端缓存装置的满度的递推公式为:
F i + Δt d = F i d + Σ k = i k = i + Δt - 1 R k × 1 f - Σ k = i k = i + Δt - 1 D k = F i d + Σ k = i k = i + Δt - 1 R k ×
1 f - Σ k = i - Δt k = i - 1 E k = F i d + Δt × R × 1 f - Σ k = i - Δt i - 1 E k - - - ( 15 )
其中k为时刻参数。因此,可有
F i d + ( Δt + 1 ) × R × 1 f - Σ k = i - Δt k = i - 1 E k - B d ≤ E i ≤
F i d + ( Δt + 1 ) × R × 1 f - Σ k = i - Δt k = i - 1 E k - E i - 1 - - - ( 16 )
(c)结合编解码端
综合编码端的约束公式(8)和解码端的约束公式(16)可以得到最终的第i时刻已编码的比特数Ei的约束条件为:
LowerBound = max ( 2 × R × 1 f - F i e , F i e + ( Δt + 1 ) × R × 1 f - Σ k = i - Δt k = i - 1 E k - B d ) - - - ( 17 )
UpperBound = min ( B e + R × 1 f - F i - 1 e , F i d + ( Δt + 1 ) × R × 1 f - Σ k = i - Δt k = i - 1 E k - E i - 1 ) - - - ( 18 )
LowerBound≤Ei≤UpperBound    (19)
其中,LowerBound表示码率下界,UpperBound表示码率上界。
B、VBR情况下
当码流控制方式为VBR时,根据实际要求,在VBR的情况下,编码端要求必须时刻有足够多的数据供应信道传输以充分利用信道允许的带宽Si,此处,i表示时刻参数,在VBR情况下,在不同时刻其信道允许的带宽可以随着时刻的变化而变化,并不是一个定值。同时要求编码端缓存装置的满度不能超过缓存装置的容量Be,因此,在编码端为了既能充分利用带宽又不会丢失数据,需要有如式(20)的约束:
S i × 1 f ≤ F i e ≤ B e - - - ( 20 )
在解码端要求必须至少要有一帧数据以供解码播放,同时解码端缓存装置的满度
Figure BDA00001811842600169
不能超过缓存装置的容量Bd,因此在解码端为了既能流畅的播放,又不会丢失数据,需要有如式(21)所示的约束:
D i ≤ F i d ≤ B d - - - ( 21 )
(a)编码端:
将式(2)代入(20)得:
S i × 1 f ≤ F i e = F i - 1 e + E i - 1 - S i - 1 × 1 f ≤ B e - - - ( 22 )
因此,由上式可解得:
( S i + S i - 1 ) × 1 f - F i - 1 e ≤ E i - 1 ≤ B e + S i - 1 × 1 f - F i - 1 e - - - ( 23 )
由于在VBR情况下,Si(i为任意非负整数),一旦开始传输,信道允许的带宽并非恒为R,而是一个可变的值。
(b)解码端:
将式(3)代入(21)得:
D i ≤ F i d = F i - 1 d - D i - 1 + R i - 1 × 1 f ≤ B d - - - ( 24 )
因此,由上式可解得:
F i d + R i × 1 f - B d ≤ D i ≤ F i - 1 d - D i - 1 + R i - 1 × 1 f - - - ( 25 )
其中,由于在VBR情况下,只要开始传输了,Ri(i为任意非负整数)值是会随着时刻i的变化而变化的。
由于解码端的Di与Ei之间有一定的关系,因为在第i时刻解码的比特数就是第i-Δt时刻编码的比特数,其中Δt为编解码时延之和。因此有如下关系式:
Di=Ei-Δt    (26)
所以,由式(25)带入式(26)可知,
F i d + R i × 1 f - B d ≤ E i - Δt ≤ F i - 1 d - D i - 1 + R i - 1 × 1 f - - - ( 27 )
同时后移Δt时刻可得,
F i + Δt d + R i + Δt × 1 f - B d ≤ E i ≤ F i - 1 + Δt d - D i - 1 + Δt + R i - 1 + Δt × 1 f - - - ( 28 )
由式(3)可知,在任意两个时刻(i+Δt和i)之间解码端缓存装置的满度的递推公式为:
F i + Δt d = F i d + Σ k = i k = i + Δt - 1 R k × 1 f - Σ k = i k = i + Δt - 1 D k = F i d + Σ k = i k = i + Δt - 1 R k ×
1 f - Σ k = i - Δt k = i - 1 E k = F i d + Δt × R × 1 f - Σ k = i - Δt i - 1 E k - - - ( 29 )
因此,可有
F i d + Σ k = i k = i + Δt R k × 1 f - Σ k = i - Δt k = i - - 1 E k - B d ≤ E i ≤ F i d + Σ k = i k = i + Δt R k × 1 f - Σ k = i - Δt k = i - 1 E k -
E i - 1 - - - ( 30 )
(c)结合编解码端
LowerBound = max ( 2 × R × 1 f - F i e , F i e + ( Δt + 1 ) × R × 1 f - Σ k = i - Δt k = i - 1 E k - B d ) - - - ( 31 )
UpperBound = min ( B e + R × 1 f - F i - 1 e , F i d + ( Δt + 1 ) × R × 1 f - Σ k = i - Δt k = i - 1 E k - E i - 1 ) - - - ( 32 )
LowerBound≤Ei≤UpperBound    (33)
其中,LowerBound表示码率的下界,UpperBound表示码率的上界。
由上可见,本发明对于CBR和VBR的情况都可以适用。通过本发明的约束后,可以保证编码端充分利用视频传输网络的带宽并且不会由于超出缓存装置的容量而丢失数据,解码端可以流畅播放同时不会由于超出解码端缓存装置容量而丢失数据,同时由于初始定义了缓存装置的满度的阈值和时延的最大值,这样可以更好的约束时延,不会由于缓存装置的容量过大而导致时延过大。
下面描述根据本发明的视频编码码率控制系统的码率控制方法的一个具体实施方式。在该实施例中,在HEVC的码率控制方法中加入根据编解码端的缓存装置的状态对目标比特数进行修正。即当编码某帧数据时,根据MAD(mean absolute difference)和当前剩余的比特数给当前GOP或帧分配目标比特数,由于为了保证充分利用带宽和流畅播放,根据编解码端的缓存装置的状态对目标比特数进行修正。
本发明对于编码端开始传输的条件和解码端开始解码的条件根据实际应用也进行了改进,在编解码端有两个条件:一为缓存装置的满度大于或等于满度阈值,二为编码时间大于或等于时延阈值,二者满足其中之一就开始传输,这样就可以防止阈值设定不合理导致时延过长。
图5是根据本发明的视频编码码率控制方法的流程图。该图5所示的方法是以CBR的情况为例进行的说明,本该方法同样适用于VBR的情况。当应用于VBR时,只需将该方法中对编码目标比特数的约束条件改为上述VBR情况下的约束条件。
首先,对输入的视频数据进行编码。在该步骤中,视频编码装置对当前输入的视频数据进行编码,将编码所得的编码视频数据存入编码端缓存装置中,并根据公式(2)计算编码端缓存装置的满度。
接着,码率控制装置将计算的编码端缓存装置的满度与设定的满度阈值进行比较,如果当前编码端缓存装置的满度大于或等于满度阈值,或者编码端缓存装置中缓存时间大于或等于时延阈值,则编码端开始发送编码视频数据,解码端开始接收编码视频数据,虚拟解码端缓存装置根据公式(3)估算解码端缓存装置的满度。
码率控制装置将该估算的解码端缓存装置的满度与设定的解码端缓存装置的满度阈值进行比较。
如果虚拟解码端缓存装置估算的解码端缓存装置的满度大于或等于所述满度阈值,或者编码端缓存装置中缓存时间大于或等于时延阈值,则解码端开始解码,并且按照编码端缓存装置的满度和估算的解码端缓存装置的满度按公式(19)对目标比特数进行约束,以获得下一帧的目标比特数,否则,直接只用编码端缓存装置的缓存状态按公式(8)对目标比特数进行约束以获得下一帧的目标比特数;
如果计算的编码端缓存装置的满度小于设定的满度阈值,则将编码视频数据流直接保存在编码端缓存装置中,并按照平均分配比特数的方法为下一帧分配比特数。
如果当前帧是视频序列的最后一帧,则结束,否则继续重复上述操作,对下一帧进行编码。
在本发明中,如图5所示,可以在编码某个视频数据帧后对下一帧待编码数据的目标比特数进行一定的约束。通过判断编码端是否开始传输,解码端是否开始解码,决定下一帧的目标比特数的约束范围,若编码端开始传输,则需要根据编码端缓存装置的状态对目标比特率进行约束修正,若解码端开始解码了,则需要同时利用编解码端的缓存装置状态对目标比特率进行约束修正。修正方法为,若平均分配的目标比特数在一个指定范围之内则不进行修正,在该指定范围之外则进行修正,这样可以提前阻止缓存装置的越界,从而避免越界带来的负面影响,如带宽浪费、数据丢失无法正确解码、解码端无法流畅播放等。根据本发明的优选实施方式,该指定范围的下限小于所述上溢阈值,上限大于所述下溢阈值。例如,下限可设定上溢阈值的90%,上限设为下溢阈值的110%。应当注意的是,上数数值只是一个示例,根据本发明,该指定范围可以在适度的范围内进行变化,如果对应的视频序列的码率比较稳定,则该范围可以适度调大,但是,如果所编视频序列的码率不稳定,则该范围不要调太大,以免越界。
由此可见,本发明不要求之前GOP导致的误差必须在下一个GOP立刻解决,而是要求在保证每个GOP都有比较合理的比特数的前提下,要求在之后一定数量的GOP内进行解决,由此,本发明不仅考虑了编码端缓存装置的占用情况,以保证既充分利用视频传输网络的带宽又不会由于超过缓存装置的大小而丢失数据,还考虑了解码端缓存装置的占用情况,以保证解码端可以有足够的数据流畅的播放,又不会由于超出解码端缓存装置的大小而导致无法重建。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (16)

1.一种视频编码码率控制系统,包括编码端和解码端,所述编码端通过视频传输信道与所述解码端相连接,所述编码端包括视频编码装置、编码端缓存装置和码率控制装置,所述解码端包括解码端缓存装置和视频解码装置,其特征在于,
所述编码端还包括虚拟解码端缓存装置,用于模拟所述解码端缓存装置在每一时刻的缓存状态,并且
所述码率控制装置用于根据所述编码端缓存装置的缓存状态和虚拟解码端缓存装置模拟的解码端缓存装置的缓存状态,控制视频编码装置的编码码率。
2.如权利要求1所述的视频编码码率控制系统,其特征在于,所述虚拟解码端缓存装置用于估算所述解码端缓存装置的满度,并且所述视频编码装置根据所述编码端缓存装置的满度和所述虚拟解码端缓存装置所估算的解码端缓存装置的满度对视频编码的目标比特数进行约束。
3.如权利要求2所述的视频编码码率控制系统,其特征在于,当所述编码端缓存装置的满度大于或等于满度阈值,或者当所述编码端的时延大于或等于时延阈值,编码端开始向解码端传输编码视频;当所述解码端缓存装置的满度大于或等于满度阈值,或者当所述解码端的时延大于或等于时延阈值,解码端开始解码视频。
4.如权利要求3所述的视频编码码率控制系统,其特征在于,所述编码端缓存装置的满度阈值、解码端缓存装置的满度阈值是相同的或者分别独立设定的;所述编码端缓存装置的时延阈值、解码端缓存装置的时延阈值也是相同的或者分别独立设定的。
5.如权利要求4所述的视频编码码率控制系统,其特征在于,所述虚拟解码端缓存装置根据下式估算所述解码端缓存装置的满度:
Figure FDA00001811842500011
其中:
Figure FDA00001811842500012
表示第i时刻解码端缓存装置的满度; 
Figure FDA00001811842500013
表示第i+1时刻解码端缓存装置的满度;Di表示第i时刻解码的比特数;Ri表示解码端接收的码 率;f表示帧率, 
Figure FDA00001811842500021
表示相邻两帧之间的时间间隔;所述的第i时刻表示编码第i帧的时刻。
6.如权利要求5所述的视频编码码率控制系统,其特征在于,所述编码端缓存装置还用于根据下式计算所述编码端缓存装置的满度:
Figure FDA00001811842500022
其中:
表示第i时刻编码端缓存装置的满度; 
Figure FDA00001811842500024
表示第i+1时刻编码端缓存装置的满度;Ei表示第i时刻编码的比特数;Si表示编码端发送的码率。
7.如权利要求6所述的视频编码码率控制系统,其特征在于,在CBR情况下,所述码率控制装置按照下式对视频编码的目标比特数进行约束:
LowerBound≤Ei≤UpperBound,LowerBound表示码率下界,UpperBound表示码率上界,并且
Figure FDA00001811842500025
Figure FDA00001811842500026
,其中:R表示视频传输信道的带宽;Δt表示编解码时延之和,即发送时延与解码时延之和;k为时刻参数;Bd表示解码端缓存装置的最大容量;Be表示编码端缓存装置的最大容量。
8.如权利要求6所述的视频编码码率控制系统,其特征在于,在VBR情况下,所述码率控制装置按照下式对视频编码的目标比特数进行约束:
LowerBound≤Ei≤UpperBound,LowerBound表示码率下界,UpperBound表示码率上界,并且
Figure FDA00001811842500027
Figure FDA00001811842500028
,其中:Δt表示编解码端的时延之和;k为时刻参数;Bd表示解码端缓存装置的最大容量;Be表示编码端缓存装置的最大容量。
9.一种视频编码码率控制方法,用于控制编码端和解码端进行视频数据传输时的编码码率,所述编码端通过视频传输信道与所述解码端相连接,编码端包括编码端缓存装置,解码端包括解码端缓存装置,其特征在于,该方法包括如下步骤: 
模拟所述解码端缓存装置在每一时刻的缓存状态;以及
根据所述编码端缓存装置的缓存状态和模拟的解码端缓存装置的缓存状态,控制视频编码的编码码率。
10.如权利要求9所述的视频编码码率控制方法,其特征在于,所述模拟所述解码端缓存装置在每一时刻的缓存状态的步骤为:估算所述解码端缓存装置的满度;
所述控制视频编码的编码码率的步骤为:根据所述编码端缓存装置的满度和所估算的解码端缓存装置的满度对视频编码的目标比特数进行约束。
11.如权利要求10所述的视频编码码率控制方法,其特征在于,当所述编码端缓存装置的满度大于或等于满度阈值,或者当所述编码端的时延大于或等于时延阈值,编码端开始向解码端传输编码视频;当所述解码端缓存装置的满度大于或等于满度阈值,或者当所述解码端的时延大于或等于时延阈值,解码端开始解码视频。
12.如权利要求11所述的视频编码码率控制方法,其特征在于,所述编码端缓存装置的满度阈值、解码端缓存装置的满度阈值是相同的或者分别独立设定的;同样,所述编码端缓存装置的时延阈值、解码端缓存装置的时延阈值也是相同的或者分别独立设定的。
13.如权利要求12所述的视频编码码率控制方法,其特征在于,
所述估算所述解码端缓存装置的满度的步骤是根据下式进行估算:
Figure FDA00001811842500031
其中:
Figure FDA00001811842500032
表示第i时刻解码端缓存装置的满度; 
Figure FDA00001811842500033
表示第i+1时刻解码端缓存装置的满度;Di表示第i时刻解码的比特数;Ri表示解码端接收的码率;f表示帧率, 
Figure FDA00001811842500034
表示相邻两帧之间的时间间隔;所述的第i时刻表示编码第i帧的时刻。
14.如权利要求13所述的视频编码码率控制方法,其特征在于,
所述方法还包括根据下式计算所述编码端缓存装置的满度:
Figure FDA00001811842500035
其中: 
Figure FDA00001811842500041
表示第i时刻编码端缓存装置的满度; 
Figure FDA00001811842500042
表示第i+1时刻编码端缓存装置的满度;Ei表示第i时刻编码的比特数;Si表示编码端发送的码率。
15.如权利要求14所述的视频编码码率控制方法,其特征在于,
在CBR情况下,所述按照所述编码端缓存装置的满度和估算的解码端缓存装置的满度对视频编码的目标比特数进行约束的步骤为根据下式对视频编码的目标比特数进行约束:
LowerBound≤Ei≤UpperBound,LowerBound表示码率下界,UpperBound表示码率上界,并且
Figure FDA00001811842500044
,其中:R表示视频传输信道的带宽;Δt表示编解码时延之和,即发送时延和解码时延之和;k为时刻参数;Bd表示解码端缓存装置的最大容量;Be表示编码端缓存装置的最大容量。
16.如权利要求14所述的视频编码码率控制方法,其特征在于,
在VBR情况下,所述按照所述编码端缓存装置的满度和估算的解码端缓存装置的满度对视频编码的目标比特数进行约束的步骤为根据下式对视频编码的目标比特数进行约束:
LowerBound≤Ei≤UpperBound,LowerBound表示码率下界,UpperBound表示码率上界,并且
Figure FDA00001811842500045
,其中:Δt表示表示编解码时延之和,即发送时延和解码时延之和;k为时刻参数;Bd表示解码端缓存装置的最大容量;Be表示编码端缓存装置的最大容量。 
CN201210213441.0A 2012-06-26 2012-06-26 基于编解码端缓存的视频编码码率控制系统和方法 Active CN102761741B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210213441.0A CN102761741B (zh) 2012-06-26 2012-06-26 基于编解码端缓存的视频编码码率控制系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210213441.0A CN102761741B (zh) 2012-06-26 2012-06-26 基于编解码端缓存的视频编码码率控制系统和方法

Publications (2)

Publication Number Publication Date
CN102761741A true CN102761741A (zh) 2012-10-31
CN102761741B CN102761741B (zh) 2014-04-02

Family

ID=47056045

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210213441.0A Active CN102761741B (zh) 2012-06-26 2012-06-26 基于编解码端缓存的视频编码码率控制系统和方法

Country Status (1)

Country Link
CN (1) CN102761741B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103475934A (zh) * 2013-09-13 2013-12-25 北京世纪鼎点软件有限公司 一种面向网络直播的视频编码流控方法
CN103929654A (zh) * 2013-01-11 2014-07-16 浙江大华技术股份有限公司 一种图像数据处理方法及装置
CN105227956A (zh) * 2015-10-30 2016-01-06 深圳云聚汇数码有限公司 移动网络环境中视频编码码率自适应装置及方法
CN105227957A (zh) * 2015-10-30 2016-01-06 深圳云聚汇数码有限公司 移动网络环境中视频编码码率控制装置、方法及系统
CN106331705A (zh) * 2016-09-05 2017-01-11 电子科技大学 一种新的hevc码率控制gop级比特分配方法
CN106331835A (zh) * 2015-06-26 2017-01-11 成都鼎桥通信技术有限公司 一种动态调整数据接收缓存的方法及视频解码设备
CN106534884A (zh) * 2016-11-10 2017-03-22 中广热点云科技有限公司 一种视频编码中码率控制方法及系统
CN107071529A (zh) * 2017-03-29 2017-08-18 咪咕视讯科技有限公司 一种hls视频播放方法、终端及服务器
CN111225268A (zh) * 2019-12-03 2020-06-02 深圳市道通智能航空技术有限公司 一种视频数据的传输方法及终端
CN111918142A (zh) * 2020-07-29 2020-11-10 杭州叙简科技股份有限公司 国标视频码流转rtp流的平顺方法、装置、设备及介质
CN111954007A (zh) * 2020-07-14 2020-11-17 烽火通信科技股份有限公司 Udp直播中vbr视频快速平滑发送方法与装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5534937A (en) * 1994-04-14 1996-07-09 Motorola, Inc. Minimum-delay jitter smoothing device and method for packet video communications
CN1146264A (zh) * 1995-02-23 1997-03-26 摩托罗拉公司 防止视频压缩系统解码器缓存器上下溢的方法、速率控制器和系统
CN1787422A (zh) * 2004-12-10 2006-06-14 微软公司 用于控制流媒体数据的编码比特率的系统和过程
CN1787640A (zh) * 2004-12-06 2006-06-14 诺基亚有限公司 视频编码、译码和假想参考译码器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5534937A (en) * 1994-04-14 1996-07-09 Motorola, Inc. Minimum-delay jitter smoothing device and method for packet video communications
CN1146264A (zh) * 1995-02-23 1997-03-26 摩托罗拉公司 防止视频压缩系统解码器缓存器上下溢的方法、速率控制器和系统
CN1787640A (zh) * 2004-12-06 2006-06-14 诺基亚有限公司 视频编码、译码和假想参考译码器
CN1787422A (zh) * 2004-12-10 2006-06-14 微软公司 用于控制流媒体数据的编码比特率的系统和过程

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103929654B (zh) * 2013-01-11 2017-09-12 浙江大华技术股份有限公司 一种图像数据处理方法及装置
CN103929654A (zh) * 2013-01-11 2014-07-16 浙江大华技术股份有限公司 一种图像数据处理方法及装置
CN103475934A (zh) * 2013-09-13 2013-12-25 北京世纪鼎点软件有限公司 一种面向网络直播的视频编码流控方法
CN106331835A (zh) * 2015-06-26 2017-01-11 成都鼎桥通信技术有限公司 一种动态调整数据接收缓存的方法及视频解码设备
CN106331835B (zh) * 2015-06-26 2019-06-07 成都鼎桥通信技术有限公司 一种动态调整数据接收缓存的方法及视频解码设备
CN105227956A (zh) * 2015-10-30 2016-01-06 深圳云聚汇数码有限公司 移动网络环境中视频编码码率自适应装置及方法
CN105227957A (zh) * 2015-10-30 2016-01-06 深圳云聚汇数码有限公司 移动网络环境中视频编码码率控制装置、方法及系统
CN106331705A (zh) * 2016-09-05 2017-01-11 电子科技大学 一种新的hevc码率控制gop级比特分配方法
CN106331705B (zh) * 2016-09-05 2018-12-18 电子科技大学 一种新的hevc码率控制gop级比特分配方法
CN106534884B (zh) * 2016-11-10 2019-03-15 中广热点云科技有限公司 一种视频编码中码率控制方法及系统
CN106534884A (zh) * 2016-11-10 2017-03-22 中广热点云科技有限公司 一种视频编码中码率控制方法及系统
CN107071529A (zh) * 2017-03-29 2017-08-18 咪咕视讯科技有限公司 一种hls视频播放方法、终端及服务器
CN111225268A (zh) * 2019-12-03 2020-06-02 深圳市道通智能航空技术有限公司 一种视频数据的传输方法及终端
CN111954007A (zh) * 2020-07-14 2020-11-17 烽火通信科技股份有限公司 Udp直播中vbr视频快速平滑发送方法与装置
CN111918142A (zh) * 2020-07-29 2020-11-10 杭州叙简科技股份有限公司 国标视频码流转rtp流的平顺方法、装置、设备及介质
CN111918142B (zh) * 2020-07-29 2023-04-11 杭州叙简科技股份有限公司 国标视频码流转rtp流的平顺方法、装置、设备及介质

Also Published As

Publication number Publication date
CN102761741B (zh) 2014-04-02

Similar Documents

Publication Publication Date Title
CN102761741B (zh) 基于编解码端缓存的视频编码码率控制系统和方法
KR101418950B1 (ko) 비디오 코딩 표준에 대한 개선된 비디오율 제어
CA2185704C (en) Method, rate controller, and system for preventing overflow and underflow of a decoder buffer
US8817887B2 (en) Apparatus and method for splicing encoded streams
CN101606389B (zh) 用于视频流拼接的方法及装置
TW525387B (en) Frame-level rate control for plug-in video codecs
US9025664B2 (en) Moving image encoding apparatus, moving image encoding method, and moving image encoding computer program
CN100425077C (zh) 采用帧目标比特数不平均分配的视频压缩码率控制方法
CN105376568B (zh) 一种abr视频编码码率控制的优化方法
CN101795415B (zh) 一种视频编码中的码率控制方法及其装置
MXPA02010833A (es) Multiplexor y remultiplexor estadistico que comoda cambios en la estructura de un grupo de peliculas.
CN103402099A (zh) 视频编码的图片级速率控制
ITTO20090486A1 (it) Controllore dinamico della velocita' di trasmissione indipendente dal gruppo di immagini
CN102868883B (zh) 一种视频编码的码率控制方法
CN102217309A (zh) 使用hrd信息共享和比特分配等待的多线程视频编码
CN102932641A (zh) 一种恒定质量码率控制方法
CN105681793A (zh) 基于视频内容复杂度自适应的极低延迟高性能视频编码帧内码率控制方法
CN101110957A (zh) 金字塔式双向预测模式的视频恒定质量控制方法
CN100448295C (zh) 一种低复杂度的积分码率控制方法
CN103517080A (zh) 实时视频流编码器和实时视频流编码方法
CN102724507B (zh) 一种gpu加速编码器码率控制方法
JP2004320707A (ja) ビデオ情報複数同時符号化装置
WO2000046997A9 (en) Video rate-buffer management scheme for mpeg transcoder
Yu et al. New rate control algorithm for MPEG-4 video coding
CN101854524A (zh) 甚低码率视频编码器码率控制方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant