一种基于HEVC的Two-Pass码率控制方法技术

技术编号:15522559 阅读:382 留言:0更新日期:2017-06-04 11:33
本发明专利技术涉及视频编码技术领域,尤其涉及一种基于HEVC的Two‑Pass码率控制方法。该方法的具体步骤为:步骤1,快速预编码视频序列,并收集对应编码单元的统计信息;步骤2,将根据前面收集的统计信息,进行比特分配、率失真模型参数训练拟合以及量化参数QP的计算。本发明专利技术有益效果是:在高低不同的目标码率下,本发明专利技术平均峰值信噪比PSNR对于复杂度、分辨率各不相同的视频序列均有提升,平均提升了0.42dB;在码率控制精度方面,本发明专利技术的码率误差对于不同视频序列均有降低,平均降低了4.81%。

A Two Pass rate control method based on HEVC

The present invention relates to the technical field of video encoding, in particular to a Two Pass rate control method based on HEVC. The method comprises the following steps: Step 1, rapid pre encoding video sequences, statistical information and collect the corresponding encoding unit; step 2, according to statistics collected in front, bit allocation, rate distortion model fitting and parameter training quantization parameter calculation of QP. The beneficial effect of the invention is: the target bit rate is different, the average peak signal-to-noise ratio PSNR for video sequences have different complexity and resolution improvement, enhance the average 0.42dB; in terms of the accuracy of rate control, bit error of the invention for different video sequences were reduced on average by 4.81%.

【技术实现步骤摘要】
一种基于HEVC的Two-Pass码率控制方法
本专利技术涉及视频编码
,尤其涉及一种基于HEVC的Two-Pass码率控制方法。
技术介绍
随着视频编码技术的不断进步,主流视频向高清和超高清方向发展,随之带来了视频数据量的激增,为了达到更高的压缩性能,JCT-VC联合小组推出了H.265/HEVC视频编码标准,比以往H.264/AVC标准的压缩性能提升了一倍。在视频编码标准的实际应用中,码率控制,即在既定的目标码率下获得最优的视频质量,是视频编码中不可或缺的关键部分,也是视频编码领域研究的热点。在视频编解码的实际应用中,可以利用的带宽资源往往是有限的。每帧视频的复杂度都随着视频内容在不断变化,视频复杂度越高,输出的编码比特数也会越高,如果不对码流加以控制,编码后得到的视频码率就会不断变化,大幅度变化的码率不能满足实际传输信道和传输带宽的要求,所以,码率控制在视频编码标准的实际应用中必不可少。码率控制是在当前带宽限制下,通过一定的码率控制方法来匹配目标码率并取得最优视频质量的一种技术手段。率失真优化(Rate-DistortionOptimization,RDO)就是在率失真理论的指导下选择最优的编码参数,以在编码输出码率和压缩后造成的失真之间取得最佳的平衡,即在保证视频质量的前提下尽可能降低码率,或者是在相同输出码率条件下尽可能提升视频质量。率失真优化理论在码率控制中占据十分重要的作用。率失真理论最早在1959年由香农发表的“保真度准则下的离散信源编码理论”而逐渐受到学者的关注,主要针对在允许一定失真的情况下,信源压缩的极限是什么这一问题,首次对率失真函数R(D)作出定义和论述。在之后相关领域的学者和专家不断地研究之后,率失真理论逐渐完善化和系统化。视频的质量与最终输出码流的大小都主要受量化过程的影响,对同一视频使用不同的量化参数会得到不同的码率和视频质量。所以,码率控制的主要目的是得到一组量化参数QP,用它们来控制后续的编码流程,最终达到目标码率的要求。其中,重点就是找到码率和量化参数之间的映射关系,并建立模型,从而通过目标码率来获得所需的量化参数。视频编码标准中使用的帧内预测和帧间预测方法,使得编码块之间的依赖性很强,它们的率失真性能也不能独立的分割开来考虑。因此,虽然率失真函数给出量化参数集和失真、码率之间的关系,但是直接使用率失真函数来求解量化参数是非常复杂的。实际的编码标准应用中,码率控制一般分为两个步骤进行,如图1所示,其中,第一步是比特分配(BitAllocation),就是把目标码率按一定的规则分配到图像组(GOP)、帧(Frame)以及编码块(CTU)等图像单位上;第二步就是建立合适的率失真模型计算量化参数(QP),以控制后续的量化器,使得最终输出的码率可以匹配给定的目标码率。(1)比特分配最大编码块(LargestCodingUnit,LCU)是H.265/HEVC标准中可以独立编码的基本单元,H.264/AVC标准中与此对应的是宏块(MicroBlock,MB)。对于HEVC标准,码率控制所能控制的最小单元,即能够为其单独分配量化参数的最小单元也是LCU。码率控制的第一步是码率分配,即比特分配。比特分配是逐步细分的,一般做法如图2所示,先将目标码率下的总比特数按一定规则先分配至GOP图像组中,再依次将码率分配至每一帧图像,进而分配至LCU级。同时,每一级中每编码完一个图像单元,就根据编码实际使用的比特数的情况,对后续比特分配进行调整和更新,即使用剩余比特数来更新后续的比特分配。(2)量化参数QP的计算码率控制的第二步是由第一步得到比特分配的结果去求得一组量化参数QP,重点就是对码率和量化参数QP之间率失真关系模型的建立。率失真模型的精准度是决定最终输出的码流是否能达到目标码率要求的关键,对码率控制模块的性能具有决定性意义。视频领域专家和学者对率失真模型进行了广泛的研究,建立了很多率失真关系的近似模型,主要由一阶线性模型、二次模型、指数模型、对数模型、R-λ模型等。
技术实现思路
为了解决现有技术存在的问题,本专利技术提供一种基于Two-Pass的HEVC码率控制方法。本专利技术的技术方案是:一种基于HEVC的Two-Pass码率控制方法,该方法的具体步骤为:步骤1,快速预编码视频序列,并收集对应编码单元的统计信息;步骤2,将根据前面收集的统计信息,进行比特分配、率失真模型参数训练拟合以及量化参数QP的计算。一种基于HEVC的Two-Pass码率控制方法还包括以下步骤:视频编码之前通常会先分割成若干个小的GOP图像组,一个GOP图像组通常包括至少一帧图像;每帧图像通常进一步分割为若干码块(LCU),从而进一步编码。所述图像有三种类别:I帧、P帧和B帧;其中,I帧是帧内编码帧,只能参考本帧图像内的像素进行预测,同时能够作为P帧和B帧的参考帧,是预测编码中的关键帧,本专利技术所提出的码率控制方法将重点关注I帧,即帧内预测编码的码率控制。所述步骤1的包括以下步骤:步骤a:初始化;对于给定视频序列,在编码的cfg配置文件中配置固定的量化参数QP值,同时将RateControl参数设置为0,关闭码率控制开关;步骤b:CU划分;输入给定视频序列,在函数TEncCu::xCompressCU()中对当前视频序列的每一个LCU进行递归地划分;步骤c:判断是否划分到16×16;利用划分深度uiDepth变量是否小于3的条件,判断当前划分是否到了16×16层级,如小于3,则继续划分;否则,则证明当前LCU已划分到16×16层级,能够进行下一步操作;步骤d:判断是否为图像边界;利用边界判断条件,判断是否为图像边界,若是边界,有可能存在边界LCU不能被16整除的情况,则继续向下划分到8×8块,然后进行后续的预测、变换编码过程;步骤e:收集编码产生的视频序列的统计信息;重点是对每个LCU块所占的比特数、整个帧的比特数、视频输出码率、视频失真信息的收集;其中,LCU的比特数和整帧的比特数信息,可以作为复杂度,在后续比特分配时使用;码率、失真信息则可以组成(R,D)样本点,供后续参数的拟合使用;步骤f:改变QP值,重复步骤a到步骤e的编码过程,直到遍历22、27、32、37四种QP值。所述步骤2包括比特分配、率失真模型建立和量化参数QP计算三个主要部分,具体步骤为:步骤ⅰ:帧级比特分配;在TEncRCSeq::create()函数中,根据目标码率和当前序列的帧率,计算目标比特数,并将目标比特数平均分配给每一帧;步骤ⅱ:修改TEncCu::updateLCUDataISlice()函数,将LCU的复杂度衡量基准由原来的64个8×8的SATD和,修改为固定QP为22时步骤中收集的LCU比特数,即定义文件指针变量以从文件中读入LCU的比特数信息,将函数返回值依次赋值给按光栅扫描顺序排列的LCU的复杂度变量m_costIntra;步骤ⅲ:遍历当前帧中的每一个LCU,将所有LCU的复杂度变量m_costIntra的累加和赋值给m_totalCostIntra变量,该变量表示当前帧的总复杂度;步骤ⅳ:在函数TEncRCPic::getLCUInitTargetBits()中,为每一个LCU分配比特,算式如下:TCurrL本文档来自技高网
...
一种基于HEVC的Two-Pass码率控制方法

【技术保护点】
一种基于HEVC的Two‑Pass码率控制方法,其特征在于:该方法的具体步骤为:步骤1,快速预编码视频序列,并收集对应编码单元的统计信息;步骤2,将根据前面收集的统计信息,进行比特分配、率失真模型参数训练拟合以及量化参数QP的计算,输出比特流。

【技术特征摘要】
1.一种基于HEVC的Two-Pass码率控制方法,其特征在于:该方法的具体步骤为:步骤1,快速预编码视频序列,并收集对应编码单元的统计信息;步骤2,将根据前面收集的统计信息,进行比特分配、率失真模型参数训练拟合以及量化参数QP的计算,输出比特流。2.根据权利要求1所述的一种基于HEVC的Two-Pass码率控制方法,其特征在于:所述步骤1的包括以下步骤:步骤a:初始化;对于给定视频序列,在编码的cfg配置文件中配置固定的量化参数QP值,同时将RateControl参数设置为0,关闭码率控制开关;步骤b:CU划分;输入给定视频序列,在函数TEncCu::xCompressCU()中对当前视频序列的每一个LCU进行递归地划分;步骤c:判断是否划分到16×16;利用划分深度uiDepth变量是否小于3的条件,判断当前划分是否到了16×16层级,如小于3,则继续划分;否则,则证明当前LCU已划分到16×16层级,能够进行下一步操作;步骤d:判断是否为图像边界;利用边界判断条件,判断是否为图像边界,若是边界,有可能存在边界LCU不能被16整除的情况,则继续向下划分到8×8块,然后进行后续的预测、变换编码过程;步骤e:收集编码产生的视频序列的统计信息;重点是对每个LCU块所占的比特数、整个帧的比特数、视频输出码率、视频失真信息的收集;其中,LCU的比特数和整帧的比特数信息,可以作为复杂度,在后续比特分配时使用;码率、失真信息则可以组成(R,D)样本点,供后续参数的拟合使用;步骤f:改变QP值,重复步骤a到步骤e的编码过程,直到遍历22、27、32、37四种QP值。3.根据权利要求1或2所述的一种基于HEVC的Two-Pass码率控制方法,其特征在于:所述步骤2包括比特分配、率失真模型建立和量化参数QP计算三个主要部分,具体步骤为:步骤ⅰ:帧级比特分配;在TEncRCSeq::create()函数...

【专利技术属性】
技术研发人员:李凌寒蒋小兵张健栗娜焦建通刘亚娟刘世飞
申请(专利权)人:河南省电力勘测设计院
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1