掌桥专利:专业的专利平台
掌桥专利
首页

运动矢量预测方法、系统、电子设备及存储介质

文献发布时间:2023-06-19 19:33:46


运动矢量预测方法、系统、电子设备及存储介质

技术领域

本申请涉及数字视频处理技术领域,特别是涉及一种运动矢量预测方法、系统、电子设备及存储介质。

背景技术

在数字视频处理领域,视频编码方法主要包括帧内压缩和帧间压缩,其中帧间压缩是其压缩比的主要来源,因此现有的视频压缩标准大多采用基于运动估计的帧间压缩方案。

运动估计方法的原理是先将当前帧划分成若干大小相同块(即当前块,一般按照64×64的CTB块(Coding Tree Block,编码树块)进行划分,再将一个CTB块划分成16×16的CU块(Coding Unit,编码单元),然后对每个当前块在参考帧中设定大小的窗口内(即参考窗)搜索与之最匹配的参考块,当前块和最匹配的参考块的位置差称为运动矢量。

运动矢量预测是帧间预测的重要组成部分,在对当前帧中的像素进行预测时,需要计算当前帧相对于参考帧的相对位移量。要达成该目的,就要读取参考帧中的像素点。参考帧的像素点读取需要在比当前块所在的CTB块周围更大的搜索范围内(即参考窗)进行参考像素搜索,并将当前块和参考窗中的每个参考块的像素进行SAD(Sum of absolutedifferences,绝对差值和)计算,从而在参考帧中找到与当前块最匹配的参考块(即最佳匹配块),进而得到最优运动矢量。

现有技术中,通常是将参考窗中的参考像素全部读取后再进行SAD计算,这样会大大降低运动矢量的计算速度,而运动矢量的处理时延的增加也直接影响视频编解码的整体效率。

因此,如何实现运动矢量的快速计算以提高视频编解码的效率,是本领域技术人员亟待解决的问题。

发明内容

本申请的目的在于提供一种运动矢量预测方法,在完成部分参考像素点数据的读取后立即进行绝对差值和计算,并在后续读取参考像素点数据的同时同步进行绝对差值和的计算,提高了绝对差值和计算速度,从而实现运动矢量的快速计算,有效提高视频编解码效率。本申请还提供一种运动矢量预测系统、装置及存储介质,具有相同的技术效果。

本申请的第一个目的为提供一种运动矢量预测方法。

本申请的上述申请目的一是通过以下技术方案得以实现的:

一种运动矢量预测方法,包括如下步骤:

获取当前块和参考窗,其中,所述参考窗的大小为M×M’,所述当前块的大小为N×N,M、M’和N均为正整数,且M>N,M’>N;

逐行或逐列读取所述参考窗的像素点数据,当已读取的像素点的行数达到N或列数达到N列时,基于已读取的像素点数据进行至少一个参考块与所述当前块的绝对差值和计算,得到至少一个候选绝对差值和计算值;

采用蛇形搜索方式或螺旋搜索方式遍历整个参考窗并读取所述参考窗的剩余的像素点数据;

在遍历参考窗的过程中,基于已读取的像素点数据进行所述参考窗中剩余参考块与所述当前块的绝对差值和计算,得到所述剩余参考块对应的候选绝对差值和计算值;

基于全部候选绝对差值和计算值确定运动矢量值。

优选地,在逐行或逐列读取所述参考窗的像素点数据之前,所述方法还包括:

基于预设搜索起始点在所述参考窗内划分参考宏块,其中,

所述参考宏块的大小为M×(N+L),L整数,且0≤L<M-N,或者

所述参考宏块的大小为(N+L)×M’,L整数,且0≤L<M’-N。

优选地,所述逐行或逐列读取所述参考窗的像素点数据包括:

从所述预设搜索起始点开始,逐行或逐列读取所述参考宏块内的像素点数据。

优选地,采用蛇形搜索方式遍历整个参考窗并读取所述参考窗的剩余的像素点数据。

优选地,所述采用蛇形搜索方式或螺旋搜索方式遍历整个参考窗并读取所述参考窗的剩余的像素点数据包括:

当以逐行方式读取所述参考宏块内的像素点数据,且以所述参考窗的最左上角的像素点为所述预设起始点时,按照如下流程读取所述参考宏块内的像素点数据:

a、从第N+1开始,逐行向下读取所述参考宏块内的像素点数据;

b、当读取完所述参考宏块内的最下面一行像素点数据后,将所述参考宏块向右移动预设距离,并继续从下至上逐行读取所述参考宏块内的像素点数据,其中,所述预设距离根据所述当前块的大小确定;

c、当读取完所述参考宏块内的最上面一行像素点数据后,将所述参考宏块向右移动预设距离,并继续从上至下逐行读取所述参考宏块内的像素点数据;

d、重复执行步骤b~c,直到读取完所述参考窗内的全部像素点数据。

优选地,所述基于全部候选绝对差值和计算值确定运动矢量值包括:

从所述全部候选绝对差值和计算值中确定最小绝对差值和计算值;

将所述最小绝对差值和计算值对应的参考块作为所述当前块的最佳匹配块;

基于所述当前块和所述最佳匹配块确定所述运动矢量值。

本申请的第二个目的为提供一种运动矢量预测系统。

本申请的上述申请目的二是通过以下技术方案得以实现的:

一种运动矢量预测系统,包括:

像素块获取模块,用于获取当前块和参考窗,其中,所述参考窗的大小为M×M’,所述当前块的大小为N×N,M、M’和N均为正整数,且M>N,M’>N;

第一像素点数据读取模块,用于逐行或逐列读取所述参考窗的像素点数据,当已读取的像素点的行数达到N或列数达到N列时,基于已读取的像素点数据进行至少一个参考块与所述当前块的绝对差值和计算,得到至少一个候选绝对差值和计算值;

第二像素点数据读取模块,用于采用蛇形搜索方式或螺旋搜索方式遍历整个参考窗并读取所述参考窗的剩余的像素点数据;

绝对差值和计算模块,用于在遍历参考窗的过程中,基于已读取的像素点数据进行所述参考窗中剩余参考块与所述当前块的绝对差值和计算,得到所述剩余参考块对应的候选绝对差值和计算值;以及

运动矢量值确定模块,用于基于全部候选绝对差值和计算值确定运动矢量值。绝对差值和计算模块,用于在遍历参考窗的过程中,基于已读取的像素点数据进行所述参考窗中剩余参考块与所述当前块的绝对差值和计算,得到所述剩余参考块对应的候选绝对差值和计算值;以及

运动矢量值确定模块,用于基于全部候选绝对差值和计算值确定运动矢量值。

优选地,所述系统还包括:

参考宏块划分模块,用于在逐行或逐列读取所述参考窗的像素点数据之前,基于预设搜索起始点在所述参考窗内划分参考宏块,其中,

所述参考宏块的大小为M×(N+L),L整数,且0≤L<M-N,或者

所述参考宏块的大小为(N+L)×M’,L整数,且0≤L<M’-N。

优选地,所述第一像素点数据读取模块在执行逐行或逐列读取所述参考窗的像素点数据时具体用于:

从所述预设搜索起始点开始,逐行或逐列读取所述参考宏块内的像素点数据;

相应地,所述当已读取的像素点的行数达到N或列数达到N列时,基于已读取的像素点数据进行至少一个参考块与所述当前块的绝对差值和计算,得到至少一个候选绝对差值和计算值包括:

当读取行数达到N或读取列数达到N时,基于已读取的像素点数据进行至少一个参考块与所述当前块的绝对差值和计算,得到至少一个候选绝对差值和计算值。

优选地,所述蛇形搜索方式或螺旋搜索方式为蛇形搜索方式。

优选地,所述第二像素点数据读取模块具体用于:

当以逐行方式读取所述参考宏块内的像素点数据,且以所述参考窗的最左上角的像素点为所述预设起始点时,按照如下流程读取所述参考宏块内的像素点数据:

a、从第N+1开始,逐行向下读取所述参考宏块内的像素点数据;

b、当读取完所述参考宏块内的最下面一行像素点数据后,将所述参考宏块向右移动预设距离,并继续从下至上逐行读取所述参考宏块内的像素点数据,其中,所述预设距离根据所述当前块的大小确定;

c、当读取完所述参考宏块内的最上面一行像素点数据后,将所述参考宏块向右移动预设距离,并继续从上至下逐行读取所述参考宏块内的像素点数据;

d、重复执行步骤b~c,直到读取完所述参考窗内的全部像素点数据。

优选地,所述运动矢量值确定模块具体用于:

从所述全部候选绝对差值和计算值中确定最小绝对差值和计算值;

将所述最小绝对差值和计算值对应的参考块作为所述当前块的最佳匹配块;

基于所述当前块和所述最佳匹配块确定所述运动矢量值。

本申请的第三个目的为提供一种电子设备。优选地,所述蛇形搜索方式或螺旋搜索方式为蛇形搜索方式。

优选地,所述第二像素点数据读取模块具体用于:

当以逐行方式读取所述参考宏块内的像素点数据,且以所述参考窗的最左上角的像素点为所述预设起始点时,按照如下流程读取所述参考宏块内的像素点数据:

a、从第N+1开始,逐行向下读取所述参考宏块内的像素点数据;

b、当读取完所述参考宏块内的最下面一行像素点数据后,将所述参考宏块向右移动预设距离,并继续从下至上逐行读取所述参考宏块内的像素点数据,其中,所述预设距离根据所述当前块的大小确定;

c、当读取完所述参考宏块内的最上面一行像素点数据后,将所述参考宏块向右移动预设距离,并继续从上至下逐行读取所述参考宏块内的像素点数据;

d、重复执行步骤b~c,直到读取完所述参考窗内的全部像素点数据。

优选地,所述运动矢量值确定模块具体用于:

从所述全部候选绝对差值和计算值中确定最小绝对差值和计算值;

将所述最小绝对差值和计算值对应的参考块作为所述当前块的最佳匹配块;

基于所述当前块和所述最佳匹配块确定所述运动矢量值。

本申请的第三个目的为提供一种电子设备。

本申请的上述申请目的三是通过以下技术方案得以实现的:

一种电子设备,包括:

存储器、处理器以及存储于所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述本申请的第一个目的中任意一项所述的运动矢量预测方法的步骤。

本申请的第四个目的为提供一种计算机可读存储介质。

本申请的上述申请目的四是通过以下技术方案得以实现的:

一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述本申请的第一个目的中任意一项所述的运动矢量预测方法的步骤。

综上所述,本申请公开了一种运动矢量预测方法、系统、电子设备及存储介质,在视频编解码过程中,当需要进行运动矢量预测时,首先获取当前块和参考窗,其中,所述参考窗的大小为M×M’,所述当前块的大小为N×N,M、M’和N均为正整数,且M>N,M’>N;然后逐行或逐列读取所述参考窗的像素点数据,当已读取的像素点的行数达到N或列数达到N列时,基于已读取的像素点数据进行至少一个参考块与所述当前块的绝对差值和计算,得到至少一个候选绝对差值和计算值;接着采用蛇形搜索方式或螺旋搜索方式遍历整个参考窗并读取所述参考窗的剩余的像素点数据;接着在遍历参考窗的过程中,基于已读取的像素点数据进行所述参考窗中剩余参考块与所述当前块的绝对差值和计算,得到所述剩余参考块对应的候选绝对差值和计算值;最后基于全部候选绝对差值和计算值确定运动矢量值。

本申请在完成部分参考像素点数据的读取后立即进行绝对差值和计算,并在后续读取参考像素点数据的同时同步进行绝对差值和的计算,提高了绝对差值和计算速度,从而实现运动矢量的快速计算,有效提高视频编解码效率,解决了现有技术中通过将参考窗中的参考像素全部读取后再进行绝对差值和计算导致的大大降低运动矢量的计算速度,导致运动矢量的处理时延增加,从而直接影响视频编解码的整体效率的问题。

附图说明

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

图1为本申请实施例中一种运动矢量预测方法的流程示意图;

图2为本申请实施例中参考窗的像素点数据读取和绝对和差值计算的具体过程的示意图;

图3为本申请实施例中步骤A中像素点数据读取和绝对和差值计算的具体过程的示意图,其中,

(a)为步骤A中从上至下逐行读取16行参考像素点数据的示意图,

(b)为步骤A中对读取完成的16行参考像素点数据计算8个候选绝对差值和计算值(SAD0~SAD7)的示意图;

图4为本申请实施例中一种运动矢量预测系统的结构示意图;

图5为本申请实施例中一种电子设备的结构示意图。

具体实施方式

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

如图1所示,本申请实施例提供了一种运动矢量预测方法,所述方法可以包括如下步骤:

S101,获取当前块和参考窗,其中,参考窗的大小为M×M’,当前块的大小为N×N,M、M’和N均为正整数,且M>N,M’>N;

运动矢量是当前帧图像中的当前块和参考帧图像的参考窗中最匹配的参考块的位置差,因此,当需要进行运动矢量预测时,首先需要从当前帧图像和参考帧图像中分别获取到当前块和参考窗,设参考窗的大小为M×M’(即参考窗的横向像素点个数为M,纵向像素点个数为M’,也就是说参考窗向像素块大小为M列×M’行),当前块的大小为N×N(即当前块的横向像素点个数为N,纵向像素点个数为N,也就是说参考窗向像素块大小为N列×N行)。由于参考帧的像素点读取需要在比当前块所在的CTB块周围更大的搜索范围内(即参考窗)进行参考像素搜索,因此,M和M’的取值需要大于N的取值。

可以理解,当前块和参考窗的大小根据视频编解码系统的处理时延要求进行具体设置。例如,参考块的大小可以是设置为64×64或16×16。

当前块和参考窗的获取方式属于现有技术,具体可以采用现有的视频编解码技术中的像素块获取方式实现,在此不再赘述。

S102,逐行或逐列读取参考窗的像素点数据,当已读取的像素点的行数达到N或列数达到N列时,基于已读取的像素点数据进行至少一个参考块与当前块的绝对差值和计算,得到至少一个候选绝对差值和计算值;

获取到当前块和参考窗后,则需要进行参考窗的像素点数据的读取,在参考窗中搜索全部像素点以读取各像素点对应的像素点数据,并根据读取到的像素点数据来计算参考块与当前块的绝对差值和。

在本实施例中,可以逐行或逐列来读取参考窗的像素点数据。为了解决现有的运动矢量预测方法中通过将参考窗中的参考像素全部读取后再进行绝对差值和计算导致的大大降低运动矢量的计算速度,导致运动矢量的处理时延增加,从而直接影响视频编解码的整体效率的问题,本实施例中,对读取像素点数据和计算绝对差值和的顺序执行方式进行了改进,只要已读取的像素点的行数达到N或列数达到N列,即开始基于已读取的像素点数据进行至少一个参考块与当前块的绝对差值和计算,从而得到至少一个候选绝对差值和计算值,而不是在等待参考窗所有像素点全部读取完毕后才执行绝对差值和的计算,即在完成部分参考像素点数据的读取后立即进行绝对差值和计算,从而有效提高了绝对差值和计算速度,实现了运动矢量的快速计算。

本步骤中,基于已读取的像素点数据进行参考块与当前块的绝对差值和计算的参考块的数量,根据具体的读取方式以及已读取到的像素点个数设定,对一个参考块与当前块进行绝对差值和计算,即可得到一个候选绝对差值和计算值,因此,本步骤中,针对不同数量的参考块与当前块进行绝对差值和计算,即可得到不同数量的候选绝对差值和计算值。

具体地,读取方式可以逐行读取或逐列读取,逐行或逐列读取时,每一行或每一列中读取的像素点的个数可以根据需要进行具体设定。

S103,采用蛇形搜索方式或螺旋搜索方式遍历整个参考窗并读取参考窗的剩余的像素点数据;

在逐行或逐列读取参考窗的部分像素点数据并计算得到至少一个候选绝对差值和计算值后,继续进行参考窗中剩余像素点的读取,具体可以采用蛇形搜索方式或螺旋搜索方式遍历整个参考窗来读取参考窗的剩余的像素点数据。

S104,在遍历参考窗的过程中,基于已读取的像素点数据进行参考窗中剩余参考块与当前块的绝对差值和计算,得到剩余参考块对应的候选绝对差值和计算值;

为了提高运动矢量的计算速度,在遍历参考窗的过程中,可以同步基于已读取的像素点数据进行参考窗中剩余参考块与当前块的绝对差值和计算,得到剩余参考块对应的候选绝对差值和计算值。

S105,基于全部候选绝对差值和计算值确定运动矢量值。

在读取完参考窗的全部像素点数据并计算完全部参考块与当前块的绝对差值和之后,则基于参考窗全部像素点数据计算得到的全部候选绝对差值和计算值来进行运动矢量的计算得到最终的运动矢量值,完成对当前帧图像编解码的运动矢量的预测。

综上所述可知,本申请实施例公开了一种运动矢量预测方法,首先获取当前块和参考窗;然后逐行或逐列读取参考窗的像素点数据,当已读取的像素点的行数达到N或列数达到N列时,基于已读取的像素点数据进行至少一个参考块与当前块的绝对差值和计算,得到至少一个候选绝对差值和计算值;接着采用蛇形搜索方式或螺旋搜索方式遍历整个参考窗并读取参考窗的剩余的像素点数据;接着在遍历参考窗的过程中,基于已读取的像素点数据进行参考窗中剩余参考块与当前块的绝对差值和计算,得到剩余参考块对应的候选绝对差值和计算值;最后基于全部候选绝对差值和计算值确定运动矢量值。本申请实施例在完成部分参考像素点数据的读取后立即进行绝对差值和计算,并在后续读取参考像素点数据的同时同步进行绝对差值和的计算,提高了绝对差值和计算速度,从而实现运动矢量的快速计算,有效提高视频编解码效率,解决了现有技术中通过将参考窗中的参考像素全部读取后再进行绝对差值和计算导致的大大降低运动矢量的计算速度,导致运动矢量的处理时延增加,从而直接影响视频编解码的整体效率的问题。

由于参考帧的像素点读取需要在比当前块所在的CTB块周围更大的搜索范围内(即参考窗)进行参考像素搜索,即参考窗的像素块尺寸大小比当前块的像素块尺寸大小要大得多,即参考窗的每一行的像素点个数或每一列的像素点个数往往是当前块的每行或每列的像素点个数的多倍,因此,在进行逐行逐列读取参考窗的像素点数据时,为了在执行步骤S102时减少参考窗的像素点读取时间,便于尽快进行绝对差和值的计算,在上述实施例的基础上,作为优选,在逐行或逐列读取参考窗的像素点数据之前,所述方法还可以包括如下步骤:

基于预设搜索起始点在参考窗内划分参考宏块,其中,

参考宏块的大小为M×(N+L),L整数,且0≤L<M-N,或者

所述参考宏块的大小为(N+L)×M’,L整数,且0≤L<M’-N。

即在参考窗内以预设搜索起始点为基准先划分出一个小于参考窗尺寸大小的参考宏快。

这样,可以在划分的参考宏块限定的区域来进行步骤S102中的参考窗的像素点数据的读取。

基于上述在执行步骤S102时减少参考窗的像素点读取时间,便于尽快进行绝对差和值的计算的这一目的,进一步,在上述实施例的基础上,作为优选,步骤S102中,逐行或逐列读取参考窗的像素点数据包括:

从预设搜索起始点开始,逐行或逐列读取参考宏块内的像素点数据;

相应地,步骤S102中,当已读取的像素点的行数达到N或列数达到N列时,基于已读取的像素点数据进行至少一个参考块与当前块的绝对差值和计算,得到至少一个候选绝对差值和计算值包括:

以逐行读取参考宏块内的像素点数据时,只要读取的行数与当前块的行数相等,或以逐列读取参考宏块内的像素点数据时,只要读取的列数与当前块的列数相等,使得已读取的像素块不小于当前块,则立即基于已读取的像素点数据进行参考块与当前块的绝对差值和计算。

在上述实施例的基础上,作为优选,步骤S103中可以采用蛇形搜索方式遍历整个参考窗并读取所述参考窗的剩余的像素点数据。相应地,步骤S103中,采用蛇形搜索方式或螺旋搜索方式遍历整个参考窗并读取参考窗的剩余的像素点数据可以包括:

当以逐行方式读取参考宏块内的像素点数据,且以参考窗的最左上角的像素点为预设起始点时,按照如下流程读取参考宏块内的像素点数据:

a、从第N+1开始,逐行向下读取参考宏块内的像素点数据;

b、当读取完参考宏块内的最下面一行像素点数据后,将参考宏块向右移动预设距离,并继续从下至上逐行读取参考宏块内的像素点数据,其中,预设距离根据当前块的大小确定;

c、当读取完参考宏块内的最上面一行像素点数据后,将参考宏块向右移动预设距离,并继续从上至下逐行读取参考宏块内的像素点数据;

d、重复执行步骤b~c,直到读取完参考窗内的全部像素点数据。

这样,使得当前块可以以流水操作方式一边在参考窗内的像素点的读取操作,一边进行绝对差值和的计算。

当然,蛇形搜索方式也可以逐列读取的方式进行,即先从左至右或从右至左读取到参考窗的最右端一列或最左端一列,再返回从右至左或从左至右读取到参考窗的最左端一列或最右端一列,如此循环直到参考窗中的像素点被全部读取完毕,其搜索思路与上述逐行读取时搜索方式的搜索思路相同,在此不再赘述。

需要说明的是,采用蛇形搜索方式只是本申请的一种优选搜索方式,本申请的搜索方式并不限定于蛇形搜索方式,例如也可以采用由内到外或由外到内的螺旋搜索方式。

在上述实施例的基础上,作为优选,步骤S105中,基于全部候选绝对差值和计算值确定运动矢量值包括:

从全部候选绝对差值和计算值中确定最小绝对差值和计算值;

将最小绝对差值和计算值对应的参考块作为当前块的最佳匹配块;

基于当前块和最佳匹配块确定运动矢量值。

需要说明的是,根据候选绝对差值和计算值确定运动矢量值可以采用除上述方法外的现有的其他方法,在此不再赘述。

下面以逐行读取方式及蛇形搜索方式对上述实施例中步骤S102-S104中的参考窗的像素点数据读取和绝对和差值计算过程进行详细说明。该具体实例中,当前块的大小N×N为16×16;参考窗的纵向长度M’为16+ 64,即参考窗的像素点行数为16+ 64,参考窗的横向长度M为大于16+8,即参考窗的像素点列数大于16+8;参考宏块的大小(N+L)×M’为(16+15)×(16+ 64)。

如图2所示,参考窗的像素点数据读取和绝对和差值计算的具体过程如下:

A:以参考窗的最左上角的像素点作为预设起始点,并以该预设起始点作为参考宏块的最左上角的像素点,在参考宏块内,从第1行开始,向下移动进行参考像素点数据的读取,每个时钟读取一行(16+15)个参考像素点,读取完第16行后,在第16个时钟完成8个候选绝对差值和计算值的计算(该步骤中像素点数据读取和绝对和差值计算的具体过程如图3所示);

B:从第16+1行开始,向下移动进行参考像素点数据的读取,每个时钟读取一行(16+15)个参考像素点,直到读取完参考宏块内的最后一行的(16+15)个参考像素点,步骤B共读取64行参考像素,并在每个时钟完成8个候选绝对差值和计算值的计算;

C:步骤B完成后,将参考宏块右移8个像素点(即参考宏块向右移8列),并完成向右偏移的8个候选绝对差值和计算值的计算;

D:跳过触底的最下面16行,向上移动进行参考像素点数据的读取,每个时钟读取一行(16+15)个参考像素点,步骤D总共读取64行参考像素,每个时钟完成8个候选绝对差值和计算值的计算;

E:步骤D完成后,将参考宏块右移8个像素点(即参考宏块向右移8列),并完成向右偏移的8个候选绝对差值和计算值的计算;

循环执行步骤B~E,直到完成参考窗内所有像素点的读取,则得到参考窗的全部候选绝对差值和计算值。

如图4所示,本申请实施例还提供了一种运动矢量预测系统,所述系统可以包括:

像素块获取模块201,用于获取当前块和参考窗,其中,参考窗的大小为M×M’,当前块的大小为N×N,M、M’和N均为正整数,且M>N,M’>N;

第一像素点数据读取模块202,用于逐行或逐列读取参考窗的像素点数据,当已读取的像素点的行数达到N或列数达到N列时,基于已读取的像素点数据进行至少一个参考块与当前块的绝对差值和计算,得到至少一个候选绝对差值和计算值;

第二像素点数据读取模块203,用于采用蛇形搜索方式或螺旋搜索方式遍历整个参考窗并读取参考窗的剩余的像素点数据;

绝对差值和计算模块204,用于在遍历参考窗的过程中,基于已读取的像素点数据进行参考窗中剩余参考块与当前块的绝对差值和计算,得到剩余参考块对应的候选绝对差值和计算值;以及

运动矢量值确定模块205,用于基于全部候选绝对差值和计算值确定运动矢量值。

在上述实施例的基础上,所述系统还包括:

参考宏块划分模块,用于在逐行或逐列读取参考窗的像素点数据之前,基于预设搜索起始点在参考窗内划分参考宏块,其中,

参考宏块的大小为M×(N+L),L整数,且0≤L<M-N,或者

参考宏块的大小为(N+L)×M’,L整数,且0≤L<M’-N。

在上述实施例的基础上,第一像素点数据读取模块202在执行逐行或逐列读取参考窗的像素点数据时具体用于:

从预设搜索起始点开始,逐行或逐列读取参考宏块内的像素点数据。

在上述实施例的基础上,采用蛇形搜索方式遍历整个参考窗并读取所述参考窗的剩余的像素点数据。

在上述实施例的基础上,第二像素点数据读取模块203具体用于:

当以逐行方式读取参考宏块内的像素点数据,且以参考窗的最左上角的像素点为预设起始点时,按照如下流程读取参考宏块内的像素点数据:

a、从第N+1开始,逐行向下读取参考宏块内的像素点数据;

b、当读取完参考宏块内的最下面一行像素点数据后,将参考宏块向右移动预设距离,并继续从下至上逐行读取参考宏块内的像素点数据,其中,预设距离根据当前块的大小确定;

c、当读取完参考宏块内的最上面一行像素点数据后,将参考宏块向右移动预设距离,并继续从上至下逐行读取参考宏块内的像素点数据;

d、重复执行步骤b~c,直到读取完参考窗内的全部像素点数据。

在上述实施例的基础上,运动矢量值确定模块205具体用于:

从全部候选绝对差值和计算值中确定最小绝对差值和计算值;

将最小绝对差值和计算值对应的参考块作为当前块的最佳匹配块;

基于当前块和最佳匹配块确定运动矢量值。

上述实施例中的运动矢量预测系统具有与上述实施例中的运动矢量预测方法相同的工作原理和技术效果,在此不再赘述。

如图5所示,本申请实施例提供还了一种电子设备3,电子设备3包括存储器301、处理器302以及存储于存储器301中并可在处理器302上运行的计算机程序303,处理器302执行计算机程序303时实现如本申请上述方法实施例的运动矢量预测方法的步骤。

具体地,电子设备3可以是工控机、PC机、智能移动终端等具备存储器和处理器的智能设备,也可以是CPU、GPU等具备存储器和处理器的计算机部件。

本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如本申请上述方法实施例的运动矢量预测方法的步骤。

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

另外,在本申请各实施例中的各功能模块可以全部集成在一个处理器中,也可以是各模块分别单独作为一个器件,也可以两个或两个以上模块集成在一个器件中;本申请各实施例中的各功能模块既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令及相关的硬件来完成,前述的程序指令可以存储于计算机可读取存储介质中,该程序指令在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Reud Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。

应当理解,本申请中如若使用了“系统”、“装置”、“单元”和/或“模块”,仅是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换该词语。

如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。

以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。

本申请中如若使用了流程图,则该流程图是用来说明根据本申请的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。

以上对本申请所提供的一种运动矢量预测方法、系统、电子设备及存储介质进行了详细介绍。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

技术分类

06120115952389