新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 用FPGA來加速采用OpenCL的多功能打印機圖像處理

用FPGA來加速采用OpenCL的多功能打印機圖像處理

作者: 時間:2015-04-08 來源:網(wǎng)絡 收藏

  圖字:

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

  M每頁掃描線

  N每掃描線像素

  像素;減少的濾波矩陣;有相同顏色的條目分享共同系數(shù)

  工作矩陣對稱濾波器計算的高度概括,針對左到右滑動進行了優(yōu)化,包括:

  1.針對每一個加載的新的像素欄3種加法A

  2.針對屬于圖4所示4×7矩陣中相同濾波器系數(shù)像素的18種加法

  3.針對每個系數(shù)一個C0至C9的10種乘法M

  4.計算系數(shù)乘法最終結果的9種加法

  那么,計算的總數(shù)是10M + 3A + 18A + 9A = 10M + 30A.圖5示出了計算樹。

  

 

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

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

  B.縮放

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

  

 

  圖6:雙線性插值

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

  輸出像素OP1,1可以用下面的公式來計算:

  

 

  C.色彩空間轉換

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

  顧名思義,四面體插值法使用4個已知點來計算一個中間點。在我們的L*a*b*情況下,這些已知點的每一個都具有對應于輸入色彩空間的三個維度。三個輸入維度L、a、b形成一個我們可以用來確定輸出像素的立方體。圖7示出了色彩空間和LUT概念。注意每個輸出彩色平面都有獨立的LUT.

  

 

  圖7:CMYK LUT和單位正方體

  圖字:

  第一張圖:

  L*a*b*色彩空間

  下方注解:

  對于每24位輸入L*a*b*像素,可能有224個32位CMYK輸出像素。這相當于64MB LUT!

  第二張圖:

  青色點陣

  單位立方體

  格點——憑經驗測量

  感興趣的像

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

  每彩色平面有各自的LUT

  每個LUT有代表點陣點的4096個條目

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

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

  

 

  圖8:CST四面體

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

  

 

  圖9:CST四面體5分解圖

濾波器相關文章:濾波器原理


fpga相關文章:fpga是什么


c語言相關文章:c語言教程


濾波器相關文章:濾波器原理


三維掃描儀相關文章:三維掃描儀原理


關鍵詞: FPGA OpenCL

評論


相關推薦

技術專區(qū)

關閉