图像编码方法和图像编码器与流程

文档序号:12628247阅读:832来源:国知局
图像编码方法和图像编码器与流程

本发明涉及图像编解码领域,更为具体地,涉及一种图像编码方法和图像编码器。



背景技术:

高效视频编码(High Efficiency Video Coding,HEVC)标准协议相比于H.264/AVC,优势非常明显,主观感受相同的情况下,HEVC码流可以减少一半。HEVC编码架构由帧内预测、帧间预测、率失真优化(Rate Distortion Optimization,RDO)、熵编码、环路滤波等模块构成。

具体地,在编码时,以最大编单元(Largest Coding Unit,LCU)为单位,将64×64大小的图像块按四叉树结构形式逐层向下划分成4个32×32大小的块、16个16×16大小的块以及64个8×8大小的块。每层中的每个编码块均需要采用多种帧间预测模式和多种帧内预测模式进行预测,并从中找出使得每个编码块的率失真代价值最小的预测模式,作为该编码块的最优预测模式。然后基于每个编码块的最优预测模式,对每个编码块进行预测和编码。

具体地,以非8×8块为例,每个非8×8块可采用多种分割模式(例如,每个非8×8块可包括2N×2N、2N×N、N×2N等分割模式,其中,2N×2N是指对图像块不分割,2N×N是指将图像块分割成上下两个子块,N×2N是指将图像块分割成左右两个子块)对应的帧间预测模式,以及2N×2N分割模式下的35个角度方向对应的帧内预测模式(即需要在每个角度方向上进行一次帧内预测)。对于8×8块而言,每个8×8块采用如下4种分割模式对应的帧间预测模式:2N×2N、2N×N、N×2N和NxN,以及2N×2N和N×N两种分割模式下的各自35个角度方向对应的帧内预测模式。

图1是现有技术中HEVC的编码框架图,下面结合图1进行详细描述。如图1所示,以LCU为单位,对图像块逐层划分后得到4层不同大小的块,其中:

第0层:对64×64块进行多种分割模式(包括2N×2N、2N×N、N× 2N)对应的帧间预测,以及2N×2N分割模式下35个角度方向对应的帧内预测;

第1层:分别对4个32×32块进行多种分割模式(包括2N×2N、2N×N、N×2N)对应的帧间预测,以及2N×2N分割模式下35个角度方向对应的帧内预测;

第2层:分别对16个16×16块进行多种分割模式(包括2N×2N、2N×N、N×2N)对应的帧间预测,以及2N×2N分割模式下35个角度方向对应的帧内预测;

第3层:分别对64个8×8块进行4种分割模式(2N×2N、2N×N、N×2N、N×N)下的帧间预测,以及2N×2N和N×N两种分割模式下各35个方向对应的帧内预测。

如上所述,相比H.264/AVC,HEVC编码时,不但块的划分变得复杂,使得编码块的数目增多,而且每个编码块所支持的帧内、帧间预测模式增多。在对图像块进行编码时,需要使用每个编码块对应的所有帧间和帧内预测模式进行预测,并从中选出率失真代价值最小的预测模式最为该编码块的最优预测模式,导致图像编码复杂度高。



技术实现要素:

本发明实施例提供一种图像编码方法和图像编码器,以降低图像编码的复杂度。

第一方面,提供一种图像编码方法,包括:将待编码的编码块划分为M个子编码块,所述编码块为所述图像的图像块,所述M为大于等于2的正整数;使用帧间2N×2N预测模式对所述编码块进行预测,并获取所述编码块对应于帧间2N×2N预测模式的第一率失真代价值,使用帧间2N×2N预测模式对所述M个子编码块进行预测,并获取所述M个子编码块中的每个子编码块各自对应于帧间2N×2N预测模式的率失真代价值;根据所述M个子编码块对应于帧间2N×2N预测模式的率失真代价值,确定所述编码块对应于帧间2N×N预测模式的率失真代价值的第一估计值,以及根据所述M个子编码块对应于帧间2N×2N预测模式的率失真代价值,确定所述编码块对应于帧间N×2N预测模式的率失真代价值的第二估计值;根据所述第一率失真代价值、所述第一估计值和所述第二估计值,确定所述编码块的最优 预测模式;根据所述编码块的最优预测模式,对所述编码块进行预测编码。

结合第一方面,在第一方面的一种实现方式中,所述M为4,所述M个子编码块包括左上子编码块、右上子编码块、左下子编码块、右下子编码块,所述根据所述M个子编码块对应于帧间2N×2N预测模式的率失真代价值,确定所述编码块对应于帧间2N×N预测模式的率失真代价值的第一估计值,包括:根据所述左上子编码块对应于帧间2N×2N预测模式的率失真代价值和所述右上子编码块对应于帧间2N×2N预测模式的率失真代价值,确定所述左上子编码块和所述右上子编码块组成的图像块对应于帧间2N×N预测模式的率失真代价值的第三估计值;根据所述左下子编码块对应于帧间2N×2N预测模式的率失真代价值和所述右下子编码块对应于帧间2N×2N预测模式的率失真代价值,确定所述左下子编码块和所述右下子编码块组成的图像块对应于帧间2N×N预测模式的率失真代价值的第四估计值;根据所述第三估计值和所述第四估计值,计算所述第一估计值。

结合第一方面或其上述实现方式的任一种,在第一方面的另一种实现方式中,所述M为4,所述M个子编码块包括左上子编码块、右上子编码块、左下子编码块、右下子编码块,所述根据所述M个子编码块对应于帧间2N×2N预测模式的率失真代价值,确定所述编码块对应于帧间N×2N预测模式的率失真代价值的第二估计值,包括:根据所述左上子编码块对应于帧间2N×2N预测模式的率失真代价值和所述左下子编码块对应于帧间2N×2N预测模式的率失真代价值,确定所述左上子编码块和所述左下子编码块组成的图像块对应于帧间N×2N预测模式的率失真代价值的第五估计值;根据所述右上子编码块对应于帧间2N×2N预测模式的率失真代价值和所述右下子编码块对应于帧间2N×2N预测模式的率失真代价值,确定所述右上子编码块和所述右下子编码块组成的图像块对应于帧间N×2N预测模式的率失真代价值的第六估计值;根据所述第五估计值和所述第六估计值,计算所述编码块的所述第二估计值。

结合第一方面或其上述实现方式的任一种,在第一方面的另一种实现方式中,所述根据所述第一率失真代价值、所述第一估计值和所述第二估计值,确定所述编码块的最优预测模式,包括:确定所述第一率失真代价值、所述第一估计值和所述第二估计值中的最小值;当所述最小值对应的帧间预测模式为帧间2N×2N预测模式时,将帧间2N×2N预测模式作为所述编码块的 最优帧间预测模式;根据所述最优帧间预测模式,确定所述编码块的最优预测模式。

结合第一方面或其上述实现方式的任一种,在第一方面的另一种实现方式中,所述根据所述第一率失真代价值、所述第一估计值和所述第二估计值,确定所述编码块的最优预测模式,包括:确定所述第一率失真代价值、所述第一估计值和所述第二估计值中的最小值;当所述最小值对应的目标帧间预测模式为帧间2N×N预测模式或帧间N×2N预测模式时,使用所述目标帧间预测模式对所述编码块进行预测,并获得所述编码块对应于所述目标帧间预测模式的第二率失真代价值;将所述第一率失真代价值和所述第二率失真代价值中的较小值对应的帧间预测模式作为所述编码块的最优帧间预测模式;根据所述最优帧间预测模式,确定所述编码块的最优预测模式。

结合第一方面或其上述实现方式的任一种,在第一方面的另一种实现方式中,所述根据所述编码块的最优帧间预测模式,确定所述编码块的最优预测模式,包括:当所述编码块对应于所述最优帧间预测模式的率失真代价值小于或等于预设阈值时,将所述最优帧间预测模式作为所述最优预测模式;或者,当所述编码块对应于所述最优帧间预测模式的率失真代价值大于所述预设阈值时,使用帧内预测模式对所述编码块进行预测,并获取所述编码块对应于帧内预测模式的第三率失真代价值,将所述编码块对应于所述最优帧间预测模式的率失真代价值和所述第三率失真代价值中的较小值对应的预测模式作为所述编码块的最优预测模式。

结合第一方面或其上述实现方式的任一种,在第一方面的另一种实现方式中,所述根据所述编码块的最优帧间预测模式,确定所述编码块的最优预测模式,包括:当所述M个子编码块的最优预测模式均为帧间预测模式时,将所述最优帧间预测模式确定为所述编码块的最优预测模式;或者,当所述M个子编码块中存在最优预测模式为帧内预测模式的子编码块时,使用帧内预测模式对所述编码块进行预测,并获取所述编码块对应于帧内预测模式的第三率失真代价值,将所述编码块对应于所述最优帧间预测模式的率失真代价值和所述第三率失真代价值中的较小值对应的预测模式作为所述编码块的最优预测模式。

第二方面,提供一种图像编码器,包括:划分模块,用于将待编码的编码块划分为M个子编码块,所述编码块为所述图像的图像块,所述M为大 于等于2的正整数;获取模块,用于使用帧间2N×2N预测模式对所述编码块进行预测,并获取所述编码块对应于帧间2N×2N预测模式的第一率失真代价值,使用帧间2N×2N预测模式对所述划分模块划分得到的所述M个子编码块进行预测,并获取所述M个子编码块中的每个子编码块各自对应于帧间2N×2N预测模式的率失真代价值;第一确定模块,用于根据所述获取模块获取到的所述M个子编码块对应于帧间2N×2N预测模式的率失真代价值,确定所述编码块对应于帧间2N×N预测模式的率失真代价值的第一估计值,以及根据所述M个子编码块对应于帧间2N×2N预测模式的率失真代价值,确定所述编码块对应于帧间N×2N预测模式的率失真代价值的第二估计值;第二确定模块,用于根据所述获取模块获取到的所述第一率失真代价值、所述第一确定模块确定的所述第一估计值和所述第二估计值,确定所述编码块的最优预测模式;编码模块,用于根据所述第二确定模块确定的所述编码块的最优预测模式,对所述编码块进行预测编码。

结合第二方面,在第二方面的一种实现方式中,所述M为4,所述M个子编码块包括左上子编码块、右上子编码块、左下子编码块、右下子编码块,所述第一确定模块具体用于根据所述左上子编码块对应于帧间2N×2N预测模式的率失真代价值和所述右上子编码块对应于帧间2N×2N预测模式的率失真代价值,确定所述左上子编码块和所述右上子编码块组成的图像块对应于帧间2N×N预测模式的率失真代价值的第三估计值;根据所述左下子编码块对应于帧间2N×2N预测模式的率失真代价值和所述右下子编码块对应于帧间2N×2N预测模式的率失真代价值,确定所述左下子编码块和所述右下子编码块组成的图像块对应于帧间2N×N预测模式的率失真代价值的第四估计值;根据所述第三估计值和所述第四估计值,计算所述第一估计值。

结合第二方面或其上述实现方式的任一种,在第二方面的另一种实现方式中,所述M为4,所述M个子编码块包括左上子编码块、右上子编码块、左下子编码块、右下子编码块,所述第一确定模块具体用于根据所述左上子编码块对应于帧间2N×2N预测模式的率失真代价值和所述左下子编码块对应于帧间2N×2N预测模式的率失真代价值,确定所述左上子编码块和所述左下子编码块组成的图像块对应于帧间N×2N预测模式的率失真代价值的第五估计值;根据所述右上子编码块对应于帧间2N×2N预测模式的率失真 代价值和所述右下子编码块对应于帧间2N×2N预测模式的率失真代价值,确定所述右上子编码块和所述右下子编码块组成的图像块对应于帧间N×2N预测模式的率失真代价值的第六估计值;根据所述第五估计值和所述第六估计值,计算所述编码块的所述第二估计值。

结合第二方面或其上述实现方式的任一种,在第二方面的另一种实现方式中,所述第二确定模块具体用于确定所述第一率失真代价值、所述第一估计值和所述第二估计值中的最小值;当所述最小值对应的帧间预测模式为帧间2N×2N预测模式时,将帧间2N×2N预测模式作为所述编码块的最优帧间预测模式;根据所述最优帧间预测模式,确定所述编码块的最优预测模式。

结合第二方面或其上述实现方式的任一种,在第二方面的另一种实现方式中,所述第二确定模块具体用于确定所述第一率失真代价值、所述第一估计值和所述第二估计值中的最小值;当所述最小值对应的目标帧间预测模式为帧间2N×N预测模式或帧间N×2N预测模式时,使用所述目标帧间预测模式对所述编码块进行预测,并获得所述编码块对应于所述目标帧间预测模式的第二率失真代价值;将所述第一率失真代价值和所述第二率失真代价值中的较小值对应的帧间预测模式作为所述编码块的最优帧间预测模式;根据所述最优帧间预测模式,确定所述编码块的最优预测模式。

结合第二方面或其上述实现方式的任一种,在第二方面的另一种实现方式中,所述第二确定模块具体用于当所述编码块对应于所述最优帧间预测模式的率失真代价值小于或等于预设阈值时,将所述最优帧间预测模式作为所述最优预测模式;或者,当所述编码块对应于所述最优帧间预测模式的率失真代价值大于所述预设阈值时,使用帧内预测模式对所述编码块进行预测,并获取所述编码块对应于帧内预测模式的第三率失真代价值,将所述编码块对应于所述最优帧间预测模式的率失真代价值和所述第三率失真代价值中的较小值对应的预测模式作为所述编码块的最优预测模式。

结合第二方面或其上述实现方式的任一种,在第二方面的另一种实现方式中,所述第二确定模块具体用于当所述M个子编码块的最优预测模式均为帧间预测模式时,将所述最优帧间预测模式确定为所述编码块的最优预测模式;或者,当所述M个子编码块中存在最优预测模式为帧内预测模式的子编码块时,使用帧内预测模式对所述编码块进行预测,并获取所述编码块对应于帧内预测模式的第三率失真代价值,将所述编码块对应于所述最优帧 间预测模式的率失真代价值和所述第三率失真代价值中的较小值对应的预测模式作为所述编码块的最优预测模式。

本发明实施例将编码块划分成M个子编码块,分别获取该编码块和该M个子编码块对应于帧间2N×2N预测模式的率失真代价值,根据该M个子编码块的率失真代价值确定该编码块对应于帧间2N×N预测模式的率失真代价值的估计值,以及该编码块对应于帧间N×2N预测模式的率失真代价值的估计值,根据获取到的该编码块的率失真代价值以及确定出的该编码块的率失真代价值的估计值,确定该编码块的最优预测模式,无需像现有技术那样使用所有预测模式对该编码块进行预测以选出该编码块的最优预测模式,从而降低了图像的编码复杂度。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是现有技术中HEVC的编码框架图。

图2是本发明实施例的图像编码方法的示意性流程图。

图3是编码块划分成4个子编码块的示例图。

图4是编码块按照2N×N分割模式的示例图。

图5是编码块按照N×2N分割模式划分的示例图。

图6是本发明实施例的图像编码流程的示例图。

图7是本发明实施例的图像编码流程的示例图。

图8是子块组合方式的示意图。

图9是本发明实施例的基于帧间计算结果判断是否继续执行帧内计算的示意性流程图。

图10是本发明实施例的基于帧间计算结果判断是否继续执行帧内计算的示意性流程图。

图11是本发明实施例的图像编码器的示意性结构图。

图12是本发明实施例的图像编码器的示意性结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。

图2是本发明实施例的图像编码方法的示意性流程图。图2的方法包括:

210、将待编码的编码块划分为M个子编码块,编码块为图像的图像块,所述M为大于等于2的正整数。

应理解,上述编码块和上述子编码块的形状均可以是正方形。

本发明实施例的图像编码方法可以应用于HEVC的编码架构中,具体而言,在HEVC架构中,首先会基于LCU,以四叉树形式对图像块进行划分,得到多层编码块。例如,LCU的尺寸可以为64×64,将64×64大小的图像块作为第0层的编码块(或称编码单元),然后将第0层的编码块以四叉树的形式进行划分,得到位于第1层的4个32×32大小的编码块,接着将第1层的4个32×32大小的编码块分别以四叉树的形式进行划分,得到位于第2层的16个16×16大小的编码块,接着将第2层的16个16×16大小的编码块分别以四叉树的形式进行划分,得到位于第3层的64个8×8大小的编码块,而步骤210中的编码块可以是上述第0层至第3层中的任一层中的编码块,上述编码块的M个子块可指该编码块以四叉树的形式划分而成的4个子编码块。

220、使用帧间2N×2N预测模式对编码块进行预测,并获取编码块对应于帧间2N×2N预测模式的第一率失真代价值,使用帧间2N×2N预测模式对M个子编码块进行预测,并获取M个子编码块中的每个子编码块各自对应于帧间2N×2N预测模式的率失真代价值。

需要说明的是,编码块可包括帧间2N×2N预测模式、帧间N×2N预测模式以及帧间2N×N预测模式。所谓帧间2N×2N预测模式可指在2N×2N分割模式下进行帧间预测,即对图像块不进行分割直接进行帧间预测;同理,帧间2N×N预测模式可指在2N×N分割模式下进行帧间预测,即将图像块分割成上下两个子块后进行帧间预测;同理,帧间N×2N预测模式可指在N×2N分割模式下进行帧间预测,即将图像块分割成左右两个子块后进行帧间预测。

230、根据M个子编码块对应于帧间2N×2N预测模式的率失真代价值,确定编码块对应于帧间2N×N预测模式的率失真代价值的第一估计值,以及根据M个子编码块对应于帧间2N×2N预测模式的率失真代价值,确定编码块对应于帧间N×2N预测模式的率失真代价值的第二估计值。

以M个子编码块为4个子编码块为例进行举例说明。如图3所示,该4个子块包括子块0、子块1、子块2和子块3。帧间2N×N预测模式是将编码块分割成上下两个子块后进行帧间预测,如图4所示,该上下两个子块可以分别为上边块0和下边块1;同理,帧间N×2N预测模式是将编码块分割成左右两个子块后进行帧间预测,如图5所示,该左右两个子块可以分别为左边块0和右边块1。本发明实施例可以利用图4、图5所示的子块与图3所示的子块之间的相互包含关系对编码块在帧间N×2N预测模式和帧间2N×N预测模式下的率失真代价值进行估计,后文会结合具体的实施例进行详细的描述。

240、根据第一率失真代价值、第一估计值和第二估计值,确定编码块的最优预测模式。

步骤240的实现方式可以有多种,例如,可以从第一率失真代价值、第一估计值和第二估计值中选取最小值,然后将该最小值对应的预测模式确定为上述最优预测模式;或者,将该最小值对应的预测模式确定为最优的帧间预测模式,然后再将该最小值与该编码块的帧内预测模式的率失真代价值进行比较,得出上述最优预测模式。

250、根据编码块的最优预测模式,对编码块进行预测编码。

本发明实施例将编码块划分成M个子编码块,分别获取该编码块和该M个子编码块对应于帧间2N×2N预测模式的率失真代价值,根据该M个子编码块的率失真代价值确定该编码块对应于帧间2N×N预测模式的率失真代价值的估计值,以及该编码块对应于帧间N×2N预测模式的率失真代价值的估计值,根据获取到的该编码块的率失真代价值以及确定出的该编码块的率失真代价值的估计值,确定该编码块的最优预测模式,无需像现有技术那样使用所有预测模式对该编码块进行预测以选出该编码块的最优预测模式,从而降低了图像的编码复杂度。

可选地,作为一个实施例,M可以为4,M个子编码块可包括左上子编码块、右上子编码块、左下子编码块、右下子编码块,步骤230可包括:根 据左上子编码块对应于帧间2N×2N预测模式的率失真代价值和右上子编码块对应于帧间2N×2N预测模式的率失真代价值,确定左上子编码块和右上子编码块组成的图像块对应于帧间2N×N预测模式的率失真代价值的第三估计值;根据左下子编码块对应于帧间2N×2N预测模式的率失真代价值和右下子编码块对应于帧间2N×2N预测模式的率失真代价值,确定左下子编码块和右下子编码块组成的图像块对应于帧间2N×N预测模式的率失真代价值的第四估计值;根据第三估计值和第四估计值,计算第一估计值。

参考图3和图4,可以对图3中的左上子编码块0对应于帧间2N×2N预测模式的率失真代价值cost_0和右上子编码块1对应于帧间2N×2N预测模式的率失真代价值cost_1加权求和,得出图4中的上边块0的率失真代价值的第三估计值;可以对图3中的左下子编码块2对应于帧间2N×2N预测模式的率失真代价值cost_2和右下子编码块3对应于帧间2N×2N预测模式的率失真代价值cost_3加权求和,得出图4中的下边块1的率失真代价值的第四估计值。

可选地,作为一个实施例,M可以为4,M个子编码块包括左上子编码块、右上子编码块、左下子编码块、右下子编码块,步骤230可包括:根据左上子编码块对应于帧间2N×2N预测模式的率失真代价值和左下子编码块对应于帧间2N×2N预测模式的率失真代价值,确定左上子编码块和左下子编码块组成的图像块对应于帧间N×2N预测模式的率失真代价值的第五估计值;根据右上子编码块对应于帧间2N×2N预测模式的率失真代价值和右下子编码块对应于帧间2N×2N预测模式的率失真代价值,确定右上子编码块和右下子编码块组成的图像块对应于帧间N×2N预测模式的率失真代价值的第六估计值;根据第五估计值和第六估计值,计算编码块的第二估计值。

参考图3和图5,可以对图3中的左上子编码块0对应于帧间2N×2N预测模式的率失真代价值cost_0和左下子编码块2对应于帧间2N×2N预测模式的率失真代价值cost_2加权求和,得出图5中的左边块0的率失真代价值的第五估计值;可以将图3中的右上子编码块1对应于帧间2N×2N预测模式的率失真代价值cost_1和右下子编码块3对应于帧间2N×2N预测模式的率失真代价值cost_3加权求和,得出图5中的右边块1的率失真代价值的第六估计值。

可选地,作为一个实施例,步骤240可包括:确定第一率失真代价值、 第一估计值和第二估计值中的最小值;当最小值对应的帧间预测模式为帧间2N×2N预测模式时,将帧间2N×2N预测模式作为编码块的最优帧间预测模式;根据最优帧间预测模式,确定编码块的最优预测模式。

本发明实施例中,直接将最小值对应的帧间预测模式确定为最优帧间预测模式,进一步降低了图像的编码复杂度。

可选地,作为一个实施例,步骤240可包括:确定第一率失真代价值、第一估计值和第二估计值中的最小值;当最小值对应的目标帧间预测模式为帧间2N×N预测模式或帧间N×2N预测模式时,使用目标帧间预测模式对编码块进行预测,并获得编码块对应于目标帧间预测模式的第二率失真代价值;将第一率失真代价值和第二率失真代价值中的较小值对应的帧间预测模式作为编码块的最优帧间预测模式;根据最优帧间预测模式,确定编码块的最优预测模式。

当最小值对应的目标帧间预测模式并非帧间2N×2N预测模式时,本发明实施例并非将该目标帧间预测模式直接确定为编码块的最优帧间预测模式,而是需要使用该目标预测模式对该编码块进行预测,进一步验证编码块对应于该目标帧间预测模式的率失真代价值是否真的小于该编码块对应于帧间2N×2N预测模式的率失真代价值,一定程度上提高了确定最优帧间预测模式的准确性。

此外,上述根据编码块的最优帧间预测模式,确定编码块的最优预测模式的实现方式可以有多种,例如,可以直接将该编码块的最优帧间预测模式作为该编码块的最优预测模式;或者,使用该编码块的帧内预测模式进行预测,然后基于率失真算法从编码块的最优帧间预测模式和帧内预测模式中选取使得编码块的率失真代价值最小的预测模式,作为该编码块的最优预测模式。

可选地,作为一个实施例,上述根据编码块的最优帧间预测模式,确定编码块的最优预测模式可包括:当编码块对应于最优帧间预测模式的率失真代价值小于或等于预设阈值时,将最优帧间预测模式作为最优预测模式;或者,当编码块对应于最优帧间预测模式的率失真代价值大于预设阈值时,使用帧内预测模式对编码块进行预测,并获取编码块对应于帧内预测模式的第三率失真代价值,将编码块对应于最优帧间预测模式的率失真代价值和第三率失真代价值中的较小值对应的预测模式作为编码块的最优预测模式。

本发明实施例中,通过直接将编码块对应于最优帧间预测模式的率失真代价值与预设的阈值进行比较,如果小于该阈值,则无需进行帧内预测,直接将该编码块的最优帧间预测模式确定为该编码块的最优预测模式,进一步降低了图像的编码复杂度。可以根据经验或者测试确定该预设阈值的取值,当编码块对应于最优帧间预测模式的率失真代价值(以下成当前率失真代价值)小于该预设阈值时,就可以认为该最优帧间预测模式可以满足编码要求,虽然继续确定编码块对应于其他预测模式下的率失真代价值可能会得到比该当前率失真代价值更小的取值,但也不会对编码性能有质的提升。

可选地,作为一个实施例,上述根据编码块的最优帧间预测模式,确定编码块的最优预测模式可包括:当M个子编码块的最优预测模式均为帧间预测模式时,将最优帧间预测模式确定为编码块的最优预测模式;或者,当M个子编码块中存在最优预测模式为帧内预测模式的子编码块时,使用帧内预测模式对编码块进行预测,并获取编码块对应于帧内预测模式的第三率失真代价值,将编码块对应于最优帧间预测模式的率失真代价值和第三率失真代价值中的较小值对应的预测模式作为编码块的最优预测模式。

本发明实施例中,当M个子编码块的最优预测模式均为帧间预测模式时,可以推定该编码块的最优预测模式也为帧间预测模式,也就无需进一步比较编码块在帧间预测模式和帧内预测模式下的率失真代价值,从而进一步降低了图像编码的复杂度。

下面以HEVC中的编码流程和框架为例,更加详细地描述本发明实施例。应注意,图6至图10的例子仅仅是为了帮助本领域技术人员理解本发明实施例,而非要将本发明实施例限于所例示的具体数值或具体场景。本领域技术人员根据所给出的图6至图10的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本发明实施例的范围内。

首先将整个LCU编码流程分为自上向下(从第0层至第3层)粗略计算和自下向上(从第3层至第0层)精细计算2部分。

自上向下时,可以计算帧内或帧间的一部分预测模式,在计算自下向上时,再计算其余预测模式。粗略计算以只计算帧间2Nx2N预测模式为例,具体流程参见图6。

粗略计算时,第0层可以只计算1个64x64块的帧间2Nx2N预测模式;第1层时,可以只计算4个32x32块的帧间2Nx2N预测模式;第2层时, 可以只计算16个16x16块的帧间2Nx2N预测模式;第3层时,可以只计算64个8x8块的帧间NxN预测模式。在自下向上精细计算时,可以先计算完帧间的剩余预测模式(包括帧间2N×N预测模式和帧间N×2N预测模式),然后再计算帧内预测模式。

在图6的大体架构的基础上,可以对整个编码流程进行进一步完善,例如,在精细计算时增加做帧内或帧间的判决条件,然后根据粗略计算时已经获得的信息和/或当前层编码块的下层子块预测编码得到的信息和增加的判决条件,有选择性做当前层编码块的帧内或帧间预测,下面结合图7具体说明。

1、精细计算时判断是否做帧间的条件及流程

以下层的子编码块的对应于帧间2N×2N预测模式的率失真代价值来预估当前层编码块的对应于帧间2N×N预测模式和帧间N×2N预测模式的率失真代价值为例,说明如下:

Step1:记录粗略计算时每层编码块使用帧间2Nx2N预测模式进行预测后得到的率失真代价值cost_2N×2N。

以一个编码块为例进行举例说明,假设该编码块支持merge和amvp两种帧间预测模式,可以获取该编码块(作为一个整体,不进行分割)在merge预测模式下的satd值和bit值,然后可以利用率失真代价公式:cost=satd+λ*bit计算编码块在merge预测模式下的率失真代价值,并获取该编码块在amvp预测模式下的satd值和bit值,然后可以利用率失真代价公式:cost=satd+λ*bit计算编码块在amvp预测模式下的率失真代价值。将得到的上述率失真代价值作为该编码块对应于帧间2N×2N预测模式的率失真代价值。

Step2:基于粗略计算时记录的信息,确定当前层的编码块对应于帧间2N×N预测模式的率失真代价值的估计值,以及当前层的编码块对应于帧间N×2N预测模式的率失真代价值的估计值。

具体地,以确定当前层的编码块对应于帧间2N×N预测模式的率失真代价值的估计值为例进行举例说明。首先,记录的信息可包括该编码块的4个子编码块对应于帧间2N×2N预测模式的率失真代价值,例如,每个子编码块在merge预测模式下的率失真代价值,以及每个子编码块在amvp预测模式下的率失真代价值。然后可以基于率失真代价公式,按照图8中(a)所示的方式进行组合,求得最优的率失真代价值,作为该编码块对应于帧间 2N×N预测模式的率失真代价值的估计值;同理,按照图8中(b)的方式进行组合,求得最优的率失真代价值,作为该编码块对应于帧间N×2N预测模式的率失真代价值的估计值。

Step3:从当前层的编码块对应于帧间2N×2N预测模式的率失真代价值、以及Step2中确定出的估计值中选取cost的最小值,如果最小值为帧间2N×N预测模式的率失真代价值的估计值,则对该编码块进行帧间2NxN预测;如果最小值为帧间N×2N率失真代价值的估计值,则对该编码块进行帧间Nx2N预测;如果最小值为帧间2N×2N预测模式的率失真代价值,则不再继续执行帧间计算。

2、精细计算时判断是否做帧内的条件及流程

针对8×8块,其判断是否做帧内的条件及流程如图9所示。

具体而言,帧间择优后当前层cost与预设阈值比较,如果cost小于或等于阈值thr1,就不做帧内计算,否则做帧内2Nx2N。计算并择优后,如果编码块的最优预测模式为帧内预测模式,则再做帧内N×N预测,否则不再做帧内N×N预测。本实施例中阈值thr1可以设定为1000。当然,还可以加入其它阈值条件来作为是否做帧内计算的判决条件,例如当帧间cost小于thr1,和/或运动矢量残差(Motion Vector Difference,MVD)小于thr2(比如设定为80)时,就不做帧内计算,否则继续执行帧内计算。

针对非8×8块,可以采用图10所示的流程图判断是否做帧内计算。

当前层的编码块帧间择优后,统计该编码块的4个子编码块块的预测模式。如果4个子编码块的预测模式均为帧间预测模式,则不再做该编码块的帧内2Nx2N预测模式,否则,可以继续执行该编码块的帧内预测模式。当然,在准备执行编码块的帧内预测模式时,也可以通过一些方式降低帧内计算的运算量,例如,可以首先判断4个子编码块块中帧内方向有没有0或1,如果有0或1,就做该编码块的帧内2Nx2N预测,否则,可以计算相邻帧内子块的方向差值。如果相邻小于阈值thr,则做帧内2Nx2N预测,否则可以不做帧内2Nx2N预测,本发明实施例对此不作具体限定。

上文中结合图1至图10,详细描述了根据本发明实施例的图像编码方法,下面将结合图11至图12,详细描述根据本发明实施例的图像编码器。应理解,图11和图12中的图像编码器能够实现图1至图10中的图像编码方法的各个步骤,为了简洁,适当省略重复的描述。

图11是本发明实施例的图像编码器的示意性框图。图11的图像编码器1100包括:

划分模块1110,用于将待编码的编码块划分为M个子编码块,所述编码块为所述图像的图像块,所述M为大于等于2的正整数;

获取模块1120,用于使用帧间2N×2N预测模式对所述编码块进行预测,并获取所述编码块对应于帧间2N×2N预测模式的第一率失真代价值,使用帧间2N×2N预测模式对所述划分模块1110划分得到的所述M个子编码块进行预测,并获取所述M个子编码块中的每个子编码块各自对应于帧间2N×2N预测模式的率失真代价值;

第一确定模块1130,用于根据所述获取模块1120获取到的所述M个子编码块对应于帧间2N×2N预测模式的率失真代价值,确定所述编码块对应于帧间2N×N预测模式的率失真代价值的第一估计值,以及根据所述M个子编码块对应于帧间2N×2N预测模式的率失真代价值,确定所述编码块对应于帧间N×2N预测模式的率失真代价值的第二估计值;

第二确定模块1140,用于根据所述获取模块1120获取到的所述第一率失真代价值、所述第一确定模块1130确定的所述第一估计值和所述第二估计值,确定所述编码块的最优预测模式;

编码模块1150,用于根据所述第二确定模块1140确定的所述编码块的最优预测模式,对所述编码块进行预测编码。

本发明实施例将编码块划分成M个子编码块,分别获取该编码块和该M个子编码块对应于帧间2N×2N预测模式的率失真代价值,根据该M个子编码块的率失真代价值确定该编码块对应于帧间2N×N预测模式的率失真代价值的估计值,以及该编码块对应于帧间N×2N预测模式的率失真代价值的估计值,根据获取到的该编码块的率失真代价值以及确定出的该编码块的率失真代价值的估计值,确定该编码块的最优预测模式,无需像现有技术那样使用所有预测模式对该编码块进行预测以选出该编码块的最优预测模式,从而降低了图像的编码复杂度。

可选地,作为一个实施例,所述M为4,所述M个子编码块包括左上子编码块、右上子编码块、左下子编码块、右下子编码块,所述第一确定模块1130具体用于根据所述左上子编码块对应于帧间2N×2N预测模式的率失真代价值和所述右上子编码块对应于帧间2N×2N预测模式的率失真代价 值,确定所述左上子编码块和所述右上子编码块组成的图像块对应于帧间2N×N预测模式的率失真代价值的第三估计值;根据所述左下子编码块对应于帧间2N×2N预测模式的率失真代价值和所述右下子编码块对应于帧间2N×2N预测模式的率失真代价值,确定所述左下子编码块和所述右下子编码块组成的图像块对应于帧间2N×N预测模式的率失真代价值的第四估计值;根据所述第三估计值和所述第四估计值,计算所述第一估计值。

可选地,作为一个实施例,所述M为4,所述M个子编码块包括左上子编码块、右上子编码块、左下子编码块、右下子编码块,所述第一确定模块1130具体用于根据所述左上子编码块对应于帧间2N×2N预测模式的率失真代价值和所述左下子编码块对应于帧间2N×2N预测模式的率失真代价值,确定所述左上子编码块和所述左下子编码块组成的图像块对应于帧间N×2N预测模式的率失真代价值的第五估计值;根据所述右上子编码块对应于帧间2N×2N预测模式的率失真代价值和所述右下子编码块对应于帧间2N×2N预测模式的率失真代价值,确定所述右上子编码块和所述右下子编码块组成的图像块对应于帧间N×2N预测模式的率失真代价值的第六估计值;根据所述第五估计值和所述第六估计值,计算所述编码块的所述第二估计值。

可选地,作为一个实施例,所述第二确定模块1140具体用于确定所述第一率失真代价值、所述第一估计值和所述第二估计值中的最小值;当所述最小值对应的帧间预测模式为帧间2N×2N预测模式时,将帧间2N×2N预测模式作为所述编码块的最优帧间预测模式;根据所述最优帧间预测模式,确定所述编码块的最优预测模式。

可选地,作为一个实施例,所述第二确定模块1140具体用于确定所述第一率失真代价值、所述第一估计值和所述第二估计值中的最小值;当所述最小值对应的目标帧间预测模式为帧间2N×N预测模式或帧间N×2N预测模式时,使用所述目标帧间预测模式对所述编码块进行预测,并获得所述编码块对应于所述目标帧间预测模式的第二率失真代价值;将所述第一率失真代价值和所述第二率失真代价值中的较小值对应的帧间预测模式作为所述编码块的最优帧间预测模式;根据所述最优帧间预测模式,确定所述编码块的最优预测模式。

可选地,作为一个实施例,所述第二确定模块1140具体用于当所述编 码块对应于所述最优帧间预测模式的率失真代价值小于或等于预设阈值时,将所述最优帧间预测模式作为所述最优预测模式;或者,当所述编码块对应于所述最优帧间预测模式的率失真代价值大于所述预设阈值时,使用帧内预测模式对所述编码块进行预测,并获取所述编码块对应于帧内预测模式的第三率失真代价值,将所述编码块对应于所述最优帧间预测模式的率失真代价值和所述第三率失真代价值中的较小值对应的预测模式作为所述编码块的最优预测模式。

可选地,作为一个实施例,所述第二确定模块1140具体用于当所述M个子编码块的最优预测模式均为帧间预测模式时,将所述最优帧间预测模式确定为所述编码块的最优预测模式;或者,当所述M个子编码块中存在最优预测模式为帧内预测模式的子编码块时,使用帧内预测模式对所述编码块进行预测,并获取所述编码块对应于帧内预测模式的第三率失真代价值,将所述编码块对应于所述最优帧间预测模式的率失真代价值和所述第三率失真代价值中的较小值对应的预测模式作为所述编码块的最优预测模式。

图12是本发明实施例的图像编码器的示意性框图。图12的图像编码器1300包括:

存储器1210,用于存储程序;

处理器1220,用于执行程序,当程序被执行时,所述处理器1220具体用于将待编码的编码块划分为M个子编码块,所述编码块为所述图像的图像块,所述M为大于等于2的正整数;使用帧间2N×2N预测模式对所述编码块进行预测,并获取所述编码块对应于帧间2N×2N预测模式的第一率失真代价值,使用帧间2N×2N预测模式对所述M个子编码块进行预测,并获取所述M个子编码块中的每个子编码块各自对应于帧间2N×2N预测模式的率失真代价值;根据所述M个子编码块对应于帧间2N×2N预测模式的率失真代价值,确定所述编码块对应于帧间2N×N预测模式的率失真代价值的第一估计值,以及根据所述M个子编码块对应于帧间2N×2N预测模式的率失真代价值,确定所述编码块对应于帧间N×2N预测模式的率失真代价值的第二估计值;根据获取到的所述第一率失真代价值、所述第一估计值和所述第二估计值,确定所述编码块的最优预测模式;根据所述编码块的最优预测模式,对所述编码块进行预测编码。

本发明实施例将编码块划分成M个子编码块,分别获取该编码块和该 M个子编码块对应于帧间2N×2N预测模式的率失真代价值,根据该M个子编码块的率失真代价值确定该编码块对应于帧间2N×N预测模式的率失真代价值的估计值,以及该编码块对应于帧间N×2N预测模式的率失真代价值的估计值,根据获取到的该编码块的率失真代价值以及确定出的该编码块的率失真代价值的估计值,确定该编码块的最优预测模式,无需像现有技术那样使用所有预测模式对该编码块进行预测以选出该编码块的最优预测模式,从而降低了图像的编码复杂度。

可选地,作为一个实施例,所述M为4,所述M个子编码块包括左上子编码块、右上子编码块、左下子编码块、右下子编码块,所述处理器1220具体用于根据所述左上子编码块对应于帧间2N×2N预测模式的率失真代价值和所述右上子编码块对应于帧间2N×2N预测模式的率失真代价值,确定所述左上子编码块和所述右上子编码块组成的图像块对应于帧间2N×N预测模式的率失真代价值的第三估计值;根据所述左下子编码块对应于帧间2N×2N预测模式的率失真代价值和所述右下子编码块对应于帧间2N×2N预测模式的率失真代价值,确定所述左下子编码块和所述右下子编码块组成的图像块对应于帧间2N×N预测模式的率失真代价值的第四估计值;根据所述第三估计值和所述第四估计值,计算所述第一估计值。

可选地,作为一个实施例,所述M为4,所述M个子编码块包括左上子编码块、右上子编码块、左下子编码块、右下子编码块,所述处理器1220具体用于根据所述左上子编码块对应于帧间2N×2N预测模式的率失真代价值和所述左下子编码块对应于帧间2N×2N预测模式的率失真代价值,确定所述左上子编码块和所述左下子编码块组成的图像块对应于帧间N×2N预测模式的率失真代价值的第五估计值;根据所述右上子编码块对应于帧间2N×2N预测模式的率失真代价值和所述右下子编码块对应于帧间2N×2N预测模式的率失真代价值,确定所述右上子编码块和所述右下子编码块组成的图像块对应于帧间N×2N预测模式的率失真代价值的第六估计值;根据所述第五估计值和所述第六估计值,计算所述编码块的所述第二估计值。

可选地,作为一个实施例,所述处理器1220具体用于确定所述第一率失真代价值、所述第一估计值和所述第二估计值中的最小值;当所述最小值对应的帧间预测模式为帧间2N×2N预测模式时,将帧间2N×2N预测模式作为所述编码块的最优帧间预测模式;根据所述最优帧间预测模式,确定所 述编码块的最优预测模式。

可选地,作为一个实施例,所述处理器1220具体用于确定所述第一率失真代价值、所述第一估计值和所述第二估计值中的最小值;当所述最小值对应的目标帧间预测模式为帧间2N×N预测模式或帧间N×2N预测模式时,使用所述目标帧间预测模式对所述编码块进行预测,并获得所述编码块对应于所述目标帧间预测模式的第二率失真代价值;将所述第一率失真代价值和所述第二率失真代价值中的较小值对应的帧间预测模式作为所述编码块的最优帧间预测模式;根据所述最优帧间预测模式,确定所述编码块的最优预测模式。

可选地,作为一个实施例,所述处理器1220具体用于当所述编码块对应于所述最优帧间预测模式的率失真代价值小于或等于预设阈值时,将所述最优帧间预测模式作为所述最优预测模式;或者,当所述编码块对应于所述最优帧间预测模式的率失真代价值大于所述预设阈值时,使用帧内预测模式对所述编码块进行预测,并获取所述编码块对应于帧内预测模式的第三率失真代价值,将所述编码块对应于所述最优帧间预测模式的率失真代价值和所述第三率失真代价值中的较小值对应的预测模式作为所述编码块的最优预测模式。

可选地,作为一个实施例,所述处理器1220具体用于当所述M个子编码块的最优预测模式均为帧间预测模式时,将所述最优帧间预测模式确定为所述编码块的最优预测模式;或者,当所述M个子编码块中存在最优预测模式为帧内预测模式的子编码块时,使用帧内预测模式对所述编码块进行预测,并获取所述编码块对应于帧内预测模式的第三率失真代价值,将所述编码块对应于所述最优帧间预测模式的率失真代价值和所述第三率失真代价值中的较小值对应的预测模式作为所述编码块的最优预测模式。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应 过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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