运动估算及运动补偿电路的制作方法

文档序号:7754389阅读:181来源:国知局
专利名称:运动估算及运动补偿电路的制作方法
技术领域
本发明有关一种数字影像处理,特别是关于一种运动估算(motionestimation, ME)及运动补偿(motion compensation, MC)电路。
背景技术
运动估算(ME)为一种数字影像处理的技术,用于决定运动向量(motionvector或 moving vector,MV),以表示对象在影像序列中二相邻帧之间的移动。接着,将运动向量应用于运动补偿,可在二相邻帧中产生中间帧,以转换帧速率或进行影像压缩。有各种的算法以执行运动估算或运动补偿。然而,大部分运动估算或运动补偿的数学计算量很大,因此,通常无法以软件方式来实现实时(real-time)应用。即使可以使用硬件电路来实现,但是通常所需电路面积很大,因而无法以合理成本来实施。鉴于传统运动估算或运动补偿的算法效率不高或者不适于实施,因此亟需提出一种新颖的运动估算或运动补偿算法及其相关电路。

发明内容
鉴于上述,本发明实施例的目的之一在于提出一种运动估算(ME)及运动补偿 (MC)电路,相较于传统方法,可大幅地减少硬件电路及其绕线。根据本发明实施例,运动估算(ME)电路包含第一、第二存储器,第一、第二寄存器,及度量电路。第一存储器用于储存第一帧的搜寻范围。第一寄存器的尺寸小于第一存储器,且第一寄存器的每一列电耦接至第一存储器的相应列。第二存储器用于储存第二帧的搜寻范围。第二寄存器的尺寸小于第二存储器,且第二寄存器的每一列电耦接至第二存储器的相应列。度量电路用于计算第一寄存器的宏块(MB)与第二寄存器的宏块之间的多个区块匹配度量,且接着自第一存储器移位一像素位置至第一寄存器,并自第二存储器移位一像素位置至第二寄存器。重复执行区块匹配度量的计算及像素移位,直到处理完整个搜寻范围。根据本发明另一实施例,运动补偿(MC)电路包含第一、第二存储器,第一、第二寄存器,及第一、第二多工器。第一存储器用于储存第一帧的MC范围,且第一寄存器的尺寸等于一宏块(MB)。每一第一多工器将第一寄存器的每一列耦接至第一存储器的相应列,由此, 可自第一存储器选取每一 MB并加载至第一寄存器。第二存储器用于储存第二帧的MC范围,且第二寄存器的尺寸等于宏块(MB)。每一第二多工器将第二寄存器的每一列耦接至第二存储器的相应列,由此,可自第二存储器选取每一 MB并加载至第二寄存器。


图1分别显示二帧的运动向量(MV)的搜寻范围。图2显示根据一 MV算法的MB移动轨迹图。图3显示相应于图二的MB移动轨迹图的MB移动顺序图。
图4显示MB移动的例子。图5显示本发明实施例的MV算法的MB移动轨迹图。图6显示本发明实施例中相应于第五图的MV算法的SAD产生电路。图7A至第七C例示于二寄存器的MB之间计算其SAD。图8例示ME的决定。图9显示二 MC范围,其大小皆为18x18。图10显示本发明实施例的MC电路。图IlA及图IlB例示SRAM列、多工器及寄存器列。主要组件符号说明50度量电路501 第一 SAD 电路502 第二 SAD 电路503第三SAD电路504第四SAD电路505第五SAD电路506第六SAD电路507第七SAD电路60A第一静态随机存取存储器(SRAM)60B第二静态随机存取存储器(SRAM)62A第一寄存器62B第二寄存器100A第一静态随机存取存储器(SRAM)100B第二静态随机存取存储器(SRAM)102A第一寄存器102B第二寄存器104A第一多工器106A第一多工器SEL选择信号
具体实施例方式第一图分别显示二帧(例如帧1及帧2)的运动向量(MV)的搜寻范围。一般来说, 帧1及帧2分别为参考帧(例如前一帧)及目前帧。在此例子中,每一运动向量(MV)搜寻范围为12x12的矩阵。每一 MV搜寻范围内具有运动区块或宏块(motion block或macro block,MB),例如6x6的矩阵。第二图显示根据一 MV算法的MB移动轨迹图。在此图中,每一区块表示MB的位置。例如,中心位置为(0,0),中心往右的位置具正水平坐标,而中心往下的位置具正垂直坐标。对于帧1的MB移动轨迹图,其MB以前向估算(forward-estimation) 方式移动;对于帧2的MB移动轨迹图,其MB以逆向估算(backward-estimation)方式移动。换句话说,帧1与帧2的移动互为对称且位置相对。第三图显示相应于第二图的MB移动轨迹图的MB移动顺序图。如图所示,每一 MB总共移动了 49次。
根据图二及图三所示的MV算法,于每一个时间计算其绝对差之和(sumof absolute differences, SAD)。详而言之,于每一时间(或位置),对于帧1的MB及帧2的相应MB,分别计算相应像素之间的绝对差(absolute difference, AD) 0接着,将所有36像素的绝对差(AD)加总,以得到绝对差之和(SAD)。由于总共有49个位置,因而可得到49个绝对差之和(SAD),此称为完全SAD (full-SAD)。根据得到的49个SAD,具最小SAD的MB位置即可视为MV的一半(亦即,1/2MV)。 若将帧2的MB位置减去帧1的MB位置,即可得到MV。于第四图所示的例子中,帧2的MB 由中心向右移动三步且向下三步(亦即,(3,3)),而帧1的MB由中心向左移动三步且向上三步(亦即,(_3,-3))。于相减后,可得到MV为(6,6)。如果帧中含有二个(或以上)MB 位置皆具相同的最小SAD,则选择最靠近中心的MB。再者,如果这些MB距中心的距离皆相同,则依据MB移动顺序图(第三图),选择较小数字所对应的MB。若以硬件电路来实施上述的MV算法,则需要二个12x12像素寄存器以分别储存MV 搜寻范围。此外,对于MB的36像素中的每一像素,需要使用一个49至1多工器G9-to-l MUX)。如果每一像素由M位来表示(例如,红色8位,绿色8位,蓝色8位),则总共需要 36* 个多工器。这么多的多工器及其绕线将使得电路很难实施。因此,需要提出另一种算法以改善此情形。第五图显示本发明实施例的MV算法的MB移动轨迹图。MB移动轨迹图中的每一区块代表MB的位置。度量(metric)电路50位于帧1和帧2之间,用于计算区块匹配度量(block-matching metric),例如SAD。在本实施例中,度量电路50包含七个SAD电路 501-507,其分别接收帧1的第一 MB列至第七MB列,且分别接收帧2的第七MB列至第一 MB 列。在一开始,度量电路50接收帧1中各MB列的第一个MB,并接收帧2中各MB列的最后一个MB。接着,度量电路50接收帧1中各MB列的第二个MB,并接收帧2中各MB列的倒数第二个MB。依此方式计算得到SAD,直到整个MV搜寻范围都处理完毕。在此算法中,帧1与帧2的移动也是互为对称且位置相对的。第三图所示的MB移动顺序图也可适用于本算法中,且将于后续作为权重(weighting)使用,虽然其中的数字不再是代表MB移动的顺序。第六图显示本发明实施例中相应于第五图的MV算法的SAD产生电路。虽然本实施例计算SAD,然而也可以是计算其它的区块匹配度量。对于帧1,提供第一存储器,例如第一静态随机存取存储器(SRAM) 60A,用于储存整个12x12像素矩阵(第一图)。第一 SRAM 60A包含12列,例如SRAMl至SRAM12,且每一列包含12像素,而每一像素以M位来表示。 此外,提供第一寄存器62A,其大小为12x6。第一寄存器62A的每一列电耦接至第一 SRAM 60A右端的相应列。对于帧2,提供大小为12x12的第二 SRAM 60B,及大小为12x6的第二寄存器62B。第二寄存器62B的每一列电耦接至第二 SRAM 60B左端的相应列。根据第六图的电路,于每一时间,可计算七个SAD。一开始,如第七A图所示,第一 SRAM 60A的每一列的前六个像素储存于第一寄存器62A,而第二 SRAM 60B的每一列的后六个像素储存于第二寄存器62B。接着,以第一 SAD电路(SADl) 501计算第一寄存器62A的最上面MB (6x6像素)和第二寄存器62B的最下面MB (6x6像素)之间的SAD。于此同时,如第七B图所示,以第二 SAD电路(SAD2) 502计算第一寄存器62A的下一 MB (亦即,第二列至第七列)和第二寄存器62B的下一 MB (亦即,第六列至第十一列)之间的SAD。因此,对于整个第一寄存器62A及第二寄存器62B,总共可得到七个SAD。接下来,如第七C图所示,将第一寄存器62A向右移位,使得第一 SRAM 60A每一列的第七像素移进第一寄存器62A,而第一寄存器62A的最右边一行则被移出。类似的情形,将第二寄存器62B向左移位,使得第二 SRAM 60B每一列的第六像素移进第二寄存器62B,而第二寄存器62B的最左边一行则被移出。因此,对于整个第一寄存器62A及第二寄存器62B,可更得到七个SAD。重复执行上述程序,直到处理完整个MV搜寻范围以得到49个SAD。根据得到的49个SAD,具最小SAD的MB位置即可视为MV的一半(亦即,1/2MV)。 若将帧2的MB位置减去帧1的MB位置,即可得到MV0于第四图所示的例子中,于相减后, 可得到MV为(6,6)。如果帧中含有二个(或以上)MB位置皆具相同的最小SAD,则选择最靠近中心(亦即,第三图的权重0)的MB。再者,如果这些MB距中心的距离皆相同,则依据 MB移动顺序图(第三图),选择较小数字(或权重)所对应的MB。根据第五图及第六图所示,于实施MV算法时,需使用七个SAD电路501-507,但不需使用多工器。因此,相关的绕线及电路面积可以大幅地降低。于得到MV后,即可产生相应的运动估算(ME)。例如,对于帧率为60赫兹(Hz)的影像,其 ME 可表示为 ME = MV*t*/(l/60) (t = 0-1/60)或 ME = MV*t*60,其中 t 代表二帧之间经过的时间,如第八图所示。根据得到的MV及ME,接着进行运动补偿(MC),于原本帧之间产生中间帧。于执行 MC时,首先提供一寄存器,其大小同于MC范围。一般来说,MC范围等于(或小于)MB宽度加上2*(最大MV)。例如,第四图的MV为(6,6),MC范围的宽度因此等于(MB宽度)+2*(最大MV)或18( = 6+2*6)。第九图显示二 MC范围,其大小皆为18x18。根据直观,MC范围内的每一 MB具有13x13种可能位置。因此,MB的36像素的每一像素需要一 169至1多工器(169-to-lMUX)。如果每一像素由M位来表示(例如,红色 8位,绿色8位,蓝色8位),则总共需要36* 个多工器。这么多的多工器及其绕线将使得电路很难实施。因此,需要提出另一种实施方法以改善此情形。第十图显示本发明实施例的MC电路。对于帧1,提供第一存储器,例如第一静态随机存取存储器(SRAM) 100A,用于储存整个18x18像素矩阵(第九图)。第一 SRAM 100A包含18列,例如SRAMl至SRAM18,且每一列包含18像素,而每一像素以M位来表示。此外, 提供第一寄存器102A,其大小为6x6。第一寄存器102A的每一列经由第一多工器而电耦接至第一 SRAM 100A右端的相应列。第i^一 A图例示第一 SRAM 100A的前十三列、3至1第一多工器104A及第一寄存器102A的第一列。第i^一 B图例示第一 SRAM 100A的2_14列、另一个第一多工器106A及第一寄存器102A的第二列。同理,对于帧2,提供大小为18x18的第二 SRAM 100B,及大小为6x6的第二寄存器102B。第二寄存器102B的每一列经由第二多工器而电耦接至第二 SRAM 100B左端的相应列。根据第十图及第i^一 A/B图所示的电路,可由第一 /第二 SRAM100A/100B选择出MB,再将其加载至第一 /第二寄存器102A/102B。对于第十图的水平方向,第一 SRAM 100A(例如SRAMl至SRAM18)的每一 SRAM列的像素可经由寻址(addressing)第一 SRAM 100A而选到。于选到一像素后,在其右边的其它五个像素则可依序向右移位至第一寄存器 102A。对于第十图的垂直方向,可经由选择信号SEL以控制第一多工器(例如,第十一 A/B 图的104A或106A),因而选到第一 SRAM 100A的SRAM列。帧2的SRAM寻址及多工器的控制选择同于帧1,不同的是,第二 SRAM 100B向左移位,而非向右移位。值得注意的是,对于ME (x,y),MB的SRAM地址应为(7+x)至(12+x),其中7至12位于MC范围的中心。MB的选择信号SEL对应至SRAM列(7+y)至(12+y)的多工器。根据本实施例,对于MB的36 ( = 6x6)个像素,需要36个13至1多工器 (13-to-lMUX)。如果每一像素由M位来表示(例如,红色8位,绿色8位,蓝色8位),则总共需要36拉4个多工器。相较于前述需36拉4个169至1多工器,本实施例仅需36拉4个 13至1多工器,因而可大幅地降低相关绕线及电路面积。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的权利要求;凡其它未脱离发明所揭示的精神下所完成的等效改变或修饰,均应包含在下述的权利要求内。
权利要求
1.一种运动估算(ME)电路,包含一第一存储器,用于储存一第一帧的搜寻范围;一第一寄存器,其尺寸小于该第一存储器,该第一寄存器的每一列电耦接至该第一存储器的相应列;一第二存储器,用于储存一第二帧的搜寻范围;一第二寄存器,其尺寸小于该第二存储器,该第二寄存器的每一列电耦接至该第二存储器的相应列;及一度量电路,用于计算该第一寄存器的宏块(MB)与该第二寄存器的宏块之间的多个区块匹配度量,且接着自该第一存储器移位一像素位置至该第一寄存器,并自该第二存储器移位一像素位置至该第二寄存器;其中,重复执行该区块匹配度量的计算及该像素移位,直到处理完整个该搜寻范围。
2.根据权利要求1所述的运动估算电路,其中上述的区块匹配度量为绝对差之和 (SAD)。
3.根据权利要求第1项所述的运动估算电路,其中上述第一帧的搜寻范围为mxn,相关的第一帧MB大小为bxb,该第一存储器大小为mxn,该第一寄存器大小为mxb ;该第二帧的搜寻范围为mxn,相关的第二帧MB大小为bxb,该第二存储器大小为mxn,该第二寄存器大小为 mxb ο
4.根据权利要求1所述的运动估算电路,其中上述第一帧及第二帧中具有最小区块匹配度量的MB位置被决定出,再将该第二帧所决定的MB位置减去该第一帧所决定的MB位置,得到一运动向量(MV)。
5.根据权利要求第4项所述的运动估算电路,当多于一个MB位置均具有最小区块匹配度量时,则决定出最接近该第一帧及第二帧中心的MB。
6.根据权利要求第4项所述的运动估算电路,其中该运动估算(ME)根据下式得到ME = MV*t*/(l/f)其中f为帧速率,t为该第一帧及该第二帧之间经过的时间,且时间t介于0和Ι/f之间。
7.根据权利要求第1项所述的运动估算电路,当计算该区块匹配度量时,该第一帧的 MB和该第二帧的MB互为对称且位置相对。
8.根据权利要求第1项所述的运动估算电路,其中上述的第一存储器为一第一静态随机存取存储器(SRAM),且该第二存储器为一第二静态随机存取存储器(SRAM)。
9.一种运动补偿(MC)电路,包含一第一存储器,用于储存一第一帧的MC范围;一第一寄存器,其尺寸等于一宏块(MB);多个第一多工器,每一该第一多工器将该第一寄存器的每一列耦接至该第一存储器的相应列,由此,可自该第一存储器选取每一 MB并加载至该第一寄存器;一第二存储器,用于储存一第二帧的MC范围;一第二寄存器,其尺寸等于该宏块(MB);及多个第二多工器,每一该第二多工器将该第二寄存器的每一列耦接至该第二存储器的相应列,由此,可自该第二存储器选取每一 MB并加载至该第二寄存器。
10.根据权利要求第9项所述的运动补偿电路,经由寻址该第一存储器而选取该第一存储器的每一列的像素位置,且经由寻址该第二存储器而选取该第二存储器的每一列的像素位置。
11.根据权利要求第10项所述的运动补偿电路,于选取该像素位置后,接续于该选取像素之后的其它像素从该第一存储器移位至该第一寄存器或者从该第二存储器移位至该第二寄存器。
12.根据权利要求第9项所述的运动补偿电路,其中上述第一存储器的列位置的选取是用选择信号控制该第一多工器,且该第二存储器的列位置的选取是用该选择信号控制该第二多工器。
13.根据权利要求第9项所述的运动补偿电路,其中上述MC范围的宽度等于或小于该 MB宽度加上二倍的最大运动向量(MV)。
14.根据权利要求第9项所述的运动补偿电路,其中上述的第一存储器为一第一静态随机存取存储器(SRAM),且该第二存储器为一第二静态随机存取存储器(SRAM)。
全文摘要
一种运动估算(ME)及运动补偿(MC)电路。在运动估算电路中,第一存储器储存第一帧的搜寻范围,且第一寄存器的每一列电耦接至第一存储器的相应列;第二存储器储存第二帧的搜寻范围,且第二寄存器的每一列电耦接至第二存储器的相应列。于搜寻范围内进行区块匹配度量(block-matching metric)的计算,以得到运动向量(MV)。于运动补偿电路中,第一多工器将第一寄存器的每一列耦接至第一存储器的相应列,由此,可自第一存储器选取每一宏块(MB)并加载至第一寄存器。第二多工器将第二寄存器的每一列耦接至第二存储器的相应列,由此,可自第二存储器选取每一宏块(MB)并加载至第二寄存器。
文档编号H04N5/14GK102340617SQ20101022920
公开日2012年2月1日 申请日期2010年7月14日 优先权日2010年7月14日
发明者曾咏生, 曾知业 申请人:奇景光电股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1