CN114598866B - 一种视频实时编码的vbr码率控制方法 - Google Patents
一种视频实时编码的vbr码率控制方法 Download PDFInfo
- Publication number
- CN114598866B CN114598866B CN202011411932.7A CN202011411932A CN114598866B CN 114598866 B CN114598866 B CN 114598866B CN 202011411932 A CN202011411932 A CN 202011411932A CN 114598866 B CN114598866 B CN 114598866B
- Authority
- CN
- China
- Prior art keywords
- code rate
- gop
- frame
- level
- fluctuation
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 102100037812 Medium-wave-sensitive opsin 1 Human genes 0.000 claims abstract description 122
- 230000008859 change Effects 0.000 claims abstract description 13
- NUHSROFQTUXZQQ-UHFFFAOYSA-N isopentenyl diphosphate Chemical group CC(=C)CCO[P@](O)(=O)OP(O)(O)=O NUHSROFQTUXZQQ-UHFFFAOYSA-N 0.000 claims abstract description 9
- 230000003068 static effect Effects 0.000 claims description 21
- 230000005540 biological transmission Effects 0.000 claims description 11
- 238000004458 analytical method Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 9
- 238000003860 storage Methods 0.000 claims description 9
- 239000002699 waste material Substances 0.000 claims description 6
- 238000002360 preparation method Methods 0.000 claims description 4
- 230000009466 transformation Effects 0.000 claims description 4
- 238000005457 optimization Methods 0.000 description 3
- 230000010355 oscillation Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/114—Adapting the group of pictures [GOP] structure, e.g. number of B-frames between two anchor frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供一种视频实时编码的VBR码率控制方法,应用于视频实时编码的IPPP结构,采用分级策略依次为不同编码单元分配目标码率;所述分级策略分为GOPs级、GOP级、图像级;根据用户对码率波动的容忍度为当前GOP目标码率设定其允许波动的上下限,将瞬时估计码率与目标码率允许波动的上下限进行比较,来决定如何调整QP以减少QP的不必要波动;根据场景变化对码率的影响程度及场景变化位置,计算一个新的码率波动上下限,并指导QP的调整;当视频图像发生场景变化时,通过估计的瞬时码率和分配的目标码率波动上下限进行加权求和,得到一个新码率控制上下限,其中加权的比重和当前帧在GOP中的位置相关,越靠近I帧的控制强度越大,越远离I帧的控制强度越弱。
Description
技术领域
本发明涉及图像识别技术领域,特别涉及一种视频实时编码的VBR码率控制方法。
背景技术
目前应用于视频实时编码的VBR方法均采用在简单场景分配较少的目标码率,复杂场景分配较大的目标码率,以达到维持视频图像编码质量稳定的目的。现有VBR优化方法都是基于图像内容和运动状态的,通过对一段时间内的图像复杂度信息进行分析,将其作为计算目标码率的一个影响因子,实现不同复杂度下分配不同的目标码率。
现有技术的缺陷包括:
现有VBR控制技术中仍采用精确的目标码率进行控制,当瞬时码率在目标码率上下波动时易引起QP的振荡,不利于维持图像质量的稳定。而对于不同复杂度和运动强度的场景没有一个合适的分配策略,当视频图像发生场景变化时,易出现实际码率过大或过小的现象。
现有技术中常用的技术术语包括:
视频编码就是通过压缩技术,将原始视频格式的文件转换成另一种便于传输和存储的视频格式文件的方式。
码率就是数据传输时单位时间传送的数据位数,单位时间内传输的位数越大,精度就越高,处理出来的文件就越接近原始文件。
码率控制就是在满足信道带宽和传输时延限制的情况下有效传输视频数据,保证视频业务的播放质量,需要对视频编码过程进行码率控制。VBR(Variable Bit Rate)变码率控制,允许其编码码率随着图像复杂程度的变化而波动,以保证编码图像质量平稳。方法根据场景图像内容分配目标比特率,图像内容比较简单则分配较少的码率,图像内容复杂则分配较多的码率,既要保证图像质量,又要兼顾带宽限制。
图像组GOP表示两个相邻编码I帧间隔的帧数,一般设置为帧率fps的倍数。
GOPs表示GOP的倍数。
IPPP编码结构表示每个GOP只有一个I帧,其他全为P帧。实时编码时每个P帧只参考前一帧已编码图像。
量化参数QP是视频编码中非常重要的参数,直接影响着视频的编码比特率和图像失真。码率控制通过控制量化参数QP使得编码速率尽量接近目标码率。
发明内容
为了解决上述问题,本发明的目的在于:减少因瞬时码率正常波动而引起的QP振荡,更好的维持图像质量的稳定。保证在码率可控的前提下质量的稳定,减少码流的浪费。
具体地,本发明提供一种视频实时编码的VBR码率控制方法,所述方法中的VBR方法应用于视频实时编码的IPPP结构,采用分级策略依次为不同编码单元分配目标码率;所述分级策略分为GOPs级、GOP级、图像级;根据用户对码率波动的容忍度为当前GOP目标码率设定其允许波动的上下限,将瞬时估计码率与目标码率允许波动的上下限进行比较,来决定如何调整QP以减少QP的不必要波动;根据场景变化对码率的影响程度及场景变化位置,计算一个新的码率波动上下限,并指导QP的调整;当视频图像发生场景变化时,通过估计的瞬时码率和分配的目标码率波动上下限进行加权求和,得到一个新码率控制上下限,其中加权的比重和当前帧在GOP中的位置相关,越靠近I帧的控制强度越大,越远离I帧的控制强度越弱。
在所述GOPs级设置编码允许的最大码率;
在所述GOP级依据图像特征分析算法获取的图像复杂度和运动强度信息分配目标码率,允许在GOPs统计时间内编码码率波动,从而保证编码图像质量平稳;
在图像级对于瞬时估计码率波动在用户容忍范围内的情况下,不调整QP;当瞬时估计码率超出容忍范围时,根据场景变化对码率的影响程度及场景变化位置,计算一个新的码率波动上下限,并指导QP的调整。
所述方法包括以下步骤:
S1,设置控制参数:为用户提供可设置的最大码率Maxbr、最大静止码率MaxStillbr、最小码率Minbr、码率波动容忍度FluctLvl、QP的最大值MaxQP和最小值MinQP、GOPs统计时间tstat;其中,
最大码率用来保证编码码率的正常传输和存储;
最小码率用来控制编码的最差质量;
最大静止码率用来控制静止场景对码率的不必要浪费;
码率波动容忍度用来计算客户对瞬时码率在目标码率上下允许波动的范围;
QP最大最小值用来控制图像的质量范围;
GOPs统计时间越长,允许的瞬时码率波动越大,否则允许的瞬时码率波动越小;
S2,GOPs级目标码率分配和GOP级目标码率分配;
S2.1,GOPs级目标码率分配:
对于所述的VBR方法来说,只为GOPs级设定最大码率,指导该统计时间内的实际编码的平均码率不超出该最大值,保证码率传输和存储:gopsbr=Maxbr;
S2.2,GOP级目标码率分配:
GOP级目标码率要受到GOPs级的剩余最大码率MaxRembr、视频图像复杂度cplx、运动强度motionStrength的限制;GOP级目标码率的分配随图像复杂度、运动强度增加而增加,以保证在场景变换后依然平稳的视频质量:
S3,帧级码流分配:
对于IPPP结构的实时视频编码来说,当前帧与前一帧的依赖关系最大,图像相似度也最大,可以将最后已编码帧的码流值作为GOP剩余未编码帧的码流估计值,从而得到当前的瞬时估计码率estbr;其中,gopEncbits表示当前GOP已经编码的bits,lastFrmbits表示当前帧前一已编码帧的编码码流值,Nenc表示GOP以编码帧数,Nleft表示GOP未编码帧数,Nttl表示GOP总的编码帧数,Nfps表示编码帧率:
将estbr与maxbr、minbr比较,计算newMaxbr和newMinbr:
为当前帧分配目标码流tgtFrmbits:
S4,图像级P帧QP的计算:
设定瞬时码率允许波动上限up_ratiobr[5]={1.05,1.25,1.875,2.5,3.125};
设定瞬时码率允许波动下限dw_ratiobr[5]={1.05,1.25,1.875,2.5,3.125};
1)对于稳定场景,将estbr与maxbr、minbr比较,判断当前帧QP的调整方向和偏移量;
当estbr>maxbr时,ratiobr=estbr/maxbr,获取ratiobr在up_ratiobr[5]所属的区间索引号upIdx;
当estbr<minbr时,ratiobr=minbr/estbr,获取ratiobr在dw_ratiobr[5]所属的区间索引号dwIdx;
2)对于不稳定场景,根据estbr和maxbr、minbr获取当前的newMaxbr和newMinbr;
当estbr>newMaxbr时,ratiobr=estbr/newMaxbr,获取ratiobr在up_ratiobr[5]所属的区间索引号upIdx;
当estbr<newMinbr时,ratiobr=newMinbr/estbr,获取ratiobr在dw_ratiobr[5]所属的区间索引号dwIdx;
则当前待编码P帧QP为lastFrmqp+QPofst;
S5,编码信息统计:编码完一帧后或一个GOP后更新相关统计信息,为下一帧或下一个GOP编码做准备。
所述S2.2进一步包括:
S2.2.1,依据场景复杂度分配码率;
S2.2.2,依据场景运动强度分配码率;
S2.2.3,根据用户对码率波动的容忍度fluctLvl,确定GOP级码率波动上下限:
设定波动上限upFluctbr[6]={0,10,15,25,40,50};
设定波动下限dwFluctbr[6]={0,3,5,10,15,20};
maxbr=gopbr·(100+upFluctbr[fluctLvl])/100;
minbr=gopbr·(100-dwFluctbr[fluctLvl])/100;
对目标码率上下限进行限制:
所述S2.2.1,依据场景复杂度分配码率:
根据图像特征分析获取当前帧的复杂度;由静止场景的编码特点可知,GOP级的编码码率集中在I帧,I帧图像内容复杂度越大,GOP级码率越大,将最小码率到最大静止码率的范围分为6个区间,由小到大依次标号为0~5,将视频图像复杂度与阈值cplxThrd[5]比较,判断其所在区间的标号cplxIdx,通过查表cplxRatio[cplxIdx]得到码率偏移比率;那么GOP级在该图像复杂度下的静止目标码率计算方法如下:
设定cplxThrd[5]={20,50,80,110,150}
设定cplxRatio[6]={0,0.15,0.45,0.65,0.8,1.0}
cplxbr=Minbr+(MaxStillbr-Minbr)·cplxRatio[cplxIdx]。
所述S2.2.2,依据场景运动强度分配码率:
根据图像特征分析获取当前帧的视频图像运动强度;由运动场景的编码特点可知,GOP级的编码码率中P帧占比随着运动强度的增加逐渐增大;因此将该复杂度下的静止码率到最大允许码率的范围分为6个区间,由小到大依次标号为0~5,将当前场景下的运动强度与阈值motionThrd[5]比较,判断其所在区间的标号motionIdx,通过查表motionRatio[motionIdx]得到码率偏移比率;那么GOP级在该场景运动强度下的目标码率计算方法如下:
设定motionThrd[5]={10,30,50,75,90}
设定motionRatio[6]={0,0.15,0.35,0.5,0.85,1.0}
gopbr=cplxbr+(Maxbr-cplxbr)·motionRatio[motionIdx]
对GOP级目标码率进行限制,避免GOPs级码率不可控:
综上,应用本申请方法能够实现的优势在于:本发明通过码率波动容忍度,将瞬时估计码率与目标码率允许波动的上下限进行比较,而不是和目标码率作比较,来决定如何调整QP以减少QP的不必要波动,从而减少因瞬时码率正常波动而引起的QP振荡,更好的维持图像质量的稳定。保证在码率可控的前提下质量的稳定,减少码流的浪费。本发明方法根据场景切换位置的不同,调整QPofst强度不同,保证码率的可控,通过多帧的调整时图像质量平稳切换。相比于过调整和欠调整,本发明优化方法在码率和图像质量之间取得了一个比较合理的折中。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。
图1是GOP级分配码率随图像信息变化趋势的示意图。
图2是场景切换时各种码率调整结果对比的示意图。
图3是本发明方法的流程示意图。
具体实施方式
为了能够更清楚地理解本发明的技术内容及优点,现结合附图对本发明进行进一步的详细说明。
1.VBR方法描述
本发明中的VBR方法应用于视频实时编码的IPPP结构,采用分级策略,即GOPs级(多个图像组)、GOP级(一个图像组)、图像级(一帧图像)依次为不同编码单元分配目标码率。在GOPs级设置编码允许的最大码率,以保证数据的有效传输和存储。在GOP级依据图像特征分析算法获取的图像复杂度和运动强度信息分配目标码率,允许在GOPs统计时间内编码码率波动,从而保证编码图像质量平稳。在图像级对于瞬时估计码率波动在用户容忍范围内的情况下,不调整QP;当瞬时估计码率超出容忍范围时,根据场景变化对码率的影响程度及场景变化位置,计算一个新的码率波动上下限,并指导QP的调整。
本发明中的VBR方法为用户提供可设置的最大码率Maxbr、最大静止码率MaxStillbr、最小码率Minbr、码率波动容忍度FluctLvl、QP的最大值MaxQP和最小值MinQP、GOPs统计时间tstat等控制参数。其中,
最大码率用来保证编码码率的正常传输和存储;
最小码率用来控制编码的最差质量;
最大静止码率用来控制静止场景对码率的不必要浪费;
码率波动容忍度用来计算客户对瞬时码率在目标码率上下允许波动的范围;
QP最大最小值用来控制图像的质量范围;
GOPs统计时间越长,允许的瞬时码率波动越大,否则允许的瞬时码率波动越小。
图像级目标码率控制主要包括GOPs和GOP级码率分配、帧级码流分配、图像级QP计算、编码信息统计等内容。
2.码率分配
1)GOPs级目标码率分配
对于VBR方法来说,只为GOPs级设定最大码率,指导该统计时间内的实际编码的平均码率不超出该最大值,保证码率传输和存储。
gopsbr=Maxbr
2)GOP级目标码率分配
GOP级目标码率要受到GOPs级的剩余最大码率MaxRembr、视频图像复杂度cplx、运动强度motionStrength的限制。GOP级目标码率的分配随图像复杂度、运动强度增加而增加,以保证在场景变换后依然平稳的视频质量。
(1)依据场景复杂度分配码率
根据图像特征分析获取当前帧的复杂度。由静止场景的编码特点可知,GOP级的编码码率主要集中在I帧,I帧图像内容复杂度越大,GOP级码率越大。将最小码率到最大静止码率的范围分为6个区间,由小到大依次标号为0~5,将视频图像复杂度与阈值cplxThrd[5]比较,判断其所在区间的标号cplxIdx,通过查表cplxRatio[cplxIdx]得到码率偏移比率。那么GOP级在该图像复杂度下的静止目标码率计算方法如下:
设定cplxThrd[5]={20,50,80,110,150}
设定cplxRatio[6]={0,0.15,0.45,0.65,0.8,1.0}
cplxbr=Minbr+(MaxStillbr-Minbr)·cplxRatio[cplxIdx]
(2)依据场景运动强度分配码率
根据图像特征分析获取当前帧的视频图像运动强度。由运动场景的编码特点可知,GOP级的编码码率中P帧占比随着运动强度的增加逐渐增大。因此将该复杂度下的静止码率到最大允许码率的范围分为6个区间,由小到大依次标号为0~5,将当前场景下的运动强度与阈值motionThrd[5]比较,判断其所在区间的标号motionIdx,通过查表motionRatio[motionIdx]得到码率偏移比率。那么GOP级在该场景运动强度下的目标码率计算方法如下:
设定motionThrd[5]={10,30,50,75,90}
设定motionRatio[6]={0,0.15,0.35,0.5,0.85,1.0}
gopbr=cplxbr+(Maxbr-cplxbr)·motionRatio[motionIdx]
对GOP级目标码率进行限制,避免GOPs级码率不可控。
如图1显示了目标码率随图像复杂度和场景运动强度的变化范围和趋势。
(3)根据用户对码率波动的容忍度fluctLvl,确定GOP级码率波动上下限。
设定波动上限upFluctbr[6]={0,10,15,25,40,50}
设定波动下限dwFluctbr[6]={0,3,5,10,15,20}
maxbr=gopbr·(100+upFluctbr[fluctLvl])/100
minbr=gopbr·(100-dwFluctbr[fluctLvl])/100
对目标码率上下限进行限制。
3)帧级的码流分配
对于IPPP结构的实时视频编码来说,当前帧与前一帧的依赖关系最大,图像相似度也最大。可以将最后已编码帧的码流值作为GOP剩余未编码帧的码流估计值,从而得到当前的瞬时估计码率。其中,gopEncbits表示当前GOP已经编码的bits,lastFrmbits表示当前帧前一已编码帧的编码码流值,Nenc表示GOP以编码帧数,Nleft表示GOP未编码帧数,Nttl表示GOP总的编码帧数,Nfps表示编码帧率。
将estbr与maxbr、minbr比较,计算newMaxbr和newMinbr:
为当前帧分配目标码流tgtFrmbits。
下面图2中显示了GOP内某一P帧处出现场景切换时,各种码率调整的结果对比,本发明算法根据场景切换位置的不同,调整QPofst强度不同,保证码率的可控,通过多帧的调整时图像质量平稳切换。相比于过调整和欠调整,本发明优化算法在码率和图像质量之间取得了一个比较合理的折中。
其中,在GOP中某一P帧出发生场景切换时,深灰色代表码率欠调整,白色代表码率过调整,浅灰色代表优化后的码率。
3.帧级P帧QP的计算
设定up_ratiobr[5]={1.05,1.25,1.875,2.5,3.125}
设定dw_ratiobr[5]={1.05,1.25,1.875,2.5,3.125}
1)对于稳定场景,将estbr与maxbr、minbr比较,判断当前帧QP的调整方向和偏移量。
当estbr>maxbr时,ratiobr=estbr/maxbr,获取ratiobr在up_ratiobr[5]所属的区间索引号upIdx;
当estbr<minbr时,ratiobr=minbr/estbr,获取ratiobr在dw_ratiobr[5]所属的区间索引号dwIdx;
2)对于不稳定场景,根据estbr和maxbr、minbr获取当前的newMaxbr和newMinbr
当estbr>newMaxbr时,ratiobr=estbr/newMaxbr,获取ratiobr在up_ratiobr[5]所属的区间索引号upIdx;
当estbr<newMinbr时,ratiobr=newMinbr/estbr,获取ratiobr在dw_ratiobr[5]所属的区间索引号dwIdx;
则当前待编码P帧QP为lastFrmqp+QPofst
4.编码完一帧后或一个GOP后更新相关统计信息,为下一帧或下一个GOP编码做准备。
系统地可以描述为以下,如图3所示,本发明涉及的所述方法包括以下步骤:
S1,设置控制参数:为用户提供可设置的最大码率Maxbr、最大静止码率MaxStillbr、最小码率Minbr、码率波动容忍度FluctLvl、QP的最大值MaxQP和最小值MinQP、GOPs统计时间tstat;其中,
最大码率用来保证编码码率的正常传输和存储;
最小码率用来控制编码的最差质量;
最大静止码率用来控制静止场景对码率的不必要浪费;
码率波动容忍度用来计算客户对瞬时码率在目标码率上下允许波动的范围;
QP最大最小值用来控制图像的质量范围;
GOPs统计时间越长,允许的瞬时码率波动越大,否则允许的瞬时码率波动越小;
S2,GOPs级目标码率分配和GOP级目标码率分配;
S2.1,GOPs级目标码率分配:
对于所述的VBR方法来说,只为GOPs级设定最大码率,指导该统计时间内的实际编码的平均码率不超出该最大值,保证码率传输和存储:gopsbr=Maxbr;
S2.2,GOP级目标码率分配:
GOP级目标码率要受到GOPs级的剩余最大码率MaxRembr、视频图像复杂度cplx、运动强度motionStrength的限制;GOP级目标码率的分配随图像复杂度、运动强度增加而增加,以保证在场景变换后依然平稳的视频质量:
S3,帧级码流分配:
对于IPPP结构的实时视频编码来说,当前帧与前一帧的依赖关系最大,图像相似度也最大,可以将最后已编码帧的码流值作为GOP剩余未编码帧的码流估计值,从而得到当前的瞬时估计码率estbr;其中,gopEncbits表示当前GOP已经编码的bits,lastFrmbits表示当前帧前一已编码帧的编码码流值,Nenc表示GOP以编码帧数,Nleft表示GOP未编码帧数,Nttl表示GOP总的编码帧数,Nfps表示编码帧率:
将estbr与maxbr、minbr比较,计算newMaxbr和newMinbr:
为当前帧分配目标码流tgtFrmbits:
S4,图像级P帧QP的计算:
设定瞬时码率允许波动上限up_ratiobr[5]={1.05,1.25,1.875,2.5,3.125};
设定瞬时码率允许波动下限dw_ratiobr[5]={1.05,1.25,1.875,2.5,3.125};
1)对于稳定场景,将estbr与maxbr、minbr比较,判断当前帧QP的调整方向和偏移量;
当estbr>maxbr时,ratiobr=estbr/maxbr,获取ratiobr在up_ratiobr[5]所属的区间索引号upIdx;
当estbr<minbr时,ratiobr=minbr/estbr,获取ratiobr在dw_ratiobr[5]所属的区间索引号dwIdx;
2)对于不稳定场景,根据estbr和maxbr、minbr获取当前的newMaxbr和newMinbr;
当estbr>newMaxbr时,ratiobr=estbr/newMaxbr,获取ratiobr在up_ratiobr[5]所属的区间索引号upIdx;
当estbr<newMinbr时,ratiobr=newMinbr/estbr,获取ratiobr在dw_ratiobr[5]所属的区间索引号dwIdx;
则当前待编码P帧QP为lastFrmqp+QPofst;
S5,编码信息统计:编码完一帧后或一个GOP后更新相关统计信息,为下一帧或下一个GOP编码做准备。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种视频实时编码的VBR码率控制方法,其特征在于,所述方法中的VBR方法应用于视频实时编码的IPPP结构,采用分级策略依次为不同编码单元分配目标码率;所述分级策略分为GOPs级、GOP级、图像级;根据用户对码率波动的容忍度为当前GOP目标码率设定其允许波动的上下限,将瞬时估计码率与目标码率允许波动的上下限进行比较,来决定如何调整QP以减少QP的不必要波动;根据场景变化对码率的影响程度及场景变化位置,计算一个新的码率波动上下限,并指导QP的调整;当视频图像发生场景变化时,通过估计的瞬时码率和分配的目标码率波动上下限进行加权求和,得到一个新码率控制上下限,其中加权的比重和当前帧在GOP中的位置相关,越靠近I帧的控制强度越大,越远离I帧的控制强度越弱;
所述方法包括以下步骤:
S1,设置控制参数:为用户提供可设置的最大码率Maxbr、最大静止码率MaxStillbr、最小码率Minbr、码率波动容忍度FluctLvl、QP的最大值MaxQP和最小值MinQP、GOPs统计时间tstat;其中,
最大码率用来保证编码码率的正常传输和存储;
最小码率用来控制编码的最差质量;
最大静止码率用来控制静止场景对码率的不必要浪费;
码率波动容忍度用来计算客户对瞬时码率在目标码率上下允许波动的范围;
QP最大最小值用来控制图像的质量范围;
GOPs统计时间越长,允许的瞬时码率波动越大,否则允许的瞬时码率波动越小;
S2,GOPs级目标码率分配和GOP级目标码率分配;
S2.1,GOPs级目标码率分配:
对于所述的VBR方法来说,只为GOPs级设定最大码率,指导该统计时间内的实际编码的平均码率不超出该最大值,保证码率传输和存储:
gopsbr=Maxbr;
S2.2,GOP级目标码率分配:
GOP级目标码率要受到GOPs级的剩余最大码率MaxRembr、视频图像复杂度cplx、运动强度motionStrength的限制;GOP级目标码率的分配随图像复杂度、运动强度增加而增加,以保证在场景变换后依然平稳的视频质量;
S3,帧级码流分配:
对于IPPP结构的实时视频编码来说,当前帧与前一帧的依赖关系最大,图像相似度也最大,将最后已编码帧的码流值作为GOP剩余未编码帧的码流估计值,从而得到当前的瞬时估计码率estbr;其中,gopEncbits表示当前GOP已经编码的bits,lastFrmbits表示当前帧前一已编码帧的编码码流值,Nenc表示GOP以编码帧数,Nleft表示GOP未编码帧数,Nttl表示GOP总的编码帧数,Nfps表示编码帧率:
将estbr与maxbr、minbr比较,计算newMaxbr和newMinbr:
为当前帧分配目标码流tgtFrmbits:
S4,图像级P帧QP的计算:
设定瞬时码率允许波动上限up_ratiobr[5]={1.05,1.25,1.875,2.5,3.125};
设定瞬时码率允许波动下限dw_ratiobr[5]={1.05,1.25,1.875,2.5,3.125};
1)对于稳定场景,将estbr与maxbr、minbr比较,判断当前帧QP的调整方向和偏移量;
当estbr>maxbr时,ratiobr=estbr/maxbr,获取ratiobr在up_ratiobr[5]所属的区间索引号upIdx;
当estbr<minbr时,ratiobr=minbr/estbr,获取ratiobr在dw_ratiobr[5]所属的区间索引号dwIdx;
2)对于不稳定场景,根据estbr和maxbr、minbr获取当前的newMaxbr和newMinbr;
当estbr>newMaxbr时,ratiobr=estbr/newMaxbr,获取ratiobr在up_ratiobr[5]所属的区间索引号upIdx;
当estbr<newMinbr时,ratiobr=newMinbr/estbr,获取ratiobr在dw_ratiobr[5]所属的区间索引号dwIdx;
则当前待编码P帧QP为lastFrmqp+QPofst;
S5,编码信息统计:编码完一帧后或一个GOP后更新相关统计信息,为下一帧或下一个GOP编码做准备。
2.根据权利要求1所述的一种视频实时编码的VBR码率控制方法,其特征在于,
在所述GOPs级设置编码允许的最大码率;
在所述GOP级依据图像特征分析算法获取的图像复杂度和运动强度信息分配目标码率,允许在GOPs统计时间内编码码率波动,从而保证编码图像质量平稳;
在图像级对于瞬时估计码率波动在用户容忍范围内的情况下,不调整QP;当瞬时估计码率超出容忍范围时,根据场景变化对码率的影响程度及场景变化位置,计算一个新的码率波动上下限,并指导QP的调整。
3.根据权利要求1所述的一种视频实时编码的VBR码率控制方法,其特征在于,所述S2.2进一步包括:
S2.2.1,依据场景复杂度分配码率;
S2.2.2,依据场景运动强度分配码率;
S2.2.3,根据用户对码率波动的容忍度fluctLvl,确定GOP级码率波动上下限:
设定波动上限upFluctbr[6]={0,10,15,25,40,50};
设定波动下限dwFluctbr[6]={0,3,5,10,15,20};
maxbr=gopbr·(100+upFluctbr[fluctLvl])/100;
minbr=gopbr·(100-dwFluctbr[fluctLvl])/100;
对目标码率上下限进行限制:
4.根据权利要求3所述的一种视频实时编码的VBR码率控制方法,其特征在于,所述S2.2.1,依据场景复杂度分配码率:
根据图像特征分析获取当前帧的复杂度;由静止场景的编码特点可知,GOP级的编码码率集中在I帧,I帧图像内容复杂度越大,GOP级码率越大,将最小码率到最大静止码率的范围分为6个区间,由小到大依次标号为0~5,将视频图像复杂度与阈值cplxThrd[5]比较,判断其所在区间的标号cplxIdx,通过查表cplxRatio[cplxIdx]得到码率偏移比率;那么GOP级在该图像复杂度下的静止目标码率计算方法如下:设定cplxThrd[5]={20,50,80,110,150}
设定cplxRatio[6]={0,0.15,0.45,0.65,0.8,1.0}
cplxbr=Minbr+(MaxStillbr-Minbr)·cplxRatio[cplxIdx]。
5.根据权利要求4所述的一种视频实时编码的VBR码率控制方法,其特征在于,所述S2.2.2,依据场景运动强度分配码率:
根据图像特征分析获取当前帧的视频图像运动强度;由运动场景的编码特点可知,GOP级的编码码率中P帧占比随着运动强度的增加逐渐增大;因此将该复杂度下的静止码率到最大允许码率的范围分为6个区间,由小到大依次标号为0~5,将当前场景下的运动强度与阈值motionThrd[5]比较,判断其所在区间的标号motionIdx,通过查表motionRatio[motionIdx]得到码率偏移比率;那么GOP级在该场景运动强度下的目标码率计算方法如下:
设定motionThrd[5]={10,30,50,75,90}
设定motionRatio[6]={0,0.15,0.35,0.5,0.85,1.0}
gopbr=cplxbr+(Maxbr-cplxbr)·motionRatio[motionIdx]
对GOP级目标码率进行限制,避免GOPs级码率不可控:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011411932.7A CN114598866B (zh) | 2020-12-03 | 2020-12-03 | 一种视频实时编码的vbr码率控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011411932.7A CN114598866B (zh) | 2020-12-03 | 2020-12-03 | 一种视频实时编码的vbr码率控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114598866A CN114598866A (zh) | 2022-06-07 |
CN114598866B true CN114598866B (zh) | 2024-05-03 |
Family
ID=81803018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011411932.7A Active CN114598866B (zh) | 2020-12-03 | 2020-12-03 | 一种视频实时编码的vbr码率控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114598866B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1909662A (zh) * | 2006-08-07 | 2007-02-07 | 浙江大学 | 采用帧目标比特数不平均分配的视频压缩码率控制方法 |
EP1848217A1 (en) * | 2006-04-21 | 2007-10-24 | STMicroelectronics S.r.l. | A bit rate control method for video encoder applications, related system and computer program product |
CN101188755A (zh) * | 2007-12-14 | 2008-05-28 | 宁波中科集成电路设计中心有限公司 | 一种对实时视频信号在avs编码过程中vbr码率控制的方法 |
CN108235016A (zh) * | 2016-12-21 | 2018-06-29 | 杭州海康威视数字技术股份有限公司 | 一种码率控制方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100468726B1 (ko) * | 2002-04-18 | 2005-01-29 | 삼성전자주식회사 | 실시간 가변 비트율 제어를 수행하는 부호화 장치 및 방법 |
-
2020
- 2020-12-03 CN CN202011411932.7A patent/CN114598866B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1848217A1 (en) * | 2006-04-21 | 2007-10-24 | STMicroelectronics S.r.l. | A bit rate control method for video encoder applications, related system and computer program product |
CN1909662A (zh) * | 2006-08-07 | 2007-02-07 | 浙江大学 | 采用帧目标比特数不平均分配的视频压缩码率控制方法 |
CN101188755A (zh) * | 2007-12-14 | 2008-05-28 | 宁波中科集成电路设计中心有限公司 | 一种对实时视频信号在avs编码过程中vbr码率控制的方法 |
CN108235016A (zh) * | 2016-12-21 | 2018-06-29 | 杭州海康威视数字技术股份有限公司 | 一种码率控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114598866A (zh) | 2022-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5351040B2 (ja) | 映像符号化規格に対応した映像レート制御の改善 | |
JP4390112B2 (ja) | ビデオシーケンスのレートを制御する方法及び装置並びにビデオ符号化装置 | |
KR100643453B1 (ko) | 오브젝트 기반 비트율 제어방법 | |
KR100505699B1 (ko) | 실시간 가변 비트율 제어로 화질을 개선시키는 비디오인코더의 인코딩율 제어기, 이를 구비한 비디오 데이터전송 시스템 및 그 방법 | |
CN104079933B (zh) | 适用于hevc的低延时码率控制方法及比特数分配方法 | |
US20060013298A1 (en) | Multi-pass video encoding | |
WO2006004605A2 (en) | Multi-pass video encoding | |
CN110365983B (zh) | 一种基于人眼视觉系统的宏块级码率控制方法及装置 | |
WO2002096120A1 (en) | Bit rate control for video compression | |
CN100563338C (zh) | 一种恒定码率的控制方法 | |
CN100574442C (zh) | 基于图像直方图的码率控制方法 | |
EP4333433A1 (en) | Video coding method and apparatus, and electronic device | |
CN108924555B (zh) | 一种适用于视频切片的码率控制比特分配方法 | |
Yang et al. | A joint rate control scheme for H. 264 encoding of multiple video sequences | |
CN117956160A (zh) | 码率控制方法、码率控制装置以及计算机存储介质 | |
CN114598866B (zh) | 一种视频实时编码的vbr码率控制方法 | |
KR100557618B1 (ko) | 오브젝트 기반 비트율 제어방법 및 장치 | |
CN110381315B (zh) | 码率控制方法及装置 | |
CN110971900A (zh) | 一种适用于4k、8k超高清运动平缓视频的码率控制方法 | |
US20050140781A1 (en) | Video coding method and apparatus thereof | |
CN101527846B (zh) | 一种基于马太效应的h.264可变码率控制方法 | |
CN116233446A (zh) | 一种视频实时编码的变码率控制方法 | |
KR100543608B1 (ko) | 오브젝트 기반 비트율 제어방법 및 장치 | |
CN115118985A (zh) | 编码器及相关的信号处理方法 | |
Sun et al. | A rate control algorithm for wireless video transmission using perceptual tuning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |