用于圖形處理的像素值精簡(jiǎn)的制作方法
【專(zhuān)利摘要】一般來(lái)說(shuō),本發(fā)明的各方面描述用于將圖形處理單元GPU的固定數(shù)據(jù)速率處理有效地用于可變數(shù)據(jù)速率處理的實(shí)例技術(shù)。舉例來(lái)說(shuō),所述GPU可耦合到像素值處理單元,所述像素值處理單元接收由所述GPU處理的圖像中的像素的像素值。所述像素值處理單元可確定所述像素值是否用于需要進(jìn)一步處理的像素,且將需要進(jìn)一步處理的所述像素的所述像素值存儲(chǔ)在緩沖器中。
【專(zhuān)利說(shuō)明】用于圖形處理的像素值精簡(jiǎn)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及像素值的有效存儲(chǔ),且更特定來(lái)說(shuō),涉及像素值的有效存儲(chǔ)以用于在圖形處理單元(GPU)中進(jìn)行處理。
【背景技術(shù)】
[0002]圖形處理單元(GPU)提供用于圖形應(yīng)用的像素處理。在一些實(shí)例中,GPU可經(jīng)配置以支持并行的處理操作。GPU可產(chǎn)生像素的矩形柵格以用于在屏幕上顯示。GPU可執(zhí)行若干功能,例如著色、挑選、混合、照明,以及其他功能,從而產(chǎn)生將顯示于屏幕上的像素的像素值。由GPU進(jìn)行的并行處理可促進(jìn)有效處理,以用于快速地渲染將顯示的像素。
【發(fā)明內(nèi)容】
[0003]本發(fā)明描述用于精簡(jiǎn)數(shù)據(jù)以用于由GPU使用的緩沖器中的有效處理和有效存儲(chǔ)的技術(shù)。作為兩個(gè)實(shí)例,所述緩沖器可為幀緩沖器或顯示器緩沖器。圖形處理單元(GPU)可產(chǎn)生像素值的輸出流以供輸出到緩沖器來(lái)驅(qū)動(dòng)屏幕,或者支持一個(gè)或一個(gè)以上基于圖像的計(jì)算應(yīng)用。所述輸出流可包含可能所需GPU進(jìn)行后續(xù)處理的像素的像素值,以及可能不需要GPU進(jìn)行后續(xù)處理的像素的像素值。
[0004]在一些實(shí)例中,像素值處理單元可從GPU接收輸出流。所述像素值處理單元可經(jīng)配置以有效地存儲(chǔ)可能需要在緩沖器中進(jìn)行后續(xù)處理的像素的像素值。所述像素值處理單元可經(jīng)配置以不存儲(chǔ)不需要在緩沖器中進(jìn)行后續(xù)處理的像素的像素值。
[0005]如更詳細(xì)地描述,像素值處理單元可允許經(jīng)配置以用于固定數(shù)據(jù)速率處理的GPU有效地利用其固定數(shù)據(jù)速率處理來(lái)用于可變數(shù)據(jù)速率處理。然而,本發(fā)明的各方面不應(yīng)被視為受限于僅固定數(shù)據(jù)速率處理GPU。
[0006]在一個(gè)實(shí)例中,本發(fā)明描述一種方法,其包括用耦合到圖形處理單元(GPU)且在GPU外部的像素值處理單元從所述GPU接收包含由所述GPU處理的圖像中的一個(gè)或一個(gè)以上像素的像素值的輸出流。所述方法還包括用所述像素值處理單元確定所述輸出流中的所述像素值是否用于需要由所述GPU進(jìn)行進(jìn)一步處理的像素。所述方法進(jìn)一步包括將需要由所述GPU進(jìn)行進(jìn)一步處理的所述像素的所述像素值存儲(chǔ)在位于所述像素值處理單元外部且耦合到所述像素值處理單元的緩沖器中。
[0007]在另一實(shí)例中,本發(fā)明描述一種設(shè)備,其包括:圖形處理單元(GPU),所述圖形處理單元經(jīng)配置以處理圖像以產(chǎn)生包含所述經(jīng)處理圖像內(nèi)的一個(gè)或一個(gè)以上像素的像素值的輸出流;以及緩沖器。所述設(shè)備還包含像素值處理單元,其在所述GPU外部、耦合到所述GPU和所述緩沖器,且經(jīng)配置以確定所述輸出流中的所述像素值是否用于需要由所述GPU進(jìn)行進(jìn)一步處理的像素,且將需要由所述GPU進(jìn)行進(jìn)一步處理的所述像素的所述像素值存儲(chǔ)在所述緩沖器中。
[0008]在另一實(shí)例中,本發(fā)明描述一種設(shè)備,其包括:圖形處理單元(GPU);緩沖器;以及像素值處理單元,其在所述GPU外部且耦合到所述GPU和所述緩沖器。所述像素值處理單元包括用于從所述GPU接收包含由所述GPU處理的圖像中的一個(gè)或一個(gè)以上像素的像素值的輸出流的裝置、用于確定所述輸出流中的所述像素值是否用于需要由所述GPU進(jìn)行進(jìn)一步處理的像素的裝置,以及用于將需要由所述GPU進(jìn)行進(jìn)一步處理的所述像素的所述像素值存儲(chǔ)在所述緩沖器中的裝置。
[0009]在另一實(shí)例中,本發(fā)明描述一種包括指令的非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)媒體,所述指令致使像素值處理單元用耦合到圖形處理單元(GPU)且在所述GPU外部的所述像素值處理單元從所述GPU接收包含由所述GPU處理的圖像中的一個(gè)或一個(gè)以上像素的像素值的輸出流。所述指令還致使所述像素值處理單元確定所述輸出流中的所述像素值是否用于需要進(jìn)一步處理的像素,且將需要進(jìn)一步處理的所述像素的所述像素值存儲(chǔ)在位于所述像素值處理單元和所述GPU外部且耦合到所述像素值處理單元的緩沖器中。
[0010]一個(gè)或一個(gè)以上實(shí)例的細(xì)節(jié)陳述于附圖及以下描述中。其它特征、目標(biāo)及優(yōu)勢(shì)將從描述及附圖以及從權(quán)利要求書(shū)中顯而易見(jiàn)。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0011]圖1是說(shuō)明像素值存儲(chǔ)系統(tǒng)中的圖形處理單元(GPU)的方框圖。
[0012]圖2A是進(jìn)一步詳細(xì)地說(shuō)明圖1的圖形處理單元(GPU)的一個(gè)實(shí)例的方框圖。
[0013]圖2B是進(jìn)一步詳細(xì)地說(shuō)明圖1的圖形處理單元(GPU)的另一實(shí)例的方框圖。
[0014]圖3是進(jìn)一步詳細(xì)地說(shuō)明圖1的像素值處理單元的一實(shí)例的方框圖。
[0015]圖4A是說(shuō)明將存儲(chǔ)在緩沖器中的圖像內(nèi)的像素的符號(hào)圖。
[0016]圖4B、4C和4D是說(shuō)明存儲(chǔ)在圖1的緩沖器的一個(gè)實(shí)例的存儲(chǔ)位置中的像素值的符號(hào)圖。
[0017]圖5是說(shuō)明可經(jīng)配置以實(shí)施本發(fā)明的各方面的裝置的方框圖。
[0018]圖6是說(shuō)明像素值處理單元的實(shí)例操作的流程圖。
[0019]圖7是說(shuō)明像素值處理單元的另一實(shí)例操作的流程圖。
[0020]圖8是說(shuō)明像素值處理單元的另一實(shí)例操作的流程圖。
【具體實(shí)施方式】
[0021]本發(fā)明的各方面針對(duì)于用于在可經(jīng)設(shè)計(jì)以主要用于固定數(shù)據(jù)速率處理的圖形處理單元(GPU)上流線化可變數(shù)據(jù)速率處理的技術(shù)。圖形應(yīng)用產(chǎn)生在圖像中表示的視覺(jué)內(nèi)容,所述圖像是用于在屏幕上顯示的像素的矩形柵格。將顯示于屏幕上的像素的數(shù)目可相對(duì)大,在一個(gè)實(shí)例中例如為640 X 480,或307,200個(gè)像素。
[0022]GPU可經(jīng)設(shè)計(jì)以使用多級(jí)并行處理來(lái)有效地處理此類(lèi)大量像素,且假設(shè)大多數(shù)或者所有像素將被處理,且此些像素需要類(lèi)似的(如果不等同)操作。如本發(fā)明中所使用,短語(yǔ)“固定數(shù)據(jù)速率處理”可一般指代將顯示于屏幕上的圖像中的所有或者大多數(shù)像素的GPU處理。舉例來(lái)說(shuō),假設(shè)圖像包含屏幕,且所述屏幕包含640X480個(gè)像素,即,307,200個(gè)像素。在此實(shí)例中,GPU將需要處理包含640X480個(gè)像素的屏幕上的所有307,200個(gè)像素的像素值。
[0023]如更詳細(xì)地描述,對(duì)于一些圖像應(yīng)用,GPU可能不需要處理圖像中的所有像素,且可能僅需要處理選定的一些像素。如本發(fā)明中所使用,短語(yǔ)“可變數(shù)據(jù)速率處理”可一般指代需要處理圖像中的選定的一些像素而不是所有像素的GPU處理。舉例來(lái)說(shuō),對(duì)于一些圖形應(yīng)用,GPU可能需要起初處理圖像中的所有或者大多數(shù)像素。隨后,對(duì)于后續(xù)處理回合,GI3U可能需要處理圖像中的選定的一些像素。
[0024]GPU的并行處理功能性可良好適合于固定數(shù)據(jù)速率處理,因?yàn)樵诖蠖鄶?shù)情況下,GI3U可能處理圖像中的所有像素。換句話說(shuō),可將固定數(shù)據(jù)速率處理視為其中GPU將處理的像素的數(shù)目在每一處理回合中一般是固定的情況。因此,GPU可經(jīng)設(shè)計(jì)以用于固定數(shù)據(jù)速率處理。然而,當(dāng)將處理圖像中的選定的一些像素而不是圖像中的所有像素時(shí),此固定數(shù)據(jù)速率處理可能不促進(jìn)有效處理。舉例來(lái)說(shuō),假設(shè)對(duì)于特定的圖形應(yīng)用,將僅需要處理307,200個(gè)像素中的3,072個(gè)像素。在此實(shí)例中,歸因于固定數(shù)據(jù)速率處理,GPU可能處理所有307,200個(gè)像素,而不是選定的一些像素,例如3,072個(gè)像素。
[0025]本發(fā)明描述一種像素值處理單元,其可允許GPU甚至在僅需要處理選定的一些像素(即,少于圖像中的所有像素的像素子集)時(shí)有效地利用其固定數(shù)據(jù)速率處理結(jié)構(gòu)和功能性,例如,從而提供可變數(shù)據(jù)速率處理。所述像素值處理單元可被稱作像素值精簡(jiǎn)單元。所述像素值精簡(jiǎn)單元,例如像素值處理單元,可耦合到GPU,且可從所述GPU接收輸出數(shù)據(jù)流。來(lái)自所述GPU的輸出數(shù)據(jù)流可包含可需要進(jìn)一步處理的像素的像素值以及可不需要進(jìn)一步處理的像素的像素值。作為一個(gè)實(shí)例,當(dāng)所述GPU實(shí)施如下文所描述的空間不變特征變換(SIFT)時(shí),可不需要進(jìn)一步處理的像素的像素值可為空值。
[0026]所述像素精簡(jiǎn)單元可確定哪些像素值用于可需要進(jìn)一步處理的像素,以及哪些像素值用于可不需要進(jìn)一步處理的像素。舉例來(lái)說(shuō),所述像素值精簡(jiǎn)單元可評(píng)估色彩值或坐標(biāo)值以確定哪些像素值用于可需要進(jìn)一步處理的像素,以及哪些像素值用于可不需要進(jìn)一步處理的像素?;谒龃_定,所述像素值精簡(jiǎn)單元可將可需要進(jìn)一步處理的像素的像素值存儲(chǔ)在緩沖器內(nèi),例如幀緩沖器或顯示器緩沖器(作為兩個(gè)實(shí)例),且可不將可不需要進(jìn)一步處理的像素的像素值存儲(chǔ)在幀緩沖器或顯示器緩沖器內(nèi)。舉例來(lái)說(shuō),所述像素值精簡(jiǎn)單元可將需要由GPU進(jìn)行進(jìn)一步處理的像素的像素值存儲(chǔ)在緩沖器中,且丟棄不需要由GPU進(jìn)行進(jìn)一步處理的像素。
[0027]所述GPU可隨后檢索需要進(jìn)一步處理的像素的像素值,而不是包含不需要進(jìn)一步處理的像素的像素值的所有像素值。以此方式,GPU可處理需要進(jìn)一步處理的像素,而不在處理不需要進(jìn)一步處理的像素上浪費(fèi)計(jì)算資源。換句話說(shuō),因?yàn)橄袼刂稻?jiǎn)單元?jiǎng)討B(tài)地減少GPU需要處理的像素?cái)?shù)目,所以GPU可對(duì)選定的一些像素的像素值而不是所有像素的像素值利用其固定數(shù)據(jù)速率處理。
[0028]圖1是說(shuō)明像素值存儲(chǔ)系統(tǒng)10中的圖形處理單元(GPU) 12的框圖。像素值存儲(chǔ)系統(tǒng)10可為裝置的一部分,如圖6中更詳細(xì)地說(shuō)明。像素值存儲(chǔ)系統(tǒng)10可包含GPU12、像素值處理單元16和緩沖器18。像素值處理單元16可稱為像素值精簡(jiǎn)單元。緩沖器18的實(shí)例包含但不限于幀緩沖器和顯示器緩沖器。
[0029]GPU12可經(jīng)配置以渲染屏幕上的圖像。舉例來(lái)說(shuō),處理器(未圖示)可執(zhí)行產(chǎn)生待在屏幕上顯示的圖像的圖形應(yīng)用程序。所述圖像可包括多個(gè)像素。處理器可將圖像分成多個(gè)多邊形,且確定所述多邊形的頂點(diǎn)的坐標(biāo)。處理器還可確定頂點(diǎn)的各種其它屬性,例如多邊形的亮度值、色彩值或其它此些像素值。
[0030]GPU12可接收?qǐng)D像內(nèi)的像素的像素值,且處理所述像素值以渲染屏幕上的圖像。GPU12的實(shí)例包含但不限于數(shù)字信號(hào)處理器(DSP)、通用微處理器、專(zhuān)用集成電路(ASIC)、現(xiàn)場(chǎng)可編程邏輯陣列(FPGA),或其它等效集成或離散邏輯電路。在一些實(shí)例中,GPU12可實(shí)施圖形管線,其使用像素值來(lái)渲染圖像。圖形管線可實(shí)施為在GPU12上執(zhí)行的軟件、在GPU12上執(zhí)行的固件、形成于GPU12上的一個(gè)或一個(gè)以上硬件單元,或其組合。
[0031]圖形管線可包含多個(gè)組件。舉例來(lái)說(shuō),GPU12的圖形管線可包含頂點(diǎn)著色器,其檢索頂點(diǎn)數(shù)據(jù),并將頂點(diǎn)的坐標(biāo)變換為另一坐標(biāo)系,且計(jì)算頂點(diǎn)的光值。GPU12的圖形管線還可包含圖元組裝器,其確定像素在多邊形內(nèi)的深度(z)。GPU12的圖形管線還可包含早期深度測(cè)試引擎,其在多邊形內(nèi)的像素后來(lái)被其它像素堵塞的情況下,將那些像素從進(jìn)一步處理去除。GPU12的圖形管線還可包含像素著色器,其基于多邊形的頂點(diǎn)的色彩值將像素的色彩值內(nèi)插在多邊形內(nèi)。
[0032]圖形管線的各種組件是出于說(shuō)明目的而提供,且不應(yīng)被視為具有限制性。在替代實(shí)例中,圖形管線可包含比上文所述的組件多的組件。圖形管線還可包含比上文所述的組件少的組件。在圖2A和圖2B中進(jìn)一步詳細(xì)說(shuō)明GPU12的實(shí)例。
[0033]GPU12可能夠以其并行處理執(zhí)行上述實(shí)例功能。在一些例子中,需要處理圖像內(nèi)的所有或大多數(shù)像素,其可為相對(duì)較大數(shù)目的像素,且并行處理可允許GPU12快速且高效地處理像素。GPU12將處理圖像中的所有或大多數(shù)像素的實(shí)例可稱為“固定數(shù)據(jù)速率處理”,因?yàn)閳D像中待處理的像素的數(shù)目可通常為固定的。因?yàn)榇蠖鄶?shù)圖形應(yīng)用程序要求GPU12處理圖像中的所有或大多數(shù)像素,所以GPU12可經(jīng)設(shè)計(jì)以實(shí)施固定數(shù)據(jù)速率處理。
[0034]然而,對(duì)于一些圖形應(yīng)用程序,GPU12可無(wú)需處理圖像中的所有或大多數(shù)像素。對(duì)于這些圖形應(yīng)用程序,GPU12可需要處理圖像中的選定較少像素。GPU12將處理圖像中的選定較少像素的實(shí)例可稱為“可變數(shù)據(jù)速率處理”,因?yàn)榇幚淼南袼氐臄?shù)目不是固定的,而是可改變。歸因于GPU12的固定數(shù)據(jù)速率處理本質(zhì),GPU12可能不像可變數(shù)據(jù)速率處理中那么高效。舉例來(lái)說(shuō),甚至在應(yīng)處理圖像中的選定較少像素時(shí),GPU12自己也可能處理圖像中的所有像素。因此,對(duì)于不要求對(duì)圖像中的所有或大多數(shù)像素進(jìn)行處理而是要求對(duì)選定較少像素進(jìn)行處理的圖形應(yīng)用程序,GPU12自己可能不像為此圖形應(yīng)用程序處理像素中那么聞效。
[0035]舉例來(lái)說(shuō),如果存在D個(gè)像素,且每一像素需要A個(gè)處理循環(huán),那么根據(jù)固定速率處理方案,GPU12所執(zhí)行的像素循環(huán)的總數(shù)可表示為A*D。如果D個(gè)像素中大約1%需要進(jìn)一步處理,且這些像素中的每一者需要B個(gè)處理循環(huán),那么GPU12的效率損失可表示為(0.01+1.01*(Β / Α))。此效率損失是GPU12處理了所有像素的情況下GPU12的效率與GPU12僅處理了需要進(jìn)一步處理的那些像素的情況下GPU12的效率相比的比較結(jié)果。如果D個(gè)像素中的1%隨機(jī)且分散地位于圖像內(nèi)的情況下,可進(jìn)一步放大GPU12的效率損失。
[0036]如上文所指示可稱為像素值精簡(jiǎn)單元的像素值處理單元16可允許GPU12甚至在僅需要處理選定較少像素時(shí)也高效地利用其固定數(shù)據(jù)速率處理,例如藉此支持可變數(shù)據(jù)速率處理。像素值處理單元16可為固定功能硬件單元。像素值處理單元16可耦合到GPU12,且可接收來(lái)自GPU12的輸出流14。輸出流14可包含僅用于需要進(jìn)一步處理的像素的像素值,或用于需要進(jìn)一步處理的像素和不需要進(jìn)一步處理的像素兩者的像素值。
[0037]像素值處理單元16可確定輸出流14內(nèi)的哪些像素值是需要進(jìn)一步處理的像素的像素值,且輸出流14內(nèi)的哪些像素值是不需要進(jìn)一步處理的像素的像素值。在一些實(shí)例中,像素值處理單元16可將需要進(jìn)一步處理的像素的像素值存儲(chǔ)在緩沖器18中,且可不將不需要進(jìn)一步處理的像素的像素值存儲(chǔ)在緩沖器18中。
[0038]緩沖器18可包括2維存儲(chǔ)位置陣列。在一些實(shí)例中,緩沖器18中的存儲(chǔ)位置的數(shù)目可大體上類(lèi)似于顯示圖像的屏幕上的像素的數(shù)目。舉例來(lái)說(shuō),如果屏幕包含640X480個(gè)像素,那么緩沖器18可包含640X480個(gè)存儲(chǔ)位置。然而,本發(fā)明的實(shí)例不限于此。在一些實(shí)例中,緩沖器18內(nèi)的存儲(chǔ)位置的數(shù)目可大于或小于屏幕上的像素的數(shù)目。
[0039]在一些實(shí)例中,像素值處理單元16可將需要進(jìn)一步處理的像素的像素值存儲(chǔ)在緩沖器18的連續(xù)存儲(chǔ)位置內(nèi)。緩沖器18的連續(xù)存儲(chǔ)位置可為連續(xù)行或列,或連續(xù)塊。舉例來(lái)說(shuō),像素值處理單元16可接收來(lái)自處理器(未圖示)的存儲(chǔ)模式選擇。存儲(chǔ)模式選擇可指示像素值處理單元16是否應(yīng)將需要進(jìn)一步處理的像素的像素值存儲(chǔ)在緩沖器18的連續(xù)行或列或連續(xù)塊內(nèi)。
[0040]GPU12可檢索存儲(chǔ)在緩沖器18中的像素值以供進(jìn)一步處理。舉例來(lái)說(shuō),像素處理單元16可向GPU12指示存儲(chǔ)在緩沖器18中的像素值的數(shù)目。GPU12基于所述指示,可檢索存儲(chǔ)在緩沖器18中的所述數(shù)目的像素值以供進(jìn)一步處理。以此方式,GPU12可不會(huì)不必要地處理不需要進(jìn)一步處理的像素的像素值,且可處理需要進(jìn)一步處理的像素的選定較少像素值。
[0041]出于說(shuō)明的目的,以下是為便于理解而提供的像素值存儲(chǔ)系統(tǒng)10的實(shí)例實(shí)施方案。然而,本發(fā)明的方面不應(yīng)被視為限于以下實(shí)例。
[0042]在一些實(shí)例中,可在圖像辨識(shí)應(yīng)用程序(例如支持所謂的視覺(jué)搜索的基于圖像的計(jì)算應(yīng)用程序)中利用GPU12。舉例來(lái)說(shuō),GPU12可為移動(dòng)裝置的一部分。GPU12可接收?qǐng)D像,例如產(chǎn)品的圖像,且提取所述圖像的特征,稱為特征描述符。移動(dòng)裝置可經(jīng)由網(wǎng)絡(luò)將特征描述符發(fā)射到一個(gè)或一個(gè)以上服務(wù)器。所述一個(gè)或一個(gè)以上服務(wù)器可將特征描述符與數(shù)據(jù)庫(kù)中的圖像的特征進(jìn)行比較?;谒霰容^,所述一個(gè)或一個(gè)以上服務(wù)器可發(fā)射匹配圖像的估計(jì)、發(fā)射顯示在圖像中的內(nèi)容的網(wǎng)絡(luò)鏈接(例如網(wǎng)頁(yè)),或發(fā)射其它相關(guān)信息。在替代實(shí)例中,移動(dòng)裝置(而不是服務(wù)器)可將特征描述符與所下載數(shù)據(jù)庫(kù)中的圖像的特征進(jìn)行比較,以找出匹配圖像的估計(jì)。
[0043]為了提取圖像的特征,GPU12可實(shí)施標(biāo)度不變特征變換(SIFT)。SIFT包含三個(gè)級(jí),包括標(biāo)度級(jí)、關(guān)鍵點(diǎn)像素位置級(jí)以及關(guān)鍵點(diǎn)像素描述符級(jí)。一般來(lái)說(shuō),SIFT包含識(shí)別圖像的特征,以及產(chǎn)生所識(shí)別特征的用于圖像辨識(shí)的特征描述符。所識(shí)別的特征可為圖像內(nèi)的關(guān)注點(diǎn)。所識(shí)別的特征可對(duì)應(yīng)于如下文更詳細(xì)描述的關(guān)鍵點(diǎn)像素。
[0044]在標(biāo)度級(jí)和關(guān)鍵點(diǎn)像素位置級(jí)中,GPU12可開(kāi)始處理圖像中的每一和每個(gè)像素以識(shí)別關(guān)鍵點(diǎn)像素。對(duì)于這些級(jí),GPU12的固定數(shù)據(jù)速率處理可促進(jìn)高效像素處理。接著,對(duì)于關(guān)鍵點(diǎn)像素描述符級(jí),GPU12可無(wú)需處理圖像中的每個(gè)像素。相反,GPU12可需要處理圖像中的選定較少像素,以界定用于SIFT的關(guān)鍵點(diǎn)特征描述符。如更詳細(xì)地描述,像素值處理單元16可將關(guān)鍵點(diǎn)像素描述符級(jí)中的后續(xù)處理所需的選定較少像素的像素值存儲(chǔ)在緩沖器18中,且不存儲(chǔ)不需要進(jìn)一步處理(例如不需要進(jìn)一步處理以界定關(guān)鍵點(diǎn)像素描述符,例如特征描述符)的像素的像素值。以此方式,GPU12可處理這些選定較少像素,其需要進(jìn)一步處理且少于圖像的所有像素,而不是處理包含可能不需要額外處理的像素的所有像素。[0045]根據(jù)SIFT算法,在標(biāo)度級(jí)中,GPU12可處理所接收?qǐng)D像內(nèi)的像素的像素值,以產(chǎn)生圖像的標(biāo)度空間。標(biāo)度空間可包含圖像的多個(gè)經(jīng)處理版本,其中圖像的每一經(jīng)處理版本可為經(jīng)按比例縮放圖像。作為一個(gè)實(shí)例,圖像的經(jīng)處理版本可包含圖像的經(jīng)濾波版本。舉例來(lái)說(shuō),GPU12可用六個(gè)低通濾波器對(duì)圖像進(jìn)行濾波,其中每一濾波器為具有不同低通帶寬的濾波器。通過(guò)用六個(gè)低通濾波器來(lái)對(duì)圖像進(jìn)行濾波,GPU可產(chǎn)生六個(gè)經(jīng)低通濾波的圖像,例如低通濾波圖像I到低通濾波圖像6。出于說(shuō)明目的而提供六個(gè)低通濾波器的利用。在替代實(shí)例中,GPU12可利用多于或小于六個(gè)濾波器的濾波器。
[0046]作為另一實(shí)例,圖像的經(jīng)處理版本可包含圖像的經(jīng)濾波和經(jīng)空間下取樣的版本。舉例來(lái)說(shuō),在一些實(shí)例中,GPU12還可對(duì)六個(gè)經(jīng)低通濾波的圖像中的每一者進(jìn)行空間下取樣。圖像的空間下取樣包含混合像素以減少圖像內(nèi)的像素的數(shù)目。舉例來(lái)說(shuō),為了以二為因子進(jìn)行空間下取樣,GPU12可將兩個(gè)像素混合成單個(gè)像素或具有降低的分辨率的多個(gè)像素。以此方式,GPU12可使像素的總數(shù)減少到二分之一。
[0047]在其中GPU12對(duì)圖像進(jìn)行低通濾波且下取樣經(jīng)低通濾波的圖像的實(shí)例中,經(jīng)低通濾波且下取樣的圖像可稱為經(jīng)按比例縮放圖像。在其中GPU12對(duì)圖像進(jìn)行低通濾波但不下取樣經(jīng)低通濾波的圖像的實(shí)例中,經(jīng)低通濾波的圖像可稱為經(jīng)按比例縮放圖像。因此,在以上實(shí)例中,GPU12可產(chǎn)生六個(gè)經(jīng)按比例縮放圖像,例如經(jīng)按比例縮放圖像I到經(jīng)按比例縮放圖像6。經(jīng)按比例縮放圖像不應(yīng)被視為僅限于圖像的經(jīng)濾波或經(jīng)濾波且經(jīng)下取樣版本。一般來(lái)說(shuō),GPU12可利用其它處理技術(shù)產(chǎn)生經(jīng)按比例縮放圖像。
[0048]根據(jù)SIFT算法,在關(guān)鍵點(diǎn)像素位置級(jí)中,GPU12可確定若干對(duì)經(jīng)按比例縮放圖像之間的差。GPU12可基于若干對(duì)經(jīng)按比例縮放圖像之間的差產(chǎn)生差圖像。GPU12可利用高斯差技術(shù)在逐像素基礎(chǔ)上確定若干對(duì)經(jīng)按比例縮放圖像之間的差,但GPU12可利用不同于高斯差技術(shù)的技術(shù)。舉例來(lái)說(shuō),GPU12可在逐像素基礎(chǔ)上確定經(jīng)按比例縮放圖像I與經(jīng)按比例縮放圖像2之間的高斯差,以產(chǎn)生差圖像I。GPU12可在逐像素基礎(chǔ)上確定經(jīng)按比例縮放圖像2與經(jīng)按比例縮放圖像3之間的高斯差,以產(chǎn)生差圖像2,等等。舉例來(lái)說(shuō),GPU12可在逐像素基礎(chǔ)上確定經(jīng)按比例縮放圖像5與經(jīng)按比例縮放圖像6之間的高斯差,以產(chǎn)生差圖像5。
[0049]基于所述差圖像,例如差圖像I到5,GPU12可識(shí)別關(guān)鍵點(diǎn)像素。作為一個(gè)實(shí)例,GPUl 2可選擇差圖像I內(nèi)的3 X 3個(gè)像素的塊,以及差圖像2和3內(nèi)位于同一位置的塊。GPUl 2可接著將所述差圖像的一者內(nèi)的像素的像素值(例如,亮度值)與所有其它像素的像素值進(jìn)行比較。舉例來(lái)說(shuō),GPU12可將差圖像2的3X3像素塊內(nèi)的中心像素的亮度值與差圖像2的3X3像素塊內(nèi)的其它像素以及差圖像I和3內(nèi)位于同一位置的塊內(nèi)的像素的亮度值進(jìn)行比較,總共進(jìn)行26個(gè)比較。如果中心像素的亮度值為最大值或最小值,那么在3X3塊的像素之中,GPU12可將中心像素識(shí)別為關(guān)鍵點(diǎn)像素。GPU12可反復(fù)地對(duì)差圖像2上的多個(gè)3X3像素塊上的差圖像1、2和3內(nèi)的所有像素執(zhí)行比較,以識(shí)別差圖像2內(nèi)的關(guān)鍵點(diǎn)像素。
[0050]關(guān)鍵點(diǎn)像素可隨機(jī)定位且分散地填充在差圖像2、3和4的像素內(nèi)。舉例來(lái)說(shuō),差圖像2、3和4內(nèi)的關(guān)鍵點(diǎn)像素的數(shù)目可為差圖像2、3和4內(nèi)的像素的總數(shù)的較小百分比。在一些例子中,差圖像2、3和4的關(guān)鍵點(diǎn)像素可分別構(gòu)成差圖像2、3和4的總像素的小于1%。
[0051]GPU12可將像素值的輸出流14發(fā)射到像素值處理單元16,以用于包含關(guān)鍵點(diǎn)像素的差圖像(例如,差圖像2、3和4)中的每一者??纱嬖贕PU12發(fā)射到像素值處理單元16的輸出流14的類(lèi)型的多個(gè)實(shí)例。一般來(lái)說(shuō),GPU12可利用任何技術(shù)來(lái)指示輸出流14中屬于關(guān)鍵點(diǎn)像素的像素值。作為一個(gè)實(shí)例,輸出流14可為關(guān)鍵點(diǎn)像素的差圖像2、3和4內(nèi)的坐標(biāo)值的輸出流。作為另一實(shí)例,輸出流14可為差圖像2、3和4內(nèi)的關(guān)鍵點(diǎn)像素的色彩值(例如亮度值和/或紅-綠-藍(lán)(RGB)值)的輸出流。在這些實(shí)例中,GPU12可不輸出非關(guān)鍵點(diǎn)像素的坐標(biāo)值或色彩值,或可輸出非關(guān)鍵點(diǎn)像素的坐標(biāo)值或色彩值的空值。在又一實(shí)例中,輸出流14可為包含關(guān)鍵點(diǎn)像素的像素值的直方圖值的輸出流。在此實(shí)例中,GPU12可不輸出非關(guān)鍵點(diǎn)像素的像素值的直方圖值,或可輸出非關(guān)鍵點(diǎn)像素的直方圖值的空值。
[0052]在此實(shí)例中,像素值處理單元16可例如通過(guò)評(píng)估輸出流14中的像素值來(lái)確定輸出流14中的所接收像素值是用于關(guān)鍵點(diǎn)像素還是非關(guān)鍵點(diǎn)像素。舉例來(lái)說(shuō),如果像素值為空值,那么像素值處理單元16可確定像素值不是非關(guān)鍵點(diǎn)像素的坐標(biāo)值。如果像素值是非空值,那么像素值處理單元16可確定像素值為關(guān)鍵點(diǎn)像素的坐標(biāo)值。
[0053]像素值處理單元16可接著將關(guān)鍵點(diǎn)像素的像素值存儲(chǔ)在緩沖器18中,且不將非關(guān)鍵點(diǎn)像素的像素值存儲(chǔ)在緩沖器18中。此存儲(chǔ)方法可將非關(guān)鍵點(diǎn)像素從進(jìn)一步處理去除,從而導(dǎo)致像素值精簡(jiǎn)。如本發(fā)明中所使用,像素值精簡(jiǎn)可指示需要處理的像素的數(shù)目的減少,其中在精簡(jiǎn)之后緩沖器18中剩余的像素的數(shù)目可大體上小于圖元圖像中的像素的數(shù)目。在一些實(shí)例中,可相對(duì)于GPU12的每一處理循環(huán)的開(kāi)始時(shí)像素的數(shù)目逐步減少像素的數(shù)目。
[0054]GPU12可接著檢索存儲(chǔ)在緩沖器18中的關(guān)鍵點(diǎn)像素的像素值,以用于例如關(guān)鍵點(diǎn)描述符級(jí)等后續(xù)處理級(jí)。關(guān)鍵點(diǎn)描述符級(jí)可包含關(guān)鍵點(diǎn)細(xì)化和描述符產(chǎn)生。關(guān)鍵點(diǎn)細(xì)化可包含藉此GPU12可計(jì)算可在每一關(guān)鍵點(diǎn)附近的不同圖像中的像素的三維空間梯度的算法。以此方式,GPU12可將來(lái)自每一關(guān)鍵點(diǎn)附近的像素的坐標(biāo)從像素分辨率內(nèi)插到子像素分辨率。描述符產(chǎn)生可包含藉此GPU12可計(jì)算關(guān)鍵點(diǎn)位置處的初級(jí)空間梯度以及每一關(guān)鍵點(diǎn)位置周?chē)娜S區(qū)域的空間梯度的直方圖的算法。
[0055]空間梯度的直方圖(其可被視為圖像的像素值的直方圖)可為關(guān)鍵點(diǎn)特征描述符的一個(gè)實(shí)例。在一些實(shí)例中,GPU12還可將像素值的直方圖存儲(chǔ)在緩沖器18中。舉例來(lái)說(shuō),GPU12可將像素值的直方圖作為輸出流14的一部分發(fā)射到像素值處理單元16。像素值處理單元16可將像素值的直方圖與閾值進(jìn)行比較。如果像素值的直方圖大于閾值,那么像素值處理單元16可將像素值的此直方圖存儲(chǔ)在緩沖器18中。然而,如果像素值的直方圖小于閾值,那么像素值處理單元16可不將像素值的此直方圖存儲(chǔ)在緩沖器18中。
[0056]在一些實(shí)例中,像素值處理單元16可對(duì)像素值存儲(chǔ)在緩沖器18中的關(guān)鍵點(diǎn)像素的數(shù)目進(jìn)行計(jì)數(shù)。像素值處理單元16可向GPU12輸出計(jì)數(shù)器值,其指示像素值存儲(chǔ)在緩沖器18中的關(guān)鍵點(diǎn)的數(shù)目。以此方式,GPU12可知曉要從緩沖器18檢索多少像素值,且可僅檢索那些像素值。如更詳細(xì)地描述,像素值處理單元16可將像素值存儲(chǔ)在緩沖器18的連續(xù)存儲(chǔ)位置中。
[0057]在一些實(shí)例中,本發(fā)明中所描述的技術(shù)可允許像素值精簡(jiǎn),而不增加傳送等待時(shí)間、計(jì)算循環(huán),或不要求同步。舉例來(lái)說(shuō),由科納斯組織(Khronos Group)開(kāi)發(fā)的開(kāi)放式圖形庫(kù)(OpenGL?)規(guī)范(例如OpenGL ES2.0)允許一種技術(shù),其中GPU將包含分散填充的關(guān)鍵點(diǎn)像素的位置的數(shù)據(jù)地圖傳送到中央處理單元(CPU)。CPU接著將關(guān)鍵點(diǎn)像素的像素值精簡(jiǎn)為小得多尺寸的緊密數(shù)據(jù)地圖,并將所述數(shù)據(jù)地圖傳送到GPU,以供后續(xù)處理。
[0058]如OpenGL ES2.0規(guī)范中所允許,此方法可增加因像素值在CPU與GPU之間來(lái)回傳送而導(dǎo)致的數(shù)據(jù)傳送等待時(shí)間。像素值處理單元16可減少此傳送等待時(shí)間,因?yàn)橄袼刂堤幚韱卧?6可無(wú)需將關(guān)鍵點(diǎn)像素的像素值傳回到GPU12。并且,在OpenGL ES2.0方法中,CPU可能需要多個(gè)CPU計(jì)算循環(huán)來(lái)對(duì)關(guān)鍵點(diǎn)像素執(zhí)行像素值精簡(jiǎn),這可能是處理低效的。像素值處理單元16可能夠精簡(jiǎn)像素值,而不增加任何計(jì)算循環(huán)。舉例來(lái)說(shuō),作為一個(gè)非限制實(shí)例,像素值處理單元16可能夠在單個(gè)精簡(jiǎn)循環(huán)內(nèi)精簡(jiǎn)像素值。此外,在OpenGL ES2.0方法中,GPU和CPU可需要同步,使得CPU準(zhǔn)備好從GPU接收數(shù)據(jù)地圖,且反之亦然。像素值處理單元16可不需要與GPU12的任何同步。舉例來(lái)說(shuō),GPU12可在其完成其處理時(shí)產(chǎn)生輸出流14,而無(wú)需首先確保像素值處理單元16準(zhǔn)備好接收輸出流14。
[0059]舉例來(lái)說(shuō),在一些實(shí)例中,像素值處理單元16可經(jīng)配置以執(zhí)行例如本發(fā)明中所述功能等受限功能。在這些實(shí)例中,像素值處理單元16可不需要調(diào)度除所述任務(wù)之外的任何其它任務(wù)。像素值處理單元16可持久地就緒以接收輸出流14,且在其可接收輸出流時(shí),不需要調(diào)度特定時(shí)間。舉例來(lái)說(shuō),從GPU12的角度來(lái)看,GPU12可相信其正將輸出流14輸出到緩沖器18。像素值處理單元16可充當(dāng)精簡(jiǎn)像素值的中間單元。然而,GPU12可能不知道像素值處理單元16的此功能性,且可在其完成其處理時(shí)輸出流14。
[0060]本發(fā)明中所述的技術(shù)還可在不增加編程復(fù)雜性的情況下允許像素值精簡(jiǎn)。舉例來(lái)說(shuō),也由科納斯組織開(kāi)發(fā)的開(kāi)放式計(jì)算語(yǔ)言(OpenCL?)規(guī)范允許修改根據(jù)OpenCL規(guī)范定義的程序核的技術(shù),以對(duì)關(guān)鍵點(diǎn)像素的像素值進(jìn)行排序,且將序列輸出到幀緩沖器的連續(xù)存儲(chǔ)位置中。
[0061]OpenCL規(guī)范所提出的方法可增加在GPU上執(zhí)行的程序核的復(fù)雜性,且可需要用于核之間的同步的執(zhí)行開(kāi)銷(xiāo)。像素值處理單元16可能夠進(jìn)行像素值精簡(jiǎn),而不增加在GPU12上執(zhí)行的程序核的復(fù)雜性,因?yàn)橄袼刂堤幚韱卧?6可為在GPU12外部的外部硬件。并且,像素值處理單元16可不需要在GPU12上執(zhí)行的程序核之間的任何額外同步。
[0062]在一些實(shí)例中,像素值處理單元16可以線性形式或塊形式將相關(guān)像素值存儲(chǔ)在緩沖器18中。像素值處理單元16可基于GPU12的特定硬件或在GPU12上執(zhí)行的軟件,以線性形式或塊形式將像素值存儲(chǔ)在緩沖器18中。舉例來(lái)說(shuō),如果GPU12經(jīng)配置以實(shí)施用于OpenGL ES2.0的圖形管線,那么每一像素值可包含表示像素值的至多四個(gè)信道。在此實(shí)例中,像素值處理單元16可精簡(jiǎn)所述像素,例如針對(duì)依據(jù)應(yīng)用程序的需要的靈活性,基于四個(gè)信道中的一者或一者以上,確定哪些像素值應(yīng)存儲(chǔ)在緩沖器18。
[0063]此外,盡管先前實(shí)例描述像素處理單元16通過(guò)將像素值與閾值(例如可編程閾值)進(jìn)行比較來(lái)確定哪些像素值應(yīng)存儲(chǔ)在緩沖器18中,但本發(fā)明的方面不限于此。在一些替代實(shí)例中,像素值處理單元16可將用于能量的像素值的平方、梯度的可編程間距的像素對(duì)的差以及包含直方圖的其它統(tǒng)計(jì)等與可編程閾值進(jìn)行比較,以確定所述像素值應(yīng)存儲(chǔ)在緩沖器18中。
[0064]圖2A是進(jìn)一步詳細(xì)說(shuō)明圖1的GPU12的一個(gè)實(shí)例的框圖。如圖2A中所說(shuō)明,GPU12可實(shí)施類(lèi)似于在2008年4月24日發(fā)布且公開(kāi)可用的OpenGL ES2.0規(guī)范中所描述的圖形管線。如圖2A中所說(shuō)明,GPU12包含著色器核20。著色器核20可實(shí)施為一個(gè)或一個(gè)以上硬件單元、在硬件單元上執(zhí)行的軟件模塊,或其組合。如圖2A中所說(shuō)明,著色器核20包含頂點(diǎn)著色器22、圖元組裝單元24、光柵化器26、片段著色器28、深度模板單元30、色彩混合單元32以及抖動(dòng)單元34。一般來(lái)說(shuō),著色器核20的這些單元可執(zhí)行類(lèi)似于通常歸于OpenGLES2.0規(guī)范中的此些組件的那些功能的功能。著色器核36的這些單元是出于說(shuō)明目的而提供,且不應(yīng)被視為具有限制性。著色器核36可包含比圖2A中所說(shuō)明的單元多或少的單元。
[0065]處理器(未圖示)(例如在GPU12外部的CPU)可產(chǎn)生待顯示于平面上的圖像。處理器可包含圖元處理單元,其將圖像分為多個(gè)圖元,例如,圖元可為例如三角形等多邊形。圖元處理單元還可確定圖元的頂點(diǎn)的頂點(diǎn)坐標(biāo),以及所述頂點(diǎn)的像素值。圖元處理單元可將圖元的頂點(diǎn)的坐標(biāo)和像素值發(fā)射到GPU12。
[0066]頂點(diǎn)著色器22可基于接收到的像素值計(jì)算頂點(diǎn)的光值。圖元組裝單元24可基于頂點(diǎn)的坐標(biāo)計(jì)算圖元的線性等式的系數(shù)。光柵化器26將頂點(diǎn)坐標(biāo)變換為圖像將在其上顯示的屏幕的坐標(biāo)。光柵化器26還可計(jì)算像素在圖元內(nèi)的坐標(biāo)。
[0067]片段著色器28可計(jì)算圖元內(nèi)的像素的像素值,例如色彩值和深度值。深度模板單元30可利用來(lái)自片段著色器28的深度值來(lái)確定像素是否被另一像素堵塞,且如果像素被完全堵塞,那么可將所述像素從進(jìn)一步處理去除。色彩混合單元32可將不同像素的色彩混合在一起。抖動(dòng)單元34可增加像素的色彩深度,以解決處理期間的細(xì)節(jié)損失。
[0068]在圖2A的實(shí)例中,著色器核20的抖動(dòng)單元34的所得輸出可為輸出流14。在此實(shí)例中,輸出流14可包含例如像素將顯示在屏幕上何處的坐標(biāo)、像素的色彩值等像素值,以及其它此類(lèi)像素值。輸出流14中的像素值可針對(duì)圖像中的連續(xù)像素。舉例來(lái)說(shuō),第一像素值可針對(duì)位于圖像的左上角中的像素,第二像素值可針對(duì)位于圖像的左上角的緊接右側(cè)的像素,且以光柵形式依此類(lèi)推。
[0069]像素值處理單元16可接收輸出流14,且確定特定像素的像素值是否應(yīng)存儲(chǔ)在緩沖器18。舉例來(lái)說(shuō),如果特定像素的色彩值為零,那么像素值處理單元14可確定所述像素的像素值不應(yīng)存儲(chǔ)在緩沖器18中??纱嬖谄渌鼫?zhǔn)則,藉此像素值處理單元16可確定特定像素的像素值是否應(yīng)存儲(chǔ)在緩沖器18中。
[0070]基于所述確定,像素值處理單元16可存儲(chǔ)應(yīng)存儲(chǔ)到緩沖器18中的像素的像素值。在一些實(shí)例中,像素值處理單元16可將像素值存儲(chǔ)在緩沖器18的連續(xù)存儲(chǔ)位置中。作為一個(gè)實(shí)例,像素值處理單元16可將像素值存儲(chǔ)在緩沖器18的連續(xù)行或列中。作為另一實(shí)例,像素值處理單元16可將像素值存儲(chǔ)在緩沖器18的連續(xù)塊中。
[0071]圖2B是進(jìn)一步詳細(xì)說(shuō)明圖1的GPU12的另一實(shí)例的框圖。如圖2B中所說(shuō)明,GPU12可包含任務(wù)分配控制單元36、任務(wù)分配單元38、一個(gè)或一個(gè)以上并行著色器核40A到40N (總稱為著色器核40)和任務(wù)合并單元42。任務(wù)分配控制單元36、任務(wù)分配單元38、著色器核40和任務(wù)合并單元42可實(shí)施為一個(gè)或一個(gè)以上硬件單元、在硬件單元上執(zhí)行的軟件模塊,或其組合。
[0072]在一些實(shí)例中,著色器核40可大體上類(lèi)似于著色器核20 (圖2A)。舉例來(lái)說(shuō),著色器核40中的每一者可實(shí)施圖形管線中的著色器核20的單元中的一者或一者以上。在替代實(shí)例中,著色器核40可實(shí)施其它功能,例如上文所述的標(biāo)度不變特征變換(SIFT)。在一些其它實(shí)例中,著色器核40可實(shí)施圖2A中所說(shuō)明的圖形管線,以及執(zhí)行例如SIFT等其它功倉(cāng)泛。
[0073]在圖2B的實(shí)例中,例如CPU等處理器(未圖示)可將圖像分成若干個(gè)塊,并將待執(zhí)行的任務(wù)指派到所述塊中的每一者上。處理器可將任務(wù)信息發(fā)射到任務(wù)分配控制單元36。任務(wù)信息指示處理器將圖像分為若干塊的方式,例如所述塊在圖像內(nèi)的坐標(biāo)。處理器還可將任務(wù)數(shù)據(jù)發(fā)射到任務(wù)分配單元38。任務(wù)數(shù)據(jù)可指示應(yīng)對(duì)圖像的塊中的每一者執(zhí)行什么任務(wù)。
[0074]任務(wù)分配單元38可從任務(wù)分配控制單元36接收任務(wù)信息?;趤?lái)自處理器的任務(wù)數(shù)據(jù)以及來(lái)自任務(wù)分配控制單元36的任務(wù)信息,任務(wù)分配單元38可指派著色器核40中的每一者來(lái)執(zhí)行所述任務(wù)。舉例來(lái)說(shuō),基于待執(zhí)行的任務(wù)的類(lèi)型以及著色器核40中的每一者執(zhí)行任務(wù)的可用性,任務(wù)分配單元38可調(diào)度各個(gè)著色器核40執(zhí)行所述任務(wù)的時(shí)間。
[0075]著色器核40中的每一者可執(zhí)行其所指派的任務(wù),且將其任務(wù)的結(jié)果輸出到任務(wù)合并單元42。來(lái)自著色器核40中的每一者的結(jié)果可為圖像內(nèi)的各種像素的像素值。任務(wù)合并單元42可將著色器核40所執(zhí)行的任務(wù)的結(jié)果合并成單個(gè)輸出流。由任務(wù)合并單元42產(chǎn)生的單個(gè)輸出流可為輸出流14。舉例來(lái)說(shuō),如上文所述,輸出流14可包含例如像素的坐標(biāo)、亮度值、色彩值等像素值,以及其它此類(lèi)像素值。
[0076]類(lèi)似于圖2A中所說(shuō)明的實(shí)例,像素值處理單元16可接收輸出流14,且確定是否應(yīng)將特定像素的像素值存儲(chǔ)在緩沖器18中?;谒龃_定,在一些實(shí)例中,像素值處理單元16可存儲(chǔ)應(yīng)存儲(chǔ)在緩沖器18的連續(xù)行或列或緩沖器18的連續(xù)塊中的像素值。
[0077]圖3是進(jìn)一步詳細(xì)說(shuō)明圖1的像素值處理單元16的實(shí)例的框圖。在一些實(shí)例中,像素值處理單元16可為固定功能硬件單元,且稱為精簡(jiǎn)單元。短語(yǔ)“固定功能硬件單元”表示像素值處理單元16可經(jīng)設(shè)計(jì)以執(zhí)行歸于像素值處理單元16的功能,而不是其它功能。像素值處理單元16可在一個(gè)或一個(gè)以上電路或邏輯元件中實(shí)施,作為駐存在GPU12和緩沖器18外部的獨(dú)立集成或離散邏輯電路。舉例來(lái)說(shuō),像素值處理單元16可為數(shù)字信號(hào)處理器(DSP)、專(zhuān)用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)或在GPU12和緩沖器18外部且耦合到兩者的其它等效集成或離散邏輯電路。在一些實(shí)例中,其中像素值處理單元16為DSP、ASIC或FPGA,DSP、ASIC或FPGA可經(jīng)設(shè)計(jì)以執(zhí)行歸于的功能,且不經(jīng)設(shè)計(jì)以執(zhí)行任何其它功能。
[0078]像素值處理單元16可包含像素值處理器44、計(jì)數(shù)器46和地址產(chǎn)生器48。像素值處理器44可接收來(lái)自GPU12的輸出流14。如所描述,輸出流14可包含由GPU12處理的圖像中的像素的像素值。作為一個(gè)實(shí)例,如上文所述,像素值可為其中GPU12實(shí)施SIFT的實(shí)例中用于關(guān)鍵點(diǎn)像素或關(guān)鍵點(diǎn)像素和非關(guān)鍵點(diǎn)像素兩者的像素值。作為另一實(shí)例,像素值可為在圖形管線中處理的像素。輸出流14中的像素的像素值可用于分散且隨機(jī)地位于由GPU12處理的圖像中的像素。
[0079]輸出流14中可存在各種類(lèi)型的像素值。舉例來(lái)說(shuō),像素值可包含待顯示于屏幕上的圖像中的像素的坐標(biāo)值。像素值還可包含像素的色彩值。在一些實(shí)例中,取決于應(yīng)用程序的需要,像素值可為坐標(biāo)、能量值等。并且,在一些實(shí)例中,如上文所述,像素值可為計(jì)算為關(guān)鍵點(diǎn)特征描述符的一部分的像素值的直方圖。
[0080]像素值處理器44可接收輸出流14,且針對(duì)像素的所接收像素值中的每一者,可確定是保持還是丟棄每一像素的像素值。如果將保持像素的像素值,那么像素值處理器44可將所保持像素的像素值發(fā)射到緩沖器18以供存儲(chǔ)。如下文所述,像素值處理器44可將所保持像素的像素值存儲(chǔ)在緩沖器18內(nèi)由地址產(chǎn)生器48確定的位置處。在一些實(shí)例中,如果像素值處理器44確定將丟棄像素的像素值,那么像素值處理器44可將那些像素從進(jìn)一步處理取消。
[0081]像素值處理器44可利用各種準(zhǔn)則來(lái)確定是保持還是丟棄像素的像素值。舉例來(lái)說(shuō),在SIFT中,像素值處理器44可將關(guān)鍵點(diǎn)像素的像素值存儲(chǔ)在緩沖器18中,且不將非關(guān)鍵點(diǎn)像素的像素值存儲(chǔ)在緩沖器18中。在SIFT中,非關(guān)鍵點(diǎn)像素的像素值(包含坐標(biāo)值或色彩值)可基于GPU12的處理為空值或零值,且對(duì)于關(guān)鍵點(diǎn)像素,可為除空值或零值之外的值。在此實(shí)例中,如果像素的所接收像素值為空值或零值,那么像素值處理器44可確定所述像素為非關(guān)鍵點(diǎn)像素,且如果像素的所接收像素值不是空值或零值,那么可確定像素為關(guān)鍵點(diǎn)像素。
[0082]作為另一實(shí)例,像素值處理器44可確定像素的色彩值的亮度。如果所述像素的亮度大于閾值亮度,那么像素值處理器44可確定應(yīng)存儲(chǔ)所述像素的像素值。如果所述像素的亮度小于或等于閾值亮度,那么像素值處理器44可確定不應(yīng)存儲(chǔ)所述像素的像素值。
[0083]在SIFT實(shí)例或圖形管線實(shí)例中,輸出流14可以預(yù)定次序包含像素的像素值。作為一個(gè)實(shí)例,第一接收到的像素值可為由GPU12處理的圖像的左上像素的像素值,第二接收到的像素值可為左上像素右邊的像素的像素值,且依此類(lèi)推。在此實(shí)例中,像素值處理器44可基于像素值處理單元16接收輸出流14中的像素值的次序來(lái)確定哪些像素值屬于哪一像素。以此方式,像素值處理器44可知曉保持哪些像素以供進(jìn)一步處理,以及將哪些像素從進(jìn)一步處理丟棄。
[0084]像素值處理器44用來(lái)確定將像素的像素值存儲(chǔ)在緩沖器18中還是不將像素的像素值存儲(chǔ)在緩沖器18中的以上實(shí)例技術(shù)是出于說(shuō)明目的而提供,而不應(yīng)被視為具有限制性。像素值處理器44可利用除上文所述的實(shí)例之外或代替于上文所述的實(shí)例的準(zhǔn)則,來(lái)確定是將像素的像素值存儲(chǔ)在緩沖器18中還是不將像素的像素值存儲(chǔ)在緩沖器18中。
[0085]在確定特定像素的像素值應(yīng)存儲(chǔ)在緩沖器18中之后,像素值處理器44可將所述像素的像素值發(fā)射到幀18以供存儲(chǔ),即,將像素值寫(xiě)入到緩沖器18。另外,地址產(chǎn)生器48可確定緩沖器18內(nèi)應(yīng)存儲(chǔ)所述像素的像素值的位置。
[0086]如圖4B到4D中進(jìn)一步詳細(xì)說(shuō)明,緩沖器18可為存儲(chǔ)位置的二維陣列。在一些實(shí)例中,緩沖器18中的存儲(chǔ)位置的數(shù)目可大體上類(lèi)似于屏幕上的像素的數(shù)目。舉例來(lái)說(shuō),如果屏幕包含640X480個(gè)像素,那么緩沖器18可包含640X480個(gè)存儲(chǔ)位置。然而,在一些實(shí)例中,緩沖器18內(nèi)的存儲(chǔ)位置的數(shù)目可大于或小于屏幕上的像素的數(shù)目。
[0087]地址產(chǎn)生器48可產(chǎn)生存儲(chǔ)地址,使得緩沖器18內(nèi)的存儲(chǔ)地址是連續(xù)的。地址產(chǎn)生器48可基于存儲(chǔ)模式選擇以至少兩種不同模式操作。存儲(chǔ)模式選擇可指示地址產(chǎn)生器48是應(yīng)以線性模式還是塊模式操作。
[0088]在線性模式下,地址產(chǎn)生器48可產(chǎn)生待存儲(chǔ)在緩沖器18內(nèi)的連續(xù)行或列中的像素的像素值在緩沖器18內(nèi)的存儲(chǔ)位置的地址。在塊模式下,地址產(chǎn)生器48可產(chǎn)生待存儲(chǔ)在緩沖器18內(nèi)的連續(xù)塊中的像素的像素值在緩沖器18內(nèi)的存儲(chǔ)位置的地址。舉例來(lái)說(shuō),假定緩沖器18包括8X8個(gè)存儲(chǔ)位置。在此實(shí)例中,緩沖器18可被劃分成四個(gè)4X4連續(xù)存儲(chǔ)位置。在塊模式下,地址產(chǎn)生器48可產(chǎn)生像素值待存儲(chǔ)的像素的地址,使得前十六個(gè)像素值存儲(chǔ)在第一個(gè)4X4存儲(chǔ)位置塊中,接下來(lái)的十六個(gè)像素值存儲(chǔ)在第二個(gè)4X4存儲(chǔ)位置塊中,且依此類(lèi)推。[0089]像素值處理器44可將像素的像素值(例如坐標(biāo)值、色彩值、直方圖值,作為三個(gè)實(shí)例)存儲(chǔ)在緩沖器18內(nèi)的由地址產(chǎn)生器48界定的地址處。舉例來(lái)說(shuō),對(duì)于第一像素,地址產(chǎn)生器48可產(chǎn)生將為(1,1)的在緩沖器18內(nèi)的地址。像素值處理器44可將第一像素的像素值存儲(chǔ)在緩沖器18中的位置(1,1)處。對(duì)于第二像素,地址產(chǎn)生器48可產(chǎn)生將為(1,2)的在緩沖器18內(nèi)的地址。像素值處理器44可將第二像素的像素值存儲(chǔ)在緩沖器18中的位置(1,2)處,且依此類(lèi)推。
[0090]如圖3中所說(shuō)明,像素值處理單元16還可包含計(jì)數(shù)器46。計(jì)數(shù)器46可對(duì)其像素值被存儲(chǔ)在緩沖器18中的像素的數(shù)目進(jìn)行計(jì)數(shù)。舉例來(lái)說(shuō),當(dāng)GPU12實(shí)施特征描述符處理以支持SIFT時(shí),對(duì)于每一差圖像,例如,如上文所描述的差圖像2、3和4,計(jì)數(shù)器46可對(duì)存儲(chǔ)在緩沖器18中的像素的數(shù)目進(jìn)行計(jì)數(shù)。
[0091]計(jì)數(shù)器46可將其像素值被存儲(chǔ)在緩沖器18中的像素的數(shù)目傳輸?shù)紾PU12?;谟?jì)數(shù)器46的計(jì)數(shù),GPU12可知曉應(yīng)從緩沖器18檢索多少像素值。在一些實(shí)例中,對(duì)于第一處理回合,GPU12可從緩沖器18的左上存儲(chǔ)位置檢索像素值,且以光柵方式移動(dòng)以檢索由計(jì)數(shù)器46指示的數(shù)目的像素值。GPU12可知曉緩沖器18中的哪一存儲(chǔ)位置是GPU12在第一回合中從其檢索數(shù)據(jù)的最后存儲(chǔ)位置。隨后,對(duì)于后續(xù)回合,GPU12可從緩沖器18內(nèi)的下一存儲(chǔ)位置檢索像素值。
[0092]以此方式,GPU12可甚至針對(duì)可變數(shù)據(jù)速率處理來(lái)有效地利用其固定數(shù)據(jù)速率處理。舉例來(lái)說(shuō),在沒(méi)有像素值處理單元16的情況下,GPU12將把每個(gè)單一像素的像素值存儲(chǔ)在緩沖器18內(nèi),即使不是所有像素都需要進(jìn)一步處理也如此。隨后,對(duì)于進(jìn)一步處理,GPU12將檢索所有所存儲(chǔ)的像素值,評(píng)估像素值中的每一者,且確定是否需要進(jìn)一步處理。對(duì)所有像素的此評(píng)估可為計(jì)算上低效的。舉例來(lái)說(shuō),如果少于I %的像素需要進(jìn)一步處理,那么GPU12可能在不需要進(jìn)一步處理的99%的像素上浪費(fèi)計(jì)算資源。
[0093]在具有耦合在GPU12與緩沖器18之間的像素值處理單元16的情況下,不需要進(jìn)一步處理的像素可不被存儲(chǔ)在緩沖器18中。替代地,像素值處理單元16可丟棄不需要進(jìn)一步處理的此些像素。計(jì)數(shù)器46將向GPU12指示要檢索多少像素值,且GPU12將隨后檢索由計(jì)數(shù)器46指示的數(shù)目的像素值。以此方式,GPU12可不浪費(fèi)評(píng)估不需要進(jìn)一步處理的像素的像素值的計(jì)算資源。而且,GPU12可能夠在處理了由計(jì)數(shù)器46指示的數(shù)目的像素之后終止其處理。
[0094]像素值處理單元16還可能夠在單一計(jì)算循環(huán)內(nèi)確定應(yīng)保留哪些像素值以及應(yīng)丟棄哪些像素值。舉例來(lái)說(shuō),像素值處理單元16可不需要像素值的任何反饋,或需要處理器調(diào)度。舉例來(lái)說(shuō),像素值處理單元16可允許輸出流14中的將被存儲(chǔ)的像素值在單一回合中從GPU12饋送到緩沖器18,而不需要像素值處理單元16與GPU12之間的任何同步,或需要像素值的多個(gè)處理。
[0095]此外,像素值處理單元16可允許GPU12將其固定數(shù)據(jù)速率處理用于可變數(shù)據(jù)速率處理,而不對(duì)在GPU12上執(zhí)行的軟件代碼進(jìn)行大量修改。舉例來(lái)說(shuō),修改在GPU12上執(zhí)行的軟件代碼以執(zhí)行像素值精簡(jiǎn)可為復(fù)雜的,且需要在GPU12上執(zhí)行的不同指令之間的調(diào)度。在具有像素值處理單元16的情況下,可不需要對(duì)在GPU12上執(zhí)行的指令的復(fù)雜改變,或?qū)υ贕PU12上執(zhí)行的指令的調(diào)度的任何改變。換句話說(shuō),像素值處理單元16可對(duì)GPU12編程透明,可需要GPUl2上的零運(yùn)行時(shí)間開(kāi)銷(xiāo),且可容易經(jīng)配置以與GPUl2 —起操作。[0096]另外,像素值處理單元16可能夠支持針對(duì)不同大小圖像的像素值精簡(jiǎn)。像素值處理單元16對(duì)于其它應(yīng)用也可為有用的,其可進(jìn)一步增強(qiáng)GPU12的性能。
[0097]在本發(fā)明中所描述的一些實(shí)例實(shí)施方案中,GPU12可不需要重復(fù)地清理緩沖器
18。舉例來(lái)說(shuō),當(dāng)GPU12實(shí)施SIFT以產(chǎn)生輸出流14時(shí),像素值處理器44可將來(lái)自第一差圖像的關(guān)鍵點(diǎn)像素的像素值存儲(chǔ)在緩沖器18內(nèi)。隨后,在不清理緩沖器18的情況下,像素值處理器44可將來(lái)自第二差圖像的關(guān)鍵點(diǎn)像素的像素值存儲(chǔ)在緩沖器18內(nèi),且以此類(lèi)推。在此實(shí)例中,GPU12可能夠基于計(jì)數(shù)器46的計(jì)數(shù)來(lái)識(shí)別哪些關(guān)鍵點(diǎn)像素屬于第一差圖像且哪些關(guān)鍵點(diǎn)像素屬于第二差圖像。可通過(guò)減少需要清理緩沖器18的次數(shù)來(lái)促進(jìn)有效的電力利用和處理。
[0098]圖4A是說(shuō)明將存儲(chǔ)在緩沖器18中的圖像內(nèi)的像素的符號(hào)圖。圖4B、4C和40是說(shuō)明存儲(chǔ)在緩沖器18的一個(gè)實(shí)例的存儲(chǔ)位置中的像素值的符號(hào)圖。在圖4A中所說(shuō)明的實(shí)例中,圖像50可為由GPU12處理的圖像,且可包含從位于(0,0)處的像素開(kāi)始到位于(7,7)處的像素的64個(gè)像素。在此實(shí)例中,假設(shè)將在其上顯示圖像50的屏幕也包含64個(gè)像素。
[0099]在圖4A中,灰度級(jí)中的像素是將被存儲(chǔ)在緩沖器18中的像素。舉例來(lái)說(shuō),位于圖像50中的(1,1)處的像素的像素值可為I ;位于圖像50中的(6,2)處的像素的像素值可為2 ;位于圖像50中的(5,4)處的像素的像素值可為3 ;且位于圖像50中的(0,7)處的像素的像素值可為4 ;所有其它像素的像素值可為空值。
[0100]像素值處理單元16可以輸出流14的形式接收?qǐng)D像50的像素值。在此實(shí)例中,輸出流14中的第一像素值可為位于圖像50中的(0,0)處的像素的像素值。輸出流14中的第二像素值可為位于圖像50中的(1,0)處的像素的像素值,且以此類(lèi)推。在此實(shí)例中,在位于(7,0)處的像素之后的像素的像素值可為位于(1,0)處的像素的像素值,且以此類(lèi)推。
[0101]在此實(shí)例中,像素值處理器44可確定僅位于(1,1)、(6,2)、(5,4)和(0,7)處的像素的像素值應(yīng)被存儲(chǔ)在緩沖器18中,因?yàn)檫@些像素的像素值不是空值,且所有其它像素的像素值是空值。而且,此實(shí)例中,在像素值處理器44確定應(yīng)存儲(chǔ)一像素的像素值之后,計(jì)數(shù)器46可遞增其計(jì)數(shù)。在此實(shí)例中,在輸出流14的結(jié)束處,計(jì)數(shù)器46可向GPU12指示緩沖器18在此回合中存儲(chǔ)了四個(gè)像素。以此方式,GPU12可知曉其應(yīng)從緩沖器18檢索多少像素值來(lái)進(jìn)行后續(xù)處理。
[0102]杜宇將被存儲(chǔ)在緩沖器18中的像素值,地址產(chǎn)生器48可確定應(yīng)將像素值存儲(chǔ)在緩沖器18中的何處的位置。如上文所描述,地址產(chǎn)生器48可基于地址產(chǎn)生器48是在線性模式還是在塊模式中操作而確定應(yīng)存儲(chǔ)像素值的地址。在任一操作模式中,計(jì)數(shù)器46可對(duì)其像素值被存儲(chǔ)在緩沖器18中的像素的數(shù)目進(jìn)行計(jì)數(shù)。
[0103]圖4B和4C說(shuō)明當(dāng)?shù)刂樊a(chǎn)生器48在線性模式中操作時(shí)將像素值存儲(chǔ)在緩沖器18中。舉例來(lái)說(shuō),在線性模式中,地址產(chǎn)生器48可產(chǎn)生緩沖器18中的用于緩沖器18的列或行內(nèi)的鄰接存儲(chǔ)位置的地址。舉例來(lái)說(shuō),在圖4B的實(shí)例中,地址產(chǎn)生器48產(chǎn)生用于將被存儲(chǔ)在行Rl內(nèi)的鄰接存儲(chǔ)位置中的像素值的地址。在圖4C的實(shí)例中,地址產(chǎn)生器48產(chǎn)生用于將被存儲(chǔ)在列Cl內(nèi)的鄰接存儲(chǔ)位置中的像素值的地址。像素值處理器44可基于由地址產(chǎn)生器48產(chǎn)生的地址而將像素值存儲(chǔ)在鄰接行或列中。
[0104]圖4D說(shuō)明當(dāng)?shù)刂樊a(chǎn)生器48在塊模式中操作時(shí)將像素值存儲(chǔ)在緩沖器18中。在塊模式中,可將緩沖器18視為被劃分為多個(gè)塊,每一塊包含至少一行和至少一列。舉例來(lái)說(shuō),在圖4D的實(shí)例中,緩沖器18可被劃分為十六個(gè)塊,其中每一塊包含2X2個(gè)存儲(chǔ)位置。在此實(shí)例中,地址產(chǎn)生器48可產(chǎn)生包含行Rl和R2的前兩個(gè)存儲(chǔ)位置以及列Cl和C2的前兩個(gè)存儲(chǔ)位置的存儲(chǔ)位置的地址,從而存儲(chǔ)前四個(gè)像素值。如圖4D中所說(shuō)明,像素值處理器44可將像素值存儲(chǔ)在緩沖器18中的包含行Rl和R2的前兩個(gè)存儲(chǔ)位置以及列Cl和C2的前兩個(gè)存儲(chǔ)位置的第一塊內(nèi)。
[0105]圖5是說(shuō)明可經(jīng)配置以實(shí)施本發(fā)明的各方面的裝置52的方框圖。裝置52的實(shí)例包含(但不限于)無(wú)線通信裝置、移動(dòng)無(wú)線電話、個(gè)人數(shù)字助理(PDA)、耦合到視頻顯示器的視頻游戲控制臺(tái)、移動(dòng)視頻會(huì)議單元、膝上型計(jì)算機(jī)、桌上型計(jì)算機(jī)、平板計(jì)算機(jī)、電視機(jī)頂盒、具有集成式媒體解碼器的電視、數(shù)字媒體播放器、便攜式游戲裝置等。裝置52可包含圖形處理單元(GPU) 12、像素值處理單元16、緩沖器18、處理器54、屏幕56、存儲(chǔ)裝置58、收發(fā)器模塊60、用戶接口 62,和相機(jī)64。
[0106]裝置52可包含圖5中出于清楚起見(jiàn)而未展示的額外模塊或單元。舉例來(lái)說(shuō),裝置52可包含揚(yáng)聲器和麥克風(fēng)(其任一者都未在圖5中展示),從而在其中裝置52是移動(dòng)無(wú)線電話的實(shí)例中實(shí)現(xiàn)電話通信,或在裝置52是媒體播放器的情況下實(shí)現(xiàn)揚(yáng)聲器。此外,裝置52中所展示的各種模塊和單元在裝置52的每個(gè)實(shí)例中可能不是必需的。舉例來(lái)說(shuō),在一些實(shí)例中,屏幕56和用戶接口 62可在裝置52外部。而且,在一些實(shí)例中,可能不需要相機(jī)64,或所述相機(jī)可在裝置52外部。
[0107]圖5的GPU12、像素值處理單元16和緩沖器18可大體上類(lèi)似于圖1到4中所說(shuō)明的GPU12、像素值處理單元16和緩沖器18。舉例來(lái)說(shuō),圖5的GPU12、像素值處理單元16和緩沖器18可執(zhí)行上文相對(duì)于圖1到4所描述的功能大體上類(lèi)似的功能。
[0108]處理器54可執(zhí)行一個(gè)或一個(gè)以上應(yīng)用。由處理器54執(zhí)行的應(yīng)用的一些實(shí)例包含(但不限于)網(wǎng)絡(luò)瀏覽器、電子郵件應(yīng)用、電子表格、視頻游戲,或產(chǎn)生供顯示的可觀看內(nèi)容的其它應(yīng)用。由處理器54執(zhí)行的應(yīng)用的另一實(shí)例包含圖像辨識(shí)應(yīng)用。
[0109]舉例來(lái)說(shuō),裝置52的用戶可用相機(jī)64獲取圖像的圖片。所述用戶可隨后用處理器54執(zhí)行圖像辨識(shí)應(yīng)用。處理器54可將由相機(jī)64獲取的圖像提供給GPU12,且致使GPU12執(zhí)行SIFT以從所述圖像提取特征。處理器54可隨后致使收發(fā)器模塊60將所提取的特征傳輸?shù)揭粋€(gè)或一個(gè)以上服務(wù)器。所述一個(gè)或一個(gè)以上服務(wù)器可將所提取的特征與數(shù)據(jù)庫(kù)中的圖像的特征進(jìn)行比較。
[0110]基于所述比較,所述一個(gè)或一個(gè)以上服務(wù)器可將匹配圖像的估計(jì)或?qū)⒂糜陲@示于圖像中的內(nèi)容的網(wǎng)絡(luò)鏈接(例如,網(wǎng)頁(yè))傳輸?shù)绞瞻l(fā)器模塊60,所述收發(fā)器模塊又將所述匹配圖像的估計(jì)或網(wǎng)頁(yè)提供給處理器54。在替代性實(shí)例中,處理器54(而非服務(wù)器)可將所提取的特征與所下載的數(shù)據(jù)庫(kù)中的圖像的特征進(jìn)行比較,以找到匹配圖像的估計(jì)。處理器54可隨后經(jīng)由屏幕56向用戶顯示匹配圖像的估計(jì)或網(wǎng)頁(yè)。
[0111]用于由處理器54執(zhí)行的應(yīng)用的指令可存儲(chǔ)在存儲(chǔ)裝置58內(nèi)。在一些實(shí)例中,處理器54可經(jīng)由收發(fā)器模塊60下載一個(gè)或一個(gè)以上應(yīng)用。處理器54可基于由用戶經(jīng)由用戶接口 62進(jìn)行的選擇來(lái)執(zhí)行一個(gè)或一個(gè)以上應(yīng)用。在一些實(shí)例中,處理器54可在沒(méi)有用戶交互的情況下執(zhí)行一個(gè)或一個(gè)以上應(yīng)用。
[0112]處理器54還可執(zhí)行歸于上文所描述的處理器的功能。舉例來(lái)說(shuō),處理器54可選擇像素值處理單元16的操作模式。舉例來(lái)說(shuō),如上文所描述,像素值處理單元16的地址產(chǎn)生器48可產(chǎn)生用于緩沖器18內(nèi)的處于鄰接行或列中(例如,線性模式)或處于鄰接塊中(例如,塊模式)的位置的地址。處理器54可指令地址產(chǎn)生器48在線性模式或塊模式中操作。
[0113]作為另一實(shí)例,處理器54可產(chǎn)生將顯示于屏幕56上的圖像。舉例來(lái)說(shuō),處理器54可基于其執(zhí)行的應(yīng)用而產(chǎn)生圖像。處理器54還可包含圖元處理單元,所述圖元處理單元將圖像劃分為多個(gè)圖元、確定所述圖元的頂點(diǎn)的頂點(diǎn)坐標(biāo)以及所述頂點(diǎn)的像素值,如上文關(guān)于圖2A所描述。作為又一實(shí)例,處理器54可將圖像劃分為若干塊、指派將對(duì)所述塊中的每一者執(zhí)行的任務(wù),以及將任務(wù)信息和任務(wù)數(shù)據(jù)傳輸?shù)紾PU12,如上文關(guān)于圖2B所描述。
[0114]處理器54的實(shí)例包含(但不限于)DSP、通用微處理器、ASIC、FPGA,或集成到離散邏輯電路的其它等效物。存儲(chǔ)裝置58可包括一個(gè)或一個(gè)以上計(jì)算機(jī)可讀存儲(chǔ)媒體。存儲(chǔ)裝置58的實(shí)例包含(但不限于)隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、CD-ROM或其它光盤(pán)存儲(chǔ)裝置、磁盤(pán)存儲(chǔ)裝置,或其它磁性存儲(chǔ)裝置、快閃存儲(chǔ)器,或可用于攜載或存儲(chǔ)呈指令或數(shù)據(jù)結(jié)構(gòu)的形式的所要程序代碼且可由計(jì)算機(jī)或處理器存取的任何其它媒體。
[0115]在一些方面中,存儲(chǔ)裝置58可包含致使處理器54和/或像素值處理單元16執(zhí)行歸于本發(fā)明中的處理器54和像素值處理單元16的功能的指令。因此,存儲(chǔ)裝置58可為包括致使像素值處理單元16執(zhí)行各種功能的指令的計(jì)算機(jī)可讀存儲(chǔ)媒體。
[0116]在一些實(shí)例中,存儲(chǔ)裝置58可被視為非暫時(shí)性存儲(chǔ)媒體。術(shù)語(yǔ)“非暫時(shí)性”可指示所述存儲(chǔ)媒體未體現(xiàn)于載波或所傳播信號(hào)中。然而,術(shù)語(yǔ)“非暫時(shí)性”應(yīng)被解釋為是指存儲(chǔ)裝置58是非可移動(dòng)的。作為一個(gè)實(shí)例,存儲(chǔ)裝置58可從裝置52被移除,且移動(dòng)到另一裝置。作為另一實(shí)例,大體上類(lèi)似于存儲(chǔ)裝置58的存儲(chǔ)裝置可插入到裝置52中。在某些實(shí)例中,非暫時(shí)性存儲(chǔ)媒體可存儲(chǔ)可隨著時(shí)間改變的數(shù)據(jù)(例如,在RAM中)。
[0117]用戶接口 62的實(shí)例包含(但不限于)跟蹤球、鼠標(biāo)、鍵盤(pán),以及其它類(lèi)型的輸入裝置。用戶接口 62還可為觸摸屏且可被集成為屏幕56的一部分。收發(fā)器模塊60可包含用以允許裝置52與另一裝置或網(wǎng)絡(luò)之間的無(wú)線或有線通信的電路。收發(fā)器模塊60可包含調(diào)制器、解調(diào)器、放大器以及用于有線或無(wú)線通信的其它此類(lèi)電路。相機(jī)64可為可獲取圖像的任何類(lèi)型的相機(jī)。相機(jī)64可形成于裝置52內(nèi),且可在裝置52外部且耦合到裝置52。
[0118]屏幕56可包括液晶顯示器(IXD)、陰極射線管(CRT)顯示器、有機(jī)發(fā)光二極管(OLED)顯示器、等離子體顯示器,或另一類(lèi)型的顯示裝置。屏幕56包含水平地且垂直地布置在2維(2D)像素陣列中的多個(gè)像素。舉例來(lái)說(shuō),屏幕56可包含水平地且垂直地布置的640X480個(gè)像素。
[0119]圖6是說(shuō)明像素值處理單元16的實(shí)例操作的流程圖。僅出于說(shuō)明的目的,參考圖1到4。
[0120]像素值處理單元16可從GPU12接收包含由GPU12處理的圖像中的一個(gè)或一個(gè)以上像素的像素值的輸出流出6)。舉例來(lái)說(shuō),GPU12可對(duì)圖像進(jìn)行圖形處理以產(chǎn)生包含經(jīng)處理圖像內(nèi)的一個(gè)或一個(gè)以上像素的像素值的輸出流14。舉例來(lái)說(shuō),GPU12可實(shí)施圖2A中所說(shuō)明的圖形管線以產(chǎn)生輸出流14。作為另一實(shí)例,GPU12可實(shí)施如上文所描述的SIFT。
[0121]在SIFT中,GPU12可從處理器54接收?qǐng)D像。GPU12可隨后用具有不同低通帶寬的若干低通濾波器對(duì)所接收?qǐng)D像進(jìn)行低通濾波,以產(chǎn)生圖像的經(jīng)縮放版本。在一些實(shí)例中,GPU12可對(duì)所述圖像進(jìn)行低通濾波且對(duì)所得圖像進(jìn)行下取樣以產(chǎn)生圖像的經(jīng)縮放版本。
[0122]GPU12可隨后識(shí)別圖像的經(jīng)縮放版本內(nèi)的關(guān)鍵點(diǎn)像素。舉例來(lái)說(shuō),GPU12可確定圖像的經(jīng)縮放版本的若干對(duì)之間的差。GPU12可隨后定位其在至少三個(gè)差圖像的位于同一地點(diǎn)的塊內(nèi)的亮度像素值是最大亮度值或最小亮度值的像素。具有最大或最小亮度值的像素可為關(guān)鍵點(diǎn)像素。
[0123]可在GPU12外部且耦合到GPU12的像素值處理單元16可確定輸出流14中的像素值是否用于需要進(jìn)一步處理的像素(68)。像素值處理單元16可利用各種準(zhǔn)則來(lái)確定輸出流14中的像素值是否用于需要進(jìn)一步處理的像素。舉例來(lái)說(shuō),在SIFT中,非關(guān)鍵點(diǎn)像素的像素值可為空值或零值,且可為除了關(guān)鍵點(diǎn)像素的空值或零值之外的值。在此實(shí)例中,像素值處理單元16可確定其值為空值或零值的像素可為需要進(jìn)一步處理的像素,例如關(guān)鍵點(diǎn)像素。在一些實(shí)例中,對(duì)于不需要進(jìn)一步處理的像素,像素值處理單元16可除去那些像素而不進(jìn)一步處理。
[0124]還可耦合到緩沖器18的像素值處理單元16可將需要進(jìn)一步處理的像素的像素值存儲(chǔ)在緩沖器18中(70)。舉例來(lái)說(shuō),像素值處理單元16可產(chǎn)生緩沖器18內(nèi)的用于存儲(chǔ)需要進(jìn)一步處理的像素的像素值的地方的地址。像素值處理單元16可隨后將需要進(jìn)一步處理的像素的像素值存儲(chǔ)在緩沖器18中的其地址對(duì)應(yīng)于所產(chǎn)生的地址的存儲(chǔ)位置中。
[0125]而且,在一些實(shí)例中,像素值處理單元16可確定所述像素值是否用于需要進(jìn)一步處理的像素,且在像素值處理單元16的單一計(jì)算回合中存儲(chǔ)此些像素值。舉例來(lái)說(shuō),像素值處理單元16可不需要所述像素值中的任一者通過(guò)像素值處理單元16反饋,且可實(shí)現(xiàn)從GPU12到緩沖器18的直接路徑。而且,像素值處理單元16可不需要與GPU12的任何同步。舉例來(lái)說(shuō),GPU12可能夠?qū)⑤敵隽?4傳輸?shù)较袼刂堤幚韱卧?6,而不需要向像素值處理單元16指示GPU12將要傳輸輸出流14。
[0126]圖7是說(shuō)明像素值處理單元16的另一實(shí)例操作的流程圖。僅出于說(shuō)明的目的,參考圖3和5。
[0127]像素值處理單元16的地址產(chǎn)生器48可從處理器(例如,處理器54)接收操作模式(72)。地址產(chǎn)生器48可隨后基于所接收的操作模式而產(chǎn)生用于需要進(jìn)一步處理的像素的像素值被存儲(chǔ)在緩沖器18何處的地址。
[0128]舉例來(lái)說(shuō),所接收的操作模式可為線性模式和塊模式中的至少一者。在所接收的操作模式是線性模式的情況下,地址產(chǎn)生器48可產(chǎn)生緩沖器18的鄰接行或列內(nèi)的地址
(74)。在所接收的操作模式是塊模式的情況下,地址產(chǎn)生器48可產(chǎn)生緩沖器18的鄰接塊內(nèi)的地址(76)。
[0129]圖8是說(shuō)明像素值處理單元16的另一實(shí)例操作的流程圖。僅出于說(shuō)明的目的,參考圖3。
[0130]計(jì)數(shù)器46可對(duì)存儲(chǔ)于緩沖器18中的像素的數(shù)目進(jìn)行計(jì)數(shù)(78)。舉例來(lái)說(shuō),在像素值處理器44確定應(yīng)存儲(chǔ)像素的像素值之后,計(jì)數(shù)器46可遞增計(jì)數(shù)器以指示像素的像素值被存儲(chǔ)在緩沖器18中。計(jì)數(shù)器46可針對(duì)其像素值被存儲(chǔ)在緩沖器18中的每個(gè)像素來(lái)重復(fù)此步驟。
[0131]GPU12可基于所述計(jì)數(shù)來(lái)檢索存儲(chǔ)于緩沖器18中的像素值(80)。舉例來(lái)說(shuō),計(jì)數(shù)器46可指示在當(dāng)前處理回合中有多少像素被存儲(chǔ)在緩沖器18中。GPU12可隨后知曉存儲(chǔ)于緩沖器18中的像素的數(shù)目,且可僅針對(duì)需要進(jìn)一步處理的那些像素來(lái)檢索像素值。
[0132]GPU12可隨后進(jìn)一步處理所檢索的像素值(82)。以此方式,GPU12可能夠甚至針對(duì)可變數(shù)據(jù)速率處理來(lái)利用其固定數(shù)據(jù)速率處理。在此實(shí)例中,因?yàn)镚PU12可僅檢索需要進(jìn)一步處理的像素的像素值,且不檢索不需要進(jìn)一步處理的像素的像素值,所以GPU12可不浪費(fèi)評(píng)估不需要進(jìn)一步處理的像素的像素值的計(jì)算資源。
[0133]在一個(gè)或一個(gè)以上實(shí)例中,所描述的功能可以硬件、軟件、固件或其任何組合來(lái)實(shí)施。如果以軟件來(lái)實(shí)施,則可將功能作為一個(gè)或一個(gè)以上指令或代碼存儲(chǔ)在包括非暫時(shí)性計(jì)算機(jī)可讀媒體的制品上。計(jì)算機(jī)可讀媒體可包含計(jì)算機(jī)數(shù)據(jù)存儲(chǔ)媒體。數(shù)據(jù)存儲(chǔ)裝置可為可由一個(gè)或一個(gè)以上計(jì)算機(jī)或一個(gè)或一個(gè)以上處理器存取以檢索指令、代碼和/或數(shù)據(jù)結(jié)構(gòu)來(lái)用于實(shí)施本發(fā)明中所描述的技術(shù)的任何可用媒體。舉例來(lái)說(shuō)(且并非限制),所述計(jì)算機(jī)可讀媒體可包括RAM、ROM、EEPROM、CD-ROM或其它光盤(pán)存儲(chǔ)裝置、磁盤(pán)存儲(chǔ)裝置或其它磁性存儲(chǔ)裝置,快閃存儲(chǔ)器,或可用于攜載或存儲(chǔ)呈指令或數(shù)據(jù)結(jié)構(gòu)的形式的所要程序代碼且可由計(jì)算機(jī)存取的任何其它媒體。如本文中所使用,磁盤(pán)及光盤(pán)包括壓縮光盤(pán)(CD)、激光光盤(pán)、光學(xué)光盤(pán)、數(shù)字多功能光盤(pán)(DVD)、軟磁盤(pán)及藍(lán)光光盤(pán),其中磁盤(pán)通常磁性地再現(xiàn)數(shù)據(jù),而光盤(pán)使用激光光學(xué)地再現(xiàn)數(shù)據(jù)。以上各者的組合也應(yīng)包含在計(jì)算機(jī)可讀媒體的范圍內(nèi)。
[0134]代碼可由一個(gè)或一個(gè)以上處理器執(zhí)行,例如,一個(gè)或一個(gè)以上DSP、通用微處理器、ASIC、FPGA或其它等效集成或離散邏輯電路。另外,在一些方面中,本文中所描述的功能性可提供于專(zhuān)用硬件模塊和/或軟件模塊內(nèi)。并且,可將所述技術(shù)完全實(shí)施于一個(gè)或一個(gè)以上電路或邏輯元件中。
[0135]本發(fā)明的技術(shù)可實(shí)施于廣泛多種裝置或設(shè)備中,包含無(wú)線手持機(jī)、集成電路(IC)或一組IC(例如,芯片組)。本發(fā)明中描述各種組件、模塊或單元來(lái)強(qiáng)調(diào)經(jīng)配置以執(zhí)行所揭示的技術(shù)的裝置的若干功能性方面,但不一定需要通過(guò)不同的硬件單元來(lái)實(shí)現(xiàn)。而是,如上文所描述,各種單元可聯(lián)合合適的軟件和/或固件而組合于硬件單元中或通過(guò)互操作的硬件單元的集合(包含如上文所描述的一個(gè)或一個(gè)以上處理器)來(lái)提供。
[0136]已描述了各種實(shí)例。這些及其它實(shí)例處于所附權(quán)利要求書(shū)的范圍內(nèi)。
【權(quán)利要求】
1.一種方法,其包括: 用耦合到圖形處理單元GPU且在所述GPU外部的像素值處理單元從所述GPU接收包含由所述GPU處理的圖像中的一個(gè)或一個(gè)以上像素的像素值的輸出流; 用所述像素值處理單元確定所述輸出流中的所述像素值是否用于需要由所述GPU進(jìn)行進(jìn)一步處理的像素;以及 將需要由所述GPU進(jìn)行進(jìn)一步處理的所述像素的所述像素值存儲(chǔ)在位于所述像素值處理單元外部且耦合到所述像素值處理單元的緩沖器中。
2.根據(jù)權(quán)利要求1所述的方法,其中確定所述像素值是否用于需要進(jìn)一步處理的像素包括在所述像素值處理單元的單一計(jì)算回合中確定所述像素值是否用于需要進(jìn)一步處理的像素,而不需要所述像素值處理單元與所述GPU之間的同步,且其中存儲(chǔ)需要進(jìn)一步處理的所述像素的所述像素值包括在所述像素值處理單元的所述單一計(jì)算回合中存儲(chǔ)需要進(jìn)一步處理的所述像素的所述像素值,而不需要所述像素值處理單元與所述GPU之間的同步。
3.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括:產(chǎn)生所述緩沖器內(nèi)的用于被確定為需要進(jìn)一步處理的所述像素的所述像素值的地址, 其中存儲(chǔ)需要進(jìn)一步處理的所述像素的所述像素值包括將需要進(jìn)一步處理的所述像素的所述像素值存儲(chǔ)在所述緩沖器的所述所產(chǎn)生的地址處。
4.根據(jù)權(quán)利要求3所述的方法,其進(jìn)一步包括: 接收操作模式, 其中產(chǎn)生所述緩沖器內(nèi)的地址包括基于所述所接收的操作模式而產(chǎn)生所述緩沖器內(nèi)的地址。
5.根據(jù)權(quán)利要求4所述的方法,其中所述操作模式包括線性模式和塊模式中的至少一者,其中產(chǎn)生所述緩沖器內(nèi)的地址包括在所述操作模式包括所述線性模式時(shí)產(chǎn)生所述緩沖器的鄰接行或列內(nèi)的地址,且其中產(chǎn)生所述緩沖器內(nèi)的地址包括在所述操作模式包括所述塊模式時(shí)產(chǎn)生所述緩沖器的鄰接塊內(nèi)的地址。
6.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括: 對(duì)其像素值被存儲(chǔ)在所述緩沖器中的像素的數(shù)目進(jìn)行計(jì)數(shù); 基于所述所計(jì)數(shù)的像素?cái)?shù)目而檢索需要進(jìn)一步處理的所述像素的所述像素值;以及 處理需要進(jìn)一步處理的所述像素的所述所檢索的像素值。
7.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括: 產(chǎn)生所述圖像的經(jīng)縮放版本;以及 基于所述圖像的所述經(jīng)縮放版本而識(shí)別關(guān)鍵點(diǎn)像素, 其中確定所述輸出流中的所述像素值是否用于需要進(jìn)一步處理的像素包括確定所述輸出流中的所述像素值是否用于所述所識(shí)別的關(guān)鍵點(diǎn)像素,且其中存儲(chǔ)需要進(jìn)一步處理的所述像素的所述像素值包括將所述所識(shí)別的關(guān)鍵點(diǎn)像素的所述像素值存儲(chǔ)在所述緩沖器中。
8.根據(jù)權(quán)利要求1所述的方法,其中所述像素值包括坐標(biāo)值和色彩值中的至少一者。
9.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括除去不需要進(jìn)一步處理的像素的像素值而不進(jìn)一步處理。
10.根據(jù)權(quán)利要求1所述的方法,其進(jìn)一步包括不將不需要由所述GPU進(jìn)行進(jìn)一步處理的像素的像素值存儲(chǔ)在所述緩沖器中。
11.一種設(shè)備,其包括: 圖形處理單元GPU,其經(jīng)配置以對(duì)圖像進(jìn)行處理以產(chǎn)生包含所述經(jīng)處理圖像內(nèi)的一個(gè)或一個(gè)以上像素的像素值的輸出流; 緩沖器;以及 像素值處理單元,其在所述GPU外部、耦合到所述GPU和所述緩沖器,且經(jīng)配置以確定所述輸出流中的所述像素值是否用于需要由所述GPU進(jìn)行進(jìn)一步處理的像素,且將需要由所述GPU進(jìn)行進(jìn)一步處理的所述像素的所述像素值存儲(chǔ)在所述緩沖器中。
12.根據(jù)權(quán)利要求11所述的設(shè)備,其中所述像素值處理單元在所述像素值處理單元的單一計(jì)算回合中確定所述像素值是否用于需要由所述GPU進(jìn)行進(jìn)一步處理的像素,且存儲(chǔ)需要由所述GPU進(jìn)行進(jìn)一步處理的所述像素的所述像素值,而不需要所述像素值處理單元與所述GPU之間的同步。
13.根據(jù)權(quán)利要求11所述的設(shè)備,其中所述像素值處理單元進(jìn)一步經(jīng)配置以產(chǎn)生所述緩沖器內(nèi)的用于被確定為需要進(jìn)一步處理的所述像素的所述像素值的地址,且其中所述像素值處理單元將需要處理的所述像素的所述像素值存儲(chǔ)在所述緩沖器的所述所產(chǎn)生的地址處。
14.根據(jù)權(quán)利要求13所述的設(shè)備,其中所述像素值處理單元進(jìn)一步經(jīng)配置以接收操作模式,且其中所述像素值處理單元基于所述所接收的操作模式而產(chǎn)生所述緩沖器內(nèi)的所述地址。`
15.根據(jù)權(quán)利要求14所述的設(shè)備,其中所述操作模式包括線性模式和塊模式中的至少一者,其中所述像素值處理單元在所述操作模式包括所述線性模式時(shí)產(chǎn)生所述緩沖器的鄰接行或列內(nèi)的所述地址,且在所述操作模式包括所述塊模式時(shí)產(chǎn)生所述緩沖器的鄰接塊內(nèi)的所述地址。
16.根據(jù)權(quán)利要求11所述的設(shè)備,其中所述像素值處理單元進(jìn)一步經(jīng)配置以對(duì)其像素值被存儲(chǔ)在所述緩沖器中的像素的數(shù)目進(jìn)行計(jì)數(shù),其中所述GPU基于所述所計(jì)數(shù)的像素?cái)?shù)目而從所述緩沖器檢索需要進(jìn)一步處理的所述像素的所述像素值,且其中所述GPU處理需要進(jìn)一步處理的所述像素的所述所檢索的像素值。
17.根據(jù)權(quán)利要求11所述的設(shè)備,其中所述GPU進(jìn)一步經(jīng)配置以產(chǎn)生所述圖像的經(jīng)縮放版本,且基于所述圖像的所述經(jīng)縮放版本而識(shí)別關(guān)鍵點(diǎn)像素,其中像素值處理單元確定所述輸出流中的所述像素值是否用于所述所識(shí)別的關(guān)鍵點(diǎn)像素,且將所述所識(shí)別的關(guān)鍵點(diǎn)像素的所述像素值存儲(chǔ)在所述緩沖器中。
18.根據(jù)權(quán)利要求11所述的設(shè)備,其中所述像素值包括坐標(biāo)值和色彩值中的至少一者。
19.根據(jù)權(quán)利要求11所述的設(shè)備,其中所述像素值處理單元進(jìn)一步經(jīng)配置以除去不需要進(jìn)一步處理的像素的像素值而不進(jìn)一步處理。
20.根據(jù)權(quán)利要求11所述的設(shè)備,其中所述像素值處理單元包括固定功能硬件單元,所述固定功能硬件單元經(jīng)配置以:僅確定所述輸出流中的所述像素值是否用于需要進(jìn)行進(jìn)一步處理的像素;將需要進(jìn)一步處理的所述像素的所述像素值存儲(chǔ)在所述緩沖器中;產(chǎn)生所述緩沖器內(nèi)的用于被確定為需要進(jìn)一步處理的所述像素的所述像素值的地址;以及對(duì)其像素值被存儲(chǔ)在所述緩沖器中的像素的數(shù)目進(jìn)行計(jì)數(shù)。
21.根據(jù)權(quán)利要求11所述的設(shè)備,其中所述像素值處理單元進(jìn)一步經(jīng)配置以不將不需要由所述GPU進(jìn)行進(jìn)一步處理的像素的像素值存儲(chǔ)在所述緩沖器中。
22.根據(jù)權(quán)利要求11所述的設(shè)備,其中所述設(shè)備包括無(wú)線通信裝置。
23.—種設(shè)備,其包括: 圖形處理單元GPU; 緩沖器;以及 像素值處理單元,其在所述GPU外部且耦合到所述GPU和所述緩沖器,且其包括: 用于從所述GPU接 收包含由所述GPU處理的圖像中的一個(gè)或一個(gè)以上像素的像素值的輸出流的裝置; 用于確定所述輸出流中的所述像素值是否用于需要由所述GPU進(jìn)行進(jìn)一步處理的像素的裝置;以及 用于將需要由所述GPU進(jìn)行進(jìn)一步處理的所述像素的所述像素值存儲(chǔ)在所述緩沖器中的裝置。
24.根據(jù)權(quán)利要求23所述的設(shè)備,其中所述用于確定所述像素值是否用于需要進(jìn)一步處理的像素的裝置包括用于在所述像素值處理單元的單一計(jì)算回合中確定所述像素值是否用于需要進(jìn)一步處理的像素而不需要所述像素值處理單元與所述GPU之間的同步的裝置,且其中所述用于存儲(chǔ)需要進(jìn)一步處理的所述像素的所述像素值的裝置包括用于在所述像素值處理單元的所述單一計(jì)算回合中存儲(chǔ)需要進(jìn)一步處理的所述像素的所述像素值而不需要所述像素值處理單元與所述GPU之間的同步的裝置。
25.根據(jù)權(quán)利要求23所述的設(shè)備,其進(jìn)一步包括: 用于產(chǎn)生所述緩沖器內(nèi)的用于被確定為需要進(jìn)一步處理的所述像素的所述像素值的地址的裝置, 其中所述用于存儲(chǔ)需要進(jìn)一步處理的所述像素的所述像素值的裝置包括用于將需要進(jìn)一步處理的所述像素的所述像素值存儲(chǔ)在所述緩沖器的所述所產(chǎn)生的地址處的裝置。
26.根據(jù)權(quán)利要求25所述的設(shè)備,其進(jìn)一步包括: 用于接收操作模式的裝置, 其中所述用于產(chǎn)生所述緩沖器內(nèi)的地址的裝置包括用于基于所述所接收的操作模式而產(chǎn)生所述緩沖器內(nèi)的地址的裝置。
27.根據(jù)權(quán)利要求26所述的設(shè)備,其中所述操作模式包括線性模式和塊模式中的至少一者,其中所述用于產(chǎn)生所述緩沖器內(nèi)的地址的裝置包括用于在所述操作模式包括所述線性模式時(shí)產(chǎn)生所述緩沖器的鄰接行或列內(nèi)的地址的裝置,且其中所述用于產(chǎn)生所述緩沖器內(nèi)的地址的裝置包括用于在所述操作模式包括所述塊模式時(shí)產(chǎn)生所述緩沖器的鄰接塊內(nèi)的地址的裝置。
28.根據(jù)權(quán)利要求23所述的設(shè)備,其進(jìn)一步包括: 用于對(duì)其像素值被存儲(chǔ)在所述緩沖器中的像素的數(shù)目進(jìn)行計(jì)數(shù)的裝置; 用于基于所述所計(jì)數(shù)的像素?cái)?shù)目而檢索需要進(jìn)一步處理的所述像素的所述像素值的裝置;以及用于處理需要進(jìn)一步處理的所述像素的所述所檢索的像素值的裝置。
29.根據(jù)權(quán)利要求23所述的設(shè)備,其進(jìn)一步包括: 用于產(chǎn)生所述圖像的經(jīng)縮放版本的裝置;以及 用于基于所述圖像的所述經(jīng)縮放版本而識(shí)別關(guān)鍵點(diǎn)像素的裝置, 其中所述用于確定所述輸出流中的所述像素值是否用于需要進(jìn)一步處理的像素的裝置包括用于確定所述輸出流中的所述像素值是否用于所述所識(shí)別的關(guān)鍵點(diǎn)像素的裝置,且其中所述用于存儲(chǔ)需要進(jìn)一步處理的所述像素的所述像素值的裝置包括用于將所述所識(shí)別的關(guān)鍵點(diǎn)像素的所述像素值存儲(chǔ)在所述緩沖器中的裝置。
30.根據(jù)權(quán)利要求23所述的設(shè)備,其中所述像素值包括坐標(biāo)值和色彩值中的至少一者。
31.根據(jù)權(quán)利要求23所述的設(shè)備,其進(jìn)一步包括用于除去不需要進(jìn)一步處理的像素的像素值而不進(jìn)一步處理的裝置。
32.根據(jù)權(quán)利要求23所述的設(shè)備,其進(jìn)一步包括用于不將不需要由所述GPU進(jìn)行進(jìn)一步處理的像素值存儲(chǔ)在所述緩沖器中的裝置。
33.根據(jù)權(quán)利要求23所述的設(shè)備,其中所述設(shè)備包括無(wú)線通信裝置。
34.一種包括指令的非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)媒體,所述指令致使像素值處理單元: 用耦合到圖形處理單元GPU且在所述GPU外部的所述像素值處理單元從所述GPU接收 包含由所述GPU處理的圖像中的一個(gè)或一個(gè)以上像素的像素值的輸出流; 確定所述輸出流中的所述像素值是否用于需要進(jìn)一步處理的像素;以及將需要進(jìn)一步處理的所述像素的所述像素值存儲(chǔ)在位于所述像素值處理單元和所述GPU外部且耦合到所述像素值處理單元的緩沖器中。
35.根據(jù)權(quán)利要求34所述的非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)媒體,其中所述用以確定所述像素值是否用于需要進(jìn)一步處理的像素的指令包括用以在所述像素值處理單元的單一計(jì)算回合中確定所述像素值是否用于需要進(jìn)一步處理的像素而不需要所述像素值處理單元與所述GPU之間的同步的指令,且其中所述用以存儲(chǔ)需要進(jìn)一步處理的所述像素的所述像素值的指令包括用以在所述像素值處理單元的所述單一計(jì)算回合中存儲(chǔ)需要進(jìn)一步處理的所述像素的所述像素值而不需要所述像素值處理單元與所述GPU之間的同步的指令。
36.根據(jù)權(quán)利要求34所述的非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)媒體,其進(jìn)一步包括致使所述像素值處理單元進(jìn)行以下操作的指令: 產(chǎn)生所述緩沖器內(nèi)的用于被確定為需要進(jìn)一步處理的所述像素的所述像素值的地址,其中所述用以存儲(chǔ)需要進(jìn)一步處理的所述像素的所述像素值的指令包括用以將需要進(jìn)一步處理的所述像素的所述像素值存儲(chǔ)在所述緩沖器的所述所產(chǎn)生的地址處的指令。
37.根據(jù)權(quán)利要求36所述的非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)媒體,其進(jìn)一步包括致使所述像素值處理單元進(jìn)行以下操作的指令: 接收操作模式, 其中所述用以產(chǎn)生所述緩沖器內(nèi)的地址的指令包括用以基于所述所接收的操作模式而產(chǎn)生所述緩沖器內(nèi)的地址的指令。
38.根據(jù)權(quán)利要求37所述的非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)媒體,其中所述操作模式包括線性模式和塊模式中的至少一者,其中所述用以產(chǎn)生所述緩沖器內(nèi)的地址的指令包括用以在所述操作模式包括所述線性模式時(shí)產(chǎn)生所述緩沖器的鄰接行或列內(nèi)的地址的指令,且其中所述用以產(chǎn)生所述緩沖器內(nèi)的地址的指令包括用以在所述操作模式包括所述塊模式時(shí)產(chǎn)生所述緩沖器的鄰接塊內(nèi)的地址的指令。
39.根據(jù)權(quán)利要求34所述的非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)媒體,其進(jìn)一步包括致使所述像素值處理單元進(jìn)行以下操作的指令: 對(duì)其像素值被存儲(chǔ)在所述緩沖器中的像素的數(shù)目進(jìn)行計(jì)數(shù)。
40.根據(jù)權(quán)利要求34所述的非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)媒體,其中所述像素值包括坐標(biāo)值和色彩值中的至少一者。
41.根據(jù)權(quán)利要求34所述的非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)媒體,其進(jìn)一步包括致使所述像素值處理單元除去不需要進(jìn)一步處理的像素的像素值而不進(jìn)一步處理的指令。
42.根據(jù)權(quán)利要求34所述的非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)媒體,其進(jìn)一步包括致使所述像素值處理單元不將不需要由所述GPU進(jìn)行進(jìn)一步處理的像素的像素值存儲(chǔ)在所述緩沖器中的指令。`
【文檔編號(hào)】G06T1/60GK103460253SQ201280017681
【公開(kāi)日】2013年12月18日 申請(qǐng)日期:2012年4月13日 優(yōu)先權(quán)日:2011年4月13日
【發(fā)明者】蔡明章, 焦國(guó)方 申請(qǐng)人:高通股份有限公司