CN102724507A - 一种gpu加速编码器码率控制方法 - Google Patents
一种gpu加速编码器码率控制方法 Download PDFInfo
- Publication number
- CN102724507A CN102724507A CN201210201672XA CN201210201672A CN102724507A CN 102724507 A CN102724507 A CN 102724507A CN 201210201672X A CN201210201672X A CN 201210201672XA CN 201210201672 A CN201210201672 A CN 201210201672A CN 102724507 A CN102724507 A CN 102724507A
- Authority
- CN
- China
- Prior art keywords
- quantization parameter
- buffering area
- filling
- value
- bit rate
- 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
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明涉及一种GPU加速编码器码率控制方法,该方法包括以下步骤:1)编码器当前画面组以初始量化参数编码,并将编码好的视频码流输入缓冲区,缓冲区根据传输信道的情况将视频码流输出;2)码率控制器监视缓冲区充满度,码率控制器根据缓冲区充满度的值及缓冲区充满度变化率计算出新的量化参数;3)在每个画面组的编码开始前,将当前新的量化参数传入编码器,作为该画面组的量化参数。与现有技术相比,本发明具有不增加时间空间复杂度、可在不清楚目标码率的情况下动态调整码率等优点。
Description
技术领域
本发明涉及一种编码器码率控制方法,尤其是涉及一种GPU加速编码器码率控制方法。
背景技术
随着高清视频渐渐融入人们的生活,GPU(Graphic Processing Unit,图形处理器)加速编解码的应用场合逐步增多。其中GPU加速编码应用越来越多的被用进高清视频会议、网络监控、流媒体服务器等实时性视频传输平台。GPU加速编码固然可以提高编码效率,但以上这些应用都要求编码器的输出码率符合信道的传输限制。传输信道的带宽受限,或网络状况有一定波动,这就要求视频编码器要根据信道的特点控制输出码率,以适应信道的传输速率。而现今由于基于GPU加速的编码器码率控制方法并不灵活,导致传输效果不理想。
随着视频编码标准的更新,有不同的码率控制提案被相继提出。RM8码率控制模型被用在H.261视频编码器中。它采用了一个缓冲编码模型,编码器的输出与一个缓冲区相连。该模型构造了一种编码量化参数与缓冲区充满度的线性关系。但该模型仅通过缓冲区的充满度的大小调整量化参数的大小,并没有考虑到缓冲区本身的充满情况,使得缓冲区很容易产生上溢出和下溢出。Tihao Chiang等人在“IEEETransactions on Circuits and Systems for Video Technology”中发表的“A new ratecontrol scheme using quadratic rate distortion model”中提到的基于TM5模型的码率控制方法,需要通过已知的目标码率对一个GOP画面组做比特数分配,这也给编码器应用在实时传输***中造成了不便。在Ribas-Corbera J.等人的文章“Ratecontrol in DCT video coding for low-delay communications”中,采用了对数R-D模型,这就需要计算帧中的方差信息。在基于GPU加速的编码器中,计算方差会降低编码器效率,将计算瓶颈转移到方差的计算上。JVT-G012是JVT组织关于码率控制的会议论文,在《Adaptive Basic Unit Layer Rate Control for JVT》一文中,JVT-G012提出了一种H.264码率控制的提案。但是在该算法中,计算MAD和率失真优化都需要在基本单元层进行,这使得在基于GPU加速的编码器中很难应用到此算法。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种可应用在GPU加速视频编码器中,并可在不清楚目标码率的情况下动态调整码率的GPU加速编码器码率控制方法。
本发明的目的可以通过以下技术方案来实现:
一种GPU加速编码器码率控制方法,该方法包括以下步骤:
1)编码器当前画面组以初始量化参数编码,并将编码好的视频码流输入缓冲区,缓冲区根据传输信道的情况将视频码流输出;
2)码率控制器监视缓冲区充满度,码率控制器根据缓冲区充满度的值及缓冲区充满度变化率计算出新的量化参数;
3)在每个画面组的编码开始前,将当前新的量化参数传入编码器,作为该画面组的量化参数。
所述的步骤2)中的计算新的量化参数的公式为
QPi=max{0,mmin{31,QPi-1+func1(Bf)+func2(dBf)}}
式中,QPi为新的量化参数,QPi-1为上一次的量化参数,Bf为缓冲区充满度值,0≤Bf≤1,dBf缓冲区充满度变化率,func1为根据当前缓冲区充满度值来调整量化参数的函数,func2为根据当前缓冲区充满度变化率来调整量化参数的函数,每一次的量化参数保持在0~31的范围内。
所述的func1的计算公式为
func1(Bf)=E(Bf-Bfd-β)-E(Bfd-Bf-β)
其中,Bfd为理想的缓冲区充满度值,[Bfd-β,Bfd+β]为缓冲区充满度的理想区间,E函数为单位阶跃函数,即当Bf值落在以Bfd为中心,长度为2β的区间外时,func1取值为0;当Bf小于理想区间时,func1取值为-1,表明减小量化参数以增大输出码率,使Bf增长到理想区间,当Bf大于理想区间时,func1取值为1,表明增大量化参数以减小输出码率,使Bf减小到理想区间。
所述的func2的计算公式为
其中,α1、α2为缓冲区充满度变化率的理想值;当Bf未达到理想区间时,若Bf以小于α1的速率增长,则保持量化参数不变,若其增长速率大于α1,则增大量化参数值;当Bf进入理想区间后,若其变化速率在[-α2,α2]内,则保持量化参数不变,否则调节量化参数;当Bf高于理想区间时,若Bf以小于α1的速率下降,则保持量化参数不变,若其下降速率大于α1,则减小量化参数。
本发明方法适合于基于GPU加速的编码器,并可以在不清楚目标码率的情况下控制码流输出,适合应用于多种实时视频传输***中。与现有技术相比,本发明的创新性和实用性主要体现在四个方面:
1)本发明所涉及的码率控制方法均在GOP画面层完成,不涉及到帧层以下的操作,适合在基于GPU加速的编码器中应用。
2)本发明所涉及的码率控制方法与帧内画面信息无关,不会影响到GPU加速效率。在加入码率控制模块后,并不会提高整个应用的时间和空间复杂度。
3)在本发明所涉及的码率控制方法中,传输信道的传送码率可以随意变动。在分析调整编码器输出码率的过程中,不需知道缓冲区输出码率的任何信息。
4)本发明对RM8码率控制模型做出了优化。不仅仅通过缓冲区的充满度的大小来调节量化参数,还能将缓冲区充满度维护在一个理想值,避免了缓冲区的上溢出和下溢出。
附图说明
图1为本发明方法的数据流示意图;
图2是CQP模式与RM8模型的输出码率对比示意图;
图3是本发明方法与RM8模型对码率控制的对比示意图;
图4是本发明方法与RM8模型对于缓冲区充满度控制的对比示意图。
具体实施方式
下面结合附图对本发明作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
实施例
如图1所示,一种GPU加速编码器码率控制方法,该方法包括以下步骤:
1)编码器当前画面组以初始量化参数编码,并将编码好的视频码流输入缓冲区,缓冲区根据传输信道的情况将视频码流输出,传输信道可以是任意实时传输***中的中间传输介质:
缓冲区的设置可以和RM8模型中的设置类似,其大小设为p*64k比特,在本实例中p取160;缓冲区的输出码率可以设置为常量,也可以按照v(t)的形式变动,也可以随机变动,本实例中,缓冲区的输出码率设置为2kbit/ms;所以总体的最大延时L通过调整缓冲区大小得到:
2)码率控制器监视缓冲区充满度,码率控制器根据缓冲区充满度的值及缓冲区充满度变化率计算出新的量化参数;
为了在控制码率的同时也控制缓冲区的充满度,不仅仅需要当前的Bf作为参数,还通过比较当前Bf与期望达到的Bf来调整量化参数,同时考虑Bf的变化情况,计算新的量化参数的具体公式为
QPi=max{0,min{31,QPi-1+func1(Bf)+func2(dBf)}}
式中,QPi为新的量化参数,QPi-1为上一次的量化参数,Bf为缓冲区充满度值,0≤Bf≤1,dBf缓冲区充满度变化率,func1为根据当前缓冲区充满度值来调整量化参数的函数,func2为根据当前缓冲区充满度变化率来调整量化参数的函数,为了保证视频编码质量不要过于粗糙,每一次的量化参数保持在0~31的范围内。
所述的func1的计算公式为
func1(Bf)=E(Bf-Bfd-β)-E(Bfd-Bf-β)
其中,Bfd为理想的缓冲区充满度值,[Bfd-β,Bfd+β]为缓冲区充满度的理想区间,在本例中Bfd取25%,β在本例中取0.05;E函数为单位阶跃函数,即当Bf值落在以Bfd为中心,长度为2β的区间外时,func1取值为0;当Bf小于理想区间时,func1取值为-1,表明减小量化参数以增大输出码率,使Bf增长到理想区间,当Bf大于理想区间时,func1取值为1,表明增大量化参数以减小输出码率,使Bf减小到理想区间。
所述的func2的计算公式为
其中,α1、α2为缓冲区充满度变化率的理想值,在本实施例中,取α1为1、α2为0.1;当Bf未达到理想区间时,若Bf以小于α1的速率增长,则保持量化参数不变,若其增长速率大于α1,则增大量化参数值;当Bf进入理想区间后,若其变化速率在[-α2,α2]内,则保持量化参数不变,否则调节量化参数;当Bf高于理想区间时,若Bf以小于α1的速率下降,则保持量化参数不变,若其下降速率大于α1,则减小量化参数。
3)在每个画面组的编码开始前,将当前新的量化参数传入编码器,作为该画面组的量化参数。在本实施例中,GOP结构设置为‘IBBPBBP’,共7帧,即每隔7帧在重新编码I帧时,设置新的量化参数。
实施效果:
依据上述步骤,我们将本发明方法的测试结果与普通的RM8模型、CQP模式编码所得到的结果相比较。实验中使用的视频前半部分画面复杂度较低,且运动性不强,后半部分画面复杂度较高,切且运动性强。
在码率控制方面,图2-图3给出了本发明码率控制方法、CQP模式及RM8模型编码器的输出码率控制示意图。从图3中可以看出本发明码率控制方法与RM8都可以得到较好的码率调整效果,在画面复杂度提高和运动型加剧后,编码器输出码率有激增,但本发明码率控制方法和RM8模型都可以在相同的时间内将码率调整至理想值。
但在缓冲区维护方面,如图4所示,可以看见,RM8为了给出较高的量化参数值,在视频编码的后半段一直维持在一个很高的水准,有时甚至接近0.9,这很容易导致上溢出。而本发明中所涉及到的码率控制方法可以在短时间内将缓冲区充满度恢复至理想值0.25。
可见,本发明码率控制方法适合应用在GPU加速的编码场景中,并比RM8模型更优越。
Claims (5)
1.一种GPU加速编码器码率控制方法,其特征在于,该方法包括以下步骤:
1)编码器当前画面组以初始量化参数编码,并将编码好的视频码流输入缓冲区,缓冲区根据传输信道的情况将视频码流输出;
2)码率控制器监视缓冲区充满度,码率控制器根据缓冲区充满度的值及缓冲区充满度变化率计算出新的量化参数;
3)在每个画面组的编码开始前,将当前新的量化参数传入编码器,作为该画面组的量化参数。
2.根据权利要求1所述的一种GPU加速编码器码率控制方法,其特征在于,所述的步骤2)中的计算新的量化参数的公式为
QPi=max{0,min{31,QPi-1+func1(Bf)+func2(dBf)}}
式中,QPi为新的量化参数,QPi-1为上一次的量化参数,Bf为缓冲区充满度值,0≤Bf≤1,dBf缓冲区充满度变化率,func1为根据当前缓冲区充满度值来调整量化参数的函数,func2为根据当前缓冲区充满度变化率来调整量化参数的函数,每一次的量化参数保持在0~31的范围内。
3.根据权利要求2所述的一种GPU加速编码器码率控制方法,其特征在于,所述的func1的计算公式为
func1(Bf)=E(Bf-Bfd-β)-E(Bfd-Bf-β)
其中,Bfd为理想的缓冲区充满度值,[Bfd-β,Bfd+β]为缓冲区充满度的理想区间,E函数为单位阶跃函数,即当Bf值落在以Bfd为中心,长度为2β的区间外时,func1取值为0;当Bf小于理想区间时,func1取值为-1,表明减小量化参数以增大输出码率,使Bf增长到理想区间,当Bf大于理想区间时,func1取值为1,表明增大量化参数以减小输出码率,使Bf减小到理想区间。
5.根据权利要求4所述的一种GPU加速编码器码率控制方法,其特征在于,所述的func2的计算公式为
其中,α1、α2为缓冲区充满度变化率的理想值:当Bf未达到理想区间时,若Bf以小于α1的速率增长,则保持量化参数不变,若其增长速率大于α1,则增大量化参数值;当Bf进入理想区间后,若其变化速率在[-α2,α2]内,则保持量化参数不变,否则调节量化参数;当Bf高于理想区间时,若Bf以小于α1的速率下降,则保持量化参数不变,若其下降速率大于α1,则减小量化参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210201672.XA CN102724507B (zh) | 2012-06-18 | 2012-06-18 | 一种gpu加速编码器码率控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210201672.XA CN102724507B (zh) | 2012-06-18 | 2012-06-18 | 一种gpu加速编码器码率控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102724507A true CN102724507A (zh) | 2012-10-10 |
CN102724507B CN102724507B (zh) | 2014-10-15 |
Family
ID=46950152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210201672.XA Active CN102724507B (zh) | 2012-06-18 | 2012-06-18 | 一种gpu加速编码器码率控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102724507B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104853193A (zh) * | 2014-02-19 | 2015-08-19 | 腾讯科技(北京)有限公司 | 视频压缩方法、装置及电子设备 |
CN110662045A (zh) * | 2019-09-30 | 2020-01-07 | 杭州当虹科技股份有限公司 | 一种面向8k的avs2超高清视频编码码率控制方法 |
CN116506617A (zh) * | 2023-06-28 | 2023-07-28 | 鹏城实验室 | 图像浅压缩码率控制方法及装置 |
WO2023240799A1 (zh) * | 2022-06-14 | 2023-12-21 | 晶晨半导体(上海)股份有限公司 | 编码器码率控制方法及模块、芯片、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1138805A (zh) * | 1994-12-14 | 1996-12-25 | 大宇电子株式会社 | 判定量化参数的方法及装置 |
CN1175853A (zh) * | 1996-06-26 | 1998-03-11 | 三星电子株式会社 | 利用量化活动度控制比特产生数量的图像编码方法和装置 |
CN101765003A (zh) * | 2008-12-23 | 2010-06-30 | 上海茂碧信息科技有限公司 | 在不同速率网络环境下传输音频和视频的方法 |
CN101855907A (zh) * | 2007-11-07 | 2010-10-06 | 英国电讯有限公司 | 视频编码 |
US20120033612A1 (en) * | 2010-08-05 | 2012-02-09 | Cherif Jazra | Methods and apparatus for reducing data transmission overhead |
-
2012
- 2012-06-18 CN CN201210201672.XA patent/CN102724507B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1138805A (zh) * | 1994-12-14 | 1996-12-25 | 大宇电子株式会社 | 判定量化参数的方法及装置 |
CN1175853A (zh) * | 1996-06-26 | 1998-03-11 | 三星电子株式会社 | 利用量化活动度控制比特产生数量的图像编码方法和装置 |
CN101855907A (zh) * | 2007-11-07 | 2010-10-06 | 英国电讯有限公司 | 视频编码 |
CN101765003A (zh) * | 2008-12-23 | 2010-06-30 | 上海茂碧信息科技有限公司 | 在不同速率网络环境下传输音频和视频的方法 |
US20120033612A1 (en) * | 2010-08-05 | 2012-02-09 | Cherif Jazra | Methods and apparatus for reducing data transmission overhead |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104853193A (zh) * | 2014-02-19 | 2015-08-19 | 腾讯科技(北京)有限公司 | 视频压缩方法、装置及电子设备 |
CN104853193B (zh) * | 2014-02-19 | 2019-06-07 | 腾讯科技(北京)有限公司 | 视频压缩方法、装置及电子设备 |
CN110662045A (zh) * | 2019-09-30 | 2020-01-07 | 杭州当虹科技股份有限公司 | 一种面向8k的avs2超高清视频编码码率控制方法 |
CN110662045B (zh) * | 2019-09-30 | 2021-10-15 | 杭州当虹科技股份有限公司 | 一种面向8k的avs2超高清视频编码码率控制方法 |
WO2023240799A1 (zh) * | 2022-06-14 | 2023-12-21 | 晶晨半导体(上海)股份有限公司 | 编码器码率控制方法及模块、芯片、电子设备和存储介质 |
CN116506617A (zh) * | 2023-06-28 | 2023-07-28 | 鹏城实验室 | 图像浅压缩码率控制方法及装置 |
CN116506617B (zh) * | 2023-06-28 | 2023-09-12 | 鹏城实验室 | 图像浅压缩码率控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102724507B (zh) | 2014-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4390112B2 (ja) | ビデオシーケンスのレートを制御する方法及び装置並びにビデオ符号化装置 | |
CN101795415B (zh) | 一种视频编码中的码率控制方法及其装置 | |
CN104469367B (zh) | 基于丢帧和量化参数调整的视频码率控制方法 | |
CN101159867B (zh) | 一种基于片的自适应码率控制方法 | |
CN101895759A (zh) | 一种h.264码率控制方法 | |
WO2009121234A1 (zh) | 一种视频压缩码率控制方法 | |
CN102932641A (zh) | 一种恒定质量码率控制方法 | |
US20150172680A1 (en) | Producing an Output Need Parameter for an Encoder | |
CN106993190B (zh) | 软硬件协同编码方法及*** | |
CN102761741A (zh) | 基于编解码端缓存的视频编码码率控制***和方法 | |
CN102724507B (zh) | 一种gpu加速编码器码率控制方法 | |
JP2001094997A (ja) | ネットワーク帯域幅に適応的なデータ伝送率制御装置 | |
CN100563338C (zh) | 一种恒定码率的控制方法 | |
CN1332576A (zh) | 一种用于图像压缩传输的量化与码流控制方法 | |
CN100448295C (zh) | 一种低复杂度的积分码率控制方法 | |
CN101568025B (zh) | 码率控制中的虚拟缓冲区自适应控制方法 | |
CN103051897A (zh) | 一种h264视频编码码率控制方法 | |
CN104025595B (zh) | 图像编码方法和图像编码装置 | |
JP2004320707A (ja) | ビデオ情報複数同時符号化装置 | |
CN100563336C (zh) | 一种基于手机电视的恒定码率控制方法 | |
CN110572661B (zh) | 一种面向4k/8k超高清视频编码的低延时码率控制方法 | |
CN101854524A (zh) | 甚低码率视频编码器码率控制方法 | |
CN101360229B (zh) | 一种图像码流的平滑方法和装置 | |
KR100949755B1 (ko) | 비디오 시퀀스의 레이트를 제어하는 방법 및 장치, 비디오부호화 장치 | |
Sun et al. | Low delay rate-control in video transcoding |
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 |