CN102724507A - 一种gpu加速编码器码率控制方法 - Google Patents

一种gpu加速编码器码率控制方法 Download PDF

Info

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
Application number
CN201210201672XA
Other languages
English (en)
Other versions
CN102724507B (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.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
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 Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN201210201672.XA priority Critical patent/CN102724507B/zh
Publication of CN102724507A publication Critical patent/CN102724507A/zh
Application granted granted Critical
Publication of CN102724507B publication Critical patent/CN102724507B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明涉及一种GPU加速编码器码率控制方法,该方法包括以下步骤:1)编码器当前画面组以初始量化参数编码,并将编码好的视频码流输入缓冲区,缓冲区根据传输信道的情况将视频码流输出;2)码率控制器监视缓冲区充满度,码率控制器根据缓冲区充满度的值及缓冲区充满度变化率计算出新的量化参数;3)在每个画面组的编码开始前,将当前新的量化参数传入编码器,作为该画面组的量化参数。与现有技术相比,本发明具有不增加时间空间复杂度、可在不清楚目标码率的情况下动态调整码率等优点。

Description

一种GPU加速编码器码率控制方法
技术领域
本发明涉及一种编码器码率控制方法,尤其是涉及一种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减小到理想区间。
所述的缓冲区充满度变化率
Figure BDA00001780316900031
Bfi为当前缓冲区充满度值,Bfi-1为上一次缓冲区充满度值。
所述的func2的计算公式为
func 2 ( dB f ) = E ( dB f ) + E ( dB f - &alpha; 1 ) - E ( - dB f ) 0 < B f < B fd - &beta; E ( dB f - &alpha; 2 ) - E ( - dB f - &alpha; 2 ) - &beta; &le; B f &le; B fd + &beta; E ( dB f ) - E ( - dB f ) - E ( - dB f - &alpha; 1 ) B fd + &beta; < B f &le; 1
其中,α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通过调整缓冲区大小得到:
max ( Latency ) = buffer _ size min ( v ( t ) ) = 160 &times; 64 k 2 k &times; 1000 = 5.12 s .
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减小到理想区间。
所述的缓冲区充满度变化率
Figure BDA00001780316900051
Bfi为当前缓冲区充满度值,Bfi-1为上一次缓冲区充满度值。
所述的func2的计算公式为
func 2 ( dB f ) = E ( dB f ) + E ( dB f - &alpha; 1 ) - E ( - dB f ) 0 < B f < B fd - &beta; E ( dB f - &alpha; 2 ) - E ( - dB f - &alpha; 2 ) - &beta; &le; B f &le; B fd + &beta; E ( dB f ) - E ( - dB f ) - E ( - dB f - &alpha; 1 ) B fd + &beta; < B f &le; 1
其中,α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减小到理想区间。
4.根据权利要求3所述的一种GPU加速编码器码率控制方法,其特征在于,所述的缓冲区充满度变化率
Figure FDA00001780316800011
Bfi为当前缓冲区充满度值,Bfi-1为上一次缓冲区充满度值。
5.根据权利要求4所述的一种GPU加速编码器码率控制方法,其特征在于,所述的func2的计算公式为
func 2 ( dB f ) = E ( dB f ) + E ( dB f - &alpha; 1 ) - E ( - dB f ) 0 < B f < B fd - &beta; E ( dB f - &alpha; 2 ) - E ( - dB f - &alpha; 2 ) - &beta; &le; B f &le; B fd + &beta; E ( dB f ) - E ( - dB f ) - E ( - dB f - &alpha; 1 ) B fd + &beta; < B f &le; 1
其中,α1、α2为缓冲区充满度变化率的理想值:当Bf未达到理想区间时,若Bf以小于α1的速率增长,则保持量化参数不变,若其增长速率大于α1,则增大量化参数值;当Bf进入理想区间后,若其变化速率在[-α2,α2]内,则保持量化参数不变,否则调节量化参数;当Bf高于理想区间时,若Bf以小于α1的速率下降,则保持量化参数不变,若其下降速率大于α1,则减小量化参数。
CN201210201672.XA 2012-06-18 2012-06-18 一种gpu加速编码器码率控制方法 Active CN102724507B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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