CN104796703B - 基于预测模式率失真分析的可伸缩视频编码的码率控制方法 - Google Patents

基于预测模式率失真分析的可伸缩视频编码的码率控制方法 Download PDF

Info

Publication number
CN104796703B
CN104796703B CN201510191379.3A CN201510191379A CN104796703B CN 104796703 B CN104796703 B CN 104796703B CN 201510191379 A CN201510191379 A CN 201510191379A CN 104796703 B CN104796703 B CN 104796703B
Authority
CN
China
Prior art keywords
mrow
mad
coding
layer
value
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.)
Active
Application number
CN201510191379.3A
Other languages
English (en)
Other versions
CN104796703A (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.)
Harbin Institute of Technology
Original Assignee
Harbin Institute of Technology
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 Harbin Institute of Technology filed Critical Harbin Institute of Technology
Priority to CN201510191379.3A priority Critical patent/CN104796703B/zh
Publication of CN104796703A publication Critical patent/CN104796703A/zh
Application granted granted Critical
Publication of CN104796703B publication Critical patent/CN104796703B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

基于预测模式率失真分析的可伸缩视频编码的码率控制方法,涉及可伸缩视频编码的码率控制方法。为了解决现有码率控制技术中率失真关系模型不能准确描述SVC标准的率失真关系的问题、现有的率失真模型未考虑基本层和增强层间的相互影响的问题以及缺乏联合基本层和增强层的率失真模型的问题。本发明对量化步长赋值后,选择最优编码模式对编码单元进行编码,存储增强层该编码单元的编码结果;计算基本层中第j帧中Γj=B_MADactual,j‑B_MADpredicted,j;更新E_MADj=a1×E_MADj‑1+a2+a3×Γj中的MAD预测模型的系数a1和a2;然后预测下一编码单元的E_MADj;更新RD模型系数后计算下一编码单元的目标编码比特数Rtxt;计算层间预测的量化步长和层内预测的量化步长直至完成所有编码单元的编码。本发明适用于可伸缩视频编码的码率控制领域。

Description

基于预测模式率失真分析的可伸缩视频编码的码率控制方法
技术领域
本发明涉及可伸缩视频编码的码率控制方法。
背景技术
SVC标准是以H.264/AVC视频编解码标准为基础,由国际电联电信标准化部门(ITU-T)视频编码专家组(VCEG)和国际标准化组织(ISO)动态图像专家组(MPEG)组成的联合视频专家组(JVT)共同制定的国际可伸缩视频编码标准。在保持高效率压缩的同时,SVC编码器产生的码流可实现在时间(帧率)、空间(分辨率)和视频质量(信噪比)上的可伸缩,即通过一次编码产生的码流可以解码出不同帧率、分辨率和质量等级的视频。在给定传输带宽或存储空间的条件下,码率控制算法利用编码工具对编码比特进行有效地调配和使用,从而获得更好的重建视频质量。码率控制算法能够保证输出的码率能够符合传输带宽的要求,防止缓冲器上溢和下溢并且充分利用带宽资源。虽然对码率控制算法已有了较广泛的研究,但是基本上都是针对不可伸缩视频编码标准进行的。现有针对可伸缩视频编码的码率控制技术存在的主要问题有:
(1)现有的率失真(rate-distortion,RD)模型不能准确描述SVC标准的率失真关系。SVC标准继承了H.264/AVC标准所有先进的编码工具,同时采用了多层的编码框架和新的层间预测技术,使得现有的率失真模型不能准确地描述其率失真关系。例如,新的编码技术改变了用于编码图像纹理和用于编码非纹理的比特开销之间的关系,从而使率失真模型也随之发生变化。
(2)现有的率失真模型未考虑基本层和增强层间的相互影响。SVC标准采用多层的编码框架,这使主要应用于单层编码框架的传统码率控制技术不能有效地对SVC编码器进行码率控制。例如,由于SVC标准所采用的新的层间预测技术,在编码增强层时,不能简单地将传统的码率控制技术直接应用于增强层,还应该同时考虑基本层和增强层间的相互影响。
(3)缺乏基本层和增强层联合的率失真模型。SVC标准继承了H.265/AVC标准的灵活的块编码方式,这使精确控制SVC标准输出码率的难度进一步增加。与传统的单层编码标准不同,SVC标准的编码效率同时受到基本层和增强层编码效率的影响。基本层和增强层的编码效率也是互相影响的。因此,需要为SVC标准重新建立基本层和增强层联合的率失真模型。
发明内容
本发明是为了解决现有码率控制技术中率失真关系模型不能准确描述SVC标准的率失真关系的问题、现有的率失真模型未考虑基本层和增强层间的相互影响的问题以及缺乏联合基本层和增强层的率失真模型的问题,而提出了一种基于预测模式率失真分析的可伸缩视频编码的码率控制方法。
基于预测模式率失真分析的可伸缩视频编码的码率控制方法,包括下述步骤:
步骤1、若当前编码单元为增强层中第1帧中的第1个编码单元时,从编码配置文件中读取量化参数QP的初始值InitialQP,按公式(1-1)和公式(1-2)根据InitialQP分别计算并赋值给层间预测的量化步长的初始值和层内预测的量化步长的初始值;然后执行步骤2;
式中,%是取余符号;ζ(·)为取余常数,常数值根据余数而定;
步骤2、利用可伸缩视频编码标准的测试软件对视频序列进行可伸缩编码;在编码的过程中执行基于Lagrangian优化算法的率失真优化Rate-Distortion Optimization(RDO),
若当前编码单元为增强层中第1帧中的第1个编码单元时,
使用步骤1中设置的量化步长;
若当前编码单元并非增强层中第1帧中的第1个编码单元时,
使用步骤8中设置的量化步长;
选择最优编码模式;针对增强层,完成对每一编码单元的编码后,存储关于该编码单元的最优编码模式、编码后实际产生的比特数、编码单元的实际平均绝对误差值和实际使用的量化步长;
平均绝对误差值(Mean Absolute Difference),即MAD值;编码单元的实际平均绝对误差值,即实际MAD值;
步骤3、根据基本层的编码结果,计算基本层中第j,j≥1,帧中所有编码单元的实际MAD值的平均值与其MAD预测值的平均值之间的差值Γj,如式(2)
Γj=B_MADactual,j-B_MADpredicted,j (2)
其中,B_MADactual,j为基本层中第j帧中所有编码单元的实际MAD值的平均值;B_MADpredicted,j为基本层中第j帧中所有编码单元的MAD预测值的平均值;前缀B_代表基本层;
将步骤2中得到增强层中的编码单元的实际MAD值赋值给E_MADj
若当前编码单元处于视频序列的第1帧中,即j=1,E_MADj-1即E_MAD0取值为0;
若当前编码单元处于视频序列的第j,j>1,帧中;将当前编码单元在增强层中第j-1帧中对应位置处的编码单元的实际MAD值赋值给E_MADj-1
根据Γj、E_MADj-1和E_MADj,利用线性递归方法,更新式(3)中的MAD预测模型的系数a1和a2
E_MADj=a1×E_MADj-1+a2+a3×Γj (3)
前缀E_代表增强层;a3为Γj的权重因子;
步骤4、若当前编码单元处于视频序列的第1帧中,即j=1,E_MADj-1即E_MAD0取值为0;利用MAD预测模型即式(3),预测下一编码单元的MAD预测值E_MADj;此时,MAD预测模型的系数a1取值为1.0,a2取值为0.0;
若当前编码单元处于视频序列的第j帧中,j>1,根据之前编码帧即第j-1帧中对应位置处的编码单元的实际MAD值E_MADj-1,利用在步骤3中更新系数a1和a2后的式(3)预测下一编码单元的MAD预测值E_MADj
步骤5、如果步骤2中存储的最优编码模式是层间预测模式,则将步骤2中存储的实际使用的量化步长值赋值给式(4)中的将步骤2中存储的实际产生的比特数赋值给式(4)中的Rtxt;将步骤2中存储的增强层编码单元的实际MAD值赋值给式(4)中的E_MADpred
根据Rtxt和E_MADpred,利用线性递归方法对式(4)中的率失真模型系数进行更新;
式中,是层间预测率失真模型的系数;
是进行层间预测编码时的量化步长;
Rtxt是目标编码比特数;
如果步骤2中存储的最优编码模式是层内预测模式,则将步骤2中存储的实际使用的量化步长值赋值给式(5)中的将步骤2中存储的实际产生的比特数赋值给式(5)中的Rtxt;将步骤2中存储的增强层编码单元的实际MAD值赋值给式(5)中的E_MADpred
根据Rtxt和E_MADpred,利用线性递归方法对式(5)中的率失真模型系数进行更新;
式中,是层内预测率失真模型的系数;
是进行层间预测编码时的量化步长;
Rtxt是目标编码比特数;
步骤6、根据可伸缩视频编码标准的测试软件中默认的编码比特数分配方法,计算下一编码单元的目标编码比特数Rtxt
步骤7、根据步骤6中得到的目标编码比特数Rtxt和在步骤4中得到的编码单元的MAD预测值E_MADj,将其值赋值给E_MADpred
若当前编码单元处于视频序列的第1帧中,即j=1,
已知Rtxt和E_MADpred,分别使用式(4)计算用于层间预测的量化步长其中模型系数取值为1.0,取值为0.0;已知Rtxt和E_MADpred,使用式(5)计算用于层内预测的量化步长其中模型系数取值为1.0,取值为0.0;
若当前编码单元处于视频序列的第j帧中,j>1,
利用在步骤5中更新系数后的率失真模型,已知Rtxt、E_MADpred使用式(4)计算用于层间预测的量化步长已知Rtxt、E_MADpred使用式(5)计算用于层内预测的量化步长
步骤8、设置在可伸缩编码过程中进行预测编码时所使用的量化参数:
利用在步骤7中预测得到的层间预测的量化步长的值,赋值给下一编码单元进行层间预测编码时的量化步长;
利用在步骤7中预测得到的层内预测的量化步长的值,赋值给下一编码单元进行层内预测编码时的量化步长;
步骤9、检查对当前帧的编码是否结束;
若当前帧中的所有编码单元都已编码完成,则对下一帧进行编码;
若当前帧中还有编码单元未被编码,则返回步骤2。
本发明为SVC空间增强层的层间预测编码提出了一种新的码率-量化(Rate-Quantization,R-Q)模型,该模型考虑到了基本层和增强层间编码时的相互影响,提出的率失真关系模型是基本层和增强层联合的率失真模型,解决了现有码率控制技术中的率失真关系模型不能准确描述SVC标准的率失真关系的问题。本发明还为SVC空间增强层提出了一种改进的平均绝对误差(MAD)预测模型,该模型同时利用之前时域帧和基本层的MAD值来预测当前增强层的MAD值。
与JVT-G012码率控制算法相比,本发明中提出的算法可以获得更高的码率控制精度。实验证明,利用本发明提出的算法对不同视频序列进行码率控制时,大多数的码率失配率都小于0.1%,而最大的失配率只有0.23%,总体平均绝对失配率只有0.07%。并且,本发明中提出的算法可以获得更高的编码效率,编码不同类型的视频序列得到的实验结果说明,与JVT-G012码率控制算法相比(1)在相同的重建图像客观质量(PSNR)下,提出的算法能够平均减少编码码率达3.73%;(2)在相同的编码码率下,提出的算法可以使峰值信噪比平均提高达0.18dB。总体来说,每个重建视频序列的PSNR在所有的目标比特率上都获得提高。编码增益最高可达0.30dB。因此,相对于JVT-G012码率控制算法,无论目标码率设置为多少,本发明中提出的算法都可以有效提高编码器的编码效率。
附图说明
图1为本发明的码率控制算法的流程图。
具体实施方式
具体实施方式一:结合图1说明本实施方式,基于预测模式率失真分析的可伸缩视频编码的码率控制方法,包括下述步骤:
步骤1、若当前编码单元为增强层中第1帧中的第1个编码单元时,从编码配置文件中读取量化参数QP的初始值InitialQP,按公式(1-1)和公式(1-2)根据InitialQP分别计算并赋值给层间预测的量化步长的初始值和层内预测的量化步长的初始值;然后执行步骤2;
式中,%是取余符号;ζ(·)为取余常数,常数值根据余数而定;
步骤2、利用可伸缩视频编码标准的测试软件对视频序列进行可伸缩编码;在编码的过程中执行基于Lagrangian优化算法的率失真优化Rate-Distortion Optimization(RDO),
若当前编码单元为增强层中第1帧中的第1个编码单元时,
使用步骤1中设置的量化步长;
若当前编码单元并非增强层中第1帧中的第1个编码单元时,
使用步骤8中设置的量化步长;
选择最优编码模式;针对增强层,完成对每一编码单元的编码后,存储关于该编码单元的最优编码模式、编码后实际产生的比特数、编码单元的实际平均绝对误差值和实际使用的量化步长;
平均绝对误差值(Mean Absolute Difference),即MAD值;编码单元的实际平均绝对误差值,即实际MAD值;
步骤3、根据基本层的编码结果,计算基本层中第j,j≥1,帧中所有编码单元的实际MAD值的平均值与其MAD预测值的平均值之间的差值Γj,如式(2)
Γj=B_MADactual,j-B_MADpredicted,j (2)
其中,B_MADactual,j为基本层中第j帧中所有编码单元的实际MAD值的平均值;B_MADpredicted,j为基本层中第j帧中所有编码单元的MAD预测值的平均值;前缀B_代表基本层;
将步骤2中得到增强层中的编码单元的实际MAD值赋值给E_MADj
若当前编码单元处于视频序列的第1帧中,即j=1,E_MADj-1即E_MAD0取值为0;
若当前编码单元处于视频序列的第j,j>1,帧中;将当前编码单元在增强层中第j-1帧中对应位置处的编码单元的实际MAD值赋值给E_MADj-1
根据Γj、E_MADj-1和E_MADj,利用线性递归方法,更新式(3)中的MAD预测模型的系数a1和a2
E_MADj=a1×E_MADj-1+a2+a3×Γj (3)
前缀E_代表增强层;a3为Γj的权重因子;
步骤4、若当前编码单元处于视频序列的第1帧中,即j=1,E_MADj-1即E_MAD0取值为0;利用MAD预测模型即式(3),预测下一编码单元的MAD预测值E_MADj;此时,MAD预测模型的系数a1取值为1.0,a2取值为0.0;
若当前编码单元处于视频序列的第j帧中,j>1,根据之前编码帧即第j-1帧中对应位置处的编码单元的实际MAD值E_MADj-1,利用在步骤3中更新系数a1和a2后的式(3)预测下一编码单元的MAD预测值E_MADj
步骤5、如果步骤2中存储的最优编码模式是层间预测模式,则将步骤2中存储的实际使用的量化步长值赋值给式(4)中的将步骤2中存储的实际产生的比特数赋值给式(4)中的Rtxt;将步骤2中存储的增强层编码单元的实际MAD值赋值给式(4)中的E_MADpred
根据Rtxt和E_MADpred,利用线性递归方法对式(4)中的率失真模型系数进行更新;
式中,是层间预测率失真模型的系数;
是进行层间预测编码时的量化步长;
Rtxt是目标编码比特数;
如果步骤2中存储的最优编码模式是层内预测模式,则将步骤2中存储的实际使用的量化步长值赋值给式(5)中的将步骤2中存储的实际产生的比特数赋值给式(5)中的Rtxt;将步骤2中存储的增强层编码单元的实际MAD值赋值给式(5)中的E_MADpred
根据Rtxt和E_MADpred,利用线性递归方法对式(5)中的率失真模型系数进行更新;
式中,是层内预测率失真模型的系数;
是进行层间预测编码时的量化步长;
Rtxt是目标编码比特数;
步骤6、根据可伸缩视频编码标准的测试软件中默认的编码比特数分配方法,计算下一编码单元的目标编码比特数Rtxt
步骤7、根据步骤6中得到的目标编码比特数Rtxt和在步骤4中得到的编码单元的MAD预测值E_MADj,将其值赋值给E_MADpred
若当前编码单元处于视频序列的第1帧中,即j=1,
已知Rtxt和E_MADpred,分别使用式(4)计算用于层间预测的量化步长其中模型系数取值为1.0,取值为0.0;已知Rtxt和E_MADpred,使用式(5)计算用于层内预测的量化步长其中模型系数取值为1.0,取值为0.0;
若当前编码单元处于视频序列的第j帧中,j>1,
利用在步骤5中更新系数后的率失真模型,已知Rtxt、E_MADpred使用式(4)计算用于层间预测的量化步长已知Rtxt、E_MADpred使用式(5)计算用于层内预测的量化步长
步骤8、设置在可伸缩编码过程中进行预测编码时所使用的量化参数:
利用在步骤7中预测得到的层间预测的量化步长的值,赋值给下一编码单元进行层间预测编码时的量化步长;
利用在步骤7中预测得到的层内预测的量化步长的值,赋值给下一编码单元进行层内预测编码时的量化步长;
步骤9、检查对当前帧的编码是否结束;
若当前帧中的所有编码单元都已编码完成,则对下一帧进行编码;
若当前帧中还有编码单元未被编码,则返回步骤2。
具体实施方式二:本实施方式步骤1所述的取余常数ζ(0)=0.625、ζ(1)=0.6875、ζ(2)=0.8125、ζ(3)=0.875、ζ(4)=1.0和ζ(5)=1.125;ζ(·)中的·表示余数,ζ()表示取余符号。
其它步骤与具体实施方式一相同。
具体实施方式三:本实施方式步骤2所述的利用可伸缩视频编码标准的测试软件为可伸缩视频编码标准的测试软件JSVM。
其它步骤与具体实施方式二相同。
具体实施方式四:本实施方式所述步骤3所述的a3设置为0.1
其它步骤与具体实施方式三相同。
具体实施例
将提出的一种基于预测模式率失真分析的码率控制方法整合进由JVT提供的标准参考软件JSVM 9.19.14中。为了验证本发明的有效性,测试中首先使用了由JVT推荐的4个具有不同运动剧烈程度和图像细节的标准视频测试序列。实验的结果与JVT-G012码率控制算法的编码结果进行比较。为了保证测试数据的可靠性,每个视频序列所处理的帧数均为150帧。测试中,采用了一个基本层和一个增强层,发明中提出的算法应用于增强层。增强层中使用了自适应的层间预测算法。采用CABAC熵编码算法。采用快速运动估计算法,运动估计的搜索范围是±32,精度是1/4像素。由于我们的发明着眼于优化率失真模型和MAD预测模型,这只涉及到P帧,因此GOP结构设置为IPPP。实验中,宏块被选作码率控制的基本单元。初始量化参数QP值设置为32。其余的参数都设置为参考软件的默认值。
比特率失配率(%Mism.)和率失真性能(ΔBR(kbits/s),ΔPSNR(dB),BDBR(kbits/s),和BDPSNR(dB))用来评价所提出的算法与JVT-G012码率控制算法的性能。
表1列出了对于四种目标比特率的码率控制精度。实验中使用的都是由JVT在JVT-Q205文件中推荐的测试序列和目标比特率。从表1中可见,所提出的码率控制算法和JVT-G012码率控制算法在不同的比特率可以获得不错的编码结果。虽然两种算法都可以获得接近目标比特率的码率,但是本发明提出的算法的码率控制精度在大多数情况下都要优于JVT-G012码率控制算法。这是因为在快速运动发生的时候,本发明提出的算法会引起更小的MAD预测误差。大多数的失配率都小于0.1%,而最大的失配率只有0.23%,总体平均绝对失配率只有0.07%。可以说,本发明提出的码率控制算法能够非常精确的控制编码器的输出码率。
表1码率控制精度的比较
与JVT-G012码率控制算法相比,编码增强层时,本发明提出的码率控制算法能够获得更好的率失真性能。本发明所提出的算法与JVT-G012码率控制算法的率失真性能表现如表2所示。实验结果说明,与JVT-G012码率控制算法相比(1)在相同的重建图像客观质量(PSNR)下,提出的算法能够减少编码码率最高可达4.66%;(2)在相同的编码码率下,提出的算法可以使峰值信噪比最高可以提高0.26dB。总体来说,每个重建视频序列的PSNR在所有的目标比特率上都获得提高。编码增益最高可达0.30dB。因此,相对于JVT-G012码率控制算法,无论目标码率设置为多少,本发明中提出的算法都可以有效提高编码器的编码效率。
表2率失真性能的比较
本发明为SVC标准提出了一种码率控制算法。该算法编码增强层时,为层间预测引入了一个单独的码率-量化(R-Q)参数模型。本发明还提出了一种优化的MAD预测模型,该模型利用基本层MAD来辅助预测当前编码单元的MAD值。利用上述的两种技术,码率的失配率可以明显降低,同时编码效率得到明显提高。实验证明,相对于JVT-G012码率控制算法,本发明中提出的算法可以获得更高的码率控制精度。平均码率的失配率为0.07%。并且,本发明中提出的算法可以获得更高的编码效率。编码不同类型的视频序列得到的实验结果说明,本发明中提出的算法可以平均增加0.18dB的PSNR或者平均节省3.73%的码率。

Claims (4)

1.基于预测模式率失真分析的可伸缩视频编码的码率控制方法,其特征在于它包括下述步骤:
步骤1、若当前编码单元为增强层中第1帧中的第1个编码单元时,从编码配置文件中读取量化参数QP的初始值InitialQP,按公式(1-1)和公式(1-2)根据InitialQP分别计算并赋值给层间预测的量化步长的初始值和层内预测的量化步长的初始值;然后执行步骤2;
<mrow> <msubsup> <mi>Q</mi> <mrow> <mi>s</mi> <mi>t</mi> <mi>e</mi> <mi>p</mi> </mrow> <mrow> <mi>i</mi> <mi>n</mi> <mi>t</mi> <mi>e</mi> <mi>r</mi> </mrow> </msubsup> <mo>=</mo> <msup> <mn>2</mn> <mfrac> <mrow> <mi>I</mi> <mi>n</mi> <mi>i</mi> <mi>t</mi> <mi>i</mi> <mi>a</mi> <mi>l</mi> <mi>Q</mi> <mi>P</mi> </mrow> <mn>6</mn> </mfrac> </msup> <mi>&amp;zeta;</mi> <mrow> <mo>(</mo> <mi>I</mi> <mi>n</mi> <mi>i</mi> <mi>t</mi> <mi>i</mi> <mi>a</mi> <mi>l</mi> <mi>Q</mi> <mi>P</mi> <mi>%</mi> <mn>6</mn> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>
<mrow> <msubsup> <mi>Q</mi> <mrow> <mi>s</mi> <mi>t</mi> <mi>e</mi> <mi>p</mi> </mrow> <mrow> <mi>int</mi> <mi>r</mi> <mi>a</mi> </mrow> </msubsup> <mo>=</mo> <msup> <mn>2</mn> <mfrac> <mrow> <mi>I</mi> <mi>n</mi> <mi>i</mi> <mi>t</mi> <mi>i</mi> <mi>a</mi> <mi>l</mi> <mi>Q</mi> <mi>P</mi> </mrow> <mn>6</mn> </mfrac> </msup> <mi>&amp;zeta;</mi> <mrow> <mo>(</mo> <mi>I</mi> <mi>n</mi> <mi>i</mi> <mi>t</mi> <mi>i</mi> <mi>a</mi> <mi>l</mi> <mi>Q</mi> <mi>P</mi> <mi>%</mi> <mn>6</mn> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>
式中,%是取余符号;ζ(·)为取余常数,常数值根据余数而定;
步骤2、利用可伸缩视频编码标准的测试软件对视频序列进行可伸缩编码;在编码的过程中执行基于Lagrangian优化算法的率失真优化Rate-Distortion Optimization,
若当前编码单元为增强层中第1帧中的第1个编码单元时,
使用步骤1中设置的量化步长;
若当前编码单元并非增强层中第1帧中的第1个编码单元时,
使用步骤8中设置的量化步长;
选择最优编码模式;针对增强层,完成对每一编码单元的编码后,存储关于该编码单元的最优编码模式、编码后实际产生的比特数、编码单元的实际平均绝对误差值和实际使用的量化步长;
平均绝对误差值,即MAD值;编码单元的实际平均绝对误差值,即实际MAD值;
步骤3、根据基本层的编码结果,计算基本层中第j帧中所有编码单元的实际MAD值的平均值与其MAD预测值的平均值之间的差值Γj,j≥1,如式(2)
Γj=B_MADactual,j-B_MADpredicted,j (2)
其中,B_MADactual,j为基本层中第j帧中所有编码单元的实际MAD值的平均值;B_MADpredicted,j为基本层中第j帧中所有编码单元的MAD预测值的平均值;前缀B_代表基本层;
将步骤2中得到增强层中的编码单元的实际MAD值赋值给E_MADj
若当前编码单元处于视频序列的第1帧中,即j=1,E_MADj-1即E_MAD0取值为0;
若当前编码单元处于视频序列的第j帧中,j>1;将当前编码单元在增强层中第j-1帧中对应位置处的编码单元的实际MAD值赋值给E_MADj-1
根据Γj、E_MADj-1和E_MADj,利用线性递归方法,更新式(3)中的MAD预测模型的系数a1和a2
E_MADj=a1×E_MADj-1+a2+a3×Γj (3)
前缀E_代表增强层;a3为Γj的权重因子;
步骤4、若当前编码单元处于视频序列的第1帧中,即j=1,E_MADj-1即E_MAD0取值为0;利用MAD预测模型即式(3),预测下一编码单元的MAD预测值E_MADj;此时,MAD预测模型的系数a1取值为1.0,a2取值为0.0;
若当前编码单元处于视频序列的第j帧中,j>1,根据之前编码帧即第j-1帧中对应位置处的编码单元的实际MAD值E_MADj-1,利用在步骤3中更新系数a1和a2后的式(3)预测下一编码单元的MAD预测值E_MADj
步骤5、如果步骤2中存储的最优编码模式是层间预测模式,则将步骤2中存储的实际使用的量化步长值赋值给式(4)中的将步骤2中存储的实际产生的比特数赋值给式(4)中的Rtxt;将步骤2中存储的增强层编码单元的实际MAD值赋值给式(4)中的E_MADpred
根据Rtxt和E_MADpred,利用线性递归方法对式(4)中的率失真模型系数进行更新;
<mrow> <msub> <mi>R</mi> <mrow> <mi>t</mi> <mi>x</mi> <mi>t</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <msubsup> <mi>X</mi> <mn>1</mn> <mrow> <mi>int</mi> <mi>e</mi> <mi>r</mi> </mrow> </msubsup> <mo>&amp;times;</mo> <mi>E</mi> <mo>_</mo> <msub> <mi>MAD</mi> <mrow> <mi>p</mi> <mi>r</mi> <mi>e</mi> <mi>d</mi> </mrow> </msub> </mrow> <msup> <mrow> <mo>(</mo> <msubsup> <mi>Q</mi> <mrow> <mi>s</mi> <mi>t</mi> <mi>e</mi> <mi>p</mi> </mrow> <mrow> <mi>int</mi> <mi>e</mi> <mi>r</mi> </mrow> </msubsup> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mfrac> <mo>+</mo> <mfrac> <mrow> <msubsup> <mi>X</mi> <mn>2</mn> <mrow> <mi>int</mi> <mi>e</mi> <mi>r</mi> </mrow> </msubsup> <mo>&amp;times;</mo> <mi>E</mi> <mo>_</mo> <msub> <mi>MAD</mi> <mrow> <mi>p</mi> <mi>r</mi> <mi>e</mi> <mi>d</mi> </mrow> </msub> </mrow> <msubsup> <mi>Q</mi> <mrow> <mi>s</mi> <mi>t</mi> <mi>e</mi> <mi>p</mi> </mrow> <mrow> <mi>int</mi> <mi>e</mi> <mi>r</mi> </mrow> </msubsup> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>
式中,是层间预测率失真模型的系数;
是进行层间预测编码时的量化步长;
Rtxt是目标编码比特数;
如果步骤2中存储的最优编码模式是层内预测模式,则将步骤2中存储的实际使用的量化步长值赋值给式(5)中的将步骤2中存储的实际产生的比特数赋值给式(5)中的Rtxt;将步骤2中存储的增强层编码单元的实际MAD值赋值给式(5)中的E_MADpred
根据Rtxt和E_MADpred,利用线性递归方法对式(5)中的率失真模型系数进行更新;
<mrow> <msub> <mi>R</mi> <mrow> <mi>t</mi> <mi>x</mi> <mi>t</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <msubsup> <mi>X</mi> <mn>1</mn> <mrow> <mi>int</mi> <mi>r</mi> <mi>a</mi> </mrow> </msubsup> <mo>&amp;times;</mo> <mi>E</mi> <mo>_</mo> <msub> <mi>MAD</mi> <mrow> <mi>p</mi> <mi>r</mi> <mi>e</mi> <mi>d</mi> </mrow> </msub> </mrow> <msup> <mrow> <mo>(</mo> <msubsup> <mi>Q</mi> <mrow> <mi>s</mi> <mi>t</mi> <mi>e</mi> <mi>p</mi> </mrow> <mrow> <mi>int</mi> <mi>r</mi> <mi>a</mi> </mrow> </msubsup> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mfrac> <mo>+</mo> <mfrac> <mrow> <msubsup> <mi>X</mi> <mn>2</mn> <mrow> <mi>int</mi> <mi>r</mi> <mi>a</mi> </mrow> </msubsup> <mo>&amp;times;</mo> <mi>E</mi> <mo>_</mo> <msub> <mi>MAD</mi> <mrow> <mi>p</mi> <mi>r</mi> <mi>e</mi> <mi>d</mi> </mrow> </msub> </mrow> <msubsup> <mi>Q</mi> <mrow> <mi>s</mi> <mi>t</mi> <mi>e</mi> <mi>p</mi> </mrow> <mrow> <mi>int</mi> <mi>r</mi> <mi>a</mi> </mrow> </msubsup> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>
式中,是层内预测率失真模型的系数;
是进行层间预测编码时的量化步长;
Rtxt是目标编码比特数;
步骤6、根据可伸缩视频编码标准的测试软件中默认的编码比特数分配方法,计算下一编码单元的目标编码比特数Rtxt
步骤7、根据步骤6中得到的目标编码比特数Rtxt和在步骤4中得到的编码单元的MAD预测值E_MADj,将其值赋值给E_MADpred
若当前编码单元处于视频序列的第1帧中,即j=1,
已知Rtxt和E_MADpred,分别使用式(4)计算用于层间预测的量化步长其中模型系数取值为1.0,取值为0.0;已知Rtxt和E_MADpred,使用式(5)计算用于层内预测的量化步长其中模型系数取值为1.0,取值为0.0;
若当前编码单元处于视频序列的第j帧中,j>1,
利用在步骤5中更新系数后的率失真模型,已知Rtxt、E_MADpred使用式(4)计算用于层间预测的量化步长已知Rtxt、E_MADpred使用式(5)计算用于层内预测的量化步长
步骤8、设置在可伸缩编码过程中进行预测编码时所使用的量化参数:
利用在步骤7中预测得到的层间预测的量化步长的值,赋值给下一编码单元进行层间预测编码时的量化步长;
利用在步骤7中预测得到的层内预测的量化步长的值,赋值给下一编码单元进行层内预测编码时的量化步长;
步骤9、检查对当前帧的编码是否结束;
若当前帧中的所有编码单元都已编码完成,则对下一帧进行编码;
若当前帧中还有编码单元未被编码,则返回步骤2。
2.根据权利要求1所述的基于预测模式率失真分析的可伸缩视频编码的码率控制方法,其特征在于步骤1所述的取余常数ζ(·)为ζ(0)=0.625、ζ(1)=0.6875、ζ(2)=0.8125、ζ(3)=0.875、ζ(4)=1.0和ζ(5)=1.125;ζ(·)中的·表示余数。
3.根据权利要求2所述的基于预测模式率失真分析的可伸缩视频编码的码率控制方法,其特征在于步骤2所述的利用可伸缩视频编码标准的测试软件为可伸缩视频编码标准的测试软件JSVM。
4.根据权利要求3所述的基于预测模式率失真分析的可伸缩视频编码的码率控制方法,其特征在于步骤3所述的a3设置为0.1。
CN201510191379.3A 2015-04-22 2015-04-22 基于预测模式率失真分析的可伸缩视频编码的码率控制方法 Active CN104796703B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510191379.3A CN104796703B (zh) 2015-04-22 2015-04-22 基于预测模式率失真分析的可伸缩视频编码的码率控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510191379.3A CN104796703B (zh) 2015-04-22 2015-04-22 基于预测模式率失真分析的可伸缩视频编码的码率控制方法

Publications (2)

Publication Number Publication Date
CN104796703A CN104796703A (zh) 2015-07-22
CN104796703B true CN104796703B (zh) 2017-11-03

Family

ID=53561175

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510191379.3A Active CN104796703B (zh) 2015-04-22 2015-04-22 基于预测模式率失真分析的可伸缩视频编码的码率控制方法

Country Status (1)

Country Link
CN (1) CN104796703B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105872545B (zh) * 2016-04-19 2019-03-29 电子科技大学 一种随机接入视频编码中层次化时域率失真优化方法
US10652550B2 (en) 2017-12-22 2020-05-12 Shenzhen China Star Optoelectronics Semiconductor Display Technology Co., Ltd. Compensation table compressing method
CN108172168B (zh) * 2017-12-22 2019-11-15 深圳市华星光电半导体显示技术有限公司 一种补偿表压缩方法
CN108200428B (zh) * 2018-01-29 2020-05-08 上海兆芯集成电路有限公司 宏块层中的码率的控制方法以及使用该方法的装置
CN109660802A (zh) * 2018-12-26 2019-04-19 清华大学 用于p帧图像量化步长的估计方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007101791A1 (en) * 2006-03-06 2007-09-13 Thomson Licensing Method and apparatus for bit rate control in scalable video signal encoding using a rate-distortion optimisation
CN101110957A (zh) * 2007-07-12 2008-01-23 上海交通大学 金字塔式双向预测模式的视频恒定质量控制方法
EP1882367A1 (en) * 2005-05-19 2008-01-30 Lg Electronics Inc. Method for coding/decoding video data
CN101562741A (zh) * 2009-05-11 2009-10-21 华为技术有限公司 多层编码的码率控制方法及装置
CN102186084A (zh) * 2011-06-07 2011-09-14 东莞电子科技大学电子信息工程研究院 一种可伸缩视频编码的空间增强层码率控制实现方法
WO2013000975A1 (en) * 2011-06-30 2013-01-03 Canon Kabushiki Kaisha Method for encoding and decoding an image, and corresponding devices

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1882367A1 (en) * 2005-05-19 2008-01-30 Lg Electronics Inc. Method for coding/decoding video data
WO2007101791A1 (en) * 2006-03-06 2007-09-13 Thomson Licensing Method and apparatus for bit rate control in scalable video signal encoding using a rate-distortion optimisation
CN101110957A (zh) * 2007-07-12 2008-01-23 上海交通大学 金字塔式双向预测模式的视频恒定质量控制方法
CN101562741A (zh) * 2009-05-11 2009-10-21 华为技术有限公司 多层编码的码率控制方法及装置
CN102186084A (zh) * 2011-06-07 2011-09-14 东莞电子科技大学电子信息工程研究院 一种可伸缩视频编码的空间增强层码率控制实现方法
WO2013000975A1 (en) * 2011-06-30 2013-01-03 Canon Kabushiki Kaisha Method for encoding and decoding an image, and corresponding devices

Also Published As

Publication number Publication date
CN104796703A (zh) 2015-07-22

Similar Documents

Publication Publication Date Title
CN104796703B (zh) 基于预测模式率失真分析的可伸缩视频编码的码率控制方法
US8559501B2 (en) Method and apparatus for adaptively determining a bit budget for encoding video pictures
CN101711481B (zh) 使用预测数据精选进行视频编码的方法和装置
Liu et al. Low-complexity rate control based on ρ-domain model for scalable video coding
CN104320657B (zh) Hevc无损视频编码的预测模式选择方法及相应的编码方法
CN102186084B (zh) 一种可伸缩视频编码svc的空间增强层码率控制实现方法
KR20090074173A (ko) 효과적인 레이트 제어 및 비디오 인코딩 품질의 향상을 위한 ρ-도메인 프레임 레벨 비트 할당 방법
CN1723706A (zh) 宏块分割部分的混合块间/块内视频编码
CN103384333A (zh) 使用预测模式的视频解码装置
CN101287112B (zh) 一种自适应码率控制方法
CN101917614A (zh) 一种基于h.264分层b帧编码结构的码率控制方法
CN107426570B (zh) 一种低延迟视频编码的自适应Qp级联方法
CN103281530A (zh) 基于率失真优化的hevc码率控制方法
Wang et al. Quadratic ρ-domain based rate control algorithm for HEVC
CN102007770B (zh) 切分成线性形式的像素分区的图像或图像序列的编码和解码
Pan et al. Frame-level Bit Allocation Optimization Based on<? brk?> Video Content Characteristics for HEVC
CN101895758B (zh) 基于帧复杂度的h.264码率控制方法
TWI394462B (zh) 基於視覺感知的位元-失真最佳化位元分配的位元率控制方法
JP2007166608A (ja) ビデオ符号化方法及びビデオ符号化システム
Liang et al. A novel RQ model based rate control scheme in HEVC
JP4994877B2 (ja) ビデオのフレームシーケンスにおけるマクロブロックの符号化モードを選択する方法及びシステム
CN108322740B (zh) 一种编码复杂度可控的编码方法
CN104796704B (zh) 一种用于可伸缩视频编码的宏块级码率控制方法
CN104320660B (zh) 用于无损视频编码的率失真优化方法及编码方法
Ascenso et al. Low complexity intra mode selection for efficient distributed video coding

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant