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