Board logo

标题: 用FPGA来加速采用OpenCL的多功能打印机图像处理 [打印本页]

作者: 520503    时间: 2015-3-22 22:45     标题: 用FPGA来加速采用OpenCL的多功能打印机图像处理

关键字:专用集成电路(ASIC)   现场可编程门阵列(FPGA)   开放计算语言(OpenCL)   图像处理流水线   多功能打印机  



摘要:在高性能计算、娱乐和科学计算市场,OpenCL的采用在持续增长。OpenCL的灵活性和便携性使之成为了一个开发图像处理应用的优秀平台。然而,OpenCL尚未应用到硬拷贝打印机和多功能打印机(MFP)市场。传统上,打印机/MFP市场使用全定制系统级芯片(SoC或ASIC)、专用集成电路进行图像处理。在本文中,我们探讨了配合Altera SoC FPGA(现场可编程门阵列)的OpenCL在核心MFP图像处理流水线中的应用。核心图像处理流水线以每分钟大于90页信纸大小的全色RGB持续速率运行,图像分辨率为600DPI(每英寸点数),同时采用了成本有效的FPGA器件。相比运行在嵌入式CPU上的基于C语言的软件流水线,OpenCL流水线可实现至少40倍的性能提升,在高端台式CPU上的运行改善了5倍。
I. 引言

历史上,MFP和打印机厂商都是开发定制ASIC或SoC器件来执行图像处理操作。这些ASIC/SoC器件包括图像流水线,用以接受来自CCD或CIS传感器的RGB数据,执行滤波、缩小/放大、色彩空间转换、图像分割和半色调操作。然后,由此产生的经处理的图像使用减色着色剂进行打印:青色、品红、黄色和黑色。其目标是在打印副本上精确地再现原始文档,而不引入视觉假像。

在底层技术(如DDR内存和USB连接)变得过时之前,ASIC/SoC器件通常有三年的有限寿命。随着硅技术的不断萎缩,开发一个定制ASIC/SoC所需的投资在继续增加。一个采用双核处理器、必要的连接、DDR3内存控制器、图像处理、GPU、LCD控制器等的28纳米SoC的设计、开发和交付需要花费超过1000万美元的成本。

取决于许多因素,大型SoC/ASIC器件的开发周期要花18至30个月,包括新IP的数量和大小、利用以往设计的能力、设计团队经验和成熟的有针对性的硅技术。

打印机/MFP市场的产品周期是24到36个月的时间。打印机/MFP市场成长速度平缓,增加了以较低成本和较短开发周期提供更多功能的竞争压力[1]。

随着ASIC/SoC开发周期接近同一时间MFP产品的生命周期,MFP/打印机厂商需要一个新的平台来缩短开发和部署周期。基于SoC的OpenCL和FPGA的组合为解决这一难题提供了一个有趣的解决方案。

II. MFP图像处理流水线背景

一个重要的研究机构已经在文档图像处理领域积累了近20年的经验[2][3]。大部分早期工作都侧重于图像处理的基础知识,包括提供统一色彩的校准输入传感器数据、去除来自传感器噪声的滤波,实现图像尺寸缩小或放大的缩放算法,以及实现使用二进制像素打印连续色调图像数据的半色调。当前的文档图像处理研究和开发处于图像分析、内容提取和数据压缩技术领域。[4][5][6]

所有MFP文档图像处理产品都可执行一系列基本功能——复印、扫描和打印。图1用图形说明了一台个MFP设备的基本功能或流水线。复印和扫描的操作相类似,开始于从一个扫描设备到设备无关的彩色空间的原始RGB数据转换。复印操作进一步处理设备无关的色彩空间图像,并创建用于打印的CMYK图像。扫描操作在设备无关的色彩空间图像上执行一组不同的图像处理操作。这些操作可以包括:图像分析、用不同频率内容将图像分割为多个图像层、OCR、光学字符识别和数据压缩。然后,所产生的图像转被移到任一本地存储介质,如USB闪存驱动器或网络设备。



图1:简化的MFP图像处理流水线



图字:
来自CCD或基于CIS扫描仪的RGB;分割
扫描仪接口;校准和调整;CST(RGB到Lab);滤波器;缩放R & E;CST(Lab到CMYK);调整;误差扩散;无损或有损压缩;解压缩调整和/或操作
来自网络的PS/PCL/其他PDL;解译;显示列表;渲染器;位图或字节图;调整;半色调;无损压缩;图像存储;无损解压缩;图像调整;引擎接口
有损解压缩;有损压缩;至引擎
出口处理;至网络

外部接口;微观图像处理操作;图像存储;通用CPU操作;宏观图像处理操作

打印功能接收一个采用PDL(页面描述语言)的编码,或图形显示接口格式的文件。在采用PDL文件的情况下,MFP设备必须首先解释文档语言,并创建一个原始对象列表。渲染器捕获这些对象,并将其转换成数字CMYK位图/位图图像。所产生的数字图像可被进一步处理和随意压缩。GDI打印机不需要解释过程,因为传送到打印机的图像是一个显示对象的列表。

一旦打印或复印流水线创建了CMYK位图/位图图像,图像即被发送到引擎在所需介质上打印。

本文的重点是一个OpenCL MFP核心复印流水线(CCP)的开发,如图2所示。



图2:核心复印流水线


图字:
滤波器;缩放R & E;CST(Lab到CMYK);调整;误差扩散
图像存储
源图像5100x6600x24位LAB;目标图像5100x6600x32位CMYKVII. 扩展和增强
A. 扩展CCP到整个系统
下一步骤是采用CCP并将其连接到数据输入的扫描装置和数据输出的打印装置。这将需要增加一个校准内核和简单的CST将RGB转换为L*a*b*。根据在扫描设备中使用的传感器阵列类型,即电荷耦合器件或接触式图像传感器,红、绿和蓝行数据可能无法在垂直方向对准。行数据的对准可能需要几十行缓冲区,这在FPGA内存资源方面是非常昂贵的。为了缓解这一问题,原始RGB数据将使用DMA暂时保存在HPS内存中。然后,红、绿、蓝、行数据的对准可以使用DMA指针和偏移来完成。然后校准对准的RGB数据,并通过通道传递到基本CST内核。

基本CST内核将依次使用通道直接将数据传递到滤波器输入模块。我们的期望是,这些额外内核将适合未使用的逻辑和内存资源。图22显示了完整的复印流水线。请注意,除了有全扫描仪接口的CCP,分割、无损压缩模块和引擎级都不适合Cyclone V SoC器件。完整的图像路径将需要更大型的FPGA。

B. ARM内核和NEON协处理
除了FPGA架构和OpenCL,Altera SoC系列器件还采用了双核ARM Cortex A9内核和NEON协处理器。图像处理流水线的某些模块可以卸载到CPU。在分割操作和完成压缩/解压缩功能的特定部分可以使用NEON提供的有SIMD加速的CPU来完成。

C. 动态FPGA可重编程性
Altera SoC FPGA提供的动态重新配置允许用户重新编程FPGA架构,同时CPU运算继续运行。这个特点在MFP中特别有用,而其中的一些操作永远不可能同时发生。例如,扫描和复印操作共享6个共同输入功能,如图22所示。其余的复印操作、CST压缩,以及剩下的扫描输入功能、JPEG压缩将永远不会同时运行。因此,我们可以创建两套内核,其中包括共同的扫描仪功能和多种后端功能。这些流水线可以在给定所需时间基于MFP操作来动态加载。在一个传统ASIC中,这些模块和数据通路都必须包括在内。动态图像路径的重新配置可以实现更小的FPGA,从而实现更低成本的图像路径。

D. Arria V和Arria 10 SoC
Altera的Arria V和最近发布的Arria10 SoC为功能齐全的MFP图像路径解决方案提供了一个可扩展平台。增加的内存、更快的时钟速度,加上更高性能ARM内核的大型FPGA架构为图像处理和一般计算要求提供了完整解决方案。



图22:完整的复印和扫描流水线


图字:

复印流水线
来自CCD或基于CIS扫描仪的RGB;分割;图像内存;无损解压缩;图像调整;引擎接口
扫描仪接口;校准和调整;CST(RGB到Lab);滤波器;缩放R & E;CST(Lab到CMYK);调整;误差扩散;无损压缩;至引擎

扫描出口流水线
来自CCD或基于CIS扫描仪的RGB;分割;图像内存;JGEG解压缩;至网络
扫描仪接口;校准和调整;CST(RGB到Lab);滤波器;缩放R & E;JGEG压缩;JGEG压缩;出口处理;无损压缩
通用内核/模块;流水线特定内核/模块

VIII. 总结和结论

OpenCL和Altera的工具链有助于2名全职OpenCL软件工程师、1名全职硬件工程师和其他兼职人员的一个小型团队在约4.5个月内实现CCP。团队可从C语言算法开始,创建一个高水平的基于C语言的CCP图像流水线,将算法移植到OpenCL,在x86平台上测试OpenCL以验证基本功能,增加厂商特定扩展,学会Altera OpenCL工具流程,最后在Altera的参考平台上测试结果。团队还可开发一个测试环境来验证位级别OpenCL结果的正确性。此外,团队可创建一个基于Web的应用,允许用户选择源图像,通过一个基于C语言的CCP和OpenCL加速的CCP运行图像,显示半色调图像,并提供计时结果。软件工程师可以没有以往的FPGA经验,硬件工程师也可以没有以往的OpenCL经验。

这种新模式演示了一个小型团队如何可以快速从一组算法到全面功能,优化以硬件实现的流水线。大约50%的开发时间专注于优化,包括最大限度地提高性能和最大限度地减少FPGA资源利用。该团队预计,后续项目开发时间可减少50%。

MFP厂商不再需要投入数百万美元和多年时间来开发ASIC或SoC。OpenCL和Altera SoC器件提供了一种在最短时间内实现高性能、低成本MFP控制器的新模式。

IX. 参考文献
[1] 全球季度硬拷贝设备跟踪,2013年8月,国际数据公司,美国马萨诸塞州弗雷明汉
[2] Rafael C. Gonzalez,数字图像处理(第3版),Prentice Hall,2007年
[3] Ted Dillard,彩色流水线:控制数码彩色革命路径(A Lark Photography Book)平装,Sterling,2009年
[4] 多种办公应用的高性价比图像路径,Xing Li,Ramesh Nagarajan,Clara Cuciurean-Zapan,Francis Tse。(2012年3月6日)美国专利8,130,389
[5] R. L. Queiroz,“扫描图像MRC多层的预处理,”IEEE ICIP 2006,3093-3096页,2006年10月
[6] 混合光栅内容(MRC)图像数据的压缩,Xing Li,Ramesh Nagarajan,Ammal Z. Malik。(2007年3月13日)美国专利7,190,837
[7] R.W. Floyd,L. Steinberg,“一种空间灰度自适应算法,”信息显示学会论文集,第17卷,75–77页,1976年
[8] Altera,Altera SoC SoC嵌入式设计套件,2013年。
[9] Altera,针对OpenCL的Altera SDK编程指南,2013年。
[10] Altera,针对OpenCL的Altera SDK优化指南,2013年。
[11] Altera,Cyclone V SoC开发板参考手册,2013年。
[12] Altera,Altera用户可定制基于ARM的SoC,2013年]。
[13] Khronos OpenCL工作组,OpenCL规范,版本1.0.29,2008年12月8日。





欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0