基于可重配置硬件的实时图像处理外文翻译资料

 2022-12-03 14:45:41

英语原文共 7 页,剩余内容已隐藏,支付完成后下载完整资料


基于可重配置硬件的实时图像处理

Steffen Klupsch Markus Ernst【著】

宋 林【译】

引 言

这篇论文是关于充分利用现代FPGA(现场可编程逻辑门阵列)技术,实现提升二维和三维图像处理的速度。其应用范围包括二维和三维图像的去噪、恢复、分割、形态学形状恢复和匹配向量场可视化与仿真。该描述演示是基于水平集方法,但是提出了能够轻松交换底层数学方法的工作流程。

基于FPGA的硬件实现,将从高度并行的算法和保留了算法模型正确效果的适度数字精度中获利。而且不同的变形体能够通过在相同的硬件上上传一个新的程序到FPGA当中来实现。这将在实时性能不可或缺的应用当中,充分利用这些可变的图形处理方法。

1 数学背景

图像数据(尤其是三维医学数据)的质量和大小在不断的递增。这些图像的快速和最佳的交互式后处理是一个关键。例如,图像分割、不同图像的变形、序列图像的分析与测量是一些很难完成的任务。尤其是以分割和变形为目的的水平集方法,扮演了一个重要的角色。他们被认为是依赖于各种各样的边界条件的连续区域增长型算法,并被证明是有效且具有鲁棒性(图1)。

图1 人脑的分割图

一个关于时间t且起始于一个初始位置Gamma;(0) = Gamma;0的接口Gamma;(t)的运动,能够被一个隐含的接口Gamma;(t) = {x |phi;(t,x) = 0 }来表示。如果f(t, x)表示接口在时间t和位置x的速度,我们得到了偏微分方程:

part;tphi;(t, x) f(t, x)knabla;phi;k = 0

至于图像分割f 促使接口倾向于图像中一个分割区域的边缘。通常f 等同于图像差异化区域的一个,在那里f 倾向于靠近分割边缘的零点。

水平集的离散化描述了一个统一的四边形或者八边形网格的有限差别。网格元素是一个d维(d = 2、3)复指数alpha;以及表示元素中心的d维向量xalpha; 的组合。元素向量包含关于元素中心的连续函数phi;的数值近似Phi;,并将其标记为:Phi; = ( macr; Phi; macr;alpha;)alpha; = (phi;(xalpha;))alpha;

我们的水平集方程的数值解是基于时间和空间的一个明确的欧拉组合。根据时间组合的顺序更新公式,从而获得下一个时间节点的解。

选取适用于有限大量计算的upwinding方法,我们通过数值流g : R2times;2 R粗略的得出H(u):= f||u||,并且得出了逆风水平集组合为:

Tau;k是当前的时间步长。离散解相当于相似于phi;(Pk j=0 minus;1 tau;j, .)的向量Phi; macr;k 。为了满足自然边界条件,我们设对于所有alpha;满足Dalpha; plusmn;Phi; macr;k:= 0。

对于g我们在近似值的不同阶中进行选择。简单的Enquist-Osher流满足凸状H:

在特定直径h,以及采用Enquist-Osher流的一阶时间离散化的等距网格中实现二维数据是经过深思熟虑的。

2 设计方法

图像处理方法的一个特征是对数据集的多重迭代。因为数字精度需求有限,该工作适合于有限范围的整数数据集上进行,例如利用特定的字长。而且,这样可以并行的执行更新公式。

图2 硬件加速系统的软硬件设计的概念框图

现代基于通用CPU的计算机能够被用来实现例如算法,但是纯粹软件实现的性能并不好。所有的操作都要以一个固定的字长,被映射到处理器中(例如:Intel Pentium,32位),字长的选择并不是基于具体的处理任务所需。可用的操作范围受限于通用而简单的操作符。同时CPU还需要处理其他任务,例如操作系统请求、用户互动等等,这也是基于上下文的实时操作的主要缺点。因此,它将很难满足硬件实时的需求。

我们利用特殊的硬件加速方法,来解决传统软件实现的弊端。一个标准的PCI板卡产品被用作加速器的底板。这张PCI板卡装备有一个来自于Xilinx公司的可重构逻辑器件(FPGA),并利用它来实现功能。这张板卡上采用了一块高达180000门的XC4085XLA-FPGA。而且板卡上还配有一个可编程的时钟发生器,2MB的静态存储器以及外置接口。并利用PCI接口完成与目标系统的整合。

常规的基于PCI板卡的硬件加速器的系统分解如图2所示。系统以可重用但应用单一和底层I/O通讯功能的固定PCI接口为中心。系统的功能可以被分解为软件部分(运行在CPU上)和硬件部分(运行在FPGA上)。高性能的PCI接口在FPGA板卡和运行在主机上的软件提供了高速而有效的数据交换。操作数的精度和字长能够被优化,并且任意复杂操作被设计为允许单步计算的方式。FPGA通过并发执行模式来提升流水线的利用率以及算法的并行化。

图3 质量优化流程图

现在大多数的数字电路的设计条目,都是基于硬件描述语言(HDL)的行为级模型,例如VHDL或者Verilog。这些描述被综合软件处理为一个能被送入布局布线工具的基本逻辑单元的网表。随着大型FPGA的发展和来自消费者产品中时间市场的高度压力,一个快速算法到芯片的流程的需求被证明是非常有利可图的。事实上,当考虑芯片大小或者性能时,开发的时间需求可能比对综合好的电路进行优化更重要。因此,很多尝试是把更高抽象层次整合到综合工具中。这将充分利用我们的实际,但不是没有将优化作为目标(图三):利用参数化的高层次描述,我们提高了详细设计空间探索的可能性。通过利用小型抽象的行为描述减少了设计的复杂度。通过大量的软硬件联合评估,我们增加了带有抽象层的综合结果的验证。比选择性的优化子电路设计,更加节约时间。

3 设计优化

图像处理算法正如段落一中所描述那样,包含有一个对每个节点值进行简单操作的复杂序列。通过将简单操作的完整序列组合成一个混合操作,使得利用同步设计的方法来减少性能的损失成为可能。

这种通常用于CPU和FPGA的设计方法,是基于假设所有的算数操作将在时钟周期内被完成并产生结果提供给后期处理。因此,这样的系统的最大时钟速度由最慢的组合路径决定。对于CPU而言,这将导致对于许多操作产生“等待时间”。而且,FPGA设计中不需要命令获取,这解决了基于CPU的算法实现的另一个问题。此外,在FPGA中可以做各种并行数据的处理,这样多个节点数据可以被同时更新。

图4 节点更新实现图

基于CPU或FPGA的应用中,输入数据的速度由可用内存接口的带宽决定。一个256 * 256的图像包含64k个字,产生12位分辨率共768kBit的数据。一个具体有16位数据通路的CPU,在不考虑中间结果占用内存前提下,将需要128kByte去存储这些原始数据。虽然许多FPGA架构可以把数据存储到FPGA芯片内的特定的RAM块中,但是我们还是需要把大多数图像数据存储到外置RAM当中。RAM的通路速度和位宽,限制了输入数据的速率。为了减少这种瓶颈的影响,一个主要的设计任务是在FPGA中利用适当的结构来缓冲可重用数据,来达到RAM访问次数的最小化。这个包含了算法分析和精致的时序分析、高级的优化,就像通过计算临近节点数据结果来达到数据重用,这将明显地将水平集应用的数据需求数量从6减少到4。通过进行进一步优化,使得减少每个节点传输数据的数量成为可能,这样两个输入数组(输入数据Phi;和速度向量F)将被访问一次,一个处理实例如图5(a)所示。图5(b)则表示了两个临近节点并行更新的双倍吞吐量的缓存实现。由于受限于外置数据速率,更多的并行计算并不合理。

图5 单精度计算节点(a)和双精度计算节点(b)的缓存结构

由于FPGA的灵活结构,可以保证混合操作的数值刚度,不会因为图像的量化而恶化。这是利用将取整推迟到最终的节点数据更新后执行来实现。和固定字长操作数的CPU相反,我们支持根据所需来提高中间数的位宽。例如,12位数据加法的结果是13位宽度,两个12位数据的乘法是24位长度。最终,由于错误增长被减少,这将允许减少输入图像数据的分辨率。

4 实验结果

演示中能够载入一个大型图片并存储在FPGA板卡上的SRAM上。访问SRAM受限于标准RAM接口,这样设计的计算速度由每个节点更新所需的RAM元素数量决定。FPGA板卡适用具有13ns延迟的36位宽外置异步SRAM。通过增加FPGA的I/O延迟,带缓冲的SRAM的访问速度可以达到50MHz。因为在XC4085XLA上实现50MHz的同步设计需要占用高达80%的CLB资源,所以我们决定把设计分为一个小型高速SRAM元件和一个有双倍延迟的大型计算引擎。SRAM控制器的设计如图6所示。SRAM72元件采用手动地布局的手段来优化,同时利用了内部SRAM的延迟,通过增加双边沿时钟的方法,来实现流水线形的SRAM访问,从而达到进一步地增强。这增加了32%的数据吞吐量,从而达到一个恒定的单向72位33MHz的数据速率。示例中有两个并行的更新引擎节点。每个都是基于利用带有自动延迟平衡的Synopsys综合工具生成的一个高速流水线型结构。

图6 SRAM控制器的实现图

更新引擎节点采用了适合SRAM控制器设计的12位数据结构。虽然SRAM控制器对每个时钟周期传说的2*12位数据集采用了动态多路复用和分解。本设计对性能做了重点优化,事实上除非根本上地更换FPGA板卡,不然无法再提高数据吞吐量。

图7 处理单元的连接图

我们利用如图5所示的流程,通过FPGA内部缓冲元件来缓存可重用数据。这些缓冲元件可以被级联,从而允许多次迭代运算,而不用将中间数据存储到外部RAM中(图7)。XC4085XLA允许两次迭代设计。因此,通过验证,最终图像可以被计算出来。最终在FPGA上实现的设计达到了大约每秒2000帧或每秒22*10^9整数操作。

图8 单节点更新单元的综合结果图

参 考 文 献

[1] B. Engquist and S. Osher. Stable and entropy-satisfying approximations for transonic flow calculations. Math. Comp., Vol. 34(149):45–75, 1980.

[2] S. Klupsch. Design, Integration and Validation of Heterogeneous Systems. In 2nd IEEE International Symposium on Quality Electronic Design (ISQED 2001), San Jose (CA), Mar. 2001.

International Society for Quality Electronic Design (ISQED Org.).

[3] J. A. Sethian. Level Set Methods and Fast Marching Methods: Evolving Interfaces in Computational Geometry, Fluid Mechanics, Computer Vision, and Materials Science. Cambridge

University Press, Cambridge, 2nd edition, Nov. 1998. ISBN 0-521-64204-3.

[4] Silicon Software. microEnable Users Guide, 1999.

[5] Xilinx. Programmable Logic Data Book, 1999.

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[29035],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

发小红书推广免费获取该资料资格。点击链接进入获取推广文案即可: Ai一键组稿 | 降AI率 | 降重复率 | 论文一键排版