用FPGA來加速采用OpenCL的多功能打印機圖像處理
在高性能計算、娛樂和科學計算市場,OpenCL的采用在持續(xù)增長。OpenCL的靈活性和便攜性使之成為了一個開發(fā)圖像處理應用的優(yōu)秀平臺。然而,OpenCL尚未應用到硬拷貝打印機和多功能打印機(MFP)市場。傳統(tǒng)上,打印機/MFP市場使用全定制系統(tǒng)級芯片(SoC或ASIC)、專用集成電路進行圖像處理。在本文中,我們探討了配合Altera SoC FPGA(現(xiàn)場可編程門陣列)的OpenCL在核心MFP圖像處理流水線中的應用。核心圖像處理流水線以每分鐘大于90頁信紙大小的全色RGB持續(xù)速率運行,圖像分辨率為600DPI(每英寸點數(shù)),同時采用了成本有效的FPGA器件。相比運行在嵌入式CPU上的基于C語言的軟件流水線,OpenCL流水線可實現(xiàn)至少40倍的性能提升,在高端臺式CPU上的運行改善了5倍。
本文引用地址:http://m.butianyuan.cn/article/271266.htmI.引言
歷史上,MFP和打印機廠商都是開發(fā)定制ASIC或SoC器件來執(zhí)行圖像處理操作。這些ASIC/SoC器件包括圖像流水線,用以接受來自CCD或CIS傳感器的RGB數(shù)據(jù),執(zhí)行濾波、縮小/放大、色彩空間轉換、圖像分割和半色調操作。然后,由此產生的經處理的圖像使用減色著色劑進行打印:青色、品紅、黃色和黑色。其目標是在打印副本上精確地再現(xiàn)原始文檔,而不引入視覺假像。
在底層技術(如DDR內存和USB連接)變得過時之前,ASIC/SoC器件通常有三年的有限壽命。隨著硅技術的不斷萎縮,開發(fā)一個定制ASIC/SoC所需的投資在繼續(xù)增加。一個采用雙核處理器、必要的連接、DDR3內存控制器、圖像處理、GPU、LCD控制器等的28納米SoC的設計、開發(fā)和交付需要花費超過1000萬美元的成本。
取決于許多因素,大型SoC/ASIC器件的開發(fā)周期要花18至30個月,包括新IP的數(shù)量和大小、利用以往設計的能力、設計團隊經驗和成熟的有針對性的硅技術。
打印機/MFP市場的產品周期是24到36個月的時間。打印機/MFP市場成長速度平緩,增加了以較低成本和較短開發(fā)周期提供更多功能的競爭壓力[1].
隨著ASIC/SoC開發(fā)周期接近同一時間MFP產品的生命周期,MFP/打印機廠商需要一個新的平臺來縮短開發(fā)和部署周期?;赟oC的OpenCL和FPGA的組合為解決這一難題提供了一個有趣的解決方案。
II. MFP圖像處理流水線背景
一個重要的研究機構已經在文檔圖像處理領域積累了近20年的經驗[2][3].大部分早期工作都側重于圖像處理的基礎知識,包括提供統(tǒng)一色彩的校準輸入傳感器數(shù)據(jù)、去除來自傳感器噪聲的濾波,實現(xiàn)圖像尺寸縮小或放大的縮放算法,以及實現(xiàn)使用二進制像素打印連續(xù)色調圖像數(shù)據(jù)的半色調。當前的文檔圖像處理研究和開發(fā)處于圖像分析、內容提取和數(shù)據(jù)壓縮技術領域。[4][5][6]
所有MFP文檔圖像處理產品都可執(zhí)行一系列基本功能——復印、掃描和打印。圖1用圖形說明了一臺個MFP設備的基本功能或流水線。復印和掃描的操作相類似,開始于從一個掃描設備到設備無關的彩色空間的原始RGB數(shù)據(jù)轉換。復印操作進一步處理設備無關的色彩空間圖像,并創(chuàng)建用于打印的CMYK圖像。掃描操作在設備無關的色彩空間圖像上執(zhí)行一組不同的圖像處理操作。這些操作可以包括:圖像分析、用不同頻率內容將圖像分割為多個圖像層、OCR、光學字符識別和數(shù)據(jù)壓縮。然后,所產生的圖像轉被移到任一本地存儲介質,如USB閃存驅動器或網(wǎng)絡設備。
圖1:簡化的MFP圖像處理流水線
圖字:
來自CCD或基于CIS掃描儀的RGB;分割
掃描儀接口;校準和調整;CST(RGB到Lab);濾波器;縮放R E;CST(Lab到CMYK);調整;誤差擴散;無損或有損壓縮;解壓縮調整和/或操作
來自網(wǎng)絡的PS/PCL/其他PDL;解譯;顯示列表;渲染器;位圖或字節(jié)圖;調整;半色調;無損壓縮;圖像存儲;無損解壓縮;圖像調整;引擎接口
有損解壓縮;有損壓縮;至引擎
出口處理;至網(wǎng)絡
外部接口;微觀圖像處理操作;圖像存儲;通用CPU操作;宏觀圖像處理操作
打印功能接收一個采用PDL(頁面描述語言)的編碼,或圖形顯示接口格式的文件。在采用PDL文件的情況下,MFP設備必須首先解釋文檔語言,并創(chuàng)建一個原始對象列表。渲染器捕獲這些對象,并將其轉換成數(shù)字CMYK位圖/位圖圖像。所產生的數(shù)字圖像可被進一步處理和隨意壓縮。GDI打印機不需要解釋過程,因為傳送到打印機的圖像是一個顯示對象的列表。
一旦打印或復印流水線創(chuàng)建了CMYK位圖/位圖圖像,圖像即被發(fā)送到引擎在所需介質上打印。
本文的重點是一個OpenCL MFP核心復印流水線(CCP)的開發(fā),如圖2所示。
圖2:核心復印流水線
圖字:
濾波器;縮放R E;CST(Lab到CMYK);調整;誤差擴散
圖像存儲
源圖像5100x6600x24位LAB;目標圖像5100x6600x32位CMYK
III. MFP核心復印流水線
CCP由5個內核組成:7×7濾波器;用pad/crop縮放或減小與放大;色彩空間轉換;調整和誤差擴散。我們將簡要地回顧各個算法和相關的內存需求。
A. 7×7濾波器
7×7濾波器是一個2D對稱濾波器,可降低圖像噪聲。它的每一行需要跨連續(xù)7行乘連續(xù)7個像素的49個像素的上下文(context)。MFP應用通常使用一組系數(shù)來實現(xiàn)一個平均或銳化濾波器。7×7濾波器的一般形式是:
圖3示出了該系數(shù)陣列和輸入像素陣列。系數(shù)C0 - C9足以定義一個7×7濾波器。
7×7系數(shù)陣列
7×7輸入像素陣列
圖3:7×7系數(shù)和輸入濾波器陣列
由于系數(shù)值經常重復,濾波處理可以避免重復的乘法和加法。相反,乘以相同系數(shù)的像素可首先加入,然后與濾波器系數(shù)相乘一次。圖4直觀地顯示了潛在的優(yōu)化。這個數(shù)字僅為了清晰起見,并不代表OpenCL設計。
圖4:濾波器工作矩陣
fpga相關文章:fpga是什么
三維掃描儀相關文章:三維掃描儀原理
評論