图像的编码方法和装置、存储介质、电子装置与流程

文档序号:15878680发布日期:2018-11-09 17:28阅读:125来源:国知局
图像的编码方法和装置、存储介质、电子装置与流程

本发明涉及视频编解码领域,具体而言,涉及一种图像的编码方法和装置、存储介质、电子装置。

背景技术

随着计算机技术、通信技术、互联网技术和多媒体技术的迅猛发展,多媒体应用已经深入人们日常生活的方方面面,并逐渐地改变着人们的生活方式。视频是多媒体应用中最为常见和信息量最大的媒体。目前,多媒体业务已从以音频为主发展成以视频为主,无论是电影、电视、视频监控等传统多媒体应用,还是网络流媒体视频、可视电话和视频会议等新兴多媒体应用,视频都是其中最为核心的组成部分。

视频信息具有广泛性、直观性和高效性等特点。根据科学研究显示,人类通过视觉获取的信息约占外界信息总量的70%。相对于听觉信息,一张风景照片可以瞬间清楚地向人们展示某地的风光。与此相对应,作为视觉信息的主要载体,视频天然地携带着丰富的信息。未经压缩的原始视频的数据量非常巨大,例如,对于高清视频,其1秒钟所包含的数据量约为178mb,1分钟则约为10.4gb,一部2小时的高清视频需要占用2.22tb的存储空间。这对视频的存储、传输都带来了巨大的挑战。因此,在存储和传输视频数据之前,对视频数据进行压缩编码显得非常必要。数字视频压缩编码技术发展迅速,从20世纪90年代以来,一直是国内外的研究热点,其主要目标是在一定的计算资源内,在相同的视频重建质量的基础上追求尽可能高的编码效率。

高性能视频编码(highefficiencyvideocoding,hevc)标准是最新一代国际视频编码标准。hevc编码标准已经正式颁布,并已经申请成为国际视频编码标准。hevc综合采纳了全球众多技术提案方的编码技术,其压缩效率平均比h.264/avc提高40%左右。然而,在极大提高编码效率的同时,这些新的编码技术也带来了巨大的编码复杂度。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种图像的编码方法和装置、存储介质、电子装置,以至少解决相关技术中进行编码的复杂度较高的技术问题。

根据本发明实施例的一个方面,提供了一种图像的编码方法,包括:获取图像帧中待编码的编码单元;获取多个第一相似度,并将多个第一相似度之和作为第一参数,其中,第一相似度为编码单元中两个第一图像块之间的相似度;在第一参数满足第一条件、且第一相似度满足第二条件的情况下,将编码单元划分为多个第一图像块,并通过分别对多个第一图像块进行编码来完成对编码单元的编码。

根据本发明实施例的另一方面,还提供了一种图像的编码装置,包括:第一获取单元,用于获取图像帧中待编码的编码单元;第二获取单元,用于获取多个第一相似度,并将多个第一相似度之和作为第一参数,其中,第一相似度为编码单元中两个第一图像块之间的相似度;第一编码单元,用于在第一参数满足第一条件、且第一相似度满足第二条件的情况下,将编码单元划分为多个第一图像块,并通过分别对多个第一图像块进行编码来完成对编码单元的编码。

根据本发明实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。

根据本发明实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。

在本发明实施例中,获取图像帧中待编码的编码单元,并获取多个第一相似度,并将多个第一相似度之和作为第一参数,第一相似度为编码单元中两个第一图像块之间的相似度;在第一参数满足为第一参数设置的第一条件、且第一相似度满足为第一相似度设置的第二条件的情况下,将编码单元划分为多个第一图像块,并通过分别对多个第一图像块进行编码来完成对编码单元的编码,由于不需要进行一系列高复杂度的运算操作,仅仅依靠第一参数和第一相似度即可确定编码模式,可以解决相关技术中进行编码的复杂度较高的技术问题,进而达到降低编码复杂度的技术效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的图像的编码方法的硬件环境的示意图;

图2是根据本发明实施例的一种可选的图像的编码方法的流程图;

图3是根据本发明实施例的一种可选的图像编码方案的示意图;

图4是根据本发明实施例的图像的编码方法的应用环境的示意图;

图5是根据本发明实施例的一种可选的图像编码单元的示意图;

图6是根据本发明实施例的一种可选的图像块的示意图;

图7是根据本发明实施例的一种可选的划分图像块的示意图;

图8是根据本发明实施例的一种可选的划分图像块的示意图;

图9是根据本发明实施例的一种可选的图像的编码方法的流程图;

图10是根据本发明实施例的一种可选的图像的编码装置的示意图;以及

图11是根据本发明实施例的一种终端的结构框图。

具体实施方式

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

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先,在对本发明实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:

hevc:是highefficiencyvideocoding的缩写,是一种新的视频压缩标准,继h.264之后的新一代视频编码标准,可用来替代h.264/avc编码标准,hevc已经成为一种国际标准。

cu:是codingunit的缩写,中文名称是编码单元。

lcu:是largestcodingunit的缩写,中文名称是最大编码单元。

scu:是smallestcodingunit的缩写,中文名称是最小编码单元。

pu:是predictionunit的缩写,中文名称是预测单元。

intra:帧内预测,只采用帧内预测的帧可称为i帧。

had:是hadamardabsolutedifference的缩写,中文名称是哈达马变换的差异和。

sad:是sumofabsolutedifference的缩写,中文名称是绝对误差和。

satd:是sumofabsolutetransformeddifference的缩写,中文名称是经过变换的绝对值误差和。

mad:是meanabsolutedifference的缩写,中文名称是平均绝对差值。

根据本发明实施例的一方面,提供了一种图像的编码方法的方法实施例。

可选地,在本实施例中,上述图像的编码方法可以应用于如图1所示的由服务器101和/或终端103所构成的硬件环境中。如图1所示,服务器101通过网络与终端103进行连接,可用于为终端或终端上安装的客户端提供服务(如游戏服务、应用服务、web服务、媒体服务等),可在服务上或独立于服务器设置数据库105,用于为服务器101提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,终端103并不限定于pc、手机、平板电脑等。

本发明实施例的图像的编码方法可以由服务器101来执行,图2是根据本发明实施例的一种可选的图像的编码方法的流程图,如图2所示,该方法可以包括以下步骤:

步骤s202,服务器获取图像帧中待编码的编码单元。

上述的图像帧可以是单独的一张图像(如照片),或者多张独立的图像中的一张(即图像集中的一张,如媒体照),还可以是视频中的视频帧,后续以视频帧为例进行说明。

步骤s204,服务器获取多个第一相似度,并将多个第一相似度之和作为第一参数,第一相似度为编码单元中两个第一图像块之间的相似度。

步骤s206,服务器在第一参数满足第一条件、且第一相似度满足第二条件的情况下,将编码单元划分为多个第一图像块,并通过分别对多个第一图像块进行编码来完成对编码单元的编码。

hevc的出现极大提高编码效率的同时,这些新的编码技术也带来了巨大的编码复杂度,其中,灵活的块划分技术在hevc中引入了众多的编码模式,使hevc编码器需要遍历每一种编码模式并尝试进行编码以寻找出最佳编码模式,如图3所示,对每一种编码模式进行编码的过程中需要进行帧内预测、运动估计、运动补偿、熵编码等一系列高复杂度的操作,需要消耗巨大的计算资源,给hevc标准的实际推广和应用带来了很大的挑战。

而在本申请的技术方案中,仅仅根据第一相似度和用于表示多个第一相似度之和的第一参数就能确认:是将编码单元作为一个图像整体来进行编码,还是将编码单元划分为多个第一图像块,通过分别对多个第一图像块进行编码来完成对编码单元的编码。从而可以降低编码的复杂度。

在上述实施例中,以本申请实施例的图像的编码方法由服务器101来执行为例进行说明,本申请实施例的图像的编码方法也可以由终端103来执行,其与上述实施例的区别仅在于执行主体由服务器101变为终端103,还可以是由服务器101和终端103共同执行,由服务器101执行步骤s202至步骤s206中的一个或两个步骤,而由终端103执行剩余步骤。其中,终端103执行本发明实施例的图像的编码方法也可以是由安装在其上的客户端来执行。

通过上述步骤s202至步骤s206,获取图像帧中待编码的编码单元,并获取多个第一相似度,并将多个第一相似度之和作为第一参数,第一相似度为编码单元中两个第一图像块之间的相似度;在第一参数满足为第一参数设置的第一条件、且第一相似度满足为第一相似度设置的第二条件的情况下,将编码单元划分为多个第一图像块,并通过分别对多个第一图像块进行编码来完成对编码单元的编码,由于不需要进行一系列高复杂度的运算操作,仅仅依靠第一参数和第一相似度即可确定编码模式,可以解决相关技术中进行编码的复杂度较高的技术问题,进而达到降低编码复杂度的技术效果。

伴随着人们对视频质量的要求不断提高及视频捕获技术和移动互联网的迅速发展,视频媒体加速向高清化、立体化和移动化方向发展,使得相关视频压缩编码技术的高计算复杂度问题显得更为严峻:高清视频和立体视频数据导致视频数据量急剧增长,增加了视频编码的计算复杂度;高清视频和立体视频产生的巨大数据量要求具有更高压缩效率的视频编码技术对其进行压缩,而更高压缩效率的视频编码技术往往意味着更高的编码计算复杂度;移动终端由于计算能力和电源容量的限制,要求编码技术具有较低的计算复杂度,以保证移动终端的续航能力和满足某些视频应用的实时性要求,如高清实况直播和手机视频通话等。

基于如上原因,针对计算资源有限平台和实时性要求较高的视频应用,本申请提供了一种在基本保持hevc视频压缩效率和编码质量的前提下降低hevc编码时的计算复杂度和提高编码速度的hevc编码方法。下面结合图2所示的步骤进一步详述本申请的技术方案。

在步骤s202提供的技术方案中,在移动终端、服务器等设备面临编码需求时,可获取图像帧中待编码的编码单元。

如图4所示的直播场景,在移动终端启动直播应用或采集到直播画面时可获取图像帧中待编码的编码单元,以便移动终端将采集的视频帧编码压缩后进行传输,节约传输流量,降低对带宽的要求;再如图1所示的视频应用场景,为了节省带宽和终端侧消耗的流量,服务器获取图像帧中待编码的编码单元,以预先编码好视频中的视频帧。

在步骤s204提供的技术方案中,响应于编码请求,获取多个第一相似度,并将多个第一相似度之和作为第一参数,第一相似度为编码单元中两个第一图像块之间的相似度。

如图5所示,编码单元包括a、b、c以及d这四个第一图像块,在获取多个第一相似度时,可以计算两个第一图像块的相同位置的像素点的像素值差,如可使用sad、had或satd等像素差值计算方法实现,然后利用像素差计算相似度。下面进行详述。

步骤s1,根据多个第一图像块的位置关系确定多个图像块对,图像块对为多个第一图像块中在目标方向上相邻的两个第一图像块。

如图5所示,对于编码单元,可以理解为是在图像画布中像素点的两个延展方向,如x、y轴方向上像素点的阵列,在划分为多个图像块时,也可按照像素点的方向进行划分,相应地,在x轴方向或y轴方向,即目标方向上相邻的两个第一图像块可以作为一个图像块对。如图5所示的(a,b)(c,d)(a,c)(b,d)。

步骤s2,根据每个图像块对中两个第一图像块的像素点的像素值确定每个图像块对的第一相似度,得到多个图像块对的多个第一相似度。

可选地,根据每个图像块对中两个第一图像块的像素点的像素值确定每个图像块对的第一相似度包括:

步骤s21,获取与图像块对对应的第一矩阵,第一矩阵的列数与第一图像块在第一方向(如x方向)上的像素点数量相同,第一矩阵的行数与第一图像块在第二方向(如y方向)上的像素点数量相同,第一方向和第二方向为第一图像块上的两个不同的方向,第一矩阵中任一位置的元素的数值为图像块对中的一个第一图像块中该位置的像素点的像素值与图像块对中的另一个第一图像块中该位置的像素点的像素值之间的差值。

如图6所示,以两个第一图像块均为“4*4”的图像块为例,上述任一位置即为:11、12、13、14、21、22、23、24、31、32、33、34、41、42、43、44中的一个位置,如用一个图像块中位置为“11”的像素点的像素值减去另一个图像块中位置为“11”的像素点的像素值得到的差值即第一矩阵中位置为“11”(即第一行第一列)的元素的值,类似地,对于第一矩阵中其他位置的元素的值,也可采用相同方式求取。

步骤s22,获取第一矩阵与第二矩阵之间的矩阵乘积为第三矩阵,第二矩阵是元素的值为1和/或元素的值为-1的正交矩阵。

上述的第二矩阵可以为哈达玛(hadamard)矩阵,是由+1和-1元素构成的且满足hn*hn’=ni(这里hn’为hn的转置,i为单位方阵)n阶方阵;其行数与第一矩阵的列数相同,列数与第一矩阵的行数相同。

步骤s23,将第三矩阵中各个元素的数值的绝对值之和作为第一相似度。

在步骤s206提供的技术方案中,在第一参数满足为第一参数设置的第一条件、且第一相似度满足为第一相似度设置的第二条件的情况下,将编码单元划分为多个第一图像块,并通过分别对多个第一图像块进行编码来完成对编码单元的编码。

上述的第一条件、第二条件,可以包括预先设置的阈值(如第一阈值和第二阈值)和与该阈值之间的数值关系,在判断是否满足与该阈值之间的数值关系时,可以将得到的第一参数、每个第一相似度与对应的阈值相比较,以判断是否满足对应条件中的数值大小关系(如大于、小于、等于),在判断是否满足与该阈值之间的数值关系时,也可以是预先设置一个数值范围,数值范围的两端即上述阈值,此时相当于第一条件包括两个为数值范围的上下限的第一阈值,第二条件包括两个为数值范围的上下限的第二阈值,可以将得到的第一参数、每个第一相似度与对应的数值范围相比较,以判断是否满足对应条件中的数值关系(如在数值范围内、不在数值范围内)。

为了实现步骤s206中的技术方案,可以预先或者在执行步骤s206时,可以按照如下方式获取相应的阈值:通过目标公式计算与编码单元的图像尺寸对应的第一阈值,并通过目标公式计算与第一图像块的图像尺寸对应的第二阈值,其中,在所使用的一个图像尺寸大于所使用的另一个图像尺寸的情况下,目标公式计算出的对应于一个图像尺寸的阈值大于对应于另一个图像尺寸的阈值。可选地,阈值是相关于图像尺寸、量化参数的增函数。

上述的目标公式可以为线性公式、非线性公式、离散公式,以线性公式为例,阈值y=kx+b,其中,y表示阈值,k表示放大系数,b为常数,x表示图像尺寸,若k=2,b=10,如图6所示的第一图像块的大小为“4*4”,那么对应的第二阈值为42,相应地,编码单元的大小为“8*8”,那么对应的第一阈值为138。

在一个可选的实施例中,在第一参数满足为第一参数设置的第一条件、且第一相似度满足为第一相似度设置的第二条件的情况下,将编码单元划分为多个第一图像块包括:在第一参数与第一阈值之间的数值关系满足第一条件所指示的数值关系、且每个第一相似度与第二阈值之间的数值关系满足第二条件所指示的数值关系的情况下,将编码单元划分为多个第一图像块,第一阈值大于第二阈值。

可选地,在获取多个第一相似度之和为第一参数之后,在第一参数与第一阈值之间的数值关系不满足第一条件所指示的数值关系的情况下,将编码单元划分为多个第一图像块,并通过分别对多个第一图像块进行编码来完成对编码单元的编码;在第一参数与第一阈值之间的数值关系满足第一条件所指示的数值关系且至少一个第一相似度与第二阈值之间的数值关系不满足第二条件所指示的数值关系的情况下,将编码单元作为一个图像整体来进行编码。

在上述实施例中,将编码单元划分为多个第一图像块包括:按照目标图像尺寸(如“4*4”)将编码单元划分为多个第一图像块,每个第一图像块的图像尺寸为目标图像尺寸,任意两个第一图像块所包括的像素点不完全相同。

可选地,将编码单元划分为多个第一图像块包括但不局限于如下两种实现方式:1)任意两个第一图像块之间不存在共享的像素点,且相邻的两个第一图像块之间共享边界,如图7所示的a和b;2)相邻的两个第一图像块存在共享的像素点,但是所包括的像素点不完全相同,如图8所示的实线圈出的图像块a和虚线圈出的图像块b之间存在交叉的像素点。

在又一个可选的实施例中,若对编码单元进行了划分,那么得到的第一图像模块即相当于新的编码单元,也可按照前述方式判断是否可进行进一步划分,如下:

步骤1,在将编码单元划分为多个第一图像块之后,获取多个第二相似度,并将多个第二相似度之和作为第二参数,第二相似度为第一图像块中两个子图像块之间的相似度,与第一相似度的求取方式类似;

步骤2,在第二参数与第三阈值之间的数值关系满足第一条件所指示的数值关系、且每个第二相似度与第四阈值之间的数值关系满足第二条件所指示的数值关系的情况下,将第一图像块划分为多个子图像块,并通过分别对多个子图像块进行编码来完成对第一图像块的编码,第三阈值与第四阈值也可按照前述计算公式计算;

步骤3,在第二参数与第三阈值之间的数值关系不满足第一条件所指示的数值关系的情况下,将第一图像块划分为多个子图像块,并通过分别对多个子图像块进行编码来完成对第一图像块的编码,第三阈值与第四阈值也可按照前述计算公式计算;

步骤4,在第二参数与第三阈值之间的数值关系满足第一条件所指示的数值关系且至少一个第二相似度与第四阈值之间的数值关系不满足第二条件所指示的数值关系的情况下,将第一图像块作为一个图像整体采用帧内预测模式(即在空间域上进行的预测编码算法,可以除去相邻块之间的空间冗余度,取得更为有效的压缩)来进行编码。

对于得到的第二图像块,还可按照上述方式判断是否可以进一步划分,直至得到的图像块为标准允许的最小图像块。

hevc是新一代高效视频编码标准,相比原有的h.264/avc标准,hevc采用了更多、更新、更灵活的编码技术,在相同视频质量条件下,hevc可进一步降低码率40%,但代价是hevc的计算复杂度远高于h.264/avc,极大的增加了实时通信的难度,采用本申请的技术方案,通过减少帧内预测模式选择,可以降低编码的计算复杂度。

作为一种可选的实施例,下面结合具体的实施方式进一步详述本申请的技术方案。

hevc延续了原有的基于块的视频压缩编码框架,编码流程如图3所示,为了获得更高的压缩效率,hevc采用了更灵活的块结构,其中,编码单元cu类似于h.264/avc中的宏块(mb,macroblock)概念,相比于h.264/avc中的16x16固定宏块大小,hevc采用了树状cu结构,可以灵活选择64*64、32*32、16*16、8*8等多种编码单元。

在进行帧内预测时,可利用当前块相邻的上边一行像素和左边一列像素进行预测,hevc标准中采用了包括33种方向预测在内的35种预测模式,运算复杂度远大于h.264/avc标准,因此帧内预测cu的快速模式选择算法优化非常重要。在进行cu大小的选择时,对于帧内预测,如果图像内容平缓,适合采用大cu预测,有利于变换能量集中,获得更好的压缩效果;否则,更适合进一步块划分,采用小cu预测。

对于i帧,若从最大编码单元(lcu)开始,对每个cu执行cu模式选择流程,则i帧需要尝试所有可能的cu划分,复杂度非常高;若利用图像的空域相关性,如果相邻块的cu均采用了较大块编码,则对当前cu不再尝试进行划分,也就是说,如果当前cu的相邻cu,都没有选择进一步划分的子cu编码模式,则对当前帧不再尝试进一步划分,其缺点实图像相邻块相关性不大,利用相邻块的预测模式选择不做帧内预测模式的算法,压缩效率损失较大;若先计算所有像素梯度,根据梯度选择终止cu的进一步划分,则梯度计算的复杂度较高。

帧内预测是利用像素之间的空域相关性对图像进行压缩,如果像素之间相似度高,则预测残差较小,反之则预测残差较大,压缩效率较低。

以一个64*64大小的cu为例,将当前cu划分为四个32x32的块(即第一图像块),如图5所示,分别计算(a,b)(c,d)(a,c)(b,d)块之间相似度,可利用绝对误差和算法sad、had实现,还可通过其他像素差值计算方法实现,例如hadamard变换算法satd。其中,had是两个块逐像素相减后的残差经过哈达玛变换后的系数的绝对值之和,比直接计算两个块逐个像素的残差之和更能反映两个图像块之间相似度,且运算复杂度较低,以此为例,分别计算(a,b)(c,d)(a,c)(b,d)块之间的had,并求和记为sumhad。

采用a、b、c、d四个相邻但互不重叠的块划分方式,对于一个64*64块,划分为四个32*32块;此处也可以采用重叠的划分方式,例如对一个64*64的块,a是从左上角第一个像素开始60*60的块;b是从第一行第5个像素开始的60*60的块;c是从第5行第一个像素开始的块;d是从第5行第5个像素开始的块。此外,不一定划分为四个块,例如一个64*64的块,可以划分为16个16x16的块等。

对于i帧,如果sumhad较小,则说明当前cu内部像素之间的相似度较高,适合整体采用帧内预测模式;反之,说明当前cu内部像素之间的相似度较低,可以尝试进一步划分。如图9所示:

步骤902,计算当前cu的四个子cu(或称图像块,即前述第一图像块)中两两之间的相似度(即前述第一相似度)。

将当前cu分成4个正方形的子cu,如图5所示,首先将两两子cu逐个像素相减。然后对像素的差值做had变换(即通过前述第二矩阵实现),变换后的系数的绝对值之和,就是这两个子cu的had相似度,分别计算(a,b)、(c,d)、(a,c)、(b,d)之间相似度,得到hadab、hadcd、hadac、hadbd。当前cu的相似度sumhad(即第一参数)为四组子块之间的had相似度之和,可表示为:

sumhad=hadab+hadcd+hadac+hadbd。

步骤904,根据当前cu的四个子cu两两之间的相似度之和sumhad,判断是否对当前cu进行不划分的编码,如果是则进入步骤s906;否则进入步骤s910,划分为四个子cu进行编码。

设置和cu大小、量化参数相关的阈值1(即第一阈值),如果sumhad小于阈值1(即满足第一条件指示的数值关系),则可以尝试不划分编码;否则不再尝试不划分编码,直接进行cu划分。如y=kx+pq+b,其中,p为量化参数q的放大比例系数,其于参数含义可参见前述内容。

一种可选的实现方式是:设置大小为64*64、32*32的cu对应的阈值1为th64(qp)、th32(qp),其中qp为量化参数。对于大小为16*16、8*8的cu不设置阈值1,16*16、8*8的cu都需要尝试不划分编码;也可以理解为th16(qp)、th8(qp)为无限大的值。

其中th64(qp)、th32(qp)为qp的增函数,量化参数qp越大,阈值1越大,越多的尝试不划分的编码模式。

步骤906,cu不划分直接编码,选择最优预测模式并计算编码代价(即率失真代价),然后进入步骤908。

编码代价结算可采用公式:cost=d+λr;其中,cost为编码代价,d表示该编码单元对应的图像编码块的失真程度,d可以采用绝对差值和sad运算获取,λ为拉格朗日常数,r表示编码单元对应的图像编码块占用的比特数目。

步骤s908,根据当前cu的四个子cu两两之间的相似度,判断当前cu是否可以进一步划分,如果可以划分,则进入步骤s910,否则执行步骤s914,直接返回步骤s906中的cu编码代价。

设置和cu大小、量化参数相关的阈值2(即第二阈值),如果只要4个中的任何一个had相似度大于阈值2,则无需进一步划分;否则需要进一步划分。

一种可选的实现方式是:为不同cu大小设置不同阈值函数,其中函数变量是量化参数,th64(qp)、th32(qp)、th16(qp)。其中每一个函数都是量化参数qp的增函数,对于相同cu,量化参数qp越大,则阈值越大,越容易提前终止cu划分。

步骤910,执行子cu模式选择流程,将当前cu划分为四个子cu,对四个子cu分别进行模式选择,并进行编码,计算四个子cu编码代价之和。然后进入步骤s912。

步骤912,如果当前cu已尝试不划分编码,则比较不划分编码和划分编码的编码代价,选择最小编码代价并返回;如果当前cu没有尝试不划分编码,则直接返回划分为子cu编码模式的编码代价。

步骤914,返回cu编码代价。

采用本申请的技术方案,利用cu的相似性减少帧内预测cu划分模式,可以提高编码速度。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

根据本发明实施例的另一个方面,还提供了一种用于实施上述图像的编码方法的图像的编码装置。图10是根据本发明实施例的一种可选的图像的编码装置的示意图,如图10所示,该装置可以包括:

第一获取单元1001,用于获取图像帧中待编码的编码单元获。

上述的图像帧可以是单独的一张图像,或者多张独立的图像中的一张,还可以是视频中的视频帧,后续以视频帧为例进行说明。

第二获取单元1003,用于获取多个第一相似度,并将多个第一相似度之和作为第一参数,其中,第一相似度为编码单元中两个第一图像块之间的相似度。

第一编码单元1005,用于在第一参数满足为第一参数设置的第一条件、且第一相似度满足为第一相似度设置的第二条件的情况下,将编码单元划分为多个第一图像块,并通过分别对多个第一图像块进行编码来完成对编码单元的编码。

hevc的出现极大提高编码效率的同时,这些新的编码技术也带来了巨大的编码复杂度,其中,灵活的块划分技术在hevc中引入了众多的编码模式,使hevc编码器需要遍历每一种编码模式并尝试进行编码以寻找出最佳编码模式,如图3所示,对每一种编码模式进行编码的过程中需要进行一系列的帧内预测、运动估计、运动补偿、熵编码等一系列高复杂度的操作,需要消耗巨大的计算资源,给hevc标准的实际推广和应用带来了很大的挑战。

而在本申请的技术方案中,仅仅根据第一相似度和用于表示多个第一相似度之和的第一参数就能确认:是将编码单元作为一个图像整体来进行编码,还是将编码单元划分为多个第一图像块,通过分别对多个第一图像块进行编码来完成对编码单元的编码。从而可以降低编码的复杂度。

需要说明的是,该实施例中的第一获取单元1001可以用于执行本申请实施例中的步骤s202,该实施例中的第二获取单元1003可以用于执行本申请实施例中的步骤s204,该实施例中的第一编码单元1005可以用于执行本申请实施例中的步骤s206。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。

通过上述模块,获取图像帧中待编码的编码单元,并获取多个第一相似度,并将多个第一相似度之和作为第一参数,第一相似度为编码单元中两个第一图像块之间的相似度;在第一参数满足为第一参数设置的第一条件、且第一相似度满足为第一相似度设置的第二条件的情况下,将编码单元划分为多个第一图像块,并通过分别对多个第一图像块进行编码来完成对编码单元的编码,由于不需要进行一系列高复杂度的运算操作,仅仅依靠第一参数和第一相似度即可确定编码模式,可以解决相关技术中进行编码的复杂度较高的技术问题,进而达到降低编码复杂度的技术效果。

伴随着人们对视频质量的要求不断提高及视频捕获技术和移动互联网的迅速发展,视频媒体加速向高清化、立体化和移动化方向发展,使得相关视频压缩编码技术的高计算复杂度问题显得更为严峻:高清视频和立体视频数据导致视频数据量急剧增长,增加了视频编码的计算复杂度;高清视频和立体视频产生的巨大数据量要求具有更高压缩效率的视频编码技术对其进行压缩,而更高压缩效率的视频编码技术往往意味着更高的编码计算复杂度;移动终端由于计算能力和电源容量的限制,要求编码技术具有较低的计算复杂度,以保证移动终端的续航能力和满足某些视频应用的实时性要求,如高清实况直播和手机视频通话等。

基于如上原因,针对计算资源有限平台和实时性要求较高的视频应用,本申请提供了一种在基本保持hevc视频压缩效率和编码质量的前提下降低hevc编码时的计算复杂度和提高编码速度的hevc编码方法。

在上述实施例中,第一编码单元还可用于:在第一参数与第一阈值之间的数值关系满足第一条件所指示的数值关系、且每个第一相似度与第二阈值之间的数值关系满足第二条件所指示的数值关系的情况下,将编码单元划分为多个第一图像块,其中,第一阈值大于第二阈值。

可选地,第一编码单元还可用于在获取多个第一相似度之和为第一参数之后,在第一参数与第一阈值之间的数值关系不满足第一条件所指示的数值关系的情况下,将编码单元划分为多个第一图像块,并通过分别对多个第一图像块进行编码来完成对编码单元的编码;本申请的装置还可包括:第二编码单元,用于在第一参数与第一阈值之间的数值关系满足第一条件所指示的数值关系且至少一个第一相似度与第二阈值之间的数值关系不满足第二条件所指示的数值关系的情况下,将编码单元作为一个图像整体来进行编码。

可选地,本申请的装置还可包括:计算单元,用于在将编码单元划分为多个第一图像块之前,通过目标公式计算与编码单元的图像尺寸对应的第一阈值,并通过目标公式计算与第一图像块的图像尺寸对应的第二阈值,其中,在所使用的一个图像尺寸大于所使用的另一个图像尺寸的情况下,目标公式计算出的对应于一个图像尺寸的阈值大于对应于另一个图像尺寸的阈值。

可选地,上述第二获取单元可包括:第一确定模块,用于根据多个第一图像块的位置关系确定多个图像块对,其中,图像块对为多个第一图像块中在目标方向上相邻的两个第一图像块;第二确定模块,用于根据每个图像块对中两个第一图像块的像素点的像素值确定每个图像块对的第一相似度,得到多个图像块对的多个第一相似度。

上述的第二确定模块还可用于:获取与图像块对对应的第一矩阵,其中,第一矩阵的列数与第一图像块在第一方向上的像素点数量相同,第一矩阵的行数与第一图像块在第二方向上的像素点数量相同,第一方向和第二方向为第一图像块上的两个不同的方向,第一矩阵中任一位置的元素的数值为图像块对中的一个第一图像块中任一位置的像素点的像素值与图像块对中的另一个第一图像块中任一位置的像素点的像素值之间的差值;获取第一矩阵与第二矩阵之间的矩阵乘积为第三矩阵,其中,第二矩阵是元素的值为1和/或元素的值为-1的正交矩阵;将第三矩阵中各个元素的数值的绝对值之和作为第一相似度。

本申请的第一编码单元还可用于:按照目标图像尺寸将编码单元划分为多个第一图像块,其中,每个第一图像块的图像尺寸为目标图像尺寸,任意两个第一图像块所包括的像素点不完全相同。

可选地,第二获取单元还可用于在将编码单元划分为多个第一图像块之后,获取多个第二相似度,并将多个第二相似度之和作为第二参数,其中,第二相似度为第一图像块中两个子图像块之间的相似度;第一编码单元还可用于在第二参数与第三阈值之间的数值关系满足第一条件所指示的数值关系、且每个第二相似度与第四阈值之间的数值关系满足第二条件所指示的数值关系的情况下,将第一图像块划分为多个子图像块,并通过分别对多个子图像块进行编码来完成对第一图像块的编码;第一编码单元还可用于在第二参数与第三阈值之间的数值关系不满足第一条件所指示的数值关系的情况下,将第一图像块划分为多个子图像块,并通过分别对多个子图像块进行编码来完成对第一图像块的编码;第二编码单元还可用于在第二参数与第三阈值之间的数值关系满足第一条件所指示的数值关系且至少一个第二相似度与第四阈值之间的数值关系不满足第二条件所指示的数值关系的情况下,将第一图像块作为一个图像整体来进行编码。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。

根据本发明实施例的另一个方面,还提供了一种用于实施上述图像的编码方法的服务器或终端。

图11是根据本发明实施例的一种终端的结构框图,如图11所示,该终端可以包括:一个或多个(图11中仅示出一个)处理器1101、存储器1103、以及传输装置1105,如图11所示,该终端还可以包括输入输出设备1107。

其中,存储器1103可用于存储软件程序以及模块,如本发明实施例中的图像的编码方法和装置对应的程序指令/模块,处理器1101通过运行存储在存储器1103内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的图像的编码方法。存储器1103可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1103可进一步包括相对于处理器1101远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述的传输装置1105用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1105包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1105为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

其中,具体地,存储器1103用于存储应用程序。

处理器1101可以通过传输装置1105调用存储器1103存储的应用程序,以执行下述步骤:

获取图像帧中待编码的编码单元;

获取多个第一相似度,并将多个第一相似度之和作为第一参数,其中,第一相似度为编码单元中两个第一图像块之间的相似度;

在第一参数满足为第一参数设置的第一条件、且第一相似度满足为第一相似度设置的第二条件的情况下,将编码单元划分为多个第一图像块,并通过分别对多个第一图像块进行编码来完成对编码单元的编码。

处理器1101还用于执行下述步骤:

获取与图像块对对应的第一矩阵,其中,第一矩阵的列数与第一图像块在第一方向上的像素点数量相同,第一矩阵的行数与第一图像块在第二方向上的像素点数量相同,第一方向和第二方向为第一图像块上的两个不同的方向,第一矩阵中任一位置的元素的数值为图像块对中的一个第一图像块中任一位置的像素点的像素值与图像块对中的另一个第一图像块中任一位置的像素点的像素值之间的差值;

获取第一矩阵与第二矩阵之间的矩阵乘积为第三矩阵,其中,第二矩阵是元素的值为1和/或元素的值为-1的正交矩阵;

将第三矩阵中各个元素的数值的绝对值之和作为第一相似度。

采用本发明实施例,获取图像帧中待编码的编码单元,并获取多个第一相似度,并将多个第一相似度之和作为第一参数,第一相似度为编码单元中两个第一图像块之间的相似度;在第一参数满足为第一参数设置的第一条件、且第一相似度满足为第一相似度设置的第二条件的情况下,将编码单元划分为多个第一图像块,并通过分别对多个第一图像块进行编码来完成对编码单元的编码,由于不需要进行一系列高复杂度的运算操作,仅仅依靠第一参数和第一相似度即可确定编码模式,可以解决相关技术中进行编码的复杂度较高的技术问题,进而达到降低编码复杂度的技术效果。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

本领域普通技术人员可以理解,图11所示的结构仅为示意,终端可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图11其并不对上述电子装置的结构造成限定。例如,终端还可包括比图11中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图11所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行图像的编码方法的程序代码。

可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

s12,获取图像帧中待编码的编码单元获取编码请求,其中,编码请求用于请求对图像帧中的编码单元进行编码;

s14,响应于编码请求,获取多个第一相似度,并将多个第一相似度之和作为第一参数,其中,第一相似度为编码单元中两个第一图像块之间的相似度;

s16,在第一参数满足为第一参数设置的第一条件、且第一相似度满足为第一相似度设置的第二条件的情况下,将编码单元划分为多个第一图像块,并通过分别对多个第一图像块进行编码来完成对编码单元的编码。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:

s22,获取与图像块对对应的第一矩阵,其中,第一矩阵的列数与第一图像块在第一方向上的像素点数量相同,第一矩阵的行数与第一图像块在第二方向上的像素点数量相同,第一方向和第二方向为第一图像块上的两个不同的方向,第一矩阵中任一位置的元素的数值为图像块对中的一个第一图像块中任一位置的像素点的像素值与图像块对中的另一个第一图像块中任一位置的像素点的像素值之间的差值;

s24,获取第一矩阵与第二矩阵之间的矩阵乘积为第三矩阵,其中,第二矩阵是元素的值为1和/或元素的值为-1的正交矩阵;

s26,将第三矩阵中各个元素的数值的绝对值之和作为第一相似度。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

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

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

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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