视频编码方法及装置与流程

未命名 10-21 阅读:79 评论:0


1.本公开涉及视频处理领域,尤其涉及一种视频编码方法及装置。


背景技术:

2.h.265/hevc编码标准于2013年正式提出,其压缩性能相较h.264得到大幅的提升,hevc技术的广泛应用能够节省存储及带宽成本,应用前景是十分广泛的。h.265/hevc编码标准在h.264原有编码结构和编码工具的基础上,增加了新的编码工具,大幅提升压缩性能的同时带来了巨大的复杂度,特别是运动搜索模块一直是耗时占比的症结所在,成为了落地的巨大考验,因此对运动搜索模块具的优化是十分重要的。
3.目前,在编码过程中,帧间预测技术的运动搜索模式可以菱形搜索等方式在参考图像帧中进行搜索,这种方案虽然能够很快的找到绝对误差和(sum of absolute difference,缩写为sad)最小的点,但是容易陷入局部最优的问题,即当前点虽然是比较好的点,但是,这个点并不是最优解,因此会造成视频编码有比较大的损失,导致编码性能较低。


技术实现要素:

4.本公开提供一种视频编码方法及装置,以至少解决相关技术中的视频编码方法导致的编码性能低的问题。
5.根据本公开实施例的第一方面,提供一种视频编码方法,包括:获取当前块分别在合并模式和跳过模式下的率失真代价;在当前块不满足预设条件的情况下,基于第一绝对误差和、第二绝对误差和与第三绝对误差和,确定当前块在参考图像帧中的预测块,其中,第一绝对误差和是合并模式下的绝对误差和,第二绝对误差和是跳过模式下的绝对误差和,第三绝对误差和是运动搜索模式下搜索到的最小绝对误差和,预设条件为率失真代价中最小率失真代价对应的模式是跳过模式,或,最小率失真代价小于第一预设值;基于预测块,对当前块进行编码。
6.可选地,在基于所述预测块,对当前块进行编码之前,还包括:在当前块满足预设条件的情况下,通过率失真代价中最小率失真代价对应的模式,确定当前块在参考图像帧中的预测块。
7.可选地,基于第一绝对误差和、第二绝对误差和与第三绝对误差和,确定当前块在参考图像帧中的预测块,包括:在第一绝对误差和、第二绝对误差和分别与第三绝对误差和的差值均超过第二预设值的情况下,确定第三绝对误差和对应的点为搜索起点;根据搜索起点和运动搜索模式的初始点继续进行搜索,确定当前块在参考图像帧中的预测块。
8.可选地,基于第一绝对误差和、第二绝对误差和与第三绝对误差和,确定当前块在参考图像帧中的预测块,包括:在运动搜索过程中连续搜索到第三绝对误差和对应的点为第一点的次数超过预定次数的情况下,确定第一点为搜索起点;根据搜索起点和运动搜索模式的初始点继续进行搜索,确定当前块在参考图像帧中的预测块。
9.可选地,基于第一绝对误差和、第二绝对误差和与第三绝对误差和,确定当前块在参考图像帧中的预测块,包括:在第一绝对误差和、第二绝对误差和分别与第三绝对误差和的差值均未超过第二预设值且运动搜索过程中连续搜索到第三绝对误差和对应的点为第一点的次数未超过预定次数的情况下,继续搜索直至达到参考图像帧的搜索区域的边界,确定搜索区域中最小绝对误差和对应的点为搜索起点;根据搜索起点和运动搜索模式的初始点继续进行搜索,确定当前块在参考图像帧中的预测块。
10.可选地,根据搜索起点和运动搜索模式的初始点继续进行搜索,确定当前块在参考图像帧中的预测块,包括:根据搜索起点与运动搜索模式的初始点的位置关系,在搜索起点附近进行搜索,得到最小绝对误差和的第二点;在第二点和搜索起点是同一个点的情况下,基于第二点对应的块,确定当前块在参考图像帧中的预测块;在第二点和搜索起点不是同一个点的情况下,根据第二点和初始点的位置距离,确定当前块在参考图像帧中的预测块。
11.可选地,根据第二点和初始点的位置距离,确定当前块在参考图像帧中的预测块,包括:在第二点与初始点的距离超过预设距离且第二点的绝对误差和分别与第一绝对误差和、第二绝对误差和的差值均超过第三预设值的情况下,以初始点为搜索起点、预设距离为步长在参考图像帧的整帧中进行搜索,得到最小绝对误差和的第三点;基于左上角为第三点的块,确定当前块在参考图像帧中的预测块。
12.可选地,根据第二点和初始点的位置距离,确定当前块在参考图像帧中的预测块,包括:在第二点与初始点的距离未超过预设距离或第二点的绝对误差和分别与第一绝对误差和、第二绝对误差和的差值均未超过第三预设值的情况下,基于左上角为第二点的块,确定当前块在参考图像帧中的预测块。
13.可选地,根据搜索起点与运动搜索模式的初始点的位置关系,在搜索起点附近进行搜索,得到最小绝对误差和的第二点,包括:根据搜索起点与运动搜索模式的初始点的位置关系,通过两点搜索方式在搜索起点与初始点相反方向进行搜索,得到最小绝对误差和的第二点。
14.根据本公开实施例的第二方面,提供一种视频编码装置,包括:获取单元,被配置为获取当前块分别在合并模式和跳过模式下的率失真代价;第一确定单元,被配置为在当前块不满足预设条件的情况下,基于第一绝对误差和、第二绝对误差和与第三绝对误差和,确定当前块在参考图像帧中的预测块,其中,第一绝对误差和是合并模式下的绝对误差和,第二绝对误差和是跳过模式下的绝对误差和,第三绝对误差和是运动搜索模式下搜索到的最小绝对误差和,预设条件为率失真代价中最小率失真代价对应的模式是跳过模式,或,最小率失真代价小于第一预设值;编码单元,被配置为基于预测块,对当前块进行编码。
15.可选地,视频编码装置还包括:第二确定单元,被配置为在当前块满足预设条件的情况下,通过率失真代价中最小率失真代价对应的模式,确定当前块在参考图像帧中的预测块。
16.可选地,第一确定单元,还被配置为在第一绝对误差和、第二绝对误差和分别与第三绝对误差和的差值均超过第二预设值的情况下,确定第三绝对误差和对应的点为搜索起点;根据搜索起点和运动搜索模式的初始点继续进行搜索,确定当前块在参考图像帧中的预测块。
17.可选地,第一确定单元,还被配置为在运动搜索过程中连续搜索到第三绝对误差和对应的点为第一点的次数超过预定次数的情况下,确定第一点为搜索起点;根据搜索起点和运动搜索模式的初始点继续进行搜索,确定当前块在参考图像帧中的预测块。
18.可选地,第一确定单元,还被配置为在第一绝对误差和、第二绝对误差和分别与第三绝对误差和的差值均未超过第二预设值且运动搜索过程中连续搜索到第三绝对误差和对应的点为第一点的次数未超过预定次数的情况下,继续搜索直至达到参考图像帧的搜索区域的边界,确定搜索区域中最小绝对误差和对应的点为搜索起点;根据搜索起点和运动搜索模式的初始点继续进行搜索,确定当前块在参考图像帧中的预测块。
19.可选地,第一确定单元,还被配置为根据搜索起点与运动搜索模式的初始点的位置关系,在搜索起点附近进行搜索,得到最小绝对误差和的第二点;在第二点和搜索起点是同一个点的情况下,基于第二点对应的块,确定当前块在参考图像帧中的预测块;在第二点和搜索起点不是同一个点的情况下,根据第二点和初始点的位置距离,确定当前块在参考图像帧中的预测块。
20.可选地,第一确定单元,还被配置为在第二点与初始点的距离超过预设距离且第二点的绝对误差和分别与第一绝对误差和、第二绝对误差和的差值均超过第三预设值的情况下,以初始点为搜索起点、预设距离为步长在参考图像帧的整帧中进行搜索,得到最小绝对误差和的第三点;基于左上角为第三点的块,确定当前块在参考图像帧中的预测块。
21.可选地,第一确定单元,还被配置为在第二点与初始点的距离未超过预设距离或第二点的绝对误差和分别与第一绝对误差和、第二绝对误差和的差值均未超过第三预设值的情况下,基于左上角为第二点的块,确定当前块在参考图像帧中的预测块。
22.可选地,第一确定单元,还被配置为根据搜索起点与运动搜索模式的初始点的位置关系,通过两点搜索方式在搜索起点与初始点相反方向进行搜索,得到最小绝对误差和的第二点。
23.根据本公开实施例的第三方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令,以实现根据本公开的视频编码方法。
24.根据本公开实施例的第四方面,提供了一种计算机可读存储介质,当计算机可读存储介质中的指令被至少一个处理器运行时,促使至少一个处理器执行如上根据本公开的视频编码方法。
25.根据本公开实施例的第五方面,提供了一种计算机程序产品,包括计算机指令,计算机指令被处理器执行时实现根据本公开的视频编码方法。
26.本公开的实施例提供的技术方案至少带来以下有益效果:
27.根据本公开的视频编码方法及装置,在确定帧间预测最终选择的预测模式的过程中,运动搜索模式不再是单独的确定自身的率失真代价,以确定是否采用运动搜索模式为最终的帧间预测模式,而是与合并模式、跳过模式建立关系,具体地,根据合并模式、跳过模式的率失真代价、绝对误差和,以及运动搜索模式下的最小绝对误差和,来确定最终采用哪种预测模式并确定当前块的预测块,通过该方式不仅可以加快帧间预测模式的选择进程,还可以提高运动搜索模式下的预测块的准确性,从而能够加速编码速度,提升编码性能。因此,本公开解决了相关技术中的视频编码方法导致的编码性能低的问题。
28.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
29.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
30.图1示出了基于块的视频编码系统的框图;
31.图2示出了基于块的视频解码系统的示例性框图;
32.图3是示出根据本公开的示例性实施例的视频编码方法的实施场景示意图;
33.图4是根据一示例性实施例示出的一种视频编码方法的流程图;
34.图5是根据一示例性实施例示出的一种两点搜索方式的示意图;
35.图6是根据一示例性实施例示出的一种运动搜索的示意图;
36.图7是根据一示例性实施例示出的一种视频编码装置的框图;
37.图8是根据本公开实施例的一种电子设备800的框图。
具体实施方式
38.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
39.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
40.在此需要说明的是,在本公开中出现的“若干项之中的至少一项”均表示包含“该若干项中的任意一项”、“该若干项中的任意多项的组合”、“该若干项的全体”这三类并列的情况。例如“包括a和b之中的至少一个”即包括如下三种并列的情况:(1)包括a;(2)包括b;(3)包括a和b。又例如“执行步骤一和步骤二之中的至少一个”,即表示如下三种并列的情况:(1)执行步骤一;(2)执行步骤二;(3)执行步骤一和步骤二。
41.下面将首先结合图1和图2对基于块的视频编码系统和视频解码系统的示例进行描述。
42.图1示出了基于块的视频编码系统的框图。输入视频信号包括多个图像帧的信号,每个图像帧可以被逐块处理,这里,块可以例如是但不限于编码树单元(ctu,coding tree unit)、最大编码单元(lcu,largest coding unit)、编码单元(cu,coding unit)、预测单元(pu,prediction unit)和变换单元(tu,transform unit)等。
43.视频编码的原理在于,利用连续的图像帧之间的相似性,以及相同图像帧/条带内部相邻块之间的相似性,对其中部分具有代表性的图像帧或块,按照原始的像素值进行编码,对除具有代表性的图像帧或块之外的其他图像帧或块,则利用连续图像帧之间的相似性或相邻块之间的相似性来预测其像素值,从而实现对视频信号的压缩,以去除空间、时间
维度的冗余。
44.在执行视频编码时,根据利用的是相邻块之间的相似性,还是连续图像帧之间的相似性,可以对当前图像帧的块执行空间预测和/或时间预测。
45.空间预测(或“帧内预测”)使用存储器中存储的、来自相同图像帧/条带中的重建的相邻块(相邻块指已经完成编码的相邻块)的像素(其被称为参考像素)的像素值来预测当前块,得到预测块。空间预测减少了视频信号中固有的空间冗余。
46.时间预测(也称为“帧间预测”或“运动补偿预测”,对应于图1中“运动估计”和“运动补偿”的部分)使用图像帧缓冲器中存储的、已经编码的图像帧(称为“参考图像帧”)中的重建像素(重建像素指已经完成编码的像素)来预测当前块,得到预测块。时间预测减少了视频信号中固有的时间冗余。当前块的时间预测信号通常基于一个或多个预测运动矢量确定,预测运动矢量指示当前块与其时间参考(称为“参考块”,是参考图像帧中的块)之间的运动偏移量和方向。确定预测运动矢量的过程就称为运动估计;基于预测运动矢量、当前块以及参考图像帧,确定参考块的过程,就称为运动补偿,确定出的参考块就作为预测块。此外,如果编码端和解码端支持使用多个参考图像帧,则编码端在向解码端发送编码信息时,还另外发送一个参考图像帧索引,其用于识别时间预测信号来自图像帧缓冲器中的哪个参考图像帧,也就是运动补偿时需要使用哪个参考图像帧。
47.时间预测一般包括合并模式(merge模式)、跳过模式(skip模式)和运动搜索模式,当然也可以包含其他模式,本公开不再一一列举。
48.继续参照图1,在空间和/或时间预测之后,编码器中的空间/时间模式判定,例如基于率失真优化方法来选择最佳预测模式。然后,确定当前块与预测块之间的差异,具体例如是从当前块的各个像素的像素值中减去预测块的相应像素的像素值,以获得预测残差,再对编码模式(时间或空间)、运动信息等预测相关信息和预测残差行编码处理,即可得到当前块的编码信息。编码信息可通过比特流被发送至解码端。此外,基于预测残差和预测块,可确定出当前块的重建信号,也就是当前块中各个像素经过编码压缩后的像素值,并存储在存储器中。在将当前块的重建信号(可称为“重建块”的信号)放入图像帧缓冲器中,以用作对未来块进行编码而使用的参考块之前,可以对重建块应用进一步的环路滤波,例如,但不限于,去块滤波器、像素自适应偏移和自适应环路滤波器等中的至少一项。
49.图2示出了基于块的视频解码系统的示例性框图。如图2所示,解码端接收到视频的比特流后,首先进行解码处理,得到预测相关信息和预测残差。预测相关信息被发送到空间预测单元(如果帧内编码)或时间预测单元(如果帧间编码)以形成预测块。结合预测残差和预测块,可确定出重建块,并存储在存储器中。重建块可以在其被存储在图像帧缓冲器中之前进一步经历环路滤波,例如,但不限于,去块滤波器、像素自适应偏移和自适应环路滤波器等中的至少一项。然后,将图像帧缓冲器中的重建视频输出以供显示器显示,以及用于预测未来的块。在时间预测模式下,可使用当前块的参考图像帧中的对应预测块对当前块执行运动补偿。
50.本公开提供了一种视频编码方法,能够解决相关技术中的视频编码方法导致的编码性能低的问题,下面以视频编码场景为例进行说明。
51.图3是示出根据本公开的示例性实施例的视频编码方法的实施场景示意图,如图3所述,该实施场景包括服务器300、编码端310和解码端320,其中,编码端和解码端包括并不
限于手机、个人计算机等设备,用户终端可以安装获取人脸图像的摄像头,服务器可以是一个服务器,也可以是若干个服务器组成服务器集群,还可以是云计算平台或虚拟化中心。
52.编码端310对视频中每个图像帧分别进行编码,每个图像帧又会划分多个块分别进行编码,对于每个块编码端310执行如下操作,获取当前块分别在合并模式和跳过模式下的率失真代价;在当前块满足预设条件的情况下,通过率失真代价中最小率失真代价对应的模式,确定当前块在参考图像帧中的预测块,其中,预设条件为最小率失真代价对应的模式是跳过模式,或,最小率失真代价小于第一预设值;在当前块不满足预设条件的情况下,基于第一绝对误差和、第二绝对误差和与第三绝对误差和,确定当前块在参考图像帧中的预测块,其中,第一绝对误差和是合并模式下的绝对误差和,第二绝对误差和是跳过模式下的绝对误差和,第三绝对误差和是运动搜索模式下搜索到的最小绝对误差和;基于预测块,对当前块进行编码。在编码结束后,将编码信息写入码流中,发送给解码端320。
53.需要说明的是,编码端310可以独立完成该工作,也可以通过服务器300为其提供数据服务,本公开对此并不进行限定。当通过服务器300为其提供数据服务时,编码端310将当前块的信息发送给服务器300,服务器300获取当前块分别在合并模式和跳过模式下的率失真代价;在当前块满足预设条件的情况下,通过率失真代价中最小率失真代价对应的模式,确定当前块在参考图像帧中的预测块,其中,预设条件为最小率失真代价对应的模式是跳过模式,或,最小率失真代价小于第一预设值;在当前块不满足预设条件的情况下,基于第一绝对误差和、第二绝对误差和与第三绝对误差和,确定当前块在参考图像帧中的预测块,其中,第一绝对误差和是合并模式下的绝对误差和,第二绝对误差和是跳过模式下的绝对误差和,第三绝对误差和是运动搜索模式下搜索到的最小绝对误差和;基于预测块,对当前块进行编码。在编码结束后,将编码信息写入码流中,发送给解码端320。
54.下面,将参照附图详细描述根据本公开的示例性实施例的视频编码方法及装置。
55.图4是根据一示例性实施例示出的一种视频编码方法的流程图,如图4所示,视频编码方法包括以下步骤:
56.在步骤s401中,获取当前块分别在合并模式和跳过模式下的率失真代价。
57.例如,合并模式下的率失真代价计算公式可以如下:
58.rdcost(i)=d(i) +λ*r(i)
ꢀꢀꢀ
(1)
59.其中,d(i)表示当前块采用第i个候选的运动信息编码时的编码失真;r(i)表示当前块采用第i个候选的运动信息编码时,计算下来的所有的标识信息(包括编码标识候选索引的比特消耗)以及残差信息需要消耗的比特数;λ为拉格朗日乘法因子,该因子为常数。
60.需要说明的是,跳过模式下的率失真代价计算方式与合并模式相似,此处不在展开论述。
61.返回图4,在步骤s402中,在当前块不满足预设条件的情况下,基于第一绝对误差和、第二绝对误差和与第三绝对误差和,确定当前块在参考图像帧中的预测块,其中,第一绝对误差和是合并模式下的绝对误差和,第二绝对误差和是跳过模式下的绝对误差和,第三绝对误差和是运动搜索模式下搜索到的最小绝对误差和。
62.具体地,在获取了当前块分别在合并模式(merge模式)和跳过模式(skip模式)下的率失真代价优之后,将率失真代价较小的模式,作为相对优秀的模式,并记录较小的率失真代价(rdcost)为a;如果率失真代价较小的模式不是skip模式,且,a大于等于一定阈值
(即上述第一预设值),此时,进行运动搜索,搜索的方式包括但不限于菱形搜索、全局搜索等,运动搜索后,可以基于合并模式下的绝对误差和、跳过模式下的绝对误差和、运动搜索模式下搜索到的最小绝对误差和,确定当前块在参考图像帧中的预测块。例如,可以比较搜索到的最小绝对误差和与另外两种模式的绝对误差和的大小,根据比较结果选择合适的方式进行运动搜索,来确定当前块在参考图像帧中的预测块。
63.此处简单介绍菱形搜索,即首先确定搜索的初始点,得到初始点的绝对误差和(sum of absolute difference,缩写为sad),再到初始点周围的四个点,获取周围四个点的sad,将这四个点的sad与初始点的sad进行比较,将sad最小的点作为新的搜索起点继续进行搜索,直至多次搜索后sad最小的点没有变化为止,则搜索停止。
64.根据本公开的示例性实施例,基于第一绝对误差和、第二绝对误差和与第三绝对误差和,确定当前块在参考图像帧中的预测块,可以包括:在第一绝对误差和、第二绝对误差和分别与第三绝对误差和的差值均超过第二预设值的情况下,确定第三绝对误差和对应的点为搜索起点;根据搜索起点和运动搜索模式的初始点继续进行搜索,确定当前块在参考图像帧中的预测块。根据本实施例,通过计算合并模式和跳过模式下的绝对误差和,与运动搜索所搜索到的最小绝对误差和的差值,在该差值的比较大时,说明当前最小绝对误差和对应的点,可以作为一个新的搜索起点,开始新一轮的搜索了,从而以该新的搜索起点可以加快搜索的速度。
65.具体地,以运动搜索以菱形搜索方式为例,如果搜到的绝对误差和比合并模式和跳过模式下的绝对误差和均小很多,则结束此次搜索,此时,搜索到的最优点,即比合并模式和跳过模式下的绝对误差和均小很多的绝对误差和对应的点。在确定了最优点后,根据最优点与菱形搜索的初始点继续进行搜索,直到确定出最新的最优点,也即最新的最小绝对误差和对应的点,基于该点确定当前块在参考图像帧中的预测块。
66.需要说明的是,在得到最新的最优点后,以该最优点为左上角的块即为当前块的预测块。
67.根据本公开的示例性实施例,基于第一绝对误差和、第二绝对误差和与第三绝对误差和,确定当前块在参考图像帧中的预测块,可以包括:在运动搜索过程中连续搜索到第三绝对误差和对应的点为第一点的次数超过预定次数的情况下,确定第一点为搜索起点;根据搜索起点和运动搜索模式的初始点继续进行搜索,确定当前块在参考图像帧中的预测块。根据本实施例,在连续搜索到的最小绝对误差对应的点是同一点的次数超过一定次数时,说明这一点也可以作为一个新的搜索起点,开始新一轮的搜索了,从而以该新的搜索起点也可以加快搜索的速度。
68.具体地,以运动搜索以菱形搜索方式为例,如果菱形搜索的过程中连续i次搜索到的最小绝对误差和是同一点j,则结束此次搜索。此时搜索到的最优点即为j。在确定了最优点后,根据最优点与菱形搜索的初始点继续进行搜索,直到确定出最新的最优点,也即最新的最小绝对误差和对应的点,基于该点确定当前块在参考图像帧中的预测块。
69.根据本公开的示例性实施例地,基于第一绝对误差和、第二绝对误差和与第三绝对误差和,确定当前块在参考图像帧中的预测块,可以包括:在第一绝对误差和、第二绝对误差和分别与第三绝对误差和的差值均未超过第二预设值且运动搜索过程中连续搜索到第三绝对误差和对应的点为第一点的次数未超过预定次数的情况下,继续搜索直至达到参
考图像帧的搜索区域的边界,确定搜索区域中最小绝对误差和对应的点为搜索起点;根据搜索起点和运动搜索模式的初始点继续进行搜索,确定当前块在参考图像帧中的预测块。
70.根据本实施例,通过计算合并模式和跳过模式下的绝对误差和,与运动搜索所搜索到的最小绝对误差和的差值比较小,且连续搜索到的最小绝对误差对应点不是同一点时,可以继续在参考图像帧的搜索区域中继续进行搜索,以便得到更优的搜索起点,来开始新一轮的搜索,通过该方式可以获取到相对优秀的搜索起点,以便得到更准确的预测块。
71.具体地,以运动搜索以菱形搜索方式为例,如果搜到的绝对误差和比合并模式或跳过模式下的绝对误差和没有小很多,且菱形搜索的过程中连续i次搜索到的最小绝对误差和不是同一点j,则可以继续在参考图像帧的搜索区域中继续进行搜索,直至达到搜索区域的边界,此时确定出整个搜索过程中最小绝对误差对应的点,以该点作为此次搜索到的最优点。从而可以基于该最优点与菱形搜索的初始点继续进行搜索,直到确定出最新的最优点,也即最新的最小绝对误差和对应的点,基于该点确定当前块在参考图像帧中的预测块。
72.根据本公开的示例性实施例,根据搜索起点和运动搜索模式的初始点继续进行搜索,确定当前块在参考图像帧中的预测块,可以包括:根据搜索起点与运动搜索模式的初始点的位置关系,在搜索起点附近进行搜索,得到最小绝对误差和的第二点;在第二点和搜索起点是同一个点的情况下,基于第二点对应的块,确定当前块在参考图像帧中的预测块;在第二点和搜索起点不是同一个点的情况下,根据第二点和初始点的位置距离,确定当前块在参考图像帧中的预测块。根据本实施例,在新一轮搜索到最小绝对误差和对应的点与本次搜索的搜索起点是同一个点的时候,可以根据该相同的点确定预测块,否则结合新一轮搜索到的最小绝对误差和对应的点和运动搜索的初始点的位置距离,来确定相对准确的预测块。
73.具体地,以运动搜索以菱形搜索方式为例,基于上述最优点与菱形搜索的初始点继续进行搜索时,可以以上述最优点为新一轮搜索的搜索起点,根据搜索起点与菱形搜索的初始点的位置关系,在该搜索起点附近进行搜索,确定出最新的最优点,即上述实施例的第二点。此时,可以判断第二点与上述搜索起点是否是同一点,当判断结果为是同一点时,可以基于第二点直接确定当前块在参考图像帧中的预测块;当判断结果不是同一点时,可以基于第二点和初始点的位置距离,继续进行搜索,直到确定出下一次的最优点,也即下一次的最小绝对误差和对应的点,基于该点确定当前块在参考图像帧中的预测块。
74.根据本公开的示例性实施例,根据第二点和初始点的位置距离,确定当前块在参考图像帧中的预测块,可以包括:在第二点与初始点的距离超过预设距离且第二点的绝对误差和分别与第一绝对误差和、第二绝对误差和的差值均超过第三预设值的情况下,以初始点为搜索起点、预设距离为步长在参考图像帧的整帧中进行搜索,得到最小绝对误差和的第三点;基于左上角为第三点的块,确定当前块在参考图像帧中的预测块。根据本实施例,在第二点和初始点的距离超过一定距离且此时的第二点的绝对误差和比合并模式和跳过模式的绝对误差和大很多,则说明上一搜索过程不准确,需要按初始点重新进行搜索,以便得到更准确的预测块。
75.具体地,以运动搜索以菱形搜索方式为例,如果确定出的最新的最优点,也即本实施例的第二点,如果第二点与运动搜索的初始点的距离超过一定距离g,并且目前搜索到的
绝对误差和比merge模式和skip模式的绝对误差和大很多,以初始点为搜索起点、预设距离为步长在参考图像帧的整帧中进行搜索,得到本次搜索的最小绝对误差和的点,即本实施例的第三点,基于左上角为该第三点的块,确定当前块在参考图像帧中的预测块。
76.根据本公开的示例性实施例,根据第二点和初始点的位置距离,确定当前块在参考图像帧中的预测块,可以包括:在第二点与初始点的距离未超过预设距离或第二点的绝对误差和分别与第一绝对误差和、第二绝对误差和的差值均未超过第三预设值的情况下,基于左上角为第二点的块,确定当前块在参考图像帧中的预测块。根据本实施例,在第二点和初始点的距离未超过一定距离或此时的第二点的绝对误差和没有比合并模式和跳过模式的绝对误差和大很多,则说明上一搜索过程是准确的,根据第二点即可确定到相对准确的预测块。
77.具体地,以运动搜索以菱形搜索方式为例,如果确定出的最新的最优点,也即本实施例的第二点,如果第二点与运动搜索的初始点的距离未超过一定距离g,或者目前搜索到的绝对误差和没有比merge模式和skip模式的绝对误差和大很多,则可以直接基于左上角为该第二点的块,确定当前块在参考图像帧中的预测块。
78.根据本公开的示例性实施例,根据搜索起点与运动搜索模式的初始点的位置关系,在搜索起点附近进行搜索,得到最小绝对误差和的第二点,可以包括:根据搜索起点与运动搜索模式的初始点的位置关系,通过两点搜索方式在搜索起点与初始点相反方向进行搜索,得到最小绝对误差和的第二点。根据本实施例,通过两点搜索方法,可以加快搜索进度。
79.具体地,仍以运动搜索以菱形搜索方式为例,如图5所示,可以根据搜索起点3与运动搜索的初始点0之间的关系,按照两点搜索方式在3旁边按照点b和d进行搜索,找到本次搜索的最优点。
80.根据本公开的示例性实施例,在当前块满足预设条件的情况下,通过率失真代价中最小率失真代价对应的模式,确定当前块在参考图像帧中的预测块,其中,预设条件为最小率失真代价对应的模式是跳过模式,或,最小率失真代价小于第一预设值。
81.具体地,上述第一预设值可以根据需要设定,对此本公开并不进行限定。例如,在获取了当前块分别在合并模式(merge模式)和跳过模式(skip模式)下的率失真代价优之后,将率失真代价较小的模式,作为相对优秀的模式,并记录较小的率失真代价(rdcost)为a;如果率失真代价较小的模式为skip模式,或者,a小于一定阈值(即上述第一预设值),此时,不进行运动搜索,直接采用skip模式或者小于一定阈值的a对应的模式,确定当前块在参考图像帧中的预测块。
82.在步骤s403中,基于预测块,对当前块进行编码。
83.例如,可以基于该预测块计算运动搜索模式下,当前块的率失真代价,并与帧内预测模式的率失真代价进行比较,从而确定出编码过程中最终采用的预测模式,对当前块进行编码。需要说明的是,如果已经确定采用帧间预测模式,则直接基于该预测块,对当前块进行编码即可。
84.为了更好理解本公开,下面以图6所示的具体实施例系统的进行说明,需要说明的是,图6仅仅是一个可选的搜索过程,本公开还可以有其他搜索过程,对此本公开并不进行限定。
85.图6是根据一示例性实施例示出的一种运动搜索的示意图,如图6所示,先获取当前块分别在合并模式(merge模式)和跳过模式(skip模式)下的率失真代价,将率失真代价较小的模式,作为相对优秀的模式,并记录较小的率失真代价(rdcost)为a。如果率失真代价较小的模式为skip模式,或者,a小于一定阈值(即上述第一预设值),不进行运动搜索,也即结束运动搜索,此时直接采用skip模式或者小于一定阈值的a对应的模式,确定当前块在参考图像帧中的预测块;如果率失真代价较小的模式不是skip模式,且,a大于等于一定阈值(即上述第一预设值),可以按菱形搜索方式进行运动搜索。如果菱形搜索的过程中连续i次搜索到的最小绝对误差和是同一点j,或,搜到的绝对误差和比合并模式和跳过模式下的绝对误差和均小很多,则结束此次搜索,获取此次搜索的最优点(此次搜索中最小绝对误差和对应的点);如果搜到的绝对误差和比合并模式或跳过模式下的绝对误差和没有小很多,且菱形搜索的过程中连续i次搜索到的最小绝对误差和不是同一点j,则可以继续在参考图像帧的搜索区域中继续进行搜索,直至达到搜索区域的边界,此时确定出整个搜索过程中最小绝对误差对应的点,以该点作为此次搜索到的最优点k。在确定了最优点k后,可以以上述最优点k为新一轮搜索的搜索起点,根据搜索起点与菱形搜索的初始点的位置关系,在该搜索起点附近进行搜索,确定出最新的最优点m,即上述实施例的第二点,例如,如图5所示,可以根据搜索起点3与运动搜索的初始点0之间的关系,按照两点搜索方式在3旁边按照点b和d进行搜索,找到本次搜索的最优点m(即第二点)。然后,判断m点与上述搜索起点是否是同一点,当判断结果为是同一点时,可以结束运动搜索,此时可以基于m点直接确定当前块在参考图像帧中的预测块;当判断结果不是同一点时,可以基于m点和初始点的位置距离,继续进行搜索,直到确定出下一次的最优点n,例如,如果m点与运动搜索的初始点的距离超过一定距离g,并且目前搜索到的绝对误差和比merge模式和skip模式的绝对误差和大很多,以初始点为搜索起点、g为步长在参考图像帧的整帧中进行搜索,得到本次搜索的最小绝对误差和的点n,即本实施例的第三点,此时可以结束运动搜索,基于左上角为该第三点的块,确定当前块在参考图像帧中的预测块;如果m点与运动搜索的初始点的距离未超过一定距离g,或者目前搜索到的绝对误差和没有比merge模式和skip模式的绝对误差和大很多,也结束运动搜索,即直接基于左上角为该m点的块,确定当前块在参考图像帧中的预测块。
86.综上,本公开的技术方案根据其他预测模式以及图像的特性,快速的进行运动搜索流程,以达到加速编码器的目的,通过本公开能够大幅提升编码器的编码速度。
87.图7是根据一示例性实施例示出的一种视频编码装置的框图。参照图7,该装置包括获取单元70、第一确定单元72和编码单元74。
88.获取单元70,被配置为获取当前块分别在合并模式和跳过模式下的率失真代价;第一确定单元72,被配置为在当前块不满足预设条件的情况下,基于第一绝对误差和、第二绝对误差和与第三绝对误差和,确定当前块在参考图像帧中的预测块,其中,第一绝对误差和是合并模式下的绝对误差和,第二绝对误差和是跳过模式下的绝对误差和,第三绝对误差和是运动搜索模式下搜索到的最小绝对误差和,预设条件为率失真代价中最小率失真代价对应的模式是跳过模式,或,最小率失真代价小于第一预设值;编码单元74,被配置为基于预测块,对当前块进行编码。
89.根据本公开的示例性实施例,视频编码装置还包括:第二确定单元76,被配置为在
当前块满足预设条件的情况下,通过率失真代价中最小率失真代价对应的模式,确定当前块在参考图像帧中的预测块。
90.根据本公开的示例性实施例,第一确定单元72,还被配置为在第一绝对误差和、第二绝对误差和分别与第三绝对误差和的差值均超过第二预设值的情况下,确定第三绝对误差和对应的点为搜索起点;根据搜索起点和运动搜索模式的初始点继续进行搜索,确定当前块在参考图像帧中的预测块。
91.根据本公开的示例性实施例,第一确定单元72,还被配置为在运动搜索过程中连续搜索到第三绝对误差和对应的点为第一点的次数超过预定次数的情况下,确定第一点为搜索起点;根据搜索起点和运动搜索模式的初始点继续进行搜索,确定当前块在参考图像帧中的预测块。
92.根据本公开的示例性实施例,第一确定单元72,还被配置为在第一绝对误差和、第二绝对误差和分别与第三绝对误差和的差值均未超过第二预设值且运动搜索过程中连续搜索到第三绝对误差和对应的点为第一点的次数未超过预定次数的情况下,继续搜索直至达到参考图像帧的搜索区域的边界,确定搜索区域中最小绝对误差和对应的点为搜索起点;根据搜索起点和运动搜索模式的初始点继续进行搜索,确定当前块在参考图像帧中的预测块。
93.根据本公开的示例性实施例,第一确定单元72,还被配置为根据搜索起点与运动搜索模式的初始点的位置关系,在搜索起点附近进行搜索,得到最小绝对误差和的第二点;在第二点和搜索起点是同一个点的情况下,基于第二点对应的块,确定当前块在参考图像帧中的预测块;在第二点和搜索起点不是同一个点的情况下,根据第二点和初始点的位置距离,确定当前块在参考图像帧中的预测块。
94.根据本公开的示例性实施例,第一确定单元72,还被配置为在第二点与初始点的距离超过预设距离且第二点的绝对误差和分别与第一绝对误差和、第二绝对误差和的差值均超过第三预设值的情况下,以初始点为搜索起点、预设距离为步长在参考图像帧的整帧中进行搜索,得到最小绝对误差和的第三点;基于左上角为第三点的块,确定当前块在参考图像帧中的预测块。
95.根据本公开的示例性实施例,第一确定单元72,还被配置为在第二点与初始点的距离未超过预设距离或第二点的绝对误差和分别与第一绝对误差和、第二绝对误差和的差值均未超过第三预设值的情况下,基于左上角为第二点的块,确定当前块在参考图像帧中的预测块。
96.根据本公开的示例性实施例,第一确定单元72,还被配置为根据搜索起点与运动搜索模式的初始点的位置关系,通过两点搜索方式在搜索起点与初始点相反方向进行搜索,得到最小绝对误差和的第二点。
97.根据本公开的实施例,可提供一种电子设备。图8是根据本公开实施例的一种电子设备800的框图,该电子设备包括至少一个存储器801和至少一个处理器802,所述至少一个存储器中存储有计算机可执行指令集合,当计算机可执行指令集合被至少一个处理器执行时,执行根据本公开实施例的视频编码方法。
98.作为示例,电子设备800可以是pc计算机、平板装置、个人数字助理、智能手机、或其他能够执行上述指令集合的装置。这里,电子设备1000并非必须是单个的电子设备,还可
以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。电子设备800还可以是集成控制系统或系统管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以接口互联的便携式电子设备。
99.在电子设备800中,处理器802可包括中央处理器(cpu)、图形处理器(gpu)、可编程逻辑装置、专用处理器系统、微控制器或微处理器。作为示例而非限制,处理器802还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
100.处理器802可运行存储在存储器中的指令或代码,其中,存储器801还可以存储数据。指令和数据还可经由网络接口装置而通过网络被发送和接收,其中,网络接口装置可采用任何已知的传输协议。
101.存储器801可与处理器802集成为一体,例如,将ram或闪存布置在集成电路微处理器等之内。此外,存储器801可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库系统可使用的其他存储装置。存储器801和处理器802可在操作上进行耦合,或者可例如通过i/o端口、网络连接等互相通信,使得处理器802能够读取存储在存储器801中的文件。
102.此外,电子设备800还可包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。电子设备的所有组件可经由总线和/或网络而彼此连接。
103.根据本公开的实施例,还可提供一种计算机可读存储介质,其中,当计算机可读存储介质中的指令被至少一个处理器运行时,促使至少一个处理器执行本公开实施例的视频编码方法。这里的计算机可读存储介质的示例包括:只读存储器(rom)、随机存取可编程只读存储器(prom)、电可擦除可编程只读存储器(eeprom)、随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、闪存、非易失性存储器、cd-rom、cd-r、cd+r、cd-rw、cd+rw、dvd-rom、dvd-r、dvd+r、dvd-rw、dvd+rw、dvd-ram、bd-rom、bd-r、bd-r lth、bd-re、蓝光或光盘存储器、硬盘驱动器(hdd)、固态硬盘(ssd)、卡式存储器(诸如,多媒体卡、安全数字(sd)卡或极速数字(xd)卡)、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,所述任何其他装置被配置为以非暂时性方式存储计算机程序以及任何相关联的数据、数据文件和数据结构并将所述计算机程序以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机使得处理器或计算机能执行所述计算机程序。上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,此外,在一个示例中,计算机程序以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得计算机程序以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执行。
104.根据本公开实施例,提供了一种计算机程序产品,包括计算机指令,计算机指令被处理器执行时实现本公开实施例的视频编码方法。
105.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
106.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并
且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

技术特征:
1.一种视频编码方法,其特征在于,包括:获取当前块分别在合并模式和跳过模式下的率失真代价;在所述当前块不满足预设条件的情况下,基于第一绝对误差和、第二绝对误差和与第三绝对误差和,确定所述当前块在参考图像帧中的预测块,其中,所述第一绝对误差和是所述合并模式下的绝对误差和,所述第二绝对误差和是所述跳过模式下的绝对误差和,所述第三绝对误差和是运动搜索模式下搜索到的最小绝对误差和,所述预设条件为所述率失真代价中最小率失真代价对应的模式是所述跳过模式,或,所述最小率失真代价小于第一预设值;基于所述预测块,对所述当前块进行编码。2.如权利要求1所述的视频编码方法,其特征在于,在基于所述预测块,对所述当前块进行编码之前,所述方法还包括:在所述当前块满足所述预设条件的情况下,通过所述率失真代价中最小率失真代价对应的模式,确定所述当前块在参考图像帧中的预测块。3.如权利要求1所述的视频编码方法,其特征在于,所述基于第一绝对误差和、第二绝对误差和与第三绝对误差和,确定所述当前块在所述参考图像帧中的预测块,包括:在所述第一绝对误差和、所述第二绝对误差和分别与所述第三绝对误差和的差值均超过第二预设值的情况下,确定所述第三绝对误差和对应的点为搜索起点;根据所述搜索起点和运动搜索模式的初始点继续进行搜索,确定所述当前块在所述参考图像帧中的预测块。4.如权利要求1所述的视频编码方法,其特征在于,所述基于第一绝对误差和、第二绝对误差和与第三绝对误差和,确定所述当前块在所述参考图像帧中的预测块,包括:在运动搜索过程中连续搜索到所述第三绝对误差和对应的点为第一点的次数超过预定次数的情况下,确定所述第一点为搜索起点;根据所述搜索起点和运动搜索模式的初始点继续进行搜索,确定所述当前块在所述参考图像帧中的预测块。5.如权利要求1所述的视频编码方法,其特征在于,所述基于第一绝对误差和、第二绝对误差和与第三绝对误差和,确定所述当前块在所述参考图像帧中的预测块,包括:在所述第一绝对误差和、所述第二绝对误差和分别与所述第三绝对误差和的差值均未超过第二预设值且运动搜索过程中连续搜索到所述第三绝对误差和对应的点为第一点的次数未超过预定次数的情况下,继续搜索直至达到所述参考图像帧的搜索区域的边界,确定所述搜索区域中最小绝对误差和对应的点为搜索起点;根据所述搜索起点和运动搜索模式的初始点继续进行搜索,确定所述当前块在所述参考图像帧中的预测块。6.如权利要求3至5中任一项所述的视频编码方法,其特征在于,所述根据所述搜索起点和运动搜索模式的初始点继续进行搜索,确定所述当前块在所述参考图像帧中的预测块,包括:根据所述搜索起点与运动搜索模式的初始点的位置关系,在所述搜索起点附近进行搜索,得到最小绝对误差和的第二点;在所述第二点和所述搜索起点是同一个点的情况下,基于所述第二点对应的块,确定
所述当前块在所述参考图像帧中的预测块;在所述第二点和所述搜索起点不是同一个点的情况下,根据所述第二点和所述初始点的位置距离,确定所述当前块在所述参考图像帧中的预测块。7.如权利要求6所述的视频编码方法,其特征在于,根据所述第二点和所述初始点的位置距离,确定所述当前块在所述参考图像帧中的预测块,包括:在所述第二点与所述初始点的距离超过预设距离且所述第二点的绝对误差和分别与所述第一绝对误差和、所述第二绝对误差和的差值均超过第三预设值的情况下,以所述初始点为搜索起点、所述预设距离为步长在所述参考图像帧的整帧中进行搜索,得到最小绝对误差和的第三点;基于左上角为所述第三点的块,确定所述当前块在所述参考图像帧中的预测块。8.如权利要求6所述的视频编码方法,其特征在于,根据所述第二点和所述初始点的位置距离,确定所述当前块在所述参考图像帧中的预测块,包括:在所述第二点与所述初始点的距离未超过预设距离或所述第二点的绝对误差和分别与所述第一绝对误差和、所述第二绝对误差和的差值均未超过第三预设值的情况下,基于左上角为所述第二点的块,确定所述当前块在所述参考图像帧中的预测块。9.如权利要求6所述的视频编码方法,其特征在于,所述根据所述搜索起点与运动搜索模式的初始点的位置关系,在所述搜索起点附近进行搜索,得到最小绝对误差和的第二点,包括:根据所述搜索起点与运动搜索模式的初始点的位置关系,通过两点搜索方式在所述搜索起点与所述初始点相反方向进行搜索,得到最小绝对误差和的第二点。10.一种视频编码装置,其特征在于,包括:获取单元,被配置为获取当前块分别在合并模式和跳过模式下的率失真代价;第一确定单元,被配置为在所述当前块不满足预设条件的情况下,基于第一绝对误差和、第二绝对误差和与第三绝对误差和,确定所述当前块在参考图像帧中的预测块,其中,所述第一绝对误差和是所述合并模式下的绝对误差和,所述第二绝对误差和是所述跳过模式下的绝对误差和,所述第三绝对误差和是运动搜索模式下搜索到的最小绝对误差和,所述预设条件为所述率失真代价中最小率失真代价对应的模式是所述跳过模式,或,所述最小率失真代价小于第一预设值;编码单元,被配置为基于所述预测块,对所述当前块进行编码。11.一种电子设备,其特征在于,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如权利要求1至9中任一项所述的视频编码方法。12.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令被至少一个处理器运行时,促使所述至少一个处理器执行如权利要求1至9中任一项所述的视频编码方法。

技术总结
本公开关于一种视频编码方法及装置。视频编码方法包括:获取当前块分别在合并模式和跳过模式下的率失真代价;在当前块不满足预设条件的情况下,基于第一绝对误差和、第二绝对误差和与第三绝对误差和,确定当前块在参考图像帧中的预测块,其中,第一绝对误差和是合并模式下的绝对误差和,第二绝对误差和是跳过模式下的绝对误差和,第三绝对误差和是运动搜索模式下搜索到的最小绝对误差和,其中,预设条件为最小率失真代价对应的模式是跳过模式,或,最小率失真代价小于第一预设值;基于预测块,对当前块进行编码。对当前块进行编码。对当前块进行编码。


技术研发人员:郑羽珊
受保护的技术使用者:北京达佳互联信息技术有限公司
技术研发日:2023.07.11
技术公布日:2023/10/19
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐