一种用于视频编码的运动搜索方法及装置与流程

文档序号:22554771发布日期:2020-10-17 02:35阅读:62来源:国知局
一种用于视频编码的运动搜索方法及装置与流程

本发明涉及视频编码技术领域,具体涉及一种用于视频编码的运动搜索方法及装置。



背景技术:

运动估计(me)是视频压缩编码的关键技术之一,一直备受人们关注。为了获得高编码效率和较好的图像质量,通常是在整像素运动估计的基础上,再进行亚像素运动搜索。

与整像素运动估计相比,亚像素运动搜索消耗的芯片算力在整个运动估计中占有非常大的比重。由于需要的芯片算力大,相应的芯片规模要求也大,因此如何减少亚像素运动搜索对芯片算力的消耗是一个研究重点。



技术实现要素:

本发明的目的是针对上述现有技术的不足提出的一种用于视频编码的运动搜索方法及装置,该目的是通过以下技术方案实现的。

本发明的第一方面提出了一种用于视频编码的运动搜索方法,所述方法包括:

获取待编码的图像块和该图像块在参考帧中对应的搜索窗,对所述搜索窗中的第一方向像素进行预设倍数插值得到第一扩展搜索窗;

针对第一预设数量个第二方向相位中的每一第二方向相位,根据所述第一扩展搜索窗生成该第二方向相位的第二扩展搜索窗,并在所述第二扩展搜索窗中搜索该图像块在第二预设数量个第一方向相位中每一第一方向相位条件下的匹配值;

依据每个第二方向相位对应的第二预设数量个第一方向相位条件下的匹配值选取最佳第二方向相位和最佳第一方向相位;

基于所述第一扩展搜索窗生成最佳第二方向相位和最佳第一方向相位的参考阵列。

本发明的第二方面提出了一种用于视频编码的运动搜索装置,所述装置包括:

获取单元,用于获取待编码的图像块和该图像块在参考帧中对应的搜索窗;

第一扩展单元,用于对所述搜索窗中的第一方向像素进行预设倍数插值得到第一扩展搜索窗;

搜索单元,用于针对第一预设数量个第二方向相位中的每一第二方向相位,根据所述第一扩展搜索窗生成该第二方向相位的第二扩展搜索窗,并在所述第二扩展搜索窗中搜索该图像块在第二预设数量个第一方向相位中每一第一方向相位条件下的匹配值;

选取单元,用于依据每个第二方向相位对应的第二预设数量个第一方向相位条件下的匹配值选取最佳第二方向相位和最佳第一方向相位;

输出单元,用于基于所述第一扩展搜索窗生成最佳第二方向相位和最佳第一方向相位的参考阵列。

在本发明实施例中,先在第一方向上进行像素扩展,然后针对每个第二方向相位从第一次扩展的搜索窗中读取像素进行第二方向像素扩展后再搜索图像块在各个第一方向相位的匹配值,最终从计算得到的所有匹配值中选择最小匹配值对应的第一方向相位第二方向相位组合即为最佳相位,进而可得到最佳相位的参考阵列,即图像块在参考帧中的亚像素级别的待编码像素数据,最终达到减小芯片规模的目的,提高芯片执行效力。

附图说明

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

图1为本发明根据一示例性实施例示出的一种用于视频编码的运动搜索方法的实施例流程图;

图2为本发明根据一示例性实施例示出的一种运动搜索原理结构示意图;

图3为本发明根据一示例性实施例示出的一种用于视频编码的运动搜索装置的实施例流程图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

目前,在进行亚像素运动搜索时,先是将搜索窗中的像素在第一方向和第二方向各进行一定倍数的插值扩展,再在扩展后的搜索窗上进行搜索。

然而,为了提高搜索精度,就需要选择比较高的插值倍数,这样在两个方向上均进行高倍数插值就需要占用很大的芯片算力,进而需要提供很大的芯片规模来满足高精度搜索要求。

为了解决上述技术问题,本申请提出一种改进的亚像素运动搜索方案,通过部分扩展搜索窗,即先在一个方向上进行像素扩展,然后边搜索边从扩展搜索窗中读取像素并在另一方向进行像素扩展,以减小芯片算力的占用,进而达到减小芯片规模的目的。

下面以具体实施例对本申请提出的亚像素运动搜索方案进行详细阐述。

图1为本发明根据一示例性实施例示出的一种用于视频编码的运动搜索方法的实施例流程图,如图1所示,该运动搜索方法包括如下步骤:

步骤101:获取待编码的图像块和该图像块在参考帧中对应的搜索窗,对搜索窗中的第一方向像素进行预设倍数插值得到第一扩展搜索窗。

在一实施例中,针对获取待编码的图像块和图像块在参考帧中的搜索窗的过程,通过将原始图像划分为预设大小的图像块,然后针对划分得到的每个图像块,依据该图像块相对参考帧的运动矢量从参考帧中截取出对应的搜索窗。

其中,图像块相对参考帧的运动矢量指的是整像素运动估计得到的相对位移量,在截取搜索窗时,通常先依据运动矢量获得图像块在参考帧中对应的区域,为了后续的插值计算,会在该区域基础上分别向上下左右分别再扩展一定数量的像素后截取出一个搜索窗。

以8*8的图像块为例,依据运动矢量在参考帧中获得对应的8*8区域后,分别向上下左右再扩展4列或行像素后截取出像素数据作为一个搜索窗,即得到一个16*16的搜索窗。

需要说明的是,步骤101中预设倍数插值可以根据实际经验设置,通常插值倍数越高,最终搜索得到的亚像素精度越高。

本领域技术人员可以理解的是,对搜索窗中的第一方向像素进行预设倍数插值过程可以采用相关的插值技术实现,本申请不进行具体限定。

基于上述例子基础上,假设预设倍数为4,第一方向为水平方向,即每行像素中的每相邻两个像素点之间以0.25步长插值出3个像素点,为了减少运算量,可以只对搜索窗中图像块对应的8*8区域中的每行像素进行4倍插值,使得每行像素扩展为8+21个像素点,再在每行像素的两边以0.25步长分别再插值出2个像素点,以便于后续比较计算使用,从而每行像素扩展为33个像素点,最终得到16*33的第一扩展搜索窗。

步骤102:针对第一预设数量个第二方向相位中的每一第二方向相位,根据第一扩展搜索窗生成该第二方向相位的第二扩展搜索窗,并在第二扩展搜索窗中搜索该图像块在第二预设数量个第一方向相位中每一第一方向相位条件下的匹配值。

其中,第一预设数量个第二方向相位中相邻相位的间隔步长为插值倍数的倒数,第二预设数据个第一方向相位同理也是。第一预设数量和第二预设数量可以根据实际需求设置。

在上述步骤101的例子基础上,第二方向为垂直方向,假设预设有5个垂直方向相位:y0、y0+0.25,y0+0.5,y0-0.25,y0-0.5:

针对垂直方向相位y0,以步长1取值,垂直方向取值序列为y0,y0+1,y0+2,……y0+7,由于每个取值在第一扩展搜索窗中均有,因此可以直接从第一扩展搜索窗中分别取出这8个取值对应的8行像素,每行像素有33个像素点,从而生成垂直方向相位y0的第二扩展搜索窗,大小为8*33;

针对垂直方向相位y0+0.25,以步长1取值,取值序列为y0+0.25,y0+1.25,y0+2.25……y0+7.25,由于在第一扩展搜索窗中没有这8个取值,因此需要依据第一扩展搜索窗插值取出每个取值对应的33个像素点,从而生成垂直方向相位y0+0.25的第二扩展搜索窗,大小为8*33;

针对垂直方向相位y0+0.5,以步长1取值,取值序列为y0+0.5,y0+1.5,y0+2.5……y0+7.5,由于在第一扩展搜索窗中没有这8个取值,因此需要依据第一扩展搜索窗插值取出每个取值对应的33个像素点,从而生成垂直方向相位y0+0.5的第二扩展搜索窗,大小为8*33;

针对垂直方向相位y0-0.25,以步长1取值,取值序列为y0-0.25,y0+0.75,y0+1.75……y0+6.75,由于在第一扩展搜索窗中没有这8个取值,因此需要依据第一扩展搜索窗插值取出每个取值对应的33个像素点,从而生成垂直方向相位y0-0.25的第二扩展搜索窗,大小为8*33;

针对垂直方向相位y0-0.5,以步长1取值,取值序列为y0-0.5,y0+0.5,y0+1.5……y0+6.5,由于在第一扩展搜索窗中没有这8个取值,因此需要依据第一扩展搜索窗插值取出每个取值对应的33个像素点,从而生成垂直方向相位y0-0.5的第二扩展搜索窗,大小为8*33。

在一实施例中,针对在第二扩展搜索窗中搜索该图像块在第二预设数量个第一方向相位中每一第一方向相位条件下的匹配值的过程,通过从第二扩展搜索窗中获取每个第一方向相位对应的匹配块,并分别计算每个匹配块与图像块的匹配值。

其中,匹配块大小与图像块大小一致。计算匹配值过程具体为先计算两个块之间对应像素点的像素差值并取绝对值,然后将所有绝对值进行累加得到的即为匹配值。计算得到的匹配值越小,表示两个块之间越相似。

在上述例子基础上,第一方向为水平方向,假设预设有5个水平方向相位:x0、x0+0.25,x0+0.5,x0-0.25,x0-0.5:

针对水平方向相位x0,以步长1取值,水平方向取值序列为x0,x0+1,x0+2,……x0+7,从第二扩展搜索窗中分别取出这8个取值对应的8列像素,每列像素有8个像素点,从而获取到水平方向相位x0对应的8*8匹配块;

针对水平方向相位x0+0.25,以步长1取值,水平方向取值序列为x0+0.25,x0+1.25,x0+2.25……x0+7.25,从第二扩展搜索窗中分别取出这8个取值对应的8列像素,每列像素有8个像素点,从而获取到水平方向相位x0+0.25对应的8*8匹配块;

针对水平方向相位x0+0.5,以步长1取值,水平方向取值序列为x0+0.5,x0+1.5,x0+2.5……x0+7.5,从第二扩展搜索窗中分别取出这8个取值对应的8列像素,每列像素有8个像素点,从而获取到水平方向相位x0+0.5对应的8*8匹配块;

针对水平方向相位x0-0.25,以步长1取值,水平方向取值序列为x0-0.25,x0+0.75,x0+1.75……x0+6.75,从第二扩展搜索窗中分别取出这8个取值对应的8列像素,每列像素有8个像素点,从而获取到水平方向相位x0-0.25对应的8*8匹配块;

针对水平方向相位x0-0.5,以步长1取值,水平方向取值序列为x0-0.5,x0+0.5,x0+1.5……x0+6.5,从第二扩展搜索窗中分别取出这8个取值对应的8列像素,每列像素有8个像素点,从而获取到水平方向相位x0+0.5对应的8*8匹配块。

步骤103:依据每个第二方向相位对应的第二预设数量个水平相位条件下的匹配值选取最佳第二方向相位和最佳第一方向相位。

在一实施例中,通过从每个第二方向相位对应的第二预设数量个第一方向相位条件下的匹配值中选取最小匹配值,并将最小匹配值对应的第二方向相位和第一方向相位作为最佳第二方向相位和最佳第一方向相位。

步骤104:基于第一扩展搜索窗生成最佳第二方向相位和最佳第一方向相位的参考阵列。

其中,生成的参考阵列与图像块的大小一致,在预设倍数为4的情况下,该参考阵列即为图像块相对在参考帧中的1/4像素级别的待编码像素数据。

参见图2所示,为亚像素预测原理结构示意图,下面以上述给出的具体举例数据为例介绍整个预测原理,预取模块用于将原始帧划分成多个8*8图像块,每次取出一个图像块存放于寄存器中;第一插值模块用于依据寄存器中图像块对应的运动矢量从参考帧中截取出比图像块大一些的搜索窗16*16,并在水平方向进行4倍插值,得到16*33的第二扩展搜索窗,并从5个垂直方向相位中选择一个垂直方向相位,并根据第一扩展搜索窗生成该垂直方向相位的8*33第二扩展搜索窗;比较模块用于根据8*33的第二扩展搜索窗与8*8图像块比较计算在5个水平方向相位的匹配值;计数器用于记录第一插值模块和比较模块的运行次数,该运行次数即为垂直方向相位的数量5,在计数器控制下,第一插值模块和比较模块均运行5次,每次从5个垂直方向相位中选择一个垂直方向相位,从而经过5次计算之后,比较模块计算得到25组相位组合的匹配值,从25个匹配值中选择一个最小匹配值对应的相位组合即为最佳相位;由于计数器计数每加1,第一插值模块中生成的前一个垂直相位的第二扩展搜索窗就会被当前选择的垂直相位的第二扩展搜索窗覆盖,因此第二插值模块是通过第一扩展搜索窗生成最佳相位的参考阵列。

至此,完成上述图1所示的搜索流程,由于上述图1所示的亚像素搜索方案是先在第一方向上进行像素扩展,然后针对每个第二方向相位从第一次扩展的搜索窗中读取像素进行第二方向像素扩展后再搜索图像块在各个第一方向相位的匹配值,最终从计算得到的所有匹配值中选择最小匹配值对应的第一方向相位第二方向相位组合即为最佳相位,进而可得到最佳相位的参考阵列,即图像块在参考帧中的亚像素级别的待编码像素数据,最终达到减小芯片规模的目的,提高芯片执行效力。

与前述用于视频编码的运动搜索方法的实施例相对应,本发明还提供了用于视频编码的运动搜索装置的实施例。

图3为本发明根据一示例性实施例示出的一种用于视频编码的运动搜索装置的实施例流程图,如图3所示,所述用于视频编码的运动搜索装置包括:

获取单元310,用于获取待编码的图像块和该图像块在参考帧中对应的搜索窗;

第一扩展单元320,用于对所述搜索窗中的第一方向像素进行预设倍数插值得到第一扩展搜索窗;

搜索单元330,用于针对第一预设数量个第二方向相位中的每一第二方向相位,根据所述第一扩展搜索窗生成该第二方向相位的第二扩展搜索窗,并在所述第二扩展搜索窗中搜索该图像块在第二预设数量个第一方向相位中每一第一方向相位条件下的匹配值;

选取单元340,用于依据每个第二方向相位对应的第二预设数量个第一方向相位条件下的匹配值选取最佳第二方向相位和最佳第一方向相位;

输出单元350,用于基于所述第一扩展搜索窗生成最佳第二方向相位和最佳第一方向相位的参考阵列。

在一可选实现方式中,所述获取单元310,具体用于将原始图像划分为预设大小的图像块;针对划分得到的每个图像块,依据该图像块相对参考帧的运动矢量从所述参考帧中截取出对应的搜索窗。

在一可选实现方式中,所述搜索单元330,具体用于在所述第二扩展搜索窗中搜索该图像块在第二预设数量个第一方向相位中每一第一方向相位条件下的匹配值过程中,从所述第二扩展搜索窗中获取每个第一方向相位对应的匹配块,所述匹配块大小与所述图像块大小一致;分别计算每个匹配块与所述图像块的匹配值。

在一可选实现方式中,所述选取单元340,具体用于从每个第二方向相位对应的第二预设数量个第一方向相位条件下的匹配值中选取最小匹配值;将最小匹配值对应的第二方向相位和第一方向相位作为最佳第二方向相位和最佳第一方向相位。

在一可选实现方式中,所述预设倍数为4。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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