视频编码方法、装置、计算机可读存储介质和计算机设备

文档序号:1559110 发布日期:2020-01-21 浏览:10次 >En<

阅读说明:本技术 视频编码方法、装置、计算机可读存储介质和计算机设备 (Video encoding method, video encoding device, computer-readable storage medium, and computer apparatus ) 是由 崔静 张涛 谷沉沉 于 2019-10-22 设计创作,主要内容包括:本申请涉及一种视频编码方法、装置、计算机可读存储介质和计算机设备,所述方法包括:在多种多叉树划分模式中,当排除四叉树划分模式时,进一步选取目标划分模式;按照所述目标划分模式对待编码视频帧中的编码块进行多叉树划分,得到所述编码块的多个编码单元;根据多个所述编码单元所包含的像素的像素值,获取多个所述编码单元各自的像素梯度;当多个所述编码单元各自的像素梯度之间的差异符合设定条件,则针对所述编码块中的多个所述编码单元进行编码。本申请提供的方案可以提升视频编码的编码效率。(The present application relates to a video encoding method, apparatus, computer-readable storage medium and computer device, the method comprising: in the multiple multi-branch tree division modes, when the quad-tree division mode is eliminated, a target division mode is further selected; performing multi-branch tree division on coding blocks in a video frame to be coded according to the target division mode to obtain a plurality of coding units of the coding blocks; acquiring the pixel gradient of each of the coding units according to the pixel value of the pixel contained in the coding units; and when the difference between the pixel gradients of the coding units meets a set condition, the coding units in the coding block are coded. The scheme provided by the application can improve the coding efficiency of video coding.)

视频编码方法、装置、计算机可读存储介质和计算机设备

技术领域

本申请涉及视频处理技术领域,特别是涉及一种视频编码方法、装置、计算机可读存储介质和计算机设备。

背景技术

随着视频压缩技术的发展,出现了能高效压缩视频的预测编码技术。预测编码技术中,主要是将视频中的每帧图像划分为多个编码树单元(Coding Tree Unit,CTU),编码树单元可以继续划分为若干编码块。针对各个编码块,通常先进行四叉树划分。然后,再对四叉树划分出的各个编码单元(Coding Unit,CU),依次遍历二叉树划分和三叉树划分等多叉树划分模式的率失真代价,直至确定率失真代价较小的优选划分结构,最后将基于最优划分结构划分编码块的编码树单元进行预测编码。

然而,在上述的编码过程中,需要首先对按照某个多叉树划分模式划分出编码单元分别进行预测编码,预测出各个编码单元的编码值,然后再利用对各个编码单元的编码值进行解码得到的图像相对于实际图像所损失的像素值得到率失真代价,最后再根据率失真代价判断当前的多叉树划分模式是否为优选的多叉树划分模式,确定优选的多叉树划分模式之后,则采用当前的多叉树划分模式进行预测编码所得到的编码值对相邻的编码块进行预测编码。由此可见计算多叉树划分模式的率失真代价的过程非常耗时,基于率失真代价的编码方式严重影响视频编码的编码效率。

因此,目前的编码方式存在着编码效率较低的问题。

发明内容

基于此,有必要针对目前的编码方式存在着编码效率较低的问题,提供一种视频编码方法、装置、计算机可读存储介质和计算机设备。

一种视频编码方法,包括:

在多种多叉树划分模式中,当排除四叉树划分模式时,进一步选取目标划分模式;所述目标划分模式为二叉树划分模式或三叉树划分模式;

按照所述目标划分模式对待编码视频帧中的编码块进行多叉树划分,得到所述编码块的多个编码单元;

根据多个所述编码单元所包含的像素的像素值,获取多个所述编码单元各自的像素梯度;

当多个所述编码单元各自的像素梯度之间的差异符合设定条件,则针对所述编码块中的多个所述编码单元进行编码,得到所述编码块的编码结果,并根据所述编码块的编码结果对与所述编码块相邻的其他编码块进行编码。

一种视频编码装置,包括:

模式选取模块,用于在多种多叉树划分模式中,当排除四叉树划分模式时,进一步选取目标划分模式;所述目标划分模式为二叉树划分模式或三叉树划分模式;

划分模块,用于按照所述目标划分模式对待编码视频帧中的编码块进行多叉树划分,得到所述编码块的多个编码单元;

梯度获取模块,用于根据多个所述编码单元所包含的像素的像素值,获取多个所述编码单元各自的像素梯度;

编码模块,用于当多个所述编码单元各自的像素梯度之间的差异符合设定条件,则针对所述编码块中的多个所述编码单元进行编码,得到所述编码块的编码结果,并根据所述编码块的编码结果对与所述编码块相邻的其他编码块进行编码。

一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:

在多种多叉树划分模式中,当排除四叉树划分模式时,进一步选取目标划分模式;所述目标划分模式为二叉树划分模式或三叉树划分模式;

按照所述目标划分模式对待编码视频帧中的编码块进行多叉树划分,得到所述编码块的多个编码单元;

根据多个所述编码单元所包含的像素的像素值,获取多个所述编码单元各自的像素梯度;

当多个所述编码单元各自的像素梯度之间的差异符合设定条件,则针对所述编码块中的多个所述编码单元进行编码,得到所述编码块的编码结果,并根据所述编码块的编码结果对与所述编码块相邻的其他编码块进行编码。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:

在多种多叉树划分模式中,当排除四叉树划分模式时,进一步选取目标划分模式;所述目标划分模式为二叉树划分模式或三叉树划分模式;

按照所述目标划分模式对待编码视频帧中的编码块进行多叉树划分,得到所述编码块的多个编码单元;

根据多个所述编码单元所包含的像素的像素值,获取多个所述编码单元各自的像素梯度;

当多个所述编码单元各自的像素梯度之间的差异符合设定条件,则针对所述编码块中的多个所述编码单元进行编码,得到所述编码块的编码结果,并根据所述编码块的编码结果对与所述编码块相邻的其他编码块进行编码。

上述视频编码方法、装置、计算机可读存储介质和计算机设备,通过在排除四叉树划分模式的时候选取二叉树划分模式或三叉树划分模式作为目标划分模式,采用目标划分模式将编码块划分为多个编码单元,然后根据编码块中各个像素的像素值,得到多个编码单元各自的像素梯度,当多个编码单元各自的像素梯度之间的差异符合设定条件时,说明采用当前的目标划分模式的率失真代价较小,目标划分模式可以为优选的多叉树划分模式,由此可以直接针对编码块中的多个编码单元进行编码,而无须在编码后再额外计算率失真代价并基于率失真代价判断当前是否优选的多叉树划分模式,在整个编码过程中节省了针对多叉树划分模式进行计算率失真代价的计算量,提升了视频编码的编码效率。

附图说明

图1为一个实施例中视频编码方法的应用环境图;

图2为一种相关技术的多叉树划分流程的示意图;

图3为一个实施例中视频编码方法的流程示意图;

图4A为一个对待编码视频帧划分编码块的示意图;

图4B为一个按照三叉树划分模式进行多叉树划分的示意图;

图4C为一个按照二叉树划分模式进行多叉树划分的示意图;

图5A是一个实施例的一种基于编码单元划分的区间计算全局梯度的示意图;

图5B是一个实施例的一种基于编码单元的相邻像素计算局部梯度的示意图;

图6是一个实施例的一种划分二叉树单元区间的示意图;

图7是一个实施例的一种预先决策多叉树划分模式的流程示意图;

图8是一个实施例的一种具体的视频编码方法的流程示意图;

图9为一个实施例中一种视频编码装置的结构框图;

图10为一个实施例中一种计算机设备的结构框图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

图1为一个实施例中的一种视频编码方法的应用环境图。参照图1,该视频编码方法可以应用于视频处理系统。该视频处理系统包括终端110和服务器120。终端110和服务器120通过网络连接。其中,终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

需要说明的是,本实施例提供的视频编码方法,可以应用于需要采用视频压缩技术的应用场景中,例如,终端之间通过即时通讯软件进行视频聊天的应用场景;又例如,终端或服务器需要存储大量视频的应用场景。通过本实施例提供的视频编码方法,可以提升视频编码的编码效率,加快视频的压缩速度。

需要进一步说明的是,预测编码技术是利用视频中图像帧的像素存在相关性的特点对像素进行预测编码从而实现视频压缩的技术。预测编码技术通常包含有帧间预测和帧内预测两种方式。

帧间预测主要是利用连续的图像帧之间的相关性预测像素的编码值。帧内预测则主要是利用一帧图像帧相互邻近的像素之间的相关性预测像素的编码值。对于帧内预测的预测编码方式,为了提升预测编码的编码效率,需要先将图像帧划分为多个编码块,分别对多个编码块同时进行编码。

为了进一步提升编码的编码效率,目前采用了更为复杂的划分方式。例如,目前较为流行的视频压缩标准VVC(Versatile Video Coding,多功能视频编码),采用了复杂和多样的多叉树划分(Multiple-type Tree,MT)的划分模式。其中,多叉树划分模式包含有二叉树划分(Binary Tree,BT)模式、三叉树划分(Triple Tree,TT)模式和四叉树划分(QuadTree,QT)模式等。

图2示出了一种相关技术的多叉树划分流程的示意图。如图所示,对编码块首先进行帧内预测编码,基于预测编码的结果判断是否需要进行四叉树划分,如否,则进一步判断是否需要进行二叉树、三叉树等多叉树划分。当需要进行进一步的划分,则依次遍历在水平方向的三叉树划分模式、垂直方向的三叉树划分模式、水平方向的二叉树划分模式、垂直方向的二叉树划分模式,直至得到编码单元的最优划分结构。在遍历过程中,均需要对多个方向的二叉树划分模式和多个方向的三叉树划分模式的划分结构进行预测编码、率失真代价、判断的处理,计算量较大,影响了视频编码的编码效率。

针对于该问题,本实施例提供一种视频编码方法提前决策出进行多叉树划分的多叉树划分模式,减少视频编码过程的计算量,从而提升视频编码的编码效率,加快视频的压缩速度。

如图3所示,在一个实施例中,提供了一种视频编码方法。本实施例主要以该方法应用于上述图1中的终端110来举例说明。参照图3,该视频编码方法具体包括如下步骤:

S302,在多种多叉树划分模式中,当排除四叉树划分模式时,进一步选取目标划分模式;所述目标划分模式为二叉树划分模式或三叉树划分模式。

其中,目标划分模式可以为当前用于进行多叉树划分的多叉树划分模式。在针对编码块进行多叉树划分时,通常是首先采用四叉树划分划分模式进行划分,将编码块划分成四个均等的编码单元,并对该四个编码单元进行帧内预测编码得到编码值,计算编码值的率失真代价,在四叉树划分模式所得到的率失真代价不符合预设的代价阈值时,再进一步遍历二叉树划分模式和三叉树划分模式。在本实施中,可以无须遍历二叉树划分模式或三叉树划分模式,而只需要在二叉树划分模式和三叉树划分模式中选取任意一种多叉树划分模式。实际应用中,将编码块划分为越多的编码单元,率失真代价越小,因此,可以优先选取三叉树划分模式作为上述的目标划分模式。当然,本领域技术人员也可以优先采用二叉树划分模式作为上述的目标划分模式。

具体实现中,可以在确定四叉树划分模式的率失真代价不符合预设的代价阈值时,进一步在二叉树划分模式和三叉树划分模式中选取任意一个模式作为上述的目标划分模式,以进行后续的多叉树划分。

S304,按照所述多叉树划分模式对待编码视频帧中的编码块进行多叉树划分,得到所述编码块的多个编码单元。

其中,待编码视频帧可以为视频中的待进行预测编码的一帧或多帧图像。

其中,编码块可以为对待编码视频帧进行划分后得到的图像。

具体实现中,当选取二叉树划分模式作为上述的目标划分模式,则可以将编码块划分为均等的至少两个编码单元。当选取三叉树划分模式作为上述的目标划分模式,则可以将编码块划分为至少三个编码单元。

图4A示出了一种编码块的示意图。可以将待编码视频帧402划分为尺寸相同的多个编码块404。图4B和图4C是分别按照三叉树划分模式和二叉树划分模式对编码块进行多叉树划分的示意图。如图4B所示的三叉树划分模式,假设划分方向为垂直方向,该模式将编码块划分为在编码块内水平方向排列的三个编码单元,三个编码单元占比为1:2:1。如图4C所示的二叉树划分模式,假设划分方向为垂直方向,该模式将编码块划分为在编码块内水平方向排列的两个编码单元,两个编码单元占比为1:1。

实际应用中,可以选取水平方向或垂直方向作为划分方向,本实施例对具体的划分方向不作限制。

S306,根据多个所述编码单元所包含的像素的像素值,获取多个所述编码单元各自的像素梯度。

其中,像素梯度可以反映至少两个像素之间在特定方向上的像素值的变化强度。

具体实现中,终端110可以首先获取编码单元中的各个像素的像素值,然后根据各个像素的像素值,计算出各个编码单元中各个像素在特定方向上的像素梯度。计算编码单元的像素梯度的方式可以有多种。

其中一种计算像素梯度的方式中,可以根据各个像素的像素值,计算出编码单元在特定方向上的全局梯度,作为上述的像素梯度。具体地,可以首先在多个方向中选取一个方向作为目标方向,并按照目标方向将编码单元划分为至少两个区间,使得该至少两个区间之间在编码单元内按照目标方向排列。然后,针对每个区间中所包含像素的像素值进行聚合,得到该区间的像素聚合值。最后,根据各个区间的像素聚合值的差值,得到编码单元在目标方向上的全局梯度。

图5A是一个实施例的一种基于编码单元划分的区间计算全局梯度的示意图。如图所示,可以在编码单元中均等地划分出在水平方向上排列的两个区间,分别针对两个区间中所包含像素的像素值进行聚合,得到该区间的像素聚合值。最后,根据各个区间的像素聚合值的差值,得到编码单元在水平方向上的全局梯度。

其中另一种计算像素梯度的方式中,可以根据各个像素的像素值,计算出编码单元在特定方向上的局部梯度,作为上述的像素梯度。具体地,可以首先在多个方向中选取一个方向作为目标方向,并获取编码单元中由在目标方向上相邻的至少两个像素所组成的相邻像素组,并根据相邻像素组中所包含像素的像素值之间的差值,得到一组相邻像素组的像素组差值,针对多组相邻像素组的像素组差值进行累计求和,得到编码单元在目标方向的局部梯度。

图5B是一个实施例的一种基于编码单元的相邻像素计算局部梯度的示意图。如图所示,可以在编码单元中查找到在水平方向上相邻的两个像素,组成相邻像素组。根据两个相邻的像素的像素值之间的差值,得到一组相邻像素组的像素组差值。最后针对该编码单元内多组的相邻像素组的像素组差值进行累计求和,得到编码单元在水平方向的局部梯度。

当然,本领域技术人员可以根据实际需要,采用其他各种方式计算划分出的编码单元在特定方向上的像素梯度,本实施例对像素梯度的具体计算方式不作限制。

S308,当多个所述编码单元各自的像素梯度之间的差异符合设定条件,则针对所述编码块中的多个所述编码单元进行编码,得到所述编码块的编码结果,并根据所述编码块的编码结果对与所述编码块相邻的其他编码块进行编码。

具体实现中,终端110可以将多个编码单元各自的像素梯度进行比较,得到编码单元各自的像素梯度之间的差异,并判断该差异是否符合设定条件,当判定编码单元各自的像素梯度之间的差异符合设定条件时,则可以确定目标划分模式为最优的多叉树划分模式,针对采用目标划分模式划分得到的多个编码单元进行帧内预测编码。

实际应用中,本领域技术人员可以根据实际需要采用各种设定条件以判断是否针对当前划分出的编码单元进行编码。

例如,针对于二叉树划分模式划分出的二叉树第一编码单元和二叉树第二编码单元该两个编码单元,在判断是否符合设定条件时,可以计算两个编码单元各自的像素梯度之间的差值,作为两个编码单元各自的像素梯度之间的差异。然后,将该差值与预设的差异阈值进行比较,当差值大于该差异阈值时,则判定编码单元各自的像素梯度之间的差异符合设定条件。

又例如,针对于三叉树划分模式划分出的三叉树第一编码单元、三叉树第二编码单元和三叉树第三编码单元该三个编码单元,在判断是否符合设定条件时,可以计算三叉树第一编码单元与三叉树第二编码单元各自的像素梯度之间的第一单元梯度比值,以及,计算三叉树第二编码单元与三叉树第三编码单元各自的像素梯度之间的第二单元梯度比值,将第一单元梯度比值和第二单元梯度比值作为三个编码单元各自的像素梯度之间的差异。然后,将第一单元梯度比值和第二单元梯度比值分别与预设的差异阈值进行比较,当第一单元梯度比值和第二单元梯度比值均大于差异阈值时,则判定编码单元各自的像素梯度之间的差异符合设定条件。

在确定目标划分模式为最优的多叉树划分模式之后,则可以针对采用目标划分模式划分得到的多个编码单元进行帧内预测编码,在进行帧内预测编码得到编码块的编码结果之后,则可以直接利用该编码结果对相邻的编码块进行帧内预测编码,而无须继续遍历其他多叉树划分模式。

需要说明的是,帧内预测编码是基于同一帧视频帧内相邻像素存在相关性的特性进行编码的。例如,在一帧视频帧中相邻像素的色度、灰度、亮度等的像素值通常是渐变的,而较少会出现较大的变化。也即是说,相邻像素存在相关性。利用像素之间的相关性,在得到一个像素的像素值之后,可以预测相邻像素的像素值。而为了提升编码效率,需要通过多叉树划分的方式将视频帧划分为多个编码单元以同时进行编码。而为了得到较低的率失真代价,理想的划分结果是将像素值的变化程度存在较大差异的像素划分至不同的编码单元,即,使得划分出的多个编码单元之间在像素值的变化程度上有较大的差异。

如果划分出的多个编码单元之间在像素值的变化程度上有较大的差异,即编码单元的像素梯度之间的差异较大,说明针对采用多叉树划分模式划分出多个编码单元进行帧内预测编码后的率失真代价较小,编码质量较好。

如果划分出的多个编码单元之间在像素值的变化程度上的差异较小,即编码单元的像素梯度之间的差异较小,说明采用当前的多叉树划分模式划分出多个编码单元、并针对该编码单元进行帧内预测编码后的率失真代价较大,编码质量较差。此时,则需要尝试其他多叉树划分模式,或者无须进一步划分成多个编码单元。

本实施例提出了一种新的视频编码方法,利用编码单元各自的像素梯度之间的差异与最终的编码质量之间存在关联的特性,基于编码单元各自的像素梯度预先决策出进行二叉树划分模式或者三叉树划分模式,而无须如相关技术中对二叉树划分模式和三叉树划分模式计算率失真代价等较大的计算量,提升了视频编码的编码效率。

上述视频编码方法中,通过在排除四叉树划分模式的时候选取二叉树划分模式或三叉树划分模式作为目标划分模式,采用目标划分模式将编码块划分为多个编码单元,然后根据编码块中各个像素的像素值,得到多个编码单元各自的像素梯度,当多个编码单元各自的像素梯度之间的差异符合设定条件时,说明采用当前的目标划分模式的率失真代价较小,目标划分模式可以为优选的多叉树划分模式,由此可以直接针对编码块中的多个编码单元进行编码,而无须在编码后再额外计算率失真代价并基于率失真代价判断当前是否优选的多叉树划分模式,在整个编码过程中节省了针对多叉树划分模式进行计算率失真代价的计算量,提升了视频编码的编码效率。

在一个实施例中,所述像素梯度包括全局梯度,所述步骤S306,包括:

划分所述编码单元,得到多个单元区间;根据多个所述单元区间各自所包含的像素的像素值,得到所述编码单元的所述全局梯度。

其中,单元区间可以为在编码单元中按照特定方向排列的区间。

其中,全局梯度可以为编码单元中按照特定方向排列的各个区间之间的像素梯度。

具体实现中,终端110可以按照对编码块进行多叉树划分的划分方向相同的方向,进一步将编码单元划分成多个单元区间。例如,按照水平方向对编码块进行二叉树划分成两个二叉树编码单元,针对每个二叉树编码单元,按照水平方向进一步划分成均等的两个单元区间。

然后,针对于划分出的单元区间,根据各个单元区间各自所包含像素的像素值,得到编码单元的全局梯度。

例如,分别计算两个单元区间所包含像素的像素值的平均值,作为两个单元区间各自的区间像素聚合值,计算两个单元区间的区间像素聚合值之间的差值,得到编码单元的全局梯度。

上述视频编码方法中,通过将编码单元划分为多个单元区间,根据多个单元区间所包含像素的像素值,计算出可以反映编码单元中各个像素的宏观变化趋势的全局梯度,作为编码单元的像素梯度,由于所需的计算量较少,从而可以快速计算出编码单元的像素梯度,进一步提升了视频编码的编码效率。

在一个实施例中,所述根据多个所述单元区间各自所包含的像素的像素值,得到所述编码单元的像素梯度,包括:

计算所述编码块中各个所述像素的像素值的平均值,得到编码块像素均值;计算所述单元区间内所包含所述像素的像素值与所述编码块像素均值的差值,并对所述单元区间内各个所述像素的像素值与所述编码块像素均值的差值求和,得到区间像素聚合值;计算多个所述单元区间的区间像素聚合值之间的差值,得到所述全局梯度。

具体实现中,在划分编码单元为多个单元区间时,可以将编码单元划分为多个单元区间。在计算全局梯度时,可以首先计算编码块中各个像素的像素值的平均值,得到上述的编码块像素均值。然后,分别针对各个单元区间,计算每个单元区间内各个像素的像素值与编码块像素均值之间的差值,并对单元区间内各个像素的像素值与编码块像素均值的差值求和,得到各个单元区间的区间像素聚合值。

例如,区间内有N个像素,计算N个像素的像素值与编码块像素均值之间的差值,得到N个差值。对N个差值求和,得到单元区间的区间像素聚合值。

最后,计算各个单元的区间像素聚合值之间的差值,作为编码单元的全局梯度。

在实际应用中,可以通过下列公式计算编码单元中在水平、垂直等不同方向上的全局梯度(GlobalGradient):

Figure BDA0002242564430000111

Figure BDA0002242564430000112

其中,abs代表用于求整数的绝对值的函数,p代表像素的像素值;i和j代表各个像素在编码块的矩阵中所处的列和行的位置索引;pij代表某个位置上的像素的像素值;pavg则代表编码块像素均值;N代表编码块在每一列或每一行所包含像素的数量。

在采用上述公式计算编码单元在特定方向上的全局梯度时,针对按照水平方向将编码单元划分为第一区间和第二区间该两个单元区间的情况,第一区间中包含有第0列至第N-1列、第0行至(N/2-1)的所有像素,第二区间中包含有0至N-1列、N/2至(N-1)行的所有像素。首先可以确定处于第i列第j行的某个像素的像素值pij,计算像素值pij与编码块像素均值pavg之间的差值,遍历区间内各个像素与编码块像素均值之间的差值并求和,得到区间的区间像素聚合值,对两个区间的区间像素聚合值计算差值并求绝对值,即可以得到全局梯度GlobalGradient。针对垂直方向计算全局梯度的计算过程与上述针对水平方向的计算过程相似,在此不再赘述。

在一个实施例中,所述像素梯度包括局部梯度,所述步骤S306,包括:

获取在所述编码单元中相邻的多个像素所组成的相邻像素组;根据所述编码单元中各个所述相邻像素组中所包含的像素的像素值,得到所述编码单元的所述局部梯度。

其中,局部梯度可以为特定方向上相邻的至少两个像素之间像素梯度。

具体实现中,终端110可以在编码单元中选取出相邻的至少两个像素,作为一组相邻像素组。根据相邻像素组中所包含的像素的像素值,可以得到编码单元的局部梯度。

例如,针对编码单元中相邻的至少两个像素,组成一组相邻像素组。在一个编码单元中,可以得到N组相邻像素组。对于各组相邻像素组,计算相邻像素组中各个像素的像素值之间的差值,将N个差值累计求和,可以得到编码单元的局部梯度。

上述视频编码方法中,通过在编码单元中得到相邻的多个像素所组成的相邻像素组,根据相邻像素组中所包含的像素的像素值计算得到编码单元的局部梯度,由于局部梯度可以更准确反映出编码单元中各个像素之间的变化程度的大小,因此,可以更准确地判断编码单元的像素梯度之间的差异是否符合设定条件,从而可以进一步提升视频编码的编码质量。

在一个实施例中,所述编码单元包括有N个所述相邻像素组,所述根据所述编码单元中各个所述相邻像素组中所包含的像素的像素值,得到所述编码单元的像素梯度,包括:

分别计算N个所述相邻像素组中各个像素的像素值之间的差值,得到N个所述相邻像素组的相邻像素差;累计计算N个所述相邻像素组的相邻像素差之和,得到所述局部梯度。

具体实现中,可以选取编码单元中在特定方向上相邻的至少两个像素,组成一组相邻像素组,对于编码单元中的多个像素,则可以得到N组的相邻像素值。在计算局部梯度时,可以针对N组相邻像素组,分别计算每组相邻像素组中的像素的像素值的差值,得到上述的像素值差值。

对于选取编码单元中依次相邻的三个以上的像素组成相邻像素组的情况,则可以针对相邻像素组中的各个像素分别计算差值,得到多个差值,并对该多个差值求平均值,作为每组相邻像素组的像素组差值,或者,选取多个差值中的最大值,作为每组相邻像素组的像素组差值。

对于N组相邻像素组,则可以得到N个像素组差值。对于N个像素组差值进行累计求和,得到编码单元的局部梯度。

在实际应用中,可以通过下列公式计算编码块中编码单元在水平、垂直等方向上的局部梯度(LocalGradient):

Figure BDA0002242564430000131

Figure BDA0002242564430000132

其中,Width为编码块的宽度,即编码块在每一行上所包含像素的数量,Height为编码块的高度,即编码块在每列上所包含像素的数量;abs代表用于求整数的绝对值的函数;p代表像素的像素值;i和j代表各个像素在编码块的矩阵中所处的列和行的位置索引;pij代表某个位置上的像素的像素值。

在采用上述公式计算编码单元在特定方向上的局部梯度时,针对水平方向的局部梯度,选取任意两个在水平方向上相邻的像素的像素值pi+1,j和pi,j,计算该两个相邻像素的像素值的差值。遍历在编码块宽度Width和编码块高度Height的范围内的所有在水平方向上相邻的像素并计算差值,将得到的所有差值累计求和,并对累计求和得到的数值求绝对值,即可以得到局部梯度LocalGradient。针对垂直方向计算局部梯度的计算过程与上述针对水平方向的计算过程相似,在此不再赘述。

在一个实施例中,所述步骤S304,包括:

按照所述三叉树划分模式对所述编码块进行多叉树划分,得到所述编码块的三叉树编码单元;所述三叉树编码单元包括三叉树第一编码单元、三叉树第二编码单元和三叉树第三编码单元;

所述步骤S308,包括:

计算所述三叉树第一编码单元与所述三叉树第二编码单元之间的比值,得到第一单元梯度比值,以及,计算所述三叉树第二编码单元与所述三叉树第三编码单元之间的比值,得到第二单元梯度比值;

当所述第一单元梯度比值和所述第二单元梯度比值均大于预设的第一差异阈值,对所述三叉树编码单元进行帧内预测编码。

其中,三叉树编码单元为采用三叉树划分模式划分出的编码单元。

具体实现中,可以优先采用三叉树划分模式作为上述的目标划分模式,对编码块进行三叉树划分,得到三叉树第一编码单元、三叉树第二编码单元和三叉树第三编码单元。参考图4B所示,从左到右依次为三叉树第一编码单元406、三叉树第二编码单元408和三叉树第三编码单元4010。三叉树第一编码单元与三叉树第二编码单元相邻,三叉树第二编码单元与三叉树第三编码单元相邻。

在判断编码单元的像素梯度是否符合设定条件时,可以计算三叉树第一编码单元与三叉树第二编码单元之间的比值,得到第一单元梯度比值,此外,还可以计算三叉树第二编码单元与三叉树第三编码单元之间的比值,得到第二单元梯度比值。然后,分别将第一单元梯度比值、第二单元梯度比值与预设的第一差异阈值进行比较,当第一单元梯度比值和第二单元梯度比值均大于第一差异阈值,可以确定三叉树划分模式为最优的多叉树划分模式,从而,可以对三叉树第一编码单元、三叉树第二编码单元和三叉树第三编码单元进行帧内预测编码。

需要说明的是,在将编码块划分为编码单元时,划分的编码单元越多,则可以更准确地将差异较小的像素划分至同一个编码单元,帧内预测编码的率失真代价越小,编码质量更佳。在二叉树划分模式和三叉树划分模式划分出的编码单元的像素梯度之间的差异均符合设定条件的情况下,优选三叉树划分模式,可以使得编码质量更佳。因此,可以优先对三叉树划分模式的划分效果进行判断,在三叉树划分模式的划分效果不符合设定条件时,再考虑二叉树划分模式。

上述视频编码方法中,通过选取三叉树划分模式将编码块划分为多个三叉树编码单元,并在各个三叉树编码单元各自的像素梯度的比值均大于第一差异阈值时,对各个三叉树编码单元进行帧内预测编码,由于三叉树划分相比起二叉树划分可以将编码块划分出更多编码单元,使得编码质量更佳,因此,通过优选采用三叉树划分模式进行划分的方式,在提升视频编码的编码效率的同时,可以保证视频编码的编码质量。而且,本实施例分别计算三个三叉树编码单元的像素梯度之间的比值,得到第一单元梯度比值和第二单元梯度比值,并在判定第一单元梯度比值和第二单元梯度比值均大于第一差异阈值的情况下,触发对各个三叉树编码单元进行帧内预测编码,避免出现错误地判定各个编码单元各自的像素梯度之间的差异符合设定条件的情况。

在一个实施例中,当所述第一单元梯度比值和/或所述第二单元梯度比值小于所述第一差异阈值时,所述方法还包括:

按照所述二叉树划分模式对所述编码块进行多叉树划分,得到所述编码块的二叉树编码单元;划分所述二叉树编码单元,得到多个二叉树单元区间;获取多个所述二叉树单元区间之间的区间梯度比值;当多个所述区间梯度比值均小于预设的第二差异阈值时,则针对所述编码块中的所述二叉树编码单元进行帧内预测编码。

具体实现中,采用三叉树划分模式进行多叉树划分时,所得到的第一单元梯度比值和第二单元梯度比值中的至少一个小于第一差异阈值时,可以进一步采用二叉树划分模式对编码块进行二叉树划分,得到编码块的二叉树编码单元。

需要说明的是,当第一单元梯度比值和第二单元梯度比值中的至少一个小于第一差异阈值时,表明采用三叉树划分模式进行划分的方式无法保证视频编码的编码质量,因此,可以进一步选取二叉树划分模式进行划分。

得到编码块的二叉树编码单元之后,可以对二叉树编码单元进一步划分为多个二叉树单元区间。然后根据编码块中各个像素的像素值,计算各个二叉树单元区间的像素梯度,并计算各个二叉树单元区间的像素梯度的比值,得到多个区间梯度比值。

将多个区间梯度比值分别与预设的第二差异阈值进行比较,当多个区间梯度比值均小于第二差异阈值时,则可以针对编码块的二叉树编码单元进行帧内预测编码。

例如,将二叉树编码单元划分两个二叉树单元区间,则计算该两个二叉树单元区间的像素梯度的比值,作为上述的区间梯度比值。又例如,将二叉树编码单元划分为三个以上的二叉树单元区间,则可以分别计算该多个二叉树单元区间的像素梯度的比值,得到多个比值,将多个比值求平均,或者选取最大的比值,作为上述的区间梯度比值。

需要说明的是,为了得到较低的率失真代价,理想的划分结果中,除了将像素值的变化程度存在较大差异的像素划分至不同的编码单元,还需要将像素值的变化程度存在较小差异的像素划分至相同的编码单元。当多个区间梯度比值均小于第二差异阈值时,说明划分出的多个编码单元中,每个编码单元在像素值的变化程度上有较小的差异,从而,针对采用二叉树划分模式划分出的多个二叉树编码单元进行帧内预测编码后的率失真代价较小,编码质量较好。

需要进一步说明的是,在第一单元梯度比值和第二单元梯度比值中的至少一个小于第一差异阈值时,可以将三叉树划分模式作为最优的多叉树划分模式的可能性排除,但此时并不能排除二叉树划分模式。同时,在第一单元梯度比值和第二单元梯度比值中的至少一个小于第一差异阈值时,采用二叉树划分模式划分出的二叉树编码单元的像素梯度之间的差异符合设定条件的可能性较低。因此,可以根据二叉树编码单元内部的像素的变化程度的大小来判断是否排除二叉树划分模式作为最优的多叉树划分模式的可能性。

上述视频编码方法中,在第一单元梯度比值和/或第二单元梯度比值小于所述第一差异阈值时,可以采用二叉树划分模式将编码块划分成二叉树编码单元,并进一步将二叉树编码单元划分为多个二叉树单元区间,并获取多个二叉树单元区间之间的区间梯度比值,在多个二叉树单元区间之间的区间梯度比值均小于预设的第二差异阈值时,则可以直接针对编码块中的多个二叉树编码单元进行帧内预测编码,由此,在排除三叉树划分模式之后,通过二叉树编码单元内的区间之间的区间梯度比值,可以决策出二叉树划分模式为最优的多叉树划分模式,节省了针对二叉树划分模式进行帧内预测编码、计算率失真代价等较大的计算量,在提升视频编码的编码效率的同时,可以保证视频编码的编码质量。

在一个实施例中,所述划分所述二叉树编码单元,得到多个二叉树单元区间,包括:

将所述二叉树编码单元等比划分成二叉树单元第一区间和二叉树单元第二区间;

所述获取多个所述二叉树单元区间之间的区间梯度比值,包括:

根据所述编码块中各个像素的像素值,获取所述二叉树单元第一区间和所述二叉树单元第二区间各自的像素梯度;计算所述二叉树单元第一区间和所述二叉树单元第二区间各自的像素梯度之间的比值,得到所述区间梯度比值。

具体实现中,可以将二叉树编码单元均等地划分为二叉树单元第一区间和二叉树单元第二区间。然后,根据编码块中各个像素的像素值,计算得到二叉树单元第一区间和二叉树单元第二区间各自的像素梯度,并计算二叉树单元第一区间和所述二叉树单元第二区间各自的像素梯度之间的比值,得到区间梯度比值。

参考图4C所示,从左到右依次为二叉树第一编码单元412和二叉树第二编码单元414。

图6是一个实施例的一种将二叉树编码单元划分为二叉树单元区间的示意图。分别对二叉树第一编码单元412和二叉树第二编码单元414划分区间,得到二叉树第一编码单元412的第一区间4121和第二区间4122,以及,得到二叉树第二编码单元414的第一区间4141和第二区间4142。计算二叉树第一编码单元412的第一区间4121和第二区间4122各自的像素梯度的比值,得到第一区间梯度比值;计算二叉树第二编码单元414的第一区间4141和第二区间4142各自的像素梯度的比值,得到第二区间梯度比值。最后,当第一区间梯度比值和第二区间梯度比值均小于预设的第二差异阈值时,则针对二叉树第一编码单元412和二叉树第二编码单元414进行帧内预测编码。

在实际应用中,可以采用以下思路编写上述的多叉树划分模式决策过程的实现代码:

假设当前的划分方向为垂直方向,首先,采用三叉树划分模式,将编码块垂直划分为三个编码单元,三个编码单元在水平方向上排列。分别计算三个编码单元在水平方向上的像素梯度,即图4B中的三叉树第一编码单元406、三叉树第二编码单元408和三叉树第三编码单元4010各自的像素梯度,分别标记为Gradient_Hor_TT0,Gradient_Hor_TT1和Gradient_Hor_TT2。

然后,计算Gradient_Hor_TT0和Gradient_Hor_TT1之间的比值,以及,计算Gradient_Hor_TT1和Gradient_Hor_TT2之间的比值。

下一步,判断Gradient_Hor_TT0和Gradient_Hor_TT1之间的比值,是否大于第一差异阈值thr1,以及,判断Gradient_Hor_TT1和Gradient_Hor_TT2之间的比值,是否大于第一差异阈值thr1。若两个判断结果表示均大于第一差异阈值thr1,则针对三叉树划分模式标记为1,即,后续可以采用三叉树划分模式划分出的三叉树编码单元进行帧内预测编码。

若存在有小于第一差异阈值thr1的判断结果,则针对三叉树划分模式标记为0,即,排除采用三叉树划分模式划分出的三叉树编码单元进行帧内预测编码,并且,进一步将采用二叉树划分模式,将编码块垂直划分为二个编码单元,二个编码单元在水平方向上排列,即图6中的二叉树第一编码单元412和二叉树第二编码单元414。然后,再进一步分别将二叉树第一编码单元412和二叉树第二编码单元414均等地划分为两个区间,即,图6中的二叉树第一编码单元412的第一区间4121和第二区间4122,以及,二叉树第二编码单元414的第一区间4141和第二区间4142。计算二叉树第一编码单元412的第一区间4121和第二区间4122、二叉树第二编码单元414的第一区间4141和第二区间4142等各个区间的像素梯度,分别标记为Gradient_Hor_BT0_0,Gradient_Hor_BT0_1,Gradient_Hor_BT1_0和Gradient_Hor_BT1_1。然后,针对同一编码单元内的两个区间的像素梯度求比值,即,计算Gradient_Hor_BT0_0,Gradient_Hor_BT0_1的比值,以及,Gradient_Hor_BT1_0和Gradient_Hor_BT1_1的比值。

下一步,判断Gradient_Hor_BT0_0,Gradient_Hor_BT0_1的比值,是否大于第二差异阈值thr2,以及,判断Gradient_Hor_BT1_0和Gradient_Hor_BT1_1的比值,是否大于第二差异阈值thr2。

若两个判断结果表示均大于第二差异阈值thr2,则针对三叉树划分模式标记为1,即,后续可以采用二叉树划分模式划分出的二叉树编码单元进行帧内预测编码。若存在有小于第二差异阈值thr2的判断结果,则针对二叉树划分模式标记为0,即,排除采用二叉树划分模式划分出的二叉树编码单元进行帧内预测编码,表示该编码块可以不进一步进行二叉树划分或三叉树划分,而直接针对整个编码块进行帧内预测编码。

由于划分方向为水平方向的多叉树划分模式决策过程与上述过程相似,在此不再赘述。

在一个实施例中,还包括:

获取所述编码块的编码块宽度和编码块高度;计算所述编码块宽度和所述编码块高度的比值,并根据所述编码块宽度和所述编码块高度的比值确定所述第一差异阈值;比较所述单元梯度比值与所述第一差异阈值,并根据比较结果得到所述第二差异阈值。

具体实现中,为了准确判断各个编码单元的像素梯度之间的差异是否符合设定条件,可以根据编码块的编码块宽度和编码块高度计算出上述的第一差异阈值和第二差异阈值。更具体地,在将单元梯度比值与第一差异阈值进行比较之前,可以计算编码块宽度和编码块高度的比值,根据该比值确定第一差异阈值。然后,在将区间梯度比值与第二差异阈值比较之前,根据单元梯度比值与第一差异阈值的比较结果,确定第二差异阈值。

上述的视频编码方法中,通过根据编码块的编码块宽度和编码块高度计算出第一差异阈值,然后根据第一差异阈值进一步确定第二差异阈值,以更准确地决策多叉树划分模式,提升了视频编码的编码质量。

在一个实施例中,所述根据比较结果得到所述第二差异阈值,包括:

当所述单元梯度比值大于所述第一差异阈值,则根据所述编码块宽度与所述编码块高度之间的平方和与所述编码块宽度的比值,得到所述第二差异阈值;

当所述单元梯度比值小于所述第一差异阈值,则根据所述编码块宽度和所述编码块高度之间的平方和与所述编码块高度的比值,得到所述第二差异阈值。

具体实现中,当单元梯度比值大于第一差异阈值时,可以计算编码块宽度与编码块高度之间的平方和,然后计算该平方和与编码块宽度的比值,作为第二差异阈值。当单元梯度比值小于第一差异阈值时,可以计算编码块宽度与编码块高度之间的平方和,然后计算该平方和与编码块高度的比值,作为第二差异阈值。从而,根据单元梯度比值与第一差异阈值的比较结果确定第二差异阈值。

上述视频编码方法中,得到第一差异阈值之后,针对单元梯度比值与第一差异阈值的不同比较结果得到第二差异阈值,得出更准确的第二差异阈值,以更准确地决策多叉树划分模式,提升了视频编码的编码质量。

在实际应用中,可以计算编码块宽度Width和编码块高度Height之间的宽度比,或者,计算编码块高度Height与编码块宽度Width之间的高宽比。当宽高比或者高宽比大于某个预设阈值时,可以将第一差异阈值赋值为高宽比或宽高比。当单元梯度比值大于第一差异阈值,则可以计算编码块高度Height与编码块宽度Width各自的平方值并求和,将求和得到的数值除以编码块宽度Width,所得的值作为第二差异阈值。当单元梯度比值小于第一差异阈值,则可以计算编码块高度Height与编码块宽度Width各自的平方值并求和,将求和得到的数值除以编码块高度Height,所得的值作为第二差异阈值。

在一个实施例中,所述步骤S304,包括:

在多个候选划分方向中选取目标划分方向;按照所述目标划分模式,将所述编码块划分为在所述编码块中按照所述目标划分方向排列的多个所述编码单元;

所述方法还包括:

当按照所述目标划分方向排列的多个所述编码单元各自的像素梯度之间的差异符合设定条件时,则执行针对按照所述目标划分方向排列的多个所述编码单元进行编码的步骤;

当按照所述目标划分方向排列的多个所述编码单元各自的像素梯度之间的差异不符合设定条件时,则返回至在多个候选划分方向中选取目标划分方向的步骤;

当遍历多个所述候选划分方向之后无法得到所述编码块的编码结果,则选取另一个多叉树划分模式作为新的所述目标划分模式,并返回至按照所述目标划分模式对待编码视频帧中的编码块进行多叉树划分,得到所述编码块的多个编码单元的步骤。

具体实现中,可以在多个候选划分方向中,选取出目标划分方向,例如选取出垂直划分方向或者水平划分方向作为目标划分方向。然后,按照目标划分方向对编码块进行二叉树划分或者三叉树划分,得到按照目标划分方向排列的多个编码单元。

然后,根据按照目标划分方向排列的多个编码单元所包含的像素的像素值,获取按照目标划分方向排列的多个编码单元各自的像素梯度。当按照目标划分方向排列的多个编码单元各自的像素梯度之间的差异不符合设定条件时,可以在多个候选划分方向中选取另一个方向作为更新的目标划分方向,并按照更新的目标划分方向,按照目标划分模式重新将编码块划分为按照更新的目标划分方向排列的多个编码单元,并再次判断按照目标划分方向排列的多个编码单元各自的像素梯度之间的差异是否符合设定条件。

当遍历多个候选划分方向之后,多个编码单元各自的像素梯度之间的差异仍然不符合设定条件,即遍历多个候选划分方向之后仍然无法通过当前的目标划分模式得到编码块的编码结果时,则可以选取另一个多叉树划分模式作为更新的目标划分模式,返回至上述的步骤S304。

在上述视频编码方法中,通过遍历不同的划分方向,得到按照目标划分模式下得到编码结果的划分方向,避免了通过单一的划分方向划分出的编码单元之间的差异不符合设定条件时则排除当前的多叉树划分模式导致错误地排除优选的多叉树划分模式的问题,从而可以得到优选的多叉树划分模式以得到更佳的编码结果,提升了视频编码的编码质量。

为了便于本领域技术人员理解本申请实施例,以下将结合附图对具体的示例进行说明。

图7是一个实施例的一种预先决策多叉树划分模式的流程示意图,如图所示,相比起图2中相关技术需要遍历各种多叉树划分模式,本实施例提供的视频编码方法无须遍历多种多叉树划分模式,而只需要根据所划分出的编码单元各自的像素梯度,预先决策出二叉树划分模式或是三叉树划分模式,节省了遍历各种多叉树划分模式进行帧内预测编码、计算率失真代价等的计算量,提升了视频编码的编码效率。

图8是一个实施例的一种具体的视频编码方法的流程示意图,如图8所示,在一个实施例中,一种具体的视频编码方法可以包括以下步骤:

S802,获取待编码的视频帧,并将视频帧划分为多个编码块;

S804,选取划分方向,按照选取的划分方向和三叉树划分模式,将编码块划分为三个三叉树编码单元;

S806,计算三个三叉树编码单元各自的像素梯度;

S808,计算三个三叉树编码单元各自的像素梯度之间的多个比值,并判断该多个比值是否均大于预设的第一差异阈值;

S810,若是,对三个三叉树编码单元进行帧内预测编码,得到编码结果;

S812,若否,则判断是否遍历所有划分方向,如否则返回至步骤S804;

S814,当遍历所有划分方向仍然未得到编码结果,则选取划分方向,按照选取的划分方向和二叉树划分模式,将编码块划分为两个二叉树编码单元;

S816,针对两个二叉树编码单元分别进行区间划分,得到二叉树编码单元的二叉树单元区间;

S818,计算二叉树单元区间的像素梯度;

S820,分别计算在同一个二叉树编码单元的二叉树单元区间的像素梯度之间的多个比值,并判断该多个比值是否均大于预设的第二差异阈值;

S822,若是,对两个二叉树编码单元进行帧内预测编码,得到编码结果;

S824,若否,则判断是否遍历所有划分方向,如否则返回至步骤S814;

S826,当遍历所有划分方向仍然未得到编码结果,则结束对当前编码块的多叉树划分。

应该理解的是,虽然图2、图3、图7和图8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图3、图7和图8中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图9所示,提供了一种视频编码装置,该装置可以包括:

模式选取模块902,用于在多种多叉树划分模式中,当排除四叉树划分模式时,进一步选取目标划分模式;所述目标划分模式为二叉树划分模式或三叉树划分模式;

划分模块904,用于按照所述目标划分模式对待编码视频帧中的编码块进行多叉树划分,得到所述编码块的多个编码单元;

梯度获取模块906,用于根据多个所述编码单元所包含的像素的像素值,获取多个所述编码单元各自的像素梯度;

编码模块908,用于当多个所述编码单元各自的像素梯度之间的差异符合设定条件,则针对所述编码块中的多个所述编码单元进行编码,得到所述编码块的编码结果,并根据所述编码块的编码结果对与所述编码块相邻的其他编码块进行编码。

上述视频编码装置中,通过在排除四叉树划分模式的时候选取二叉树划分模式或三叉树划分模式作为目标划分模式,采用目标划分模式将编码块划分为多个编码单元,然后根据编码块中各个像素的像素值,得到多个编码单元各自的像素梯度,当多个编码单元各自的像素梯度之间的差异符合设定条件时,说明采用当前的目标划分模式的率失真代价较小,目标划分模式可以为优选的多叉树划分模式,由此可以直接针对编码块中的多个编码单元进行编码,而无须在编码后再额外计算率失真代价并基于率失真代价判断当前是否优选的多叉树划分模式,在整个编码过程中节省了针对多叉树划分模式进行计算率失真代价的计算量,提升了视频编码的编码效率。

在一个实施例中,所述划分模块904,具体用于:按照所述三叉树划分模式对所述编码块进行多叉树划分,得到所述编码块的三叉树编码单元;所述三叉树编码单元包括三叉树第一编码单元、三叉树第二编码单元和三叉树第三编码单元;

所述编码模块908,具体用于:计算所述三叉树第一编码单元与所述三叉树第二编码单元之间的比值,得到第一单元梯度比值,以及,计算所述三叉树第二编码单元与所述三叉树第三编码单元之间的比值,得到第二单元梯度比值;当所述第一单元梯度比值和所述第二单元梯度比值均大于预设的第一差异阈值,对所述三叉树编码单元进行帧内预测编码。

在一个实施例中,当所述第一单元梯度比值和/或所述第二单元梯度比值小于所述第一差异阈值时,所述划分模块904,还具体用于:按照所述二叉树划分模式对所述编码块进行多叉树划分,得到所述编码块的二叉树编码单元;划分所述二叉树编码单元,得到多个二叉树单元区间;

所述编码模块908,还具体用于:获取多个所述二叉树单元区间之间的区间梯度比值;当多个所述区间梯度比值均小于预设的第二差异阈值时,则针对所述编码块中的所述二叉树编码单元进行帧内预测编码。

在一个实施例中,所述所述划分模块904,还具体用于:将所述二叉树编码单元等比划分成二叉树单元第一区间和二叉树单元第二区间;

所述编码模块908,还具体用于:根据所述编码块中各个像素的像素值,获取所述二叉树单元第一区间和所述二叉树单元第二区间各自的像素梯度;计算所述二叉树单元第一区间和所述二叉树单元第二区间各自的像素梯度之间的比值,得到所述区间梯度比值。

在一个实施例中,所述像素梯度包括局部梯度,所述梯度获取模块906,具体用于:获取在所述编码单元中相邻的多个像素所组成的相邻像素组;根据所述编码单元中各个所述相邻像素组中所包含的像素的像素值,得到所述编码单元的所述局部梯度。

在一个实施例中,所述编码单元包括有N个所述相邻像素组,所述梯度获取模块906,还具体用于:分别计算N个所述相邻像素组中各个像素的像素值之间的差值,得到N个所述相邻像素组的相邻像素差;累计计算N个所述相邻像素组的相邻像素差之和,得到所述局部梯度。

在一个实施例中,所述像素梯度包括全局梯度,所述梯度获取模块906,还具体用于:划分所述编码单元,得到多个单元区间;根据多个所述单元区间各自所包含的像素的像素值,得到所述编码单元的所述全局梯度。

在一个实施例中,所述梯度获取模块906,还具体用于:计算所述编码块中各个所述像素的像素值的平均值,得到编码块像素均值;计算所述单元区间内所包含所述像素的像素值与所述编码块像素均值的差值,并对所述单元区间内各个所述像素的像素值与所述编码块像素均值的差值求和,得到区间像素聚合值;计算多个所述单元区间的区间像素聚合值之间的差值,得到所述全局梯度。

在一个实施例中,所述装置还包括:

编码块尺寸获取模块,用于获取所述编码块的编码块宽度和编码块高度;

第一阈值计算模块,用于计算所述编码块宽度和所述编码块高度的比值,并根据所述编码块宽度和所述编码块高度的比值确定所述第一差异阈值;

第二阈值计算模块,用于比较所述单元梯度比值与所述第一差异阈值,并根据比较结果得到所述第二差异阈值。

在一个实施例中,所述第二阈值计算模块,具体用于:当所述单元梯度比值大于所述第一差异阈值,则根据所述编码块宽度与所述编码块高度之间的平方和与所述编码块宽度的比值,得到所述第二差异阈值;当所述单元梯度比值小于所述第一差异阈值,则根据所述编码块宽度和所述编码块高度之间的平方和与所述编码块高度的比值,得到所述第二差异阈值。

在一个实施例中,所述划分模块904,具体用于:在多个候选划分方向中选取目标划分方向;按照所述目标划分模式将所述编码块划分为在所述编码块中按照所述目标划分方向排列的多个所述编码单元;

所述视频编码装置还用于:当按照所述目标划分方向排列的多个所述编码单元各自的像素梯度之间的差异符合设定条件时,则跳转至编码模块908;所述编码模块908具体用于针对按照所述目标划分方向排列的多个所述编码单元进行编码;

所述视频编码装置还用于:当按照所述目标划分方向排列的多个所述编码单元各自的像素梯度之间的差异不符合设定条件时,则跳转至划分模块904;

所述视频编码装置还用于:当遍历多个所述候选划分方向之后无法得到所述编码块的编码结果,则跳转至模式选取模块902,所述模式选取模式具体用于选取另一个多叉树划分模式作为新的所述目标划分模式。

关于视频编码装置的具体限定可以参见上文中对于视频编码方法的限定,在此不再赘述。上述视频编码装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

上述提供的视频编码装置可用于执行上述任意实施例提供的视频编码方法,具备相应的功能和有益效果。

图10示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110或服务器120。如图10所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现视频编码方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行视频编码方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,本申请提供的视频编码装置可以实现为一种计算机程序的形式,计算机程序可在如图10所示的计算机设备上运行。计算机设备的存储器中可存储组成该视频编码装置的各个程序模块,比如,图9所示的模式选取模块902、划分模块904、梯度获取模块906和编码模块908。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的视频编码方法中的步骤。

例如,图10所示的计算机设备可以通过如图9所示的视频编码装置中的模式选取模块902执行在多种多叉树划分模式中,当排除四叉树划分模式时,进一步选取目标划分模式的步骤。计算机设备可通过划分模块904按照所述目标划分模式对待编码视频帧中的编码块进行多叉树划分,得到所述编码块的多个编码单元的步骤。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述视频编码方法的步骤。此处视频编码方法的步骤可以是上述各个实施例的视频编码方法中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述视频编码方法的步骤。此处视频编码方法的步骤可以是上述各个实施例的视频编码方法中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

30页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种直播背包及直播实现方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类