新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 用FPGA來(lái)加速采用OpenCL的多功能打印機(jī)圖像處理

用FPGA來(lái)加速采用OpenCL的多功能打印機(jī)圖像處理

作者: 時(shí)間:2015-03-19 來(lái)源:網(wǎng)絡(luò) 收藏

  圖字:

本文引用地址:http://m.butianyuan.cn/article/271266.htm

  M每頁(yè)掃描線

  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ì)算樹(shù)。

  

 

  圖5:濾波算法的圖形表示

  隨著濾波器在圖像上從左至右的滑動(dòng),僅需要加載最右側(cè)像素列,即7個(gè)像素。邏輯上,這涉及將內(nèi)部像素列移到左邊,并在右側(cè)加上新的像素列。

  B.縮放

  縮放模塊使用雙線性插值來(lái)減小和/或放大一幅圖像。雙線性插值是一個(gè)眾所周知的算法,在所需的新輸出像素周圍使用了4個(gè)輸入像素。圖6示出了要測(cè)試像素的雙線性插值輸入和輸出網(wǎng)格。

  

 

  圖6:雙線性插值

  圖字:輸入網(wǎng)格;輸出網(wǎng)格;輸入像素;輸出像素

  輸出像素OP1,1可以用下面的公式來(lái)計(jì)算:

  

 

  C.色彩空間轉(zhuǎn)換

  CCP采用設(shè)備無(wú)關(guān)的色彩空間數(shù)據(jù),通常是LAB格式,并將其轉(zhuǎn)換為設(shè)備相關(guān)的CMYK色彩空間。不幸的是,沒(méi)有公式化的方法來(lái)直接轉(zhuǎn)換L*a*b*至CMYK.每臺(tái)打印機(jī)的著色劑以非線性方式進(jìn)行交互。打印行業(yè)的公認(rèn)方法是打印測(cè)試斑點(diǎn),測(cè)量所得色,并創(chuàng)建一組C、M、Y和K查找表,即LUT.關(guān)鍵是要盡量減少LUT的大小,同時(shí)提供最高的色彩保真度。為了計(jì)算這些存儲(chǔ)在LUT之間的值,我們必須使用一個(gè)插值方案。有許多方法來(lái)執(zhí)行插值,但四面體插值法被廣泛認(rèn)為是最準(zhǔn)確的。

  顧名思義,四面體插值法使用4個(gè)已知點(diǎn)來(lái)計(jì)算一個(gè)中間點(diǎn)。在我們的L*a*b*情況下,這些已知點(diǎn)的每一個(gè)都具有對(duì)應(yīng)于輸入色彩空間的三個(gè)維度。三個(gè)輸入維度L、a、b形成一個(gè)我們可以用來(lái)確定輸出像素的立方體。圖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)測(cè)量

  感興趣的像

  要使LUT大小降低到一個(gè)合理水平,我們可執(zhí)行以下操作:

  每彩色平面有各自的LUT

  每個(gè)LUT有代表點(diǎn)陣點(diǎn)的4096個(gè)條目

  算法首先發(fā)現(xiàn)期望像素點(diǎn)駐留的單位立方體

  一旦算法確定了哪一個(gè)單位立方體包含要測(cè)試的輸出像素,我們必須從一組8個(gè)已知像素中計(jì)算出輸出像素。這是三線性插值的實(shí)際情形。四面體插值法利用一個(gè)單位立方體可以被劃分成一組6個(gè)非重疊四面體的方法,其每個(gè)終點(diǎn)都位于單位立方體的頂點(diǎn)。使用一個(gè)四面體(有4個(gè)點(diǎn))內(nèi)插來(lái)削減一半像素?cái)?shù)時(shí),我們必須使用插值結(jié)果。圖8以圖形示出了六個(gè)四面體。

  

 

  圖8:CST四面體

  CST算法首先確定了輸出像素(P)駐留在哪個(gè)四面體中,并使用了4個(gè)已知輸出像素插入最終結(jié)果——見(jiàn)圖7.圖9示出了四面體5中的像素P.該算法計(jì)算了每個(gè)單位立方體軸端點(diǎn)和像素dx、dy、dz之間的距離,并使用了已知點(diǎn)之間的線性插值距離。

  

 

  圖9:CST四面體5分解圖

fpga相關(guān)文章:fpga是什么


三維掃描儀相關(guān)文章:三維掃描儀原理


關(guān)鍵詞: FPGA OpenCL

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉