CN103957410B - 一种基于残差频域复杂度的i帧码率控制方法 - Google Patents

一种基于残差频域复杂度的i帧码率控制方法 Download PDF

Info

Publication number
CN103957410B
CN103957410B CN201410156286.2A CN201410156286A CN103957410B CN 103957410 B CN103957410 B CN 103957410B CN 201410156286 A CN201410156286 A CN 201410156286A CN 103957410 B CN103957410 B CN 103957410B
Authority
CN
China
Prior art keywords
frame
frames
complexity
pieces
frequency domain
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
Application number
CN201410156286.2A
Other languages
English (en)
Other versions
CN103957410A (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.)
Nanjing Post and Telecommunication University
Original Assignee
Nanjing Post and Telecommunication 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 Nanjing Post and Telecommunication University filed Critical Nanjing Post and Telecommunication University
Priority to CN201410156286.2A priority Critical patent/CN103957410B/zh
Publication of CN103957410A publication Critical patent/CN103957410A/zh
Application granted granted Critical
Publication of CN103957410B publication Critical patent/CN103957410B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种基于残差频域复杂度的I帧码率控制方法,该方法为:读入一个I帧图像,若是序列的第一帧,则置初始缓冲区水平为零,并设置I帧码率量化模型的两个参数为经验值;根据目标码率、帧率和缓冲区充满度计算当前I帧的目标比特数;计算亮度分量帧内预测残差的频域系数的平均绝对值作为编码复杂度;根据提出的I帧码率‑量化‑复杂度模型计算量化步长;用计算出的量化步长对当前I帧进行率失真优化编码,确定各宏块编码的最优模式;如果当前编码完成的是序列的第一帧,则不需更新码率模型参数,从序列的第二帧编码完成后,使用之前编码帧的实际编码结果用线性回归的方法更新参数;之后读入下一个I帧进行编码,直至序列所有帧编码完成。

Description

一种基于残差频域复杂度的I帧码率控制方法
技术领域
本发明涉及计算机视频编码的技术领域,特别涉及一种基于残差频域复杂度的I帧码率控制方法。
背景技术
目前,H.264标准以其高效的压缩效率广泛应用于视频编码和传输的各个领域。码率控制作为其中的关键技术通过调整量化参数以使实际码率接近目标码率,同时具有较好的视频质量,是实际视频编码应用中不可缺少的组成部分。但是目前大多数码率控制技术都是针对P帧,而I帧的码率控制技术研究较少。已有的I帧码率控制方法常通过设置经验量化参数进行编码,而没有考虑I帧编码复杂度,导致I帧码率控制效果不佳,缓冲区充满度波动剧烈,从而影响整个序列的编码质量。
为了提高I帧码率控制效果,部分方案对I帧编码复杂度进行估计,并提出新的I帧码率-量化模型进行编码控制,相比提案JVT-H017中的I帧码率控制效果有所改善。比如常用的基于图像空域梯度或像素熵信息的I帧编码复杂度测量等。但是H.264帧内编码采用多种方向模式进行空间预测,并使用率失真优化技术来选择最优模式,之后对预测残差进行整数DCT变换和量化,最后对频域DCT系数进行熵编码。因此基于空域像素梯度或像素熵信息的帧内复杂度测量与H.264的帧内编码特性不符,导致I帧复杂度测量和码率模型不准确,I帧码率控制效果改进有限。而本发明能够很好地解决上面的问题。
发明内容
本发明目的在于提供一种基于残差频域复杂度的I帧码率控制方法,该方法为H.264I帧码率控制方法,能对I帧编码复杂度进行准确测量,从而得到更准确的I帧码率-量化-复杂度模型,改进I帧码率控制效果,提高整个序列的编码质量。
本发明解决其技术问题所采用的技术方案是:本发明提供一种基于残差频域复杂度的I帧码率控制方法,该方法包括如下步骤:
1)读入视频序列中待编码的I帧图像。
2)根据目标码率、预定义帧率和当前缓冲区水平计算分配给当前I帧的目标比特数。公式如下:
其中Rintra为I帧目标比特数,bit_rate为目标码率,frame_rate为预定义帧率,buffer_size为缓冲区大小,curr_buff_level为当前缓冲区水平。
3)计算待编码I帧基于残差频域信息的帧内编码复杂度MATPR,包括如下子步骤:
a)读入要编码的I帧图像,一般原始待编码帧为YUV4:2:0格式。取亮度分量Y做Sobel边缘检测,得到亮度分量每个像素的边缘方向和强度。对一个像素pi,j,记其边缘强度矢量为(dxi,j,dyi,j),则:
像素pi,j的边缘强度和方向定义为:
b)得到亮度分量每个像素的边缘强度和方向后,以4×4块为单位统计边缘方向直方图。即4×4块内的16个像素根据各自边缘方向分类为8种帧内方向预测模式中的一种,每种方向模式的强度由分类到此模式中的所有像素的边缘强度之和进行测量。
c)把具有最大边缘强度的模式作为此4×4块最可能的帧内预测模式。
d)根据上步得到的最可能预测模式和H.264帧内预测的原理,得到每个4×4块的预测块。
e)由原始帧亮度分量和预测图像相减得到以4×4块为单位的残差图像。由于基于边缘检测的帧内模式预测非常准确,得到的残差图像与实际的编码残差非常相似。
f)使用H.264标准中的整数DCT变换对上步得到的空域残差图像进行4×4块为单位的变换,得到亮度残差各4×4块的频域DCT系数。
g)计算整帧亮度残差经过整数DCT变换后的频域系数的平均绝对值MATPR,作为I帧编码复杂度的测量。即:
其中M和N分别是I帧亮度分量以像素为单位的宽和高,TPRi,j是残差图像以4×4块为单位的整数DCT变换系数。
4)根据上述步骤3计算得到I帧编码复杂度MATPR,本发明提出了一种新的I帧码率R-量化Q-编码复杂度MATPR关系模型如下:
其中c和d均大于零,为线性模型参数,β为常数0.9;通过式(5)可得计算当前I帧编码的量化步长Qstep的公式如下:
上述式(5)的I帧R-Q-MATPR模型建立过程如下:
a)I帧编码码率Rintra与两个因素有关,一个是外部因素,即使用的量化参数QP或量化步长Qstep,二是I帧图像本身的特性,即I帧图像的编码复杂度,在本发明中用MATPR测量。H.264的I帧编码具有多种帧内预测模式,即使帧内编码复杂度为零,即需要用于编码残差的比特数为零,仍需要有头比特数来编码预测模式信息,因此在相同量化步长下,I帧码率与编码复杂度具有线性关系,即:
Rintra=(a×MATPR+b)×f(Q) (7)
其中a和b均为正数,是线性模型的两个参数。
b)当I帧编码复杂度固定时,如对特定的某一个I帧图像,I帧码率Rintra将是量化参数QP或量化步长Qstep的函数。码率-量化模型的研究成果较多,如基于残差服从拉普拉斯分布或柯西分布提出的二次率失真模型或指数率失真模型,其中指数模型对I帧编码尤为准确,因此我们采用指数模型来表达I帧R-Q关系,即式(7)中的f(Q)由指数模型表达如下:
其中α和β均大于零,为指数模型参数,Qstep为量化步长。将式(7)与式(8)结合,即可得到基于MATPR的新的I帧码率-量化-复杂度关系模型:
其中c和d为线性模型参数,在编码一个I帧后使用之前帧的实际编码结果采用线性回归的方法进行更新。经过大量实验,参数β对不同的序列趋于稳定,考虑到计算复杂度问题,将其设置为经验常数0.9。
5)用上述步骤4计算出的量化步长Qstep对当前I帧进行帧内编码,即采用率失真优化技术确定每个宏块的实际编码模式。
6)使用之前帧的实际编码结果对式(5)中的参数c和d采用线性回归的方法进行更新。
7)如果序列未编码完,则返回上述步骤1读入新的I帧,继续编码直至序列所有帧编码完成。
有益效果:
1、本发明充分考虑了H.264帧内编码的特性,能对I帧编码复杂度做出了准确预测。
2、本发明有效地解决了缓冲区充满度剧烈波动的问题,提高了整个序列的编码质量。
附图说明
图1为本发明的I帧码率控制整体流程图。
图2为本发明的I帧编码复杂度计算流程图。
具体实施方式
以下结合说明书附图对本发明创造作进一步的详细说明。
如图1和图2所示,本发明提供了一种基于残差频域复杂度的I帧码率控制方法,该方法具体为H.264I帧码率的控制方法,包括如下步骤:
1)读入视频序列中待编码的I帧图像。如果是序列的第一帧,则设置初始缓冲区水平为零,即curr_buff_level=0;并设置I帧码率模型中的参数c和d为经验值。
2)根据目标码率、预定义帧率和当前缓冲区水平计算分配给当前I帧的目标比特数。公式如下:
其中Rintra为I帧目标比特数,bit_rate为目标码率,frame_rate为预定义帧率,buffer_size为缓冲区大小,curr_buff_level为当前缓冲区水平。
3)计算待编码I帧基于残差频域信息的帧内编码复杂度MATPR,包括如下子步骤:
a)读入要编码的I帧图像,取亮度分量Y做Sobel边缘检测,得到亮度分量每个像素的边缘方向和强度。对一个像素pi,j,记其边缘强度矢量为(dxi,j,dyi,j),则:
像素pi,j的边缘强度和方向定义为:
b)得到亮度分量每个像素的边缘强度和方向后,以4×4块为单位统计边缘方向直方图。即4×4块内的16个像素根据各自边缘方向分类为8种帧内方向预测模式中的一种,每种方向模式的强度由分类到此模式中的所有像素的边缘强度之和进行测量。
c)把具有最大边缘强度的模式作为此4×4块最可能的帧内预测模式。
d)由最可能预测模式和H.264帧内预测的原理,得到每个4×4块的预测块。
e)由原始帧亮度分量和预测图像相减得到以4×4块为单位的残差图像。
f)使用H.264标准中的整数DCT变换对上步得到的空域残差图像进行4×4块为单位的变换,得到亮度残差各4×4块的频域DCT系数。
g)计算整帧亮度残差经过整数DCT变换后的频域系数的平均绝对值MATPR,作为I帧编码复杂度的测量。即:
其中M和N分别是I帧亮度分量以像素为单位的宽和高,TPRi,j是残差图像以4×4块为单位的整数DCT变换系数。
4)根据上述步骤2计算得到的当前I帧目标比特数Rintra和上述步骤3计算得到I帧编码复杂度MATPR,是基于I帧码率-量化-复杂度模型:
其中β为经验常数0.9,计算当前I帧编码的量化步长Qstep
其中,上述步骤4中是用残差频域信息进行I帧编码复杂度测量,是用线性模型代替正比例模型。
5)用上述步骤4计算出的量化步长Qstep对当前I帧进行帧内编码。
6)如果当前帧是序列的第一帧,则跳过此步,即I帧码率模型参数c和d不用更新;否则,使用之前帧的实际编码结果对参数c和d采用线性回归的方法进行更新,公式如下:
其中Rintra,i是第i帧的实际编码比特数,MATPRi是第i帧的MATPR,Qstep,i是第i帧的实际量化步长;n的最大值为5,即最多使用5个之前编码帧来更新参数c和d。
7)如果序列未编码完,则返回步骤1)读入新的I帧,继续编码直至序列所有帧编码完成。

Claims (2)

1.一种基于残差频域复杂度的H.264I帧码率控制方法,其特征在于,包括如下步骤:
1)读入当前要编码的I帧图像,如果是序列的第一帧,则设置初始缓冲区水平为零,并设置I帧码率模型中的两个参数为经验值;
2)根据目标码率、预定义帧率、当前缓冲区水平和缓冲区大小计算分配给当前I帧的目标比特数;
R int r a = b i t _ r a t e f r a m e _ r a t e + ( 0.8 × b u f f e r _ s i z e - c u r r _ b u f f _ l e v e l ) - - - ( 1 )
其中Rintra为I帧目标比特数,bit_rate为目标码率,frame_rate为预定义帧率,buffer_size为缓冲区大小,curr_buff_level为当前缓冲区水平;
3)计算待编码I帧基于预测残差频域信息的帧内编码复杂度MATPR;
4)根据步骤2)计算得到的当前I帧目标比特数Rintra和步骤3)计算得到I帧编码复杂度MATPR,由基于MATPR的I帧码率-量化-复杂度模型:
R int r a = ( c × M A T P R + d ) × Q s t e p - β - - - ( 2 )
其中β为经验常数0.9,计算当前I帧编码的量化步长Qstep
Q s t e p = ( R int r a c × M A T P R + d ) - 1 β - - - ( 3 )
5)用步骤4)计算出的量化步长Qstep对当前I帧进行帧内编码;
6)如果当前帧是序列的第一帧,则跳过此步,即I帧码率模型参数c和d不用更新;否则,使用之前帧的实际编码结果对参数c和d采用线性回归的方法进行更新,公式如下:
c d = ( X T · X ) - 1 · X T · Y X n × 2 = [ MATPR i , 1 ] Y n × 1 = [ R i n t r a , i Q s t e p , i - β ] - - - ( 4 )
其中Rintra,i是第i帧的实际编码比特数,MATPRi是第i帧的MATPR,Qstep,i是第i帧的实际量化步长;n的最大值为5,即最多使用5个之前编码帧来更新参数c和d;
7)如果序列未编码完,则返回步骤1)读入新的I帧,继续编码直至序列所有帧编码完成。
2.根据权利要求1所述的基于残差频域复杂度的H.264I帧码率控制方法,其特征在于,所述步骤3)的计算待编码I帧基于预测残差频域信息的帧内编码复杂度MATPR的方法如下;
a)读入要编码的I帧图像,取亮度分量Y做Sobel边缘检测,得到亮度分量每个像素的边缘方向和强度;对一个像素pi,j,记其边缘强度矢量为(dxi,j,dyi,j),则:
dx i , j = p i - 1 , j + 1 + 2 × p i , j + 1 + p i + 1 , j + 1 - p i - 1 , j - 1 - 2 × p i , j - 1 - p i + 1 , j - 1 dy i , j = p i + 1 , j - 1 + 2 × p i + 1 , j + p i + 1 , j + 1 - p i - 1 , j - 1 - 2 × p i - 1 , j - p i - 1 , j + 1 - - - ( 5 )
像素pi,j的边缘强度和方向定义为:
S t r ( p i , j ) = | dx i , j | 2 + | dy i , j | 2 D i r ( p i , j ) = 180 π × arctan ( dy i , j dx i , j ) - - - ( 6 )
b)得到亮度分量每个像素的边缘强度和方向后,以4×4块为单位统计边缘方向直方图,即4×4块内的16个像素根据各自边缘方向分类为8种帧内方向预测模式中的一种,每种方向模式的强度由分类到此模式中的所有像素的边缘强度之和进行测量;
c)把具有最大边缘强度的模式作为此4×4块最可能的帧内预测模式;
d)根据最可能预测模式和H.264帧内预测的原理,得到每个4×4块的预测块;
e)由原始帧亮度分量和预测图像相减得到以4×4块为单位的残差图像;
f)使用H.264标准中的整数DCT变换对上步得到的空域残差图像进行4×4块为单位的变换,得到亮度残差各4×4块的频域DCT系数;
g)计算整帧亮度残差经过整数DCT变换后的频域系数的平均绝对值MATPR,作为I帧编码复杂度的测量,即:
M A T P R = 1 M × N Σ i = 0 M - 1 Σ j = 0 N - 1 | TPR i , j | - - - ( 7 )
其中M和N分别是I帧亮度分量以像素为单位的宽和高,TPRi,j是残差图像以4×4块为单位的整数DCT变换系数。
CN201410156286.2A 2013-12-30 2014-04-17 一种基于残差频域复杂度的i帧码率控制方法 Expired - Fee Related CN103957410B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410156286.2A CN103957410B (zh) 2013-12-30 2014-04-17 一种基于残差频域复杂度的i帧码率控制方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN201310744325 2013-12-30
CN201310744325.6 2013-12-30
CN2013107443256 2013-12-30
CN201410156286.2A CN103957410B (zh) 2013-12-30 2014-04-17 一种基于残差频域复杂度的i帧码率控制方法

Publications (2)

Publication Number Publication Date
CN103957410A CN103957410A (zh) 2014-07-30
CN103957410B true CN103957410B (zh) 2017-04-19

Family

ID=51334619

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410156286.2A Expired - Fee Related CN103957410B (zh) 2013-12-30 2014-04-17 一种基于残差频域复杂度的i帧码率控制方法

Country Status (1)

Country Link
CN (1) CN103957410B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170244975A1 (en) * 2014-10-28 2017-08-24 Mediatek Singapore Pte. Ltd. Method of Guided Cross-Component Prediction for Video Coding
CN104602001A (zh) * 2015-01-19 2015-05-06 北京工业大学 一种基于帧差图像的低码率视频编码方法
CN105992001B (zh) * 2015-03-02 2019-09-20 深圳市腾讯计算机系统有限公司 一种对图片进行量化处理的方法及装置
CN105681793B (zh) * 2016-01-06 2018-10-23 四川大学 基于视频内容复杂度自适应的极低延迟高性能视频编码帧内码率控制方法
CN107027030B (zh) 2017-03-07 2018-11-09 腾讯科技(深圳)有限公司 一种码率分配方法及其设备
CN109788288B (zh) * 2018-12-11 2021-04-16 清华大学 码率控制中i帧量化步长的估算方法及装置
CN109862359B (zh) * 2018-12-29 2021-01-08 北京数码视讯软件技术发展有限公司 基于分层b帧的码率控制方法、装置和电子设备
CN109743572B (zh) * 2019-01-08 2019-12-03 深圳市优微视觉科技有限公司 一种码率模型更新方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6959044B1 (en) * 2001-08-21 2005-10-25 Cisco Systems Canada Co. Dynamic GOP system and method for digital video encoding
CN101754003A (zh) * 2008-12-11 2010-06-23 北京威速科技有限公司 一种稳定视频质量的码率控制方法
CN103179394A (zh) * 2013-01-21 2013-06-26 北京航空航天大学 一种基于区域视频质量平稳的i帧码率控制方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6959044B1 (en) * 2001-08-21 2005-10-25 Cisco Systems Canada Co. Dynamic GOP system and method for digital video encoding
CN101754003A (zh) * 2008-12-11 2010-06-23 北京威速科技有限公司 一种稳定视频质量的码率控制方法
CN103179394A (zh) * 2013-01-21 2013-06-26 北京航空航天大学 一种基于区域视频质量平稳的i帧码率控制方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
H.264图像复杂度自适应的I帧码率控制算法;崔子冠,朱秀昌;《电子与信息学报》;20101130;第32卷(第11期);全文 *

Also Published As

Publication number Publication date
CN103957410A (zh) 2014-07-30

Similar Documents

Publication Publication Date Title
CN103957410B (zh) 一种基于残差频域复杂度的i帧码率控制方法
CN104113755B (zh) 图像编码方法及装置以及其解码方法及装置
CN110062234B (zh) 一种基于区域恰可察觉失真的感知视频编码方法
CN103634601B (zh) 基于结构相似度的高效视频编码感知码率控制优化方法
CN102932641B (zh) 一种恒定质量码率控制方法
CN101404766B (zh) 一种多视点视频信号的编码方法
CN105100797A (zh) 对视频编码的方法和设备以及对视频解码的方法和设备
CN107105278A (zh) 运动矢量自动生成的视频编解码框架
CN101572806B (zh) 一种基于h.264的i帧码率控制方法
TW201119407A (en) Method for coding and method for reconstruction of a block of an image
CN105049850A (zh) 基于感兴趣区域的hevc码率控制方法
CN103888762B (zh) 一种基于hevc标准的视频编码框架
CN101854548A (zh) 一种面向无线多媒体传感器网络的视频压缩方法
CN101895758B (zh) 基于帧复杂度的h.264码率控制方法
CN103024387A (zh) 一种基于感知的多视点视频码率控制方法
CN108924554A (zh) 一种球形加权结构相似度的全景视频编码率失真优化方法
CN105898312A (zh) 用于视频编解码中速率控制精度的方法和装置
CN110446052A (zh) 一种3d-hevc帧内深度图快速cu深度选择方法
CN107707918A (zh) 基于hevc/h.265平均码率控制的优化算法
CN106303530A (zh) 一种融合视觉感知特性的码率控制方法
CN103618906B (zh) 一种基于主观视频质量的h.264码率控制方法
CN102420987A (zh) 基于分层b帧结构的码率控制的自适应比特分配方法
CN103391439B (zh) 一种基于主动宏块隐藏的h.264/avc码率控制方法
CN105898331A (zh) 一种深度视频编码的比特分配和码率控制方法
CN101888561B (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
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170419