专利名称:运动矢量估计系统的制作方法
技术领域:
本发明涉及一种运动矢量估计系统(Motion vector estimation system)及其方法,特别涉及一种可有效减少内存与带宽负载且增进移动估计的准确性的运动矢量估计系统及其方法。
背景技术:
在现有视频译码装置(Video encoder)中,运动矢量估计系统是一最主要的部份。运动矢量估计系统不仅需要巨大的计算能量,并且在读取图素数据时,往往需要庞大的存储带宽。
请参阅图1,图1为一现有视频译码装置10的功能方块图。在视频译码装置10中,一硬件加速器(Hardware accelerator)12是用以负责移动估计所需的大量运算,并且一中央处理单元(Central processing unit,CPU)14是用以处理其它工作程序(Workload)。为了节省主要总线(Bus)16的负载,一缓冲寄存器(Buffer)18,亦即所谓的搜寻窗口(Search window),用以从主存储器20快取图素数据。接着,硬件加速器12再从缓冲寄存器18撷取图素数据,以执行搜寻的操作程序。对于一搜寻范围(Search range)为[-r,r-1]的移动估计器来说,应载入并计算的图素数目为(2r+b)2个,其中b*b个图素是表示一宏区块的大小。举例来说,假如搜寻范围是为[-32,31]且宏区块的大小为16*16个图素,移动估计器就必须加载一80*80的搜寻窗口;假如搜寻范围缩减为[-16,15],则搜寻窗口可缩减为48*48。然而,虽然减小搜寻范围可帮助减小计算复杂度并且降低所需的存储带宽,在高解析应用中,例如高分辨率电视(High definition television,HDTV),为了达到好的品质以及可接受的位率,大的搜寻范围却是必需的。
为了在不加大搜寻窗口的情况下,增进移动估计的准确性,已有现有技术,例如美国专利公告第6,078,618号,提出藉由预测搜寻窗口的偏移(Offset),以扩大搜寻范围。然而,由于这些现有技术中搜寻窗口的加载会变得不规则,使得这些技术在带宽上会造成大量额外的负载。请参阅图2A至图2C,图2A为对应于宏区块n的搜寻窗口22的示意图。图2B为对应于宏区块m的搜寻窗口24无偏移的示意图。图2C为对应于宏区块m的搜寻窗口26水平偏移4b的示意图。如图2A所示,假设搜寻范围为[-b,b-1],则对应于宏区块n的的搜寻窗口22包含9b2个图素(如图2A中斜线区域所示),其中b亦等于宏区块的大小。如图2B所示,若对应于宏区块m的搜寻窗口24没有任何偏移产生,亦即宏区块m位于其相对应搜寻窗口24的中心,由于宏区块m的搜寻窗口24与宏区块n的搜寻窗口22重迭的6b2个图素(如图2B中斜虚线区域所示)已被加载,则移动估计器仅需载入剩下的3b2个图素(如图2B中斜实线区域所示)。然而,若搜寻窗口可任意变动,则图2B中所述的架构将会失去作用。如图2C所示,对应于宏区块m的搜寻窗口26具有一水平偏移量4b,且搜寻窗口26与宏区块n的搜寻窗口22没有重迭部分。换句话说,移动估计器将无法重复利用搜寻窗口22已存储的图素数据,而必须再次加载搜寻窗口26所包含9b2个图素。在上述现有技术中,若搜寻窗口是以一任意变动的偏移量平移,则重复加载数据将会加大存储带宽的负载。
因此,本发明的主要目的在于提供一种运动矢量估计系统及其方法,以解决上述问题。
发明内容
本发明的一目的在于提供一种运动矢量估计系统及其方法,用以估计一帧(Frame)中一宏区块(Macroblock)的一输出运动矢量,进而增进搜寻窗口中图素数据的重复使用率,且降低存储带宽。
根据本发一较佳具体实施例,运动矢量估计系统(Motion vectorestimation system)是用以估计一第一帧中一第一宏区块的一输出运动矢量。运动矢量估计系统包含一运动矢量预测电路(Motion vector predictioncircuit)、一搜寻窗口偏移检测电路(Search window offset detectingcircuit)、一搜寻窗口存储单元(Search window memory)、一运动矢量检测电路(Motion vector detecting circuit)、一第一加法器(Adder)以及一第二加法器。
在上述的实施例中,运动矢量预测电路是用以产生一预测水平运动矢量以及一预测垂直运动矢量。根据该预测水平运动矢量以及一预定阈值(Threshold),搜寻窗口偏移检测电路是用以产生一移转水平运动矢量,并且以该移转水平运动矢量平移关于该第一帧的该第一宏区块的一搜寻窗口,其中该平移后搜寻窗口包含多个比较宏区块。搜寻窗口存储单元是用以选择性地存储该平移后搜寻窗口中的该多个比较宏区块。运动矢量检测电路是用以从该多个比较宏区块中选出一参考宏区块,并且根据该参考宏区块以及该第一宏区块,输出一比较水平运动矢量以及一比较垂直运动矢量,其中相较于该第一宏区块与该多个比较宏区块中的其它宏区块间的差异,该第一宏区块与该参考宏区块间的差异是为最小。第一加法器是用以加总该预测水平运动矢量、该移转水平运动矢量以及该比较水平运动矢量,以产生该第一帧中该第一宏区块的该输出运动矢量的一水平分量。第二加法器是用以加总该预测垂直运动矢量以及该比较垂直运动矢量,以产生该第一帧中该第一宏区块的该输出运动矢量的一垂直分量。
因此,藉由本发明的运动矢量估计系统,相对于每一宏区块的搜寻窗口会选择性地被水平平移,进而增进搜寻窗口中图素数据的重复使用率,且降低存储带宽。
关于本发明的优点与精神可以藉由以下的发明详述及附图得到进一步的了解。
图1为一现有视频译码装置的功能方块图。
图2A为对应于宏区块n的搜寻窗口的示意图。
图2B为对应于宏区块m的搜寻窗口无偏移的示意图。
图2C为对应于宏区块m的搜寻窗口水平偏移4b的示意图。
图3为根据本发明第一较佳具体实施例的运动矢量估计系统的功能方块图。
图4为根据本发明第一较佳具体实施例的运动矢量估计方法的流程图。
图5为图4中步骤S102的详细流程图。
图6是显示根据本发明的实验结果。
附图符号说明10视频译码装置;12硬件加速器14中央处理单元;16总线18缓冲寄存器; 20主存储器
22、24、26搜寻窗口; 30运动矢量估计系统32运动矢量预测电路; 34搜寻窗口偏移检测电路36搜寻窗口存储单元; 38运动矢量检测电路40第一加法器;42第二加法器44运动矢量存储单元; 46第一帧m、n宏区块; b宏区块的大小Px预测水平运动矢量; Py预测垂直运动矢量Pth预定阈值; Pxs移转水平运动矢量Pxc比较水平运动矢量; Pyc比较垂直运动矢量MVx水平分量; MVy垂直分量具体实施方式
请参阅图3,图3为根据本发明第一较佳具体实施例的运动矢量估计系统30的功能方块图。运动矢量估计系统(Motion vector estimationsystem)30包含一运动矢量预测电路(Motion vector predictioncircuit)32、一搜寻窗口偏移检测电路(Search window offset detectingcircuit)34、一搜寻窗口存储单元(Search window memory)36、一运动矢量检测电路(Motion vector detecting circuit)38、一第一加法器(Adder)40、一第二加法器42以及一运动矢量存储单元(Motion vector memory)44。在此实施例中,运动矢量估计系统30是用以估计一第一帧(Frame)46中一第一宏区块(Macroblock)的一输出运动矢量。如图3所示,第一帧46是经由一输入端输入运动矢量检测电路38。
在上述的实施例中,运动矢量预测电路32是用以产生一预测水平运动矢量Px以及一预测垂直运动矢量Py。根据该预测水平运动矢量Px以及一预定阈值(Threshold)Pth,搜寻窗口偏移检测电路34是用以产生一移转水平运动矢量Pxs,并且以该移转水平运动矢量Pxs平移关于该第一帧46的第一宏区块的一搜寻窗口,其中该平移后搜寻窗口包含多个比较宏区块。搜寻窗口存储单元36是用以选择性地存储该平移后搜寻窗口中的该多个比较宏区块。运动矢量检测电路38是用以从该多个比较宏区块中选出一参考宏区块,并且根据该参考宏区块以及该第一宏区块,输出一比较水平运动矢量Pxc以及一比较垂直运动矢量Pyc,其中相较于该第一宏区块与该多个比较宏区块中的其它宏区块间的差异,该第一宏区块与该参考宏区块间的差异是为最小。第一加法器40是用以加总该预测水平运动矢量Px、该移转水平运动矢量Pxs以及该比较水平运动矢量Pxc,以产生该第一帧46中该第一宏区块的该输出运动矢量的一水平分量MVx。第二加法器42是用以加总该预测垂直运动矢量Py以及该比较垂直运动矢量Pyc,以产生该第一帧46中该第一宏区块的该输出运动矢量的一垂直分量MVy。最后,运动矢量估计系统30会进一步将水平分量MVx与垂直分量MVy合成为该第一宏区块的该输出运动矢量。此外,运动矢量存储单元44是用以存储分别由该第一加法器40以及该第二加法器42所产生的该输出运动矢量的该水平分量MVx以及该垂直分量MVy。
在上述的实施例中,该移转水平运动矢量Pxs的值是选自下列群组的其中之一0、一预定常数的正值以及该预定常数的负值,其中该预定常数是相当在该第一宏区块的大小。举例来说,若宏区块的大小为16*16个图素所构成,则预定常数值即为16。在此实施例中,假设r代表一预定搜寻范围,亦即搜寻窗口的搜寻范围可表示为[-r,r-1]。当Px/r大于该预定阈值Pth时(Px/r>Pth),该移转水平运动矢量Pxs的值是等于该预定常数的正值,亦即搜寻窗口偏移检测电路34会以该移转水平运动矢量Pxs向右平移关于该第一帧46的第一宏区块的搜寻窗口。当Px/r小于或等于该预定阈值Pth的负值时(Px/r≤-Pth),该移转水平运动矢量Pxs的值是等于该预定常数的负值,亦即搜寻窗口偏移检测电路34会以该移转水平运动矢量Pxs向左平移关于该第一帧46的第一宏区块的搜寻窗口。除了上述两种情况之外,该移转水平运动矢量Pxs的值是等于0,亦即搜寻窗口偏移检测电路34不会平移关于该第一帧46的第一宏区块的搜寻窗口。
藉由上述的运动矢量估计系统30,搜寻窗口的偏移仅会有下列三种情况向右偏移一宏区块的大小、向左偏移一宏区块的大小或者不偏移。因此,可增进搜寻窗口中图素数据的重复使用率,且降低存储带宽。
在上述的实施例中,预定阈值Pth是预先存储在搜寻窗口偏移检测电路34中,且可根据不同的需求而设定之。在一较佳具体实施例中,预定阈值Pth可设定为0.5。
请参阅图4,图4为根据本发明第一较佳具体实施例的运动矢量估计方法的流程图。根据上述的较佳具体实施例,本发明的运动矢量估计方法是用以估计第一帧中第一宏区块的输出运动矢量。该运动矢量估计方法包含下列步骤步骤S100产生一预测水平运动矢量Px以及一预测垂直运动矢量Py;步骤S102根据该预测水平运动矢量Px以及一预定阈值Pth,产生一移转水平运动矢量Pxs,并且以该移转水平运动矢量Pxs平移关于该第一帧46的该第一宏区块的一搜寻窗口,其中该平移后搜寻窗口包含多个比较宏区块,该移转水平运动矢量的值是选自下列群组的其中之一0、一预定常数的正值以及该预定常数的负值,该预定常数是相当于该第一宏区块的大小;步骤S104选择性地存储该平移后搜寻窗口中的该多个比较宏区块;步骤S106从该多个比较宏区块中选出一参考宏区块,并且根据该参考宏区块以及该第一宏区块,输出一比较水平运动矢量Pxc以及一比较垂直运动矢量Pyc,其中相较于该第一宏区块与该多个比较宏区块中的其它宏区块间的差异,该第一宏区块与该参考宏区块间的差异是为最小;步骤S108加总该预测水平运动矢量Px、该移转水平运动矢量Pxs以及该比较水平运动矢量Pxc,以产生该第一帧46中该第一宏区块的该输出运动矢量的一水平分量MVx。
步骤S110加总该预测垂直运动矢量Py以及该比较水平运动矢量Pyc,以产生该第一帧46中该第一宏区块的该输出运动矢量的一垂直分量MVy。
步骤S112存储该输出运动矢量的该水平分量MVx以及该垂直分量MVy,并且输出该输出运动矢量。
请参阅图5,图5为图4中步骤S102的详细流程图。假设r代表一预定搜寻范围,亦即搜寻窗口的搜寻范围可表示为[-r,r-1]。步骤S102进一步包含下列步骤步骤S1020判断Px/r是否大于该预定阈值Pth或者Px/r是否小于或等于该预定阈值Pth的负值,若Px/r>Pth,则进行步骤S1022,若Px/r≤-Pth,则进行步骤S1024,若上述结果皆为否定,则进行步骤S1026;步骤S1022令该移转水平运动矢量Pxs的值等于该预定常数的正值,并且以该移转水平运动矢量Pxs向右平移关于该第一帧46的第一宏区块的搜寻窗口;步骤S1024令该移转水平运动矢量Pxs的值是等于该预定常数的负值,并且以该移转水平运动矢量Pxs向左平移关于该第一帧46的第一宏区块的搜寻窗口;
步骤S1026令该移转水平运动矢量Pxs的值是等于0,亦即不平移关于该第一帧46的第一宏区块的搜寻窗口。
请参阅图6,图6是显示根据本发明的实验结果,其中位率(Bit-rate)是为主要的表现衡量标准(Performance metric),且不包括位率控制机制。搜寻范围设定为[-16,15],并且宏区块大小为16*16图素。图6为比较下列三种水平搜寻策略的实验结果(A)[-16,15];(B)[-16,15]辅以本发明的运动矢量估计系统及其方法;(C)[-32,31]。如图6所示,明显地,由于(C)的搜寻范围最大,所以(C)的实验结果最佳。然而,由图6亦可看出,(B)的实验结果与(C)极为相近。换句话说,相较于(C),(B)所需的额外带宽几乎等于零。因此,由此实验结果更可明显地看出本发明的运动矢量估计系统及其方法可有效地增进其效能。
相较于现有技术,本发明的运动矢量估计系统会选择性地将相对于每一宏区块的搜寻窗口水平平移或不平移,进而增进搜寻窗口中图素数据的重复使用率,且降低存储带宽。此外,本发明的运动矢量估计系统的设计较为简单,且成本也较低。
藉由以上较佳具体实施例的详述,是希望能更加清楚描述本发明的特征与精神,而并非以上述所揭露的较佳具体实施例来对本发明的范畴加以限制。相反地,其目的是希望能涵盖各种改变及具相等性的安排于本发明所欲申请的专利范围的范畴内。
权利要求
1.一种运动矢量估计系统,用以估计一第一帧中一第一宏区块的一输出运动矢量,该运动矢量估计系统包含一运动矢量预测电路,用以产生一预测水平运动矢量以及一预测垂直运动矢量;一搜寻窗口偏移检测电路,根据该预测水平运动矢量以及一预定阈值,用以产生一移转水平运动矢量,该搜寻窗口偏移检测电路并且以该移转水平运动矢量平移关于该第一帧的该第一宏区块的一搜寻窗口,其中,该平移后搜寻窗口包含多个比较宏区块;一搜寻窗口存储单元,与该搜寻窗口偏移检测电路相耦合,用以选择性地存储该平移后搜寻窗口中的该多个比较宏区块;一运动矢量检测电路,与该搜寻窗口存储单元相耦合,用以从该多个比较宏区块中选出一参考宏区块,并且根据该参考宏区块以及该第一宏区块,输出一比较水平运动矢量以及一比较垂直运动矢量,其中,相较于该第一宏区块与该多个比较宏区块中的其它宏区块间的差异,该第一宏区块与该参考宏区块间的差异是为最小;以及一第一加法器,用以加总该预测水平运动矢量、该移转水平运动矢量以及该比较水平运动矢量,以产生该第一帧中该第一宏区块的该输出运动矢量的一水平分量。
2.如权利要求1所述的运动矢量估计系统,进一步包含一第二加法器,用以加总该预测垂直运动矢量以及该比较垂直运动矢量,以产生该第一帧中该第一宏区块的该输出运动矢量的一垂直分量。
3.如权利要求2所述的运动矢量估计系统,进一步包含一运动矢量存储单元,用以存储分别由该第一加法器以及该第二加法器所产生的该输出运动矢量的该水平分量以及该垂直分量。
4.如权利要求1所述的运动矢量估计系统,其中,该移转水平运动矢量的值是选自下列群组的其中之一0、一预定常数的正值以及该预定常数的负值。
5.如权利要求4所述的运动矢量估计系统,其中,该预定常数是相当于该第一宏区块的大小。
6.如权利要求5所述的运动矢量估计系统,其中,当Px/r大于该预定阈值时,该移转水平运动矢量的值是等于该预定常数的正值,当Px/r小于或等于该预定阈值的负值时,该移转水平运动矢量的值是等于该预定常数的负值,否则该移转水平运动矢量的值是等于0,其中Px是代表该预测水平运动矢量,且r是代表一预定搜寻范围。
7.一种运动矢量估计方法,用以估计一第一帧中一第一宏区块的一输出运动矢量,该运动矢量估计方法包含下列步骤产生一预测水平运动矢量以及一预测垂直运动矢量;根据该预测水平运动矢量以及一预定阈值,产生一移转水平运动矢量,并且以该移转水平运动矢量平移关于该第一帧的该第一宏区块的一搜寻窗口,其中该平移后搜寻窗口包含多个比较宏区块;选择性地存储该平移后搜寻窗口中的该多个比较宏区块;从该多个比较宏区块中选出一参考宏区块,并且根据该参考宏区块以及该第一宏区块,输出一比较水平运动矢量以及一比较垂直运动矢量,其中相较于该第一宏区块与该多个比较宏区块中的其它宏区块间的差异,该第一宏区块与该参考宏区块间的差异是为最小;以及加总该预测水平运动矢量、该移转水平运动矢量以及该比较水平运动矢量,以产生该第一帧中该第一宏区块的该输出运动矢量的一水平分量。
8.如权利要求7所述的运动矢量估计方法,进一步包含下列步骤加总该预测垂直运动矢量以及该比较垂直运动矢量,以产生该第一帧中该第一宏区块的该输出运动矢量的一垂直分量。
9.如权利要求8所述的运动矢量估计方法,进一步包含下列步骤存储该输出运动矢量的该水平分量以及该垂直分量。
10.如权利要求7所述的运动矢量估计方法,其中,该移转水平运动矢量的值是选自下列群组的其中之一0、一预定常数的正值以及该预定常数的负值。
11.如权利要求10所述的运动矢量估计方法,其中,该预定常数是相当于该第一宏区块的大小。
12.如权利要求11所述的运动矢量估计方法,其中,当Px/r大于该预定阈值时,该移转水平运动矢量的值是等于该预定常数的正值,当Px/r小于或等于该预定阈值的负值时,该移转水平运动矢量的值是等于该预定常数的负值,否则该移转水平运动矢量的值是等于0,其中Px是代表该预测水平运动矢量,且r是代表一预定搜寻范围。
全文摘要
本发明揭露一种运动矢量估计系统及其方法,用以估计一帧中一宏区块的一输出运动矢量。运动矢量估计系统会选择性地将相对于每一宏区块的搜寻窗口水平平移或不平移,进而增进搜寻窗口中图素数据的重复使用率,且降低存储带宽。
文档编号H04N7/26GK1953549SQ20051011388
公开日2007年4月25日 申请日期2005年10月21日 优先权日2005年10月21日
发明者谢镇宇, 王瑞麟, 赵维民 申请人:广达电脑股份有限公司