專(zhuān)利名稱(chēng):使用圖形處理單元計(jì)算直方圖的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像處理領(lǐng)域,并且更具體地涉及直方圖計(jì)算領(lǐng)域。
背景技術(shù):
由于現(xiàn)代的圖形處理器(GPU)的巨大的計(jì)算能力,GPU上的通用計(jì)算已經(jīng)變成了非?;钴S的研究和發(fā)展領(lǐng)域。在GPU上運(yùn)行的算法的性能非常依賴(lài)于它們能夠怎樣被良好地安排以適應(yīng)以及利用處理器的單指令多數(shù)據(jù)(SIMD)結(jié)構(gòu)。許多被認(rèn)為簡(jiǎn)單的用于在中央處理單元(CPU)上執(zhí)行的、例如用于統(tǒng)計(jì)目的的域值的分組和計(jì)算的任務(wù)對(duì)在GPU上的實(shí)施形成相當(dāng)大的挑戰(zhàn)。參見(jiàn)2004年出版的、Kevin Bjorke的Color Controls,GPU Gems,Addison-Wesley,第22和24章。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的算法允許在圖形卡上計(jì)算直方圖。直方圖是在理解、解釋和處理數(shù)字圖像時(shí)的關(guān)鍵因素。它們可被用于不同的目的,包括值在圖像中的范圍和分布的分析。雖然GPU目前被廣泛用于以交互速率處理和顯示圖像并且用于色彩校正和濾波的圖像處理算法已經(jīng)在GPU上被成功地實(shí)施,但完全在GPU上計(jì)算直方圖的可行方法顯得仍然難以理解。
因此,直方圖通常必須在CPU上被計(jì)算并且被傳輸給GPU。由于典型地可用的有限的傳輸帶寬,在GPU和CPU之間傳輸數(shù)據(jù)是一種昂貴的操作。通常,如果應(yīng)用程序可完全在圖形硬件上運(yùn)行,則該應(yīng)用程序僅受益于GPU性能。
依照本發(fā)明的一個(gè)方面,一種用于使用圖形處理單元(GPU)來(lái)計(jì)算直方圖的方法包括在二維(2D)紋理域內(nèi)存儲(chǔ)圖像數(shù)據(jù),將該域劃分為獨(dú)立的區(qū)域或片;在GPU中并行地計(jì)算多個(gè)片直方圖,針對(duì)每一片有一個(gè)片直方圖;以及在該GPU中并行地累加這些片直方圖,以便得到最終的圖像直方圖。
依照本發(fā)明的另一個(gè)方面,劃分該域的步驟包括將該域劃分為有均勻大小的并且獨(dú)立的區(qū)域。
依照本發(fā)明的另一個(gè)方面,計(jì)算多個(gè)片直方圖的步驟包括計(jì)算由紋理元素紋理坐標(biāo)、直方圖條的數(shù)目和該圖像數(shù)據(jù)的大小決定的紋理元素的亮度。
依照本發(fā)明的另一個(gè)方面,計(jì)算多個(gè)片直方圖的步驟包括通過(guò)使用紋理坐標(biāo)為每一紋理元素確定相應(yīng)的條。
依照本發(fā)明的另一個(gè)方面,計(jì)算多個(gè)片直方圖的步驟包括針對(duì)相應(yīng)的直方圖條,為每一紋理元素對(duì)在其附屬片中值的出現(xiàn)進(jìn)行計(jì)數(shù)。
依照本發(fā)明的另一個(gè)方面,通過(guò)使用紋理坐標(biāo)為每一紋理元素確定相應(yīng)的條的步驟包括為在各自的附屬片中具有相同的給定位置的每一紋理元素確定相同的相應(yīng)的條。
依照本發(fā)明的另一個(gè)方面,并行地累加的步驟包括應(yīng)用逐片紋理減少操作。
依照本發(fā)明的另一個(gè)方面,應(yīng)用紋理減少操作的步驟包括執(zhí)行用于將紋理尺寸減半的渲染流程(rendering pass)。
依照本發(fā)明的另一個(gè)方面,執(zhí)行用于將紋理尺寸減半的渲染流程的步驟包括對(duì)給定直方圖的第i個(gè)紋理元素和在正的紋理坐標(biāo)方向上的三個(gè)相鄰片的第i個(gè)紋理元素求和。
依照本發(fā)明的另一個(gè)方面,存儲(chǔ)圖像數(shù)據(jù)的步驟包括使用RGB和RGBA紋理中的至少一個(gè)。
依照本發(fā)明的另一個(gè)方面,存儲(chǔ)圖像數(shù)據(jù)的步驟包括使用亮度(c=1)、RGB(c=3)和RGBA(c=4)紋理中的至少一個(gè),使得具有n個(gè)條的直方圖產(chǎn)生具有sqrt(n/c)×sqrt(n/c)個(gè)紋理元素的正方形片尺寸,其中c是每個(gè)紋理元素的通道數(shù)。
依照本發(fā)明的另一個(gè)方面,一種用于使用圖形處理單元(GPU)來(lái)計(jì)算直方圖的方法包括在二維(2D)紋理域內(nèi)存儲(chǔ)圖像數(shù)據(jù);通過(guò)將該域劃分為有均勻大小的并且獨(dú)立的片來(lái)將該域劃分為獨(dú)立的區(qū)域或片;在GPU中并行地計(jì)算多個(gè)片直方圖,針對(duì)每一片有一個(gè)片直方圖,并且通過(guò)針對(duì)相應(yīng)的直方圖條為每一紋理元素對(duì)在其附屬片中值的出現(xiàn)進(jìn)行計(jì)數(shù)來(lái)通過(guò)使用紋理坐標(biāo)為每一紋理元素確定相應(yīng)的條;通過(guò)應(yīng)用紋理減少操作在該GPU中并行地累加這些片直方圖,以便得到最終的圖像直方圖,其中通過(guò)執(zhí)行用于將紋理尺寸減半的渲染流程來(lái)應(yīng)用紋理減少操作,通過(guò)對(duì)給定直方圖的第i個(gè)紋理元素和在正的紋理坐標(biāo)方向上的三個(gè)相鄰片的第i個(gè)紋理元素求和來(lái)執(zhí)行用于將紋理尺寸減半的渲染流程。
依照本發(fā)明的另一個(gè)方面,一種用于使用圖形處理單元(GPU)來(lái)計(jì)算直方圖的方法包括在二維(2D)紋理域內(nèi)存儲(chǔ)輸入數(shù)據(jù);將該域劃分為有均勻大小的區(qū);在GPU中并行地得到包括每一區(qū)的直方圖的直方圖組;以及對(duì)該直方圖組求和,以便得到最終的直方圖。
依照本發(fā)明的另一個(gè)方面,一種用于使用圖形處理單元(GPU)來(lái)計(jì)算圖像直方圖的方法包括在二維(2D)紋理域內(nèi)存儲(chǔ)圖像輸入數(shù)據(jù);將該域劃分為有均勻大小的區(qū);在GPU中并行地得到包括每一區(qū)的直方圖的圖像直方圖組;以及對(duì)該圖像直方圖組求和,以便得到最終的直方圖。
依照本發(fā)明的另一個(gè)方面,得到圖像直方圖組的步驟包括為每一紋理元素確定相應(yīng)的條。
依照本發(fā)明的另一個(gè)方面,得到圖像直方圖組的步驟包括通過(guò)使用紋理坐標(biāo)為每一紋理元素確定相應(yīng)的條。
依照本發(fā)明的另一個(gè)方面,應(yīng)用紋理減少操作的步驟包括執(zhí)行用于將紋理尺寸減半的渲染流程。
依照本發(fā)明的另一個(gè)方面,執(zhí)行用于將紋理尺寸減半的渲染流程的步驟包括對(duì)給定直方圖的第i個(gè)紋理元素求和是和在正的紋理坐標(biāo)方向上的三個(gè)相鄰片的第i個(gè)紋理元素的累加。
依照本發(fā)明的另一個(gè)方面,得到直方圖組的步驟包括應(yīng)用紋理減少操作。
依照本發(fā)明的另一個(gè)方面,應(yīng)用紋理減少操作的步驟包括在對(duì)應(yīng)于為每一紋理元素所確定的相應(yīng)的條的附屬片內(nèi),對(duì)所述附屬片的每一紋理元素中的所有計(jì)數(shù)求和,以便獲得組合的圖像直方圖。
依照本發(fā)明的另一個(gè)方面,應(yīng)用紋理減少操作的步驟包括重復(fù)紋理減少操作的步驟,以便獲得最終的圖像直方圖。
依照本發(fā)明的另一個(gè)方面,應(yīng)用紋理減少操作的步驟包括在對(duì)應(yīng)于為每一紋理元素所確定的相應(yīng)的條的附屬片內(nèi),對(duì)所述附屬片的每一紋理元素中的所有計(jì)數(shù)求和;并且對(duì)直方圖組求和,以便得到最終的圖像直方圖。
依照本發(fā)明的另一個(gè)方面,一種用于使用圖形處理單元(GPU)來(lái)計(jì)算直方圖的系統(tǒng)包括用于存儲(chǔ)程序和其他數(shù)據(jù)的存儲(chǔ)設(shè)備;與該存儲(chǔ)設(shè)備通信的處理器設(shè)備,該處理器運(yùn)行程序以便執(zhí)行將圖像數(shù)據(jù)存儲(chǔ)在二維(2D)紋理域內(nèi);將該域劃分為獨(dú)立的區(qū)域或片;在GPU中并行地計(jì)算多個(gè)片直方圖,針對(duì)每一片有一個(gè)片直方圖;以及在該GPU中并行地累加這些片直方圖,以便得到最終的圖像直方圖。
依照本發(fā)明的另一個(gè)方面,該處理器運(yùn)行程序以便執(zhí)行將該域劃分為有均勻大小的并且獨(dú)立的區(qū)域;依照本發(fā)明的另一個(gè)方面,該處理器運(yùn)行程序以便執(zhí)行計(jì)算由紋理元素紋理坐標(biāo)、直方圖條的數(shù)目和圖像數(shù)據(jù)的大小決定的紋理元素的亮度。
依照本發(fā)明的另一個(gè)方面,一種計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)可用介質(zhì),該計(jì)算機(jī)可用介質(zhì)具有被存儲(chǔ)在其上的用于使用圖形處理單元(GPU)通過(guò)以下步驟來(lái)計(jì)算直方圖的程序代碼的計(jì)算機(jī)程序邏輯在二維(2D)紋理域內(nèi)存儲(chǔ)圖像數(shù)據(jù);將該域劃分為獨(dú)立的區(qū)域或片;在GPU中并行地計(jì)算多個(gè)片直方圖,針對(duì)每一片有一個(gè)片直方圖;在該GPU中并行地累加這些片直方圖,以便得到最終的圖像直方圖。
依照本發(fā)明的另一個(gè)方面,一種用于使用圖形處理單元(GPU)來(lái)計(jì)算直方圖的方法包括將圖像數(shù)據(jù)存儲(chǔ)在二維(2D)紋理域中;將該域劃分為獨(dú)立的區(qū)域或片;在GPU中并行地計(jì)算多個(gè)片直方圖,針對(duì)每一片有一個(gè)片直方圖;以及在該GPU中并行地累加這些片直方圖,以便得到最終的圖像直方圖。
結(jié)合附圖,根據(jù)下面詳細(xì)的描述,將更全面地理解本發(fā)明,其中圖1示出依照本發(fā)明的原理的圖解模式步驟;圖2示出依照本發(fā)明的原理的圖解模式相關(guān)步驟;以及圖3以基本示意圖形式示出如在本發(fā)明的實(shí)施例中可能典型地被使用的、被耦合用于與輸入設(shè)備、輸出設(shè)備的雙向數(shù)據(jù)通信的數(shù)字處理器、GPU和用于存儲(chǔ)程序和其他數(shù)據(jù)的存儲(chǔ)設(shè)備。
具體實(shí)施例方式
依照本發(fā)明的原理,在此公開(kāi)了一種用于在著色(shader)程序中、典型地在GPU中計(jì)算直方圖的方法,如將在下文中通過(guò)示范性實(shí)施例來(lái)描述的那樣。
圖像直方圖是圖像亮度分布借助矩形(也稱(chēng)為條)的表示,矩形的寬度代表標(biāo)度分類(lèi)間隔,并且該矩形的面積與相應(yīng)的圖像亮度頻率成比例。
直方圖一般通過(guò)將不同的圖像亮度計(jì)算為相應(yīng)的條來(lái)產(chǎn)生。雖然這對(duì)于在CPU上執(zhí)行來(lái)說(shuō)是相對(duì)普通的任務(wù),但當(dāng)前的圖形處理單元的流結(jié)構(gòu)使其成為困難的任務(wù)。其原因在于GPU不允許寫(xiě)入到由輸入值決定的存儲(chǔ)單元中。也就是說(shuō),不能檢查在給定的像素處的圖像亮度,確定它應(yīng)該被添加到哪個(gè)條中,然后將它添加到該條中。另外,由于性能原因,不能使輸入值最小化到條的相應(yīng)數(shù)目并在GPU中在片斷著色程序中針對(duì)每條對(duì)整個(gè)圖像進(jìn)行采樣。
在圖形中,片斷著色程序通常被用于通過(guò)計(jì)算片斷的顏色(紅綠藍(lán))、透明度(Alpha)和(在3D圖形中)深度值來(lái)確定圖像的像素的顏色值。
依照本發(fā)明的一個(gè)實(shí)施例的原理包括下列步驟輸入數(shù)據(jù)被存儲(chǔ)在具有二維冪的二維紋理中,并且域被劃分為有均勻大小的并且獨(dú)立的區(qū)域(也稱(chēng)作區(qū)或“片(tile)”)。片尺寸依賴(lài)于直方圖粒度。通過(guò)使用典型值亮度(c=1)、RGB(c=3)或者RGBA(c=4)紋理,具有n條的直方圖產(chǎn)生具有sqrt(n/c)×sqrt(n/c)個(gè)紋理元素(texel)的正方形片尺寸,其中c是每個(gè)紋理元素的通道數(shù)。片的數(shù)目等于輸入紋理尺寸除以片尺寸。針對(duì)每一個(gè)區(qū)產(chǎn)生一個(gè)直方圖,然后區(qū)直方圖被全部累加為最終的圖像直方圖。按紋理元素計(jì)算的亮度通過(guò)其紋理坐標(biāo)和直方圖條數(shù)來(lái)確定。
利用該方案,多個(gè)局部直方圖并行地被計(jì)算。片的每一紋理元素針對(duì)特定直方圖間隔或條對(duì)值在其附屬片內(nèi)的出現(xiàn)進(jìn)行計(jì)數(shù)。相應(yīng)的條通過(guò)使用紋理坐標(biāo)來(lái)確定。因而,在針對(duì)每個(gè)紋理元素進(jìn)行單次n/4紋理拾取之后,每一片代表值在其區(qū)域內(nèi)的局部分布。為了獲得值在域內(nèi)的全局分布,所有片被組合為單個(gè)全局直方圖。通過(guò)以與Jens Krüger和Rüdiger Westermann在2003年所發(fā)表的Linear Algebra Operators for GPU Implementation of Numerical AlgorithmsACM SIGGRAPH中提出的方式類(lèi)似的方式應(yīng)用紋理減少操作來(lái)使片累加,由此該文獻(xiàn)的公開(kāi)內(nèi)容于此在其與本發(fā)明兼容的程度上被引入。
圖1示出適當(dāng)?shù)募y理減少操作,其中箭頭示出找到特定直方圖間隔或條的值的方向。
圖2示出從紋理10到紋理12的合適的紋理減少操作的步驟的示意圖。值在一片中的出現(xiàn)被計(jì)數(shù)并且被示出為在每一片的一個(gè)特定紋理元素中的畫(huà)上圓圈的數(shù)字。圓圈中的顏色標(biāo)識(shí)涉及直方圖間隔的普通值的紋理元素。片通過(guò)應(yīng)用紋理減少操作被累加為全局直方圖。例如,在圖2中,針對(duì)組10中的所有4個(gè)片,對(duì)每一片的左上部的紋理元素中的計(jì)數(shù)求和,產(chǎn)生0+2+1+2=5。然后計(jì)數(shù)5被置于下一級(jí)12的片的左上部的紋理元素位置中,并且對(duì)于每一剩余片的剩余三個(gè)紋理元素中的每一個(gè)來(lái)說(shuō)依此類(lèi)推。在下一步驟中,一個(gè)片被實(shí)現(xiàn)。圖2中的盒式顏色僅僅用于象征性地表示紋理元素具有不同值。
在每一個(gè)渲染流程的過(guò)程中,每一維中的紋理尺寸被減半。局部直方圖的第i個(gè)紋理元素與在正的紋理坐標(biāo)方向上的三個(gè)相鄰片的第i個(gè)紋理元素相加。這樣,在log(m)次之后,域的所有m×m個(gè)片被組合為最終的直方圖。因而,針對(duì)每一輸入值的昂貴的圖像查找的次數(shù)被最小化。
表1示出對(duì)于依照本發(fā)明原理的示范性實(shí)施例來(lái)說(shuō)可應(yīng)用的定義。
利用這些定義,我們得到
按紋理元素/通道計(jì)算的亮度通過(guò)其紋理坐標(biāo)(x,y)來(lái)確定I=(floor(y/h)*h+floor(x/h)*bx)為了執(zhí)行計(jì)算,片或區(qū)中的每一紋理元素在該區(qū)內(nèi)的每一次片斷程序執(zhí)行期間被采樣。相對(duì)于區(qū)的起點(diǎn)的位置通過(guò)紋理坐標(biāo)來(lái)確定Ox=floor(x/h)*hOy=floor(y/h)*h在m×m個(gè)直方圖在一個(gè)大小為s×s的緩沖器內(nèi)被產(chǎn)生之后,它們被累加為一個(gè)大小為h×h的直方圖紋理。如上所述,通過(guò)執(zhí)行如圖1和2中用圖形并且示意性所示的所謂的減少操作來(lái)實(shí)現(xiàn)累加。該減少操作以可與在前述的Krüger和Westermann的出版物中所提出的逐紋理元素減少操作比較的逐片方式執(zhí)行。
在依照本發(fā)明的原理的示范性實(shí)施例中,全部計(jì)算利用DirectX或OpenGLAPI(應(yīng)用編程接口)在GPU上被執(zhí)行。圖像數(shù)據(jù)和直方圖通過(guò)利用紋理被保存在GPU上。然后這些計(jì)算通過(guò)將正方形圖元渲染為結(jié)果紋理并執(zhí)行片斷程序中的計(jì)算來(lái)執(zhí)行。計(jì)算流程可以通過(guò)使用不同的紋理作為輸入/輸出并裝載不同的片斷程序來(lái)控制。
如將是顯而易見(jiàn)的那樣,本發(fā)明最佳地被規(guī)定為在使用和應(yīng)用圖像源設(shè)備連同被編程的數(shù)字計(jì)算機(jī)的情況下被實(shí)施。圖3以基本示意圖形式示出被耦合用于與輸入設(shè)備、輸出設(shè)備的雙向數(shù)據(jù)通信的數(shù)字處理器、圖形卡和用于存儲(chǔ)程序和其他數(shù)據(jù)的存儲(chǔ)設(shè)備。該輸入設(shè)備被這樣寬泛地指定為用于提供適當(dāng)?shù)膱D像以便依照本發(fā)明進(jìn)行處理的設(shè)備。
例如,輸入可直接地或通過(guò)存儲(chǔ)從成像設(shè)備、例如照相機(jī)、結(jié)合在CATSCAN中的設(shè)備、X光機(jī)、MRI或其他設(shè)備、或所存儲(chǔ)的圖像被施加,或通過(guò)經(jīng)由直接連接、調(diào)制紅外光束、無(wú)線電、陸線、傳真或衛(wèi)星、例如經(jīng)由萬(wàn)維網(wǎng)或因特網(wǎng)與另一計(jì)算機(jī)或設(shè)備或者任何其它適當(dāng)?shù)倪@樣的數(shù)據(jù)源的通信被施加。
輸出設(shè)備可以包括使用任何適合的裝置的計(jì)算機(jī)類(lèi)型顯示設(shè)備、例如陰極射線顯像管、等離子體顯示器、液晶顯示器等等,或者它可以包括或不包括用于再現(xiàn)圖像的設(shè)備,并且可以包括圖3的存儲(chǔ)設(shè)備或該存儲(chǔ)設(shè)備的部分,該存儲(chǔ)設(shè)備用于存儲(chǔ)圖像,該圖像用于進(jìn)一步的處理或用于觀察或評(píng)價(jià),如可能是便利的那樣,或者它可以利用包括如上面關(guān)于輸入設(shè)備所述的這種連接在內(nèi)的連接或耦合。該處理器運(yùn)行依照本發(fā)明所設(shè)置的用于執(zhí)行本發(fā)明的步驟的程序。這種被編程的計(jì)算機(jī)可以容易地通過(guò)例如陸線、無(wú)線電、因特網(wǎng)等等的通信媒介進(jìn)行連接,以便進(jìn)行圖像數(shù)據(jù)采集和傳輸。
本發(fā)明可以容易地至少部分地在軟件存儲(chǔ)設(shè)備中被實(shí)施并且以軟件產(chǎn)品的形式被打包。這可以是計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)可用介質(zhì),該計(jì)算機(jī)可用介質(zhì)具有被記錄在其上的用于執(zhí)行本發(fā)明方法的程序代碼的計(jì)算機(jī)程序邏輯。
本發(fā)明也已經(jīng)部分地通過(guò)實(shí)例利用說(shuō)明性示范性實(shí)施例被解釋。應(yīng)理解的是,通過(guò)示范性實(shí)施例的描述并不旨在進(jìn)行限制,并且雖然本發(fā)明可被廣泛地應(yīng)用,但在不失一般性的情況下通過(guò)示范性實(shí)施例來(lái)說(shuō)明其原理也是有幫助的。例如,值得注意的是,本發(fā)明的應(yīng)用也延伸到處理非圖像數(shù)據(jù)集。
也應(yīng)理解的是,本領(lǐng)域中的所屬技術(shù)人員可以進(jìn)行這里不必明確描述的各種改變和置換。這樣的改變和置換可在不背離由下述權(quán)利要求所限定的本發(fā)明的精神和范圍的情況下被作出。
權(quán)利要求
1.一種用于使用圖形處理單元(GPU)來(lái)計(jì)算直方圖的方法,包括在二維(2D)紋理域內(nèi)存儲(chǔ)圖像數(shù)據(jù);將所述域劃分為獨(dú)立的區(qū)域或片;在圖形處理單元中并行地計(jì)算多個(gè)片直方圖,針對(duì)每一片有一個(gè)片直方圖;以及在所述圖形處理單元中并行地累加所述片直方圖以便得到最終的圖像直方圖。
2.如權(quán)利要求1所述的用于計(jì)算直方圖的方法,其中所述劃分所述域的步驟包括將所述域劃分為有均勻大小的并且獨(dú)立的區(qū)域。
3.如權(quán)利要求1所述的用于計(jì)算直方圖的方法,其中所述計(jì)算多個(gè)片直方圖的步驟包括計(jì)算由紋理元素紋理坐標(biāo)、直方圖條的數(shù)目和所述圖像數(shù)據(jù)的大小決定的紋理元素的亮度。
4.如權(quán)利要求1所述的用于計(jì)算直方圖的方法,其中所述計(jì)算多個(gè)片直方圖的步驟包括通過(guò)使用紋理坐標(biāo)為每一紋理元素確定相應(yīng)的條。
5.如權(quán)利要求1所述的用于計(jì)算直方圖的方法,其中所述計(jì)算多個(gè)片直方圖的步驟包括針對(duì)所述相應(yīng)的直方圖條,為每一紋理元素對(duì)在其附屬片中值的出現(xiàn)進(jìn)行計(jì)數(shù)。
6.如權(quán)利要求4所述的用于計(jì)算直方圖的方法,其中所述通過(guò)使用紋理坐標(biāo)為每一紋理元素確定相應(yīng)的條的步驟包括為在各自的附屬片中具有相同的給定位置的每一紋理元素確定相同的相應(yīng)的條。
7.如權(quán)利要求1所述的用于計(jì)算直方圖的方法,其中所述并行地累加的步驟包括應(yīng)用逐片紋理減少操作。
8.如權(quán)利要求7所述的用于計(jì)算直方圖的方法,其中所述應(yīng)用紋理減少操作的步驟包括執(zhí)行用于將紋理尺寸減半的渲染流程。
9.如權(quán)利要求8所述的用于計(jì)算直方圖的方法,其中所述執(zhí)行用于將紋理尺寸減半的渲染流程的步驟包括對(duì)給定直方圖的第i個(gè)紋理元素和在正的紋理坐標(biāo)方向上的三個(gè)相鄰片的第i個(gè)紋理元素進(jìn)行求和。
10.如權(quán)利要求1所述的用于計(jì)算直方圖的方法,其中所述存儲(chǔ)圖像數(shù)據(jù)的步驟包括使用RGB和RGBA紋理中的至少一個(gè)。
11.如權(quán)利要求1所述的用于計(jì)算直方圖的方法,其中所述存儲(chǔ)圖像數(shù)據(jù)的步驟包括使用亮度(c=1)、RGB(c=3)或/和RGBA(c=4)紋理中的至少一個(gè),使得具有n個(gè)條的直方圖產(chǎn)生具有sqrt(n/c)x sqrt(n/c)個(gè)紋理元素的正方形片尺寸,其中c是每一紋理元素的通道數(shù)。
12.一種用于使用圖形處理單元(GPU)來(lái)計(jì)算直方圖的方法,包括在二維(2D)紋理域內(nèi)存儲(chǔ)圖像數(shù)據(jù);通過(guò)將所述域劃分為有均勻大小的并且獨(dú)立的片來(lái)將所述域劃分為獨(dú)立的區(qū)域或片;在圖形處理單元中并行地計(jì)算多個(gè)片直方圖,針對(duì)每一片有一個(gè)片直方圖,并且通過(guò)針對(duì)相應(yīng)的直方圖條為每一紋理元素對(duì)在其附屬片中值的出現(xiàn)進(jìn)行計(jì)數(shù)來(lái)通過(guò)使用紋理坐標(biāo)為每一紋理元素確定所述相應(yīng)的條;以及通過(guò)應(yīng)用紋理減少操作在所述圖形處理單元中并行地累加所述片直方圖,以便得到最終的圖像直方圖,其中通過(guò)執(zhí)行用于將紋理尺寸減半的渲染流程來(lái)應(yīng)用紋理減少操作,通過(guò)對(duì)給定直方圖的第i個(gè)紋理元素和在正的紋理坐標(biāo)方向上的三個(gè)相鄰片的第i個(gè)紋理元素求和來(lái)執(zhí)行用于將紋理尺寸減半的渲染流程。
13.一種用于使用圖形處理單元(GPU)來(lái)計(jì)算直方圖的方法,包括在二維(2D)紋理域中存儲(chǔ)輸入數(shù)據(jù);將所述域劃分為有均勻大小的區(qū);在所述圖形處理單元中并行地得到包括所述區(qū)中的每一個(gè)區(qū)的直方圖的直方圖組;以及對(duì)所述直方圖組求和,以便得到最終的直方圖。
14.如權(quán)利要求13所述的用于計(jì)算直方圖的方法,其中所述得到直方圖組的步驟包括為每一紋理元素確定相應(yīng)的條。
15.如權(quán)利要求13所述的用于計(jì)算直方圖的方法,其中所述得到直方圖組的步驟包括通過(guò)使用紋理坐標(biāo)為每一紋理元素確定相應(yīng)的條。
16.如權(quán)利要求13所述的用于計(jì)算直方圖的方法,其中所述得到直方圖組的步驟包括應(yīng)用紋理減少操作。
17.如權(quán)利要求16所述的用于計(jì)算直方圖的方法,其中所述應(yīng)用紋理減少操作的步驟包括在對(duì)應(yīng)于為所述每一紋理元素所確定的所述相應(yīng)的條的附屬片內(nèi),對(duì)所述附屬片的每一紋理元素中的所有計(jì)數(shù)求和,以便獲得組合的直方圖。
18.如權(quán)利要求17所述的用于計(jì)算直方圖的方法,其中所述應(yīng)用紋理減少操作的步驟包括重復(fù)所述紋理減少操作的步驟,以便獲得最終的直方圖。
19.如權(quán)利要求18所述的用于計(jì)算直方圖的方法,其中所述應(yīng)用紋理減少操作的步驟包括在對(duì)應(yīng)于為所述每一紋理元素所確定的所述相應(yīng)的條的附屬片內(nèi),對(duì)所述附屬片的每一紋理元素中的所有計(jì)數(shù)求和;以及對(duì)所述直方圖組求和以便得到最終的直方圖。
20.如權(quán)利要求19所述的用于計(jì)算直方圖的方法,其中所述應(yīng)用紋理減少操作的步驟包括執(zhí)行用于將紋理尺寸減半的渲染流程。
21.如權(quán)利要求20所述的用于計(jì)算直方圖的方法,其中所述執(zhí)行用于將紋理尺寸減半的渲染流程的步驟包括對(duì)給定直方圖的第i個(gè)紋理元素和在正的紋理坐標(biāo)方向上的三個(gè)相鄰片的第i個(gè)紋理元素求和。
22.一種用于使用圖形處理單元(GPU)來(lái)計(jì)算圖像直方圖的方法,包括在二維(2D)紋理域內(nèi)存儲(chǔ)圖像輸入數(shù)據(jù);將所述域劃分為有均勻大小的區(qū);在所述圖形處理單元中并行地得到包括所述區(qū)中的每一個(gè)區(qū)的直方圖的圖像直方圖組;以及對(duì)所述圖像直方圖組求和以便得到最終的直方圖。
23.如權(quán)利要求22所述的用于計(jì)算圖像直方圖的方法,其中所述得到圖像直方圖組的步驟包括為每一紋理元素確定相應(yīng)的條。
24.如權(quán)利要求22所述的用于計(jì)算圖像直方圖的方法,其中所述得到圖像直方圖組的步驟包括通過(guò)使用紋理坐標(biāo)為每一紋理元素確定相應(yīng)的條。
25.如權(quán)利要求22所述的用于計(jì)算圖像直方圖的方法,其中所述應(yīng)用紋理減少操作的步驟包括執(zhí)行用于將紋理尺寸減半的渲染流程。
26.如權(quán)利要求25所述的用于計(jì)算圖像直方圖的方法,其中所述執(zhí)行用于將紋理尺寸減半的渲染流程的步驟包括對(duì)給定直方圖的第i個(gè)紋理元素和在正的紋理坐標(biāo)方向上的三個(gè)相鄰片的第i個(gè)紋理元素求和。
27.如權(quán)利要求26所述的用于計(jì)算圖像直方圖的方法,其中所述得到直方圖組的步驟包括應(yīng)用紋理減少操作。
28.如權(quán)利要求27所述的用于計(jì)算圖像直方圖的方法,其中所述應(yīng)用紋理減少操作的步驟包括在對(duì)應(yīng)于為所述每一紋理元素所確定的所述相應(yīng)的條的附屬片內(nèi),對(duì)所述附屬片的每一紋理元素中的所有計(jì)數(shù)求和,以便獲得組合的圖像直方圖。
29.如權(quán)利要求28所述的用于計(jì)算圖像直方圖的方法,其中所述應(yīng)用紋理減少操作的步驟包括重復(fù)所述紋理減少操作的步驟,以便獲得最終的圖像直方圖。
30.如權(quán)利要求29所述的用于計(jì)算圖像直方圖的方法,其中所述應(yīng)用紋理減少操作的步驟包括在對(duì)應(yīng)于為所述每一紋理元素所確定的所述相應(yīng)的條的附屬片內(nèi),對(duì)所述附屬片的每一紋理元素中的所有計(jì)數(shù)求和;以及對(duì)所述直方圖組求和,以便得到最終的圖像直方圖。
31.一種用于使用圖形處理單元(GPU)來(lái)計(jì)算直方圖的系統(tǒng),包括用于存儲(chǔ)程序和其他數(shù)據(jù)的存儲(chǔ)裝置;和與所述存儲(chǔ)裝置通信的處理器裝置,所述處理器運(yùn)行所述程序以便執(zhí)行;在二維(2D)紋理域內(nèi)存儲(chǔ)圖像數(shù)據(jù);將所述域劃分為獨(dú)立的區(qū)域或片;在圖形處理單元中并行地計(jì)算多個(gè)片直方圖,針對(duì)每一片有一個(gè)片直方圖;以及在所述圖形處理單元中并行地累加所述片直方圖,以便得到最終的圖像直方圖。
32.依照權(quán)利要求31所述的用于計(jì)算直方圖的系統(tǒng),其中所述處理器運(yùn)行所述程序以便執(zhí)行將所述域劃分為有均勻大小的并且獨(dú)立的區(qū)域。
33.依照權(quán)利要求31所述的用于計(jì)算直方圖的系統(tǒng),其中所述處理器運(yùn)行所述程序以便執(zhí)行計(jì)算由紋理元素紋理坐標(biāo)、直方圖條的數(shù)目和所述圖像數(shù)據(jù)的大小決定的紋理元素的亮度。
34.包括計(jì)算機(jī)可用介質(zhì)的計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)可用介質(zhì)具有被記錄在其上的用于使用圖形處理單元(GPU)通過(guò)以下步驟來(lái)計(jì)算直方圖的程序代碼的計(jì)算機(jī)程序邏輯在二維(2D)紋理域中存儲(chǔ)圖像數(shù)據(jù);將所述域劃分為獨(dú)立的區(qū)域或片;在圖形處理單元中并行地計(jì)算多個(gè)片直方圖,針對(duì)每一片有一個(gè)片直方圖;以及在所述圖形處理單元中并行地累加所述片直方圖,以便得到最終的圖像直方圖。
35.如權(quán)利要求34所述的計(jì)算機(jī)程序產(chǎn)品,其中所述劃分所述域的步驟包括將所述域劃分為有均勻大小的并且獨(dú)立的區(qū)域。
36.如權(quán)利要求34所述的計(jì)算機(jī)程序產(chǎn)品,其中所述計(jì)算多個(gè)片直方圖的步驟包括計(jì)算由紋理元素紋理坐標(biāo)、直方圖條的數(shù)目和所述圖像數(shù)據(jù)的大小決定的紋理元素的亮度。
全文摘要
一種用于使用圖形處理單元(GPU)來(lái)計(jì)算直方圖的方法包括將圖像數(shù)據(jù)存儲(chǔ)在二維(2D)紋理域中;將該域劃分為獨(dú)立的區(qū)域或片;在圖形處理單元中并行地計(jì)算多個(gè)片直方圖,針對(duì)每一片有一個(gè)片直方圖;并在該圖形處理單元中并行地累加這些片直方圖,以便得到最終的圖像直方圖。
文檔編號(hào)G06T15/00GK1991902SQ20061017195
公開(kāi)日2007年7月4日 申請(qǐng)日期2006年11月14日 優(yōu)先權(quán)日2005年11月14日
發(fā)明者O·弗拉克, S·阿哈倫, M·魯森, D·克雷默斯 申請(qǐng)人:美國(guó)西門(mén)子醫(yī)療解決公司