基于运动搜索窗的匹配搜索方法和系统的制作方法

文档序号:9290289阅读:288来源:国知局
基于运动搜索窗的匹配搜索方法和系统的制作方法
【技术领域】
[0001]本发明涉及视频编码技术领域,尤其涉及一种基于运动搜索窗的匹配搜索方法和系统。
【背景技术】
[0002]基于时域的相似性原理,不同帧相近区域的块的相似度较高。所以,编码器在处理当前帧的某个宏块时,访问参考帧的某个区域,找到最匹配的宏块,通过编码参考帧与当前帧对应区域的差异,来达到降低码率的目标。由于无法确定最匹配的区域的位置,所以需要在预估的较大的一个邻域中搜索匹配宏块。我们把这个邻域称为MSW(Mot1n SearchWindow,运动搜索窗),一般参考帧的尺寸较大,通常存放在编码器外部DRAM (DynamicRandom Access Memory,动态随机存取存储器)中,而在编码器内置一块MSW大小的SRAM(Static Random Access Memory,静态随机存储器),作为参考帧对应MSW的备份,加快编码器后续宏块匹配运算的效率。因此在宏块匹配过程中,就不可避免产生DRAM带宽的消耗。据统计,运动搜索过程是视频编码器运算量和带宽消耗最大的步骤。
[0003]按照DRAM带宽开销的情况来区分运动估计的方法,目前主要可分为两种,第一种方法是固定区域搜索法,即在参考帧的当前编码位置的一个固定大小的邻域中,搜索当前编码宏块的最匹配宏块。该方法的优点是带宽消耗固定可控,速度快,实现简单;缺点是搜索范围不灵活,对于运动剧烈场景的压缩效果较差。另一种方法是动态运动窗口法,即在当前宏块开始编码前,根据一些先验信息,提前确定一个参考帧的搜索范围,再在该范围中搜索匹配宏块。这种方法搜索范围较灵活,对运动剧烈的场景效果好于第一种方法,但缺点是每个宏块对应的搜索区域不同,导致带宽消耗不可控。

【发明内容】

[0004]基于此,有必要提供一种带宽的消耗可控的基于运动搜索窗的匹配搜索方法。
[0005]—种基于运动搜索窗的匹配搜索方法,包括以下步骤:
[0006]针对当前帧的当前宏块,建立第一预设大小的运动搜索窗;
[0007]计算各个初始迭代候选点的匹配代价,并将匹配代价最小的所述初始迭代候选点作为初始迭代点;
[0008]通过所述初始迭代点在所述运动搜索框中确定出匹配搜索的目标位置;
[0009]其中,各个所述初始迭代候选点包括:所述当前宏块、与所述当前宏块的运动向量预测值对应的点、与所述当前宏块相邻的已编码宏块以及所述运动搜索窗的中心位置对应的点。
[0010]在其中一个实施例中,所述运动搜索窗的移动方向为当前帧的水平方向,所述基于运动搜索窗的匹配搜索方法还包括:根据所述当前宏块的运动向量预测值确定所述运动搜索窗的移动步长。
[0011]在其中一个实施例中,所述根据所述当前宏块的运动向量预测值确定所述运动搜索窗的移动步长的方法为:
[0012]建立以所述当前宏块的运动向量预测值所对应的点为中心的第二预设大小的搜索区;
[0013]将所述运动搜索窗向右移动16个像素后,判断所述搜索区的点与所述运动搜索窗的位置关系:若所述搜索区的点全部位于所述运动搜索窗的内部,则所述运动搜索窗的移动步长为16 ;若所述搜索区的最左侧的点位于所述运动搜索窗的外部,则所述运动搜索窗的移动步长为零;若所述搜索区的最右侧的点位于所述运动搜索窗的外部,则所述运动搜索窗的移动步长为32 ;
[0014]其中,所述当前宏块的运动向量预测值为根据与所述当前宏块相邻的已编码宏块的运动向量计算得出的。
[0015]在其中一个实施例中,所述通过所述初始迭代点在所述运动搜索框中确定出匹配搜索的目标位置步骤包括:
[0016]将所述初始迭代点作为第一搜索模板的中心,计算所述第一搜索模板中的各个点的匹配代价;所述第一搜索模板中的各个点包括所述初始迭代点和以所述初始迭代点为中心并呈田字形对称位于所述初始迭代点周围的八个点,且所述第一搜索模板的各个点之间间隔第一预设距离;
[0017]将所述第一搜索模板中的匹配代价最小的点作为第二搜索模板的中心,计算所述第二搜索模板中的各个点的匹配代价;所述第二搜索模板中的各个点包括所述第一搜索模板中的匹配代价最小的点和以所述第一搜索模板中的匹配代价最小的点为中心呈田字形对称位于所述第一搜索模板中的匹配代价最小的点周围的八个点,且所述第二搜索模板的各个点之间间隔第二预设距离;
[0018]将所述第二搜索模板中的匹配代价最小的点作为第三搜索模板的中心,计算所述第三搜索模板中的各个点的匹配代价,将所述第三搜索模板中的匹配代价最小的点作为所述目标位置;所述第三搜索模板中的各个点包括所述第二搜索模板中的匹配代价最小的点和以所述第二搜索模板中的匹配代价最小的点为中心呈田字形对称位于所述第二搜索模板中的匹配代价最小的点周围的八个点,且所述第三搜索模板的各个点之间间隔第三预设距离。
[0019]在其中一个实施例中,若所述第一搜索模板中的第一位置的点不在所述运动搜索框内,则用所述运动搜索框中的第一替代点替代所述第一搜索模板中的第一位置的点;其中,所述第一替代点为所述运动搜索框中与所述第一搜索模板中的第一位置的点之间的欧氏距离最小的点;
[0020]若所述第二搜索模板中的第二位置的点不在所述运动搜索框内,则用所述运动搜索框中的第二替代点替代所述第二搜索模板中的第二位置的点;其中,所述第二替代点为所述运动搜索框中与所述第二搜索模板中的第二位置的点之间的欧氏距离最小的点;
[0021]若所述第三搜索模板中的第三位置的点不在所述运动搜索框内,则用所述运动搜索框中的第三替代点替代所述第三搜索模板中的第三位置的点;其中,所述第三替代点为所述运动搜索框中与所述第三搜索模板中的第三位置的点之间的欧氏距离最小的点。
[0022]在其中一个实施例中,所述运动搜索窗包括亮度运动搜索窗和色度运动搜索窗,所述亮度运动搜索窗的中心与所述色度运动搜索窗的中心重合,所述色度运动搜索窗的长度和宽度均为所述亮度运动搜索窗的长度和宽度的一半。
[0023]本发明还提出一种基于运动搜索窗的匹配搜索系统,包括运动搜索窗建立模块、初始迭代点计算模块和目标位置确定模块;
[0024]所述运动搜索窗建立模块,被配置以针对当前帧的当前宏块,建立第一预设大小的运动搜索窗;
[0025]所述初始迭代点计算模块,被配置以计算各个初始迭代候选点的匹配代价,并将匹配代价最小的所述初始迭代候选点作为初始迭代点;
[0026]所述目标位置确定模块,被配置以通过所述初始迭代点在所述运动搜索框中确定出匹配搜索的目标位置;
[0027]其中,各个所述初始迭代候选点包括:所述当前宏块、与所述当前宏块的运动向量预测值对应的点、与所述当前宏块相邻的已编码宏块以及所述搜索窗的中心位置对应的点。
[0028]在其中一个实施例中,所述运动搜索窗的移动方向为当前帧的水平方向,所述基于运动搜索窗的匹配搜索系统还包括移动步长计算模块,所述移动步长计算模块,被配置以根据所述当前宏块的运动向量预测值确定所述运动搜索窗的移动步长。
[0029]在其中一个实施例中,所述移动步长计算模块根据所述当前宏块的运动向量预测值确定所述运动搜索窗的移动步长的方法为:
[0030]建立以所述当前宏块的运动向量预测值所对应的点为中心的第二预设大小的搜索区;
[0031]将所述运动搜索窗向右移动16个像素后,判断所述搜索区的点与所述运动搜索窗的位置关系:若所述搜索区的点全部位于所述运动搜索窗的内部,则所述运动搜索窗的移动步长为16 ;若所述搜索区的最左侧的点位于所述运动搜索窗的外部,则所述运动搜索窗的移动步长为零;若所述搜索区的最右侧的点位于所述运动搜索窗的外部,则所述运动搜索窗的移动步长为32 ;
[0032]其中,所述当前宏块的运动向量预测值为根据与所述当前宏块相邻的已编码宏块的运动向量计算得出的。
[0033]在其中一个实施例中,所述目标位置确定模块通过所述初始迭代点在所述运动搜索框中确定出匹配搜索的目标位置的方法为:
[0034]将所述初始迭代点作为第一搜索模板的中心,计算所述第一搜索模板中的各个点的匹配代价;所述第一搜索模板中的各个点包括所述初始迭代点和以所述初始迭代点为中心并呈田字形对称位于所述初始迭代点四周的八个点,且所述第一搜索模板的各个点之间间隔第一预设距离;
[0035]将所述第一搜索模板中的匹配代价最小的点作为第二搜索模板的中心,计算所述第二搜索模板中的各个点的匹配代价;所述第二搜索模板中的各个点包括所述第一搜索模板中的匹配代价最小的点和以所述第一搜索模板中的匹配代价最小的点为中心呈田字形对称位于所述第一搜索模板中的匹配代价最小的点四周的八个点,且所述第二搜索模板的各个点之间间隔第二预设距离;
[0036]将所述第二搜索模板中的匹配代价最小的点作为第三搜索模板的中心,计算所述第三搜索模板中的各个点的匹配代价,将所述第三搜索模板中的匹配代价最小的点作为所述目标位置;所述第三搜索模板中的各个点包括所述第二搜索模板中的匹配代价最小的点和以所述第二搜索模板中的匹配代价
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1