帧间预测编码搜索方法、装置、计算机设备及存储介质与流程

文档序号:24646116发布日期:2021-04-13 15:12阅读:74来源:国知局
帧间预测编码搜索方法、装置、计算机设备及存储介质与流程

1.本发明实施例涉及计算机软件技术领域,特别涉及帧间预测编码搜索方法、装置、计算机设备及存储介质。


背景技术:

2.帧间预测是指利用视频时间域相关性,使用临近且已经编码图像的像素预测当前图像的像素,以达到有效去除时间时域冗余的目的。在帧间预测编码过程中,运动估计为重要的一个操作步骤。在5g技术的应用环境中,视频编码传输对实时性要求较高,而运动估计的运算复杂度通常较高,因此一种高性能、低复杂度的运动搜索算法就尤为重要。
3.目前常用的搜索算法有:全搜索算法、二维对数搜索算法、三步搜索算法等。其中,全搜索算法复杂度极高、无法满足实时编码。同时其他快速搜索算法虽然具有速度快的优点,但是在搜索过程中容易落入局部最优解,从而无法找到全局最优解。


技术实现要素:

4.本发明实施例提供了一种帧间预测编码搜索方法、装置、计算机设备及存储介质,旨在在帧间预测编码过程中快速找到全局最优解的同时降低时间复杂度。
5.第一方面,本发明实施例提供了一种帧间预测编码搜索方法,包括:
6.获取输入图像,通过帧内编码得到所述输入图像的当前帧和位于所述当前帧之前的至少一个参考帧,其中,所述当前帧和至少一个参考帧均包含有若干个宏块;
7.从所述至少一个参考帧中匹配出与所述当前帧的宏块最相似的宏块,并作为匹配块;
8.获取所述当前帧的宏块与所述匹配块的残差值并输出。
9.第二方面,本发明实施例提供了一种帧间预测编码搜索装置,包括:
10.第一获取单元,用于获取输入图像,通过帧内编码得到所述输入图像的当前帧和位于所述当前帧之前的至少一个参考帧,其中,所述当前帧和至少一个参考帧均包含有若干个宏块;
11.匹配单元,用于从所述至少一个参考帧中匹配出与所述当前帧的宏块最相似的宏块,并作为匹配块;
12.第一输出单元,用于获取所述当前帧的宏块与所述匹配块的残差值并输出。
13.第三方面,本发明实施例提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的帧间预测编码搜索方法。
14.第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的帧间预测编码搜索方法。
15.本发明实施例提供了一种帧间预测编码搜索方法、装置、计算机设备及存储介质,
该方法包括:获取输入图像,通过帧内编码得到所述输入图像的当前帧和位于所述当前帧之前的至少一个参考帧,其中,所述当前帧和至少一个参考帧均包含有若干个宏块;从所述至少一个参考帧中匹配出与所述当前帧的宏块最相似的宏块,并作为匹配块;获取所述当前帧的宏块与所述匹配块的残差值并输出。本发明实施例利用竞争群优化算法,可以达到在帧间预测编码过程中快速找到全局最优解的同时降低时间复杂度的效果。
附图说明
16.为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
17.图1为本发明实施例提供的一种帧间预测编码搜索方法的流程示意图;
18.图2为本发明实施例提供的一种帧间预测编码搜索方法中步骤s102的子流程示意图;
19.图3为本发明实施例提供的一种帧间预测编码搜索方法中步骤s203之后的子流程示意图;
20.图4为本发明实施例提供的一种帧间预测编码搜索方法中步骤s302的子流程示意图;
21.图5为本发明实施例提供的一种帧间预测编码搜索方法的另一流程示意图;
22.图6为本发明实施例提供的一种帧间预测编码搜索装置的示意性框图;
23.图7为本发明实施例提供的一种帧间预测编码搜索装置中匹配单元602的子示意性框图;
24.图8为本发明实施例提供的一种帧间预测编码搜索装置中第一学习单元703之后的子示意性框图;
25.图9为本发明实施例提供的一种帧间预测编码搜索装置中第一分组单元702的子示意性框图;
26.图10为本发明实施例提供的一种帧间预测编码搜索装置的另一示意性框图。
具体实施方式
27.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
28.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
29.还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
30.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是
指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
31.下面请参见图1,图1为本发明实施例提供的一种帧间预测编码搜索方法的流程示意图,具体包括:步骤s101~s103。
32.s101、获取输入图像,通过帧内编码得到所述输入图像的当前帧和位于所述当前帧之前的至少一个参考帧,其中,所述当前帧和至少一个参考帧均包含有若干个宏块;
33.s102、从所述至少一个参考帧中匹配出与所述当前帧的宏块最相似的宏块,并作为匹配块;
34.s103、获取所述当前帧的宏块与所述匹配块的残差值并输出。
35.本实施例中,当存在图像输入时,首先对输入图像进行帧内编码,得到该输入图像的当前帧和位于当前帧之前的至少一个参考帧,然后便可以以参考帧为基础对当前帧进行帧间预测编码操作。具体的,可以通过竞争群优化算法(即竞争群优化器,competitiveswarmoptimizer)在参考帧中快速且准确地匹配出与当前帧中的宏块最相似的宏块,即匹配块,在匹配得到匹配块后,获取该匹配块与当前帧的宏块之间的残差值并输出,以用于帧间预测编码的后续步骤。
36.在进行帧间预测编码的过程中,运动估计是较为重要的步骤,所谓运动估计即是指通过先前的帧(即参考帧)对当前帧进行提取图像运动信息的过程。具体地,以参考帧为基准对当前帧进行块像素信息提取,而基于块的运动估计则包括三个核心步骤:运动估计准则、搜索算法和亚像素精度运动估计。其中,搜索算法决定了块的运动估计能够快速且准确地实现编码。本实施例可以在参考帧中快速且准确地匹配出与当前帧中的宏块最相似的宏块,即匹配块,从而获得当前帧的宏块与参考帧中最相似的宏块(即匹配块)之间的残差值。进一步的,将该残差值与匹配块一并输入至运动补充模块中即可得到当前帧的宏块与匹配块之间的最优残差值,进而将该最优残差值输入至变化模块、量化模块和熵编码模块进一步地减少冗余信息,最终便可以得到h.264协议格式nal(网络抽象层,用于格式化数据和提供头信息)。
37.本实施例针对现行帧间预测编码中搜素算法的缺陷,提供了一种基于竞争群优化算法的帧间预测编码搜索算法,可以快速找到全局最优解,并能够减少时间复杂度,从而有效缓解了现有技术的搜索算法的缺陷。本实施例提供的帧间预测编码搜索方法相比于全局搜索算法,在保证获取最优解的基础上减少了时间复杂度,加快了搜索时间,对于5g大环境下的音视频传输有重要的意义。同时,本实施例相比于快速搜索算法,在保证时间的基础上,有效提升了获取全局最优解的概率。
38.在一实施例中,如图2所示,所述步骤s102包括:步骤s201~s203。
39.s201、将所述至少一个参考帧中的所有宏块集合为一个原始种群,以及将所述原始种群中每一所述宏块作为所述原始种群中的粒子;
40.s202、对所有的所述粒子进行两两随机分组,利用评价函数对每一分组内的两个粒子进行当前轮的优劣性评价,得到当前轮中每一分组的胜利者和失败者,以及当前轮中每一分组的所述胜利者与所述当前帧中的宏块的残差值;
41.s203、对当前轮中的每一分组内的失败者进行优化学习。
42.本实施例中,在利用竞争群优化算法对当前帧中的宏块进行匹配时,可以将参考帧中的所有宏块视为一个原始种群,并将原始种群中的每一个宏块视为该原始种群中的粒
子,然后通过对原始种群的粒子进行竞争群优化学习,进而可以得到与当前帧的宏块最相似的宏块,即实现匹配的目的。例如当前帧的像素和参考帧的像素大小为256*256,当前帧的宏块和参考帧的宏块的像素大小为8*8,对于每一帧图片(即当前帧和参考帧),可以将其划分得到1024个宏块,并且若只存在一个参考帧时,组成的原始种群中即包含了1024个粒子。
43.具体而言,将原始种群中的粒子进行两两随机分组,然后利用评价函数对每一分组内的两个粒子进行优劣性评价,从而得到每一分组内的胜利者和失败者。在当前轮的优劣性评价结束后,对每一分组内的胜利者无需进行其余操作,对于每一分组内的失败者,则需要使其进行优化学习,以更加靠近胜利者。
44.需要说明的是,在进行两两随机分组的过程中,若出现奇数个粒子,则可以将最终多出的粒子忽略,只对分组内的粒子进行优劣性评价。
45.在一实施例中,如图3所示,所述步骤s203之后,包括:步骤s301~s303。
46.s301、若当前轮中的任意一分组内的胜利者满足预设条件阈值,则将满足预设条件阈值的胜利者作为与所述当前帧的宏块最相似的宏块,并作为匹配块;
47.s302、若当前轮中的每一分组内的胜利者均未满足预设条件阈值,则将未满足预设条件阈值的胜利者与优化学习后的失败者再次进行两两随机分组,并利用评价函数对每一分组内的两个粒子进行下一轮的优劣性评价,得到下一轮中每一分组的胜利者和失败者,以及下一轮中每一分组的所述胜利者与所述当前帧中的宏块的残差值;
48.s303、对下一轮中的每一分组内的失败者进行优化学习,直至胜利者满足预设条件阈值或者当前循环次数达到预设循环次数。
49.本实施例中,在每一轮优劣性评价过程中,根据评价结果即可确定对应的胜利者是否达到匹配要求,即是否满足预设条件阈值。
50.若存在一个分组内的胜利者满足预设条件阈值时,则可以直接将该胜利者作为与所述当前帧的宏块最相似的宏块,即匹配块,同时可以结束优劣性评价并输出当前帧的宏块与该匹配块之间的残差值,以用于帧间预测编码的后续操作。当然,还需说明的是,若在一轮优劣性评价过程中,存在多个分组内的胜利者均满足预设条件阈值时,则可以从多个分组内的胜利者中任意选择一个作为与所述当前帧的宏块最相似的宏块。
51.若在当前轮优劣性评价过程中,每一分组内的胜利者均不满足预设条件阈值时,则需要进行下一轮优劣性评价,并在下一轮优劣性评价过程中继续根据评价结果确定是否存在满足预设条件阈值的胜利者。需要注意的是,在进行下一轮优劣性评价之前,需要对当前轮中每一分组内的失败者进行优化学习,并将经过优化学习后的失败者和胜利者重新进行两两随机分组。
52.还需说明的是,为了避免在进行多轮优劣性评价后依旧没能达到匹配的目的,因此,本实施例还可以设置一个优化循环次数,即预设循环次数。也就是说,当优劣性评价的轮数(或者说次数)达到了预设循环次数时,则停止优劣性评价,此时,可以获取当前帧的宏块与原始种群中每一粒子(即参考帧中的每一宏块)之间的残差值,然后将最小的残差值对应的粒子作为与所述当前帧的宏块最相似的宏块,并输出该最小的残差值。
53.在一实施例中,如图4所示,所述步骤s302包括:步骤s401~s402。
54.s401、按照下列公式对每一分组内的两个粒子进行优劣性评价:
55.f=f(b)

f(b
r
)
56.式中,f为评价结果,f(b)表示当前帧中的宏块的数值,f(b
r
)表示参考帧中的宏块的数值;
57.s402、对两个粒子的评价结果f进行比较,将更小的评价结果f对应的参考帧中的宏块作为胜利者,并将所述胜利者评价结果f作为所述胜利者与所述当前帧中的宏块的残差值,以及将更大的评价结果f对应的参考帧中的宏块作为失败者。
58.本实施例中,根据上述的评价公式对当前轮中的每一分组内的粒子进行优劣性评价,并根据评价公式得到的结果确定每一分组内的胜利者和失败者。具体来说,根据当前帧中的宏块值(即宏块的数值)与原始种群中每一分组内的两个粒子的值进行比较,得到当前帧中的宏块与原始种群中每一分组内的两个粒子的残差值,然后将每一分组内的残差值小的粒子作为对应分组内的胜利者,以及将残差值大的粒子作为对应分组内的失败者。
59.在一实施例中,所述对当前轮中的每一分组内的失败者进行优化学习,包括:
60.按照下列公式对每一分组内的失败者进行优化学习:
[0061][0062]
式中,l表示失败者,w表示胜利者,t表示当前的循环轮数,v
l
(t+1)表示第t+1轮的失败者的速度,x
w
(t)表示第t轮胜利者的位置,x
l
(t)表示第t轮失败者的位置,x
l
(t+1)表示第t+1轮失败者的位置,为每一帧中所有宏块的平均值,c为控制参数,r1、r2均为随机数,r1、r2的取值范围为[0,1]。
[0063]
本实施例中,按照上述公式即可对每一分组内的失败者进行优化学习,以使失败者在优化学习后更加靠近胜利者。
[0064]
在一实施例中,所述预设条件阈值为:所述当前帧中的宏块与所述参考帧中的宏块之间的残差值小于预设残差阈值。
[0065]
本实施例中,将预设条件阈值设置为当前帧中的宏块与参考帧中的宏块之间的残差值小于预设残差阈值。也就是说,在每一轮优劣性评价中,若存在一个分组内的胜利者与当前帧中的宏块之间的残差值小于预设残差阈值,则该分组内的胜利者即满足预设条件阈值,达到了匹配的要求。
[0066]
可以理解的是,在利用上述评价公式对每一分组内的粒子进行评价时,得到的评价结果即是当前帧中的宏块与分组内的粒子之间的残差值,因此在确定每一分组内的胜利者后,无需在对每一分组内的胜利者判断是否满足预设条件阈值,只需根据评价结果便可以确定对应的胜利者是否满足预设条件阈值。
[0067]
在一实施例中,如图5所示,所述帧间预测编码方法还包括:步骤s501~s502。
[0068]
s501、获取所述当前帧中的宏块的二维位置向量以及所述匹配块的二维位置向量;
[0069]
s502、将所述当前帧中的宏块的二维位置向量和所述匹配块的二维位置向量之间的二维向量位移作为所述当前帧中的宏块的运动估计向量并输出。
[0070]
本实施例中,在利用竞争群优化算法匹配出与当前帧的宏块最相似的匹配块后,根据当前帧的宏块的二维位置向量和匹配块的二维位置向量确定当前帧的宏块相对于匹
配块的二维向量位移,将该二维向量位移作为当前帧中的宏块的运动估计向量(也可以理解为当前帧中的宏块相对于匹配块的运动偏移量)。进一步的,将得到的运动估计向量可以用于后续的解码操作步骤中。
[0071]
图6为本发明实施例提供的一种帧间预测编码搜索装置600的示意性框图,该装置600包括:
[0072]
第一获取单元601,用于获取输入图像,通过帧内编码得到所述输入图像的当前帧和位于所述当前帧之前的至少一个参考帧,其中,所述当前帧和至少一个参考帧均包含有若干个宏块;
[0073]
匹配单元602,用于从所述至少一个参考帧中匹配出与所述当前帧的宏块最相似的宏块,并作为匹配块;
[0074]
第一输出单元603,用于获取所述当前帧的宏块与所述匹配块的残差值并输出。
[0075]
在一实施例中,如图7所示,所述匹配单元602包括:
[0076]
集合单元701,用于将所述至少一个参考帧中的所有宏块集合为一个原始种群,以及将所述原始种群中每一所述宏块作为所述原始种群中的粒子;
[0077]
第一分组单元702,用于对所有的所述粒子进行两两随机分组,利用评价函数对每一分组内的两个粒子进行当前轮的优劣性评价,得到当前轮中每一分组的胜利者和失败者,以及当前轮中每一分组的所述胜利者与所述当前帧中的宏块的残差值;
[0078]
第一学习单元703,用于对当前轮中的每一分组内的失败者进行优化学习。
[0079]
在一实施例中,如图8所示,所述第一学习单元703之后,包括:
[0080]
作为单元801,用于若当前轮中的任意一分组内的胜利者满足预设条件阈值,则将满足预设条件阈值的胜利者作为与所述当前帧的宏块最相似的宏块,并作为匹配块;
[0081]
第二分组单元802,用于若当前轮中的每一分组内的胜利者均未满足预设条件阈值,则将未满足预设条件阈值的胜利者与优化学习后的失败者再次进行两两随机分组,并利用评价函数对每一分组内的两个粒子进行下一轮的优劣性评价,得到下一轮中每一分组的胜利者和失败者,以及下一轮中每一分组的所述胜利者与所述当前帧中的宏块的残差值;
[0082]
第二学习单元803,用于对下一轮中的每一分组内的失败者进行优化学习,直至胜利者满足预设条件阈值或者当前循环次数达到预设循环次数。
[0083]
在一实施例中,如图9所示,所述第一分组单元702包括:
[0084]
优劣性评价单元901,用于按照下列公式对每一分组内的两个粒子进行优劣性评价:
[0085]
f=f(b)

f(b
r
)
[0086]
式中,f为评价结果,f(b)表示当前帧中的宏块的数值,f(b
r
)表示参考帧中的宏块的数值;
[0087]
比较单元902,用于对两个粒子的评价结果f进行比较,将更小的评价结果f对应的参考帧中的宏块作为胜利者,并将所述胜利者评价结果f作为所述胜利者与所述当前帧中的宏块的残差值,以及将更大的评价结果f对应的参考帧中的宏块作为失败者。
[0088]
在一实施例中,所述第一学习单元703包括:
[0089]
第三学习单元,用于按照下列公式对每一分组内的失败者进行优化学习:
[0090][0091]
式中,l表示失败者,w表示胜利者,t表示当前的循环轮数,v
l
(t+1)表示第t+1轮的失败者的速度,x
w
(t)表示第t轮胜利者的位置,x
l
(t)表示第t轮失败者的位置,x
l
(t+1)表示第t+1轮失败者的位置,为每一帧中所有宏块的平均值,c为控制参数,r1、r2均为随机数,r1、r2的取值范围为[0,1]。
[0092]
在一实施例中,所述预设条件阈值为:所述当前帧中的宏块与所述参考帧中的宏块之间的残差值小于预设残差阈值。
[0093]
在一实施例中,如图10所示,所述帧间预测编码搜索装置600还包括:
[0094]
第二获取单元1001,用于获取所述当前帧中的宏块的二维位置向量以及所述匹配块的二维位置向量;
[0095]
第二输出单元1002,用于将所述当前帧中的宏块的二维位置向量和所述匹配块的二维位置向量之间的二维向量位移作为所述当前帧中的宏块的运动估计向量并输出。
[0096]
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
[0097]
本发明实施例还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0098]
本发明实施例还提供了一种计算机设备,可以包括存储器和处理器,存储器中存有计算机程序,处理器调用存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然计算机设备还可以包括各种网络接口,电源等组件。
[0099]
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
[0100]
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1