專利名稱::補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法
技術(shù)領(lǐng)域:
:本發(fā)明是關(guān)于在^L頻編碼與解碼系統(tǒng)中的補(bǔ)差點(diǎn)運(yùn)算(interpolation),且特別是關(guān)于視頻編碼與解碼系統(tǒng)中的補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法。
背景技術(shù):
:在目前視頻編碼與解碼系統(tǒng)中,動(dòng)態(tài)估計(jì)(motionestimation)具有1/2、1/4、1/8點(diǎn)的精準(zhǔn)度,而此非整數(shù)點(diǎn)不存在于外部存儲(chǔ)器之中,為利用存在外部存儲(chǔ)器的整數(shù)點(diǎn)計(jì)算而來。所以在視頻編碼與解碼系統(tǒng)中,無論動(dòng)態(tài)估計(jì)或動(dòng)態(tài)補(bǔ)償(motioncompensation),只要涉及非整數(shù)點(diǎn)的動(dòng)態(tài)向量(motionvector),都會(huì)使用補(bǔ)差點(diǎn)運(yùn)算。舉例而言,如圖l所示,在H.264視頻系統(tǒng)規(guī)格中,其l/2點(diǎn)位置像素(pixel)的值為利用六組系數(shù)(six-tap)的有限脈沖響應(yīng)濾波器(finiteimpulseresponse,簡稱為FIR)所計(jì)算出來。圖l當(dāng)中,白色方塊(如A、B、C、D等)表示整數(shù)點(diǎn)位置,而內(nèi)含線條的方塊(如aa、bb、h、m等)表示需要補(bǔ)差點(diǎn)運(yùn)算的1/2點(diǎn)位置。b點(diǎn)位置像素的值為算式(E-5F+20G+20H-5I+J)/32的值取整數(shù)值。h點(diǎn)位置像素的值為算式(A-5C+20G+20M-5R+T)/32的值取整數(shù)值。由上述算式得知,計(jì)算1/2點(diǎn)位置像素的值需4個(gè)乘法運(yùn)算。以目前最為普遍的圖像格式CIF格式(commonintermediateformat,簡稱CIF)而言,每一畫面(frame)具有352*288個(gè)像素,計(jì)算CIF格式所有1/2點(diǎn)位置像素的值需(703*575-352*288(整數(shù)點(diǎn)))*4=1,211,396個(gè)乘法運(yùn)算,約120萬個(gè)乘法運(yùn)算;計(jì)算所有1/8點(diǎn)位置像素的值約需5000萬個(gè)乘法運(yùn)算。其中1/4點(diǎn)位置像素的值可以利用加法器與位移器,因此不列于評(píng)估。此外,在CIF格式中,所有1/2點(diǎn)位置具有703*575-352*288(整數(shù)點(diǎn))=302,846個(gè)像素,即表示儲(chǔ)存所有1/2點(diǎn)位置像素的值約需296Kbytes的存儲(chǔ)器空間;儲(chǔ)存所有1/8點(diǎn)位置像素的值約需6Mbytes的存儲(chǔ)器空間。由于補(bǔ)差點(diǎn)為利用外部存儲(chǔ)器儲(chǔ)存的整數(shù)點(diǎn)推演而來,若考慮外部存儲(chǔ)器頻寬為16位,則為了計(jì)算1/2、1/4及1/8點(diǎn)位置像素的值,各需抓取整個(gè)畫面的整數(shù)點(diǎn)數(shù)據(jù),也就是要抓取396*256*1.5/16=76032次。由上列敘述可知,在視頻編碼與解碼系統(tǒng)中,計(jì)算補(bǔ)差點(diǎn)的運(yùn)算量與所需儲(chǔ)存補(bǔ)差點(diǎn)的存儲(chǔ)器空間所費(fèi)極大,而且需多次讀取儲(chǔ)存整數(shù)點(diǎn)的外部存儲(chǔ)器o
發(fā)明內(nèi)容本發(fā)明提供一種補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法,利用暫存區(qū)(memorybuffer)存在于高速緩存(cache)中,藉以儲(chǔ)存計(jì)算過的補(bǔ)差點(diǎn)數(shù)據(jù),可降低運(yùn)算量與存儲(chǔ)器存取次數(shù)。本發(fā)明還提供一種補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法,采用有效利用存儲(chǔ)器空間的儲(chǔ)存方式,藉以避免上述暫存區(qū)空間的浪費(fèi)。本發(fā)明的一較佳實(shí)施例為利用動(dòng)態(tài)向量差(motionvectordifference)的大小分布比例來分析圖像,藉以決定暫存區(qū)存在于高速緩存的空間大小。補(bǔ)差點(diǎn)為利用動(dòng)態(tài)向量找到參考畫面的宏區(qū)塊(macroblock),藉以計(jì)算出補(bǔ)差點(diǎn),而這些動(dòng)態(tài)向量對(duì)應(yīng)參考畫面的宏區(qū)塊,在一般彼此間關(guān)聯(lián)性強(qiáng)的圖像會(huì)有較多重迭之處,因此利用此一暫存區(qū)儲(chǔ)存前些計(jì)算過的補(bǔ)差點(diǎn),避免重復(fù)計(jì)算的運(yùn)算量以及對(duì)外部存儲(chǔ)器讀取整數(shù)點(diǎn)位置像素的次數(shù)。本發(fā)明另一較佳實(shí)施例為該暫存區(qū)存在于高速緩存中的儲(chǔ)存方式。利用這些補(bǔ)差點(diǎn)對(duì)應(yīng)于外部存儲(chǔ)器內(nèi)的邏輯坐標(biāo)的小數(shù)點(diǎn)部分,將暫存區(qū)劃分為多個(gè)區(qū)域,使用這些區(qū)域儲(chǔ)存非整數(shù)點(diǎn)位置的補(bǔ)差點(diǎn)數(shù)據(jù)。如此不需要保留整數(shù)點(diǎn)位置也能在暫存區(qū)內(nèi)迅速搜尋補(bǔ)差點(diǎn)數(shù)據(jù),兼具節(jié)省高速緩存空間與提高效率的優(yōu)點(diǎn)。本發(fā)明還提供一種補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法,包括判斷暫存區(qū)內(nèi)是否儲(chǔ)存非整數(shù)點(diǎn)的補(bǔ)差點(diǎn)數(shù)據(jù);若該暫存區(qū)已儲(chǔ)存該補(bǔ)差點(diǎn)數(shù)據(jù),則提供該補(bǔ)差點(diǎn)數(shù)據(jù);以及若該暫存區(qū)未儲(chǔ)存該補(bǔ)差點(diǎn)數(shù)據(jù),則自存儲(chǔ)器讀取鄰近該非整數(shù)點(diǎn)的整數(shù)點(diǎn)數(shù)據(jù),據(jù)以計(jì)算該補(bǔ)差點(diǎn)數(shù)據(jù),然后將該補(bǔ)差點(diǎn)數(shù)據(jù)存入該暫存區(qū)。本發(fā)明還提供一種補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法,包括將暫存區(qū)劃分為多個(gè)區(qū)域;以及使用該些區(qū)域儲(chǔ)存多個(gè)非整數(shù)點(diǎn)的補(bǔ)差點(diǎn)數(shù)據(jù);其中,每一上述非整數(shù)點(diǎn)的每一邏輯坐標(biāo)的小數(shù)部分與同一區(qū)域的另一上述非整數(shù)點(diǎn)的對(duì)應(yīng)邏輯坐標(biāo)的小數(shù)部分皆相同。本發(fā)明還提供一種補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法,包括將暫存區(qū)劃分為多個(gè)區(qū)域;使用該些區(qū)域儲(chǔ)存多個(gè)非整數(shù)點(diǎn)的補(bǔ)差點(diǎn)數(shù)據(jù),其中,每一上述非整數(shù)點(diǎn)的每一邏輯坐標(biāo)的小數(shù)部分與同一區(qū)域的另一上述非整數(shù)點(diǎn)的對(duì)應(yīng)邏輯坐標(biāo)的小數(shù)部分皆相同;若特定非整數(shù)點(diǎn)的補(bǔ)差點(diǎn)數(shù)據(jù)已儲(chǔ)存于該暫存區(qū),則直接提供該補(bǔ)差點(diǎn)數(shù)據(jù);以及若該暫存區(qū)未儲(chǔ)存該特定非整數(shù)點(diǎn)的補(bǔ)差點(diǎn)數(shù)據(jù),則自存儲(chǔ)器讀取鄰近該特定非整數(shù)點(diǎn)的整數(shù)點(diǎn)數(shù)據(jù),據(jù)以計(jì)算該補(bǔ)差點(diǎn)數(shù)據(jù),然后將該補(bǔ)差點(diǎn)數(shù)據(jù)存入該暫存區(qū)。為讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉本發(fā)明的較佳實(shí)施例,并配合所附圖式,作詳細(xì)說明如下。圖1為一般視頻編碼與解碼系統(tǒng)的補(bǔ)差點(diǎn)運(yùn)算示意圖。圖2為本發(fā)明一實(shí)施例的補(bǔ)差點(diǎn)數(shù)據(jù)暫存區(qū)示意圖。圖3及圖4為本發(fā)明一實(shí)施例的存儲(chǔ)地址旋轉(zhuǎn)示意圖。圖5為本發(fā)明一實(shí)施例的分區(qū)域儲(chǔ)存方法示意圖。[主要元件標(biāo)號(hào)說明]200:高速緩存的暫存區(qū)201、202:宏方塊203:宏方塊的重迭部分310、320:補(bǔ)差點(diǎn)數(shù)據(jù)暫存區(qū)在參考畫面的對(duì)應(yīng)邊界315、325:參考畫面的非整數(shù)點(diǎn)宏區(qū)塊500:補(bǔ)差點(diǎn)數(shù)據(jù)暫存區(qū)501、502、503:暫存區(qū)內(nèi)的儲(chǔ)存區(qū)域511、521、531:暫存區(qū)內(nèi)的非整數(shù)點(diǎn)數(shù)據(jù)MV1、MV2:動(dòng)態(tài)向量具體實(shí)施例方式以下較佳實(shí)施例的說明以視頻編碼器或視頻解碼器為例。本實(shí)施例的視頻編碼器或視頻解碼器使用外部存儲(chǔ)器儲(chǔ)存參考畫面(referenceframe)整數(shù)點(diǎn)位置像素的數(shù)據(jù),并使用內(nèi)建的高速緩存做為暫存區(qū),儲(chǔ)存之前計(jì)算過的非整數(shù)點(diǎn)位置像素的值。若欲降低系統(tǒng)運(yùn)算量與外部存儲(chǔ)器存取頻率,可以利用容量較大的高速緩存儲(chǔ)存計(jì)算過的補(bǔ)差點(diǎn)數(shù)據(jù),但是太大的高速緩存會(huì)造成電路面積與價(jià)格上的問題。因此本實(shí)施例使用相對(duì)較小的暫存區(qū),例如32*32像素,加上存儲(chǔ)地址旋轉(zhuǎn)的觀念(細(xì)節(jié)后述),就可以有效降低系統(tǒng)運(yùn)算量與外部存儲(chǔ)器存取頻率,同時(shí)也不需要太大的高速緩存。在本實(shí)施例中,每當(dāng)需要一個(gè)非整數(shù)點(diǎn)的補(bǔ)差點(diǎn)數(shù)據(jù),會(huì)先判斷暫存區(qū)內(nèi)是否儲(chǔ)存這個(gè)非整數(shù)點(diǎn)的補(bǔ)差點(diǎn)數(shù)據(jù),若有儲(chǔ)存就直接取出使用,不用重復(fù)計(jì)算。反之,若暫存區(qū)沒儲(chǔ)存這個(gè)補(bǔ)差點(diǎn)數(shù)據(jù),就從外部存儲(chǔ)器讀取鄰近上述非整數(shù)點(diǎn)的整數(shù)點(diǎn)數(shù)據(jù),據(jù)以計(jì)算所需的補(bǔ)差點(diǎn)數(shù)據(jù),然后將計(jì)算得出的補(bǔ)差點(diǎn)數(shù)據(jù)存入暫存區(qū),以后就能重復(fù)使用。圖2繪示上述方法的一個(gè)范例。請(qǐng)參照?qǐng)D2,200是用來儲(chǔ)存補(bǔ)差點(diǎn)數(shù)據(jù)的暫存區(qū)。假設(shè)目前畫面的某一宏區(qū)塊根據(jù)動(dòng)態(tài)向量MV1對(duì)應(yīng)到參考畫面的非整數(shù)點(diǎn)宏區(qū)塊201,而且根據(jù)動(dòng)態(tài)向量MV2對(duì)應(yīng)到參考畫面的非整數(shù)點(diǎn)宏區(qū)塊202。計(jì)算宏區(qū)塊201的補(bǔ)差點(diǎn)數(shù)據(jù)時(shí),已將這些補(bǔ)差點(diǎn)數(shù)據(jù)存入暫存區(qū)200。當(dāng)需要宏區(qū)塊202的補(bǔ)差點(diǎn)數(shù)據(jù)時(shí),兩宏區(qū)塊重迭部分203的補(bǔ)差點(diǎn)數(shù)據(jù)可由暫存區(qū)200直接提供,不用重復(fù)計(jì)算。就宏區(qū)塊202而言,原本需要31*31*4=3844個(gè)乘法運(yùn)算,扣掉重迭部分203之后只需31*4-16*2=368個(gè)乘法運(yùn)算,節(jié)省了約90.4%的計(jì)算量。本實(shí)施例的暫存區(qū)大小不限定32*32像素。實(shí)際上,本實(shí)施例是先統(tǒng)計(jì)至少一個(gè)視頻數(shù)據(jù)流(videobitstream)的動(dòng)態(tài)向量差(MVD:motionvectordifference)的大小分布,然后根據(jù)上述大小分布決定暫存區(qū)的大小。所謂動(dòng)態(tài)向量差的大小,在此定義為動(dòng)態(tài)向量差的各坐標(biāo)分量的最大值。例如某個(gè)動(dòng)態(tài)向量差為(a,b),若a大于b,則此動(dòng)態(tài)向量差的大小為a,否則為b。本實(shí)施例分析三個(gè)^L頻數(shù)據(jù)流,其名稱為News、Silent及Football,分別可以代表低頻、中頻及高頻的視頻圖像。視頻數(shù)據(jù)流News主要為播報(bào)新聞,其圖像移動(dòng)變化小;視頻數(shù)據(jù)流Silent主要為手語動(dòng)作,其圖像移動(dòng)集中在部分區(qū)域,移動(dòng)變化較News高;視頻數(shù)據(jù)流Footbal1為美式足球運(yùn)動(dòng)場景,運(yùn)動(dòng)員與球移動(dòng)變化大。以上三個(gè)視頻數(shù)據(jù)流皆為CIF規(guī)格,分析結(jié)果如下列的表l所示。MVD<8像素8〈MVD〈16像素16〈MVD〈32像素MVD>32像素<table>tableseeoriginaldocumentpage9</column></row><table>表l各種視頻數(shù)據(jù)流的動(dòng)態(tài)向量差分析統(tǒng)計(jì)表表l當(dāng)中,絕大部分的動(dòng)態(tài)向量差皆小于32像素,所以本實(shí)施例的暫存區(qū)大小設(shè)定為32*32像素。若集中處理高頻視頻,可使用64*64像素的暫存區(qū);若集中處理低頻視頻,則16*16像素的暫存區(qū)就已經(jīng)足夠??傊畷捍鎱^(qū)大小可視動(dòng)態(tài)向量差的大小分布比例做調(diào)整,例如設(shè)定暫存區(qū)的最小邊長必須大于所有4見頻數(shù)據(jù)流的所有動(dòng)態(tài)向量差當(dāng)中,一個(gè)預(yù)設(shè)比例的動(dòng)態(tài)向量差。本實(shí)施例的暫存區(qū)是二維陣列,會(huì)對(duì)應(yīng)到參考畫面中一個(gè)同等大小的區(qū)域,因?yàn)闀捍鎱^(qū)大小有限,難免會(huì)有非整數(shù)點(diǎn)的宏區(qū)塊超出暫存區(qū)邊界。請(qǐng)參照?qǐng)D3。假設(shè)暫存區(qū)原本在參考畫面中的對(duì)應(yīng)邊界為310,其左上角在參考畫面的邏輯坐標(biāo)為(2.5,3.5),右下角在參考畫面的邏輯坐標(biāo)為(34.5,35.5),以左上角為起點(diǎn)。邊界310可容納宏區(qū)塊315,其左上角在參考畫面的邏輯坐標(biāo)為(18.5,19.5),右下角在參考畫面的邏輯坐標(biāo)為(34.5,35.5)。宏區(qū)塊315的非整數(shù)點(diǎn)邏輯坐標(biāo)都是根據(jù)目前畫面的某一宏區(qū)塊與其動(dòng)態(tài)向量計(jì)算得出。圖3當(dāng)中,另一宏區(qū)塊325的左上角邏輯坐標(biāo)為(20.5,21.5),右下角邏輯坐標(biāo)為(36.5,37.5)。對(duì)目前的邊界310而言,若要儲(chǔ)存宏區(qū)塊325的補(bǔ)差點(diǎn)數(shù)據(jù),就有部分非整數(shù)點(diǎn)會(huì)超出范圍。在本實(shí)施例中,若有非整數(shù)點(diǎn)超出暫存區(qū)邊界,就調(diào)整暫存區(qū)的起點(diǎn)的邏輯坐標(biāo),使這個(gè)非整數(shù)點(diǎn)落入暫存區(qū)的新邊界。在圖3的范例,為了容納宏區(qū)塊325的補(bǔ)差點(diǎn)數(shù)據(jù),會(huì)將暫存區(qū)的起點(diǎn)邏輯坐標(biāo)從(2.5,3.5)移動(dòng)至(4.5,5.5),也就是將暫存區(qū)邊界從310移動(dòng)至320。補(bǔ)差點(diǎn)數(shù)據(jù)在暫存區(qū)內(nèi)的存取是根據(jù)其真實(shí)坐標(biāo),暫存區(qū)內(nèi)的真實(shí)坐標(biāo)不同于參考畫面的邏輯坐標(biāo)。每當(dāng)暫存區(qū)的起點(diǎn)移動(dòng)時(shí),起點(diǎn)的邏輯坐標(biāo)與真實(shí)坐標(biāo)會(huì)同步移動(dòng),如此已儲(chǔ)存在暫存區(qū)內(nèi)的補(bǔ)差點(diǎn)數(shù)據(jù)就不必因?yàn)槠瘘c(diǎn)移動(dòng)而跟隨挪移。非整數(shù)點(diǎn)的真實(shí)坐標(biāo)計(jì)算方法是,對(duì)上述非整數(shù)點(diǎn)的每一個(gè)邏輯坐標(biāo),計(jì)算此邏輯坐標(biāo)減去起點(diǎn)的對(duì)應(yīng)邏輯坐標(biāo)加上起點(diǎn)的對(duì)應(yīng)真實(shí)坐標(biāo)的結(jié)果,以上述結(jié)果作為此非整數(shù)點(diǎn)的此邏輯坐標(biāo)的對(duì)應(yīng)真實(shí)坐標(biāo)。上述的每一個(gè)邏輯坐標(biāo)是指對(duì)應(yīng)每一個(gè)坐斥示軸的不同子坐才示,而上述不同子坐標(biāo)之間的對(duì)應(yīng)關(guān)系是指對(duì)應(yīng)同一坐標(biāo)軸。例如圖3的范例中,暫存區(qū)邊界310的起點(diǎn)邏輯坐標(biāo)為(2.5,3.5),起點(diǎn)真實(shí)坐標(biāo)為[O][O]。宏區(qū)塊315左上角的x邏輯坐標(biāo)為18.5,將其減去起點(diǎn)的x邏輯坐標(biāo)2.5再加上起點(diǎn)的x真實(shí)坐標(biāo)O,結(jié)果為16,此即為宏區(qū)塊315左上角的x真實(shí)坐標(biāo)。同理,宏區(qū)塊315左上角的y邏輯坐標(biāo)為19.5,將其減去起點(diǎn)的y邏輯坐標(biāo)3.5再加上起點(diǎn)的y真實(shí)坐標(biāo)O,結(jié)果為16,此即為宏區(qū)塊315左上角的y真實(shí)坐標(biāo)。當(dāng)暫存區(qū)邊界從310移動(dòng)至320之后,新的起點(diǎn)邏輯坐標(biāo)為(4.5,5.5),新的起點(diǎn)真實(shí)坐標(biāo)為[2][2]。將宏區(qū)塊315左上角的邏輯坐標(biāo)(18.5,19.5)減去起點(diǎn)邏輯坐標(biāo)(4.5,5.5)再加上起點(diǎn)真實(shí)坐標(biāo)[2][2],結(jié)果是同樣的真實(shí)坐標(biāo)[16][16]。從上述結(jié)果可知,由于起點(diǎn)的邏輯坐標(biāo)與真實(shí)坐標(biāo)同步移動(dòng),同一非整數(shù)點(diǎn)在邊界移動(dòng)前后的真實(shí)坐標(biāo)相同,因此其補(bǔ)差點(diǎn)數(shù)據(jù)不必跟隨起點(diǎn)移動(dòng)而在暫存區(qū)內(nèi)挪移。移動(dòng)起點(diǎn)位置之后,非整數(shù)點(diǎn)的真實(shí)坐標(biāo)仍有可能超出暫存區(qū)界限,例如圖3當(dāng)中,宏區(qū)塊325右下角的真實(shí)坐標(biāo)為[34][34],超出最大可容許坐標(biāo)[31]D1]。此時(shí)本實(shí)施例的對(duì)策為存儲(chǔ)地址旋轉(zhuǎn),如圖4所示,將真實(shí)坐標(biāo)超出暫存區(qū)右側(cè)的非整數(shù)點(diǎn)儲(chǔ)存在暫存區(qū)左側(cè),將真實(shí)坐標(biāo)超出暫存區(qū)下端的非整數(shù)點(diǎn)儲(chǔ)存在暫存區(qū)上端,反之亦然。更精確地說,就是若有非整數(shù)點(diǎn)的對(duì)應(yīng)某一坐標(biāo)軸的真實(shí)坐標(biāo)小于暫存區(qū)對(duì)應(yīng)同一坐標(biāo)軸的坐標(biāo)下限,則將此真實(shí)坐標(biāo)加上暫存區(qū)對(duì)應(yīng)同一坐標(biāo)軸的邊長。反之,若有非整數(shù)點(diǎn)的對(duì)應(yīng)某一坐標(biāo)軸的真實(shí)坐標(biāo)大于暫存區(qū)對(duì)應(yīng)同一坐標(biāo)軸的坐標(biāo)上限,則將此真實(shí)坐標(biāo)減去暫存區(qū)對(duì)應(yīng)同一坐標(biāo)軸的邊長。例如宏區(qū)塊325右上角的邏輯坐標(biāo)為(36.5,21.5),真實(shí)坐標(biāo)為[34][18],其x真實(shí)坐標(biāo)超出暫存區(qū)的x軸上限31,必須減去暫存區(qū)的x軸邊長32,然后根據(jù)調(diào)整后的真實(shí)坐標(biāo)[2][18]在暫存區(qū)內(nèi)作存取。同理,宏區(qū)塊325左下角的邏輯坐標(biāo)為(20.5,37.5),真實(shí)坐標(biāo)為U8][34],其y真實(shí)坐標(biāo)超出暫存區(qū)的y軸上限31,必須減去暫存區(qū)的y軸邊長32,然后根據(jù)調(diào)整后的真實(shí)坐標(biāo)[18]U]在暫存區(qū)內(nèi)作存取。以下請(qǐng)參照?qǐng)D5,在圖5的暫存區(qū)500當(dāng)中,除了非整數(shù)點(diǎn)(以x標(biāo)示)以外,也保留了整數(shù)點(diǎn)的儲(chǔ)存位置(以o標(biāo)示)。這是為了便于在暫存區(qū)500之內(nèi)搜尋非整數(shù)點(diǎn)的補(bǔ)差點(diǎn)數(shù)據(jù),然而這樣會(huì)浪費(fèi)存儲(chǔ)空間。反之,若為了節(jié)省高速緩存而不保留整數(shù)點(diǎn)位置,則需要較復(fù)雜的尋址運(yùn)算以決定非整數(shù)點(diǎn)的儲(chǔ)存位置。為了兼顧存儲(chǔ)空間與運(yùn)算效率,本實(shí)施例采用如圖5所示的方法,將暫存區(qū)劃分為多個(gè)區(qū)域,然后將非整數(shù)點(diǎn)的補(bǔ)差點(diǎn)數(shù)據(jù)分散儲(chǔ)存在上述區(qū)域。區(qū)域501儲(chǔ)存x坐標(biāo)為1/2,y坐標(biāo)為整數(shù)點(diǎn)的非整數(shù)點(diǎn)數(shù)據(jù),例如511。區(qū)域502儲(chǔ)存y坐標(biāo)為1/2,x坐標(biāo)為整數(shù)點(diǎn)的非整數(shù)點(diǎn)數(shù)據(jù),例如521。區(qū)域503儲(chǔ)存x、y坐標(biāo)皆為1/2的非整數(shù)點(diǎn)數(shù)據(jù),例如531。如此每個(gè)區(qū)域中的非整數(shù)點(diǎn)都呈規(guī)律排列,不僅容易尋址,也能避免整數(shù)點(diǎn)空間的存儲(chǔ)浪費(fèi)。圖5的分區(qū)儲(chǔ)存方法是以1/2點(diǎn)為例,其實(shí)上述的分區(qū)儲(chǔ)存方法也適用于其它種非整數(shù)點(diǎn),例如l/4點(diǎn)或l/8點(diǎn)。1/4點(diǎn)的暫存區(qū)應(yīng)分為42-1=15個(gè)區(qū)域,1/8點(diǎn)的暫存區(qū)應(yīng)分為82-1=63個(gè)區(qū)域,依此類推。一般原則是每一個(gè)區(qū)域中,每一個(gè)非整數(shù)點(diǎn)對(duì)應(yīng)每一個(gè)坐標(biāo)軸的邏輯坐標(biāo)的小數(shù)部分,與同一區(qū)域的另一個(gè)非整數(shù)點(diǎn)的對(duì)應(yīng)同一坐標(biāo)軸的邏輯坐標(biāo)的小數(shù)部分皆相同。例如圖5的區(qū)域502中,每一個(gè)非整數(shù)點(diǎn)的x邏輯坐標(biāo)小數(shù)部分皆為0,而且每一個(gè)非整數(shù)點(diǎn)的y邏輯坐標(biāo)小數(shù)部分皆為0.5。此外,每一個(gè)區(qū)域的非整數(shù)點(diǎn)的邏輯坐標(biāo)小數(shù)部分所構(gòu)成的集合各不相同。例如圖5的范例中,區(qū)域501的非整數(shù)點(diǎn)的邏輯坐標(biāo)小數(shù)部分的集合為{0.5,0},區(qū)域502為(0,0.5},區(qū)域503為(0.5,0.5},三個(gè)區(qū)域的集合各不相同。以下說明本實(shí)施例的實(shí)驗(yàn)結(jié)果。本實(shí)施例的實(shí)驗(yàn)環(huán)境為H.264解碼端,分別測(cè)試CIF格式的視頻數(shù)據(jù)流News、Silent以及Football,比較國際標(biāo)準(zhǔn)組織(ISO:InternationalStandardsOrganization)的參考碼JM8.2以及本實(shí)施例的方法,評(píng)估計(jì)算1/2點(diǎn)位置像素的值所需的乘法計(jì)算量(乘法運(yùn)算次數(shù))與每一畫面的存儲(chǔ)器存取量。實(shí)驗(yàn)結(jié)果如以下的表2、表3及表4所示。從下列表格可看出,本實(shí)施例和已知的JM8.2相比,確實(shí)可降低乘法計(jì)算量與存儲(chǔ)器存取頻率。<table>tableseeoriginaldocumentpage11</column></row><table><table>tableseeoriginaldocumentpage12</column></row><table>表4CIF;f見頻數(shù)據(jù)流Football的實(shí)^^結(jié)果綜上所述,本實(shí)施例采用相對(duì)較小的暫存區(qū)以儲(chǔ)存先前計(jì)算的補(bǔ)差點(diǎn)數(shù)據(jù),可降低補(bǔ)差點(diǎn)的運(yùn)算量,降低自外部存儲(chǔ)器讀取整數(shù)點(diǎn)數(shù)據(jù)的頻率,而且不需要太大的高速緩存。本實(shí)施例也采用分區(qū)域儲(chǔ)存非整數(shù)點(diǎn)數(shù)據(jù)的方式,以維持簡易的尋址運(yùn)算,并且避免浪費(fèi)暫存區(qū)空間。本發(fā)明的應(yīng)用不限于視頻編碼與解碼,任何需要重復(fù)計(jì)算補(bǔ)差點(diǎn)的運(yùn)算系統(tǒng)皆可應(yīng)用。計(jì)算補(bǔ)差點(diǎn)所需的整數(shù)點(diǎn)數(shù)據(jù)不限于取自參考畫面,也可以取自二維以上的任意數(shù)據(jù)陣列。相對(duì)于上述的運(yùn)算系統(tǒng),整數(shù)點(diǎn)數(shù)據(jù)除了儲(chǔ)存在外部存儲(chǔ)器,也可以儲(chǔ)存在內(nèi)建的一般存儲(chǔ)器。雖然本發(fā)明已以較佳實(shí)施例揭露如上,然其并非用以限定本發(fā)明,任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作些許的更動(dòng)與潤飾,因此本發(fā)明的保護(hù)范圍當(dāng)視所附的權(quán)利要求范圍所界定者為準(zhǔn)。權(quán)利要求1.一種補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法,包括判斷暫存區(qū)內(nèi)是否儲(chǔ)存非整數(shù)點(diǎn)的補(bǔ)差點(diǎn)數(shù)據(jù);若該暫存區(qū)已儲(chǔ)存該補(bǔ)差點(diǎn)數(shù)據(jù),則提供該補(bǔ)差點(diǎn)數(shù)據(jù);以及若該暫存區(qū)未儲(chǔ)存該補(bǔ)差點(diǎn)數(shù)據(jù),則自存儲(chǔ)器讀取鄰近該非整數(shù)點(diǎn)的整數(shù)點(diǎn)數(shù)據(jù),據(jù)以計(jì)算該補(bǔ)差點(diǎn)數(shù)據(jù),然后將該補(bǔ)差點(diǎn)數(shù)據(jù)存入該暫存區(qū)。2.根據(jù)權(quán)利要求1所述的補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法,還包括若該非整數(shù)點(diǎn)超出該暫存區(qū)的邊界,則調(diào)整該暫存區(qū)的起點(diǎn)的邏輯坐標(biāo),使該非整數(shù)點(diǎn)落入該暫存區(qū)的邊界。3.根據(jù)權(quán)利要求2所述的補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法,還包括對(duì)該非整數(shù)點(diǎn)的每一邏輯坐標(biāo),計(jì)算該邏輯坐標(biāo)減去該起點(diǎn)的對(duì)應(yīng)邏輯坐標(biāo)加上該起點(diǎn)的對(duì)應(yīng)真實(shí)坐標(biāo)的結(jié)果,以上述結(jié)果做為該非整數(shù)點(diǎn)的該邏輯坐標(biāo)的對(duì)應(yīng)真實(shí)坐標(biāo);若該非整數(shù)點(diǎn)的該真實(shí)坐標(biāo)小于該暫存區(qū)的對(duì)應(yīng)下限,則將該真實(shí)坐標(biāo)加上該暫存區(qū)的對(duì)應(yīng)邊長;若該非整數(shù)點(diǎn)的該真實(shí)坐標(biāo)大于該暫存區(qū)的對(duì)應(yīng)上限,則將該真實(shí)坐標(biāo)減去該暫存區(qū)的對(duì)應(yīng)邊長;以及使用該非整數(shù)點(diǎn)的上述真實(shí)坐標(biāo)存取該暫存區(qū)。4.根據(jù)權(quán)利要求l所述的補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法,其中該補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法由運(yùn)算系統(tǒng)執(zhí)行,該暫存區(qū)儲(chǔ)存在該運(yùn)算系統(tǒng)的高速緩存,儲(chǔ)存該些整數(shù)點(diǎn)數(shù)據(jù)的該存儲(chǔ)器為該運(yùn)算系統(tǒng)的外部存儲(chǔ)器。5.根據(jù)權(quán)利要求4所述的補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法,其中該運(yùn)算系統(tǒng)為視頻編碼器或視頻解碼器。6.根據(jù)權(quán)利要求5所述的補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法,還包括統(tǒng)計(jì)至少一視頻數(shù)據(jù)流的動(dòng)態(tài)向量差的大小分布;以及根據(jù)上述大小分布決定該暫存區(qū)的大小。7.根據(jù)權(quán)利要求6所述的補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法,其中每一該些動(dòng)態(tài)向量差的大小為該動(dòng)態(tài)向量差的各坐標(biāo)分量的最大值。8.根據(jù)權(quán)利要求7所述的補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法,此外該些動(dòng)態(tài)向量差當(dāng)中,有預(yù)設(shè)比例的動(dòng)態(tài)向量差的大小小于該暫存區(qū)的最小邊長。9.根據(jù)權(quán)利要求5所述的補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法,其中該些整數(shù)點(diǎn)數(shù)據(jù)來自宏區(qū)塊的參考畫面。10.根據(jù)權(quán)利要求9所述的補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法,其中該非整數(shù)點(diǎn)的邏輯坐標(biāo)是根據(jù)該宏區(qū)塊的動(dòng)態(tài)向量計(jì)算得出。11.一種補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法,包括將暫存區(qū)劃分為多個(gè)區(qū)域;以及使用該些區(qū)域儲(chǔ)存多個(gè)非整數(shù)點(diǎn)的補(bǔ)差點(diǎn)數(shù)據(jù);其中,每一上述非整數(shù)點(diǎn)的每一邏輯坐標(biāo)的小數(shù)部分與同一區(qū)域的另一上述非整數(shù)點(diǎn)的對(duì)應(yīng)邏輯坐標(biāo)的小數(shù)部分皆相同。12.根據(jù)權(quán)利要求11所述的補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法,其中,每一上述非整數(shù)點(diǎn)的每一邏輯坐標(biāo)的小數(shù)部分的集合與不同區(qū)域的另一上述非整數(shù)點(diǎn)的每一邏輯坐標(biāo)的小數(shù)部分的集合皆不相同。13.根據(jù)權(quán)利要求ll所迷的補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法,其中該補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法應(yīng)用于#見頻編碼或-見頻解碼。14.根據(jù)權(quán)利要求13所述的補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法,還包括統(tǒng)計(jì)至少一視頻數(shù)據(jù)流的動(dòng)態(tài)向量差的大小分布;以及根據(jù)上述大小分布決定該暫存區(qū)的大小。15.—種補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法,包括將暫存區(qū)劃分為多個(gè)區(qū)域;使用該些區(qū)域儲(chǔ)存多個(gè)非整數(shù)點(diǎn)的補(bǔ)差點(diǎn)數(shù)據(jù),其中,每一上述非整數(shù)點(diǎn)的每一邏輯坐標(biāo)的小數(shù)部分與同一區(qū)域的另一上述非整數(shù)點(diǎn)的對(duì)應(yīng)邏輯坐標(biāo)的小數(shù)部分皆相同;若特定非整數(shù)點(diǎn)的補(bǔ)差點(diǎn)數(shù)據(jù)已儲(chǔ)存于該暫存區(qū),則直接提供該補(bǔ)差點(diǎn)數(shù)據(jù);以及若該暫存區(qū)未儲(chǔ)存該特定非整數(shù)點(diǎn)的補(bǔ)差點(diǎn)數(shù)據(jù),則自存儲(chǔ)器讀取鄰近該特定非整數(shù)點(diǎn)的整數(shù)點(diǎn)數(shù)據(jù),據(jù)以計(jì)算該補(bǔ)差點(diǎn)數(shù)據(jù),然后將該補(bǔ)差點(diǎn)數(shù)據(jù)存入該暫存區(qū)。16.根據(jù)權(quán)利要求15所述的補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法,其中,該暫存區(qū)儲(chǔ)存的每一上述非整數(shù)點(diǎn)的每一邏輯坐標(biāo)的小數(shù)部分的集合與不同區(qū)域的另一上述非整數(shù)點(diǎn)的每一邏輯坐標(biāo)的小數(shù)部分的集合皆不相同。17.根據(jù)權(quán)利要求15所述的補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法,還包括若該特定非整數(shù)點(diǎn)超出該暫存區(qū)的邊界,則調(diào)整該暫存區(qū)的起點(diǎn)的邏輯坐標(biāo),使該特定非整數(shù)點(diǎn)落入該暫存區(qū)的邊界。18.根據(jù)權(quán)利要求17所述的補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法,還包括對(duì)該特定非整數(shù)點(diǎn)的每一邏輯坐標(biāo),計(jì)算該邏輯坐標(biāo)減去該起點(diǎn)的對(duì)應(yīng)邏輯坐標(biāo)加上該起點(diǎn)的對(duì)應(yīng)真實(shí)坐標(biāo)的結(jié)果,以上述結(jié)果作為該特定非整數(shù)點(diǎn)的該邏輯坐標(biāo)的對(duì)應(yīng)真實(shí)坐標(biāo);若該特定非整數(shù)點(diǎn)的該真實(shí)坐標(biāo)小于該暫存區(qū)的對(duì)應(yīng)下限,則將該真實(shí)坐標(biāo)加上該暫存區(qū)的對(duì)應(yīng)邊長;若該特定非整數(shù)點(diǎn)的該真實(shí)坐標(biāo)大于該暫存區(qū)的對(duì)應(yīng)上限,則將該真實(shí)坐標(biāo)減去該暫存區(qū)的對(duì)應(yīng)邊長;以及使用該特定非整數(shù)點(diǎn)的上述真實(shí)坐標(biāo)存取該暫存區(qū)。19.根據(jù)權(quán)利要求15所述的補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法,其中該補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法由運(yùn)算系統(tǒng)執(zhí)行,該暫存區(qū)儲(chǔ)存在該運(yùn)算系統(tǒng)的高速緩存,儲(chǔ)存該些整數(shù)點(diǎn)數(shù)據(jù)的該存儲(chǔ)器為該運(yùn)算系統(tǒng)的外部存儲(chǔ)器。20.根據(jù)權(quán)利要求19所述的補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法,其中該運(yùn)算系統(tǒng)為視頻編碼器或^L頻解碼器,而且該補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法還包括統(tǒng)計(jì)至少一視頻數(shù)據(jù)流的動(dòng)態(tài)向量差的大小分布;以及根據(jù)上述大小分布決定該暫存區(qū)的大小。全文摘要本發(fā)明提供一種補(bǔ)差點(diǎn)數(shù)據(jù)儲(chǔ)存方法,運(yùn)用存在于高速緩存中的暫存區(qū),以及存儲(chǔ)重迭記錄的觀念,儲(chǔ)存計(jì)算過的補(bǔ)差點(diǎn)數(shù)據(jù),避免重復(fù)計(jì)算,藉以降低系統(tǒng)運(yùn)算量并降低自外部存儲(chǔ)器讀取整數(shù)點(diǎn)來計(jì)算補(bǔ)差點(diǎn)的次數(shù)。此外本發(fā)明提供此暫存區(qū)的數(shù)據(jù)儲(chǔ)存方式,利用存儲(chǔ)地址旋轉(zhuǎn)的觀念,以儲(chǔ)存超出暫存區(qū)邊界的補(bǔ)差點(diǎn)數(shù)據(jù)。本發(fā)明亦根據(jù)補(bǔ)差點(diǎn)坐標(biāo)小數(shù)部分的不同組合,將補(bǔ)差點(diǎn)數(shù)據(jù)分多個(gè)區(qū)域儲(chǔ)存,藉以節(jié)省暫存區(qū)存儲(chǔ)空間,而且便于在暫存區(qū)內(nèi)搜尋補(bǔ)差點(diǎn)數(shù)據(jù)。文檔編號(hào)H04N7/26GK101166272SQ20061013594公開日2008年4月23日申請(qǐng)日期2006年10月17日優(yōu)先權(quán)日2006年10月17日發(fā)明者高榮揚(yáng)申請(qǐng)人:財(cái)團(tuán)法人工業(yè)技術(shù)研究院