执行运动估计的低功率高性能视频编码方法

文档序号:7944188阅读:209来源:国知局

专利名称::执行运动估计的低功率高性能视频编码方法
技术领域
:本发明涉及一种用以执行运动估计的方法,特别是涉及一种可减少存储器容量和带宽的运动估计执行方法。
背景技术
:随着多媒体技术的应用越来越受欢迎,视频压缩技术的要求也越来越重要。许多视频压缩技术标准纷纷被提出,目前主流规格有MPEG-4和H.264/AVC。这些标准的基本原理主要为去除图像数据中冗余(redundancy)的数据,以降低图像的储存空间或图像的传输量。运动估计(MotionEstimation)为视频编码中相当重要的一部分,其利用连续帧间的相似性来去除数据在时间上的冗余性(temporalredundancy),而达到数据压缩的目的。图1为运动估计中经常采取的块比较演算法的示意图。首先把帧大小为WXH的当前帧(currentframe)100分割成块大小为NXN的多个块。接着,在参考帧(referenceframe)110(例如前一帧或下一帧)中设定大小为(N+SRH_1)X(N+SRV_1)的搜索窗口(searchwindow)112,并在搜索窗口112中找到与当前帧100中一个当前块(currentblock)104最相似的块114。接着,计算出两个块104及114间的差值及运动向量120,通过只传递差值及运动向量120来去除冗余的数据,这个步骤就是运动估计。换言之,运动估计的目的为找出当前帧中每一块的运动向量及误差来代表当前帧。然而,因为运动估计需要比较许多候选块,此高运算量将会导致存储器带宽大幅增加。图2示出一视频编码系统200的硬件架构,其中参考帧及当前帧储存于外部存储器220,而运动估计所需的数据则通过外部总线230载入内部存储器212供计算引擎(如嵌入式处理器)214使用。因此,当执行运动估计时,为了进行数据比较运算,在参考帧的搜索窗口中所需的候选块数据将通过外部总线230在外部存储器220及内部存储器212间转移,而大幅增加存储器带宽。一般而言,搜索窗口112的大小根据帧分辨率及/或压缩规格等标准而定。搜索窗口112越大,需载入内部存储器的数据量也越多,所需存储器带宽也越大。因此,需要提供一种可解决存储器带宽需求过高的运动估计执行方法。
发明内容鉴于现有技术所存在的问题,本发明提供了一种适用于MPEG-4和H.264/AVC的低功率及高性能的视频编码方法,可大幅度减少存储器容量和带宽。根据本发明的一方面,提供了一种用以执行运动估计的方法,其包含在一当前帧中选定一当前块;比较当前块与在一参考帧中的一初始参考块而得到一初始比较参数,其中初始参考块在参考帧中的位置对应当前块在当前帧中的位置;根据比较结果决定对应当前块的一预测搜索窗口;以及在搜索窗口中进行块比较并计算搜索窗口中的参考块与当前块的比较参数,以寻找与当前块相匹配的一对应参考块。本发明的其他方面,部分将在后续说明中陈述,而部分可由说明中轻易得知,或可由本发明的实施例而得知。本发明的各方面将可利用权利要求书所特别指出的元件及组合而理解并达成。需了解,前述的
发明内容及下列详细说明均仅作举例之用,并非用以限制本发明。附图与本说明书结合并构成其一部分,用以说明本发明的实施例,且连同说明书用以解释本发明的原理。在此所述的实施例是本发明的优选实施例,然而,必须了解本发明并不限于所示的配置及元件,其中图1为使用块比较演算法进行运动估计的示意图;图2示出一视频编码系统的硬件架构;图3为本发明一实施例的以螺旋搜索演算法执行运动估计的示意图;图4示出使用光栅扫描的一范例;图5示出针对参考帧的等级A到D四种数据重复利用架构;图6为等级D架构的一示意图;以及图7示出本发明一实施例的执行运动估计的方法流程图。主要元件符号说明100当前帧104当前块110参考帧112搜索窗口114块212内部存储器214计算引擎220外部存储器230总线300当前帧302当前块310参考帧312、314块400中贞410、411、412、413、414土夬510搜索窗口512,514土夬520搜索窗口522、524块排530参考帧532,534搜索窗口540参考帧542、544搜索窗口排600参考帧602、604块具体实施例方式本发明针对螺旋搜索(spiralsearch)演算法并配合数据重复利用架构提出可有效降低存储器带宽且减少内部存储器(on-chipmemory)需求的动态评估方法,其根据块原始位置的差异值(如SAD值)与搜索窗口的相关性、以及与邻近块间在空间上的相依性,动态地调整搜索窗口的大小,取代需载入整块搜索窗口的现有的动态评估方法。为了使本发明的叙述更加详尽与完备,可参照下列描述并配合图3至图7的图式。然而,以下实施例中所述的装置、元件及方法步骤,仅用以说明本发明,并非用以限制本发明的范围。图3为本发明一实施例的以螺旋搜索演算法执行运动估计的示意图,其针对当前帧300中大小为NXN的一当前块302,在参考帧310中对应当前块302的位置周围框出一个搜索窗口320,在搜索窗口320中找出与当前块302最相似的块。在此实施例中采用的比较方法为计算当前块302与搜索窗口320中的各候选块的SAD值,其计算方式如下=Cij代表当前块,Rij代表一候选块。换言之,把当前块中每一像素的强度与一候选块中每一像素的强度相减,再把所得到的NXN个差值的绝对值相加便可得到SAD值。SAD值越小,代表两个块越相似。但值得注意的是,在此实施例中,虽是以SAD值作为判断与当前块302的相似程度,但方式不限于此,其他比较方式,如均方误差(meansquareerror)或平均绝对误差(meanabsoluteerror)等亦适用于本发明。在本发明一实施例中,当针对块302进行运动估计时,首先先载入参考帧310中对应块302的位置的决312,接着比较块302及块312并计算其SAD值。若SAD值小于预定的临界值,即可结束块302的运动估计(运动向量为(0,0)),进行下一块的运动估计。若块302及块312之间的SAD值大于预定临界值,则可根据SAD值的大小而动态地调整搜索窗口320的大小。一般来说,块302与312间的SAD值越小,可预测块302所对应的搜索窗口也应越小。载入动态调整后的搜索窗口320后,在搜索窗口320内以螺旋搜索的顺序依序比较,当比较至SAD值小于预定临界值时即可停止。换言之,本发明一开始只载入所处理块的原始位置所对应的参考帧的数据,比较之后才动态地调整需要载入多少数据量至内部存储器,即搜索窗口320的大小是可动态决定的。因此,本发明可减少所需载入内部存储器的数据量,不但可降低数据传输的时间及消耗功率,也可减少所需的内部存储器大小而降低硬件成本。如图3所示,本实施例使用螺旋搜索的方式从参考帧310中找出与当前块302最相似的块,从对应块302位置的块312开始比较,依螺旋图案一圈一圈的向外依序比较。当比较到SAD小于一预定临界值的块(如块314)时,搜索便停止。一般来说,运动向量会集中在搜索中心的位置,因此螺旋扫描可大量减少运动估计的运算量。当前帧300中的所有块皆会进行上述的运动估计,以在参考帧中分别找出所对应的最相近的块,而执行运动估计的顺序将影响某一特定块在执行运动估计时,其周围的哪些块已经执行过运动估计。举例来说,图4显示使用光栅(raster)扫描的一范例,在此范例中,从左到右、从上到下扫描帧400中的所有块。因此,当要针对某一块(如块410)做运动估计时,其左方(411)、左上方(412)、上方(413)、及右上方(414)的块皆已经进行过运动估计的处理,即这些邻近块的运动向量预测值及搜索窗口范围皆为已知。藉由所获得的邻近块相关数据配合与邻近块之间的空间相关性(spatialcorrelation),可动态地调整搜索窗口范围。因此,本发明可同时根据对应块原始位置的第一次比较的SAD值以及邻近块的搜索窗口大小来调整搜索窗口的大小,以有效降低内部存储器的大小及存储器带宽。本发明并不限于使用光栅扫描顺序,其他像是Z字形(zigzag)扫描顺序也适用于本发明,但需注意的是,不同的扫描顺序将影响某个块可获得哪些邻近块的运动估计结果作为预测搜索窗口范围之用。除了使用数据预测的方法,在存储器管理上,本发明亦应用数据重复利用架构,藉由将会重复使用到的数据暂存于内部存储器中,而降低存储器存取及数据转移的次数。换言之,在分析数据的重复利用性之后,藉由加入内部存储器而避免重复存取某些数据,进而降低存储器带宽需求。对于数据重复利用架构的相关描述,可参考由D.X.Li等人于IEEETrans.ConsumerElectron.,vol.53,no.3,pp.1053-1060,Aug.2007中所发表的“具有最小存储器带宽的H.264/AVC整体运动估计的架构设计(ArchitectureDesignforH.264/AVCIntegerMotionEstimationwithMinimumMemoryBandwidth),,、由J.C.Tuan等人于IEEETrans.CircuitsSyst.VideoTechnol.,vol.12,no.l,pp.61-72,Jan.2002中所发表的“完全搜索块匹配VLSI架构的数据重复利用及存储器带宽分析(Onthedatareuseandmemorybandwidthanalysisforfull-searchblock-matchingVLSIarchitecture),,、由C.Y.Chen等人于IEEETrans.CircuitsSyst.VideoTechnol.,vol.16,no.4,pp.553-558,Apr.2006中所发表的“用于具有对应编码顺序的运动估计的等级C+数据重复使用架构(LevelC+datareuseschemeformotionestimationwithcorrespondingcodingorders),,、以及由T.C.Chen等人于IEEETrans.CircuitsSyst.VideoTechnol.,vol.17,no.2,pp.242-247,Feb.2007中所发表的“H.264/AVC中的多参考帧运动估计的单一参考帧多当前宏块架构(SingleReferenceFrameMultipleCurrentMacroblocksSchemeforMultipleReferenceFrameMotionEstimationinH.264/AVC)”,其上内容将并入本文作为参考。数据重复利用架构的性能可由以下两个因素来评估内部存储器的大小及冗余存取参数Ra,其中内部存储器可用以表示针对数据重复使用而暂存参考数据所需的存储器大小,冗余存取参数Ra则可用以评估外部存储器带宽,其定义如下参考巾贞勺总存书者器带宽(totalmemorybandwidthforreferenceframe)Ra=-最小存储器带宽(pixelcountintotal)数据重复利用的程度越低,Ra值越大,且需要越多的存储器带宽,反之,数据重复利用的程度越高,Ra值越小,且所需的存储器带宽越少。总存储器带宽BW可表示如下Bff=fXWXHXRa誦贞+fXWXHXRa翔贞其中f为帧更新速率,W为帧宽度,H为帧高度。一般来说,存储器带宽取决于帧更新速率(framerate)、帧大小、搜索窗口大小、及Ra值等,而针对特定的视频压缩应用,帧更新速率及帧大小通常为固定值,因此本发明藉由选择Ra值较小的数据重复利用架构并使用数据预测方法而减小搜索窗口的尺寸,进而有效地降低存储器带宽。对当前帧来说,平均每个块会被存取SRhXSRv次,即<formula>formulaseeoriginaldocumentpage7</formula><formula>formulaseeoriginaldocumentpage7</formula>但只要加入大小为NXN的内部存储器,就可将当前帧的Ra降低为1,如下<formula>formulaseeoriginaldocumentpage7</formula><formula>formulaseeoriginaldocumentpage7</formula>而对参考帧来说,图5显示针对参考帧的等级A到D四种数据重复利用架构,其中斜线部分为可重复利用的数据。等级A及B分别为在单一搜索窗口510、520内的数据的重复利用,等级C及D为在不同搜索窗口的数据的重复利用。详言之,对在当前帧中的大小为NXN像素的块,等级A重复利用参考帧中的大小为(N+SRH-1)X(N+SRV-1)的单一搜索窗口510中的两个水平方向连续的候选块512及514间重叠的像素,而等级B则是重复利用在搜索窗口520中的垂直方向连续的两排候选块522及524间重叠的像素。等级C为重复利用在参考帧530中两个水平方向连续块所各自对应的搜索窗口532及534间重叠的像素,而等级D重复利用在参考帧540中垂直方向连续的两排块所各自对应的搜索窗口542及544间重叠的像素。如上述,总存储器带宽取决于Ra,等级A到D架构的Ra可计算如下等级A:<formula>formulaseeoriginaldocumentpage7</formula><formula>formulaseeoriginaldocumentpage7</formula>等级B<formula>formulaseeoriginaldocumentpage7</formula><formula>formulaseeoriginaldocumentpage7</formula>等级C<formula>formulaseeoriginaldocumentpage7</formula><formula>formulaseeoriginaldocumentpage7</formula>等级D<formula>formulaseeoriginaldocumentpage7</formula>Ra=-=1<formula>formulaseeoriginaldocumentpage7</formula>因此等级D的数据重复利用性最高、所需的存储器带宽最低。另一方面,由图5可看出,等级A到D架构所需的内部存储器大小如下<table>tableseeoriginaldocumentpage7</column></row><table>由上述可知,内部存储器大小越小,存储器带宽的需求量则越大(如等级a),反之等级D架构的存储器带宽需求虽可大幅度减少,但相对的需要较大的内部存储器大小。因此,将本发明动态决定搜索窗口大小的方法应用于等级D架构,不但可有效降低其内部存储器大小需求,且可进一步降低等级D架构所需的存储器带宽。为详细说明,图6进一步描述等级D架构,其中当前块602在参考帧600中的搜索窗口为ABCD,当前块604在参考帧600中的搜索窗口为EFGH。当针对块602进行运动估计时,水平方向一整排(row)的所有搜索窗口都会载入内部存储器中,接着进行块602及其水平方向连续一排块的运动估计。接着,向下移动一个块到块604,在对块604及其水平方向连续一排块进行运动估计时,由于图中灰色部分的数据可重复使用,只需多读取图6中灰色部分下方多出来区域即可。本发明在等级D架构中,根据第一次比较的SAD值大小以及邻近块的搜索窗口大小而预测并动态地调整搜索窗口的大小,取代了原本等级D架构需载入相邻两排块的全部搜索窗口范围,而只需载入相邻两排块所对应的预测的搜索窗口范围。换言之,本发明结合了数据重复使用以及数据预测两种功能。图7示出本发明一实施例的执行运动估计的方法流程图。一般来说,在执行块比较运动估计演算法时,会先将当前帧分割成多个块,并决定对多个块执行运动估计的扫描顺序。在此实施例中,采用光栅扫描顺序依序对各个块进行运动估计,而每个块的运动估计演算法采用螺旋搜索演算法。首先,在步骤S700中,选择其中一个块以进行运动估计,并取得其邻近块的动态扫描窗口范围、邻近块的运动向量预测值和邻近块的比较数据。接着,在步骤S710中,下载相邻两排块所有相对应的初始比较块,并做一次真实比较运算,每个块得到一个比较参数<formula>formulaseeoriginaldocumentpage8</formula>其中μη代表第η个块的初始比较参数,SADn代表第η个块的初始比较的SAD值,ε代表第η个块的常数系数。接着,在步骤S720中,比较步骤710所得到的比较参数μη与一预定临界值,其中预定临界值可根据实际应用所需选择适当的数值,本发明并不限制预定临界值的大小。若在步骤S720中,比较参数小于预定临界值,则结束此块的运动估计,且过程进行至步骤S730,以判断是否所有块均完成运动估计。若在步骤S730判断所有块均完成运动估计,则过程进行至步骤S740,结束当前帧的运动估计,若在步骤S730判断并非所有块皆完成运动估计,则过程回到步骤S700,选择下一块继续执行运动估计。在步骤S720中,若比较参数大于预定临界值,则过程进行至步骤S750,利用已知的邻近块的动态搜索窗口预测出当前块的动态搜索窗口范围。在此实施例中,预测公式为取左上方、上方、右上方、和左方块的动态搜索窗口范围的平均值乘以这些邻近块的运动向量的最大值,再由常数系数进行微调,预测的搜索窗口范围如下Avg(LEFTask,TOPase,TOP-RIGHTase,TOP-LEFTase)XMax(MVX,MVy)Xδ+θ其中LEFTask为该当前块左方邻近块的预测搜索窗口、TOPask为该当前块上方邻近块的预测搜索窗口、T0P-RIGHTask为该当前块右上方邻近块的预测搜索窗口、!OP-LEFTask为该当前块左上方邻近块的预测搜索窗口,(MVx,MVy)分别代表上方、左上方、右上方、左方块的所有相关运动向量,Max代表最大值,Avg代表取平均值,δ及θ分别为不同的常数系数,其中δ及θ为经验法则的应用,可由设计者进行调整。需注意的是,预测公式可能随扫描顺序的不同而做调整。接着,在步骤S760中,只需要将相邻两排块所对应的预测搜索窗口范围从外部存储器载入内部存储器中,而不需载入相邻两排块的全部搜索窗口范围。接着,在步骤S760中,在所载入的搜索窗口中以螺旋搜索演算法对所选择的块执行运动估计,以寻找最匹配的块。在步骤S760中找到最匹配的块后,过程回到步骤S730以重复上述步骤,直到完成当前帧的运动估计。本发明利用邻近块的动态搜索范围和第一次真实比较的结果预测出动态搜索窗口范围,只需要下载相邻两排块所对应的预测动态搜索范围,取代等级D架构下载全部的搜索范围。因此,本发明只需要用到原本内部存储器的30%,存储器带宽只需要约原本的25%,大幅度的减少内部存储器和存储器带宽。以上所述仅为本发明的优选实施例而已,并非用以限定本发明的范围;凡其它未脱离本发明所揭示的精神下所完成的等效改变或修饰,均应包含在权利要求的范围内。权利要求一种用以执行运动估计的方法,包含a.在一当前帧中选定一当前块;b.比较该当前块与在一参考帧中的一初始参考块而得到一初始比较参数,其中该初始参考块在该参考帧中的位置对应该当前块在该当前帧中的位置;c.根据该比较结果决定对应该当前块的一预测搜索窗口;以及d.在该搜索窗口中进行块比较并计算该搜索窗口中的参考块与该当前块的比较参数,以寻找与该当前块相匹配的一对应参考块。2.如权利要求1所述的方法,其中步骤d以一螺旋形路径进行块比较。3.如权利要求2所述的方法,其中以该螺旋形路径进行块比较的过程中,当一特定参考块的比较参数小于一预定临界值时即停止步骤d,并以该特定参考块为该对应参考块。4.如权利要求1所述的方法,其中该比较参数为该参考块与该当前块间的一绝对误差总合(SAD)的函数。5.如权利要求4所述的方法,其中该比较参数为SADμ=-+εNxN其中SAD为一绝对误差总合,ε为一常数系数,且任一块的大小为NXN个像素。6.如权利要求5所述的方法,还包含取得该当前块的多个邻近块所各自对应的多个预测搜索窗口。7.如权利要求6所述的方法,其中该当前块的该预测搜索窗口为Avg(LEFTase,TOPase,TOP-RIGHTase,TOP-LEFTase)XMax(MVX,MVy)Xδ+θ其中LEFTask为该当前块左方邻近块的预测搜索窗口、TOPask为该当前块上方邻近块的预测搜索窗口、T0P-RIGHTask为该当前块右上方邻近块的预测搜索窗口、!OP-LEFTask为该当前块左上方邻近块的预测搜索窗口,(MVx,MVy)分别代表上方、左上方、右上方、左方块的所有相关运动向量,Max代表最大值,Avg代表取平均值,δ及θ分别为不同的常数系数。8.如权利要求7所述的方法,还包含针对该当前帧中所有块重复步骤a_d,且其中步骤a以一光栅扫描方式选出该当前块。9.如权利要求1所述的方法,还包含以下步骤e.决定该选定的当前块的水平方向上的所有块所各自对应的预测搜索窗口;f.将该水平方向上的所有块所各自对应的该预测搜索窗口,从一外部存储器载入一内部存储器中;g.执行该水平方向上的所有块的块比较;h.决定在该选定的当前块的下一排的水平方向上的所有块所各自对应的预测搜索窗口;以及i.将步骤h相较于步骤e所取得的新增的预测搜索窗口范围,从该外部存储器载入该内部存储器中。10.一种计算机可读取介质,用以储存程序指令,其中当该程序指令执行于一计算装置上时,将使该计算装置执行权利要求1所述的方法。全文摘要本发明提供一种用以执行运动估计的方法。本发明的方法包含在一当前帧中选定一当前块;比较当前块与在一参考帧中的一初始参考块而得到一初始比较参数,其中初始参考块在参考帧中的位置对应当前块在当前帧中的位置;根据比较结果决定对应当前块的一预测搜索窗口;以及在搜索窗口中进行块比较并计算搜索窗口中的参考块与当前块的比较参数,以寻找与当前块相匹配的一对应参考块。文档编号H04N7/26GK101800893SQ20091000385公开日2010年8月11日申请日期2009年2月6日优先权日2009年2月6日发明者郭斯彦,黄士嘉申请人:宏碁股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1