一种基于HEVC的Two‑Pass码率控制方法与流程

文档序号:12498214阅读:来源:国知局

技术特征:

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()函数中,根据目标码率和当前序列的帧率,计算目标比特数,并将目标比特数平均分配给每一帧;

步骤ⅱ:修改TEncCu::updateLCUDataISlice()函数,将LCU的复杂度衡量基准由原来的64个8×8的SATD和,修改为固定QP为22时步骤1中收集的LCU比特数,即定义文件指针变量以从文件中读入LCU的比特数信息,将函数返回值依次赋值给按光栅扫描顺序排列的LCU的复杂度变量m_costIntra;

步骤ⅲ:遍历当前帧中的每一个LCU,将所有LCU的复杂度变量m_costIntra的累加和赋值给m_totalCostIntra变量,该变量表示当前帧的总复杂度;

步骤ⅳ:在函数TEncRCPic::getLCUInitTargetBits()中,为每一个LCU分配比特,算式如下:

TCurrLCU=(TCurrPic-BitHeader-BitCoded)×CCurrLCU

<mrow> <msub> <mi>C</mi> <mrow> <mi>C</mi> <mi>u</mi> <mi>r</mi> <mi>r</mi> <mi>L</mi> <mi>C</mi> <mi>U</mi> </mrow> </msub> <mo>=</mo> <mfrac> <msub> <mi>B</mi> <mrow> <mn>1</mn> <mi>s</mi> <mi>t</mi> <mi>C</mi> <mi>u</mi> <mi>r</mi> <mi>r</mi> <mi>L</mi> <mi>C</mi> <mi>U</mi> </mrow> </msub> <mrow> <mo>&Sigma;</mo> <msub> <mi>B</mi> <mrow> <mi>N</mi> <mi>o</mi> <mi>t</mi> <mi>C</mi> <mi>o</mi> <mi>d</mi> <mi>e</mi> <mi>d</mi> <mi>L</mi> <mi>C</mi> <mi>U</mi> <mi>s</mi> </mrow> </msub> </mrow> </mfrac> </mrow>

其中,CCurrLCU为当前LCU的复杂度,B1stCurrLCU为First-Pass中收集到的当前LCU的比特数,BNotCodedLCUs为步骤1中收集到的当前帧中未编码LCU的比特数;

步骤ⅴ:使用步骤1中收集的视频码率、失真信息,以双曲线R-D模型为基准,拟合当前视频序列的模型参数C、K;

步骤ⅵ:按照R-D模型和R-λ模型的对应关系,计算R-λ模型的模型参数α、β;

步骤ⅶ:根据在线训练模型参数的R-λ模型,利用步骤ⅳ中为当前LCU分配的比特数,计算用于当前LCU的λ值,并检验是否符合约束;

步骤ⅷ:根据步骤ⅶ中获得的λ值以及算式QP=4.2005lnλ+13.7122中描述的λ与QP之间的关系,计算用于当前LCU量化过程的QP值,并检验是否符合约束;

步骤ⅸ:应用步骤ⅷ中得到的QP值集,进行完整的编码过程,输出比特流。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1