码率控制方法和装置、存储介质和电子设备转让专利
申请号 : CN202010297264.3
文献号 : CN111479113B
文献日 : 2021-04-09
发明人 : 赵俊
申请人 : 腾讯科技(深圳)有限公司
摘要 :
权利要求 :
1.一种码率控制方法,其特征在于,包括:
在待传输的第i帧图像为ROI帧图像的情况下,获取ROI帧码控模型输出的第i帧初始量化参数QPi_init_roi和第i帧预估帧大小Biti_estimate_roi,其中,所述QPi_init_roi和Biti_estimate_roi是根据对第i‑1帧图像进行编码所得到的第i‑1帧平均量化参数QPi‑1_real和第i‑1帧实际帧大小Biti‑1_real确定得到的;
使用所述QPi_init_roi和Biti_estimate_roi对所述第i帧图像进行编码,并获取对所述第i帧图像进行编码所得到的第i帧平均量化参数QPi_real_roi和第i帧实际帧大小Biti_real_roi;
根据所述QPi_real_roi确定第i帧更新量化参数QPi_nonroi,并根据所述Biti_real_roi确定第i帧更新帧大小Biti_nonroi,其中,所述QPi_nonroi大于所述QPi_real_roi,所述Biti_nonroi小于所述Biti_real_roi;
使用所述QPi_nonroi和所述Biti_nonroi确定非ROI帧码控模型中第i+1帧的第一目标参数,其中,所述第一目标参数用于在第i+1帧图像为非ROI帧图像的情况下确定第i+1帧初始量化参数QPi+1_init_nonroi和第i+1帧预估帧大小Biti+1_estimate_nonroi。
2.根据权利要求1所述的方法,其特征在于,所述根据所述QPi_real_roi确定第i帧更新量化参数QPi_nonroi,包括:
根据所述QPi_real_roi和预设期望比率(1+ratio)确定所述第i帧更新量化参数QPi_nonroi,其中,所述QPi_nonroi与所述(1+ratio)呈正相关。
3.根据权利要求2所述的方法,其特征在于,所述根据所述QPi_real_roi和预设期望比率(1+ratio)确定所述第i帧更新量化参数QPi_nonroi,包括:通过以下公式确定所述QPi_nonroi:
QPi_nonroi=qScale2QP(qp2QScale(QPi_real_roi)*(1+ratio))其中,所述qScale2QP和qp2QScale为互逆运算。
4.根据权利要求1所述的方法,其特征在于,所述根据所述Biti_real_roi确定第i帧更新帧大小Biti_nonroi,包括:
根据所述Biti_real_roi和预设期望比率(1+ratio)确定所述第i帧更新帧大小Biti_nonroi,其中,所述Biti_nonroi与所述(1+ratio)呈负相关。
5.根据权利要求4所述的方法,其特征在于,所述根据所述Biti_real_roi和预设期望比率(1+ratio)确定所述第i帧更新帧大小Biti_nonroi,包括:通过以下公式确定所述Biti_nonroi:Biti_nonroi=Biti_real_roi/(1+ratio)。
6.根据权利要求1所述的方法,其特征在于,所述使用所述QPi_nonroi和所述Biti_nonroi确定非ROI帧码控模型中第i+1帧的第一目标参数,包括:获取与所述QPi_nonroi对应的第i帧的第一中间变量qscalenonroi_real[i];
获取与所述QPi_init_roi对应的第i帧的第二中间变量qscalenonroi_init[i];
通过以下公式确定所述第一目标参数:
cplxr_sumnonroi[i+1]=cplxr_sumnonroi[i]+Biti_nonroi*qscalenonroi_real[i]/qscalenonroi_init[i]
其中,cplxr_sumnonroi[i+1]为所述第一目标参数。
7.根据权利要求6所述的方法,其特征在于,
所述获取与所述QPi_nonroi对应的第i帧的第一中间变量qscalenonroi_real[i],包括:获取通过如下公式确定的qscalenonroi_real[i]:QPi_nonroi=12+6*log2(qscalenonroi_real[i]/0.85);
所述获取与所述QPi_init_roi对应的第i帧的第二中间变量qscalenonroi_init[i],包括:获取通过如下公式确定的qscalenonroi_init[i]:QPi_init_roi=12+6*log2(qscalenonroi_init[i]/0.85)。
8.根据权利要求1所述的方法,其特征在于,在获取对所述第i帧图像进行编码所得到的第i帧平均量化参数QPi_real_roi和第i帧实际帧大小Biti_real_roi之后,所述方法还包括:使用所述QPi_real_roi和所述Biti_real_roi确定所述ROI帧码控模型中第i+1帧的第二目标参数,其中,所述第二目标参数用于在第i+1帧图像为ROI帧图像的情况下确定第i+1帧初始量化参数QPi+1_init_roi和第i+1帧预估帧大小Biti+1_estimate_roi。
9.根据权利要求8所述的方法,其特征在于,所述使用所述QPi_real_roi和所述Biti_real_roi确定所述ROI帧码控模型中第i+1帧的第二目标参数,包括:获取与所述QPi_real_roi对应的第i帧的第三中间变量qscaleroi_real[i];
获取与所述QPi_init_roi对应的第i帧的第四中间变量qscaleroi_init[i];
通过以下公式确定所述第二目标参数:
cplxr_sumroi[i+1]=cplxr_sumroi[i]+Biti_real_roi*qscaleroi_real[i]/qscaleroi_init[i]其中,cplxr_sumroi[i+1]为所述第二目标参数。
10.根据权利要求1所述的方法,其特征在于,在所述使用所述QPi_nonroi和所述Biti_nonroi确定非ROI帧码控模型中第i+1帧的第一目标参数之后,所述方法还包括:在待传输的第i+1帧图像为非ROI帧图像的情况下,获取所述非ROI帧码控模型输出的第i+1帧初始量化参数QPi+1_init_nonroi和第i+1帧预估帧大小Biti+1_estimate_nonroi,其中,所述QPi+1_init_nonroi和Biti+1_estimate_nonroi是根据所述第一目标参数确定得到的;
使用所述QPi+1_init_nonroi和Biti+1_estimate_nonroi对所述第i+1帧图像进行编码,并获取对所述第i+1帧图像进行编码所得到的第i+1帧平均量化参数QPi+1_real_nonroi和第i+1帧实际帧大小Biti+1_real_nonroi;
根据所述QPi+1_real_nonroi确定第i+1帧更新量化参数QPi+1_roi,并根据所述Biti+1_real_nonroi确定第i+1帧更新帧大小Biti+1_roi,其中,所述QPi+1_roi小于所述QPi+1_real_nonroi,所述Biti+1_roi大于所述Biti+1_real_nonroi;
使用所述QPi+1_roi和所述Biti+1_roi确定所述ROI帧码控模型中第i+2帧的第二目标参数,其中,所述第二目标参数用于在第i+2帧图像为ROI帧图像的情况下确定第i+2帧初始量化参数QPi+2_init_roi和第i+2帧预估帧大小Biti+2_estimate_roi。
11.根据权利要求10所述的方法,其特征在于,所述获取所述非ROI帧码控模型输出的第i+1帧初始量化参数QPi+1_init_nonroi,包括:获取通过以下公式确定的所述QPi+1_init_nonroi:QPi+1_init_nonroi=qscale_raw/rateFactor其中,所述qscale_raw是根据所述第i帧图像的复杂度预先估计出的参数;
rateFactor=wanted_bits[i+1]/cplxr_sumnonroi[i+1],cplxr_sumnonroi[i+1]为所述第一目标参数;
wanted_bits[i+1]=Bitrate/fps*frame_num[i+1]其中,Bitrate为预设的码率,fps为帧率,frame_num[i+1]为当前已经编码的帧数。
12.根据权利要求10所述的方法,其特征在于,所述获取所述非ROI帧码控模型输出的第i+1帧预估帧大小Biti+1_estimate_nonroi,包括:获取通过以下公式确定的所述Biti+1_estimate_nonroi:Biti+1_estimate_nonroi=(coeff[i+1]*SATD[i+1]+offset[i+1])/(qscalenonroi_init[i+1]*count[i+1])
其中,coeff[i+1]和offset[i+1]为所述第一目标参数;
count[i+1]=count[i]*0.5+1coeff[i+1]=coeff[i]*0.5+(Biti_nonroi*qscalenonroi_real[i]–offset[i]/count[i])/SATD[i]
offset[i+1]=offset[i]*0.5+(Biti_nonroi*qscalenonroi_real[i])*(1–offset[i]/count[i])
QPi+1_init_nonroi=12+6*log2(qscalenonroi_init[i+1]/0.85)QPi_nonroi=12+6*log2(qscalenonroi_real[i]/0.85)QPi_nonroi=qScale2QP(qp2QScale(QPi_real_roi)*(1+ratio))Biti_nonroi=Biti_real_roi/(1+ratio)其中,所述(1+ratio)为预设期望比率,所述qScale2QP和qp2QScale为互逆运算;
其中,所述SATD[x]为预先获取的第x帧的编码参数。
13.一种码率控制装置,其特征在于,包括:
第一获取单元,用于在待传输的第i帧图像为ROI帧图像的情况下,获取ROI帧码控模型输出的第i帧初始量化参数QPi_init_roi和第i帧预估帧大小Biti_estimate_roi,其中,所述QPi_init_roi和Biti_estimate_roi是根据对第i‑1帧图像进行编码所得到的第i‑1帧平均量化参数QPi‑1_real和第i‑1帧实际帧大小Biti‑1_real确定得到的;
第一处理单元,用于使用所述QPi_init_roi和Biti_estimate_roi对所述第i帧图像进行编码,并获取对所述第i帧图像进行编码所得到的第i帧平均量化参数QPi_real_roi和第i帧实际帧大小Biti_real_roi;
第一确定单元,用于根据所述QPi_real_roi确定第i帧更新量化参数QPi_nonroi,并根据所述Biti_real_roi确定第i帧更新帧大小Biti_nonroi,其中,所述QPi_nonroi大于所述QPi_real_roi,所述Biti_nonroi小于所述Biti_real_roi;
第二确定单元,用于使用所述QPi_nonroi和所述Biti_nonroi确定非ROI帧码控模型中第i+1帧的第一目标参数,其中,所述第一目标参数用于在第i+1帧图像为非ROI帧图像的情况下确定第i+1帧初始量化参数QPi+1_init_nonroi和第i+1帧预估帧大小Biti+1_estimate_nonroi。
14.一种计算机可读的存储介质,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至12任一项中所述的方法。
15.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至12任一项中所述的方法。
说明书 :
码率控制方法和装置、存储介质和电子设备
技术领域
背景技术
中,而非ROI获得码率保持不变,即ROI画质增强,非ROI画质与原先保持一致。
应位置的数值,对当前CTU的QP进行调整,以达到调整码率分配的目的。但是,通过这种方式
会引发画面劣化问题,以及码率浪费的问题。
发明内容
第i帧预估帧大小Biti_estimate_roi,其中,上述QPi_init_roi和Biti_estimate_roi是根据对第i‑1帧图
像进行编码所得到的第i‑1帧平均量化参数QPi‑1_real和第i‑1帧实际帧大小Biti‑1_real确定
得到的;使用上述QPi_init_roi和Biti_estimate_roi对上述第i帧图像进行编码,并获取对上述第i
帧图像进行编码所得到的第i帧平均量化参数QPi_real_roi和第i帧实际帧大小Biti_real_roi;根
据上述QPi_real_roi确定第i帧更新量化参数QPi_nonroi,并根据上述Biti_real_roi确定第i帧更新
帧大小Biti_nonroi,其中,上述QPi_nonroi大于上述QPi_real_roi,上述Biti_nonroi小于上述
Biti_real_roi;使用上述QPi_nonroi和上述Biti_nonroi确定非ROI帧码控模型中第i+1帧的第一目
标参数,其中,上述第一目标参数用于在第i+1帧图像为非ROI帧图像的情况下确定第i+1帧
初始量化参数QPi+1_init_nonroi和第i+1帧预估帧大小Biti+1_estimate_nonroi。
始量化参数QPi_init_roi和第i帧预估帧大小Biti_estimate_roi,其中,上述QPi_init_roi和
Biti_estimate_roi是根据对第i‑1帧图像进行编码所得到的第i‑1帧平均量化参数QPi‑1_real和
第i‑1帧实际帧大小Biti‑1_real确定得到的;第一处理单元,用于使用上述QPi_init_roi和
Biti_estimate_roi对上述第i帧图像进行编码,并获取对上述第i帧图像进行编码所得到的第i
帧平均量化参数QPi_real_roi和第i帧实际帧大小Biti_real_roi;第一确定单元,用于根据上述
QPi_real_roi确定第i帧更新量化参数QPi_nonroi,并根据上述Biti_real_roi确定第i帧更新帧大小
Biti_nonroi,其中,上述QPi_nonroi大于上述QPi_real_roi,上述Biti_nonroi小于上述Biti_real_roi;第
二确定单元,用于使用上述QPi_nonroi和上述Biti_nonroi确定非ROI帧码控模型中第i+1帧的第
一目标参数,其中,上述第一目标参数用于在第i+1帧图像为非ROI帧图像的情况下确定第i
+1帧初始量化参数QPi+1_init_nonroi和第i+1帧预估帧大小Biti+1_estimate_nonroi。
控制方法。
上述码率控制方法。
据QPi‑1_real和Biti‑1_real来确定ROI帧码控模型输出的第i帧初始量化参数QPi_init_roi和第i帧
预估帧大小Biti_estimate_roi,然后使用QPi_init_roi和Biti_estimate_roi对上述第i帧图像进行编
码,并获取对上述第i帧图像进行编码所得到的第i帧平均量化参数QPi_real_roi和第i帧实际
帧大小Biti_real_roi,并根据QPi_real_roi确定第i帧更新量化参数QPi_nonroi,以及根据上述
Biti_real_roi确定第i帧更新帧大小Biti_nonroi,其中,上述QPi_nonroi大于上述QPi_real_roi,上述
Biti_nonroi小于上述Biti_real_roi,最后,使用上述QPi_nonroi和上述Biti_nonroi对非ROI帧码控模
型中的第一目标参数,其中,上述第一目标参数用于在第i+1帧图像为非ROI帧图像的情况
下确定第i+1帧初始量化参数QPi+1_init_nonroi和第i+1帧预估帧大小Biti+1_estimate_nonroi。通过
上述方式,可以通过上一帧(第i‑1帧)的历史参数QPi‑1_real和Biti‑1_real来确定当前帧(第i
帧)的QPi_init_roi和预估帧大小Biti_estimate‑roi,并通过来QPi‑1_rea_roil更新当前帧的量化参数
QPi_nonroi,以及通过Biti‑1_real_roi更新当前帧的Biti_nonroi,以及使用上述QPi_nonroi和上述
Biti_nonroi确定非ROI帧码控模型中第i+1帧的第一目标参数,使得在每一帧编码结束后,ROI
帧码控模型和非ROI帧码控模型互相更新模型参数,保证了两个模型都拥有足够的历史数
据,进而保证后续帧预测的准确性,提高了码率控制的准确性。
附图说明
具体实施方式
本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人
员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范
围。
的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或
描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆
盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于
清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品
或设备固有的其它步骤或单元。
index,简称SSIM)与峰值信噪比(Peak Signalto Noise Ratio,简称PSNR),VMAF的评测结
果与人眼主观观看更一致。
i帧图像为ROI帧图像的情况下,获取ROI帧码控模型输出的第i帧初始量化参数QPi_init_roi
和第i帧预估帧大小Biti_estimate_roi,其中,上述QPi_init_roi和Biti_estimate_roi是根据对第i‑1帧
图像进行编码所得到的第i‑1帧平均量化参数QPi‑1_real和第i‑1帧实际帧大小Biti‑1_real确
定得到的,并通过网络将QPi_init_roi和Biti_estimate_roi发送给服务器104。服务器104接收到
QPi_init_roi和Biti_estimate_roi后,使用上述QPi_init_roi和Biti_estimate_roi对上述第i帧图像进行
编码,并获取对上述第i帧图像进行编码所得到的第i帧平均量化参数QPi_real_roi和第i帧实
际帧大小Biti_real_roi;根据上述QPi_real_roi确定第i帧更新量化参数QPi_nonroi,并根据上述
Biti_real_roi确定第i帧更新帧大小Biti_nonroi,其中,上述QPi_nonroi大于上述QPi_real_roi,上述
Biti_nonroi小于上述Biti_real_roi;使用上述QPi_nonroi和上述Biti_nonroi确定非ROI帧码控模型
中第i+1帧的第一目标参数,其中,上述第一目标参数用于在第i+1帧图像为非ROI帧图像的
情况下确定第i+1帧初始量化参数QPi+1_init_nonroi和第i+1帧预估帧大小Biti+1_estimate_nonroi;
服务器104将更新后的第一目标参数通过网络传输给终端设备102。以上仅为一种示例,本
申请实施例在此不作限定。
上电脑、MID(Mobile Internet Devices,移动互联网设备)、PAD、台式电脑、智能电视等。目
标客户端可以是视频客户端、即时通信客户端、浏览器客户端、教育客户端等。上述网络可
以包括但不限于:有线网络,无线网络,其中,该有线网络包括:局域网、城域网和广域网,该
无线网络包括:蓝牙、WIFI及其他实现无线通信的网络。上述服务器可以是单一服务器,也
可以是由多个服务器组成的服务器集群,或者是云服务器。上述只是一种示例,本实施例对
此不做任何限定。
上述服务器104)执行为例进行说明。如图2所示,上述码率控制方法的流程可以包括步骤:
和Biti_estimate_roi是根据对第i‑1帧图像进行编码所得到的第i‑1帧平均量化参数QPi‑1_real
和第i‑1帧实际帧大小Biti‑1_real确定得到的。
QPi‑1_real和Biti‑1_real可以得到ROI帧码控模型输出的第i帧的初始量化参数QPi_init_roi和第i
帧预估帧大小Biti_estimate_roi。
Biti_real_roi。
小Biti_real_roi。
Biti_nonroi小于上述Biti_real_roi。
于上述QPi_real_roi,上述Biti_nonroi小于上述Biti_real_roi。
第i+1帧初始量化参数QPi+1_init_nonroi和第i+1帧预估帧大小Biti+1_estimate_nonroi。
下,来确定第i+1帧的初始量化参数QPi+1_init_nonroi和第i+1帧预估帧大小
Biti+1_estimate_nonroi。
和Biti‑1_real来确定ROI帧码控模型输出的第i帧初始量化参数QPi_init_roi和第i帧预估帧大
小Biti_estimate_roi,然后使用QPi_init_roi和Biti_estimate_roi对上述第i帧图像进行编码,并获取
对上述第i帧图像进行编码所得到的第i帧平均量化参数QPi_real_roi和第i帧实际帧大小
Biti_real_roi,并根据QPi_real_roi确定第i帧更新量化参数QPi_nonroi,以及根据上述Biti_real_roi
确定第i帧更新帧大小Biti_nonroi,其中,上述QPi_nonroi大于上述QPi_real_roi,上述Biti_nonroi小
于上述Biti_real_roi,最后,使用上述QPi_nonroi和上述Biti_nonroi确定非ROI帧码控模型中第i+1
帧的第一目标参数,其中,上述第一目标参数用于在第i+1帧图像为非ROI帧图像的情况下
确定第i+1帧初始量化参数QPi+1_init_nonroi和第i+1帧预估帧大小Biti+1_estimate_nonroi。通过上
述方式,可以通过上一帧(第i‑1帧)的历史参数QPi‑1_real和Biti‑1_real来确定当前帧(第i帧)
的QPi_init_roi和预估帧大小Biti_estimate‑roi,并通过来QPi‑1_rea_roil更新当前帧的量化参数
QPi_nonroi,以及通过Biti‑1_real_roi更新当前帧的Biti_nonroi,以及使用上述QPi_nonroi和上述
Biti_nonroi确定非ROI帧码控模型中第i+1帧的第一目标参数,使得在每一帧编码结束后,ROI
帧码控模型和非ROI帧码控模型互相更新模型参数,保证了两个模型都拥有足够的历史数
据,进而保证后续帧预测的准确性,提高了码率控制的准确性。
数QPi_nonroi,其中,上述QPi_nonroi与上述(1+ratio)呈正相关。
呈正相关,ratio可以设置为0.15、0.2、0.3等等,本实施在此不作任何限定。
度。
qScale2QP(qp2QScale(QPi_real_roi)*(1+ratio))其中,上述qScale2QP和qp2QScale为互逆
运算。
小Biti_nonroi,其中,上述Biti_nonroi与上述(1+ratio)呈负相关。
ratio)呈负相关。
Biti_real_roi/(1+ratio)。
qscalenonroi_real[i];获取与上述QPi_init_roi对应的第i帧的第二中间变量qscalenonroi_init
[i];通过以下公式确定上述第一目标参数:cplxr_sumnonroi[i+1]=cplxr_sumnonroi[i]+
Biti_nonroi*qscalenonroi_real[i]/qscalenonroi_init[i]其中,cplxr_sumnonroi[i+1]为上述第一
目标参数。
QPi_init_roi对应的第i帧的第二中间变量qscalenonroi_init[i],最后,可以按照以下公式对对
上述第一目标参数:
log2(qscalenonroi_real[i]/0.85);上述获取与上述QPi_init_roi对应的第i帧的第二中间变量
qscalenonroi_init[i],包括:获取通过如下公式确定的qscalenonroi_init[i]:
QPi_real_roi和上述Biti_real_roi确定上述ROI帧码控模型中第i+1帧的第二目标参数,其中,上
述第二目标参数用于在第i+1帧图像为ROI帧图像的情况下确定第i+1帧初始量化参数
QPi+1_init_roi和第i+1帧预估帧大小Biti+1_estimate_roi。
图像的情况下确定第i+1帧初始量化参数QPi+1_init_roi和第i+1帧预估帧大小
Biti+1_estimate_roi。
Biti+1_estimate_roi,通过以上一帧的历史参数确定当前帧的参数,以及通过当前帧的参数确
定下一帧的参数的方式,使得码率控制有更多的历史参数可以参考,提高了码率控制的精
度。
QPi_real_roi对应的第i帧的第三中间变量qscaleroi_real[i];获取与上述QPi_init_roi对应的第i
帧的第四中间变量qscaleroi_init[i];通过以下公式确定上述第二目标参数:cplxr_sumroi[i
+1]=cplxr_sumroi[i]+Biti_real_roi*qscaleroi_real[i]/qscaleroi_init[i],其中,cplxr_sumroi
[i+1]为上述第二目标参数。
QPi_init_roi对应的第i帧的第四中间变量qscaleroi_init[i];通过以下公式确定上述第二目标
参数:cplxr_sumroi[i+1]=cplxr_sumroi[i]+Biti_real_roi*qscaleroi_real[i]/qscaleroi_init
[i],其中,cplxr_sumroi[i+1]为上述第二目标参数。
(qscaleroi_real[i]/0.85);上述获取与上述QPi_init_roi对应的第i帧的第四中间变量
qscaleroi_init[i],包括:获取通过如下公式确定的qscaleroi_init[i]:QPi_init_roi=12+6*log2
(qscaleroi_init[i]/0.85)。
帧图像的情况下,获取上述非ROI帧码控模型输出的第i+1帧初始量化参数QPi+1_init_nonroi和
第i+1帧预估帧大小Biti+1_estimate_nonroi,其中,上述QPi+1_init_nonroi和Biti+1_estimate_nonroi是根
据上述第一目标参数确定得到的;使用上述QPi+1_init_nonroi和Biti+1_estimate_nonroi对上述第i+
1帧图像进行编码,并获取对上述第i+1帧图像进行编码所得到的第i+1帧平均量化参数
QPi+1_real_nonroi和第i+1帧实际帧大小Biti+1_real_nonroi;根据上述QPi+1_real_nonroi确定第i+1帧
更新量化参数QPi+1_roi,并根据上述Biti+1_real_nonroi确定第i+1帧更新帧大小Biti+1_roi,其中,
上述QPi+1_roi小于上述QPi+1_real_nonroi,上述Biti+1_roi大于上述Biti+1_real_nonroi;使用上述
QPi+1_roi和上述Biti+1_roi确定上述ROI帧码控模型中第i+2帧的第二目标参数,其中,上述第
二目标参数用于在第i+2帧图像为ROI帧图像的情况下确定第i+2帧初始量化参数
QPi+2_init_roi和第i+2帧预估帧大小Biti+2_estimate_roi。
像(下一帧图像)为非ROI帧图像的情况下,可以根据第一目标参数来确定非ROI帧码控模型
输出的第i+1帧初始量化参数QPi+1_init_nonroi和第i+1帧预估帧大小Biti+1_estimate_nonroi。
际帧大小Biti+1_real_nonroi。
QPi+1_real_nonroi,上述Biti+1_roi大于上述Biti+1_real_nonroi;
+2帧初始量化参数QPi+2_init_roi和第i+2帧预估帧大小Biti+2_estimate_roi。
数QPi+2_init_roi和第i+2帧预估帧大小Biti+2_estimate_roi,通过这种方式可以使得码控模型更
加精确,提高了码率控制的精确度。
qscale_raw/rateFactor其中,上述qscale_raw是根据上述第i+1帧图像的复杂度预先估计
出的参数;rateFactor=wanted_bits[i+1]/cplxr_sumnonroi[i+1],cplxr_sumnonroi[i+1]为
上述第一目标参数;wanted_bits[i+1]=Bitrate/fps*frame_num[i+1]其中,Bitrate为预
设的码率,fps为帧率,frame_num[i+1]为当前已经编码的帧数。
Biti+1_estimate_nonroi=(coeff[i+1]*SATD[i+1]+offset[i+1])/(qscalenonroi_init[i+1]*
count[i+1]),其中,coeff[i+1]和offset[i+1]为上述第一目标参数;count[i+1]=count
[i]*0.5+1,coeff[i+1]=coeff[i]*0.5+(Biti_nonroi*qscalenonroi_real[i]–offset[i]/
count[i])/SATD[i],offset[i+1]=offset[i]*0.5+(Biti_nonroi*qscalenonroi_real[i])*(1–
offset[i]/count[i]),QPi+1_init_nonroi=12+6*log2(qscalenonroi_init[i+1]/0.85),QPi_nonroi
=12+6*log2(qscalenonroi_real[i]/0.85)QPi_nonroi=qScale2QP(qp2QScale(QPi_real_roi)*(1+
ratio)),Biti_nonroi=Biti_real_roi/(1+ratio);其中,上述(1+ratio)为预设期望比率,上述
qScale2QP和qp2QScale为互逆运算;其中,上述SATD[i]为预先获取的编码参数。
像被划分为多个宏块,在执行以下操作时每个宏块被视为当前宏块:在上述当前宏块为ROI
宏块的情况下,使用上述QPi_init_roi、Biti_estimate_roi和ROI块码控模型对上述当前宏块进行
编码,得到编码后的第一编码参数;使用上述第一编码参数对非ROI块码控模型进行更新;
使用上述第一编码参数对上述ROI块码控模型进行更新;在上述当前宏块为非ROI宏块的情
况下,使用上述QPi_init_roi、Biti_estimate_roi和上述非ROI块码控模型对上述当前宏块进行编
码,得到编码后的第二编码参数;使用上述第二编码参数对上述非ROI块码控模型进行更
新;使用上述第二编码参数对上述ROI块码控模型进行更新。
第一编码参数对非ROI块码控模型;使用上述第一编码参数对上述ROI块码控模型。
编码参数对上述非ROI块码控模型;使用上述第二编码参数对上述ROI块码控模型。
码宏块的QP值(如QPi_init_roi)估计当前帧编码后的大小(如Biti_estimate_roi),如果当前帧编
码后的大小(如Biti_estimate_roi)超过了预估的bits(目标码率),则将该最新编码宏块的QP值
(如QPi_init_roi)往上调0.5,直到预估的bits和目标码率接近,如果当前帧编码后的大小(如
Biti_estimate_roi)小于目标码率,则将该最新编码宏块的QP值(如QPi_init_roi)往下调0.5,直到
预估的bits和目标码率接近。
大小Biti_estimate_nonroi,其中,上述QPi_init_nonroi和Biti_estimate_nonroi是根据对第i‑1帧图像进
行编码所得到的上述第i‑1帧平均量化参数QPi‑1_real和上述第i‑1帧实际帧大小Biti‑1_real
确定得到的;使用上述QPi_init_nonroi和Biti_estimate_nonroi对上述第i帧图像进行编码,并获取
对上述第i帧图像进行编码所得到的第i帧平均量化参数QPi_real_nonroi和第i帧实际帧大小
Biti_real_nonroi;根据上述QPi_real_nonroi确定第i帧更新量化参数QPi_roi,并根据上述
Biti_real_nonroi确定第i帧更新帧大小Biti_roi,其中,上述QPi_roi小于上述QPi_real_nonroi,上述
Biti_roi大于上述Biti_real_nonroi;使用上述QPi_roi和上述Biti_roi确定上述ROI帧码控模型中
第i+1帧的第二目标参数,其中,上述第二目标参数用于在第i+1帧图像为ROI帧图像的情况
下确定第i+1帧初始量化参数QPi+1_init_roi和第i+1帧预估帧大小Biti+1_estimate_roi。
QPi‑1_real和Biti‑1_real可以得到非ROI帧码控模型输出的第i帧的初始量化参数QPi_init_nonroi
和第i帧预估帧大小Biti_estimate_nonroi。
Biti_real_nonroi。
Biti_real_nonroi。
第i+1帧的初始量化参数QPi+1_init_roi和第i+1帧预估帧大小Biti+1_estimate_roi。
数QPi_roi,其中,上述QPi_roi与上述(1+ratio)呈负相关。
呈负相关,ratio可以设置为0.15、0.2、0.3等等,本实施在此不作任何限定。
(qp2QScale(QPi_real_nonroi)/(1+ratio))其中,上述qScale2QP和qp2QScale为互逆运算。
小Biti_roi,其中,上述Biti_roi与上述(1+ratio)呈正相关。
ratio)呈正相关。
Biti_real_nonroi*(1+ratio)。
qscaleroi_real[i];获取与上述QPi_init_nonroi对应的第i帧的第六中间变量qscaleroi_init[i];
通过以下公式确定上述第二目标参数:cplxr_sumroi[i+1]=cplxr_sumroi[i]+Biti_roi*
qscaleroi_real[i]/qscaleroi_init[i],其中,cplxr_sumroi[i+1]为上述第二目标参数。
对应的第i帧的第六中间变量qscaleroi_init[i],最后,可以按照以下公式确定上述第二目标
参数:
(qscaleroi_real[i]/0.85);上述获取与上述QPi_init_nonroi对应的第i帧的第六中间变量
qscaleroi_init[i],包括:获取通过如下公式确定的qscaleroi_init[i]:QPi_init_nonroi=12+6*
log2(qscaleroi_init[i]/0.85)。
QPi_real_nonroi和上述Biti_real_nonroi确定上述非ROI帧码控模型中第i+1帧的上述第一目标参
数,其中,上述第一目标参数用于在第i+1帧图像为非ROI帧图像的情况下确定第i+1帧初始
量化参数QPi+1_init_nonroi和第i+1帧预估帧大小Biti+1_estimate_nonroi。
为非ROI帧图像的情况下确定第i+1帧初始量化参数QPi+1_init_nonroi和第i+1帧预估帧大小
Biti+1_estimate_nonroi。
Biti+1_estimate_nonroi,通过以上一帧的历史参数确定当前帧的参数,以及通过当前帧的参数
确定下一帧的参数的方式,使得码率控制有更多的历史参数可以参考,提高了码率控制的
精度。
的第七中间变量qscalenonroi_real[i];获取与上述QPi_init_nonroi对应的第i帧的第八中间变量
qscalenonroi_init[i];通过以下公式确定上述第一目标参数:cplxr_sumnonroi[i+1]=cplxr_
sumnonroi[i]+Biti_real_nonroi*qscalenonroi_real[i]/qscalenonroi_init[i]其中,cplxr_sumnonroi[i
+1]为上述第一目标参数。
QPi_init_nonroi对应的第i帧的第八中间变量qscalenonroi_init[i];通过以下公式确定上述第一
目标参数:cplxr_sumnonroi[i+1]=cplxr_sumnonroi[i]+Biti_real_nonroi*qscalenonroi_real[i]/
qscalenonroi_init[i],其中,cplxr_sumnonroi[i+1]为上述第一目标参数。
12+6*log2(qscalenonroi_real[i]/0.85);上述获取与上述QPi_init_nonroi对应的第i帧的第八中
间变量qscalenonroi_init[i],包括:获取通过如下公式确定的qscalenonroi_init[i]:
QPi_init_nonroi=12+6*log2(qscalenonroi_init[i]/0.85)。
情况下,获取上述ROI帧码控模型输出的第i+1帧初始量化参数QPi+1_init_roi和第i+1帧预估
帧大小Biti+1_estimate_roi,其中,上述QPi+1_init_roi和Biti+1_estimate_roi是根据上述第二目标参数
确定得到的;使用上述QPi+1_init_roi和Biti+1_estimate_roi对上述第i+1帧图像进行编码,并获取
对上述第i+1帧图像进行编码所得到的第i+1帧平均量化参数QPi+1_real_roi和第i+1帧实际帧
大小Biti+1_real_roi;根据上述QPi+1_real_roi确定第i+1帧更新量化参数QPi+1_nonroi,并根据上述
Biti+1_real_roi确定第i+1帧更新帧大小Biti+1_nonroi,其中,上述QPi+1_nonroi大于上述
QPi+1_real_roi,上述Biti+1_nonroi小于上述Biti+1_real_roi;使用上述QPi+1_nonroi和上述Biti+1_nonroi
确定上述非ROI帧码控模型中第i+2帧的上述第一目标参数,其中,上述第一目标参数用于
在第i+2帧图像为非ROI帧图像的情况下确定第i+2帧初始量化参数QPi+2_init_nonroi和第i+2
帧预估帧大小Biti+2_estimate_nonroi。
一帧图像)为ROI帧图像的情况下,可以根据第二目标参数来确定ROI帧码控模型输出的第i
+1帧初始量化参数QPi+1_init_roi和第i+1帧预估帧大小Biti+1_estimate_roi。
小Biti+1_real_roi。
QPi+1_real_roi,上述Biti+1_nonroi小于上述Biti+1_real_roi;
情况下确定第i+2帧初始量化参数QPi+2_init_nonroi和第i+2帧预估帧大小Biti+2_estimate_nonroi。
量化参数QPi+2_init_nonroi和第i+2帧预估帧大小Biti+2_estimate_nonroi,通过这种方式可以使得
码控模型更加精确,提高了码率控制的精确度。
raw/rateFactor,其中,上述qscale_raw是根据上述第i+1帧图像的复杂度预先估计出的参
数;rateFactor=wanted_bits[i+1]/cplxr_sumroi[i+1],cplxr_sumroi[i+1]为上述第二目
标参数;wanted_bits[i+1]=Bitrate/fps*frame_num[i+1],其中,Bitrate为预设的码率,
上述fps为帧率,frame_num[i+1]为当前已经编码的帧数。
帧图像被划分为多个宏块,在执行以下操作时每个宏块被视为当前宏块:在上述当前宏块
为ROI宏块的情况下,使用上述QPi_init_nonroi、Biti_estimate_nonroi和ROI块码控模型对上述当前
宏块进行编码,得到编码后的第三编码参数;使用上述第三编码参数对非ROI块码控模型进
行更新;使用上述第三编码参数对上述ROI块码控模型进行更新;在上述当前宏块为非ROI
宏块的情况下,使用上述QPi_init_nonroi、Biti_estimate_nonroi和上述非ROI块码控模型对上述当
前宏块进行编码,得到编码后的第四编码参数;使用上述第四编码参数对上述非ROI块码控
模型进行更新;使用上述第四编码参数对上述ROI块码控模型进行更新。
第三编码参数对非ROI块码控模型进行更新;使用上述第三编码参数对上述ROI块码控模型
进行更新;
第四编码参数对上述非ROI块码控模型进行更新;使用上述第四编码参数对上述ROI块码控
模型进行更新。
新编码宏块的QP值(如QPi_init_nonroi)估计当前帧编码后的大小(如Biti_estimate_nonroi),如果
当前帧编码后的大小(如Biti_estimate_nonroi)超过了预估的bits(目标码率),则将该最新编码
宏块的QP值(如QPi_init_nonroi)往上调0.5,直到预估的bits和目标码率接近,如果当前帧编码
后的大小(如Biti_estimate_roi)小于目标码率,则将该最新编码宏块的QP值(如
QPi_init_nonroi)往下调0.5,直到预估的bits和目标码率接近。
行微调,并且尽量确保一帧编码完毕后实际消耗的Bitsreal不会超过Bitsestimate。一帧编码
结束后,统计一帧所有CTU的平均QP和实际消耗的Bitsreal,利用这些统计数据对码控模型
进行参数更新。可理解,影响一帧Bitsreal的有帧级初始QP和Bitsestimate,这两个值又受已完
成编码的帧的平均QP和Bitsreal影响。因此一帧编码结束后,码控模型参数的更新对于码率
控制的准确性十分重要。
有与前一帧的画面差别的数据)。
S309。
新增的码率尽量分配到ROI的CTU上,而非ROI‑CTU则与关闭ROI(不开启ROI功能)时,保持一
致。
同。非ROI码控的结果要与关闭ROI时码控结果接近;ROI码控的结果要能给ROI帧和ROI‑CTU
分配更多的码率。
两个码控模型,如果当前帧为ROI帧或CTU,则使用ROI码控预估的结果,并且在编码结束后,
除了更新ROI码控模型,还需要通过映射关系估算出在非ROI码控模型下,当前帧或CTU的平
均QP和Bitsreal,更新非ROI码控模型;反之,则使用非ROI码控预估的结果,并且在编码结束
后,通过映射关系,更新ROI码控模型。
开。QScale与QP为如下对应关系:
adjust为经过帧级码控演算后初始QP所对应的qscale。
算过程比较复杂,但是一般可以认为QScale与Bits存在倒数关系,如果希望Bits增加20%,
则可以通过将QScale减小20%。
式进行换算:
有CTU的平均QP和累加的Bitsreal包含了ROI‑CTU和非ROI‑CTU,用这个数据去更新帧级码
控,会导致帧级码控模型逐渐失准,为此需要将累加的Bitsreal,经过如下公式换算:
Bitratenonroi_targe,现要求给ROI帧比非ROI帧多分配(1+ratio)的码率,则需要给ROI帧级码
控配置(1+ratio)*Bitratenonroi_targe的码率。这样就可以确保ROI帧能获得更多的Bits。其
中,ROI帧配置的目标码率是Bitrateroi_targe,且Bitrateroi_targe=(1+ratio)*
Bitratenonroi_targe。
然会比非ROI‑CTU分配更多的Bits。
低了码率的浪费,提高了对码率的控制效率。
依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知
悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明
所必须的。
述QPi_init_roi和Biti_estimate_roi是根据对第i‑1帧图像进行编码所得到的第i‑1帧平均量化参
数QPi‑1_real和第i‑1帧实际帧大小Biti‑1_real确定得到的;
实际帧大小Biti_real_roi;
QPi_real_roi,上述Biti_nonroi小于上述Biti_real_roi;
情况下确定第i+1帧初始量化参数QPi+1_init_nonroi和第i+1帧预估帧大小Biti+1_estimate_nonroi。
和Biti‑1_real来确定ROI帧码控模型输出的第i帧初始量化参数QPi_init_roi和第i帧预估帧大
小Biti_estimate_roi,然后使用QPi_init_roi和Biti_estimate_roi对上述第i帧图像进行编码,并获取
对上述第i帧图像进行编码所得到的第i帧平均量化参数QPi_real_roi和第i帧实际帧大小
Biti_real_roi,并根据QPi_real_roi确定第i帧更新量化参数QPi_nonroi,以及根据上述Biti_real_roi
确定第i帧更新帧大小Biti_nonroi,其中,上述QPi_nonroi大于上述QPi_real_roi,上述Biti_nonroi小
于上述Biti_real_roi,最后,使用上述QPi_nonroi和上述Biti_nonroi确定非ROI帧码控模型中第i+1
帧的第一目标参数,其中,上述第一目标参数用于在第i+1帧图像为非ROI帧图像的情况下
确定第i+1帧初始量化参数QPi+1_init_nonroi和第i+1帧预估帧大小Biti+1_estimate_nonroi。通过上
述方式,可以通过上一帧(第i‑1帧)的历史参数QPi‑1_real和Biti‑1_real来确定当前帧(第i帧)
的QPi_init_roi和预估帧大小Biti_estimate‑roi,并通过来QPi‑1_rea_roil更新当前帧的量化参数
QPi_nonroi,以及通过Biti‑1_real_roi更新当前帧的Biti_nonroi,以及使用上述QPi_nonroi和上述
Biti_nonroi确定非ROI帧码控模型中第i+1帧的第一目标参数,使得在每一帧编码结束后,ROI
帧码控模型和非ROI帧码控模型互相更新模型参数,保证了两个模型都拥有足够的历史数
据,进而保证后续帧预测的准确性,提高了码率控制的准确性。
QPi_nonroi与上述(1+ratio)呈正相关。
和qp2QScale为互逆运算。
Biti_nonroi与上述(1+ratio)呈负相关。
上述QPi_init_roi对应的第i帧的第二中间变量qscalenonroi_init[i];第三确定模块,用于通过
以下公式确定上述第一目标参数:cplxr_sumnonroi[i+1]=cplxr_sumnonroi[i]+Biti_nonroi*
qscalenonroi_real[i]/qscalenonroi_init[i],其中,cplxr_sumnonroi[i+1]为上述第一目标参数。
还用于获取通过如下公式确定的qscalenonroi_init[i]:QPi_init_roi=12+6*log2
(qscalenonroi_init[i]/0.85)。
述第二目标参数用于在第i+1帧图像为ROI帧图像的情况下确定第i+1帧初始量化参数
QPi+1_init_roi和第i+1帧预估帧大小Biti+1_estimate_roi。
qscaleroi_init[i];第四确定模块,用于通过以下公式确定上述第二目标参数:cplxr_sumroi
[i+1]=cplxr_sumroi[i]+Biti_real_roi*qscaleroi_real[i]/qscaleroi_init[i],其中,cplxr_
sumroi[i+1]为上述第二目标参数。
用于获取通过如下公式确定的qscaleroi_init[i]:QPi_init_roi=12+6*log2(qscaleroi_init[i]/
0.85)。
Biti+1_estimate_nonroi,其中,上述QPi+1_init_nonroi和Biti+1_estimate_nonroi是根据上述第一目标参数
确定得到的;第二处理单元,用于使用上述QPi+1_init_nonroi和Biti+1_estimate_nonroi对上述第i+1
帧图像进行编码,并获取对上述第i+1帧图像进行编码所得到的第i+1帧平均量化参数
QPi+1_real_nonroi和第i+1帧实际帧大小Biti+1_real_nonroi;第四确定单元,用于根据上述
QPi+1_real_nonroi确定第i+1帧更新量化参数QPi+1_roi,并根据上述Biti+1_real_nonroi确定第i+1帧
更新帧大小Biti+1_roi,其中,上述QPi+1_roi小于上述QPi+1_real_nonroi,上述Biti+1_roi大于上述
Biti+1_real_nonroi;第五确定单元,用于使用上述QPi+1_roi和上述Biti+1_roi确定上述ROI帧码控
模型中第i+2帧的第二目标参数,其中,上述第二目标参数用于在第i+2帧图像为ROI帧图像
的情况下确定第i+2帧初始量化参数QPi+2_init_roi和第i+2帧预估帧大小Biti+2_estimate_roi。
述qscale_raw是根据上述第i+1帧图像的复杂度预先估计出的参数;rateFactor=wanted_
bits[i+1]/cplxr_sumnonroi[i+1],cplxr_sumnonroi[i+1]为上述第一目标参数;wanted_bits
[i+1]=Bitrate/fps*frame_num[i+1],其中,Bitrate为预设的码率,fps为帧率,frame_
num[i+1]为当前已经编码的帧数。
offset[i+1])/(qscalenonroi_init[i+1]*count[i+1]),其中,coeff[i+1]和offset[i+1]为上
述第一目标参数,
宏块被视为当前宏块:在上述当前宏块为ROI宏块的情况下,使用上述QPi_init_roi、
Biti_estimate_roi和ROI块码控模型对上述当前宏块进行编码,得到编码后的第一编码参数;使
用上述第一编码参数对非ROI块码控模型进行更新;使用上述第一编码参数对上述ROI块码
控模型进行更新;在上述当前宏块为非ROI宏块的情况下,使用上述QPi_init_roi、
Biti_estimate_roi和上述非ROI块码控模型对上述当前宏块进行编码,得到编码后的第二编码
参数;使用上述第二编码参数对上述非ROI块码控模型进行更新;使用上述第二编码参数对
上述ROI块码控模型进行更新。
QPi_init_nonroi和第i帧预估帧大小Biti_estimate_nonroi,其中,上述QPi_init_nonroi和
Biti_estimate_nonroi是根据对第i‑1帧图像进行编码所得到的上述第i‑1帧平均量化参数
QPi‑1_real和上述第i‑1帧实际帧大小Biti‑1_real确定得到的;第三处理单元,用于使用上述
QPi_init_nonroi和Biti_estimate_nonroi对上述第i帧图像进行编码,并获取对上述第i帧图像进行
编码所得到的第i帧平均量化参数QPi_real_nonroi和第i帧实际帧大小Biti_real_nonroi;第六确定
单元,用于根据上述QPi_real_nonroi确定第i帧更新量化参数QPi_roi,并根据上述Biti_real_nonroi
确定第i帧更新帧大小Biti_roi,其中,上述QPi_roi小于上述QPi_real_nonroi,上述Biti_roi大于上
述Biti_real_nonroi;第七确定单元,用于使用上述QPi_roi和上述Biti_roi确定上述ROI帧码控模
型中第i+1帧的第二目标参数,其中,上述第二目标参数用于在第i+1帧图像为ROI帧图像的
情况下确定第i+1帧初始量化参数QPi+1_init_roi和第i+1帧预估帧大小Biti+1_estimate_roi。
QPi_roi与上述(1+ratio)呈负相关。
qp2QScale为互逆运算。
Biti_roi与上述(1+ratio)呈正相关。
QPi_init_nonroi对应的第i帧的第六中间变量qscaleroi_init[i];第七确定模块,用于通过以下
公式确定上述第二目标参数:cplxr_sumroi[i+1]=cplxr_sumroi[i]+Biti_roi*qscaleroi_real
[i]/qscaleroi_init[i],其中,cplxr_sumroi[i+1]为上述第二目标参数。
获取通过如下公式确定的qscaleroi_init[i]:QPi_init_nonroi=12+6*log2(qscaleroi_init[i]/
0.85)。
数,其中,上述第一目标参数用于在第i+1帧图像为非ROI帧图像的情况下确定第i+1帧初始
量化参数QPi+1_init_nonroi和第i+1帧预估帧大小Biti+1_estimate_nonroi。
变量qscalenonroi_init[i];第八确定模块,用于通过以下公式确定上述第一目标参数:cplxr_
sumnonroi[i+1]=cplxr_sumnonroi[i]+Biti_real_nonroi*qscalenonroi_real[i]/qscalenonroi_init
[i],其中,cplxr_sumnonroi[i+1]为上述第一目标参数。
块,还用于获取通过如下公式确定的qscalenonroi_init[i]:QPi_init_nonroi=12+6*log2
(qscalenonroi_init[i]/0.85)。
QPi+1_init_roi和第i+1帧预估帧大小Biti+1_estimate_roi,其中,上述QPi+1_init_roi和
Biti+1_estimate_roi是根据上述第二目标参数确定得到的;第四处理单元,用于使用上述
QPi+1_init_roi和Biti+1_estimate_roi对上述第i+1帧图像进行编码,并获取对上述第i+1帧图像进
行编码所得到的第i+1帧平均量化参数QPi+1_real_roi和第i+1帧实际帧大小Biti+1_real_roi;第
九确定单元,用于根据上述QPi+1_real_roi确定第i+1帧更新量化参数QPi+1_nonroi,并根据上述
Biti+1_real_roi确定第i+1帧更新帧大小Biti+1_nonroi,其中,上述QPi+1_nonroi大于上述
QPi+1_real_roi,上述Biti+1_nonroi小于上述Biti+1_real_roi;第十确定单元,用于使用上述
QPi+1_nonroi和上述Biti+1_nonroi对上述非ROI帧码控模型中的上述第一目标参数,其中,上述第
一目标参数用于在第i+2帧图像为非ROI帧图像的情况下确定第i+2帧初始量化参数
QPi+2_init_nonroi和第i+2帧预估帧大小Biti+2_estimate_nonroi。
qscale_raw是根据上述第i+1帧图像的复杂度预先估计出的参数;rateFactor=wanted_
bits[i+1]/cplxr_sumroi[i+1],cplxr_sumroi[i+1]为上述第二目标参数;wanted_bits[i+
1]=Bitrate/fps*frame_num[i+1],其中,Bitrate为预设的码率,上述fps为帧率,frame_
num[i+1]为当前已经编码的帧数。
宏块被视为当前宏块:在上述当前宏块为ROI宏块的情况下,使用上述QPi_init_nonroi、
Biti_estimate_nonroi和ROI块码控模型对上述当前宏块进行编码,得到编码后的第三编码参数;
使用上述第三编码参数对非ROI块码控模型进行更新;使用上述第三编码参数对上述ROI块
码控模型进行更新;在上述当前宏块为非ROI宏块的情况下,使用上述QPi_init_nonroi、
Biti_estimate_nonroi和上述非ROI块码控模型对上述当前宏块进行编码,得到编码后的第四编
码参数;使用上述第四编码参数对上述非ROI块码控模型进行更新;使用上述第四编码参数
对上述ROI块码控模型进行更新。
Biti_estimate_roi是根据对第i‑1帧图像进行编码所得到的第i‑1帧平均量化参数QPi‑1_real和
第i‑1帧实际帧大小Biti‑1_real确定得到的;
Biti_real_roi;
于上述Biti_real_roi;
初始量化参数QPi+1_init_nonroi和第i+1帧预估帧大小Biti+1_estimate_nonroi。
一计算机可读存储介质中,存储介质可以包括:闪存盘、ROM(Read‑Only Memory,只读存储
器)、RAM(Random Access Memory,随机存取器)、磁盘或光盘等。
为例来说明。如图8所示,该电子设备包括存储器802和处理器804,该存储器802中存储有计
算机程序,该处理器804被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
Biti_estimate_roi是根据对第i‑1帧图像进行编码所得到的第i‑1帧平均量化参数QPi‑1_real和
第i‑1帧实际帧大小Biti‑1_real确定得到的;
Biti_real_roi;
于上述Biti_real_roi;
初始量化参数QPi+1_init_nonroi和第i+1帧预估帧大小Biti+1_estimate_nonroi。
网络接口等),或者具有与图8所示不同的配置。
模块,从而执行各种功能应用以及数据处理,即实现上述的码率控制方法。存储器802可包
括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或
者其他非易失性固态存储器。在一些实例中,存储器802可进一步包括相对于处理器804远
程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限
于互联网、企业内部网、局域网、移动通信网及其组合。作为一种示例,如图8所示,上述存储
器802中可以但不限于包括上述码率控制装置中的第一获取单元702,第一处理单元704、第
一确定单元706、第二确定单元708。此外,还可以包括但不限于上述码率控制装置中的其他
模块单元,本示例中不再赘述。
(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而
可与互联网或局域网进行通讯。在一个实例中,传输装置806为射频(Radio Frequency,RF)
模块,其用于通过无线方式与互联网进行通讯。
信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(P2P,Peer To Peer)网
络,任意形式的计算设备,比如服务器、终端设备等电子设备都可以通过加入该点对点网络
而成为该区块链系统中的一个节点。
一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read‑Only Memory,
ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软
件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一
台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所
述方法的全部或部分步骤。
种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者
可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之
间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连
接,可以是电性或其它的形式。
网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目
的。
元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
视为本发明的保护范围。