現(xiàn)代GPU提供了頂點(diǎn)處理器和片段處理器兩個(gè)可編程并行處理部件。在利用GPU執(zhí)行圖像處理等通用計(jì)算任務(wù)時(shí),要做的主要工作是把待求解的任務(wù)映射到GPU支持的圖形繪制流水線上。
通常的方法是把計(jì)算任務(wù)的輸入數(shù)據(jù)用頂點(diǎn)的位置、顏色、法向量等屬性或者紋理等圖形繪制要素來表達(dá),而相應(yīng)的處理算法則被分解為一系列的執(zhí)行步驟,并改寫為GPU的頂點(diǎn)處理程序或片段處理程序,然后,調(diào)用3D API執(zhí)行圖形繪制操作,調(diào)用片段程序進(jìn)行處理;最后,保存在幀緩存中的繪制結(jié)果就是算法的輸出數(shù)據(jù)。
雖然數(shù)字圖像處理算法多種多樣,具體實(shí)現(xiàn)過程也很不相同,但是在利用GPU進(jìn)行并行化處理時(shí),有一些共性的關(guān)鍵技術(shù)問題需要解決,如:數(shù)據(jù)的加載,計(jì)算結(jié)果的反饋、保存等。
下面對(duì)這些共性的問題進(jìn)行分析,并提出相應(yīng)的解決思路。
1. 數(shù)據(jù)加載
在GPU的流式編程模型中,所有的數(shù)據(jù)都必須以“流”的形式進(jìn)行加載處理,并通過抽象的3D API進(jìn)行訪問。在利用GPU進(jìn)行圖像處理時(shí),最直接有效的數(shù)據(jù)加載方法是把待處理的圖像打包為紋理,在繪制四邊形時(shí)進(jìn)行加載、處理。同時(shí)為了保證GPU上片段程序能夠逐像素的對(duì)紋理圖像進(jìn)行處理,必須將投影變換設(shè)置為正交投影,視點(diǎn)變換的視區(qū)與紋理大小相同,使得光柵化后的每個(gè)片段(fragment)和每個(gè)紋理單元(texel)一一對(duì)應(yīng)。對(duì)于圖像處理算法中的其他參數(shù),如果數(shù)據(jù)量很小,則可以直接通過接口函數(shù)進(jìn)行設(shè)置;如果參數(shù)比較多,也應(yīng)該將其打包為紋理的形式傳輸給GPU。在打包的過程中應(yīng)充分利用紋理圖像所具有的R、G、B、A四個(gè)通道。
2. 計(jì)算結(jié)果的反饋、保存
應(yīng)用程序是通過調(diào)用3D API繪制帶紋理的四邊形,激活GPU上的片段程序進(jìn)行圖像處理的,而GPU片段著色器的直接渲染輸出是一個(gè)幀緩沖區(qū),它對(duì)應(yīng)著計(jì)算機(jī)屏幕上的一個(gè)窗口,傳統(tǒng)上用來容納要顯示到屏幕的像素,但是在GPU流式計(jì)算中可以用來保存計(jì)算結(jié)果。雖然CPU可以通過3D API直接讀寫這個(gè)幀緩沖區(qū),將渲染處理的結(jié)果從幀緩存中復(fù)制到系統(tǒng)內(nèi)存進(jìn)行保存,但是幀緩存的大小受窗口大小限制,而且由于AGP總線的帶寬限制(2.1GB/s),從顯存到系統(tǒng)
鏡像變換 GPU 渲染主要包括以下幾個(gè)步驟:
設(shè)置 1 個(gè)輸入紋理;
對(duì)輸入紋理進(jìn)行紋理采樣;
設(shè)置變換矩陣;
在頂點(diǎn)著色器中,將輸入頂點(diǎn)與變換矩陣相乘;
輸出圖像數(shù)據(jù);
審核編輯:湯梓紅
-
處理器
+關(guān)注
關(guān)注
68文章
19432瀏覽量
231282 -
gpu
+關(guān)注
關(guān)注
28文章
4783瀏覽量
129395 -
圖像處理
+關(guān)注
關(guān)注
27文章
1302瀏覽量
56906 -
編程
+關(guān)注
關(guān)注
88文章
3638瀏覽量
94022 -
數(shù)據(jù)加載
+關(guān)注
關(guān)注
0文章
6瀏覽量
6303
原文標(biāo)題:GPU圖像處理的基本流程
文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
FPGA設(shè)計(jì)經(jīng)驗(yàn)之圖像處理
GPU
基于GPU/CPU的流程序多粒度劃分與調(diào)度
基于GPU的數(shù)字圖像并行處理研究
![基于<b class='flag-5'>GPU</b>的數(shù)字<b class='flag-5'>圖像</b>并行<b class='flag-5'>處理</b>研究](https://file1.elecfans.com//web2/M00/A7/00/wKgZomUMQbyAUENhAAAQokh1gBE802.jpg)
基于GPU加速的醫(yī)學(xué)圖像配準(zhǔn)技術(shù)
![基于<b class='flag-5'>GPU</b>加速的醫(yī)學(xué)<b class='flag-5'>圖像</b>配準(zhǔn)技術(shù)](https://file.elecfans.com/web2/M00/49/88/poYBAGKhwMOAU9vdAAAjJ4RKb3s068.jpg)
GPU原理 GPU渲染流程
![<b class='flag-5'>GPU</b>原理 <b class='flag-5'>GPU</b>渲染<b class='flag-5'>流程</b>](https://file.elecfans.com/web1/M00/4F/C1/o4YBAFrinmeAEjNXAAAld3k6wQA234.png)
GPU的原理渲染流程詳細(xì)說明
![<b class='flag-5'>GPU</b>的原理渲染<b class='flag-5'>流程</b>詳細(xì)說明](https://file.elecfans.com/web1/M00/D6/D6/o4YBAF_liJOAH1WVAAF1hM5xuqc105.png)
GPU的原理和渲染流程詳細(xì)說明
解密GPU工作流程 | 從數(shù)據(jù)到圖像
![解密<b class='flag-5'>GPU</b>工作<b class='flag-5'>流程</b> | 從數(shù)據(jù)到<b class='flag-5'>圖像</b>](https://file.elecfans.com/web2/M00/4E/DC/poYBAGLCjeiALm_WAAAYmfR7Qec474.png)
相機(jī)圖像信號(hào)處理流程(ISP)介紹
![相機(jī)<b class='flag-5'>圖像</b>信號(hào)<b class='flag-5'>處理</b><b class='flag-5'>流程</b>(ISP)介紹](https://file1.elecfans.com/web2/M00/B3/90/wKgaomVzyPmATRSzAAAp1eA2CKg775.png)
評(píng)論