CN102630014B - 一种基于前后两帧参考帧产生内插帧的双向运动估计器 - Google Patents

一种基于前后两帧参考帧产生内插帧的双向运动估计器 Download PDF

Info

Publication number
CN102630014B
CN102630014B CN201210097317.2A CN201210097317A CN102630014B CN 102630014 B CN102630014 B CN 102630014B CN 201210097317 A CN201210097317 A CN 201210097317A CN 102630014 B CN102630014 B CN 102630014B
Authority
CN
China
Prior art keywords
unit
data
frame
register
reference frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201210097317.2A
Other languages
English (en)
Other versions
CN102630014A (zh
Inventor
田逢春
刘艳飞
黄扬帆
周洋生
甘平
黄发
徐子航
张莎
曹鹏程
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing University
Original Assignee
Chongqing University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chongqing University filed Critical Chongqing University
Priority to CN201210097317.2A priority Critical patent/CN102630014B/zh
Publication of CN102630014A publication Critical patent/CN102630014A/zh
Application granted granted Critical
Publication of CN102630014B publication Critical patent/CN102630014B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种基于前后两帧参考帧产生内插帧的双向运动估计器,它包括:存储单元,用于缓存前后两帧参考帧中数据;匹配误差计算单元,将内插帧分为若干大小相同的宏块,基于其中的每个宏块设定搜索范围,计算搜索范围内所有运动矢量对应的匹配误差;比较器树单元,用于对搜索区域内计算出的所有匹配误差值的比较得出最小匹配误差值并输出该最小匹配误差值及其对应的运动矢量;数据存储器,用于存储最小匹配误差值及其对应的运动矢量。本发明能够灵活地执行全搜索双向运动估计算法,并且具有较高的执行效率;可增加信号的驱动能力,降低信号的延时和控制信号同步;可以实现效率最高和数据复用;具有较高的灵活性和实用性。

Description

一种基于前后两帧参考帧产生内插帧的双向运动估计器
技术领域
本发明涉及视频图像处理技术领域,具体来讲,涉及一种基于前后两帧参考帧产生内插帧的方法及其双向运动估计器。
背景技术
运动估计算法是现有各种视频图像编码技术的核心,也是基于运动估计与运动补偿(ME/MC)的视频图像后处理技术的核心,其性能的好坏直接决定了视频图像处理的质量,对视频处理系统具有重要意义。同时,运动估计器也是视频压缩编码芯片或视频图像后处理芯片中最消耗计算资源的模块,一般来说,在视频编码或视频图像后处理硬件系统中, 运动估计器要占用40% ~ 50%的硬件开销。如何提高运动估计器的运算速度与运算精度, 同时尽量简化运动估计器的结构并提高数据的利用率, 一直是视频图像编码和视频图像后处理领域的研究热点。
帧频提升,也称为时间内插或帧速率上变换,是指在原视频图像两原始帧之间插入中间帧以实现视频图像帧速率的提升,是视频图像后处理技术中的重要组成部分。随着多媒体技术特别是数字电视技术的快速发展,帧频提升得到了广泛的应用。例如,将以24帧/秒拍摄得到的电影胶片在高清晰度电视上播放必须将帧频提升至50或60帧/秒。在低比特率视频编码中,为了降低码率常通过下采样即跳过某些视频帧的方式将传输帧率降低至每秒10或15帧,在接收端则需要进行帧频提升以恢复原帧速率,以恢复原有的视频质量。此外,在液晶显示器(LCD)中,常通过将帧频提升至100或120帧/秒,减少液晶显示屏的保持时间,从而消除液晶显示器在显示动态画面时容易出现的拖尾现象,确保更加流畅的动态效果。不同于压缩编码,帧频提升对运动估计的精度要求更高。在众多帧频提升算法中,基于块匹配运动估计和运动补偿的帧频提升算法由于计算简单、便于实现而被广泛采纳。其中,基于块匹配的运动估计算法可以分为单向运动估计和双向运动估计两类。单向运动估计即传统的用于视频压缩编码中的运动估计算法,将两个连续帧中的其中一帧作为参考帧并划分为若干块,然后将该帧中的参考块对应到另一帧中寻找匹配块,相应地,该对匹配块对应的位移即为该参考块对应的运动矢量。由于视频压缩的目的是为了得到最小的残差图像,故单向运动估计可以满足视频压缩的要求。但是,对于帧频提升来讲,其目的是为了获取质量好的内插图像,而单向运动估计用于帧频提升存在的问题是会在内插帧中产生空洞和重叠现象。基于这个原因,双向运动估计应运而生。它将内插帧划分为若干块,对应于内插帧中的当前块到前后两帧中对称地寻找匹配块作为当前块的运动矢量,从而简单地避免了空洞和重叠问题。正是基于这个原因,双向运动估计得到了普遍应用。
在块匹配运动估计的搜索算法中,常用的有全搜索算法、三步法、交叉搜索算法及菱形搜索算法等。其中,三步法、交叉搜索算法和菱形搜索算法属于快速搜索算法,具有搜索速度快的特点,但其缺点是容易陷入局部最小值,搜索准确率低。相对而言,全搜索算法虽然需要的硬件资源较大,但由于其搜索精度高,控制逻辑简单的优点,在运动估计器的硬件实现领域得到了广泛的应用。目前已经有许多基于全搜索块匹配算法(Full-Search Block Matching Arithmetic, FS-BMA)的单向运动估计器的实现架构相继提出, 它们中的大多数都是基于运算单元(PE)阵列来构建, 以适应运动估计时大量并行运算和高速处理的内在要求。如,文献[1](Hangu Yeo, Yu Hen Hu. A Novel Modular Systolic Array Architecture for Full-Search Block Matching Motion Estimation[J]. IEEE Transactions on Circuits and Systems for Video Technology. 1995, vol. 5(5):407-416)提出了一种低资源消耗,低带宽需求,可级联工作的运动估计器结构;文献[2](陈孙阳,陈颖琪. 一种改进的奇偶阵列结构运动估计器设计[J]. 信息技术. 2010, 8:01-05)提出了一种基于lai结构改进的,采用了奇偶阵列寄存器的单向运动估计器的实现架构。该结构能够高效地复用数据从而减少访问存储器的次数。但是,上述结构由于是基于单向运动估计的设计而使其应用受到了限制,对于像帧频提升这样的应用其结果尚不尽人意。
发明内容
针对现有技术存在的上述不足,本发明的目的在于提供一种基于前后两帧参考帧产生内插帧的双向运动估计器,本估计器能够灵活地执行全搜索双向运动估计算法,并且具有较高的执行效率。
为了实现上述目的,本发明采用的技术方案是这样的:
一种基于前后两帧参考帧产生内插帧的双向运动估计器,该运动估计器包括:
存储单元,用于缓存前后两帧参考帧中数据;
匹配误差计算单元,将内插帧分为若干大小相同的宏块,基于其中的每个宏块设定搜索范围,根据存储单元发送过来的前后两帧参考帧中的数据计算搜索范围内所有运动矢量对应的匹配误差;
比较器树单元,用于对搜索区域内计算出的所有匹配误差值的比较得出最小匹配误差值并输出该最小匹配误差值及其对应的运动矢量;
数据存储器,用于存储比较器树单元输出的所有宏块的最小匹配误差值及其对应的运动矢量,所有的运动矢量共同作为运动估计的结果。
所述匹配误差计算单元由n个CALC单元(运算单元)构成,每个CALC单元由m个PE单元(即内部运算单元)、奇偶阵列寄存器和一个比较器树构成,即匹配误差计算单元总共有n×m个PE单元,n个比较器树;其中,奇偶阵列寄存器包括四组移位寄存器,分别为前一参考帧偶数列数据寄存器、前一参考帧奇数列数据寄存器、后一参考帧偶数列数据寄存器和后一参考帧奇数列数据寄存器,分别对应前后两帧参考帧中偶数列和奇数列数据的寄存;奇偶阵列寄存器将其存储的数据对应输入m个PE单元,每个PE单元负责计算一个搜索点对应匹配块的匹配误差值,每个CALC单元的m个匹配误差值输出到该CALC单元对应的比较器树,由该比较器树比较并输出最小匹配误差值及其对应的运动矢量,该最小匹配误差值及其对应的运动矢量即作为对应的CALC单元的输出;n个CALC单元的输出再输入到比较器树单元,得到最终的最小匹配误差值及其对应的运动矢量。
进一步地,本双向运动估计器还包括控制单元,所述控制单元输出控制信号到n个CALC单元中的每个PE单元,其中一路控制信号控制PE单元选择当前输入的值应该是奇数列数据还是偶数列数据,另一路控制信号用来控制PE单元将计算结果输出,当该另一路控制信号(latch_en信号)为低时,PE单元输出呈高阻态,当该另一路控制信号(latch_en信号)为高时,PE单元输出计算得到的匹配误差值。
为了增加信号的驱动能力和控制信号的同步,本发明通过在寄存器对信号进行锁存,所述控制单元通过寄存器与PE单元连接,每个CALC单元中的m个PE单元分为相等的若干组,每个CALC单元中的寄存器的数量与PE单元分组数量一致并一一对应,每一个寄存器与对应PE单元分组中的所有PE单元连接。
每个PE单元由两个数据选择器MUX、差值绝对值计算器和累加器acc构成,前一参考帧偶数列数据寄存器和前一参考帧奇数列数据寄存器中的数据输入到其中一个数据选择器MUX,后一参考帧偶数列数据寄存器和后一参考帧奇数列数据寄存器的数据输入到另一个数据选择器MUX;所述控制单元的一路控制信号同时接两数据选择器MUX;两数据选择器MUX根据控制信号输出某列寄存器的数据到差值绝对值计算器,差值绝对值计算器的输出接累加器acc;所述控制单元的另一路控制信号接累加器acc,控制累加器acc将累加后的匹配误差值输出,该输出即为对应PE单元的匹配误差值。
所述存储单元以条带形式缓存前后两帧参考帧中数据并按列输入到匹配误差计算单元。
与现有技术相比,本发明具有如下有益效果:
1.本发明双向运动估计器能够灵活地执行全搜索双向运动估计算法,并且具有较高的执行效率。
2.本发明控制单元通过增加寄存器锁存信号的方式增加信号的驱动能力,降低信号的延时和控制信号同步。
3.本发明在块大小和搜索点数相同的情况下,可以实现效率最高和数据复用;在块大小和搜索点数不同的情况下,也可以通过多个CALC单元级联的方式实现效率最高和数据复用。
4.本发明可以通过配置使之适用于多种视频格式和多种像素位宽,这使得本发明具有较高的灵活性和实用性。
附图说明
图1是本发明运动估计器框图;
图2是本发明中所述双向运动估计原理示意图;
图3是本发明中的双向运动估计器的具体实施例框图;
图4是本发明CALC单元内部结构图;
图5是本发明增加mux_sel和latch_en信号驱动能力示意图;
图6是本发明PE单元内部结构图;
图7是本发明从存储单元读到奇偶阵列寄存器的顺序;
图8是本发明阵列结构原理示例;
图9是本发明PE阵列初始化完成示意图。
具体实施方式
下面结合附图对本发明作进一步说明。
参见图1,从图上可以看出,本发明双向运动估计器,该运动估计器主要包括:
存储单元10,以条带的方式缓存前后两帧参考帧中对应数据。
匹配误差计算单元20,将内插帧分为若干大小相同的矩形宏块,基于其中的每个宏块设定搜索范围,根据存储单元发送过来的前后两帧参考帧中的数据计算搜索范围内所有运动矢量对应的匹配误差;匹配误差计算单元分为奇偶阵列寄存器201和PE单元203两部分。其中,奇偶阵列寄存器包括4组移位寄存器,分别为前一参考帧偶数列数据寄存器、前一参考帧奇数列数据寄存器、后一参考帧偶数列数据寄存器和后一参考帧奇数列数据寄存器,对应前后两帧参考帧中的偶数列和奇数列数据。关于匹配误差计算单元的内部结构,后面将有详细描述。
比较器树单元30,负责完成对搜索区域内计算出的所有匹配误差值的比较,得出最小匹配误差值并同时输出该匹配误差值及其对应的运动矢量。
控制单元40,通过在寄存器中对信号进行锁存,增加信号的驱动能力和控制信号的同步。
数据存储器50,用于存储比较器树单元输出的所有宏块的最小匹配误差值及其对应的运动矢量,所有的运动矢量共同作为运动估计的结果。
双向运动估计的原理如图2所示,左侧为前一帧,中间为内插帧,右侧为后一帧。与单向运动估计不同,双向运动估计将内插帧分块,以内插帧中宏块为参考块在前后两参考帧中对称地寻找匹配块,从而简单地避免了单向运动估计容易产生的空洞和重叠问题。双向运动估计的匹配误差函数有最小均方误差(Mean Square Error, MSE) 准则、最小平均绝对差(Mean Absolute Difference, MAD)准则及绝对误差之和(Sum of Absolute Difference, SAD) 准则等,其中,SAD准则因其实现简单方便、利于实时性实现等优点使用最多。SAD定义如下式所示:
Figure 2012100973172100002DEST_PATH_IMAGE001
                    (1)
其中,
Figure 43591DEST_PATH_IMAGE002
Figure 2012100973172100002DEST_PATH_IMAGE003
分别是当前帧
Figure 960731DEST_PATH_IMAGE004
中位于和参考帧
Figure 802785DEST_PATH_IMAGE006
中位于
Figure 2012100973172100002DEST_PATH_IMAGE007
处的灰度值,
Figure 11044DEST_PATH_IMAGE008
为像素
Figure 887733DEST_PATH_IMAGE002
Figure 710195DEST_PATH_IMAGE003
之间的运动矢量(位移矢量),
Figure 2012100973172100002DEST_PATH_IMAGE009
为宏块的尺寸。
为更好地理解本发明,下面结合具体实施方式及附图对本发明进行更为详细的描述。在以下的描述中,当已有技术的详细描述会淡化本发明的主题内容时,这些描述内容将被忽略。
这里,为叙述方便,定义搜索范围内需要计算的匹配误差值的个数为“搜索点数”,相应地,每对需要计算匹配误差的匹配块为一个“搜索点”。考虑到双向运动估计的特殊性,其块尺寸大小和搜索范围大小均要满足一定要求。块尺寸不能过小,块尺寸过小容易导致估计不准确;而对于搜索范围则是不能太大,搜索范围过大会导致图像中某些细节被背景所取代。同时,对于本发明中的奇偶阵列结构,为满足效率最高和数据复用,要满足一个基本原则,即块大小和搜索点数相同。基于以上两点考虑,本发明的实施例以块大小16
Figure 790278DEST_PATH_IMAGE010
16、搜索范围
Figure 2012100973172100002DEST_PATH_IMAGE011
7为例,匹配误差函数选择SAD准则。对于7的搜索范围,搜索点数为1515。为了满足阵列结构的数据复用,将搜索窗扩充1行1列以满足搜索点数等于16
Figure 713738DEST_PATH_IMAGE010
16的基本原则,对于多计算出来的SAD值不予采纳即可。
本发明的具体实施例采用了层次结构的设计,主要分为顶层结构、中间层结构及底层结构三层。
顶层结构如图3所示,由16个CALC单元20和1个比较器树单元30构成,每个CALC单元负责计算16个SAD值并输出最小SAD值及其对应运动矢量,16个CALC单元计算出的16个最小SAD值再输入到比较器树单元30中,由比较器树单元完成对这16个最小SAD值的比较得到最终的最小SAD值并输出,同时输出该SAD值对应的运动矢量作为运动估计的结果,输出结果存入数据存储器50中。
Sram存储单元10将前后两帧参考帧数据以条带形式存储,本发明实施例采用11
Figure 278187DEST_PATH_IMAGE010
5个16
Figure 15198DEST_PATH_IMAGE010
16块大小的垂直条带,然后将数据输入到CALC单元内部的移位寄存器中。比较器树单元的功能是根据输入的16个最小SAD数据再找出其中的最小值。在本发明实施例中首先将16个数据进行锁存,然后通过两两比较的方式得到最小值。需要说明的是,下面的中间层结构中即CALC单元内部的比较器树(见图4)的功能和实现方式与顶层结构中的比较器树30(见图3)的功能和实现方式完全相同。
中间层结构即CALC单元内部结构,如图4所示,每个CALC单元内部由16个PE单元203及4组奇偶阵列移位寄存器201和一个比较器树构成,每个PE单元负责计算一个搜索点对应匹配块的SAD值,输出到比较器树,由比较器树最终输出最小SAD值及其对应的运动矢量。16个CALC单元,每个单元包括16个PE单元,则一共有256个PE单元正好对应了16
Figure 600901DEST_PATH_IMAGE010
16的搜索点数。PE单元的输入数据由4组并入并出移位寄存器201提供,每组移位寄存器包括16个10bit位宽的D触发器,每一个clk的上升沿移位寄存器根据图4中箭头方向将D触发器中的值传入到下一个D触发器,同时也将数据传入到PE单元中。这样,每一个时钟周期内PE单元内的数据完成一次更新,经过256个时钟周期即可将一个匹配块所需的1616=256个像素数据输入到PE单元中完成一次SAD值的计算。
4组移位寄存器分别为前一帧偶数列数据寄存器fp_even(E0~E15),前一帧奇数列数据寄存器fp_odd(O0~O15),后一帧偶数列数据寄存器fn_even(E0~E15),和后一帧奇数列数据寄存器fn_odd(O0~O15)。这四组寄存器都接入到PE单元上,在任意一个时刻,PE单元根据输入的控制信号mux_sel信号选择当前输入的值应该是奇数列数据还是偶数列数据。控制信号latch_en用来控制PE单元将计算结果输出,当latch_en信号为低时,PE单元输出呈高阻态,当latch_en信号为高时,PE单元输出计算得到的SAD值。latch_en信号在系统初始化完成以后每隔256个时钟周期拉高一次,将所有PE单元内的SAD值输出到比较器树中。
由于每个PE单元的SAD输出端均要接入比较器,多个数据到达比较器输入的时间不容易同步,存在较大的时延,因此将PE单元输出的SAD值先锁存在一个寄存器中,然后再接入比较器,如图4所示。锁存在寄存器中的SAD值维持若干个时钟clk,比较器树在若干个clk之后,即数据稳定后开始从寄存器中获取SAD值,开始比较找出最小值。
由于控制信号mux_sel和latch_en需要驱动16个处理单元,为了将长延时的路径截断,分别利用4个寄存器“复制”每个信号,每个寄存器分别驱动4个PE单元,从而增加了信号的驱动能力,如图5所示。
底层结构则是PE单元的内部结构,负责完成PE单元内部的具体计算,如图6所示。如前所述,在任意一个时刻,PE单元上输入的四组数据只有两组有效,另外两组会被过滤掉,这个数据选择的实现是通过PE单元内部的2个数据选择器MUX单元来实现的。为了突出关键信号,省略了模块的时钟信号clk和复位信号rst_n。当mux_sel信号为高时,MUX单元选择fp_even和fn_even,反之则选择fp_odd和fn_odd。PE单元根据MUX单元输出的fp、fn信号先计算其差值的绝对值即|fp-fn|,然后将该结果送入累加器acc中,将每个时钟周期内得到的|fp-fn|结果进行累加。该过程即是SAD匹配准则的实现过程。每隔256个时钟周期,一个PE单元正好根据SAD匹配准则完成了一个匹配块所对应的256个搜索点的计算,可以得到一个SAD值,此时latch_en信号正好会拉高将SAD计算结果输出。
数据从Sram存储单元10中流入移位寄存器的顺序如图7所示。Sram按照垂直条带的结构存储前后两帧数据,读Sram的方式按照从上到下、从左到右的顺序按列读取数据,每读取搜索窗高度的数据后向右切换至下一列。为进一步说明数据从Sram单元10中流入移位寄存器的顺序,下面对本发明的阵列结构原理做详细阐述。本发明实施例采用的宏块的大小为16
Figure 272370DEST_PATH_IMAGE010
16,由于1616大小的宏块不容易画图表示,这里以4
Figure 4014DEST_PATH_IMAGE010
4块大小为例进行说明,如图8所示,其处理过程与块大小为16
Figure 401497DEST_PATH_IMAGE012
16的基本一致。如前所述,在本发明实施例中为满足效率最高和数据复用,要满足一个基本原则,即块大小和搜索点数相同。基于该原则,4
Figure 2012100973172100002DEST_PATH_IMAGE013
4块大小的搜索范围应为-2~1,此时搜索点数也为4
Figure 943468DEST_PATH_IMAGE010
4。为叙述方便,拟作以下规定:
(1) 以宏块左上角的像素坐标表示某个宏块并以B开头,像素点坐标则以P开头。例如,当前宏块B(2,2)表示左上角像素点P(2,2)到右下角像素点P(5,5)所围成的4
Figure 22283DEST_PATH_IMAGE010
4宏块。
(2) 对于前一帧、后一帧及当前帧(内插帧)中的数据分别用FP、 FN及 FC做前缀。例如,当前帧中的宏块B(3,3)则用FC_B(3,3)表示。
假定当前宏块为图8中标明为“当前宏块”的加粗实线框所示(即FC_B(2,2)),当前宏块的搜索窗如图8中长虚线框所示,为左上角像素点P(0,0)到右下角像素点P(6,6)所覆盖的矩形区域,大小为7
Figure 520260DEST_PATH_IMAGE010
7。当前宏块与其右侧相邻块(B(2,6))的重叠搜索窗部分如图8中短虚线框所示,即为本发明实施例的阵列结构可以数据复用的部分。根据双向运动的对称搜索原则,当前宏块FC_B(2,2)需要计算SAD值的对应宏块为:前一帧中的FP_B(0,0)到 FP_B(3,3)对应后一帧中的FN_B(4,4)到 FN_B(1,1),共16个对应宏块,产生的16个SAD值中的最小值对应的运动矢量即最终运动矢量。这16个SAD值完全并行计算,每个PE单元负责其中一个SAD值的计算,而每个SAD值的计算需要一个匹配块内16个像素点的数据,所以PE单元完成一次SAD值的计算需要16个时钟周期。而在本发明实施例中块大小为16
Figure 354224DEST_PATH_IMAGE010
16,依此推算其完成一次SAD值的计算需要消耗256个时钟周期。
由于双向运动估计为对称搜索,所以前后参考帧中对应的搜索窗存在一个错位。但前后两帧中对应的数据量仍是相同的,或者说搜索窗的大小是相同的。例如图8中块大小为4×4的情况,当搜索范围为-2~1时,当前宏块FC_B(2,2)在前一帧中的搜索窗为左上角像素FP_P(0,0)到右下角像素FP_P(6,6)所构成的矩形窗,而后一帧中的搜索窗则为左上角像素FP_P(1,1)到右下角像素FP_P(7,7)所构成的矩形窗,存在错位但大小相同。为了使数据能够在移位寄存器中顺序流入且中间没有空寄存器,要将搜索窗扩充一行一列以满足阵列结构的寄存器存储形式,多扩充出来的1行1列并不参与运算。对于图8中实例,即前一帧的搜索窗变为左上角像素FP_P(0,0)到右下角像素FP_P(7,7)所构成的矩形窗,后一帧中的搜索窗扩充为左上角像素FP_P(1,1)到右下角像素FP_P(8,8)所构成的矩形窗。移位寄存器中的数据流向如图4所示,后一帧的数据是相对前一帧数据反向流入的,前一帧的数据由左边的E15和O15流向E0和O0,而后一帧的数据由右边的E0、O0流向E15和O15。
在块大小为4
Figure 304863DEST_PATH_IMAGE010
4的前提下,当开始计算FP_B(0,0)与FN_B(4,4)这对匹配块所产生的SAD值时,按照SAD准则,就是计算前一帧中左上角像素FP_P(0,0)至右下角像素FP_P(3,3)共16个像素点与后一帧中左上角像素FN_P(4,4)至右下角像素FN_P(7,7)共16个像素点对应绝对差的累加和。像素数据扫描方式采用列扫描,即从上到下,从左到右。设初始时刻为t0,在t0时刻,前一帧的偶数列数据和后一帧的奇数列数据开始流入,在t0时刻后的第4个时钟开始前一帧的奇数列数据和后一帧的偶数列数据开始流入。设t0时刻后的第16个时钟周期为t1时刻,此时前一帧的32个移位寄存器(奇偶各16个)中存入了16个偶列数据和12个奇列数据,此时PE单元可以开始SAD值的计算。而在t0到t1的这16个时钟周期是初始化移位寄存器,PE单元不进行计算。当初始化完成后,以后的数据则可以完全流动起来不再需要额外的数据初始化时间。初始化完成后的PE阵列如图9所示,寄存器中所装载的数据见每个寄存器的上方或下方标出的像素坐标。在本发明实施例中,由于存在256个PE单元所以初始化时间为256个时钟周期。在t1时刻的下一个时钟的上升沿,存有FP_P(0,0)数据的寄存器将值打入到PE0,同时该寄存器的值更新为FP_P(1,0)数据,即移位寄存器向右移动了一位。同时,FN_P(4,4)也被打入到PE0,即可以计算一个对应像素点的差值了;存储FN_P(4,4)的寄存器更新为FN_P(5,4),即移位寄存器向左移动了一位。当t1时刻后的第二个的时钟的上升沿时,FP_P(1,0)和FN_P(5,4)被打入到PE0,即又计算了宏块FP_B(0,0) 与FN_B(4,4)对应像素点的一个差值,以此类推,经过16个时钟后,PE0单元就计算出了FP_B(0,0) 与FN_B(4,4)所产生的SAD值。同时,其他15个PE单元也并行地计算出了其他15个SAD值。值得注意的是,对图8中块大小为4×4的情况下,每隔4个时钟周期,mux_sel信号会取反一次,作一次奇偶列数据切换,所以每一列的后4个数据其实不会用于计算,mux_sel信号会自动切换到读取另一列的前4个数据,而过滤掉本列的后4个数据。在本发明实施例中,由于块大小为16
Figure 417DEST_PATH_IMAGE010
16,所以PE单元需要256个时钟才能计算出一个SAD值,mux_sel也是16个时钟反转一次,但数据流动过程与该例一致。
当FC_B(2,2)计算完成SAD值后,开始计算下一个宏块即FC_B(2,6)的SAD值计算。此时计算上一个宏块所需的数据FP_P(0,4),FP_P(1,4),……,FP_P(6,4),FP_P(0,5),……,FP_P(6,6)等(重叠区数据)还留在移位寄存器内,如图8中短虚线框所示,而这些数据也是计算下一个宏块即FC_B(2,6)的SAD值所需要用到的数据,即该结构能够满足数据复用的需求,减少数据请求次数,提高数据利用率。另外,本发明实施例可以通过配置使之适用于多种视频格式和多种像素位宽,这样就使得本发明实施例具有较高的灵活性和实用性。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (3)

1.一种基于前后两帧参考帧产生内插帧的双向运动估计器,其特征在于,该运动估计器包括:
存储单元,用于缓存前后两帧参考帧中数据;所述存储单元以条带形式缓存前后两帧参考帧中数据并按列输入到匹配误差计算单元;存储单元按照垂直条带的结构存储前后两帧数据,读存储单元的方式按照从上到下、从左到右的顺序按列读取数据,每读取搜索窗高度的数据后向右切换至下一列;
匹配误差计算单元,将内插帧分为若干大小相同的宏块,基于其中的每个宏块设定搜索范围,根据存储单元发送过来的前后两帧参考帧中的数据计算搜索范围内所有运动矢量对应的匹配误差;所述匹配误差计算单元由n个CALC单元构成,CALC单元即运算单元,n为大于等于1的自然数,n的大小由运动估计的搜索范围决定,每个CALC单元由m个PE单元、奇偶阵列寄存器和一个比较器树构成,PE单元即内部运算单元,m的大小由运动估计的块大小决定,其中,奇偶阵列寄存器包括四组移位寄存器,分别为前一参考帧偶数列数据寄存器、前一参考帧奇数列数据寄存器、后一参考帧偶数列数据寄存器和后一参考帧奇数列数据寄存器,分别对应前后两帧参考帧中偶数列和奇数列数据的寄存;奇偶阵列寄存器将其存储的数据对应输入m个PE单元,每个PE单元负责计算一个搜索点对应匹配块的匹配误差值,每个CALC单元的m个匹配误差值输出到该CALC单元对应的比较器树,由该比较器树比较并输出最小匹配误差值及其对应的运动矢量,该最小匹配误差值及其对应的运动矢量即作为该CALC单元的输出;n个CALC单元的输出再输入到比较器树单元,得到最终的最小匹配误差值及其对应的运动矢量;本双向运动估计器块大小和搜索点数相同;其中块大小为16                                               
Figure 2012100973172100001DEST_PATH_IMAGE002
16,搜索范围为
Figure 2012100973172100001DEST_PATH_IMAGE004
7,搜索点数为15
Figure DEST_PATH_IMAGE002A
15;为了满足阵列结构的数据复用,将搜索窗扩充1行1列以满足搜索点数等于16
Figure DEST_PATH_IMAGE002AA
16的基本原则,多计算出来的SAD值不予采纳,SAD值即绝对误差之和;
比较器树单元,用于对搜索区域内计算出的所有匹配误差值的比较得出最小匹配误差值并输出该最小匹配误差值及其对应的运动矢量;
数据存储器,用于存储比较器树单元输出的所有宏块的最小匹配误差值及其对应的运动矢量,所有的运动矢量共同作为运动估计的结果;
本双向运动估计器还包括控制单元,所述控制单元输出控制信号到n个CALC单元中的每个PE单元,其中一路控制信号控制PE单元选择当前输入的值应该是奇数列数据还是偶数列数据,另一路控制信号用来控制PE单元将计算结果输出,当该另一路控制信号为低时,PE单元输出呈高阻态,当该另一路控制信号为高时,PE单元输出计算得到的匹配误差值。
2.根据权利要求1所述的双向运动估计器,其特征在于:所述控制单元通过寄存器与PE单元连接,每个CALC单元中的m个PE单元分为相等的若干组,每个CALC单元中的寄存器的数量与PE单元分组数量一致并一一对应,每一个寄存器与对应PE单元分组中的所有PE单元连接,通过在寄存器中对信号进行锁存,增加信号的驱动能力和控制信号的同步。
3.根据权利要求2所述的双向运动估计器,其特征在于:每个PE单元由两个数据选择器MUX、差值绝对值计算器和累加器acc构成,前一参考帧偶数列数据寄存器和前一参考帧奇数列数据寄存器中的数据输入到其中一个数据选择器MUX,后一参考帧偶数列数据寄存器和后一参考帧奇数列数据寄存器的数据输入到另一个数据选择器MUX;所述控制单元的一路控制信号同时接两数据选择器MUX;两数据选择器MUX根据控制信号输出某列寄存器的数据到差值绝对值计算器,差值绝对值计算器的输出接累加器acc;所述控制单元的另一路控制信号接累加器acc,控制累加器acc将累加后的匹配误差值输出,该输出即为对应PE单元的匹配误差值。
CN201210097317.2A 2012-04-05 2012-04-05 一种基于前后两帧参考帧产生内插帧的双向运动估计器 Expired - Fee Related CN102630014B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210097317.2A CN102630014B (zh) 2012-04-05 2012-04-05 一种基于前后两帧参考帧产生内插帧的双向运动估计器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210097317.2A CN102630014B (zh) 2012-04-05 2012-04-05 一种基于前后两帧参考帧产生内插帧的双向运动估计器

Publications (2)

Publication Number Publication Date
CN102630014A CN102630014A (zh) 2012-08-08
CN102630014B true CN102630014B (zh) 2014-06-18

Family

ID=46588159

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210097317.2A Expired - Fee Related CN102630014B (zh) 2012-04-05 2012-04-05 一种基于前后两帧参考帧产生内插帧的双向运动估计器

Country Status (1)

Country Link
CN (1) CN102630014B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103686188B (zh) * 2012-09-14 2017-02-22 扬智电子科技(上海)有限公司 一种运动估计搜索窗映射方法以及运动估计模块
CN103096082B (zh) * 2013-01-22 2016-12-28 清华大学 一种基于时域演变的双向运动估算方法
WO2015139174A1 (zh) * 2014-03-17 2015-09-24 富士通株式会社 图像编码方法、装置以及图像处理设备
WO2016187776A1 (zh) * 2015-05-25 2016-12-01 北京大学深圳研究生院 一种基于光流法的视频插帧方法及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5731850A (en) * 1995-06-07 1998-03-24 Maturi; Gregory V. Hybrid hierarchial/full-search MPEG encoder motion estimation
US8724022B2 (en) * 2009-11-09 2014-05-13 Intel Corporation Frame rate conversion using motion estimation and compensation
US20110134315A1 (en) * 2009-12-08 2011-06-09 Avi Levy Bi-Directional, Local and Global Motion Estimation Based Frame Rate Conversion
CN102045568B (zh) * 2010-12-30 2012-08-08 福州瑞芯微电子有限公司 双斜栅扫描实现对角线匹配运动估计匹配电路结构和方法

Also Published As

Publication number Publication date
CN102630014A (zh) 2012-08-08

Similar Documents

Publication Publication Date Title
JP2636674B2 (ja) 動画像の動きベクトル検出装置
CN100471275C (zh) 用于h.264/avc编码器的运动估计方法
US8427579B2 (en) Frame rate conversion apparatus and method for ultra definition image
CN102630014B (zh) 一种基于前后两帧参考帧产生内插帧的双向运动估计器
CN103220488A (zh) 一种视频帧率上转换装置及方法
CN102148990B (zh) 一种运动矢量预测装置和方法
CN101163244A (zh) 视频解码器运动补偿过程中的像素缓存方法及系统
CN102509071A (zh) 光流计算系统和方法
CN1703094B (zh) 1/4像素插值应用于1/2像素插值结果的图象插值装置和方法
CN101860747B (zh) 亚像素运动估计系统及方法
CN102932643B (zh) 一种适用于hevc标准的扩展可变块运动估计电路
CN101778280B (zh) 一种基于avs运动补偿亮度插值运算的电路及方法
CN102340663B (zh) 图像运动估计方法和装置
CN100568920C (zh) 串行输入并行输出的视频图像亮度插值的方法和装置
JP2008022134A (ja) 整数画素動き予測機構、1/4画素輝度用動き予測機構、1/4画素色差用動き予測機構、組合せ輝度用動き予測機構、組合せ輝度・色差用動き予測機構及び1/4画素輝度・色差用動き予測機構
CN101945289B (zh) 全搜索扩展可变块运动估计电路
CN100469146C (zh) 视频图像运动补偿装置
CN101938644A (zh) 视频压缩1/2像素精度运动估计硬件实现方法
CN102045568B (zh) 双斜栅扫描实现对角线匹配运动估计匹配电路结构和方法
CN102215404B (zh) 嵌入式系统中视频的解码方法和系统
Yu et al. A high-performance configurable VLSI architecture for integer motion estimation in H. 264
Seth et al. A parallel architectural implementation of the New Three-Step Search algorithm for block motion estimation
JP2931783B2 (ja) 動きベクトル探索装置
Taşdizen et al. High performance hardware architectures for a hexagon-based motion estimation algorithm
Chen et al. Variable block size motion estimator design for scan rate up-convertor

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140618

Termination date: 20150405

EXPY Termination of patent right or utility model