CN101478676B - 一种对b帧进行码率控制的方法 - Google Patents
一种对b帧进行码率控制的方法 Download PDFInfo
- Publication number
- CN101478676B CN101478676B CN 200810147789 CN200810147789A CN101478676B CN 101478676 B CN101478676 B CN 101478676B CN 200810147789 CN200810147789 CN 200810147789 CN 200810147789 A CN200810147789 A CN 200810147789A CN 101478676 B CN101478676 B CN 101478676B
- Authority
- CN
- China
- Prior art keywords
- frame
- value
- quantization parameter
- bqp
- video
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种对B帧码率进行控制的方法,通过在视频编码过程中,在对视频图像组中B帧进行编码时,首先设定一个量化参数阈值TQP,并计算用于该B帧编码的I帧与P帧或者连续两个P帧的量化参数之差DQP,然后比较,若量化参数之差DQP的绝对值小于量化参数阈值TQP,则采用保证视频质量平缓的QP计算方法计算该B帧的量化参数BQP;若大于,则采用保证缓冲区数据容量平缓的QP计算方法计算该B帧的量化参数BQP。这样在P帧QP变化平缓,采用保证视频质量平缓的QP计算方法,而在P帧QP变化激烈时,采用保证缓冲区数据容量平缓的QP计算方法,使得在解码端视频质量的平缓和编码端缓冲区数据容量的平缓之间实现了较好的折中。
Description
技术领域
本发明涉及视频编码技术领域,具体来讲,涉及视频图像组中,对B帧进行码率控制的方法。
背景技术
视频源由视频图像序列构成,视频序列被划分为不同的GOP,即视频图像组。在视频图像组里,可以由三种不同的视频图像帧构成,分别为I帧、P帧和B帧。I帧为帧内预测帧,其视频图像通过本帧内的图像信息进行压缩编码,这种模式的编码效率往往不高。P帧为帧间预测帧,其采用了帧间运动补偿技术,即通过前面已编码帧的信息来预测当前帧。B帧为双向帧间预测帧,它可以利用前面已编码帧或者后续帧,或者同时使用前面和后续重建帧的信息来进行帧间预测,这种编码方法,需用先对B帧两边的P帧进行编码,然后才能编码B帧,这意味着,对P帧和B帧的编码顺序和显示顺序是不同的。P帧和B帧相比I帧,只需要很少的编码比特来存储图像信息,这些信息主要是帧间预测的残差。B帧和P帧相比,用相同QP,即量化参数对P帧和B帧进行编码,B帧往往可以获得更好的视频质量和较少的编码比特。
码率控制的最终目的是为了在有限的缓存容量和信道带宽下传输高质量的视频序列。对一些实时的视频通信服务,如:视频会议、视频手机,这些环境下的资源常常很有限,这就要求高精度的码率控制方案。
一个GOP,往往是按照根据I帧位子来划分的,即将两个I帧之间的P帧和B帧划分到一个GOP里。在H.264标准中,主要采用了LIZHENGGUO提出的JVT-G012码率控制方法。一个GOP中,第一个I帧和第一个P帧的QP大小等于上一个GOP中编码P帧平均QP值;后续P帧QP值利用线形预测来计算当前帧的MAD值,然后再使用R-D二次模型来计算出QP值;对于B帧,它的QP值是根据相邻两个P帧的QP值大小来设定,由于B帧的编码顺序和显示顺序的不同,使得对B帧显示的质量的控制与编码时对缓冲区内数据容量的控制具有更大的难度,此外B帧的编码比特和失真曲线,即RD曲线与P帧的RD曲线偏离较大。通常在相同的QP下,用B帧进行编码,其编码比特比P帧的编码比特低,而B帧的峰值信噪比PSNR却高于P帧的视频质量,这样对B码率控制带来很大的难度。在JVT-G012码率控制方法中,B帧的QP值是根据B帧两边已编码P帧的QP的平均值,当两个P帧间的B帧数目较大时,此时在编码端B帧的码率控制方法很难同时满足缓冲区的约束和视频质量平缓的要求,尤其是在视频变化激烈时,由于其码率控制的实时控制能力较弱,常常出现缓存容量的上溢或下溢和视频质量的大幅度波动。
发明内容
本发明的目的在于克服现有码率控制方法的不足,提供一种解码端视频质量平缓、编码端缓冲区数据容量平缓的对B帧码率进行控制的方法。
为达到上述发明目的,本发明的对B帧码率进行控制的方法,包括以下步骤:
(1)、在视频编码过程中,在对视频图像组中B帧进行编码时,首先设定一个量化参数阈值TQP,并计算用于该B帧编码的I帧与P帧或者连续两个P帧的量化参数之差DQP;
(2)、然后比较量化参数之差DQP的绝对值与设定的量化参数阈值TQP的大小,若小于量化参数阈值TQP,则采用保证视频质量平缓的QP计算方法计算该B帧的量化参数BQP;若大于量化参数阈值TQP,则采用保证缓冲区数据容量平缓的QP计算方法计算该B帧的量化参数BQP;
(3)、最后,根据步骤(2)计算得到的量化参数BQP对该B帧进行编码。
在本发明中,保证视频质量平缓的QP计算方法可以使B帧的QP值在解码端与两边的I帧、P帧或两边的P帧QP实现平缓的过度,从而保证了视频质量的平缓;而保证缓冲区数据容量平缓的QP计算方法可以使得B帧的QP值在编码器端根据I帧与P帧或帧连续两个P帧的QP变化趋势而变化,从而实现较好的缓冲区数据容量的平缓。
因此,本发明将这两个算法结合起来,在P帧QP变化平缓,即量化参数之差DQP的绝对值小于设定的量化参数阈值TQP时,采用保证视频质量平缓的QP计算方法,而在P帧QP变化激烈时,即量化参数之差DQP的绝对值大于设定的量化参数阈值TQP时,采用保证缓冲区数据容量平缓的QP计算方法,使得在解码端视频质量的平缓和编码端缓冲区数据容量的平缓之间实现了较好的折中。
附图说明
图1是现有技术的视频编码系统框图;
图2是图1所示视频编码系统的码率控制流程图;
图3是视频图像帧在解码端的显示顺序示意图;
图4是视频图像帧在编码端的编码顺序示意图;
图5是本发明对B帧码率进行控制的一种具体实施方式流程图。
具体实施方式
为更好地理解本发明,下面结合具体实施方式对本发明进行更为详细描述。在以下的描述中,当已有的现有技术的详细描述也许会淡化本发明的主题内容时,这些描述在这儿将被忽略。
图1是现有技术的视频编码系统框图。图中,编码器1对输入的视频信号进行压缩编码,产生的编码信息送入缓冲区2,并将编码视频信号的编码比特大小以及平均绝对误差,即MAD值反馈给码率控制器3;缓冲区2中存储输入的编码信息,将编码信息以恒定码率输出到信道中,并将缓冲区2内容数据容量的大小反馈给码率控制器3;码率控制器3根据缓冲区2反馈的数据容量信息,计算编码视频帧的QP值,以使得编码器产生高质量的视频压缩信号的同时满足缓冲区内数据容量的平缓。
图2是图1所示视频编码系统的码率控制流程图。图中,码率控制流程包括:
步骤ST1:计算GOP的第一帧I帧的QP值,其值为上一个GOP中P帧的平均QP值或者是初始化所设定的QP值;
步骤ST2:编码一个I帧;
步骤ST3:计算下一个P帧的QP值,其主要方法是利用线形预测来计算当前帧的MAD值,然后再使用R-D二次模型来计算下一个P帧的量化参数;
步骤ST4:编码一个P帧;
步骤ST5:计算I帧与P帧或两个P帧间的B帧QP值;
步骤ST6:编码一个B帧;
步骤ST7:判断I帧与P帧或两个P帧间的B帧是否编码完?否,转到步骤ST5;
步骤ST8:判断GOP是否编码完?否,转到步骤ST4;
步骤ST9:判断视频序列是否编码完?否,转步骤ST1;
步骤ST10:视频编码结束。
图3是视频图像帧在解码端的显示顺序示意图、图4是视频图像帧在编码端的编码顺序示意图。图中,两个P帧之间的B帧数目为M。在编码过程中,B帧的编码需要先对两边的P帧进行编码,然后才能编码该B帧。在解码端,视频帧的显示顺序为Pn-1、Bn,1、……、Bn,M、Pn、Bn+1,1……Bn+1,M、Pn+1,在编码端视频帧的编码顺序为Pn-1、Bn-1,1、……、Bn-1,M、Pn、Bn,1……Bn,M、Pn+1,其中,Pn表示第n个P帧、Bn,M表示第n组B帧的第M个B帧,显然B帧在编码器端的编码顺序与在解码器端的显示顺序是不同的。
图5是本发明对B帧码率进行控制的一种具体实施方式流程图。
在本实施例中,对B帧码率进行控制的流程对应图2所示码率控制流程的步骤ST5、步骤ST6,具体来讲,包括
步骤ST501:在视频编码过程中,在对视频图像组中B帧进行编码时,首先设定一个量化参数阈值TQP,并计算用于该B帧编码的I帧与P帧或者连续两个P帧的量化参数之差DQP(n);
设I帧的QP为IQP,第n个P帧对应的QP值分别为PQP(n),当n=1时,
DQP(1)的值等于PQP(1)-IQP,当n>1时,DQP(n)的值等于PQP(n)-PQP(n-1)步骤ST502:比较量化参数之差DQP(n)的绝对值|DQP(n)|与设定的量化参数阈值TQP的大小,若小于量化参数阈值TQP,即|DQP(n)|<TQP,则转到步骤ST503;若大于量化参数阈值TQP,即|DQP(n)|>TQP,则转到步骤ST504;
步骤ST503:采用保证视频质量平缓的QP计算方法计算该B帧的量化参数BQP,然后转到步骤ST6;
步骤ST504:采用保证缓冲区数据容量平缓的QP计算方法计算该B帧的量化参数BQP;
(3)、最后,根据步骤2计算得到的量化参数BQP对该B帧进行编码,然后转到步骤ST6;
步骤ST6:编码一个B帧;
在本实施例中,采用保证视频质量平缓的QP计算方法为:
在第n-1和n的P帧间的第i个B帧的QP值BQP(n,i)的QP值为:
BQP(n,i)=PQP(n-1)+StepQP(n,i)+C1
公式(1)中,Int[.]表示取数的整数部分,M表示两个P帧间的B帧数目,1<i≤M,ω1为固定加权值,其常用取值范围为0<ω1≤4,其值愈大,BQP(n,i)的波动也会越大,这样视频质量波动也会越大,反之BQP(n,i)的波动也会变小,这样视频质量变得平缓。C1为QP固定偏移量,其常用取值范围为-5≤C1≤5。
保证缓冲区数据容量平缓的QP计算方法:
在第n-1和n的P帧间的第i个B帧的QP值BQP(n,i)的QP值为:
BQP(n,i)=PQP(n)+StepQP(n,i)+C2
公式(2)中,Int[.]表示取数的整数部分,M表示两个P帧间的B帧数目,1<i≤M,ω2为固定加权值,其常用取值范围为0<ω2≤4,其值愈大,BQP(n,i)的波动也会越大,这样视频质量波动也会越大,反之BQP(n,i)的波动也会变小,这样视频质量变得平缓。C2为QP固定偏移量,其常用取值范围为-5≤C2≤5。
具体实例:
本部分主要针对连续两个P帧,第n-1和n的P帧不同的QP值,以及不同的M取值和不同的阈值TQP得到的BQP(n,i)情况进行说明。
在码率控制过程中,为了避免视频质量的剧烈波动,一般将连续两个P帧的QP值变化限制在±2之间,因此DQP(n)的变化范围限制在-2≤DQP(n)≤2之间,在本具体实例中将列举不同DQP(n)取值情况下的BQP(n,i)的值。并且实例中C1=C2=0,并假设PQP(n)值固定为30。
1、保证视频质量平缓的QP计算方法:TQP=2,M=2,ω1=ω2=1时,依据公式(1)来计算B帧的QP值
情况1:
在编码端QP值变化情况:
在解码端QP值变化情况:
情况2:
在编码端QP值变化情况:
在解码端QP值变化情况:
从这两组实例中,可以看出在解码端,B帧的QP处于两边P帧的QP值之间,并实现了视频帧QP从高到低或从低到高的逐渐过渡,这样可以保证解码端视频质量的平缓。但在编码端,B帧QP的变化没有顺从了P帧QP变化的趋势,使得缓冲区内的数据容量不能很好地保持平缓。
2、采用保证缓冲区数据容量平缓的QP计算方法:TQP=0,M=2,ω1=ω2=1时,依据公式(2)来计算B帧的QP值
情况1:
在编码端QP值变化情况:
在解码端QP值变化情况:
情况2:
在编码端QP值变化情况:
在解码端QP值变化情况:
从这两组实例中,可以看出在编码器端,B帧的QP变化在编码器端顺从了P帧QP变化的趋势,这样在视频变化激烈时,B帧QP能适应视频的变化,可以保证缓冲区内数据的平缓。但在解码端,视频帧QP变化使得质量变化变得不平缓,这就是在编码端,为了保证缓冲区内数据容量的平缓付出的代价。
从这四组实例中可以看出,对B帧的码率控制上,视频质量的平缓和缓冲区内数据容量的平缓是一对矛盾的问题,为了保证缓冲区内数据容量的平缓,就会在一定程度上牺牲视频质量,反之也亦然。在视频变化激烈时,这时编码帧的编码比特会突然增加很多或者降低很多,因此很可能导致缓冲区内书记容量的上溢或下溢,这是在编码端需要避免的情况,因此本发明采用保证缓冲区的码率控制方法可以在一定程度上缓解视频变化给缓冲区带来的影响。同时,在视频变化比较平缓时,此时采用保证质量的算法可以保证视频显示质量的平缓的同时又不会导致缓冲区内数据容量的上溢或下溢。
尽管上面对本发明说明性的具体实施方式进行了描述,但应当清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
Claims (1)
1.一种对B帧码率进行控制的方法,其特征在于,包括以下步骤:
(1)、在视频编码过程中,在对视频图像组中B帧进行编码时,首先设定一个量化参数阈值TQP,并计算用于该B帧编码的I帧与P帧或者连续两个P帧的量化参数之差DQP;
(2)、然后比较量化参数之差DQP的绝对值与设定的量化参数阈值TQP的大小,若小于量化参数阈值TQP,则采用保证视频质量平缓的QP计算方法计算该B帧的量化参数BQP;若大于量化参数阈值TQP,则采用保证缓冲区数据容量平缓的QP计算方法计算该B帧的量化参数BQP;
(3)、最后,根据步骤(2)计算得到的量化参数BQP对该B帧进行编码;
保证视频质量平缓的QP计算方法为:使B帧的QP值在解码端与两边的I帧、P帧或两边的P帧QP实现平缓的过渡,在第n-1和n的P帧间的第i个B帧的QP值BQP(n,i)的QP值为:
BQP(n,i)=PQP(n-1)+StepQP(n,i)+C1
其中,Int[.]表示取数的整数部分,M表示两个P帧间的B帧数目,1<i≤M,PQP(n)为第n个P帧对应的QP值,ω1为固定加权值,取值范围为0<ω1≤4,C1为B帧QP固定偏移量;
保证缓冲区数据容量平缓的QP计算方法为:使B帧的QP值在编码器端根据I帧与P帧或帧连续两个P帧的QP变化趋势而变化,在第n-1和n的P帧间的第i个B帧的QP值BQP(n,i)的QP值为:
BQP(n,i)=PQP(n)+StepQP(n,i)+C2
其中,Int[.]表示取数的整数部分,M表示两个P帧间的B帧数目,1<i≤M, PQP(n)为第n个P帧对应的QP值,ω2为固定加权值,取值范围为0<ω2≤4,C2为B帧QP固定偏移量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810147789 CN101478676B (zh) | 2008-12-08 | 2008-12-08 | 一种对b帧进行码率控制的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810147789 CN101478676B (zh) | 2008-12-08 | 2008-12-08 | 一种对b帧进行码率控制的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101478676A CN101478676A (zh) | 2009-07-08 |
CN101478676B true CN101478676B (zh) | 2011-05-11 |
Family
ID=40839299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200810147789 Expired - Fee Related CN101478676B (zh) | 2008-12-08 | 2008-12-08 | 一种对b帧进行码率控制的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101478676B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102625104B (zh) * | 2012-03-26 | 2014-04-16 | 浙江大学 | 一种视频编码方法 |
CN112004087B (zh) * | 2019-05-27 | 2023-05-09 | 北京君正集成电路股份有限公司 | 一种以双帧作为控制单元的码率控制优化方法及存储介质 |
-
2008
- 2008-12-08 CN CN 200810147789 patent/CN101478676B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101478676A (zh) | 2009-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102630013B (zh) | 基于场景切换的码率控制视频压缩方法和装置 | |
US8401076B2 (en) | Video rate control for video coding standards | |
CN101547349B (zh) | 一种对视频信号的二次avs编码码率控制的方法 | |
US8891892B2 (en) | Image encoding method using adaptive preprocessing scheme | |
CN101742319B (zh) | 基于背景建模的静态摄像机视频压缩方法与系统 | |
US20100111163A1 (en) | Method for p-domain frame level bit allocation for effective rate control and enhanced video encoding quality | |
CN101835042B (zh) | 基于无反馈速率控制的Wyner-Ziv视频编码系统及方法 | |
CN102761741B (zh) | 基于编解码端缓存的视频编码码率控制系统和方法 | |
US8948242B2 (en) | Encoding device and method and multimedia apparatus including the encoding device | |
CN101888550A (zh) | 一种slice头信息中量化参数编码方法和装置 | |
CN103533359A (zh) | 一种h.264码率控制方法 | |
CN106937112A (zh) | 基于h.264视频压缩标准的码率控制方法 | |
US20240040127A1 (en) | Video encoding method and apparatus and electronic device | |
CN100551070C (zh) | 金字塔式双向预测模式的视频恒定质量控制方法 | |
CN101478676B (zh) | 一种对b帧进行码率控制的方法 | |
CN111416978B (zh) | 视频编解码方法及系统、计算机可读存储介质 | |
CN102724507B (zh) | 一种gpu加速编码器码率控制方法 | |
JP2004040811A (ja) | 動映像符号化のためのdct演算量調節方法及びその装置 | |
CN103002284B (zh) | 一种基于场景模型自适应更新的视频编解码方法 | |
US9426474B2 (en) | Transcoder | |
JP2000041240A (ja) | 可変ビットレート符号化装置および方法 | |
US20110182359A1 (en) | Central decoding controller and controlling method thereof | |
JP2005045736A (ja) | 画像信号符号化方法及び装置、符号化制御装置並びにプログラム | |
JP5847199B2 (ja) | 符号化動画像の生成方法、画像符号化方法および画像符号化装置 | |
CN105306934A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110511 Termination date: 20151208 |
|
EXPY | Termination of patent right or utility model |