用FPGA來加速采用OpenCL的多功能打印機(jī)圖像處理
圖字:
本文引用地址:http://butianyuan.cn/article/271266.htmM每頁掃描線
N每掃描線像素
像素;減少的濾波矩陣;有相同顏色的條目分享共同系數(shù)
工作矩陣對(duì)稱濾波器計(jì)算的高度概括,針對(duì)左到右滑動(dòng)進(jìn)行了優(yōu)化,包括:
1.針對(duì)每一個(gè)加載的新的像素欄3種加法A
2.針對(duì)屬于圖4所示4×7矩陣中相同濾波器系數(shù)像素的18種加法
3.針對(duì)每個(gè)系數(shù)一個(gè)C0至C9的10種乘法M
4.計(jì)算系數(shù)乘法最終結(jié)果的9種加法
那么,計(jì)算的總數(shù)是10M + 3A + 18A + 9A = 10M + 30A.圖5示出了計(jì)算樹。
圖5:濾波算法的圖形表示
隨著濾波器在圖像上從左至右的滑動(dòng),僅需要加載最右側(cè)像素列,即7個(gè)像素。邏輯上,這涉及將內(nèi)部像素列移到左邊,并在右側(cè)加上新的像素列。
B.縮放
縮放模塊使用雙線性插值來減小和/或放大一幅圖像。雙線性插值是一個(gè)眾所周知的算法,在所需的新輸出像素周圍使用了4個(gè)輸入像素。圖6示出了要測試像素的雙線性插值輸入和輸出網(wǎng)格。
圖6:雙線性插值
圖字:輸入網(wǎng)格;輸出網(wǎng)格;輸入像素;輸出像素
輸出像素OP1,1可以用下面的公式來計(jì)算:
C.色彩空間轉(zhuǎn)換
CCP采用設(shè)備無關(guān)的色彩空間數(shù)據(jù),通常是LAB格式,并將其轉(zhuǎn)換為設(shè)備相關(guān)的CMYK色彩空間。不幸的是,沒有公式化的方法來直接轉(zhuǎn)換L*a*b*至CMYK.每臺(tái)打印機(jī)的著色劑以非線性方式進(jìn)行交互。打印行業(yè)的公認(rèn)方法是打印測試斑點(diǎn),測量所得色,并創(chuàng)建一組C、M、Y和K查找表,即LUT.關(guān)鍵是要盡量減少LUT的大小,同時(shí)提供最高的色彩保真度。為了計(jì)算這些存儲(chǔ)在LUT之間的值,我們必須使用一個(gè)插值方案。有許多方法來執(zhí)行插值,但四面體插值法被廣泛認(rèn)為是最準(zhǔn)確的。
顧名思義,四面體插值法使用4個(gè)已知點(diǎn)來計(jì)算一個(gè)中間點(diǎn)。在我們的L*a*b*情況下,這些已知點(diǎn)的每一個(gè)都具有對(duì)應(yīng)于輸入色彩空間的三個(gè)維度。三個(gè)輸入維度L、a、b形成一個(gè)我們可以用來確定輸出像素的立方體。圖7示出了色彩空間和LUT概念。注意每個(gè)輸出彩色平面都有獨(dú)立的LUT.
圖7:CMYK LUT和單位正方體
圖字:
第一張圖:
L*a*b*色彩空間
下方注解:
對(duì)于每24位輸入L*a*b*像素,可能有224個(gè)32位CMYK輸出像素。這相當(dāng)于64MB LUT!
第二張圖:
青色點(diǎn)陣
單位立方體
格點(diǎn)——憑經(jīng)驗(yàn)測量
感興趣的像
要使LUT大小降低到一個(gè)合理水平,我們可執(zhí)行以下操作:
每彩色平面有各自的LUT
每個(gè)LUT有代表點(diǎn)陣點(diǎn)的4096個(gè)條目
算法首先發(fā)現(xiàn)期望像素點(diǎn)駐留的單位立方體
一旦算法確定了哪一個(gè)單位立方體包含要測試的輸出像素,我們必須從一組8個(gè)已知像素中計(jì)算出輸出像素。這是三線性插值的實(shí)際情形。四面體插值法利用一個(gè)單位立方體可以被劃分成一組6個(gè)非重疊四面體的方法,其每個(gè)終點(diǎn)都位于單位立方體的頂點(diǎn)。使用一個(gè)四面體(有4個(gè)點(diǎn))內(nèi)插來削減一半像素?cái)?shù)時(shí),我們必須使用插值結(jié)果。圖8以圖形示出了六個(gè)四面體。
圖8:CST四面體
CST算法首先確定了輸出像素(P)駐留在哪個(gè)四面體中,并使用了4個(gè)已知輸出像素插入最終結(jié)果——見圖7.圖9示出了四面體5中的像素P.該算法計(jì)算了每個(gè)單位立方體軸端點(diǎn)和像素dx、dy、dz之間的距離,并使用了已知點(diǎn)之間的線性插值距離。
圖9:CST四面體5分解圖
fpga相關(guān)文章:fpga是什么
三維掃描儀相關(guān)文章:三維掃描儀原理
評(píng)論