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