用FPGA來(lái)加速采用OpenCL的多功能打印機圖像處理
在高性能計算、娛樂(lè )和科學(xué)計算市場(chǎng),OpenCL的采用在持續增長(cháng)。OpenCL的靈活性和便攜性使之成為了一個(gè)開(kāi)發(fā)圖像處理應用的優(yōu)秀平臺。然而,OpenCL尚未應用到硬拷貝打印機和多功能打印機(MFP)市場(chǎng)。傳統上,打印機/MFP市場(chǎng)使用全定制系統級芯片(SoC或ASIC)、專(zhuān)用集成電路進(jìn)行圖像處理。在本文中,我們探討了配合Altera SoC FPGA(現場(chǎng)可編程門(mén)陣列)的OpenCL在核心MFP圖像處理流水線(xiàn)中的應用。核心圖像處理流水線(xiàn)以每分鐘大于90頁(yè)信紙大小的全色RGB持續速率運行,圖像分辨率為600DPI(每英寸點(diǎn)數),同時(shí)采用了成本有效的FPGA器件。相比運行在嵌入式CPU上的基于C語(yǔ)言的軟件流水線(xiàn),OpenCL流水線(xiàn)可實(shí)現至少40倍的性能提升,在高端臺式CPU上的運行改善了5倍。
本文引用地址:http://dyxdggzs.com/article/272203.htmI.引言
歷史上,MFP和打印機廠(chǎng)商都是開(kāi)發(fā)定制ASIC或SoC器件來(lái)執行圖像處理操作。這些ASIC/SoC器件包括圖像流水線(xiàn),用以接受來(lái)自CCD或CIS傳感器的RGB數據,執行濾波、縮小/放大、色彩空間轉換、圖像分割和半色調操作。然后,由此產(chǎn)生的經(jīng)處理的圖像使用減色著(zhù)色劑進(jìn)行打?。呵嗌?、品紅、黃色和黑色。其目標是在打印副本上精確地再現原始文檔,而不引入視覺(jué)假像。
在底層技術(shù)(如DDR內存和USB連接)變得過(guò)時(shí)之前,ASIC/SoC器件通常有三年的有限壽命。隨著(zhù)硅技術(shù)的不斷萎縮,開(kāi)發(fā)一個(gè)定制ASIC/SoC所需的投資在繼續增加。一個(gè)采用雙核處理器、必要的連接、DDR3內存控制器、圖像處理、GPU、LCD控制器等的28納米SoC的設計、開(kāi)發(fā)和交付需要花費超過(guò)1000萬(wàn)美元的成本。
取決于許多因素,大型SoC/ASIC器件的開(kāi)發(fā)周期要花18至30個(gè)月,包括新IP的數量和大小、利用以往設計的能力、設計團隊經(jīng)驗和成熟的有針對性的硅技術(shù)。
打印機/MFP市場(chǎng)的產(chǎn)品周期是24到36個(gè)月的時(shí)間。打印機/MFP市場(chǎng)成長(cháng)速度平緩,增加了以較低成本和較短開(kāi)發(fā)周期提供更多功能的競爭壓力[1].
隨著(zhù)ASIC/SoC開(kāi)發(fā)周期接近同一時(shí)間MFP產(chǎn)品的生命周期,MFP/打印機廠(chǎng)商需要一個(gè)新的平臺來(lái)縮短開(kāi)發(fā)和部署周期?;赟oC的OpenCL和FPGA的組合為解決這一難題提供了一個(gè)有趣的解決方案。
II. MFP圖像處理流水線(xiàn)背景
一個(gè)重要的研究機構已經(jīng)在文檔圖像處理領(lǐng)域積累了近20年的經(jīng)驗[2][3].大部分早期工作都側重于圖像處理的基礎知識,包括提供統一色彩的校準輸入傳感器數據、去除來(lái)自傳感器噪聲的濾波,實(shí)現圖像尺寸縮小或放大的縮放算法,以及實(shí)現使用二進(jìn)制像素打印連續色調圖像數據的半色調。當前的文檔圖像處理研究和開(kāi)發(fā)處于圖像分析、內容提取和數據壓縮技術(shù)領(lǐng)域。[4][5][6]
所有MFP文檔圖像處理產(chǎn)品都可執行一系列基本功能——復印、掃描和打印。圖1用圖形說(shuō)明了一臺個(gè)MFP設備的基本功能或流水線(xiàn)。復印和掃描的操作相類(lèi)似,開(kāi)始于從一個(gè)掃描設備到設備無(wú)關(guān)的彩色空間的原始RGB數據轉換。復印操作進(jìn)一步處理設備無(wú)關(guān)的色彩空間圖像,并創(chuàng )建用于打印的CMYK圖像。掃描操作在設備無(wú)關(guān)的色彩空間圖像上執行一組不同的圖像處理操作。這些操作可以包括:圖像分析、用不同頻率內容將圖像分割為多個(gè)圖像層、OCR、光學(xué)字符識別和數據壓縮。然后,所產(chǎn)生的圖像轉被移到任一本地存儲介質(zhì),如USB閃存驅動(dòng)器或網(wǎng)絡(luò )設備。

圖1:簡(jiǎn)化的MFP圖像處理流水線(xiàn)
圖字:
來(lái)自CCD或基于CIS掃描儀的RGB;分割
掃描儀接口;校準和調整;CST(RGB到Lab);濾波器;縮放R E;CST(Lab到CMYK);調整;誤差擴散;無(wú)損或有損壓縮;解壓縮調整和/或操作
來(lái)自網(wǎng)絡(luò )的PS/PCL/其他PDL;解譯;顯示列表;渲染器;位圖或字節圖;調整;半色調;無(wú)損壓縮;圖像存儲;無(wú)損解壓縮;圖像調整;引擎接口
有損解壓縮;有損壓縮;至引擎
出口處理;至網(wǎng)絡(luò )
外部接口;微觀(guān)圖像處理操作;圖像存儲;通用CPU操作;宏觀(guān)圖像處理操作
打印功能接收一個(gè)采用PDL(頁(yè)面描述語(yǔ)言)的編碼,或圖形顯示接口格式的文件。在采用PDL文件的情況下,MFP設備必須首先解釋文檔語(yǔ)言,并創(chuàng )建一個(gè)原始對象列表。渲染器捕獲這些對象,并將其轉換成數字CMYK位圖/位圖圖像。所產(chǎn)生的數字圖像可被進(jìn)一步處理和隨意壓縮。GDI打印機不需要解釋過(guò)程,因為傳送到打印機的圖像是一個(gè)顯示對象的列表。
一旦打印或復印流水線(xiàn)創(chuàng )建了CMYK位圖/位圖圖像,圖像即被發(fā)送到引擎在所需介質(zhì)上打印。
本文的重點(diǎn)是一個(gè)OpenCL MFP核心復印流水線(xiàn)(CCP)的開(kāi)發(fā),如圖2所示。

圖2:核心復印流水線(xiàn)
圖字:
濾波器;縮放R E;CST(Lab到CMYK);調整;誤差擴散
圖像存儲
源圖像5100x6600x24位LAB;目標圖像5100x6600x32位CMYK
III. MFP核心復印流水線(xiàn)
CCP由5個(gè)內核組成:7×7濾波器;用pad/crop縮放或減小與放大;色彩空間轉換;調整和誤差擴散。我們將簡(jiǎn)要地回顧各個(gè)算法和相關(guān)的內存需求。
A. 7×7濾波器
7×7濾波器是一個(gè)2D對稱(chēng)濾波器,可降低圖像噪聲。它的每一行需要跨連續7行乘連續7個(gè)像素的49個(gè)像素的上下文(context)。MFP應用通常使用一組系數來(lái)實(shí)現一個(gè)平均或銳化濾波器。7×7濾波器的一般形式是:

圖3示出了該系數陣列和輸入像素陣列。系數C0 - C9足以定義一個(gè)7×7濾波器。

7×7系數陣列

7×7輸入像素陣列
圖3:7×7系數和輸入濾波器陣列
由于系數值經(jīng)常重復,濾波處理可以避免重復的乘法和加法。相反,乘以相同系數的像素可首先加入,然后與濾波器系數相乘一次。圖4直觀(guān)地顯示了潛在的優(yōu)化。這個(gè)數字僅為了清晰起見(jiàn),并不代表OpenCL設計。

圖4:濾波器工作矩陣
濾波器相關(guān)文章:濾波器原理
fpga相關(guān)文章:fpga是什么
c語(yǔ)言相關(guān)文章:c語(yǔ)言教程
濾波器相關(guān)文章:濾波器原理
三維掃描儀相關(guān)文章:三維掃描儀原理
評論