编码处理方法、装置、设备及存储介质转让专利

申请号 : CN202011343013.0

文献号 : CN112153385B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张宏顺

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本发明实施例基于云技术公开了一种编码处理方法、装置、设备以及存储介质,具体可涉及云技术中的文件读取和存储,其中方法包括:确定对待编码图像中当前编码块进行编码的多个编码模式,以及确定多个编码模式中每个编码模式对应的估算参数;根据每个编码模式对应的估算参数对多个编码模式进行分组处理;基于分组处理结果从多个编码模式中选择至少一个候选编码模式;确定至少一个候选编码模式中每个候选编码模式对应的模式率失真代价,并选择模式率失真代价满足率失真代价条件的候选编码模式对当前编码块进行编码处理。采用本发明实施例可节省编码设备在编码处理时所需资源。

权利要求 :

1.一种编码处理方法,其特征在于,包括:

确定对待编码图像中当前编码块进行编码的多个编码模式,以及确定所述多个编码模式中每个编码模式对应的估算参数;

根据所述每个编码模式对应的估算参数对所述多个编码模式进行分组处理;

基于分组处理结果从所述多个编码模式中选择至少一个候选编码模式;

确定所述至少一个候选编码模式中每个候选编码模式对应的模式率失真代价,并选择模式率失真代价满足率失真代价条件的候选编码模式,对所述当前编码块进行编码处理。

2.如权利要求1所述的方法,其特征在于,任意一个编码模式对应的估算参数包括所述任意一个编码模式对应的估算失真和所述任意一个编码模式对应的估算残差比特数,所述多个编码模式包括目标编码模式,所述确定所述多个编码模式中每个编码模式对应的估算参数,包括:采用所述目标编码模式对所述当前编码块进行编码预测,得到所述目标编码模式对应的预测值;

确定所述目标编码模式对应的预测值与所述当前编码块之间的残差,并基于所述残差确定所述目标编码模式对应的估算失真率和所述目标编码模式对应的估算残差比特率;

将所述当前编码块内的像素点总数量与所述目标编码模式对应的估算失真率进行相乘运算,得到所述目标编码模式对应的估算失真;

将所述像素点总数量与所述目标编码模式对应的估算残差比特率进行相乘运算,得到所述目标编码模式对应的估算残差比特数。

3.如权利要求2所述的方法,其特征在于,所述基于所述残差确定所述目标编码模式对应的估算失真率和所述目标编码模式对应的估算残差比特率,包括:获取所述当前编码块的尺寸信息;

将所述当前编码块的尺寸信息以及所述残差输入至均方差计算规则中进行运算,得到所述目标编码模式对应的均方差值;

将所述目标编码模式对应的均方差值输入至估算因子确定规则中进行计算,得到所述目标编码模式对应的估算因子;

基于估算失真率确定规则和所述目标编码模式对应的估算因子,得到所述目标编码模式对应的估算失真率;

基于估算残差比特率确定规则和所述目标编码模式对应的估算因子,得到所述目标编码模式对应的估算残差比特率。

4.如权利要求3所述的方法,其特征在于,所述基于估算失真率确定规则和所述目标编码模式对应的估算因子,得到所述目标编码模式对应的估算失真率,包括:对所述估算因子进行修正处理,并获取修正处理后估算因子中的小数部分数值;

根据失真率参数对照表获取估算失真率参数;

将所述小数部分数值和所述估算失真率参数输入至所述估算失真率确定规则中进行运算,得到所述目标编码模式对应的估算失真率。

5.如权利要求4所述的方法,其特征在于,所述基于估算残差比特率确定规则和所述目标编码模式对应的估算因子,得到所述目标编码模式对应的估算残差比特率,包括:根据残差比特率参数对照表获取估算残差比特率参数;

将所述小数部分数值和所述估算残差比特率参数输入至所述估算残差比特率确定规则中进行运算,得到所述目标编码模式对应的估算残差比特率。

6.如权利要求1所述的方法,其特征在于,任意一个编码模式对应的估算参数包括所述任意一个编码模式对应的估算失真和所述任意一个编码模式对应的估算残差比特数,所述根据所述每个编码模式对应的估算参数对所述多个编码模式进行分组处理,包括:分别比较各个编码模式对应的估算失真和各个编码模式对应的估算残差比特数;

针对所述多个编码模式中的任一编码模式,若所述多个编码模式中存在与所述任一编码模式具有相同的估算失真和相同的估算残差比特数的其他编码模式,则将所述任一编码模式与所述其他编码模式组成一个第一类编码模式组;

若不存在与所述任一编码模式具有相同的估算失真和相同的估算残差比特数的其他编码模式,则将所述任一编码模式添加至第二类编码模式组。

7.如权利要求6所述的方法,其特征在于,所述方法还包括:获取所述当前编码块中语法元素比特数;

将所述语法元素比特数、每个编码模式对应的估算失真和相应编码模式对应的估算残差比特数输入至估算率失真代价确定规则中进行运算,得到相应的编码模式对应的估算率失真代价。

8.如权利要求7所述的方法,其特征在于,所述第一类编码模式组的数量为至少一个,所述第二类编码模式组的数量为一个,所述基于分组处理结果从所述多个编码模式中选择至少一个候选编码模式,包括:获取每个第一类编码模式组包括的每个编码模式对应的估算率失真代价;

将所述每个第一类编码模式组中估算率失真代价最小的编码模式确定为一个候选编码模式;

将所述第二类编码模式组中的各个编码模式均确定为候选编码模式。

9.如权利要求6所述的方法,其特征在于,所述基于分组处理结果从所述多个编码模式中选择至少一个候选编码模式,包括:基于分组处理结果为每个编码模式添加候选标识;

将所述多个编码模式中候选标识为第一标识的编码模式,确定为候选编码模式。

10.如权利要求9所述的方法,其特征在于,所述第一类编码模式组的数量为至少一个,所述第二类编码模式组的数量为一个,任一第一类编码模式组包括的多个编码模式是按照每个编码模式对应的估算率失真代价由小到大的顺序排列的,所述基于分组处理结果为每个编码模式添加候选标识,包括:若所述任一编码模式属于所述第二类编码模式组,则将所述任一编码模式的候选标识设置为第一标识;

若所述任一编码模式属于第一类编码模式组中的目标第一类编码模式组,则获取所述任一编码模式在所述目标第一类编码模式组中的排列位置;

如果所述排列位置为第一个位置,则将所述任一编码模式的候选标识设置为第一标识;

如果所述排列位置为除所述第一个位置外的其他位置,则将所述任一编码模式的候选标识设置为第二标识。

11.如权利要求1所述的方法,其特征在于,所述至少一个候选编码模式中包括目标候选编码模式,所述确定所述至少一个候选编码模式中每个候选编码模式对应的模式率失真代价,包括:获取所述当前编码块包括的语法元素比特数;

采用所述目标候选编码模式对所述当前编码块进行编码预测,得到所述目标候选编码模式对应的预测值;

将所述目标候选编码模式对应的预测值与所述当前编码块进行预设变换处理,得到所述目标候选编码模式对应的重建值;

基于所述重建值与所述当前编码块之间的残差确定所述目标候选编码模式对应的模式率失真代价。

12.如权利要求11所述的方法,其特征在于,所述基于所述重建值与所述当前编码块之间的残差确定所述目标候选编码模式对应的模式率失真代价,包括:基于所述重建值与所述当前编码块之间的残差确定所述目标候选编码模式对应的目标失真和所述目标候选编码模式对应的目标残差比特数;

将所述语法元素比特数、所述目标候选编码模式对应的目标失真和所述目标候选编码模式对应的目标残差比特数,输入至模式率失真代价确定规则中进行运算,得到所述目标候选编码模式对应的模式率失真代价。

13.如权利要求1所述的方法,其特征在于,所述选择模式率失真代价满足率失真代价条件的候选编码模式,对所述当前编码块进行编码处理,包括:从所述至少一个候选编码模式中选择模式率失真代价最小的候选编码模式;

确定被选择的候选编码模式对应的预测值与所述当前编码块之间的残差,得到残差系数;

根据所述残差系数对所述当前编码块进行编码处理。

14.一种编码处理装置,其特征在于,包括:

确定单元,用于确定对待编码图像中当前编码块进行编码的多个编码模式,以及确定所述多个编码模式中每个编码模式对应的估算参数;

处理单元,用于根据所述每个编码模式对应的估算参数对所述多个编码模式进行分组处理;

选择单元,用于基于分组处理结果从所述多个编码模式中选择至少一个候选编码模式;

所述确定单元,还用于确定所述至少一个候选编码模式中每个候选编码模式对应的模式率失真代价;

所述选择单元,还用于选择模式率失真代价满足率失真代价条件的候选编码模式对所述当前编码块进行编码处理。

15.一种编码处理设备,其特征在于,包括:

处理器,适于实现一条或多条指令;以及,

计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行如权利要求1-13任一项所述的方法。

说明书 :

编码处理方法、装置、设备及存储介质

技术领域

[0001] 本申请涉及视频编解码领域,尤其涉及一种编码处理方法、装置、设备及存储介质。

背景技术

[0002] 视频是连续的图像序列,由连续的帧构成,一帧即为一幅图像。由于人眼的视觉停留效应,当帧序列以一定的速率播放时,人眼看到的就是动作连续的视频。由于连续的帧之间相似度极高,为了便于存储和传输,一般需要对原始视频进行编码压缩,以去除空间、时间维度的冗余。
[0003] 通常情况下,对视频进行编码时是以一帧图像为单位进行的。具体地,一帧图像送入到编码器中,先将一帧图像分割成多个编码块,针对每个编码块进行编码处理,最终完成对一帧图像的编码。由此可见,编码块是视频编码中的最小编码单元。目前在对任一编码块进行编码时,一般流程可以概括为:确定编码块对应的多个编码模式;逐一计算每个编码模式对编码块进行编码的完整率失真代价;最终选择完整率失真代价最小的编码模式对编码块进行编码。
[0004] 这样一来,由于编码模式数量较多,依次对每个编码模式计算完整率失真代价,消耗较多编码处理设备资源。因此,在视频编码领域中,如何对编码块进行编码处理成为当今研究的热点问题。

发明内容

[0005] 本发明实施例提供了一种编码处理方法、装置、设备以及存储介质,可节省编码处理设备在编码时所需资源。
[0006] 一方面,本发明实施例提供了一种编码处理方法,所述编码处理方法包括:
[0007] 确定对待编码图像中当前编码块进行编码的多个编码模式,以及确定所述多个编码模式中每个编码模式对应的估算参数;
[0008] 根据所述每个编码模式对应的估算参数对所述多个编码模式进行分组处理;
[0009] 基于分组处理结果从所述多个编码模式中选择至少一个候选编码模式;
[0010] 确定所述至少一个候选编码模式中每个候选编码模式对应的模式率失真代价,并选择模式率失真代价满足率失真代价条件的候选编码模式,对所述当前编码块进行编码处理。
[0011] 一方面,本发明实施例提供了一种编码处理装置,其特征在于,包括:
[0012] 确定单元,用于确定对待编码图像中当前编码块进行编码的多个编码模式,以及确定所述多个编码模式中每个编码模式对应的估算参数;
[0013] 处理单元,用于根据所述每个编码模式对应的估算参数对所述多个编码模式进行分组处理;
[0014] 选择单元,用于基于分组处理结果从所述多个编码模式中选择至少一个候选编码模式;
[0015] 所述确定单元,还用于确定所述至少一个候选编码模式中每个候选编码模式对应的模式率失真代价;
[0016] 所述选择单元,还用于选择模式率失真代价满足率失真代价条件的候选编码模式对所述当前编码块进行编码处理。
[0017] 一方面,本发明实施例提供了一种编码处理设备,其特征在于,包括:
[0018] 处理器,适于实现一条或多条指令;以及,
[0019] 计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行:
[0020] 确定对待编码图像中当前编码块进行编码的多个编码模式,以及确定所述多个编码模式中每个编码模式对应的估算参数;
[0021] 根据所述每个编码模式对应的估算参数对所述多个编码模式进行分组处理;
[0022] 基于分组处理结果从所述多个编码模式中选择至少一个候选编码模式;
[0023] 确定所述至少一个候选编码模式中每个候选编码模式对应的模式率失真代价,并选择模式率失真代价满足率失真代价条件的候选编码模式,对所述当前编码块进行编码处理。
[0024] 一方面,本发明实施例提供了一种计算机存储介质,其特征在于所述计算机存储介质上存储计算机程序指令,所述计算机程序指令被处理器执行,用于执行:
[0025] 确定对待编码图像中当前编码块进行编码的多个编码模式,以及确定所述多个编码模式中每个编码模式对应的估算参数;
[0026] 根据所述每个编码模式对应的估算参数对所述多个编码模式进行分组处理;
[0027] 基于分组处理结果从所述多个编码模式中选择至少一个候选编码模式;
[0028] 确定所述至少一个候选编码模式中每个候选编码模式对应的模式率失真代价,并选择模式率失真代价满足率失真代价条件的候选编码模式,对所述当前编码块进行编码处理。
[0029] 一方面,本发明实施例提供了一种计算机程序产品或计算机程序,所述计算机程序产品或所述计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中;编码处理设备的处理器从所述计算机存储介质中读取所述计算机指令,所述处理器执行上述编码处理方法。
[0030] 在本发明实施例中,在对待编码图像中当前编码块进行编码处理时,在得到当前编码块对应的多个编码模式后,不是采用直接计算每个编码模式对应的模式率失真代价,然后基于每个编码模式对应的模式率失真代价这种方式从多个编码模式中选取用于对当前编码块进行编码的编码模式的,而是根据每个编码模式对应的估算参数对多个编码模式进行分组处理,进一步的,根据分组处理结果从多个编码模式中筛选出至少一个候选编码模式;进而,基于每个候选编码模式的模式率失真代价从至少一个候选编码模式中选择对当前编码块进行编码的编码模式。如此一来,由于需要计算模式率失真代价的编码模式数量减少,可节省对当前编码块进行编码处理所消耗的资源,从而节省对待编码图像的编码处理资源。

附图说明

[0031] 为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0032] 图1a是本发明实施例提供的一种基于AV1视频压缩标准的编码框架图;
[0033] 图1b是本发明实施例提供的一种编码块分割的示意图;
[0034] 图1c是本发明实施例提供的一种运动矢量预测推导的示意图;
[0035] 图1d是本发明实施例提供的一种对帧间预测模式择优的示意图;
[0036] 图2是本发明实施例提供的一种编码处理方法的流程示意图;
[0037] 图3是本发明实施例提供的另一种编码处理方法的流程示意图;
[0038] 图4是本发明实施例提供的又一种编码处理方法的流程图;
[0039] 图5是本发明实施例提供的一种编码处理装置的结构示意图;
[0040] 图6是本发明实施例提供的一种编码处理设备的结构示意图。

具体实施方式

[0041] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
[0042] 视频是连续的图像序列,由连续的帧构成,一帧即为一幅图像。由于人眼的视觉停留效应,当帧序列以一定的速率播放时,人眼看到的就是动作连续的视频。由于连续帧之间相似度极高,为便于存储和传输,一般需要对原始的视频进行编码压缩,以去除空间、时间维度的冗余。比如,向云端上传视频时,为了节省传输时间以及加快视频传输效率,需要对视频进行编码处理;当从云上下载了编码的视频后,需要对视频进行解码处理后才可对视频进行播放等操作。
[0043] 对原始视频进行编码压缩是基于视频压缩标准执行的。未来视频的发展趋势是高清晰度、高帧率、高压缩率,这就要求视频压缩标准不断升级。AV1是开放媒体联盟(Alliance for Open Media,AOM)开发的第一代视频编码标准,2018 年定稿,自推出以来获得了产业界巨大关注和支持。
[0044] 相比于传统的HEVC以及AVC技术,AV1优势更为明显,比如具有更好的压缩比率,相同质量下可再节省30%以上带宽;技术支持的内容更加广泛,不论传输流媒体还是图片、屏幕共享以及视频游戏流等均可以使用该技术。参见图1a,为本发明实施例提供的一种基于AV1视频压缩标准的编码框架图。
[0045] 采用图1a所示的编码架构图对当前帧图像进行编码的流程可以概括为:当前帧图像送入到编码器后,按照预设块大小将当前帧图像分割成一个个编码单元树(Coding Tree Uint, CTU);进一步的,对编码树进行深度划分得到多个编码单元(Coding Uint, CU),一个编码单元可以称为一个编码块。每个CU包括多种预测模式和变换单元(Transform Unit,TU)。对每个CU进行编码处理,然后基于对每个CU的编码处理得到当前帧图像对应的重建帧图像;将重建帧图像经过滤波后,加入参考帧队列,作为下一帧图像的参考图像,从而依次向后编码,实现对视频的编码压缩。
[0046] 在一个实施例中,在AV1视频压缩标准中,CU分割有10种类型,参见图1b为本发明实施例提供的一种编码块CU分割的示意图。10种CU分割类型对应22种块大小,可分别为4x4、4x8、8x4、8x8、8x16、16x8、16x16、16x32、32x16、32x32、32x64、64x32、64x64、64x128、
128x64、128x128、4x16、16x4、8x32、32x8、16x64、64x16。
[0047] 在一个实施例中,每个CU均包括两种预测类型,分别为帧内预测和帧间预测,每种预测类型包括多种预测模式。对CU的编码处理是基于帧内预测和帧间预测实现的。
[0048] 可选的,帧内预测包括的预测模式可以为:上方像素和左侧像素的平均值DC_PRED、水平和垂直残差结合SMOOTH_PRED、垂直残差SMOOTH_V_PRED、水平残差SMOOTH_H_PRED、预测值来自梯度最小方向PAETH_PRED及垂直方向V_PRED、水平方向H_PRED、45度角方向D45_PRED、135度角方向D135_PRED、113度角方向D113_PRED、157度角方向D157_PRED、203度角方向D203_PRED、和67度角方向D67_PRED 几种主方向。每个主方向又包含了6个角度偏移,分别为加减3度、加减6度,加减9度,另外还有调色板预测模式和帧内块拷贝预测模式。
[0049] 可选的,帧间预测可以包括4种单一预测模式和8种组合预测模式,其中,所述4种单一预测模式可以为:NEARESTMV、NEARMV、GLOBALMV和NEWMV;8种组合预测模式可以为:NEAREST_NEARESTMV、NEAR_NEARMV、NEAREST_NEWMV、NEW_NEARESTMV、NEAR_NEWMV、NEW_NEARMV、GLOBAL_GLOBALMV和NEW_NEWMV。其中,NEARESTMV和NEARMV模式是指预测块的运动矢量(mv)是根据相邻块的信息推导得到,不需要传输运动矢量差(mvd);而NEWMV意味着需要传输mvd,GLOBALMV是指预测块的mv信息是根据全局运动推导得到。
[0050] 帧间预测可以分为两个过程:运动估计(Motion Estimation,ME)和运动补偿(Motion Compensate,MC)。大多数视频序列中,相邻帧图像内容非常相似,其背景画面变化极小,因此不需要对每帧图像的全部信息进行编码,而只需要将当前帧图像中运动物体的运动信息传给解码器,利用前一帧图像内容以及当前帧图像的运动信息即可恢复当前帧图像。
[0051] 运动估计的目的是为当前编码块在参考帧图像中寻找最佳匹配编码块,计算最佳匹配编码块与当前编码块之间的运动矢量(Motion Vector,MV)。其中,参考帧图像是指已编码的重构帧图像。
[0052] 运动补偿的基本原理是:当编码器对图像序列中的第N帧图像进行处理时,利用ME技术得到第N帧图像的预测帧图像。在实际编码传输时,并不总是传输第N帧图像,而是传输第N帧图像和预测帧图像之间的残差。
[0053] 在上述帧间预测包括的多种预测模式中,NEARESTMV和NEARMV是指最佳匹配编码块的mv是根据当前编码块的相邻块信息推导得到,不需要传输运动矢量差(MotionVectorDifference,MVD),MVD等于运动矢量和预测运动矢量之间的差;而NEWMV意味着需要传输MVD,GLOBALMV是指最佳匹配编码块的mv是根据全局运动推导得到。
[0054] NEARESTMV、NEARMV以及NEWMV这几种预测模式在进行编码预测时都依赖于MVP的推导。对于给定的参考帧图像,AV1标准会按照规则计算出4个MVP。
[0055] MVP的推导流程可以概括为:按一定方式跳跃式扫描左边1/3/5列和上方1/3/5行的编码块的信息,先选出与当前编码块使用相同参考帧图像的编码块,并计算选出的编码块与当前编码块之间的运动矢量mv;对mv进行去重处理;如果不重复的mv数目不足8个,则选择使用的参考帧图像为与当前编码块使用的参考帧图像为同方向的编码块,并继续计算当前编码块与选择出的各个编码块之间的mv;如果还是不足8个,则用全局运动矢量来填充;选出8个mv后,按照重要性进行排序,选出最重要的4个mv。其中第0个mv就是NEARESTMV,第1 3个对应的是NEARMV。NEWMV使用0 2中的一个mv作为mvp。如图1c所示。~ ~
[0056] 在一个实施例中,本发明实施例提供的参考帧图像有7种,分别表示为:
[0057] LAST_FRAME,LAST2_FRAME,LAST3_FRAME,GOLDEN_FRAME,BWDREF_FRAME,ALTREF2_FRAME以及ALTREF_FRAME。
[0058] 对于帧间预测中4种单一预测模式中每个预测模式均有7个参考帧图像;对于帧间预测8种组合预测模式中每个预测模式均有16个参考帧图像,分别为:{LAST_FRAME,ALTREF_FRAME},{LAST2_FRAME,ALTREF_FRAME},{LAST3_FRAME,LTREF_FRAME},{GOLDEN_FRAME,ALTREF_FRAME},{LAST_FRAME,BWDREF_FRAME},{LAST2_FRAME,BWDREF_FRAME},LAST3_FRAME,BWDREF_FRAME},{GOLDEN_FRAME,BWDREF_FRAME},{LAST_FRAME,ALTREF2_FRAME},{LAST2_FRAME,ALTREF2_FRAME},{LAST3_FRAME,ALTREF2_FRAME},{GOLDEN_FRAME,ALTREF2_FRAME},{LAST_FRAME,LAST2_FRAME},{LAST_FRAME,LAST3_FRAM},{LAST_FRAME,GOLDEN_FRAME},{BWDREF_FRAME,ALTREF_FRAME }。
[0059] 因此,对于帧间预测共有4x7+8x16=156种组合。任意一种组合均对应最多3种mvp,对任意一种mvp做运动估计、inter_inter择优、插值方式择优以及运动模式择优4个过程,得到多个编码模式。
[0060] 参见图1d,为本发明实施例提供的一种对任意一种组合进行最优结果择选的示意图。在图1d中,初次循环时,假设N=0,N表示循环次数,设置循环次数阈值为ref_set,循环次数阈值等于mvp的数量;开始循环时,判断N是否小于ref_set,若不小于,则结束循环;若小于,则获取当前mvp,并给对N值执行加1操作;判断当前帧间预测的预测模式中是否包括NEWMV;如果包括,则进行运动估计;如果不包括,则判断是否具有双参考帧图像,如果不具有,则执行bestmv下插值方式择优以及运动模式择优;如果不是,则执行帧间-帧间融合、bestmv下插值方式择优以及运动模式择优。至此一次循环结束,重复执行判断N是否小于ref_set的步骤。
[0061] 现有技术中,为了从多个编码模式中选择一种较优的编码模式对当前编码块进行编码,通常采用的技术方式是采用每种编码模式对当前编码块进行编码预测,得到每种编码模式对应的完整率失真代价,进而选择完整率失真代价最小的编码模式对当前编码块进行编码。这种方式的缺点是编码模式的个数太多,存在大量冗余计算,降低编码速率。
[0062] 基于此,本发明实施例考虑到在多个编码模式中,存在预测像素相同,但语法不同的情况。这种情况预测值与当前编码块之间的残差对应的估算失真和估算残差比特数相同,由于在估算率失真代价计算时,还需要加上其他元素的比特数,因此这些编码模式对应的估算率失真代价不同。再者,如果预测像素相同,做完整率失真代价计算时得到的失真和残差比特数也相同。因此,本发明实施例提供了一种编码处理方案,具体地:确定对待编码图像中当前编码块进行编码的多个编码模式,以及确定所述多个编码模式中每个编码模式对应的估算参数;根据所述每个编码模式对应的估算参数对所述多个编码模式进行分组处理;基于分组处理结果从所述多个编码模式中选择至少一个候选编码模式;确定所述至少一个候选编码模式中每个候选编码模式对应的模式率失真代价,并选择模式率失真代价满足率失真代价条件的候选编码模式对所述当前编码块进行编码处理。在计算完整率失真代价(后继称为模式率失真代价)之前,先对多个编码模式进行筛选,减少需要计算完整率失真代价的编码模式的数量,可节省对当前编码块进行编码处理所消耗的资源,从而节省对待编码图像的编码处理资源。
[0063] 基于上述编码处理方案,本发明实施例提供了一种编码处理方法,参见图2,为本发明实施例提供的一种编码处理方法的流程示意图。图2所示的编码处理方法可由编码处理设备执行,具体可由编码处理设备的处理器执行。所述编码处理设备可以是终端,也可以是服务器。其中,所述终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能车载等,但并不局限于此;所述服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。图2所示的编码处理方法可包括如下步骤:
[0064] 步骤S201、确定对待编码图像中当前编码块进行编码的多个编码模式,以及确定多个编码模式中每个编码模式对应的估算参数。
[0065] 在一个实施例中,待编码图像中当前编码块是指待编码图像包括的未经过编码的任意一个编码块。由前述可知,对每个编码块进行编码时,需要进行帧内预测和帧间预测,本发明实施例所述的编码处理方法主要用于帧间预测过程中。在对当前编码块进行帧间预测时,涉及到多种预测模式和多种参考帧图像的选择,由此可得到156种帧间预测组合,通过上述图1c对每种组合进行择优处理,便可得到多个编码模式。
[0066] 在一个实施例中,所述每个编码模式对应的估算参数可以是根据每个编码模式对应的预测值和当前编码块之间的残差确定的。所述每个编码模式对应的估算参数可以包括相应编码模式对应的估算失真和所述相应编码模式对应的估算残差比特数。下面以多个编码模式中包括的目标编码模式为例,介绍如何确定每个编码模式对应的估算参数,具体地:采用目标编码模式对所述当前编码块进行编码预测,得到所述目标编码模式对应的预测值;确定所述目标编码模式对应的预测值与所述当前编码块之间的残差,并基于所述残差确定所述目标编码模式对应的估算失真率和所述目标编码模式对应的估算残差比特率;将所述当前编码块内的像素点总数量与所述目标编码模式对应的估算失真率进行相乘运算,得到所述目标编码模式对应的估算失真;将所述像素点总数量与所述目标编码模式对应的残差比特率进行相乘运算,得到所述目标编码模式对应的估算残差比特数。
[0067] 例如,假设目标编码模式对应的估算失真表示为dist',目标编码模式对应的估算残差比特数表示为bit_coff',估算失真率表示为dist_ratio,估算残差比特率表示为rate_ratio,当前编码块内像素点总数量表示为num_samples,则估算失真和估算残差比特数的计算可如下述公式(1)和公式(2)所示:
[0068] dist'=dist_ratio*num_samples(1)
[0069] bit_coff=rate_ratio*num_samples(2)
[0070] 从公式(1)和公式(2)可见,将估算失真率与当前编码块内像素点总数量进行相乘运算后,得到估算失真;将估算残差比特率与当前编码块内像素点总数量进行相乘运算,得到估算残差比特数。
[0071] 步骤S202、根据每个编码模式对应的估算参数对多个编码模式进行分组处理。
[0072] 在一个实施例中,所述根据所述每个编码模式对应的估算参数对多个编码模式进行分组处理,包括:分别比较各个编码模式对应的估算失真和各个编码模式对应的估算残差比特数;若存在与任一编码模式具有相同的估算失真和估算残差比特数的其他编码模式,则将任一编码模式与其他编码模式组成一个第一类编码模式组;若不存在与所述任一编码模式具有相同的估算失真和估算残差比特数的其他编码模式,则将任意编码模式添加至第二类编码模式。由此可知,第一类编码模式组的数量为至少一个,并且位于不同第一类编码模式组中的编码模式,具有不相同的估算失真和不相同的估算残差比特数,第二类编码模式组的数量为一个。也就是说,将多个编码模式中,具有相同的估算失真和估算残差比特数的各个编码模式组成一个第一类编码模式组,将多个编码模式中剩余的编码模式组成第二类编码模式组。
[0073] 例如,多个编码模式包括7个编码模式,分别为:编码模式1,编码模式2,编码模式3以及编码模式4、编码模式5、编码模式6以及编码模式7;假设编码模式1、编码模式2以及编码模式3这三种编码模式的估算失真相同,估算残差比特数相同,编码模式4和编码模式5这两种编码模式的估算失真,估算残差比特数相同,编码模式6的估算失真和估算残差比特数与其他编码模式均不相同,同理的,编码模式7的估算失真和估算残差比特数与其他编码模式也不相同。
[0074] 基于上述假设,对多个编码模式进行分组处理可以为:将编码模式1、编码模式2以及编码模式3这三个编码模式组成一个第一类编码模式组,将编码模式4和编码模式5这两个编码模式组成一个第一类编码模式组,将编码模式6和编码模式7添加到第二类编码模式组中。
[0075] 步骤S203、基于分组处理结果从多个编码模式中选择至少一个候选编码模式。
[0076] 在一个实施例中,在执行步骤S203之前,编码处理设备可以根据每个编码模式对应的估算参数计算每个编码模式对应的估算率失真代价,具体实现中:获取所述当前编码块中语法元素比特数;将所述语法元素比特数、每个编码模式对应的估算失真和相应编码模式对应的估算残差比特数输入至估算率失真代价确定规则中进行运算,得到相应的编码模式对应的估算率失真代价。假设估算率失真代价确定规则如以下公式(3)所示:
[0077] rdcost'=dist'+(bit_sum+bit_coff')×λ(3)
[0078] 在公式(3)中,bit_sum表示当前编码块的语法元素比特数,dist'表示任一编码模式对应的估算失真,bit_coff表示所述任一编码模式对应的估算残差比特数,λ表示拉格朗日常数。按照上述公式(3)可以计算出每个编码模式对应的估算率失真代价。
[0079] 确定出每个编码模式对应的估算率失真代价后,结合每个编码模式对应的估算率失真代价以及对多个编码模式进行分组处理的分组处理结果从多个编码模式中选择至少一个候选编码模式。具体实现中,基于分组处理结果从多个编码模式中选择至少一个候选编码模式,可包括:获取每个第一类编码模式组包括的每个编码模式对应的估算率失真代价;将所述每个第一类编码模式组中估算率失真代价最小的编码模式确定为一个候选编码模式;将所述第二类编码模式组中的各个编码模式均确定为候选编码模式。
[0080] 举例来说,基于上述举例,假设由编码模式1、编码模式2以及编码模式3组成的第一类编码模式组中,编码模式1的估算率失真代价最小,则将编码模式1作为一个候选编码模式;由编码模式4和编码模式5组成的第一类编码模式组中,编码模式4的估算率失真代价最小,则将编码模式4作为一个候选编码模式。将第二类编码模式组中编码模式6和编码模式7均作为候选编码模式。因此,最终从多个编码模式中确定的至少一个候选编码模式包括:编码模式1、编码模式4、编码模式6以及编码模式7。
[0081] 步骤S204、确定至少一个候选编码模式中每个候选编码模式对应的模式率失真代价,并选择模式率失真代价满足率失真代价条件的候选编码模式对当前编码块进行编码处理。
[0082] 在一个实施例中,对每个候选编码模式对应的模式率失真代价的计算方法是相同的,下面以至少一个候选编码模式中的目标候选编码模式为例,介绍如何计算每个候选编码模式对应的模式率失真代价。具体地:获取所述当前编码块包括的语法元素比特数;采用所述目标候选编码模式对所述当前编码块进行编码预测,得到所述目标候选编码模式对应的预测值;将所述目标候选编码模式对应的预测值与所述当前编码块进行预设变换处理,得到所述目标候选编码模式对应的重建值;基于所述重建值与所述当前编码块之间的残差确定所述目标候选编码模式对应的模式率失真代价。
[0083] 具体实现中,所述将所述目标候选编码模式对应的预测值与所述当前编码块进行预设变换处理,得到目标候选编码模式对应的重建值,可包括:将预测值与所述当前编码块的输入像素值作差得到残差;然后经过变换、量化、逆量化以及逆变换处理,得到还原后的残差数据,残差数据与预测值相加,即得到目标编码模式对应的重建值。
[0084] 可选的,所述基于所述重建值与所述当前编码块之间的残差确定所述目标候选编码块对应的模式率失真代价,包括:基于所述重建值与所述当前编码块之间的残差确定所述目标候选编码模式对应的目标失真和目标残差比特数;将所述语法元素比特数、所述目标候选编码模式对应的目标失真和所述目标候选编码模式对应的目标残差比特数输入至模式率失真代价确定规则中进行运算,得到所述目标候选编码模式对应的模式率失真代价。
[0085] 例如,模式率失真代价确定规则可表示为以下公式(4):
[0086] rdcost=dist+(bit_sum+bit_coff)×λ(4)
[0087] 其中,rdcost表示目标候选编码模式的模式率失真代价,dist表示目标候选编码模式对应的目标失真,bit_coff表示目标候选编码模式对应的目标残差比特数,bit_sum表示当前编码块对应的语法元素比特数,λ表示拉格朗日常数。
[0088] 按照上述公式(4)可以得到每一个候选编码模式的模式率失真代价。进一步地,从多个候选编码模式中选择满足模式率失真代价满足率失真代价条件的候选编码模式对所述当前编码块进行编码处理。其中,满足率失真代价条件是指模式率失真代价小于某个率失真代价阈值,或者是指多个候选编码模式中模式率失真代价最小的候选编码模式。
[0089] 在一个实施例中,所述选择模式率失真代价满足率失真代价条件的候选编码模式对所述当前编码块进行编码处理,可包括:从多个候选编码模式中选择模式率失真代价最小的候选编码模式,确定被选择的候选编码模式对应的预测值与所述当前编码块之间的残差得到残差系数;根据所述残差系数对所述当前编码块进行编码处理。具体实现中,所述根据所述残差系统对所述当前编码块进行编码处理可以将残差系数送入熵编码模块以输出码流。
[0090] 在本发明实施例中,在对待编码图像中当前编码块进行编码处理时,在得到当前编码块对应的多个编码模式后,不是采用直接计算每个编码模式对应的模式率失真代价,然后基于每个编码模式对应的模式率失真代价这种方式从多个编码模式中选取用于对当前编码块进行编码的编码模式的,而是根据每个编码模式对应的估算参数对多个编码模式进行分组处理,进一步的,根据分组处理结果从多个编码模式中筛选出至少一个候选编码模式,进一步的,基于每个候选编码模式的模式率失真代价从至少一个候选编码模式中选择对当前编码块进行编码的编码模式。如此一来,由于需要计算模式率失真代价的编码模式数量减少,可节省对当前编码块进行编码处理所消耗的资源,从而节省对待编码图像的编码处理资源。
[0091] 基于上述编码处理方法,本发明实施例提供了另一种编码处理方法,参见图3,为本发明实施例提供的另一种编码处理方法的流程示意图,图3所示的编码处理方法可由编码处理设备执行,具体可由编码处理设备的处理器执行。所述编码处理设备可以是终端,也可以是服务器。其中,所述终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能车载等,但并不局限于此;所述服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。图3所示的编码处理方法可包括如下步骤:
[0092] 步骤S301、确定对待编码图像中当前编码块进行编码的多个编码模式,以及确定多个编码模式中每个编码模式对应的估算失真和每个编码模式对应的估算残差比特数。
[0093] 由前述可知,每个编码模式对应的估算失真是根据当前编码块内像素总点数和相应编码模式对应的估算失真率确定的,每个编码模式对应的估算残差比特数是是根据当前编码块内像素总点数和相应编码模式对应的估算残差比特数率确定的。可见,为了得到每个编码模式对应的估算失真和估算残差比特数需要确定每个编码模式对应的估算失真率和估算残差比特率。
[0094] 下面以多个编码模式中的目标编码模式为例,介绍如何确定每个编码模式对应的估算失真率和估算残差比特率。具体地,包括:获取当前编码块的尺寸信息;将所述当前编码块的尺寸信息,以及所述目标编码模式对应的预测值和所述当前编码块之间的残差输入至均方差计算规则中进行运算,得到所述目标编码模式对应的均方差值;将所述目标编码模式对应的均方差值输入至估算因子确定规则中进行计算,得到所述目标编码模式对应的估算因子;基于估算失真率确定规则和所述目标编码模式对应的估算因子得到所述目标编码模式对应的估算失真率;基于估算残差比特率确定规则和所述目标编码模式对应的估算因子得到所述目标编码模式对应的估算残差比特率。
[0095] 其中,所述当前编码块的尺寸信息可以是指当前编码块的宽度信息和高度信息,宽度信息可以是在宽度方向上包括多少个像素,高度信息可以指在高度方向上包括多少个像素。假设m表示当前编码块的宽度信息,n表示当前编码块的高度信息。所述目标编码模式对应的预测值和所述当前编码块之间的残差可以指:当前编码块上各个位置处像素点的像素值与目标编码模式下为相应位置处预测的预测像素值之间的残差。
[0096] 可选的,假设当前编码块中任意像素点的位置表示为[i][j],当前编码块上任意像素点的像素值表示为src[i][j],目标编码模式下相应位置处预测的预测像素值可以表示dst[i][j],则将当前编码块的尺寸信息、目标编码模式对应的预测值和当前编码块之间的残差输入至均方差计算规则中进行运算,得到目标编码模式对应的均方差值,可以通过以下公式(5)表示,在公式(5)中,sse_norm表示目标编码模式对应的均方差值:
[0097] sse_norm=(1/(m×n))∑i=1∑j=1(dst[i][j]-src[i][j])2(5)
[0098] 进一步的,由上述步骤可知,得到目标编码模式对应的均方差值后,可以基于均方差值和估算因子确定规则得到目标编码模式对应的估算因子。作为一种可选的实施方式,估算因子确定规则可以表示为如下公式(6)所示,
[0099] xqr=log2(sse_norm/(qstep*qstep))(6)
[0100] 在公式(6)中,xqr表示估算因子,qstep表示当前编码块的AC分量的量化步长。应当理解的,在采用任意一个编码模式得到预测值后,需要将预测值进行变换以及量化等步骤得到重建值,进一步基于重建值与当前编码块之间的残差对当前编码块进行编码。在变换的时候,会把能量集合中当前编码块的左上角,比如当前编码块的尺寸为32x32,变换后第一个位置点作为(0,0),表示DC分量,其余位置点称为AC分量,DC分量和AC分量量化步长不一样。
[0101] 在视频压缩编码时,为了控制带宽,通过需要进行量化来减少编码系数,量化可以理解为将一个连续线改成阶段线,量化的强度主要通过量化系数qp来决定,量化步长qstep跟量化系数qp有关,qstep随着qp增加而增加,qp每增加6,qstep增加一倍。
[0102] 在一个实施例中,在得到目标编码模式对应的估算因子之后,基于估算因子确定目标编码模式对应的估算失真率和估算残差比特率之前,可以对估算因子进行修正处理。对估算因子进行修改处理的目的是为了限幅xqr的范围,使得xqr介于-14.999999
~
14.999999之间。
[0103] 在一个实施例中,对估算因子修正后可以通过如下公式(7)表示,在公式(7)中x'表示修正后的估算因子:
[0104] x'=2*xqr+31(7)
[0105] 可选的,对估算因子修改处理后,可基于修改处理后的估算因子和估算失真率确定规则,得到目标编码模式对应的估算失真率。具体实现中,包括:对所述估算因子进行修正处理,并获取修正处理后估算因子中的小数部分数值;根据估算率失真参数对照表获取估算失真率参数;将所述小数部分数值和所述估算失真率参数输入至所述估算失真率确定规则中进行运算,得到所述目标候选编码模式对应的估算失真率。
[0106] 其中,获取修正处理后估算因子中的小数部分数值的实施方式可以是:获取小于或等于修正处理后估算因子的最大整数;将修正处理后的估算因子与最大整数进行相减运算,得到的运算结果即为修正处理后估算因子中的小数部分数值。例如,获取小于或等于修正处理后估算因子的最大整数,可以通过下述公式(8)实现:
[0107] xi=floor(x')(8)
[0108] 在公式(8)中,floor(x')表示取不大于x'的最大整数,也即获取小于或等于修正处理后估算因子的最大整数。进一步的,基于公式(8)得到修正处理后估算因子的小数部分数值可通过下述公式(9)表示:
[0109] x=x'-xi(9)
[0110] 其中,x表示修正处理后估算因子的小数部分数值。
[0111] 通过上述公式(8)和公式(9)得到修正处理后估算因子的小数部分数值后,进一步的根据失真率对照表获取估算失真率参数,然后将小数部分数值和所述估算失真率参数输入值估算失真率确定规则中进行运算,得到目标编码模式对应的估算率失真代价。
[0112] 在一个实施例中,估算失真率确定规则可以表示为如下公式(10)所示:
[0113] f(x)=a0+a1*x+a2*x2+a3*x3(10)
[0114] 在公式(10)中f(x)表示估算失真率,a0、a1、a2以及a3表示估算失真率参数,x表示修正处理后估算因子的小数部分数值。其中,a0、a1、a2以及a3是根据失真率参数对照表中包括的失真率参数确定的。
[0115] 可选的,失真率参数对照表可以是一个二维数组,例如失真率参数对照表为一个2*65的二维数组,也即失真率参数对照表为2个包括65个元素的数组,可以表示为:
[0116] p_dist_curv[2][65]={{16.000000,15.962891,15.925174,15.886888,15.848074,15.808770,15.769015,15.728850,15.688313,15.647445,15.606284,
15.564870,15.525918,15.483820,15.373330,15.126844,14.637442,14.184387,
13.560070,12.880717,12.165995,11.378144,10.438769,9.130790,7.487633,5.688649,
4.267515,3.196300,2.434201,1.834064,1.369920,1.035921,0.775279,0.574895,
0.427232,0.233236,0.171440,0.128188,0.092762,0.067569,0.049324,0.036330,
0.027008,0.019853,0.015539,0.011093,0.008733,0.007624,0.008105,0.005427,
0.004065,0.003427,0.002848,0.002328,0.001865,0.001457,0.001103,0.000801,
0.000550,0.000348,0.000193,0.000085,0.000021,0.000000},
[0117] {16.000000,15.996116,15.984769,15.966413,15.941505,15.910501,15.873856,15.832026,15.785466,15.734633,15.679981,15.621967,15.560961,
15.460157,15.288367,15.052462,14.466922,13.921212,13.073692,12.222005,
11.237799,9.985848,8.898823,7.423519,5.995325,4.773152,3.744032,2.938217,
2.294526,1.762412,1.327145,1.020728,0.765535,0.570548,0.425833,0.313825,
0.232959,0.171324,0.128174,0.092750,0.067558,0.049319,0.036330,0.027008,
0.019853,0.015539,0.011093,0.008733,0.007624,0.008105,0.005427,0.004065,
0.003427,0.002848,0.002328,0.001865,0.001457,0.001103,0.000801,0.000550,
0.000348,0.000193,0.000085,0.000021,0.000000}}。
[0118] 在一个实施例中,根据失真率参数对照表确定上述各个估算失真率参数可以通过下述公式(11)-公式(14)表示:
[0119] a0=p[1](11)
[0120] a1=(p[2]-p[0])/2(12)
[0121] a2=2×p[0]-5×p[1]+4×p[2]-p[3](13)
[0122] a3=3×(p[1]-p[2])+p[3]-p[0](14)
[0123] 具体地,p[0]=p_dist_curv[dist_index][xi-1],p[1]为在上述失真参数对照表中p[0]偏移一个位置处的值、p[2]表示p[0]偏移两个位置处的值,以及p[3]表示p[0]偏移三个位置处的值。接着,将p[0]、p[1]、p[2]以及p[3]分别代入到公式(11)-公式(14)便可以得到目标编码模式的估算失真率参数。
[0124] 其中,xi可以根据公式(8)得到,dist_index是依据目标编码模式对应的均方差值确定的,例如可以通过下述公式(15)表示:
[0125] dist_index=0,sse_norm≤16;dist_index=1,其他(15)
[0126] 在公式(15)中,sse__norm表示目标编码模式对应的均方差值。
[0127] 在一个实施例中,所述基于所述目标编码模式对应的估算因子和残差比特率确定规则,得到所述目标候选编码模式对应的估算残差比特率,包括:根据残差比特率参数对照表获取估算残差比特率参数;将所述小数部分数值和所述残差比特率参数输入至所述估算残差比特率确定规则中进行运算,得到所述目标编码模式对应的估算残差比特率。
[0128] 可选的,估算残差比特率确定规则可以表示为如下述公式(16)所示:
[0129] w(x)=b0+b1*x+b2*x2+b3*x3(16)
[0130] 其中,w(x)表示估算残差比特率,b0、b1、b2以及b3为估算残差比特率参数,x表示修正处理后估算因子的小数部分数值。其中,b0、b1、b2以及b3是根据残差比特率参数对照表中包括的残差比特率参数确定的。
[0131] 可选的,残差比特率参数对照表可以是一个二维数组,例如残差比特参数对照表可以为一个4*65的二维数组,也即残差比特参数对照表为4个包括65个元素的数组,具体可以表示为:
[0132] q_rate_curv[4][65]={{0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,118.257702,120.210658,
121.434853,122.100487,122.377758,122.436865,72.290102,96.974289,101.652727,
126.830141,140.417377,157.644879,184.315291,215.823873,262.300169,335.919859,
420.624173,519.185032,619.854243,726.053595,827.663369,933.127475,
1037.988755,1138.839609,1233.342933,1333.508064,1428.760126,1533.396364,
1616.952052,1744.539319,1803.413586,1951.466618,1994.227838,2086.031680,
2148.635443,2239.068450,2222.590637,2338.859809,2402.929011,2418.727875,
2435.342670,2471.159469,2523.187446,2591.183827,2674.905840,2774.110714,
2888.555675,3017.997952,3162.194773,3320.903365,3493.880956,3680.884773,
3881.672045,4096.000000},
[0133] {0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,13.087244,15.919735,25.930313,24.412411,
28.567417,29.924194,30.857010,32.742979,36.382570,39.210386,42.265690,
47.378572,57.014850,82.740067,137.346562,219.968084,316.781856,415.643773,
516.706538,614.914364,714.303763,815.512135,911.210485,1008.501528,
1109.787854,1213.772279,1322.922561,1414.752579,1510.505641,1615.741888,
1697.989032,1780.123933,1847.453790,1913.742309,1960.828122,2047.500168,
2085.454095,2129.230668,2158.171824,2182.231724,2217.684864,2269.589211,
2337.264824,2420.618694,2519.557814,2633.989178,2763.819779,2908.956609,
3069.306660,3244.776927,3435.274401,3640.706076,3860.978945,4096.000000},[0134] {0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,
0.000000,0.000000,0.000000,0.000000,4.656893,5.123633,5.594132,6.162376,
6.918433,7.768444,8.739415,10.105862,11.477328,13.236604,15.421030,19.093623,
25.801871,46.724612,98.841054,181.113466,272.586364,359.499769,445.546343,
525.944439,605.188743,681.793483,756.668359,838.486885,926.950356,
1015.482542,1113.353926,1204.897193,1288.871992,1373.464145,1455.746628,
1527.796460,1588.475066,1658.144771,1710.302500,1807.563351,1863.197608,
1927.281616,1964.450872,2022.719898,2100.041145,2185.205712,2280.993936,
2387.616216,2505.282950,2634.204540,2774.591385,2926.653884,3090.602436,
3266.647443,3454.999303,3655.868416,3869.465182,4096.000000},
[0135] {0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.337370,0.391916,0.468839,0.566334,
0.762564,1.069225,1.384361,1.787581,2.293948,3.251909,4.412991,8.050068,
11.606073,27.668092,65.227758,128.463938,202.097653,262.715851,312.464873,
355.601398,400.609054,447.201352,495.761568,552.871938,619.067625,691.984883,
773.753288,860.628503,946.262808,1019.805896,1106.061360,1178.422145,
1244.852258,1302.173987,1399.650266,1548.092912,1545.928652,1670.817500,
1694.523823,1779.195362,1882.155494,1990.662097,2108.325181,2235.456119,
2372.366287,2519.367059,2676.769812,2844.885918,3024.026754,3214.503695,
3416.628115,3630.711389,3857.064892,4096.000000}}。
[0136] 可选的,根据残差比特率参数对照表确定上述各个估算残差比特率参数可以通过下述公式(17)-公式(20)表示:
[0137] a0=q[1](17)
[0138] a1=(q[2]-q[0])/2(18)
[0139] a2=2×q[0]-5×q[1]+4×q[2]-q[3](19)
[0140] a3=3×(q[1]-q[2])+q[3]-q[0](20)
[0141] 其中,q[0]=q_rate_curv[rate_index][xi-1],q[1]表示在上述残差比特率参数对照表中q[0]偏移一个位置处的值、q[2]表示q[0]偏移两个位置处的值以及q[3]表示q[0]偏移三个位置处的值;得到q[0]、q[1]、q[2]以及q[3]后,分别代入到公式(17)-公式(20)便可以得到目标编码模式的估算残差比特率参数。
[0142] 其中,rate_index是依据当前编码块内像素点总数量确定的,具体可参见下述公式(21)所示:
[0143] rate_index=0,num_samples≤32;
[0144] rate_index=1,64≤num_samples≤32;(21)
[0145] rate_index=12,256≤num_samples≤512;
[0146] rate_index=3,1024≤num_samples≤16384
[0147] 在公式(21)中,num_samples表示当前编码块内像素点总数量。
[0148] 步骤S302、获取当前编码块中语法元素比特数,将语法元素比特数、每个编码模式对应的估算失真和相应编码模式对应的估算残差比特数输入值估算率失真代价确定规则中进行运算,得到相应的编码模式对应的估算率失真代价。
[0149] 步骤S303、按照每个编码模式对应的估算率失真代价由小到大的顺序将多个编码模式进行排序。
[0150] 在一个实施例中,通过步骤S301步骤得到每个编码模式对应的估算失真和估算残差比特数之后,将估算失真、估算残差比特数以及语法元素比特数代入到估算率失真代价确定规则中,便可得到每个编码模式对应的估算率失真代价。估算率失真代价确定规则可如图2实施例中公式(3)所示,此处不再赘述。
[0151] 在得到每个编码模式对应的估算率失真代价之后,可以将各个编码模式按照估算率失真代价由小到大排列。
[0152] 步骤S304、根据每个编码模式对应的估算失真和估算残差比特数对排列后的多个编码模式进行分组处理。
[0153] 可选的,步骤S304的实现思路可以是:对排序后的多个编码模式,按照从前向后的顺序依次判断编码模式的估算失真和估算残差比特数,将具有相同估算失真和估算残差比特数的编码模式确定为一个第一类编码模式组;其他编码模式添加至第二类编码模式组。
[0154] 步骤S305、基于分组处理结果为每个编码模式添加候选标识,并将候选标识为第一标识的编码模式确定候选编码模式。
[0155] 在一个实施例中,所述基于分组处理结果为每个编码模式添加候选标识,包括:若任一编码模式属于第二类编码模式组,则将所述任一编码模式的候选标识设置为第一标识;若所述任一编码模式属于至少一个第一类编码模式组中的目标第一类编码模式组,则获取所述任一编码模式在所述目标第一类编码模式组中的排列位置;如果所述排列位置为第一个位置,则将所述任一编码模式的候选标识设置为第一标识;如果所述排列位置为除第一个位置外的其他位置,则将所述任一编码模式的候选标识设置为第二标识。
[0156] 可选的,编码处理设备也可以通过一个数组来记录各个编码模式的候选标识,比如通过数组mask[512]来记录编码模式的候选标识,数组大小可能会更大,根据编码模式的数量不同而不同,数组大小必须大于多个编码模式的总数量。
[0157] 通俗来讲,为每个编码模式添加候选标识可以是:从前向后判断每个编码模式,如果一个编码模式属于第一类编码模式组,并且是其所在第一类编码模式组中第一次出现的编码模式,则将其候选标识设置为第一标识,比如第k个编码模式的候选标识为第一标识,可以表示为mask[k]=1;如果该编码模式不是其所在第一类编码模式组中第一次出现的编码模式,则将其候选标识设置为0。如果一个编码模式属于第二类编码模式组,则将该编码模式的候选标识设置为第一标识。
[0158] 为所有编码模式设置了候选标识后,可以将候选表示为第一标识的编码模式确定为候选编码模式。
[0159] 步骤S306、确定所述至少一个候选编码模式中每个候选编码模式对应的模式率失真代价,并选择模式率失真代价最小的候选编码模式对所述当前编码块进行编码处理。
[0160] 在一个实施例中,步骤S304和步骤S305可以是实时执行的,也就是说在为每个编码模式添加了候选标识后,依次遍历所有编码模式,依次判断是否当前遍历的编码模式需要计算模式率失真代价,假设当前遍历的编码模式为第i个编码模式,判断第i个编码模式的候选标识mask[i]是否等于1;如果等于1,则对第i个编码模式进行模式率失真代价计算;反之,则不做模式率失真代价计算;对i执行加1操作,依据上述步骤继续判断其他编码模式是否需要计算模式率失真代价,直到所有编码模式均被遍历。基于此,对当前编码块进行编码处理的流程可如图4所示。
[0161] 本发明实施例中,在对待编码图像中当前编码块进行编码处理时,在得到当前编码块对应的多个编码模式后,计算每个编码模式对应的估算失真和每个编码模式对应的估算残差比特数;进而基于每个编码模式对应的估算失真和每个编码模式对应的估算残差比特数,确定每个编码模式对应的估算率失真代价;按照每个编码模式对应的估算率失真代价将多个编码模式按照估算率失真代价由低到高的顺序进行排列。
[0162] 然后,根据每个编码模式对应的估算失真和每个编码模式对应的估算残差比特数对排列后的多个编码模式进行分组处理;然后基于分组处理结果为每个编码模式添加候选标识,并将候选标识为第一标识的编码模式确定候选编码模式。实现了有序地对多个编码模式进行初步筛选,以减少后续计算模式率失真代价的编码模式的数量,从而可节省编码处理设备的资源消耗,在一定程度上可提高编码效率。
[0163] 在得到候选编码模式后,基于每个候选编码模式对应的模式率失真代价从中选择模式率失真代价最小的候选编码模式对当前编码块进行编码,可提高编码准确率。
[0164] 基于上述的编码处理方法实施例,本发明实施例提供了一种编码处理装置。参见图5,为本发明实施例提供的一种编码处理装置的结构示意图。图5所示的编码处理装置可运行如下单元:
[0165] 确定单元501,用于确定对待编码图像中当前编码块进行编码的多个编码模式,以及确定所述多个编码模式中每个编码模式对应的估算参数;
[0166] 处理单元502,用于根据所述每个编码模式对应的估算参数对所述多个编码模式进行分组处理;
[0167] 选择单元503,用于基于分组处理结果从所述多个编码模式中选择至少一个候选编码模式;
[0168] 所述确定单元501,还用于确定所述至少一个候选编码模式中每个候选编码模式对应的模式率失真代价;
[0169] 所述选择单元503,还用于选择模式率失真代价满足率失真代价条件的候选编码模式对所述当前编码块进行编码处理。
[0170] 在一个实施例中,任意一个编码模式对应的估算参数包括所述任意一个编码模式对应的估算失真和所述任意一个编码模式对应的估算残差比特数,所述确定单元501在确定所述多个编码模式中每个编码模式对应的估算参数时,执行如下步骤:
[0171] 采用所述目标编码模式对所述当前编码块进行编码预测,得到所述目标编码模式对应的预测值;
[0172] 确定所述目标编码模式对应的预测值与所述当前编码块之间的残差,并基于所述残差确定所述目标编码模式对应的估算失真率和所述目标编码模式对应的估算残差比特率;
[0173] 将所述当前编码块内的像素点总数量与所述目标编码模式对应的估算失真率进行相乘运算,得到所述目标编码模式对应的估算失真;
[0174] 将所述像素点总数量与所述目标编码模式对应的估算残差比特率进行相乘运算,得到所述目标编码模式对应的估算残差比特数。
[0175] 在一个实施例中,所述确定单元501在基于所述残差确定所述目标编码模式对应的估算失真率和估算残差比特率时,执行如下步骤:
[0176] 获取所述当前编码块的尺寸信息;
[0177] 将所述当前编码块的尺寸信息以及所述残差输入至均方差计算规则中进行运算,得到所述目标编码模式对应的均方差值;
[0178] 将所述目标编码模式对应的均方差值输入至估算因子确定规则中进行计算,得到所述目标编码模式对应的估算因子;
[0179] 基于估算失真率确定规则和所述目标编码模式对应的估算因子,得到所述目标编码模式对应的估算失真率;
[0180] 基于估算残差比特率确定规则和所述目标编码模式对应的估算因子,得到所述目标编码模式对应的估算残差比特率。
[0181] 在一个实施例中,所述确定单元501在基于估算失真率确定规则和所述目标编码模式对应的估算因子,得到所述目标编码模式对应的估算失真率时,执行如下步骤:对所述估算因子进行修正处理,并获取修正处理后估算因子中的小数部分数值;
[0182] 根据失真率参数对照表获取估算失真率参数;
[0183] 将所述小数部分数值和所述估算失真率参数输入至所述估算失真率确定规则中进行运算,得到所述目标编码模式对应的估算失真率。
[0184] 在一个实施例中,所述确定单元501在基于估算残差比特率确定规则和所述目标编码模式对应的估算因子,得到所述目标编码模式对应的估算残差比特率时,执行如下步骤:根据残差比特率参数对照表获取估算残差比特率参数;
[0185] 将所述小数部分数值和所述估算残差比特率参数输入至所述估算残差比特率确定规则中进行运算,得到所述目标编码模式对应的估算残差比特率。
[0186] 在一个实施例中,任意一个编码模式对应的估算参数包括所述任意一个编码模式对应的估算失真和所述任意一个编码模式对应的估算残差比特数,所述编码模式包括第一类编码模式和第二类编码模式,所述处理单元502在根据所述每个编码模式对应的估算参数对所述多个编码模式进行分组处理时,执行如下步骤:
[0187] 分别比较各个编码模式对应的估算失真和各个编码模式对应的估算残差比特数;
[0188] 若存在与所述多个编码模式中任一编码模式具有相同的估算失真和估算残差比特数的其他编码模式,则将所述任一编码模式与所述其他编码模式组成一个第一类编码模式组;
[0189] 若不存在与所述任一编码模式具有相同的估算失真和估算残差比特数的其他编码模式,则将所述任一编码模式添加至第二类编码模式组。
[0190] 在一个实施例中,所述编码处理装置还包括获取单元504,所述获取单元504用于获取所述当前编码块中语法元素比特数;所述处理单元502还用于将所述语法元素比特数、每个编码模式对应的估算失真和相应编码模式对应的估算残差比特数输入至估算率失真代价确定规则中进行运算,得到相应的编码模式对应的估算率失真代价。
[0191] 在一个实施例中,所述第一类编码模式组的数量为至少一个,所述第二类编码模式组的数量为一个,所述选择单元503在基于分组处理结果从所述多个编码模式中选择至少一个候选编码模式时,执行如下步骤:获取每个第一类编码模式组包括的每个编码模式对应的估算率失真代价;
[0192] 将所述每个第一类编码模式组中估算率失真代价最小的编码模式确定为一个候选编码模式;
[0193] 将所述第二类编码模式组中的各个编码模式均确定为候选编码模式。
[0194] 在一个实施例中,所述选择单元503在基于分组处理结果从所述多个编码模式中选择至少一个候选编码模式时,执行如下步骤:基于分组处理结果为每个编码模式添加候选标识;
[0195] 将所述多个编码模式中候选标识为第一标识的编码模式,确定为候选编码模式。
[0196] 在一个实施例中,所述第一类编码模式组的数量为至少一个,所述第二类编码模式组的数量为一个,任一第一类编码模式组包括的多个编码模式是按照每个编码模式对应的估算率失真代价由小到大的顺序排列的,所述选择单元503在基于分组处理结果为每个编码模式添加候选标识时,执行如下步骤:
[0197] 若任一编码模式属于所述第二类编码模式组,则将所述任一编码模式的候选标识设置为第一标识;
[0198] 若所述任一编码模式属于第一类编码模式组中的目标第一类编码模式组,则获取所述任一编码模式在所述目标第一类编码模式组中的排列位置;
[0199] 如果所述排列位置为第一个位置,则将所述任一编码模式的候选标识设置为第一标识;
[0200] 如果所述排列位置为除所述第一个位置外的其他位置,则将所述任一编码模式的候选标识设置为第二标识。
[0201] 在一个实施例中,所述至少一个候选编码模式中包括目标候选编码模式,所述确定单元501在确定所述至少一个候选编码模式中每个候选编码模式对应的模式率失真代价时,执行如下步骤:
[0202] 获取所述当前编码块包括的语法元素比特数;
[0203] 采用所述目标候选编码模式对所述当前编码块进行编码预测,得到所述目标候选编码模式对应的预测值;
[0204] 将所述目标候选编码模式对应的预测值与所述当前编码块进行预设变换处理,得到所述目标候选编码模式对应的重建值;
[0205] 基于所述重建值与所述当前编码块之间的残差确定所述目标候选编码模式对应的模式率失真代价。
[0206] 在一个实施例中,所述确定单元501在基于所述重建值与所述当前编码块之间的残差确定所述目标候选编码模式对应的模式率失真代价时,执行如下步骤:
[0207] 基于所述重建值与所述当前编码块之间的残差确定所述目标候选编码模式对应的目标失真和所述目标候选编码模式对应的目标残差比特数;
[0208] 将所述语法元素比特数、所述目标候选编码模式对应的目标失真和所述目标编码模式对应的目标残差比特数,输入至模式率失真代价确定规则中进行运算,得到所述目标候选编码模式对应的模式率失真代价。
[0209] 在一个实施例中,所述选择单元503在选择模式率失真代价满足率失真代价条件的候选编码模式对所述当前编码块进行编码处理时,执行如下步骤:从所述至少一个候选编码模式中选择模式率失真代价最小的候选编码模式;
[0210] 确定被选择的候选编码模式对应的预测值与所述当前编码块之间的残差,得到残差系数;
[0211] 根据所述残差系数对所述当前编码块进行编码处理。
[0212] 根据本发明的一个实施例,图2和图3所示的编码处理方法所涉及各个步骤可以是由图5所示的编码处理装置中的各个单元来执行的。例如,图2所述的步骤S201可由图5所示的编码处理装置中的确定单元501来执行,步骤S202可由图5所示的编码处理装置中的处理单元502来执行,步骤S203可由图5所示的编码处理装置中的选择单元503来执行,步骤S204可由图5所示的编码处理装置中的确定单元501和选择单元503来执行;再如,图3所示的编码处理方法中步骤S301可由图5所示的编码处理装置中的确定单元501来执行,步骤S302可由图5所示的编码处理装置中的获取单元504和处理单元502来执行,步骤S303-步骤S305可由图5所示的编码处理装置中的处理单元502来执行,步骤S305可由图5所示的编码处理装置中的确定单元501和选择单元503来执行。
[0213] 根据本发明的另一个实施例,图5所示的编码处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本发明的其它实施例中,基于编码处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
[0214] 根据本发明的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图2以及图3所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图5中所示的编码处理装置,以及来实现本发明实施例编码处理方法。所述计算机程序可以记载于例如计算机可读存储介质上,并通过计算机可读存储介质装载于上述计算设备中,并在其中运行。
[0215] 在本发明实施例中,在对待编码图像中当前编码块进行编码处理时,在得到当前编码块对应的多个编码模式后,不是采用直接计算每个编码模式对应的模式率失真代价,然后基于每个编码模式对应的模式率失真代价这种方式从多个编码模式中选取用于对当前编码块进行编码的编码模式的,而是根据每个编码模式对应的估算参数确定对多个编码模式进行分组处理,进一步的,根据分组处理结果从多个编码模式中筛选出至少一个候选编码模式,进一步的,基于每个候选编码模式的模式率失真代价从至少一个候选编码模式中选择对当前编码块进行编码的编码模式。如此一来,由于需要计算模式率失真代价的编码模式数量减少,可节省对当前编码块进行编码处理所消耗的资源,从而节省对待编码图像的编码处理资源。
[0216] 基于上述方法以及装置实施例,本发明实施例提供了一种编码处理设备。参见图6,为本发明实施例提供的一种编码处理设备的结构示意图。图6所示的编码处理设备可至少包括处理器601、输入接口602、输出接口603以及计算机存储介质604。其中,处理器601、输入接口602、输出接口603以及计算机存储介质604可通过总线或其他方式连接。
[0217] 计算机存储介质604可以存储在编码处理设备的存储器中,所述计算机存储介质601用于存储计算机程序,所述计算机程序包括程序指令,所述处理器601用于执行所述计算机存储介质604存储的程序指令。处理器601(或称CPU(Central Processing Unit,中央处理器))是编码处理设备的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行:
[0218] 确定对待编码图像中当前编码块进行编码的多个编码模式,以及确定所述多个编码模式中每个编码模式对应的估算参数;根据所述每个编码模式对应的估算参数对所述多个编码模式进行分组处理;基于分组处理结果从所述多个编码模式中选择至少一个候选编码模式;确定所述至少一个候选编码模式中每个候选编码模式对应的模式率失真代价,并选择模式率失真代价满足率失真代价条件的候选编码模式对所述当前编码块进行编码处理。
[0219] 本发明实施例还提供了一种计算机存储介质(Memory),所述计算机存储介质是编码处理设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质既可以包括编码处理设备的内置存储介质,当然也可以包括编码处理设备所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了编码处理设备的操作系统。并且,在该存储空间中还存放了适于被处理器601加载并执行的一条或多条的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机存储介质。
[0220] 在一个实施例中,所述计算机存储介质可由处理器601加载并执行计算机存储介质中存放的一条或多条指令,以实现上述有关图2和图3所示的编码处理方法的相应步骤。具体实现中,计算机存储介质中的一条或多条指令由处理器601加载并执行如下步骤:
[0221] 确定对待编码图像中当前编码块进行编码的多个编码模式,以及确定所述多个编码模式中每个编码模式对应的估算参数;根据所述每个编码模式对应的估算参数对所述多个编码模式进行分组处理;基于分组处理结果从所述多个编码模式中选择至少一个候选编码模式;确定所述至少一个候选编码模式中每个候选编码模式对应的模式率失真代价,并选择模式率失真代价满足率失真代价条件的候选编码模式,对所述当前编码块进行编码处理。
[0222] 在一个实施例中,任意一个编码模式对应的估算参数包括所述任意一个编码模式对应的估算失真和所述任意一个编码模式对应的估算残差比特数,所述多个编码模式包括目标编码模式,所述处理器601在确定所述多个编码模式中每个编码模式对应的估算参数时,执行如下步骤:
[0223] 采用所述目标编码模式对所述当前编码块进行编码预测,得到所述目标编码模式对应的预测值;
[0224] 确定所述目标编码模式对应的预测值与所述当前编码块之间的残差,并基于所述残差确定所述目标编码模式对应的估算失真率和所述目标编码模式对应的估算残差比特率;将所述当前编码块内的像素点总数量与所述目标编码模式对应的估算失真率进行相乘运算,得到所述目标编码模式对应的估算失真;将所述像素点总数量与所述目标编码模式对应的估算残差比特率进行相乘运算,得到所述目标编码模式对应的估算残差比特数。
[0225] 在一个实施例中,所述处理器601在所述基于所述残差确定所述目标编码模式对应的估算失真率和所述目标编码模式对应的估算残差比特率时,执行如下步骤:
[0226] 获取所述当前编码块的尺寸信息;将所述当前编码块的尺寸信息以及所述残差输入至均方差计算规则中进行运算,得到所述目标编码模式对应的均方差值;将所述目标编码模式对应的均方差值输入至估算因子确定规则中进行计算,得到所述目标编码模式对应的估算因子;基于估算失真率确定规则和所述目标编码模式对应的估算因子,得到所述目标编码模式对应的估算失真率;基于估算残差比特率确定规则和所述目标编码模式对应的估算因子,得到所述目标编码模式对应的估算残差比特率。
[0227] 在一个实施例中,所述处理器601在基于估算失真率确定规则和所述目标编码模式对应的估算因子,得到所述目标编码模式对应的估算失真率时,执行如下步骤:
[0228] 对所述估算因子进行修正处理,并获取修正处理后估算因子中的小数部分数值;根据失真率参数对照表获取估算失真率参数;将所述小数部分数值和所述估算失真率参数输入至所述估算失真率确定规则中进行运算,得到所述目标编码模式对应的估算失真率。
[0229] 在一个实施例中,所述处理器601在基于估算残差比特率确定规则和所述目标编码模式对应的估算因子,得到所述目标编码模式对应的估算残差比特率时,执行如下步骤:
[0230] 根据残差比特率参数对照表获取估算残差比特率参数;将所述小数部分数值和所述估算残差比特率参数输入至所述估算残差比特率确定规则中进行运算,得到所述目标编码模式对应的估算残差比特率。
[0231] 在一个实施例中,任意一个编码模式对应的估算参数包括所述任意一个编码模式对应的估算失真和所述任意一个编码模式对应的估算残差比特数,所述处理器601在根据所述每个编码模式对应的估算参数对所述多个编码模式进行分组处理时,执行如下步骤:
[0232] 分别比较各个编码模式对应的估算失真和各个编码模式对应的估算残差比特数;若存在与所述多个编码模式中任一编码模式具有相同的估算失真和估算残差比特数的其他编码模式,则将所述任一编码模式与所述其他编码模式组成一个第一类编码模式组;若不存在与所述任一编码模式具有相同的估算失真和估算残差比特数的其他编码模式,则将所述任一编码模式添加至第二类编码模式组。
[0233] 在一个实施例中,所述处理器601还用于:获取所述当前编码块中语法元素比特数;将所述语法元素比特数、每个编码模式对应的估算失真和相应编码模式对应的估算残差比特数输入至估算率失真代价确定规则中进行运算,得到相应的编码模式对应的估算率失真代价。
[0234] 在一个实施例中,所述第一类编码模式组的数量为至少一个,所述第二类编码模式组的数量为一个,所述处理器601在基于分组处理结果从所述多个编码模式中选择至少一个候选编码模式时,执行如下步骤:获取每个第一类编码模式组包括的每个编码模式对应的估算率失真代价;将所述每个第一类编码模式组中估算率失真代价最小的编码模式确定为一个候选编码模式;将所述第二类编码模式组中的各个编码模式均确定为候选编码模式。
[0235] 在一个实施例中,所述处理器601在基于分组处理结果从所述多个编码模式中选择至少一个候选编码模式时,执行如下步骤:基于分组处理结果为每个编码模式添加候选标识;将所述多个编码模式中候选标识为第一标识的编码模式,确定为候选编码模式。
[0236] 在一个实施例中,所述第一类编码模式组的数量为至少一个,所述第二类编码模式组的数量为一个,任一第一类编码模式组包括的多个编码模式是按照每个编码模式对应的估算率失真代价由小到大的顺序排列的,所述处理器601在基于分组处理结果为每个编码模式添加候选标识时,执行如下步骤:
[0237] 若任一编码模式属于所述第二类编码模式组,则将所述任一编码模式的候选标识设置为第一标识;若所述任一编码模式属于第一类编码模式组中的目标第一类编码模式组,则获取所述任一编码模式在所述目标第一类编码模式组中的排列位置;如果所述排列位置为第一个位置,则将所述任一编码模式的候选标识设置为第一标识;如果所述排列位置为除所述第一个位置外的其他位置,则将所述任一编码模式的候选标识设置为第二标识。
[0238] 在一个实施例中,所述至少一个候选编码模式中包括目标候选编码模式,所述处理器601在确定所述至少一个候选编码模式中每个候选编码模式对应的模式率失真代价时,执行如下步骤:
[0239] 获取所述当前编码块包括的语法元素比特数;采用所述目标候选编码模式对所述当前编码块进行编码预测,得到所述目标候选编码模式对应的预测值;
[0240] 将所述目标候选编码模式对应的预测值与所述当前编码块进行预设变换处理,得到所述目标候选编码模式对应的重建值;基于所述重建值与所述当前编码块之间的残差确定所述目标候选编码模式对应的模式率失真代价。
[0241] 在一个实施例中,所述处理器601在基于所述重建值与所述当前编码块之间的残差确定所述目标候选编码模式对应的模式率失真代价时,执行如下步骤:
[0242] 基于所述重建值与所述当前编码块之间的残差确定所述目标候选编码模式对应的目标失真和所述目标候选编码模式对应的目标残差比特数;将所述语法元素比特数、所述目标候选编码模式对应的目标失真和所述目标编码模式对应的目标残差比特数,输入至模式率失真代价确定规则中进行运算,得到所述目标候选编码模式对应的模式率失真代价。
[0243] 在一个实施例中,所述处理器601在所述选择模式率失真代价满足率失真代价条件的候选编码模式对所述当前编码块进行编码处理时,执行如下步骤:
[0244] 从所述至少一个候选编码模式中选择模式率失真代价最小的候选编码模式;
[0245] 确定被选择的候选编码模式对应的预测值与所述当前编码块之间的残差,得到残差系数;根据所述残差系数对所述当前编码块进行编码处理。
[0246] 本发明实施例中,在对待编码图像中当前编码块进行编码处理时,在得到当前编码块对应的多个编码模式后,不是直接计算每个编码模式对应的模式率失真代价通过各个编码模式对应的模式率失真代价,选取用于对当前编码块进行编码的编码模式,而是根据每个编码模式对应的估算参数对多个编码模式进行分组处理,进一步的,根据分组处理结果从多个编码模式中筛选出至少一个候选编码模式,进一步的,基于每个候选编码模式的模式率失真代价从至少一个候选编码模式中选择对当前编码块进行编码的编码模式。如此一来,由于需要计算模式率失真代价的编码模式数量减少,可节省对当前编码块进行编码处理所消耗的资源,从而节省对待编码图像的编码处理资源。
[0247] 根据本申请的一个方面,本发明实施例还提供了一种计算机产品或计算机程序,该计算机产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。处理器601从计算机可读存储介质中读取该计算机指令,处理器601执行该计算机指令,使得编码处理设备执行图2和图3所示的编码处理方法,具体地:确定对待编码图像中当前编码块进行编码的多个编码模式,以及确定所述多个编码模式中每个编码模式对应的估算参数;根据所述每个编码模式对应的估算参数对所述多个编码模式进行分组处理;基于分组处理结果从所述多个编码模式中选择至少一个候选编码模式;确定所述至少一个候选编码模式中每个候选编码模式对应的模式率失真代价,并选择模式率失真代价满足率失真代价条件的候选编码模式对所述当前编码块进行编码处理。
[0248] 本发明实施例中,在对待编码图像中当前编码块进行编码处理时,在得到当前编码块对应的多个编码模式后,不是直接计算每个编码模式对应的模式率失真代价通过各个编码模式对应的模式率失真代价,选取用于对当前编码块进行编码的编码模式,而是根据每个编码模式对应的估算参数对多个编码模式进行分组处理,进一步的,根据分组处理结果从多个编码模式中筛选出至少一个候选编码模式,进一步的,基于每个候选编码模式的模式率失真代价从至少一个候选编码模式中选择对当前编码块进行编码的编码模式。如此一来,由于需要计算模式率失真代价的编码模式数量减少,可节省对当前编码块进行编码处理所消耗的资源,从而节省对待编码图像的编码处理资源。