CN102355584B - 基于帧内预测编码模式的码率控制方法 - Google Patents

基于帧内预测编码模式的码率控制方法 Download PDF

Info

Publication number
CN102355584B
CN102355584B CN 201110337754 CN201110337754A CN102355584B CN 102355584 B CN102355584 B CN 102355584B CN 201110337754 CN201110337754 CN 201110337754 CN 201110337754 A CN201110337754 A CN 201110337754A CN 102355584 B CN102355584 B CN 102355584B
Authority
CN
China
Prior art keywords
frame
value
buffering area
increment
coded bits
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
CN 201110337754
Other languages
English (en)
Other versions
CN102355584A (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.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
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 University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN 201110337754 priority Critical patent/CN102355584B/zh
Publication of CN102355584A publication Critical patent/CN102355584A/zh
Application granted granted Critical
Publication of CN102355584B publication Critical patent/CN102355584B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明所要解决的技术问题是,提供一种使得编码器输出信号带宽稳定的基于帧内预测编码的模式码率控制方法,本发明对高、低比特率编码模式进行区分,使用不同的率失真模型来进行QP值的计算,具有很好的线性函数特性。每一帧编码完成后即可直接采用多元线性回归方式对率失真模型中α、β、γ三个参数进行实时更新,以便计算出更可靠的QP值来控制编码器输出恒定比特率。为了防止直接采用率失真模型计算QP值,可能会由于模型本身精度的波动,引起不恰当的QP计算结果,本发明通过波动范围限定处理来实现增量式QP值的调节控制,增量式控制即能保证QP值变化的方向或趋势符合调节目标的要求,又能防止波动误差。

Description

基于帧内预测编码模式的码率控制方法
技术领域
本发明涉及视频图像压缩技术,特别是帧内预测模式下恒定比特流控制方法。
背景技术
高清晰、高分辨率的视频图像编码,已成为视频图像压缩技术的发展必须要考虑的重点。全I-帧编码过程中不需要有多重参考帧存储在内存,也就不需要访问若干参考帧进行运动估值和率失真优化计算的时间开销,同时也保证了编码延迟较小,重构解码图像的速度更快效率更高。从解码视觉质量方面来讲,在相同的量化参数下帧内预测编码与帧间预测编码相比,主观和客观重构失真更小。并且帧内预测编码不涉及运动补偿过程,所以预测误差将不会存在蔓延情况。在如在网络传输过程中存在丢包情况,对帧内预测的帧编码重构后的视觉质量影响非常有限。但是帧内预测编码与帧间预测编码相比,I-帧编码只能消除视频图像的空间冗余,在消除时域冗余方面没有贡献,因此它需要多于帧间预测的四倍的编码比特。由于现在网络传输中支持的传输带宽越来越大,已能很好地满足全I-帧编码格式的文件传输。
传统的数字视频录像机都支持DV、DV50、DVCPRO HD、AVC-Intra的全I-帧编码格式。2010年1月视频编码标准开发联合协作组(JCT-VC)提出的新一代的视频图像编码标准新标准HEVC(高效视频编码)也支持全I-帧编码格式。在全I-帧编码的实现上,码率控制是其中的而一个难点与重点,即如何通过设置合适的量化参数(量化步长值)QP来控制编码器输出的信号带宽稳定。
发明内容
本发明所要解决的技术问题是,提供一种使得编码器输出信号带宽稳定的基于帧内预测编码的模式码率控制方法。
本发明解决上述技术问题所采用的技术方案是,基于帧内预测编码的模式码率控制方法,包括以下步骤:
初始化步骤:确定当前编码模式,进入起始编码QP值计算步骤;
起始编码QP值计算步骤:依次对起始编码的前三帧中的一帧计算帧编码复杂度,设置QP值,所述起始编码的前三帧分别为第0、1、2帧,之后进入合法性检测步骤;
QP值调整步骤:利用缓冲区的反馈差值得到帧编码比特数,同时,计算帧编码复杂度,将帧编码比特数与帧编码复杂度送入率失真模型进行计算得到QP值,之后进入合法性检测步骤;
所述率失真模型为:
当前编码模式为高比特率编码模式时:R=α+β·Q+γ·C;
当前编码模式为低比特率编码模式时:lnR=α+β·Q+γ·lnC;
其中,α、β、γ均为更新率失真模型的参数,Q为QP值,R为帧编码比特数,C为帧编码复杂度;
合法性检测步骤:对QP值进行取整处理、波动范围限定处理、边界限定处理;
编码步骤:用当前的QP值作为量化步长值顺次编码一帧,记录当前帧的帧编码比特数,进入缓冲区更新步骤;
缓冲区更新步骤:更新缓冲区并计算反馈差值,之后进入参数更新步骤;
参数更新步骤:判断当前已编码的帧序号是否大于等于2,如是则根据当前已编码帧的帧编码比特数、帧编码复杂度和编码使用的QP值,采用最小二乘法的多元线性回归算法更新率失真模型的参数α、β、γ,之后进入编码完毕判断步骤;如否,则直接进入编码完毕判断步骤;
编码完毕判断步骤:判断是否还有未编码的帧,如是,依次提取一个未编码帧作为当前帧,如当前帧序号大于等于3,则返回QP值调整步骤,如当前帧序号小于3,则返回起始编码QP值计算步骤;如否,编码结束。
本发明对高、低比特率编码模式进行区分,使用不同的率失真模型来进行QP值的计算,具有很好的线性函数特性。由于率失真模型可以直接理解为二元一次线性模型,在第2帧的编码完成后,率失真模型得到第一组α、β、γ参数值,从第3帧开始,每一帧编码完成后即可直接采用多元线性回归方式对率失真模型中α、β、γ三个参数进行实时更新,以便计算出更可靠的QP值来控制编码器输出恒定比特率(码率)。为了防止直接采用率失真模型计算QP值,可能会由于模型本身精度的波动,引起不恰当的QP计算结果,本发明通过波动范围限定处理来实现增量式QP值的调节控制,增量式控制即能保证QP值变化的方向或趋势符合调节目标的要求,又能防止波动误差。
具体的,QP值调整步骤中帧编码比特数的计算方法为:利用缓冲区的反馈差值e(t)进行PID控制修正,将修正后的缓冲区的反馈差值u(t)计算得到帧编码比特数的增量ΔR,帧编码比特数的增量ΔR与上一帧编码比特数Rpre相加得到当前的帧编码比特数R;
修正后的缓冲区的反馈差值u(t)为
Figure BDA0000104135950000021
KP、KI、KD为PID控制的比例参数、积分参数、微分参数;经过PID控制对反馈差值进行偏差调节,以保证得到更准确的帧编码比特数的增量。在码率控制的执行中,这三个参数的值可以适当调节以满足控制要求。
帧编码比特数的增量ΔR=u(t)-u(t-1),u(t)为当前得到的修正后的缓冲区的反馈差值,u(t-1)为上一次得到的修正后的缓冲区的反馈差值。
起始编码QP值计算步骤以及QP值调整步骤中利用像素点平均几何梯度来计算帧编码复杂度C:
C = Σ i = 1 M - 1 Σ j = 1 N - 1 | ( l i , j - l i + 1 , j ) × ( l i , j - l i . j + 1 ) | ( M - 1 ) ( N - 1 )
其中,li,j表示像素点在位置坐标(i,j)上的灰度值,M×N表示视频图像的分辨率,M为扫描列数,N为扫描行数。
具体的,对率失真模型进行全微分变换,得到:
在高比特率编码模式下:
dR = βdQ + γdC ⇒ ΔR = β · ΔQ + γ · ΔC ;
在低比特率编码模式下:
dR R = βdQ + γ · dC C ⇒ ΔR = β · R · dQ + γ · 1 C · R · ΔC ;
在全I帧编码中,当前帧和最相邻同类型帧(即前一I帧)QP值波动被限制在很小的范围内。用差值来表现先后两帧的变化的增量Δ。定义ΔR=R-Rpre,ΔC=C-Cpre,ΔQ=Q-Q,Q为当前帧的QP值,R为当前帧的帧编码比特数,C为当前帧的帧编码复杂度,Qpre为上一帧的QP值,Rpre为上一帧的帧编码比特数,Cpre为上一帧的帧编码复杂度。那么计算当前帧Q,可以通过Q=Qpre+ΔQ得到。
那么,对于高比特率下Hmode的编码,增量式QP计算为:
Q=Qpre+ΔQ=Qpre+(ΔR-γ·ΔC)/β;
对于低比特率下的编码,增量式QP计算为:
Q = Q pre + ΔQ = Q pre + ( ΔR - γ · R pre C · ΔC ) / ( β · R pre ) .
当使用全微分方法来进行QP值调整步骤,则具体为:
利用缓冲区的反馈差值得到帧编码比特数的增量,同时,计算帧编码复杂度的增量,将帧编码比特数的增量与帧编码复杂度的增量送入率失真模型进行计算得到QP值的增量,QP值的增量与上一帧编码的QP值相加得到当前的QP值,之后进入合法性检测步骤;
在当前编码模式为高比特率编码模式时,率失真模型计算QP值的增量为:
ΔR=β·ΔQ+γ·ΔC
在当前编码模式为低比特率编码模式时,率失真模型计算QP值的增量为:
ΔR = β · R · ΔQ + γ · 1 C · R · ΔC
其中,α、β、γ均为更新率失真模型的参数,ΔQ为QP值的增量,ΔR为帧编码比特数的增量,ΔC为帧编码复杂度的增量。
具体的,QP值调整步骤中帧编码比特数的增量的计算方法为:利用缓冲区的反馈差值e(t)进行PID控制修正,将修正后的缓冲区的反馈差值u(t)计算得到帧编码比特数的增量ΔR;
QP值调整步骤中帧编码复杂度的增量的计算方法为:先计算当前的帧编码复杂度C,再用当前的帧编码复杂度C减去上一帧编码复杂度Cpre得到帧编码复杂度的增量ΔC。
进一步的,初始化步骤中,高、低比特率的分解判断方式为:计算(BitRate/FrameRate)/(M×N),将计算结果与当前YUV信号的采样率对应的阈值φ进行比较,如(BitRate/FrameRate)/(M×N)<φ,则确定当前编码模式为低比特率编码模式,否则为高比特率编码模式;其中BitRate为目标比特率,FrameRate为帧频,M为扫描列数,N为扫描行数。
本发明的有益效果是,保证编码器在进行全I帧编码时能输出接近理想状况的恒定码率。
附图说明
图1为实施例流程图。
图2为实施例功能模块示意图。
图3为理想虚拟缓冲区状态示意图。
图4为本实施的缓冲区状态与规定QP值编码的缓冲区状态示意图。
具体实施方式
本发明的控制步骤如下:
初始化步骤:确定当前编码模式为高或低比特率编码模式,进入起始编码QP值计算步骤;
对于高低比特率的分界判断方式为,YUV采样率SY∶SU∶SV,常见的有4∶4∶4、4∶2∶2、4∶2∶0、4∶1∶1、4∶0∶0等。定义阈值φ=(SY+SU+SV)/4,如采样率4∶2∶0时φ=1.5,采样率4∶4∶4时φ=3。当BitRate/FrameRate/(M×N)<φ为低比特率编码模式Lmode,否则称为高比特率编码模式Hmode,BitRate为目标比特率,FrameRate为帧频,M为扫描列数,N为扫描行数;
起始编码QP值计算步骤:依次对起始编码的前三帧中的一帧计算帧编码复杂度,设置QP值,所述起始编码的前三帧分别为第0、1、2帧,之后进入合法性检测步骤;
由于在第2帧编码完成之前无法得到完整的一组α、β、γ参数值,无法使用率失真模型进行第0、1、2帧的QP值计算,第0、1、2帧的QP值可预先设置,也可仅设置首帧(第0帧)的QP值,从第1帧开始进行QP值调节控制;
优选的,起始编码QP值计算步骤中对起始编码的前三帧分别设置QP值的具体方法为:
当前帧的序号为0时,使用预设QP值作为第0帧的QP值;
当前帧的序号为1时,读取当前缓冲区的反馈差值,如缓冲区的反馈差值大于0,则设置第1帧的QP值为第0帧的QP值加d;如缓冲区的反馈差值等于0,则设置第1帧的QP值为第0帧的QP值;如缓冲区的反馈差值小于0,则设置第1帧的QP值为第0帧的QP值减d;
当前帧的序号为2时,读取当前缓冲区的反馈差值,如缓冲区的反馈差值大于0,则设置第2帧的QP值为第1帧的QP值加d;如缓冲区的反馈差值等于0,则设置第2帧的QP值为第1帧的QP值;如缓冲区的反馈差值小于0,则设置第2帧的QP值为第1帧的QP值减d;d为调节步长,可按实际需求进行设置,具体可取值为1;
QP值调整步骤:利用缓冲区的反馈差值e(t)进行PID控制修正,将修正后的缓冲区的反馈差值u(t)计算得到帧编码比特数的增量ΔR,帧编码比特数的增量ΔR与上一帧编码比特数Rpre相加得到当前的帧编码比特数R,u(t)为
Figure BDA0000104135950000051
KD、KI、KD为PID控制的比例参数、积分参数、微分参数,根据经验可以设置它们的初始化值分别为KP=0.75,KI=0.25,KD=0.05,帧编码比特数的增量ΔR=u(t)-u(t-1),u(t)为当前得到的修正后的缓冲区的反馈差值,u(t-1)为上一次得到的修正后的缓冲区的反馈差值;
同时,利用像素点平均几何梯度来计算帧编码复杂度C:
C = Σ i = 1 M - 1 Σ j = 1 N - 1 | ( l i , j - l i + 1 , j ) × ( l i , j - l i . j + 1 ) | ( M - 1 ) ( N - 1 ) ,
其中,li,j表示像素点在位置坐标(i,j)上的灰度值,M×N表示视频图像的分辨率,M为扫描列数,N为扫描行数;之后将帧编码比特数R与帧编码复杂度C送入率失真模型进行计算得到QP值,之后进入合法性检测步骤;
所述率失真模型为:
当前编码模式为高比特率编码模式时:R=α+β·Q+γ·C        当前编码模式为低比特率编码模式时:lnR=α+β·Q+γ·lnC
其中,α、β、γ均为更新率失真模型的参数,Q为QP值,R为帧编码比特数,C为帧编码复杂度;
可选的,率失真模型使用全微分方法来进行QP值调整,具体如下:利用缓冲区的反馈差值e(t)进行PID控制修正,将修正后的缓冲区的反馈差值u(t)=
Figure BDA0000104135950000061
计算得到帧编码比特数的增量ΔR=u(t)-u(t-1);同时,计算当前的帧编码复杂度C,再用当前的帧编码复杂度C减去上一帧编码复杂度Cpre得到帧编码复杂度的增量ΔC,将帧编码比特数的增量ΔR与帧编码复杂度的增量ΔC送入率失真模型进行计算得到QP值的增量ΔQ,QP值的增量ΔQ与上一帧编码的QP值Qpre相加得到当前的QP值,进入合法性检测步骤;
合法性检测步骤:对QP值进行取整处理、波动范围限定处理、边界限定处理;
取整处理,即将QP值调整步骤中输出的QP值进行四舍五入的取整数;
QP值进行波动范围限定处理具体为:让当前的QP值Q满足Q=max{Qpre-p,min{Q,Qpre+p}},Qpre为上一帧的QP值,p为预设的波动范围;
对QP值进行边界限定处理具体为:调整当前的QP  值为max{最小QP值,min{Q,最大QP值}},再进入编码步骤,所述最小QP值为编码器可设置的最小量化步长值,所述最大QP值为编码器可设置的最大量化步长值;
编码步骤:用当前的QP值作为量化步长值顺次编码一帧,记录当前帧的当前帧的帧编码比特数作为R,进入缓冲区更新步骤。
缓冲区更新步骤:更新缓冲区并计算反馈差值e(t)=B(t)-T,之后进入参数更新步骤;
其中B(t)为当前缓冲区充盈量,T为预设缓冲区目标量,当前缓冲区充盈量 B ( t ) = B ( t - 1 ) + R - BitRate FrameRate ,
其中B(t-1)为上一次编码的当前缓冲区充盈量,R为本次编码的帧编码比特数,BitRate为目标比特率,FrameRate为帧频。
参数更新步骤:判断当前已编码的帧序号是否大于等于2,如是则根据当前已编码帧的帧编码比特数、帧编码复杂度和编码使用的QP值,采用最小二乘法的多元线性回归算法更新率失真模型的参数α、β、γ,之后进入编码完毕判断步骤;如否,则直接进入编码完毕判断步骤。
编码完毕判断步骤:判断是否还有未编码的帧,如是,依次提取一个未编码帧作为当前帧,如当前帧序号大于等于3,则返回QP值调整步骤,如当前帧序号小于3,则返回起始编码QP值计算步骤;如否,编码结束。可选的,本领域技术人员也可很容易地对本发明中某些步骤的顺序进行调整,比如,在编码完毕判断步骤总,对提取未编码的帧的帧序号进行判断也可放在初始化步骤之后进行。
实施例
以应用于HEVC编码为例。为了高精度解决HEVC中帧内预测编码模式下恒定比特率输出,本实施采用一种基于二元线性率失真模型的HEVC帧内预测编码码率控制方法。该方法的优势有三:一是采用在高/低比特率下表现形式不同的二元一次线性率失真模型,二是采用PID反馈缓冲区调节,三是采用增量式QP计算。该码率控制方法已经实现在HEVC参考模型软件HM3.4中。实际的视频编码测试表明,该方法具有输出比特控制精确,缓冲区控制稳定,解码视觉质量平滑的特点。
图1是本实施的流程图,率失真模型采用全微分方式进行计算,具体包括以下步骤:
步骤100:参数初始化。从配置文件中读取编码器配置参数;码率控制的缓冲区大小配置,预设置上溢和下溢线、缓冲区目标线T。
步骤101:帧类型判断。判断是否为全I帧编码,是则进入步骤102,否则异常结束。由于本发明只涉及全I帧编码,所以本步骤作为入口判断。
步骤102:帧编码序号判断。依次提取一个未编码帧作为当前帧,判断当前帧的序号是否小于3,即第0帧、第1帧、第2帧为是,其它为否。如是,则进入步骤103,否则同时进入步骤108与109。本步骤的作用是将起始编码的前三帧和后续编码的帧区分开来。由于本发明使用的二元一次率失真模型在后期参数更新(多元线性回归)的时候至少使用到的样本数不得低于3,所以本步骤的判断以第2帧作为分界点。
步骤103:前三帧预处理分支。首先计算帧编码复杂度,然后将前三帧的序号分开,第0帧进入步骤104,第1帧进入步骤105,第2帧进入步骤106。
步骤104:第0帧即起始编码第一帧,直接采用从配置文件读取或手动输入参数的方法对QP值Q0进行初始化,而后进入步骤107。
步骤105:为第1帧分配QP值。读取缓冲区反馈差值e(1),e(1)为正则分配当前帧QP值为Q1=Q0+1,e(1)为负则分配当前帧QP值为Q1=Q0-1,e(1)为零则Q1=Q0,之后进入步骤107。
步骤106:为第2帧分配QP值。读取缓冲区反馈差值e(2),e(2)为正则分配当前帧QP值为Q2=Q1+1,e(1)为负则分配当前帧QP值为Q2=Q1-1,e(1)为零则Q2=Q1,之后进入步骤107。
步骤107:起始编码的QP值合法性检查。边界绑定为Q=max{0,min{Qt,51}}|t=0,1,2,因为HEVC规定的QP值选取必须落在[0,51]区间内。之后进入步骤114进行实际编码。
步骤108:帧复杂度计算。帧复杂度计算为全I帧编码纹理复杂度计算,利用像素点平均几何梯度计算,之后进入步骤109:
C = Σ i = 1 M - 1 Σ j = 1 N - 1 | ( l i , j - l i + 1 , j ) × ( l i , j - l i . j + 1 ) | ( M - 1 ) ( N - 1 ) .
步骤109:帧复杂度增量计算。当前帧与上一帧的帧复杂度之差表示,即ΔC=C-Cpre。本步骤的计算结果将直接用于增量式QP计算,进入步骤112。
步骤110:获取缓冲区反馈差值e(t),进入步骤111。
步骤111:PID差值调节获取比特增量。用模拟PID控制器来修正缓冲区状况,u(t)为修正后的缓冲区反馈差值:
u ( t ) = K P e ( t ) + K I Σ τ = 0 t e ( τ ) + K D [ e ( t ) - e ( t - 1 ) ] ,
其中PID三项参数分别为KP,KI和KD。帧编码比特数的增量ΔR用u(t)来进行分配,ΔR=u(t)-u(t-1),帧编码比特数的增量ΔR计算完毕之后进入步骤112。
步骤112:增量式QP值计算。从步骤109获得复杂度增量ΔC,从步骤111中获得比特增量ΔR,对应当前的编码模式进行QP值的计算,之后进入步骤113:
Q=Qpre+ΔQ=Qpre+(ΔR-γ·ΔC)/βHmode
Q = Q pre + ΔQ = Q pre + ( ΔR - γ · R C · ΔC ) / ( β · R ) L mode
步骤113:QP值进行取整、波动范围限定及边界限定定。从步骤112计算获得的Q需要通过本步骤的修正,之后进入步骤114。Q值是四舍五入后的整数,当前帧的QP值被限定在前一帧QP值正负2的范围内:
Q=max{Qpre-2,min{Q,Qpre+2}},
同时将不得超过HEVC规定的QP值定义范围:
Q=max{0,min{Q,51}}。
步骤114:编码当前帧。用当前帧对应的QP值进行对该帧的编码,记录当前帧的当前帧的帧编码比特数R,。编码过程使用HEVC的各项配置功能均可,之后进入步骤115。
步骤115:缓冲区状态更新。虚拟缓冲区的反馈差值为e(t)=B(t)-T,其中缓冲区充盈度量(缓冲区被占用的实际高度)用B(t)表示,缓冲区目标线常量用T表示,计算得出反馈差值用表示。
虚拟缓冲区的高度在编码完成一帧后需要立即更新,将帧编码输出的比特数加入到缓冲区中,同时需要减去流出平均常量,之后进入步骤116。
更新的具体为:
B ( t ) = B ( t - 1 ) + R - BitRate FrameRate .
步骤116:率失真模型更新。模型参数有三个分别为α、β、γ。在本步骤中利用最新编码的帧所对应的R、Q、C值来更新三个模型参数,直接地采用最小二乘法的多元线性回归方法计算,之后进入步骤117。多元线性回归方法为本领域技术人员的常用技术手段,在此不再赘述。
步骤117:编码结束判断。本步骤用于检测是否编码完成。检测编码是否完成有两个条件:一是当前编码帧序号已经达到预设定的值,二是待编码的视频序列源已经全部编码完成。这两个条件中的任意一条为真,则认为编码完成并正常结束视频编码,否则跳至步骤102处继续进行。
图2给出了本发明具体实施的系统功能框图,包含缓冲区模块、比特增量计算模块、复杂度增量计算模块、QP值获取模块、HEVC编码器模块,缓冲区模块的配置和及时更新是整个码率控制的主要参考,它的反馈值直接用于比特增量计算模块。在比特增量计算模块中采用PID控制器来反映缓冲区的变化,并计算得出需要调节的比特增量。在复杂度增量计算模块中,通过读取视频序列源的数据来计算获得当前帧像素点平均几何梯度值,再与上一已编码帧的复杂度差值计算得出复杂度增量。在QP值获取模块中根据增量比特和增量帧复杂度,采用最近更新的率失真模型参数,直接计算得出增量式QP值,并带入HEVC编码器进行编码。
为了说明本发明的整体性能,将本实施例实现在HEVC参考模型软件HM3.4中,并实施测试。由于本实施例是基于HEVC帧内预测编码模式下的码率控制首次实现,因此没有直接对应的码率控制既成方法相比较。所以给出本实施例的增量式QP值与固定QP值编码测试的比较。在测试中,两种编码方式的配置完全一致,具体包含有:Frame index:0-149(150frames),CU size/depth:64/4,RQT trans.size(min/max):4/32,Max RQT depth inter:3,Max RQT depth intra:3,Min PCM size:128,Motion search range:64,Intra period:1,Entropycoder:CABAC,TOOL CFG:ALF:1IBD:1HAD:1SRD:1RDQ:1SQP:0ASR:0PAD:0LDC:1NRF:0BQP:0GPB:1LComb:1LCMod:0FEN:1RQT:1MRG:1LMC:1Slice:G= 0 M=0EntropySlice:M=0CIP:0SAO:1PCM:0。
下表给出了本实施例方法与固定QP值测试的比较:
Figure BDA0000104135950000101
从上表看出,本实施方法的实际输出比特率ABR非常接近目标比特率TBR,相对误差的最大0.0750%(city_cif,800kbps),最小0.0000%(football_cif,200kbps和400kbps),平均0.0231%。反映了本实施例方法码率控制精度高、性能好。
如图3所示,缓冲区目标线是一条预设定高度的水平线,在全I帧编码中位于缓冲区的中央位置。上溢区、下溢区分别占缓冲区高度的10%,以检测和避免在编码过程中不必要的溢出。当前缓冲区高度曲线是一条随着编码过程时刻变化的曲线。码率控制工作的主要核心就是要保证这条曲线尽量接近缓冲区目标线。当前的缓冲区高度曲线上下紧紧围绕缓冲区目标线波动是比较理想的状况。
图4给出了实验序列sign_irene_cif在目标比特率2mbps下使用本实施方法以初始QP值24编码以及使用固定QP值36进行编码的缓冲区状态图。从图3中看以看出,本实施的控制方法在使得编码过程中的缓冲区曲线非常接近目标线并紧紧地围绕在目标线周围,而使用固定QP值(QP值为36)编码的缓冲区曲线起伏很大,在开始阶段持续走低,在编码的后期持续走高,曲线状态不规则。从该测试表明,本发明方法在缓冲区控制能力上很强,可以非常精确地控制缓冲区工作状态。

Claims (10)

1.基于帧内预测编码的模式码率控制方法,其特征在于,包括以下步骤:
初始化步骤:确定当前编码模式,进入起始编码QP值计算步骤;
起始编码QP值计算步骤:依次对起始编码的前三帧中的一帧计算帧编码复杂度,设置QP值,所述起始编码的前三帧分别为第0、1、2帧,之后进入合法性检测步骤;
QP值调整步骤:利用缓冲区的反馈差值得到帧编码比特数,同时,计算帧编码复杂度,将帧编码比特数与帧编码复杂度送入率失真模型进行计算得到QP值,之后进入合法性检测步骤;
当前编码模式为高比特率编码模式时,所述率失真模型为:
R=α+β·Q+γ·C;
当前编码模式为低比特率编码模式时,所述率失真模型为:
lnR=α+β·Q+γ·lnC;
其中,α、β、γ均为更新率失真模型的参数,Q为QP值,R为帧编码比特数,C为帧编码复杂度;
合法性检测步骤:对QP值进行取整处理、波动范围限定处理、边界限定处理;
编码步骤:用当前的QP值作为量化步长值顺次编码一帧,记录当前帧的帧编码比特数,进入缓冲区更新步骤;
缓冲区更新步骤:更新缓冲区并计算反馈差值,之后进入参数更新步骤;
参数更新步骤:判断当前已编码的帧序号是否大于等于2,如是则根据当前已编码帧的帧编码比特数、帧编码复杂度和编码使用的QP值,采用最小二乘法的多元线性回归算法更新率失真模型的参数α、β、γ,之后进入编码完毕判断步骤;如否,则直接进入编码完毕判断步骤;
编码完毕判断步骤:判断是否还有未编码的帧,如是,依次提取一个未编码帧作为当前帧,如当前帧序号大于等于3,则返回QP值调整步骤,如当前帧序号小于3,则返回起始编码QP值计算步骤;如否,编码结束。
2.如权利要求1所述基于帧内预测编码的模式码率控制方法,其特征在于,QP值调整步骤中帧编码比特数的计算方法为:利用缓冲区的反馈差值e(t)进行PID控制修正,将修正后的缓冲区的反馈差值u(t)计算得到帧编码比特数的增量△R,帧编码比特数的增量△R与上一帧编码比特数Rpre相加得到当前的帧编码比特数R。
3.如权利要求1所述基于帧内预测编码的模式码率控制方法,其特征在于,QP值调整步骤具体为:
利用缓冲区的反馈差值得到帧编码比特数的增量,同时,计算帧编码复杂度的增量,将帧编码比特数的增量与帧编码复杂度的增量送入率失真模型进行计算得到QP值的增量,QP值的增量与上一帧编码的QP值相加得到当前的QP值,之后进入合法性检测步骤;
在当前编码模式为高比特率编码模式时,率失真模型计算QP值的增量为:
△R=β·△Q+γ·△C;
在当前编码模式为低比特率编码模式时,率失真模型计算QP值的增量为:
ΔR = β · R · ΔQ + γ · 1 C · R · ΔC ;
其中,α、β、γ均为更新率失真模型的参数,△Q为QP值的增量,△R为帧编码比特数的增量,△C为帧编码复杂度的增量。
4.如权利要求3所述基于帧内预测编码的模式码率控制方法,其特征在于,QP值调整步骤中帧编码比特数的增量的计算方法为:利用缓冲区的反馈差值e(t)进行PID控制修正,将修正后的缓冲区的反馈差值u(t)计算得到帧编码比特数的增量△R;
QP值调整步骤中帧编码复杂度的增量的计算方法为:先计算当前的帧编码复杂度C,再用当前的帧编码复杂度C减去上一帧编码复杂度Cpre得到帧编码复杂度的增量△C。
5.如权利要求2或4所述基于帧内预测编码的模式码率控制方法,其特征在于,修正后的缓冲区的反馈差值u(t)为
Figure FDA00003010493200022
KP、KI、KD为PID控制的比例参数、积分参数、微分参数;
帧编码比特数的增量△R=u(t)-u(t-1),u(t)为当前得到的修正后的缓冲区的反馈差值,u(t-1)为上一次得到的修正后的缓冲区的反馈差值。
6.如权利要求2或4所述基于帧内预测编码的模式码率控制方法,其特征在于,起始编码QP值计算步骤以及QP值调整步骤中利用像素点平均几何梯度来计算帧编码复杂度C:
C = Σ i = 1 M - 1 Σ j = 1 N - 1 | ( l i , j - l i + 1 , j ) × ( l i , j - l i , j + 1 ) | ( M - 1 ) ( N - 1 )
其中,li,j表示像素点在位置坐标(i,j)上的灰度值,M×N表示视频图像的分辨率,M为扫描列数,N为扫描行数。
7.如权利要求1所述基于帧内预测编码的模式码率控制方法,其特征在于,初始化步骤中,计算(BitRate/FrameRate)/(M×N),将计算结果与当前YUV信号的采样率对应的阈值φ进行比较,如(BitRate/FrameRate)/(M×N)<φ,则确定当前编码模式为低比特率编码模式,否则为高比特率编码模式;其中BitRate为目标比特率,FrameRate为帧频,M为扫描列数,N为扫描行数。
8.如权利要求7所述基于帧内预测编码的模式码率控制方法,其特征在于,所述当前YUV信号的采样率对应的阈值φ为(SY+SU+SV)/4,其中SY:SU:SV为YUV信号的采样率。
9.如权利要求1所述基于帧内预测编码的模式码率控制方法,其特征在于,起始编码QP值计算步骤中对起始编码的前三帧分别设置QP值的具体方法为:
当前帧的序号为0时,使用预设QP值作为第0帧的QP值;
当前帧的序号为1时,读取当前缓冲区的反馈差值,如缓冲区的反馈差值大于0,则设置第1帧的QP值为第0帧的QP值加d;如缓冲区的反馈差值等于0,则设置第1帧的QP值为第0帧的QP值;如缓冲区的反馈差值小于0,则设置第1帧的QP值为第0帧的QP值减d;
当前帧的序号为2时,读取当前缓冲区的反馈差值,如缓冲区的反馈差值大于0,则设置第2帧的QP值为第1帧的QP值加d;如缓冲区的反馈差值等于0,则设置第2帧的QP值为第1帧的QP值;如缓冲区的反馈差值小于0,则设置第2帧的QP值为第1帧的QP值减d,所述d为调节步长。
10.如权利要求1所述基于帧内预测编码的模式码率控制方法,其特征在于,所述对QP值进行波动范围限定处理具体为:让当前的QP值Q满足Q=max{Qpre-p,min{Q,Qpre+p}},Qpre为上一帧的QP值,p为预设的波动范围;
所述对QP值进行边界限定处理具体为:调整当前的QP值为max{最小QP值,min{Q,最大QP值}},再进入编码步骤,所述最小QP值为编码器可设置的最小量化步长值,所述最大QP值为编码器可设置的最大量化步长值。
CN 201110337754 2011-10-31 2011-10-31 基于帧内预测编码模式的码率控制方法 Expired - Fee Related CN102355584B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110337754 CN102355584B (zh) 2011-10-31 2011-10-31 基于帧内预测编码模式的码率控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110337754 CN102355584B (zh) 2011-10-31 2011-10-31 基于帧内预测编码模式的码率控制方法

Publications (2)

Publication Number Publication Date
CN102355584A CN102355584A (zh) 2012-02-15
CN102355584B true CN102355584B (zh) 2013-09-25

Family

ID=45579072

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110337754 Expired - Fee Related CN102355584B (zh) 2011-10-31 2011-10-31 基于帧内预测编码模式的码率控制方法

Country Status (1)

Country Link
CN (1) CN102355584B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104113761B (zh) * 2013-04-19 2018-05-01 北京大学 一种视频编码中的码率控制方法及编码器
CN103702119B (zh) * 2013-12-20 2017-05-10 电子科技大学 低延迟视频编码基于可变帧率的码率控制方法
CN103686172B (zh) * 2013-12-20 2016-08-17 电子科技大学 低延迟视频编码可变比特率码率控制方法
CN107154918B (zh) * 2016-03-03 2019-11-08 北京大学 基于pid控制的视频直播传输控制方法及系统
CN106231305B (zh) * 2016-07-26 2019-04-12 中国科学院自动化研究所 基于梯度的全i帧视频码率控制方法及控制系统
CN109996076B (zh) 2016-10-12 2021-08-06 深圳市大疆创新科技有限公司 码率控制的方法、计算机系统和装置
CN108495130B (zh) * 2017-03-21 2021-04-20 腾讯科技(深圳)有限公司 视频编码、解码方法和装置、终端、服务器和存储介质
WO2020107449A1 (zh) * 2018-11-30 2020-06-04 Oppo广东移动通信有限公司 编码方法、编码器以及计算机存储介质
CN112631120B (zh) * 2019-10-09 2022-05-17 Oppo广东移动通信有限公司 Pid控制方法、装置和视频编解码系统
CN111698518A (zh) * 2020-06-11 2020-09-22 莆田学院 一种基于pid控制理论的3d码率控制方法和存储设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1471319A (zh) * 2002-07-22 2004-01-28 中国科学院计算技术研究所 结合率失真优化的码率控制的方法及其装置
CN1870753A (zh) * 2005-05-27 2006-11-29 中国科学院自动化研究所 一种低复杂度的积分码率控制方法
EP1833257A1 (en) * 2006-03-06 2007-09-12 THOMSON Licensing Method and apparatus for bit rate control in scalable video signal encoding using a Rate-Distortion optimisation
EP2184925A1 (en) * 2007-07-31 2010-05-12 Peking University Founder Group Co., Ltd A method and device selecting intra-frame predictive coding best mode for video coding
CN101754003A (zh) * 2008-12-11 2010-06-23 北京威速科技有限公司 一种稳定视频质量的码率控制方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1471319A (zh) * 2002-07-22 2004-01-28 中国科学院计算技术研究所 结合率失真优化的码率控制的方法及其装置
CN1870753A (zh) * 2005-05-27 2006-11-29 中国科学院自动化研究所 一种低复杂度的积分码率控制方法
EP1833257A1 (en) * 2006-03-06 2007-09-12 THOMSON Licensing Method and apparatus for bit rate control in scalable video signal encoding using a Rate-Distortion optimisation
EP2184925A1 (en) * 2007-07-31 2010-05-12 Peking University Founder Group Co., Ltd A method and device selecting intra-frame predictive coding best mode for video coding
CN101754003A (zh) * 2008-12-11 2010-06-23 北京威速科技有限公司 一种稳定视频质量的码率控制方法

Also Published As

Publication number Publication date
CN102355584A (zh) 2012-02-15

Similar Documents

Publication Publication Date Title
CN102355584B (zh) 基于帧内预测编码模式的码率控制方法
US10728564B2 (en) Systems and methods of encoding multiple video streams for adaptive bitrate streaming
CN101466035B (zh) 一种基于h.264的视频图像组比特分配方法
CN100512432C (zh) 视频数据传输系统
JP5808868B2 (ja) ビデオ記述長によって導かれるビデオ符号化のレート−歪み−複雑性の最適化
KR101518358B1 (ko) 비디오 코딩에서 프레임 복잡성, 버퍼 레벨 및 인트라 프레임들의 위치를 이용하는 버퍼 기반의 비율 제어
WO2018113191A1 (zh) 一种码率控制方法及装置
CN107257464B (zh) 基于Sobel算子和线性回归的高清视频编码码率控制方法
CN102932641B (zh) 一种恒定质量码率控制方法
US20070237223A1 (en) Apparatuses and methods for controlling bit rates in variable bit rate video coding
CN103533365B (zh) 比特率控制方法与比特率控制系统
CN106231320B (zh) 一种支持多机并行编码的联合码率控制方法及系统
EP3005689A1 (en) Systems and methods of encoding multiple video streams with adaptive quantization for adaptive bitrate streaming
CN108200431B (zh) 一种视频编码码率控制帧层比特分配方法
CN103533359A (zh) 一种h.264码率控制方法
CN101335891B (zh) 视频速率控制方法及视频速率控制器
CN102761741A (zh) 基于编解码端缓存的视频编码码率控制系统和方法
KR100598293B1 (ko) 가변비트율 부호화장치
CN102724502B (zh) 一种视频编码中码率的控制方法及装置
US7480332B2 (en) Bit rate control method and apparatus for MPEG-4 video coding
CN100563338C (zh) 一种恒定码率的控制方法
CN103517080A (zh) 实时视频流编码器和实时视频流编码方法
CN100448295C (zh) 一种低复杂度的积分码率控制方法
CN1153473C (zh) 具有几个数据压缩信道的数据压缩组件
US10616585B2 (en) Encoding data arrays

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130925

Termination date: 20181031