專利名稱:判定描述參考方塊移動(dòng)的移動(dòng)向量的方法及其儲(chǔ)存媒體的制作方法
技術(shù)領(lǐng)域:
本發(fā)明目前所揭露的內(nèi)容關(guān)于一種圖形處理單元,且尤其是關(guān)于具有圖像壓縮與解壓縮特征的圖形處理單元。
背景技術(shù):
個(gè)人計(jì)算機(jī)與消費(fèi)性電子產(chǎn)品是用于各種娛樂(lè)用品。這些娛樂(lè)用品可以大致區(qū)分為2類使用計(jì)算機(jī)制圖(computer-generated graphics)的那些,例如計(jì)算機(jī)游戲;與使用壓縮視頻數(shù)據(jù)流(compressed video stream)的那些,例如預(yù)錄節(jié)目到數(shù)字式激光視盤(DVD)上,或由有線電視或衛(wèi)星業(yè)者提供數(shù)字節(jié)目(digital programming)至機(jī)頂盒(set-top box)。第2種亦包含編碼模擬視頻數(shù)據(jù)流,例如由數(shù)字錄像機(jī)(DVR,digital video recorder)所執(zhí)行。
計(jì)算機(jī)制圖通常由圖形處理單元(GPU,graphic processing unit)產(chǎn)生。圖形處理單元是一種建立在計(jì)算機(jī)游戲平臺(tái)(computer game consoles)與一些個(gè)人計(jì)算機(jī)上一種特別的微處理器。圖形處理單元被最佳化為快速執(zhí)行描繪三度空間基本對(duì)象(three-dimensional primitive objects),例如三角形、四邊形等。這些基本對(duì)象是以多個(gè)頂點(diǎn)描述,其中每個(gè)頂點(diǎn)具有屬性(例如顏色),且可施加紋理(texture)至該基本對(duì)象上。描繪的結(jié)果是二維空間像素陣列(two-dimensional array of pixels),顯示在計(jì)算機(jī)的顯示器或監(jiān)視器上。
視頻數(shù)據(jù)流的編碼與解碼牽涉到不同種類的運(yùn)算,例如,離散余弦變換(discrete cosine transform)、移動(dòng)估測(cè)(motion estimation)、移動(dòng)補(bǔ)償(motion compensation)、去方塊效應(yīng)濾波器(deblocking filter)。這些計(jì)算通常由一般用途中央處理器(CPU)結(jié)合特別的硬件邏輯電路,例如專用集成電路(ASIC,application specific integrated circuit),來(lái)處理。消費(fèi)者因而需要多個(gè)運(yùn)算平臺(tái)以滿足他們的娛樂(lè)需求。因而需要可以處理計(jì)算機(jī)制圖與視頻編碼/解碼的單一計(jì)算平臺(tái)。
發(fā)明內(nèi)容
本發(fā)明的一個(gè)方面是一種判定描述相對(duì)于參考方塊的移動(dòng)的移動(dòng)向量的方法,該方法包含根據(jù)相符標(biāo)準(zhǔn),判定多個(gè)預(yù)測(cè)方塊中哪一個(gè)與該參考方塊有較佳相符;執(zhí)行局部區(qū)域徹底搜尋以產(chǎn)生與該參考方塊的最佳相符,該局部區(qū)域徹底搜尋在以該較佳相符預(yù)測(cè)方塊為中央的周圍的區(qū)域,該最佳相符具有整數(shù)像素分辨率;將該最佳相符與該參考方塊間相符的程度建模為二次表面;分析地判定該二次表面的最小值,該最小值對(duì)應(yīng)有分?jǐn)?shù)分辨率的最佳相符方塊;以及根據(jù)該有分?jǐn)?shù)分辨率的最佳相符方塊計(jì)算分?jǐn)?shù)移動(dòng)向量。
本發(fā)明的另一個(gè)方面是一種判定描述相對(duì)于參考方塊的移動(dòng)的移動(dòng)向量的方法,該方法包含根據(jù)相符標(biāo)準(zhǔn),判定多個(gè)預(yù)測(cè)方塊中哪一個(gè)與該參考方塊有較佳相符;執(zhí)行局部區(qū)域徹底搜尋以產(chǎn)生與該參考方塊的最佳相符,該局部區(qū)域徹底搜尋在以該較佳相符預(yù)測(cè)方塊為中央的周圍的區(qū)域,該最佳相符具有整數(shù)像素分辨率;以及分析地判定建模該最佳相符與該參考方塊間相符的程度的二次表面的最小值,該最小值對(duì)應(yīng)有分?jǐn)?shù)分辨率的最佳相符方塊。
本發(fā)明的另一個(gè)方面是一種具有用來(lái)判斷移動(dòng)向量的程序的計(jì)算機(jī)可讀媒體,該程序含有設(shè)置成用來(lái)執(zhí)行下列步驟的邏輯根據(jù)相符標(biāo)準(zhǔn),判定多個(gè)預(yù)測(cè)方塊中哪一個(gè)與參考方塊有較佳相符;執(zhí)行局部區(qū)域徹底搜尋以產(chǎn)生與該參考方塊的最佳相符,該局部區(qū)域徹底搜尋在以該較佳相符預(yù)測(cè)方塊為中央的周圍的區(qū)域,該最佳相符具有整數(shù)像素分辨率;將該最佳相符與該參考方塊間相符的程度建模為二次表面;分析地判定該二次表面的最小值,該最小值對(duì)應(yīng)有分?jǐn)?shù)分辨率的最佳相符方塊;以及根據(jù)該有分?jǐn)?shù)分辨率的最佳相符方塊計(jì)算分?jǐn)?shù)移動(dòng)向量。
圖1是用于圖形與視頻編碼及/或解碼的一示范性運(yùn)算平臺(tái)的方塊圖。
圖2是圖1的視頻編碼器160的功能方塊圖。
圖3A、3B說(shuō)明將目前圖像分割成不重迭的區(qū)段的巨圖塊。
圖4是圖2的移動(dòng)估測(cè)器所使用的算法的一示范性實(shí)施例的流程圖。
圖5是圖4共軛梯度步驟440的一實(shí)施例的流程圖。
圖6說(shuō)明使用圖5的共軛梯度下降步驟440的示范狀態(tài)。
圖7是圖4鄰近搜尋算法的一實(shí)施例的流程圖。
圖8A、8B說(shuō)明圖7的鄰近搜尋算法所使用的5個(gè)候選巨圖塊的相對(duì)位置。
圖9A、圖9B是說(shuō)明對(duì)參考與預(yù)測(cè)方塊進(jìn)行絕對(duì)差值加總指令運(yùn)作的方塊圖。
圖10是圖1的圖形處理單元的數(shù)據(jù)流程圖。
圖11是圖10紋理濾波單元與紋理快取的方塊圖。
100~系統(tǒng)、110~主處理器、120~圖形處理器(GPU)、130~存儲(chǔ)器、140~總線、150~視頻加速單元(VPU)、160~軟件解碼器、170~視頻加速驅(qū)動(dòng)器。205~圖像、210~減法器、220~移動(dòng)估測(cè)器、230~參考圖像、245~移動(dòng)向量、255~預(yù)測(cè)方塊、260~剩余圖像、270~離散余弦轉(zhuǎn)換器、280~量化器、290~熵解碼器、2100~解碼器。
310~目前巨圖塊、320~巨圖塊、330~搜尋窗、340~點(diǎn)。
400~程序、410~判定移動(dòng)向量將被圖像間預(yù)測(cè)或圖像內(nèi)預(yù)測(cè)、420~施行共軛梯度下降搜尋算法、430~執(zhí)行鄰近搜尋、440~執(zhí)行局部區(qū)域徹底搜尋、450~建立最佳候選巨圖塊與參考巨圖塊間相符程度為二次表面、460~在分?jǐn)?shù)像素邊界找到最佳候選巨圖塊調(diào)準(zhǔn)、470~根據(jù)該相符巨圖塊計(jì)算分?jǐn)?shù)移動(dòng)向量。
505~初始化候選方塊、510~計(jì)算候選巨圖塊Cx,y四周的候選巨圖塊的坐標(biāo)、515~分別計(jì)算5個(gè)候選巨圖塊的絕對(duì)差值加總、520~計(jì)算梯度gx與gy、525~梯度是否低于臨界值、530~計(jì)算四個(gè)新候選巨圖塊的坐標(biāo)、535~對(duì)各候選巨圖塊分別執(zhí)行共軛梯度下降步驟440、540~比較絕對(duì)差值加總值是否低于臨界值、545~回傳有最低絕對(duì)差值加總值的候選巨圖塊、550~選擇新的中央候選巨圖塊、555~從梯度gx與gy計(jì)算新的步驟值Δx與Δy、560~測(cè)試迭代循環(huán)數(shù)是否大于最大值、565~回傳不相符。
610C~候選巨圖塊、610L-610R-610T-610B~四個(gè)周圍候選、620X-620Y~初始候選計(jì)算梯度、630TL-630TR-630BL-630BR~四個(gè)新的中央候選巨圖塊、640L-640R-640T-640B~候選、670-680~候選。
710~利用目前巨圖塊310地址的絕對(duì)值與每行巨圖塊數(shù)計(jì)算旗標(biāo)變量TOPVALID。若此絕對(duì)值非0,則TOPVALID為真,此外,TOPVALID為假。720~旗標(biāo)變量LEFTVALID是利用目前巨圖塊地址的除以整數(shù)與每行巨圖塊數(shù)計(jì)算。若此除數(shù)非0,則LEFTVALID為真,此外,LEFTVALID為假。730~結(jié)合使用TOPVALID與LEFTVALID變量以判定目前巨圖塊鄰近的4個(gè)候選巨圖塊的可得性。740~為一先前候選巨圖塊P判定可得性。750~為每一可得候選巨圖塊計(jì)算絕對(duì)差值加總。
810-850~候選巨圖塊。
910-940~4×4方塊、950~4×4參考方塊。
234~旋轉(zhuǎn)邏輯器、950~預(yù)測(cè)方塊、960-990~絕對(duì)差值加總計(jì)算單元、1010~指令流處理器、1020~指令、1030~指令數(shù)據(jù)、1040~執(zhí)行單元池、1050~紋理濾波單元、1060~紋理快取、1070~后包裝器、1100~視頻處理單元。1120~紋理圖像、1130~目標(biāo)方塊、1140-1170~紋理圖像、1110A-B~緩沖器。
具體實(shí)施例方式
在此揭露的實(shí)施例提供利用一種圖形處理單元以增進(jìn)移動(dòng)估測(cè)系統(tǒng)與方法。
1.用于視頻編碼的運(yùn)算平臺(tái)圖1是用于圖形與視頻編碼及/或解碼的一示范性運(yùn)算平臺(tái)的方塊圖。系統(tǒng)100包含一般用途CPU 110(此后稱為主處理器)、圖形處理器(GPU)120、存儲(chǔ)器130與總線140。圖形處理單元120包含視頻加速單元(VPU)150,其可加速視頻編碼及/或解碼,將于后敘述。圖形處理單元120的視頻加速功能是可在圖形處理單元120上執(zhí)行的指令。
軟件解碼器160與視頻加速驅(qū)動(dòng)器170位于存儲(chǔ)器130中,解碼器160在主處理器110上執(zhí)行。通過(guò)一個(gè)由視頻加速驅(qū)動(dòng)器170提供的接口,解碼器160亦可發(fā)出給圖形處理單元120的視頻加速指令。如此一來(lái),系統(tǒng)100通過(guò)發(fā)出視頻加速指令給圖形處理單元120的主處理器軟件(host processorsoftware)執(zhí)行視頻編碼。依此法,經(jīng)常被執(zhí)行的密集運(yùn)算方塊(computationally intensive blocks)被卸至圖形處理單元120,而更復(fù)雜的運(yùn)算是由主處理器110所執(zhí)行。
圖1中省略數(shù)個(gè)對(duì)于解釋圖形處理單元120的視頻加速特征并非必要且本領(lǐng)域技術(shù)人員熟知的已知元件。接下來(lái)將對(duì)視頻編碼概要說(shuō)明,再接下來(lái)討論一個(gè)視頻編碼元件(移動(dòng)估測(cè)器)如何利用圖形處理單元120所提供的視頻加速單元功能。
2.視頻編碼器圖2是圖1的視頻編碼器160的功能方塊圖。輸入至編碼器160的圖像(205)是由像素所組成。編碼器160利用圖像205內(nèi)的時(shí)間(temporal)與空間相似性(spatial similarities)運(yùn)作,并且利用判定圖框內(nèi)(空間)及/或圖框間(時(shí)間)的差異相似性編碼??臻g編碼利用圖像內(nèi)鄰近像素通常相同或相關(guān)的特性編碼,故僅對(duì)差異編碼。時(shí)間編碼利用一連串圖像中的許多像素通常相同的值,故僅對(duì)圖像間的差異編碼。編碼器160亦利用熵編碼的統(tǒng)計(jì)冗余性一些圖像較另一些圖樣更常發(fā)生,故較常發(fā)生的以較短的碼代表。熵編碼的范例包含霍夫曼編碼(Huffman coding)、運(yùn)行長(zhǎng)度編碼(run-lengthencoding)、算術(shù)編碼(Arithmetic coding)與前后自我適應(yīng)的二位算術(shù)編碼(context-adaptive binary arithmetic coding)。
在此示范性實(shí)施例中,輸入圖像205的方塊是提供至減法器210與移動(dòng)估測(cè)器220。移動(dòng)估測(cè)器220比較輸入圖像205內(nèi)的方塊與預(yù)先儲(chǔ)存的參考圖像230以找出相似的方塊。移動(dòng)估測(cè)器220計(jì)算代表相符方塊間配置的一組移動(dòng)向量245。移動(dòng)向量245與參考圖像的相符方塊230合稱為預(yù)測(cè)方塊255,代表時(shí)間編碼。
預(yù)測(cè)方塊255是提供至減法器210,其將輸入圖像205減去預(yù)測(cè)方塊255以產(chǎn)生剩余圖像260。剩余圖像260是提供至離散余弦轉(zhuǎn)換器(DCT,discretecosine transform)方塊270與量化器280,其執(zhí)行空間編碼。量化器280的輸出(例如一組量化后的DCT系數(shù))是由熵編碼器290編碼。
對(duì)于某種類型的圖像(信息或I圖框,與預(yù)測(cè)或P圖框),該空間來(lái)自量化器280的空間編碼余數(shù)(spatially encoded residual)是提供給內(nèi)部解碼器。解碼器利用空間編碼余數(shù)結(jié)合由移動(dòng)估測(cè)器220所產(chǎn)生的移動(dòng)向量245以對(duì)空間編碼圖像205解碼。重新建構(gòu)的圖像是儲(chǔ)存在參考圖像緩沖器295,其是提供至移動(dòng)估測(cè)器220,如前所述。
如結(jié)合圖1所討論的,編碼器160在主處理器110上執(zhí)行,然而億利用由圖形處理單元120所提供的視頻加速指令。尤其是,由移動(dòng)估測(cè)器220所實(shí)現(xiàn)的算法利用由圖形處理單元120所提供的絕對(duì)絕對(duì)差值加總(SAD,sum-of-absolute-difference)指令以達(dá)成正確的移動(dòng)估測(cè),在相對(duì)低的運(yùn)算量下。接著將詳述移動(dòng)估測(cè)算法。
3.軟件移動(dòng)估測(cè)算法a.搜尋窗(Search Window)如示于圖3,移動(dòng)估測(cè)器220將目前圖像205切割成不重迭的各區(qū)段,稱為巨圖塊。巨圖塊的大小會(huì)依編碼器所使用的規(guī)范(例如,MPEG-2、H.264、VC)與圖像的大小而改變。
在此敘述的示范性實(shí)施例,與在各種不同編碼標(biāo)準(zhǔn)中,一巨圖塊是16×16像素。一巨圖塊更切割成方塊,該方塊的大小可為4×4、8×8、4×8、16×8、或8×16。
在MPEG-2中,各巨圖塊可僅有一移動(dòng)向量,故移動(dòng)估測(cè)是根據(jù)巨圖塊。H.264允許達(dá)32個(gè)移動(dòng)向量(依程度而定),故在H.264中,移動(dòng)估測(cè)是根據(jù)4×4或8×8方塊的基礎(chǔ)而計(jì)算。H.264的變化,稱為AVS,該移動(dòng)方塊永遠(yuǎn)為8×8。在VC-1中,其可為4×4或8×8。
移動(dòng)估測(cè)算法220對(duì)目前圖像205中的每一巨圖塊執(zhí)行移動(dòng)估測(cè),依照在預(yù)先編碼的圖像230(其類似于目前圖像205的巨圖塊)中尋找方塊的目標(biāo)。參考圖像230中的巨圖塊與目前圖像205中的巨圖塊間的置換是計(jì)算并儲(chǔ)存為移動(dòng)向量(245,圖2)。
為方便說(shuō)明,移動(dòng)估測(cè)程序?qū)⒁阅壳皥D像310中特定巨圖塊說(shuō)明(320)。此范例所選擇的巨圖塊320是在目前圖像310的中間,然而相同技術(shù)亦應(yīng)用在其它巨圖塊。
搜尋窗(330)是在參考圖像230(對(duì)應(yīng)目前圖像310的巨圖塊320)中巨圖塊的中間。即,若巨圖塊320是位于(X,Y),則在參考圖像230中的搜尋窗330亦位于(X,Y),如示于點(diǎn)340。其它實(shí)施例將巨圖塊放在參考圖像230的其它部分,例如左上。范例圖3中的搜尋窗330在水平方向延伸通過(guò)相應(yīng)巨圖塊的兩像素,在垂直方向一個(gè)像素。因此,搜尋窗330包含14個(gè)不同巨圖塊兩個(gè)巨圖塊分別發(fā)現(xiàn)1個(gè)與2個(gè)像素,就在位置340的左邊;另一組兩個(gè)巨圖塊在位置340的左邊;剩下組在位置340的上面、下面、左上、右上、左下與右下。
由移動(dòng)估測(cè)器220所執(zhí)行的相符方塊移動(dòng)運(yùn)算使用絕對(duì)絕對(duì)差值加總作為判斷巨圖塊間相似性(相符)的準(zhǔn)則。絕對(duì)絕對(duì)差值加總,計(jì)算兩像素值間的差值絕對(duì)值,并將一方塊中所有像素的這些差值絕對(duì)值加總,如本領(lǐng)域技術(shù)人員所理解的。移動(dòng)估測(cè)器220結(jié)合使用絕對(duì)絕對(duì)差值加總準(zhǔn)則與選擇待測(cè)相似性的目標(biāo)巨圖塊的開創(chuàng)性方法,其將于下說(shuō)明。
b.選擇目標(biāo)巨圖塊移動(dòng)估測(cè)器220使用不同的搜尋方法,依據(jù)移動(dòng)估測(cè)器220是產(chǎn)生目前圖像205的內(nèi)部編碼(intra-coded)移動(dòng)向量或外部編碼(inter-coded)移動(dòng)向量。移動(dòng)估測(cè)器220利用真實(shí)世界關(guān)于移動(dòng)的已知知識(shí)以預(yù)測(cè)該相符巨圖塊應(yīng)該在搜尋窗320的何處,減少搜尋窗320中目標(biāo)方塊數(shù)目,其是實(shí)際與目前圖像205中的巨圖塊310進(jìn)行相似測(cè)試。在真實(shí)世界中,物體通常以固定加速度移動(dòng),這表示我們可以期待圖框(光學(xué)流optical flow)中物體的移動(dòng)是緩和且相似(即實(shí)質(zhì)上連續(xù))的,在空間上與時(shí)間上都是。此外,在絕對(duì)絕對(duì)差值加總表面(即在搜尋空間描繪絕對(duì)差值加總值)是被期待為相對(duì)地緩和(即相對(duì)少數(shù)量的局部最小點(diǎn))。
利用此已知知識(shí)需要指揮搜尋最可能發(fā)現(xiàn)最相符的地方,在此揭露的算法使用減少要被執(zhí)行搜尋的數(shù)目以找到較佳的最小點(diǎn)。如此一來(lái),該算法在計(jì)算上有效率也可有效地標(biāo)出較佳的相符。
圖4是一示范性實(shí)施例移動(dòng)估測(cè)器220用來(lái)計(jì)算目前圖像205內(nèi)目前巨圖塊310的移動(dòng)向量的算法流程圖。移動(dòng)估測(cè)程序從步驟410開始,其判定由移動(dòng)估測(cè)器220為目前圖像205所產(chǎn)生的移動(dòng)向量將被圖像間預(yù)測(cè)(inter-predicted)或圖像內(nèi)預(yù)測(cè)(intra-predicted)。若使用圖像內(nèi)預(yù)測(cè)則接著進(jìn)行步驟420,在此施行共軛梯度下降搜尋算法(conjugated gradientdescent search algorithm)以尋找搜尋窗320內(nèi)預(yù)測(cè)巨圖塊,這與參考巨圖塊(目前圖像205內(nèi)的目前巨圖塊310)是較佳的相符。共軛梯度下降搜尋算法(步驟420)將結(jié)合圖5、圖6詳細(xì)說(shuō)明。
回到步驟410,若使用圖像間預(yù)測(cè)以產(chǎn)生移動(dòng)向量,則接著執(zhí)行步驟430,在此執(zhí)行“鄰近的”或“鄰近區(qū)域”搜尋。該搜尋包含鄰近于目前圖像205內(nèi)目前巨圖塊310的巨圖塊,以及對(duì)應(yīng)的先前編碼參考圖像230內(nèi)的巨圖塊。鄰近搜尋算法(步驟430)將結(jié)合圖7、圖8詳細(xì)說(shuō)明。
共軛梯度下降搜尋算法(步驟410)與鄰近搜尋算法(步驟430)各從一大群目標(biāo)預(yù)測(cè)巨圖塊中認(rèn)出了較佳或可接受的相符。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)了解到用來(lái)判定如何才是一個(gè)“較佳的相符”的準(zhǔn)則可以是相對(duì)的或是絕對(duì)的。例如,在此敘述的鄰近搜尋算法使用絕對(duì)準(zhǔn)則有最低值(score)的目標(biāo)巨圖塊被視為較佳的相符。然而,在此敘述的共軛梯度下降搜尋算法利用臨界值,絕對(duì)差值加總值低于該臨界值的第一方塊被視為較佳的相符。然而,該臨界值的準(zhǔn)則是一設(shè)計(jì)或?qū)崿F(xiàn)決定。
在處理步驟420或430之后,以認(rèn)出較佳候選相符。步驟440還執(zhí)行局部區(qū)域徹底搜尋(local area exhaustive search)以找到最佳的候選。該搜尋區(qū)域是位于步驟420或430所認(rèn)出的較佳候選巨圖塊附近。在一些實(shí)施例中,在執(zhí)行步驟420,共軛梯度下降搜尋算法之后(即在圖像內(nèi)預(yù)測(cè)的狀況下),局部徹底搜尋所搜尋的區(qū)域包含步驟420所認(rèn)出的局部最小值(較佳候選)的外面附近的4個(gè)對(duì)角。例如,若在梯度下降上個(gè)步驟所使用的值是1,則該搜尋限制在離該較佳候選(±1,±1)的點(diǎn)。在一些實(shí)施例中,當(dāng)執(zhí)行步驟430之后(即在圖像間預(yù)測(cè)的狀況下),局部徹底搜尋(步驟440)所搜尋的包含在較佳候選巨圖塊附近一小區(qū)域的候選,通常是(±2,±2)。
步驟440的局部徹底搜尋從較佳候選巨圖塊限縮至最佳候選巨圖塊,這是像素調(diào)準(zhǔn)(pixel-aligned),即具有整數(shù)像素分辨率。步驟450與460在分?jǐn)?shù)像素邊界(fractional-pixel boundary)找到最佳候選巨圖塊調(diào)準(zhǔn)。已知分?jǐn)?shù)移動(dòng)搜尋算法使用特定編解碼器濾波算法(codec-specific filteringalgorithm)以內(nèi)插在分?jǐn)?shù)位置的像素值,根據(jù)周圍的整數(shù)位置。相對(duì)地,步驟450建立最佳候選巨圖塊與參考巨圖塊間相符程度為二次表面,而步驟460分析地判定該表面的最小值。最小值對(duì)應(yīng)一最佳相符巨圖塊,為分?jǐn)?shù)而非整數(shù)分辨率。(開創(chuàng)性的以分?jǐn)?shù)分辨率判定最佳相符巨圖塊的建模將在后面的段落加以說(shuō)明。)在有著分?jǐn)?shù)分辨率的相符巨圖塊于步驟450被認(rèn)出之后,接著處理步驟470,根據(jù)該相符巨圖塊計(jì)算分?jǐn)?shù)移動(dòng)向量,使用本領(lǐng)域技術(shù)人員所知悉的技術(shù)。接著就完成了程序400。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)了解到上面的算法在本質(zhì)上是連續(xù)的,因其使用了鄰近區(qū)域的信息。盡管使用了硬件加速的已知設(shè)計(jì)通常避免連續(xù)算法,因?yàn)樵S多原因,連續(xù)的設(shè)計(jì)在這里是適當(dāng)?shù)?。首先,像素?cái)?shù)據(jù)是以連續(xù)水平掃描線的形式(sequential raster fashion)讀取,因而可被預(yù)先接收,維持在電路緩沖器中。其次,在含有單一絕對(duì)差值加總加速單元的實(shí)施例中,效能是限制在該單元是否能維持滿載而非連續(xù)處理。絕對(duì)差值加總加速單元在預(yù)測(cè)方塊沒有許多快取遺漏下可以維持高負(fù)載。因?yàn)檫z漏率是快取大小的函數(shù),而HDTV分辨率圖像在快取中僅需要1920/8=<1KB移動(dòng)向量,低的快取遺漏率是可以預(yù)期的。
c.使用共軛梯度下降的圖像內(nèi)預(yù)測(cè)移動(dòng)向量圖5是圖4共軛梯度步驟440的流程圖,由移動(dòng)估測(cè)器220的一實(shí)施例所執(zhí)行。如前所述,步驟440是在判定使用圖像內(nèi)預(yù)測(cè)將被用來(lái)尋找搜尋窗320內(nèi)巨圖塊是與目前方塊310為較佳(即可接受的)相符時(shí)執(zhí)行。絕對(duì)差值加總值為了一組5個(gè)初始候選而計(jì)算目前巨圖塊、與目前巨圖塊上、下、左、右的巨圖塊。從這初始組5個(gè)絕對(duì)差值加總值,計(jì)算兩組互相垂直的梯度。從這兩組梯度,得到最陡峭的方向的梯度。若該梯度相對(duì)地淺,或5個(gè)初始候選巨圖塊有非常接近的絕對(duì)差值加總值,則該搜尋延伸遠(yuǎn)離目前巨圖塊,因?yàn)樵诖藚^(qū)域內(nèi)不存在有較佳局部最小機(jī)率的條件的候選。在對(duì)共軛梯度下降步驟440概述之后,該步驟將更詳細(xì)的說(shuō)明于下。
該步驟從步驟505開始,在此初始化候選方塊Cx,y與步驟值Δx與Δy。在一實(shí)施例中,候選巨圖塊Cx,y設(shè)為搜尋窗320的左上角,而步驟值Δx與Δy均設(shè)為小整數(shù)值,例如8。接著在步驟510,計(jì)算候選巨圖塊Cx,y四周的候選巨圖塊的坐標(biāo)。這四個(gè)候選巨圖塊是候選巨圖塊Cx,y的上、下、左、右四個(gè)。即,T=(Cx,-Δy+Cy);R=(Δx+Cx,Cy);B=(Cx,Δy+Cy);L=(-Δx+Cx,Cy)接著處理步驟515,在此分別計(jì)算5個(gè)候選巨圖塊的絕對(duì)差值加總(原本那個(gè)與周邊四個(gè))。在步驟520,計(jì)算梯度gx與gy。梯度gx是左邊與右邊巨圖塊絕對(duì)差值加總值的差。梯度gy是上面與下面巨圖塊絕對(duì)差值加總值的差。如此一來(lái),不論可能相符巨圖塊間的誤差值是增加或減少,該梯度表示x或y方向。在步驟525,該梯度是與臨界值作比較。若該梯度低于該臨界值(即該梯度相對(duì)地淺),這表示在目前搜尋區(qū)域中無(wú)局部最小值,故該搜尋延伸至新的候選巨圖塊。這些新的候選巨圖塊遠(yuǎn)離了原本的候選處理巨圖塊Cx,y。在一些實(shí)施例中,當(dāng)在步驟515為候選巨圖塊所計(jì)算的絕對(duì)差值加總值相似時(shí)亦延伸該搜尋。該延伸搜尋繼續(xù)在步驟530進(jìn)行,在此計(jì)算四個(gè)新候選巨圖塊的坐標(biāo)。原本四個(gè)候選巨圖塊是在Cx,y上下左右距離(Δx,Δy)的地方,選擇四個(gè)新候選巨圖塊以形成原本候選巨圖塊Cx,y周圍正方形角落,距離(Δx,Δy)TL=(-Δx+Cx,-Δy+Cy);TR=(Δx+Cx,Δy+Cy);BL=(-Δx+Cx,Cy);BR=(Δx+Cx,Δy+Cy)
在步驟535,對(duì)這些新的候選巨圖塊(C,TL,TR,BL,BR)分別執(zhí)行共軛梯度下降步驟440。
回到步驟525的梯度比較,若在巨圖塊520所計(jì)算的梯度是等于或大于該臨界值(即該梯度是相對(duì)地陡峭),接著在步驟540在步驟515所計(jì)算的絕對(duì)差值加總值與臨界值作比較。若該絕對(duì)差值加總值低于該臨界值,則表示找到較佳相符,則步驟440回到呼叫器(在步驟545),提供該呼叫器有最低絕對(duì)差值加總值的候選巨圖塊。
若在步驟540所測(cè)試的該絕對(duì)差值加總值等于或低于該臨界值,表示沒有找到較佳相符,故調(diào)整搜尋區(qū)域。在步驟550,選擇新的中央候選巨圖塊Cx,y新的中央巨圖塊是C,TL,TR,BL,BR候選組中在步驟515中算出有最低絕對(duì)差值加總值的方塊。接著,在步驟555,從梯度gx與gy計(jì)算新的步驟值Δx與Δy,例如Δx=Δx×gx。陡峭的梯度代表可接受的相符巨圖塊是目前中央候選很遠(yuǎn),故增加(Δx,Δy)。相反地,淺的梯度代表可接受的相符巨圖塊是目前中央候選很近,故應(yīng)減少(Δx,Δy)。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)了解到各種不同的系數(shù)可以從各梯度用來(lái)計(jì)算(Δx,Δy)以達(dá)成該結(jié)果。
接著,在步驟560測(cè)試迭代循環(huán)數(shù)。若該數(shù)目大于最大值,則步驟440于步驟565完成,找不到可以接受的相符。此外,采用錯(cuò)誤梯度以選擇一組新的候選巨圖塊,其被期待為較接近于最終相符,該梯度下降步驟440回到步驟510,在此產(chǎn)生一組新的。共軛梯度下降步驟440在以下兩種情況下完成,當(dāng)找到可接受的值(步驟545),或最大迭代數(shù)目以達(dá)到仍無(wú)相符(步驟565)。
圖6說(shuō)明使用共軛梯度下降步驟440的示范狀態(tài)。初始候選巨圖塊Cx,y是方形(610C),而四個(gè)周圍候選是圓圈(610T,610L,610R,610B)。從這些初始候選計(jì)算梯度gx與gy(620X,620Y)。在此示范狀態(tài)中,梯度太淺了,而沒有絕對(duì)差值加總值低于該臨界值。因此延伸搜尋,使用四個(gè)新的中央候選巨圖塊,示為三角形(630TL,630TR,630BL,630BR)。這些新的候選巨圖塊距離原本候選巨圖塊Cx,y周圍角落Δ的距離。
在這些中央候選周圍的巨圖塊,示為六角形(640L1,640T1,640T2,640R2,640L3,640B3,640B4,640R4),被選為候選。在此示范狀態(tài)中,兩個(gè)候選640具有低于臨界值的絕對(duì)差值加總值與“陡峭”梯度(650XY,660XY)。另一候選是根據(jù)各“陡峭”梯度選擇候選670是根據(jù)梯度650XY,而后選680是根據(jù)梯度660XY。梯度下降搜尋繼續(xù)使用這些新的候選670、680,根據(jù)共軛梯度下降步驟440。
d.使用先前鄰近圖像間預(yù)測(cè)移動(dòng)向量圖7是圖4鄰近搜尋算法(步驟430)的流程圖,由移動(dòng)估測(cè)器220的一實(shí)施例所執(zhí)行。如前所述,該搜尋的候選巨圖塊包含鄰近于目前圖像205中的目前巨圖塊310(已被編碼)的巨圖塊。亦包含為一候選的是在預(yù)先編碼的參考圖像230中的對(duì)應(yīng)巨圖塊。
計(jì)算候選巨圖塊坐標(biāo)的步驟從步驟710開始,在此通過(guò)利用目前巨圖塊310地址的絕對(duì)值(余數(shù))與每行巨圖塊數(shù)計(jì)算旗標(biāo)變量TOPVALID。若此絕對(duì)值非0,則TOPVALID為真,此外,TOPVALID為假。在步驟720,旗標(biāo)變量LEFTVALID是利用目前巨圖塊310地址的除以整數(shù)與每行巨圖塊數(shù)計(jì)算。若此除數(shù)非0,則LEFTVALID為真,此外,LEFTVALID為假。這些TOPVALID與LEFTVALID變量表示目前巨圖塊310分別在上面與左邊有鄰近巨圖塊,考慮巨圖塊的上緣與左邊緣。
在步驟730,結(jié)合使用TOPVALID與LEFTVALID變量以判定目前巨圖塊310鄰近的4個(gè)候選巨圖塊的可得性,或存在性。特別是左邊有巨圖塊L若(LEFTVALID);上面有巨圖塊T若(TOPVALID);左上有巨圖塊TF若(TOPVALID &LEFTVALID);又上有巨圖塊TR若(TOPVALID & RIGHTVALID)。接著,在步驟740,為先前候選巨圖塊P判定可得性,這是在空間上對(duì)應(yīng)目前巨圖塊310的先前編碼參考圖像230中的巨圖塊。這5個(gè)候選巨圖塊的相對(duì)位置可在圖8中看到,其中L是810、T是820、TL是830、TR是840、P是850。
回到圖7,步驟730與步驟740有多少候選巨圖塊可用來(lái)比較(從1到5)。步驟750為每一可得候選巨圖塊計(jì)算絕對(duì)差值加總。若5個(gè)候選均可得,該組絕對(duì)差值加總值為{0,L,T,P(L+T2),med(L,T,TL),(L+med(T,TL,TR)2),med(T,TL,TR)}]]>若某些候選不可得,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)了解到該組候選相對(duì)較小。接著完成步驟430,回復(fù)有最低絕對(duì)差值加總的候選巨圖塊。
如先前結(jié)合圖4所討論的,一旦找到相符巨圖塊(不論使用圖4的鄰近搜尋法或是圖5的共軛梯度下降),接著搜尋區(qū)域更加限縮,采用局部徹底搜尋(第4圖440)。在局部搜尋之后,利用局部徹底搜尋的結(jié)果計(jì)算分?jǐn)?shù)移動(dòng)向量。分?jǐn)?shù)移動(dòng)向量的計(jì)算將于下詳述。
e.利用二次表面模型的分?jǐn)?shù)移動(dòng)向量運(yùn)算本領(lǐng)域技術(shù)人員應(yīng)當(dāng)對(duì)圖示巨圖塊對(duì)搜尋窗間相符程度以產(chǎn)生“錯(cuò)誤表面”感到熟悉。采用開創(chuàng)性方法,移動(dòng)估測(cè)器220以二次表面建模錯(cuò)誤表面并分析地以次像素準(zhǔn)確性判定該表面的最小值。移動(dòng)估測(cè)器220,首先判定方項(xiàng)的最小值,給定最小行。移動(dòng)估測(cè)器220接著沿著這條線決定正交方向的最小值。
二次曲線的一般方程式如方程式1。
y=C1+C2t+C3t2方程式1對(duì)該曲線取微分,如第2方程式δyδt=C2+2C3t⇒t=-C22C3]]>方程式2一旦系數(shù)C1,C2,C3已知,則可求解以判定t,最小的位置。移動(dòng)估測(cè)器220解出方程式3以判定系數(shù)C1,C2,C3。
C1C2C3=1431-275-2725-55-51×Σi=14diΣi=14ditiΣditi2]]>方程式3移動(dòng)估測(cè)器220使用由圖形處理單元120所提供的84絕對(duì)差值加總指令已有效率的計(jì)算方程式3。各di代表絕對(duì)差值加總值,對(duì)i累加代表在x方向鄰近巨圖塊的絕對(duì)差值加總值。如結(jié)合第x圖的詳細(xì)說(shuō)明,該8×4絕對(duì)差值加總指令有效率的計(jì)算鄰近的巨圖塊(x,y)、(x+1,y)、(x+2,y)、(x+3,y),的4個(gè)絕對(duì)差值加總值,即i=0...3且i=j(luò),t=j(luò)+1。如前所述,一旦系數(shù)已知,解方程式2得到t,x方向的最小值。
方程式3可以用來(lái)判定垂直方向的最小值t。在此例中,移動(dòng)估測(cè)器220使用8×4絕對(duì)差值加總指令已有效率的計(jì)算垂直地鄰近的巨圖塊(x,y)、(x+1,y)、(x+2,y)、(x+3,y)的4個(gè)絕對(duì)差值加總值。方程式3解出計(jì)算自這些絕對(duì)差值加總值的系數(shù)C1、C2、C3。如前所述,一旦系數(shù)已知,解方程式2得到t,y方向的最小值。移動(dòng)估測(cè)器220所使用的二次錯(cuò)誤表面方法較在先判斷像素邊界上較佳相符后再使用運(yùn)算昂貴濾波器去尋找子像素邊界上較佳相符的已知方法來(lái)的進(jìn)步。
f.在圖形處理單元上使用絕對(duì)差值加總加速器以有效率地計(jì)算最小值如前所述,移動(dòng)估測(cè)器220以目前圖像中一參考巨圖塊判定預(yù)測(cè)圖像中那個(gè)巨圖塊有較佳的相符。移動(dòng)估測(cè)器220使用由圖形處理單元120所提供的絕對(duì)差值加總硬件加速,其為圖形加速單元指令。絕對(duì)差值加總指令要輸入一4×4參考方塊與一8×4預(yù)測(cè)方塊,并產(chǎn)生4個(gè)絕對(duì)差值加總值。參考方塊與預(yù)測(cè)方塊的大小可根據(jù)需要而改變。4×4參考方塊與8×4預(yù)測(cè)方塊僅為范例以說(shuō)明本發(fā)明,而不應(yīng)限制參考方塊與預(yù)測(cè)方塊的大小。圖9A、圖9B是說(shuō)明對(duì)參考與預(yù)測(cè)方塊進(jìn)行絕對(duì)差值加總指令運(yùn)作的方塊圖。如示于圖9A,8×4預(yù)測(cè)方塊是由多個(gè)彼此重迭的水平鄰近4×4方塊所組成,如方塊910、920、930、940。絕對(duì)差值加總單元取一個(gè)輸入4×4參考方塊950并計(jì)算該參考方塊與910-940個(gè)方塊的絕對(duì)差值加總值。即,該絕對(duì)差值加總指令計(jì)算4個(gè)值一個(gè)值是方塊910與方塊950的差值的絕對(duì)值的總和;另一個(gè)值是方塊920與方塊950的差值的絕對(duì)值的總和;另一個(gè)值是方塊930與方塊950的差值的絕對(duì)值的總和;另一個(gè)值是方塊940與方塊950的差值的絕對(duì)值的總和。
參見圖9B,圖形處理單元120內(nèi)的絕對(duì)差值加總加速單元使用4個(gè)絕對(duì)差值加總計(jì)算單元(960,970,980,990)以實(shí)現(xiàn)絕對(duì)差值加總指令。最左邊的4×4方塊910是提供給絕對(duì)差值加總計(jì)算單元960。接著輸入右邊的4×4方塊(920)給絕對(duì)差值加總計(jì)算單元970。接著輸入右邊的4×4方塊(930)給絕對(duì)差值加總計(jì)算單元980。最后,提供最右邊的4×4方塊940給絕對(duì)差值加總計(jì)算單元990。圖形處理單元120平行地使用獨(dú)立的絕對(duì)差值加總計(jì)算單元,所以絕對(duì)差值加總指令每個(gè)周期產(chǎn)生4個(gè)絕對(duì)差值加總值。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)了解到用來(lái)計(jì)算兩個(gè)相同大小像素方塊的絕對(duì)差值加總運(yùn)算的算法,以及用來(lái)執(zhí)行此運(yùn)算的硬件設(shè)計(jì),故這些細(xì)節(jié)將不再詳述。
4×4參考方塊是水平地且垂直地列在像素邊緣。然而,不需要垂直地校正4×4預(yù)測(cè)方塊910-940。在一實(shí)施例中,數(shù)據(jù)是通過(guò)旋轉(zhuǎn)(邏輯電路995)該參考方塊所校正。旋轉(zhuǎn)參考方塊而非分別旋轉(zhuǎn)4個(gè)預(yù)測(cè)方塊可節(jié)省邏輯門數(shù)。旋轉(zhuǎn)后的參考方塊是提供給各獨(dú)立絕對(duì)差值加總硬件加速單元。各單元產(chǎn)生12位的值,而這些值結(jié)合成一個(gè)48位的輸出。在一實(shí)施例中,這些值的數(shù)量級(jí)是根據(jù)預(yù)測(cè)方塊的U紋理坐標(biāo)(最低位位置中的最低坐標(biāo))。
下面的程序代碼說(shuō)明8×8方塊,即兩個(gè)鄰近的8×4方塊,的絕對(duì)差值加總值可以僅使用4個(gè)絕對(duì)差值加總指令計(jì)算。暫存器T、T、T、T4用來(lái)暫存這4個(gè)絕對(duì)差值加總值。變量sadS用來(lái)累加這些絕對(duì)差值加總值。8×4參考方塊的地址假設(shè)在refReg。U與V是8×8預(yù)測(cè)方塊的紋理坐標(biāo)。下面的程序代碼產(chǎn)生整個(gè)8×8方塊的全部的絕對(duì)差值加總值,儲(chǔ)存在sadS。
SAD T1,refReg,U,V;left-top of 8×8 prediction blockSAD T2,refReg,U+4,V;right-top of 8×8 prediction blockADD sadS,T1,T2;SAD T3,refReg,U,V+4;left-bottom of 8×8 prediction blockADD sadS,sadS,T3;SAD T4,refReg,U+4,V+4;right-bottom of 8×8 prediction blockADD sadS,sadS,T4然而,通常可以避免計(jì)算與加總所有4個(gè)子方塊的值,因?yàn)橹灰摽偤瓦_(dá)到目前最小值就可以停止該計(jì)算。下列的偽碼說(shuō)明如何在循環(huán)內(nèi)使用絕對(duì)差值加總指令,其在總和達(dá)到最小值時(shí)停止。
I=0;SUM=0;MIN=currentMIN;WHILE(I<4||SUM<MIN)SUM=SUM+SAD(refReg,U+(I%2)*4,V+(I>>1)*4);IF(SUM<currMIN)currMIN=MIN;Go to Next Search point;圖形處理單元120中的84絕對(duì)差值加總指令是直接由移動(dòng)估測(cè)器220的先進(jìn)搜尋算法所使用,例如圖5中所說(shuō)明的執(zhí)行局部徹底搜尋。此外,紋理快取1060(圖10)是方塊校正,而移動(dòng)估測(cè)器220所使用的算法,如上所述,是像素校正。盡管可以將多工器單元加到圖形處理單元120中以處理這些校正誤差,然而這么做會(huì)增加邏輯門數(shù)與電力消耗。取而代之,圖形處理單元120使用這些多余的預(yù)算到4個(gè)絕對(duì)差值加總單元,而不是只用1個(gè)。在一些實(shí)施例中,8×4絕對(duì)差值加總指令提供了有效率地運(yùn)算最小值的優(yōu)點(diǎn),這牽涉到計(jì)算鄰近方塊的絕對(duì)差值加總值。在一些實(shí)施例中,8×4絕對(duì)差值加總指令提供了徹底搜尋(方塊440)的另一優(yōu)點(diǎn),當(dāng)步驟值為1時(shí),其計(jì)算各對(duì)角的絕對(duì)差值加總值。
4.圖形處理器已經(jīng)討論過(guò)移動(dòng)估測(cè)器220的軟件算法實(shí)現(xiàn)以及該算法在圖形處理單元120中的8×4絕對(duì)差值加總指令的使用,接下來(lái)詳細(xì)說(shuō)明絕對(duì)差值加總指令與圖形處理單元120。
a.圖形處理單元流圖10是圖形處理單元120的數(shù)據(jù)流程圖,其中指令流是由圖10左邊的箭頭,而圖像或圖形流是由右邊的箭頭表示。圖10省略了數(shù)個(gè)本領(lǐng)域技術(shù)人員已知的元件,這些對(duì)解釋圖形處理單元120的回路內(nèi)去方塊效應(yīng)特征非必要。
指令流處理器1010從系統(tǒng)總線(未示)接收指令1020,并解碼該指令,產(chǎn)生指令數(shù)據(jù)1030,例如頂點(diǎn)數(shù)據(jù)。圖形處理單元120支持已知圖形處理指令,以及加速視頻編碼及/或解碼的指令,例如前述的8×4絕對(duì)差值加總指令。
已知圖形處理指令牽涉到如頂點(diǎn)著色(vertex shading)、幾何著色(geometry shading)、像素著色(pixel shading)等難題。因此,指令數(shù)據(jù)1030是施用于著色器執(zhí)行單元(shader execution units)的池(pool)740。著色執(zhí)行單元必要使用紋理濾波單元(TFU,texture filter unit)750以施加紋理至像素。紋理數(shù)據(jù)是快取自紋理快取1060,其是在主存儲(chǔ)器(未示)后面。
一些指令送給視頻處理單元1100,其運(yùn)作將于后說(shuō)明。產(chǎn)生的數(shù)據(jù)接著由后包裝器(post-packer 1070)處理,其壓縮該數(shù)據(jù)。在后處理(post-processing)之后,由視頻加速單元所產(chǎn)生的數(shù)據(jù)是提供給執(zhí)行單元池(execution unit pool)1040。
視頻編碼/解碼加速指令的執(zhí)行,例如前述的絕對(duì)差值加總指令,在許多方面與前述的已知圖形指令不同。首先,視頻加速指令是由視頻處理單元1100執(zhí)行,而非著色器執(zhí)行單元。其次,視頻加速指令不使用其紋理數(shù)據(jù)。
然而,視頻加速指令所使用的圖像數(shù)據(jù)與圖形指令所使用的紋理數(shù)據(jù)均為2維陣列。圖形處理單元120同樣利用此優(yōu)點(diǎn),使用紋理濾波單元1050下載給視頻處理單元1100的圖像數(shù)據(jù),因而使紋理快取1060快取一些由視頻處理單元1100運(yùn)作的圖像數(shù)據(jù)。因此,示于圖10,視頻處理單元1100是位于紋理濾波單元1050與后包裝器1070之間。
紋理濾波單元1050檢驗(yàn)從指令1020擷取的指令數(shù)據(jù)1030。指令數(shù)據(jù)1030還提供紋理濾波單元1050主存儲(chǔ)器(未示)內(nèi)想要的圖像數(shù)據(jù)的坐標(biāo)。在一實(shí)施例中,這些坐標(biāo)標(biāo)明為U、V對(duì),本領(lǐng)域技術(shù)人員應(yīng)對(duì)此熟悉。當(dāng)指令1020是視頻加速指令時(shí),所擷取的指令數(shù)據(jù)1030還命令紋理濾波單元1050略過(guò)紋理濾波單元1050內(nèi)的任何紋理濾波器(未示)。因此,紋理濾波單元1050受到視頻加速指令的控制下載圖像數(shù)據(jù)給視頻處理單元1100。
依此法,紋理濾波單元1050是受操縱為視頻加速指令去下載圖像數(shù)據(jù)給視頻加速單元1100。視頻處理單元1100從數(shù)據(jù)路徑上的紋理濾波單元1050接收?qǐng)D像數(shù)據(jù),與命令路徑上的命令數(shù)據(jù)1030,并根據(jù)命令數(shù)據(jù)1030對(duì)該圖像數(shù)據(jù)執(zhí)行運(yùn)作。由視頻處理單元1100所輸出的圖像數(shù)據(jù)是回饋給執(zhí)行單元池1040,在由后包裝器1070處理之后。
b.指令參數(shù)現(xiàn)在說(shuō)明視頻處理單元1100在執(zhí)行絕對(duì)差值加總視頻加速指令的運(yùn)作。如先前說(shuō)明的,各圖形處理單元指令是解碼且分析(parsed)為指令數(shù)據(jù)1030,其可視為各指令的特定參數(shù)集。絕對(duì)差值加總指令的參數(shù)示于表1。
表1圖形處理單元的絕對(duì)差值加總指令
結(jié)合使用數(shù)個(gè)輸入?yún)?shù)以判定由紋理濾波單元1050所擷取的4×4方塊地址。BaseAddres參數(shù)指出在紋理快取中該紋理數(shù)據(jù)的起點(diǎn)。將此區(qū)域內(nèi)左上方塊坐標(biāo)給BaseAddress參數(shù)。PictureHeight與PictureWidth輸入?yún)?shù)用來(lái)判斷該方塊的范圍,即左下方坐標(biāo)。最后,視頻圖形可為漸進(jìn)式掃描(progessive)或隔行掃描(interlace)。若為隔行掃描,其是由兩個(gè)方向組成(上方與下方)。紋理濾波單元750使用FieldFlag與TopFieldFlag以適當(dāng)處理隔行掃描圖像。
c.圖像數(shù)據(jù)轉(zhuǎn)換為執(zhí)行絕對(duì)差值加總指令,視頻處理單元1100從紋理濾波單元1050擷取輸入像素方塊并對(duì)這些方塊執(zhí)行轉(zhuǎn)換,轉(zhuǎn)換為適當(dāng)格式以利絕對(duì)差值加總加速單元960-990處理。像素方塊接著被提供至絕對(duì)差值加總加速單元960-990,其回復(fù)絕對(duì)差值加總值。各絕對(duì)差值加總值接著被累積至目標(biāo)暫存器。這些功能將于后詳述。
視頻處理單元1100接收定義計(jì)算該絕對(duì)差值加總值的8×4方塊的兩個(gè)輸入?yún)?shù)。參考方塊的數(shù)據(jù)是直接由SRC2運(yùn)作碼直接定義8×4×8位方塊視為128位的數(shù)據(jù)。相對(duì)地,SRC1運(yùn)作碼定義預(yù)測(cè)方塊的地址而非數(shù)據(jù)。視頻處理單元1100提供這些地址給紋理濾波單元1050,其從紋理快取1060擷取128位的預(yù)測(cè)方塊數(shù)據(jù)。
盡管圖像數(shù)據(jù)包含亮度(Y)與彩度(Cb,Cr)平面,移動(dòng)估測(cè)通常僅使用Y成分。因此,當(dāng)執(zhí)行絕對(duì)差值加總指令時(shí),視頻處理單元1100所運(yùn)作的像素方塊僅含有Y成分。在一實(shí)施例中,視頻處理單元1100產(chǎn)生禁止信號(hào),其指揮紋理濾波單元1050不要從紋理快取1060擷取Cr/Cb像素?cái)?shù)據(jù)。
圖11是紋理濾波單元1050與紋理快取1060的方塊圖。紋理濾波單元1050是設(shè)計(jì)為從紋理快取1060擷取紋理圖像邊界(texel boundry),并從紋理快取1060下載4×4紋理圖像方塊至濾波輸入緩沖器1110。當(dāng)擷取數(shù)據(jù)代表視頻處理單元1100時(shí),紋理圖像1120被視為各有32位的4個(gè)信道(ARGB),對(duì)于128位的紋理圖像大小。當(dāng)為絕對(duì)差值加總指令擷取數(shù)據(jù)時(shí),紋理濾波單元1050下載8×4×8位方塊,其儲(chǔ)存在2個(gè)像素輸入緩沖器(1110A、1110B)。絕對(duì)差值加總指令所使用的8×4圖像方塊是如先前結(jié)合第9圖所述。
視頻處理單元1100所示用的圖像數(shù)據(jù)可能被字節(jié)校正。然而,紋理濾波單元1050是被設(shè)計(jì)為從外取擷取紋理圖像邊界。因此,當(dāng)為視頻處理單元1100擷取的數(shù)據(jù)時(shí),紋理濾波單元1050可能需要擷取達(dá)4個(gè)環(huán)繞在特定字節(jié)校正8×4方塊周圍的紋理圖像校正4×4方塊。
該程序可在圖11中看到,其中所擷取的方塊(目標(biāo)方塊1130)對(duì)準(zhǔn)在紋理圖像邊界上,不論在垂直方向或在水平方向。該目標(biāo)方塊1130的U、V地址定義8×4×8位的最左上角,字節(jié)校正方塊。在此例中,紋理快取單元1050擷取紋理圖像1140、1150、1160、1170以得到目標(biāo)方塊1130。紋理濾波單元1050接著結(jié)合從方塊1140-1170所按位選擇的行與列,顧目標(biāo)方塊1130的最左邊4×4位是寫入濾波緩沖器1110B。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)知道如何使用多工器、移位器(shifter)、屏蔽位(mask bits)達(dá)成該結(jié)果,不管從紋理快取1060所擷取的4×4目標(biāo)校正。
在圖11所示的實(shí)施例,當(dāng)目標(biāo)方塊1130包含垂直紋理像素邊界,該數(shù)據(jù)不會(huì)垂直地重新排列。當(dāng)此情形發(fā)生時(shí),下載至濾波緩沖器1110A與1110B的數(shù)據(jù)在垂直方向的順序與在快取中原本的順序不同。在此實(shí)施例中,視頻處理班員1100必須垂直地重新排列(旋轉(zhuǎn))128位參考方塊數(shù)據(jù)以符合預(yù)測(cè)方塊的順序。在另一實(shí)施例中,在寫入其中一濾波緩沖器1110之前,紋理濾波單元1050垂直地重新排列快取紋理圖像數(shù)據(jù)以符合原本的快取順序。
任何程序說(shuō)明或流程圖中的方塊應(yīng)被理解為表示模塊、區(qū)段或部分程序代碼,其包含用于實(shí)現(xiàn)特定邏輯電路功能或程序中的步驟的一個(gè)或多個(gè)可執(zhí)行的指令。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)了解到,其它的實(shí)現(xiàn)方法亦包含于所揭露的范圍內(nèi)。在其它的實(shí)現(xiàn)方法中,各功能可不依所示或揭露的順序執(zhí)行,包含實(shí)質(zhì)上同步進(jìn)行或逆向進(jìn)行,依所涉的功能而定。
在此揭露的系統(tǒng)與方法可以軟件、硬件或其結(jié)合實(shí)現(xiàn)。在一些實(shí)施例中,該系統(tǒng)及/或方法是以存在存儲(chǔ)器中的軟件實(shí)現(xiàn),且由位于計(jì)算裝置中的適當(dāng)處理器所執(zhí)行(包含而不限于微處理器、微控制器、網(wǎng)絡(luò)處理器、可重新裝配處理器、可擴(kuò)充處理器)。在其它實(shí)施例中,該系統(tǒng)及/或方法是以邏輯電路實(shí)現(xiàn),包含而不限于可編程邏輯裝置(PLD,programmable logic device)、可編程邏輯門陣列(PGA,programmable gate array)、現(xiàn)場(chǎng)可編程邏輯門陣列(FPGA,field programmable gate array)或?qū)S眉呻娐?ASIC)。在其它實(shí)施例中,這些邏輯敘述是在圖形處理器或圖形處理單元(GPU)完成。
在此揭露的系統(tǒng)與方法可被嵌入任何計(jì)算機(jī)可讀媒體而使用,或連接指令執(zhí)行系統(tǒng)、設(shè)備、裝置。該指令執(zhí)行系統(tǒng)包含任何以計(jì)算機(jī)為基礎(chǔ)的系統(tǒng)、含有處理器的系統(tǒng)或其它可以從該指令執(zhí)行系統(tǒng)擷取與執(zhí)行這些指令的系統(tǒng)。所揭露的文字“計(jì)算機(jī)可讀媒體(computer-readable medium)”可為任何可以容納、儲(chǔ)存、溝通、傳遞或傳送該程序作為使用或與該指令執(zhí)行系統(tǒng)連結(jié)的工具。該計(jì)算機(jī)可讀媒體可為,例如(非限制)為基于電子的、有磁性的、光的、電磁的、紅外線的或半導(dǎo)體技術(shù)的系統(tǒng)或傳遞媒體。
使用電子技術(shù)的計(jì)算機(jī)可讀媒體的特定范例(非限制)可包含具有一條或多條電性(電子)連接的線;隨機(jī)存取存儲(chǔ)器(RAM,random access memory);只讀存儲(chǔ)器(ROM,read-only memory);可拭去可編程只讀存儲(chǔ)器(EPROM或閃存)。使用磁技術(shù)的計(jì)算機(jī)可讀媒體的特定范例(非限制)可包含可攜帶計(jì)算機(jī)磁盤。使用光技術(shù)的計(jì)算機(jī)可讀媒體的特定范例(非限制)可包含光纖與可攜帶只讀光盤(CD-ROM)。
雖然本發(fā)明在此以一個(gè)或更多個(gè)特定的范例作為實(shí)施例闡明及描述,不過(guò)不應(yīng)將本發(fā)明局限于所示的細(xì)節(jié),然而仍可在不背離本發(fā)明的精神下且在權(quán)利要求范圍均等的領(lǐng)域與范圍內(nèi)實(shí)現(xiàn)許多不同的修改與結(jié)構(gòu)上的改變。因此,最好將所附上的權(quán)利要求范圍廣泛地且以符合本發(fā)明領(lǐng)域的方法解釋,在所述的權(quán)利要求范圍前提出此聲明。
權(quán)利要求
1.一種判定描述相對(duì)于參考方塊的移動(dòng)的移動(dòng)向量的方法,該方法包含根據(jù)相符標(biāo)準(zhǔn),判定多個(gè)預(yù)測(cè)方塊中哪一個(gè)與該參考方塊有較佳相符;執(zhí)行局部區(qū)域徹底搜尋以產(chǎn)生與該參考方塊的最佳相符,該局部區(qū)域徹底搜尋在以該較佳相符預(yù)測(cè)方塊為中央的周圍的區(qū)域,該最佳相符具有整數(shù)像素分辨率;將該最佳相符與該參考方塊間相符的程度建模為二次表面;分析地判定該二次表面的最小值,該最小值對(duì)應(yīng)有分?jǐn)?shù)分辨率的最佳相符方塊;以及根據(jù)該有分?jǐn)?shù)分辨率的最佳相符方塊計(jì)算分?jǐn)?shù)移動(dòng)向量。
2.根據(jù)權(quán)利要求1所述的判定描述相對(duì)于該參考方塊的移動(dòng)的該移動(dòng)向量的方法,其中該判定多個(gè)預(yù)測(cè)方塊中哪一個(gè)與該參考方塊有較佳相符的步驟還包含判定目前圖框是否為圖像內(nèi)預(yù)測(cè);以及若該目前圖框?yàn)閳D像內(nèi)預(yù)測(cè),則利用共軛梯度下降搜尋判定該多個(gè)預(yù)測(cè)方塊中哪一個(gè)為該較佳相符。
3.根據(jù)權(quán)利要求1所述的判定描述相對(duì)于該參考方塊的移動(dòng)的該移動(dòng)向量的方法,其中該判定多個(gè)預(yù)測(cè)方塊中哪一個(gè)與該參考方塊有較佳相符的步驟還包含判定目前圖框是否為圖像間預(yù)測(cè);以及若該目前圖框?yàn)閳D像間預(yù)測(cè),則搜尋該參考方塊周圍的鄰近方塊以判定該多個(gè)預(yù)測(cè)方塊中哪一個(gè)為該較佳相符。
4.根據(jù)權(quán)利要求1所述的判定描述相對(duì)于該參考方塊的移動(dòng)的該移動(dòng)向量的方法,還包含從該較佳相符預(yù)測(cè)方塊對(duì)角地位置的一組4個(gè)方塊,執(zhí)行該局部區(qū)域徹底搜尋。
5.根據(jù)權(quán)利要求1所述的判定描述相對(duì)于該參考方塊的移動(dòng)的該移動(dòng)向量的方法,其中該分析地判定該二次表面的該最小值的步驟還包含判定第一方向的該最小值;判定垂直于該第一方向的第二方向的該最小值。
6.根據(jù)權(quán)利要求1所述的判定描述相對(duì)于該參考方塊的移動(dòng)的該移動(dòng)向量的方法,其中分析地判定該二次表面的最小值的步驟還包含計(jì)算該最佳相符預(yù)測(cè)方塊的鄰近方塊的絕對(duì)差值加總值。
7.根據(jù)權(quán)利要求1所述的判定描述相對(duì)于該參考方塊的移動(dòng)的該移動(dòng)向量的方法,其中分析地判定該二次表面的最小值的步驟還包含計(jì)算多個(gè)方塊的絕對(duì)差值加總值,該多個(gè)方塊之中一第一個(gè)在第一方向鄰近于該最佳相符預(yù)測(cè)方塊,該多個(gè)方塊剩下的方塊分別鄰近于該多個(gè)方塊中的另一個(gè)。
8.根據(jù)權(quán)利要求1所述的判定描述相對(duì)于該參考方塊的移動(dòng)的該移動(dòng)向量的方法,其中分析地判定該二次表面的最小值的步驟還包含計(jì)算多個(gè)方塊的絕對(duì)差值加總值,且其中該計(jì)算多個(gè)方塊的該絕對(duì)差值加總值是利用由圖形處理單元所執(zhí)行的絕對(duì)差值加總指令所執(zhí)行。
9.一種判定描述相對(duì)于參考方塊的移動(dòng)的移動(dòng)向量的方法,該方法包含根據(jù)相符標(biāo)準(zhǔn),判定多個(gè)預(yù)測(cè)方塊中哪一個(gè)與該參考方塊有較佳相符;執(zhí)行局部區(qū)域徹底搜尋以產(chǎn)生與該參考方塊的最佳相符,該局部區(qū)域徹底搜尋在以該較佳相符預(yù)測(cè)方塊為中央的周圍的區(qū)域,該最佳相符具有整數(shù)像素分辨率;以及分析地判定建模該最佳相符與該參考方塊間相符的程度的二次表面的最小值,該最小值對(duì)應(yīng)有分?jǐn)?shù)分辨率的最佳相符方塊。
10.根據(jù)權(quán)利要求9所述的判定描述相對(duì)于該參考方塊的移動(dòng)的該移動(dòng)向量的方法,其中該判定多個(gè)預(yù)測(cè)方塊中哪一個(gè)與該參考方塊有較佳相符的步驟還包含若該目前圖框是圖像內(nèi)預(yù)測(cè),利用共軛梯度下降搜尋法,搜尋該多個(gè)預(yù)測(cè)方塊以判定該較佳相符。
11.根據(jù)權(quán)利要求10所述的判定描述相對(duì)于該參考方塊的移動(dòng)的該移動(dòng)向量的方法,其中該搜尋該多個(gè)預(yù)測(cè)方塊以判定該較佳相符的步驟還包含從該多個(gè)預(yù)測(cè)方塊選擇候選方塊;計(jì)算在該候選方塊一固定距離之上的第一方塊的第一絕對(duì)差值加總值與在該候選方塊該固定距離之下的第二方塊的第二絕對(duì)差值加總值之間的水平梯度;計(jì)算在該候選方塊該固定距離之左的第三方塊的第三絕對(duì)差值加總值與在該候選方塊該固定距離之右的第四方塊的第四絕對(duì)差值加總值之間的垂直梯度;若該水平與垂直梯度是低于梯度臨界值,根據(jù)該水平與垂直梯度,調(diào)整該固定距離;判斷位于離該第一、第二、第三、第四方塊中具有最低絕對(duì)差值加總值的方塊該調(diào)整后的固定距離的多個(gè)新候選方塊;以及對(duì)各該多個(gè)新候選方塊重復(fù)該選擇候選方塊步驟之后的步驟。
12.根據(jù)權(quán)利要求11所述的判定描述相對(duì)于該參考方塊的移動(dòng)的該移動(dòng)向量的方法,還包含若該水平與垂直梯度是大于或等于該梯度臨界值,則將該第一、第二、第三、第四絕對(duì)差值加總值與絕對(duì)差值加總臨界作比較;若該第一、第二、第三、第四絕對(duì)差值加總值中任一個(gè)值低于該絕對(duì)差值加總臨界,則將該第一、第二、第三、第四方塊中具有該最低差值加總值的方塊判斷該較佳相符。
全文摘要
一種判定描述相對(duì)于參考方塊的移動(dòng)的移動(dòng)向量的方法,該方法包含根據(jù)相符標(biāo)準(zhǔn),判定多個(gè)預(yù)測(cè)方塊中哪一個(gè)與該參考方塊有較佳相符;執(zhí)行局部區(qū)域徹底搜尋以產(chǎn)生與該參考方塊的最佳相符,該局部區(qū)域徹底搜尋在以該較佳相符預(yù)測(cè)方塊為中央的周圍的區(qū)域,該最佳相符具有整數(shù)像素分辨率;將該最佳相符與該參考方塊間相符的程度建模為二次表面;分析地判定該二次表面的最小值,該最小值對(duì)應(yīng)有分?jǐn)?shù)分辨率的最佳相符方塊;以及根據(jù)該有分?jǐn)?shù)分辨率的最佳相符方塊計(jì)算分?jǐn)?shù)移動(dòng)向量。
文檔編號(hào)H04N7/32GK101068365SQ20071011019
公開日2007年11月7日 申請(qǐng)日期2007年6月18日 優(yōu)先權(quán)日2006年6月16日
發(fā)明者扎伊爾德·荷圣 申請(qǐng)人:威盛電子股份有限公司