一种视频实时编码的VBR码率控制方法与流程

文档序号:30350657发布日期:2022-06-08 11:43阅读:771来源:国知局
一种视频实时编码的VBR码率控制方法与流程
一种视频实时编码的vbr码率控制方法
技术领域
1.本发明涉及图像识别技术领域,特别涉及一种视频实时编码的vbr码率控制方法。


背景技术:

2.目前应用于视频实时编码的vbr方法均采用在简单场景分配较少的目标码率,复杂场景分配较大的目标码率,以达到维持视频图像编码质量稳定的目的。现有vbr优化方法都是基于图像内容和运动状态的,通过对一段时间内的图像复杂度信息进行分析,将其作为计算目标码率的一个影响因子,实现不同复杂度下分配不同的目标码率。
3.现有技术的缺陷包括:
4.现有vbr控制技术中仍采用精确的目标码率进行控制,当瞬时码率在目标码率上下波动时易引起qp的振荡,不利于维持图像质量的稳定。而对于不同复杂度和运动强度的场景没有一个合适的分配策略,当视频图像发生场景变化时,易出现实际码率过大或过小的现象。
5.现有技术中常用的技术术语包括:
6.视频编码就是通过压缩技术,将原始视频格式的文件转换成另一种便于传输和存储的视频格式文件的方式。
7.码率就是数据传输时单位时间传送的数据位数,单位时间内传输的位数越大,精度就越高,处理出来的文件就越接近原始文件。
8.码率控制就是在满足信道带宽和传输时延限制的情况下有效传输视频数据,保证视频业务的播放质量,需要对视频编码过程进行码率控制。vbr(variable bit rate)变码率控制,允许其编码码率随着图像复杂程度的变化而波动,以保证编码图像质量平稳。方法根据场景图像内容分配目标比特率,图像内容比较简单则分配较少的码率,图像内容复杂则分配较多的码率,既要保证图像质量,又要兼顾带宽限制。
9.图像组gop表示两个相邻编码i帧间隔的帧数,一般设置为帧率fps的倍数。
10.gops表示gop的倍数。
11.ippp编码结构表示每个gop只有一个i帧,其他全为p帧。实时编码时每个p帧只参考前一帧已编码图像。
12.量化参数qp是视频编码中非常重要的参数,直接影响着视频的编码比特率和图像失真。码率控制通过控制量化参数qp使得编码速率尽量接近目标码率。


技术实现要素:

13.为了解决上述问题,本发明的目的在于:减少因瞬时码率正常波动而引起的qp振荡,更好的维持图像质量的稳定。保证在码率可控的前提下质量的稳定,减少码流的浪费。
14.具体地,本发明提供一种视频实时编码的vbr码率控制方法,所述方法中的vbr方法应用于视频实时编码的ippp结构,采用分级策略依次为不同编码单元分配目标码率;所述分级策略分为gops级、gop级、图像级;根据用户对码率波动的容忍度为当前gop目标码率
设定其允许波动的上下限,将瞬时估计码率与目标码率允许波动的上下限进行比较,来决定如何调整qp以减少qp的不必要波动;根据场景变化对码率的影响程度及场景变化位置,计算一个新的码率波动上下限,并指导qp的调整;当视频图像发生场景变化时,通过估计的瞬时码率和分配的目标码率波动上下限进行加权求和,得到一个新码率控制上下限,其中加权的比重和当前帧在gop中的位置相关,越靠近i帧的控制强度越大,越远离i帧的控制强度越弱。
15.在所述gops级设置编码允许的最大码率;
16.在所述gop级依据图像特征分析算法获取的图像复杂度和运动强度信息分配目标码率,允许在gops统计时间内编码码率波动,从而保证编码图像质量平稳;
17.在图像级对于瞬时估计码率波动在用户容忍范围内的情况下,不调整qp;当瞬时估计码率超出容忍范围时,根据场景变化对码率的影响程度及场景变化位置,计算一个新的码率波动上下限,并指导qp的调整。
18.所述方法包括以下步骤:
19.s1,设置控制参数:为用户提供可设置的最大码率max
br
、最大静止码率maxstill
br
、最小码率min
br
、码率波动容忍度fluctlvl、qp的最大值max
qp
和最小值min
qp
、gops统计时间t
stat
;其中,
20.最大码率用来保证编码码率的正常传输和存储;
21.最小码率用来控制编码的最差质量;
22.最大静止码率用来控制静止场景对码率的不必要浪费;
23.码率波动容忍度用来计算客户对瞬时码率在目标码率上下允许波动的范围;
24.qp最大最小值用来控制图像的质量范围;
25.gops统计时间越长,允许的瞬时码率波动越大,否则允许的瞬时码率波动越小;
26.s2,gops级目标码率分配和gop级目标码率分配;
27.s2.1,gops级目标码率分配:
28.对于所述的vbr方法来说,只为gops级设定最大码率,指导该统计时间内的实际编码的平均码率不超出该最大值,保证码率传输和存储:gops
br
=max
br

29.s2.2,gop级目标码率分配:
30.gop级目标码率要受到gops级的剩余最大码率maxrem
br
、视频图像复杂度cplx、运动强度motionstrength的限制;gop级目标码率的分配随图像复杂度、运动强度增加而增加,以保证在场景变换后依然平稳的视频质量:
31.s3,帧级码流分配:
32.对于ippp结构的实时视频编码来说,当前帧与前一帧的依赖关系最大,图像相似度也最大,可以将最后已编码帧的码流值作为gop剩余未编码帧的码流估计值,从而得到当前的瞬时估计码率est
br
;其中,gopenc
bits
表示当前gop已经编码的bits,lastfrm
bits
表示当前帧前一已编码帧的编码码流值,n
enc
表示gop以编码帧数,n
left
表示gop未编码帧数,n
ttl
表示gop总的编码帧数,n
fps
表示编码帧率:
[0033][0034]
将est
br
与max
br
、min
br
比较,计算newmax
br
和newmin
br

[0035][0036][0037]
为当前帧分配目标码流tgtfrm
bits

[0038][0039]
s4,图像级p帧qp的计算:
[0040]
设定瞬时码率允许波动上限up_ratio
br
[5]={1.05,1.25,1.875,2.5,3.125};
[0041]
设定瞬时码率允许波动下限dw_ratio
br
[5]={1.05,1.25,1.875,2.5,3.125};
[0042]
1)对于稳定场景,将est
br
与max
br
、min
br
比较,判断当前帧qp的调整方向和偏移量;
[0043]
当est
br
》max
br
时,ratio
br
=est
br
/max
br
,获取ratio
br
在up_ratio
br
[5]所属的区间索引号upidx;
[0044]
当est
br
《min
br
时,ratio
br
=min
br
/est
br
,获取ratio
br
在dw_ratio
br
[5]所属的区间索引号dwidx;
[0045][0046]
2)对于不稳定场景,根据est
br
和max
br
、min
br
获取当前的newmax
br
和newmin
br

[0047]
当est
br
》newmax
br
时,ratio
br
=est
br
/newmax
br
,获取ratio
br
在up_ratio
br
[5]所属的区间索引号upidx;
[0048]
当est
br
《newmin
br
时,ratio
br
=newmin
br
/est
br
,获取ratio
br
在dw_ratio
br
[5]所属的区间索引号dwidx;
[0049][0050]
则当前待编码p帧qp为lastfrm
qp
+qp
ofst

[0051]
s5,编码信息统计:编码完一帧后或一个gop后更新相关统计信息,为下一帧或下
一个gop编码做准备。
[0052]
所述s2.2进一步包括:
[0053]
s2.2.1,依据场景复杂度分配码率;
[0054]
s2.2.2,依据场景运动强度分配码率;
[0055]
s2.2.3,根据用户对码率波动的容忍度fluctlvl,确定gop级码率波动上下限:
[0056]
设定波动上限upfluct
br
[6]={0,10,15,25,40,50};
[0057]
设定波动下限dwfluct
br
[6]={0,3,5,10,15,20};
[0058]
max
br
=gop
br
·
(100+upfluct
br
[fluctlvl])/100;
[0059]
min
br
=gop
br
·
(100-dwfluct
br
[fluctlvl])/100;
[0060]
对目标码率上下限进行限制:
[0061][0062][0063]
所述s2.2.1,依据场景复杂度分配码率:
[0064]
根据图像特征分析获取当前帧的复杂度;由静止场景的编码特点可知,gop级的编码码率集中在i帧,i帧图像内容复杂度越大,gop级码率越大,将最小码率到最大静止码率的范围分为6个区间,由小到大依次标号为0~5,将视频图像复杂度与阈值cplxthrd[5]比较,判断其所在区间的标号cplxidx,通过查表cplxratio[cplxidx]得到码率偏移比率;那么gop级在该图像复杂度下的静止目标码率计算方法如下:
[0065]
设定cplxthrd[5]={20,50,80,110,150}
[0066]
设定cplxratio[6]={0,0.15,0.45,0.65,0.8,1.0}
[0067]
cplx
br
=min
br
+(maxstill
br-min
br
)
·
cplxratio[cplxidx]。
[0068]
所述s2.2.2,依据场景运动强度分配码率:
[0069]
根据图像特征分析获取当前帧的视频图像运动强度;由运动场景的编码特点可知,gop级的编码码率中p帧占比随着运动强度的增加逐渐增大;因此将该复杂度下的静止码率到最大允许码率的范围分为6个区间,由小到大依次标号为0~5,将当前场景下的运动强度与阈值motionthrd[5]比较,判断其所在区间的标号motionidx,通过查表motionratio[motionidx]得到码率偏移比率;那么gop级在该场景运动强度下的目标码率计算方法如下:
[0070]
设定motionthrd[5]={10,30,50,75,90}
[0071]
设定motionratio[6]={0,0.15,0.35,0.5,0.85,1.0}
[0072]
gop
br
=cplx
br
+(max
br-cplx
br
)
·
motionratio[motionidx]
[0073]
对gop级目标码率进行限制,避免gops级码率不可控:
[0074][0075]
综上,应用本技术方法能够实现的优势在于:本发明通过码率波动容忍度,将瞬时估计码率与目标码率允许波动的上下限进行比较,而不是和目标码率作比较,来决定如何
调整qp以减少qp的不必要波动,从而减少因瞬时码率正常波动而引起的qp振荡,更好的维持图像质量的稳定。保证在码率可控的前提下质量的稳定,减少码流的浪费。本发明方法根据场景切换位置的不同,调整qpofst强度不同,保证码率的可控,通过多帧的调整时图像质量平稳切换。相比于过调整和欠调整,本发明优化方法在码率和图像质量之间取得了一个比较合理的折中。
附图说明
[0076]
此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,并不构成对本发明的限定。
[0077]
图1是gop级分配码率随图像信息变化趋势的示意图。
[0078]
图2是场景切换时各种码率调整结果对比的示意图。
[0079]
图3是本发明方法的流程示意图。
具体实施方式
[0080]
为了能够更清楚地理解本发明的技术内容及优点,现结合附图对本发明进行进一步的详细说明。
[0081]
1.vbr方法描述
[0082]
本发明中的vbr方法应用于视频实时编码的ippp结构,采用分级策略,即gops级(多个图像组)、gop级(一个图像组)、图像级(一帧图像)依次为不同编码单元分配目标码率。在gops级设置编码允许的最大码率,以保证数据的有效传输和存储。在gop级依据图像特征分析算法获取的图像复杂度和运动强度信息分配目标码率,允许在gops统计时间内编码码率波动,从而保证编码图像质量平稳。在图像级对于瞬时估计码率波动在用户容忍范围内的情况下,不调整qp;当瞬时估计码率超出容忍范围时,根据场景变化对码率的影响程度及场景变化位置,计算一个新的码率波动上下限,并指导qp的调整。
[0083]
本发明中的vbr方法为用户提供可设置的最大码率max
br
、最大静止码率maxstill
br
、最小码率min
br
、码率波动容忍度fluctlvl、qp的最大值max
qp
和最小值min
qp
、gops统计时间t
stat
等控制参数。其中,
[0084]
最大码率用来保证编码码率的正常传输和存储;
[0085]
最小码率用来控制编码的最差质量;
[0086]
最大静止码率用来控制静止场景对码率的不必要浪费;
[0087]
码率波动容忍度用来计算客户对瞬时码率在目标码率上下允许波动的范围;
[0088]
qp最大最小值用来控制图像的质量范围;
[0089]
gops统计时间越长,允许的瞬时码率波动越大,否则允许的瞬时码率波动越小。
[0090]
图像级目标码率控制主要包括gops和gop级码率分配、帧级码流分配、图像级qp计算、编码信息统计等内容。
[0091]
2.码率分配
[0092]
1)gops级目标码率分配
[0093]
对于vbr方法来说,只为gops级设定最大码率,指导该统计时间内的实际编码的平均码率不超出该最大值,保证码率传输和存储。
[0094]
gops
br
=max
br
[0095]
2)gop级目标码率分配
[0096]
gop级目标码率要受到gops级的剩余最大码率maxrem
br
、视频图像复杂度cplx、运动强度motionstrength的限制。gop级目标码率的分配随图像复杂度、运动强度增加而增加,以保证在场景变换后依然平稳的视频质量。
[0097]
(1)依据场景复杂度分配码率
[0098]
根据图像特征分析获取当前帧的复杂度。由静止场景的编码特点可知,gop级的编码码率主要集中在i帧,i帧图像内容复杂度越大,gop级码率越大。将最小码率到最大静止码率的范围分为6个区间,由小到大依次标号为0~5,将视频图像复杂度与阈值cplxthrd[5]比较,判断其所在区间的标号cplxidx,通过查表cplxratio[cplxidx]得到码率偏移比率。那么gop级在该图像复杂度下的静止目标码率计算方法如下:
[0099]
设定cplxthrd[5]={20,50,80,110,150}
[0100]
设定cplxratio[6]={0,0.15,0.45,0.65,0.8,1.0}
[0101]
cplx
br
=min
br
+(maxstill
br-min
br
)
·
cplxratio[cplxidx]
[0102]
(2)依据场景运动强度分配码率
[0103]
根据图像特征分析获取当前帧的视频图像运动强度。由运动场景的编码特点可知,gop级的编码码率中p帧占比随着运动强度的增加逐渐增大。因此将该复杂度下的静止码率到最大允许码率的范围分为6个区间,由小到大依次标号为0~5,将当前场景下的运动强度与阈值motionthrd[5]比较,判断其所在区间的标号motionidx,通过查表motionratio[motionidx]得到码率偏移比率。那么gop级在该场景运动强度下的目标码率计算方法如下:
[0104]
设定motionthrd[5]={10,30,50,75,90}
[0105]
设定motionratio[6]={0,0.15,0.35,0.5,0.85,1.0}
[0106]
gop
br
=cplx
br
+(max
br-cplx
br
)
·
motionratio[motionidx]
[0107]
对gop级目标码率进行限制,避免gops级码率不可控。
[0108][0109]
如图1显示了目标码率随图像复杂度和场景运动强度的变化范围和趋势。
[0110]
(3)根据用户对码率波动的容忍度fluctlvl,确定gop级码率波动上下限。
[0111]
设定波动上限upfluct
br
[6]={0,10,15,25,40,50}
[0112]
设定波动下限dwfluct
br
[6]={0,3,5,10,15,20}
[0113]
max
br
=gop
br
·
(100+upfluct
br
[fluctlvl])/100
[0114]
min
br
=gop
br
·
(100-dwfluct
br
[fluctlvl])/100
[0115]
对目标码率上下限进行限制。
[0116][0117]
[0118]
3)帧级的码流分配
[0119]
对于ippp结构的实时视频编码来说,当前帧与前一帧的依赖关系最大,图像相似度也最大。可以将最后已编码帧的码流值作为gop剩余未编码帧的码流估计值,从而得到当前的瞬时估计码率。其中,gopenc
bits
表示当前gop已经编码的bits,lastfrm
bits
表示当前帧前一已编码帧的编码码流值,n
enc
表示gop以编码帧数,n
left
表示gop未编码帧数,n
ttl
表示gop总的编码帧数,n
fps
表示编码帧率。
[0120][0121]
将est
br
与max
br
、min
br
比较,计算newmax
br
和newmin
br

[0122][0123][0124]
为当前帧分配目标码流tgtfrm
bits

[0125][0126]
下面图2中显示了gop内某一p帧处出现场景切换时,各种码率调整的结果对比,本发明算法根据场景切换位置的不同,调整qp
ofst
强度不同,保证码率的可控,通过多帧的调整时图像质量平稳切换。相比于过调整和欠调整,本发明优化算法在码率和图像质量之间取得了一个比较合理的折中。
[0127]
其中,在gop中某一p帧出发生场景切换时,深灰色代表码率欠调整,白色代表码率过调整,浅灰色代表优化后的码率。
[0128]
3.帧级p帧qp的计算
[0129]
设定up_ratio
br
[5]={1.05,1.25,1.875,2.5,3.125}
[0130]
设定dw_ratio
br
[5]={1.05,1.25,1.875,2.5,3.125}
[0131]
1)对于稳定场景,将est
br
与max
br
、min
br
比较,判断当前帧qp的调整方向和偏移量。
[0132]
当est
br
》max
br
时,ratio
br
=est
br
/max
br
,获取ratio
br
在up_ratio
br
[5]所属的区间索引号upidx;
[0133]
当est
br
《min
br
时,ratio
br
=min
br
/est
br
,获取ratio
br
在dw_ratio
br
[5]所属的区间索引号dwidx;
[0134][0135]
2)对于不稳定场景,根据est
br
和max
br
、min
br
获取当前的newmax
br
和newmin
br
[0136]
当est
br
》newmax
br
时,ratio
br
=est
br
/newmax
br
,获取ratio
br
在up_ratio
br
[5]所属的区间索引号upidx;
[0137]
当est
br
《newmin
br
时,ratio
br
=newmin
br
/est
br
,获取ratio
br
在dw_ratio
br
[5]所属的区间索引号dwidx;
[0138][0139]
则当前待编码p帧qp为lastfrm
qp
+qp
ofst
[0140]
4.编码完一帧后或一个gop后更新相关统计信息,为下一帧或下一个gop编码做准备。
[0141]
系统地可以描述为以下,如图3所示,本发明涉及的所述方法包括以下步骤:
[0142]
s1,设置控制参数:为用户提供可设置的最大码率max
br
、最大静止码率maxstill
br
、最小码率min
br
、码率波动容忍度fluctlvl、qp的最大值max
qp
和最小值min
qp
、gops统计时间t
stat
;其中,
[0143]
最大码率用来保证编码码率的正常传输和存储;
[0144]
最小码率用来控制编码的最差质量;
[0145]
最大静止码率用来控制静止场景对码率的不必要浪费;
[0146]
码率波动容忍度用来计算客户对瞬时码率在目标码率上下允许波动的范围;
[0147]
qp最大最小值用来控制图像的质量范围;
[0148]
gops统计时间越长,允许的瞬时码率波动越大,否则允许的瞬时码率波动越小;
[0149]
s2,gops级目标码率分配和gop级目标码率分配;
[0150]
s2.1,gops级目标码率分配:
[0151]
对于所述的vbr方法来说,只为gops级设定最大码率,指导该统计时间内的实际编码的平均码率不超出该最大值,保证码率传输和存储:gops
br
=max
br

[0152]
s2.2,gop级目标码率分配:
[0153]
gop级目标码率要受到gops级的剩余最大码率maxrem
br
、视频图像复杂度cplx、运动强度motionstrength的限制;gop级目标码率的分配随图像复杂度、运动强度增加而增加,以保证在场景变换后依然平稳的视频质量:
[0154]
s3,帧级码流分配:
[0155]
对于ippp结构的实时视频编码来说,当前帧与前一帧的依赖关系最大,图像相似度也最大,可以将最后已编码帧的码流值作为gop剩余未编码帧的码流估计值,从而得到当前的瞬时估计码率est
br
;其中,gopenc
bits
表示当前gop已经编码的bits,lastfrm
bits
表示当
前帧前一已编码帧的编码码流值,n
enc
表示gop以编码帧数,n
left
表示gop未编码帧数,n
ttl
表示gop总的编码帧数,n
fps
表示编码帧率:
[0156][0157]
将est
br
与max
br
、min
br
比较,计算newmax
br
和newmin
br

[0158][0159][0160]
为当前帧分配目标码流tgtfrm
bits

[0161][0162]
s4,图像级p帧qp的计算:
[0163]
设定瞬时码率允许波动上限up_ratio
br
[5]={1.05,1.25,1.875,2.5,3.125};
[0164]
设定瞬时码率允许波动下限dw_ratio
br
[5]={1.05,1.25,1.875,2.5,3.125};
[0165]
1)对于稳定场景,将est
br
与max
br
、min
br
比较,判断当前帧qp的调整方向和偏移量;
[0166]
当est
br
》max
br
时,ratio
br
=est
br
/max
br
,获取ratio
br
在up_ratio
br
[5]所属的区间索引号upidx;
[0167]
当est
br
《min
br
时,ratio
br
=min
br
/est
br
,获取ratio
br
在dw_ratio
br
[5]所属的区间索引号dwidx;
[0168][0169]
2)对于不稳定场景,根据est
br
和max
br
、min
br
获取当前的newmax
br
和newmin
br

[0170]
当est
br
》newmax
br
时,ratio
br
=est
br
/newmax
br
,获取ratio
br
在up_ratio
br
[5]所属的区间索引号upidx;
[0171]
当est
br
《newmin
br
时,ratio
br
=newmin
br
/est
br
,获取ratio
br
在dw_ratio
br
[5]所属的区间索引号dwidx;
[0172][0173]
则当前待编码p帧qp为lastfrm
qp
+qp
ofst

[0174]
s5,编码信息统计:编码完一帧后或一个gop后更新相关统计信息,为下一帧或下一个gop编码做准备。
[0175]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1