Speedcore eFPGA是360°全景系统的使能技术

作者:
阿洛克·桑加维
高级营销经理

发布日期:2018年11月12日

监控、物体检测、运动分析等下一代视频应用现在依赖于360°嵌入式视觉。在这些系统中,多个实时相机流(最多六个)逐帧一起处理,每帧都校正了失真和其他图像伪影,调整了曝光和白平衡,然后动态拼接成一个360°全景视图,然后以4K 60 fps的速度输出,并最终投影到球坐标空间上。

今天用于此类应用的高分辨率鱼眼相机镜头通常具有广角视场(FOV)。全景相机系统中最大的瓶颈之一是实时存储和访问外部存储器中的多个相机输入数据,然后将其作为一帧进行处理。硬件需要在来自输入摄像头的输入原始传感器数据和拼接输出视频之间的一帧延迟内运行。

高性能计算平台一直在朝着使用FPGA与CPU协同工作的方向发展,为实时图像处理任务提供专门的硬件加速。这种配置允许CPU专注于特别复杂的算法,在这些算法中,它们可以快速切换线程和上下文,并将重复任务降级到FPGA上,作为可配置的硬件加速器/协处理器/卸载引擎。即使使用FPGA和CPU作为分立器件,系统的整体效率也会提高,因为这些技术不会冲突,而是像手套里的手一样紧密结合在一起。

例如,从鱼眼镜头获得的图像存在严重失真;因此,涉及多个相机的拼接操作是一项计算密集型任务,因为它是按像素操作。这种拼接需要大量的实时图像处理和高度并行化的架构。但是,这种下一代应用程序超过了FPGA执行这种滚动的能力,主要是由于在芯片内外移动数据的延迟,影响了系统的整体延迟、吞吐量和性能。

eFPGA是答案

进入eFPGA IP,它可以与CPU一起嵌入SoC中。与独立的FPGA加CPU解决方案相比,嵌入式FPGA结构具有独特的优势,主要是更高的性能。eFPGA通过宽并行接口直接连接到ASIC(无I/O缓冲器),提供更高的吞吐量,延迟以个位数时钟周期计算。低延迟是图像复杂实时处理的关键,例如在校正鱼眼失真时。

eFPGA的一个优点是,它们的大小可以满足特定的应用。使用Speedcore eFPGA IP,客户可以指定他们的逻辑、内存和DSP资源需求,然后Achronix配置IP以满足他们的个性化需求。查找表(LUT)、RAM块和DSP64块可以像构建块一样组装,为任何给定的应用程序创建最佳的可编程结构。

除了LUT、嵌入式存储器和DSP块外,客户还可以定义自己的自定义功能,以包含在Speedcore eFPGA结构中。这些定制块与传统构建块一起集成到逻辑结构中,通过添加优化功能来减少目标应用程序的面积和/或提高其性能,大大提高了eFPGA的能力,特别是对于嵌入式视觉和图像处理算法。

自定义块如何实现处理高性能图像处理的能力的一个很好的例子是实现“只看一次”(YOLO),这是一种使用神经网络的最先进的实时对象检测算法,与早期方法相比,其性能大大提高。该算法依赖于大量的矩阵乘法器。当在FPGA中实现时,这些矩阵乘法器是使用DSP和RAM块构建的。问题在于YOLO所需的DSP和RAM块的最佳配置与典型FPGA结构中的配置不匹配。例如,FPGA结构可能提供具有18×27乘法/累加和32×128 RAM的DSP块,其中最佳解决方案是具有16×8 DSP块和48×1024 RAM的结构。通过创建实现最佳DSP和RAM块配置的自定义块,最终的Speedcore结构使用了40%的芯片面积来实现相同的功能,并实现了更高水平的系统性能。

eFPGA IP的系统级优势

在SoC中嵌入FPGA结构提供了两个额外的系统级优势:

  • 低功耗——可编程I/O电路占独立FPGA总功耗的一半。eFPGA与主机SoC内的其他块直接有线连接,完全消除了对大型可编程I/O缓冲器的需求。
  • 更低的系统成本——eFPGA的芯片尺寸比等效的独立FPGA小得多,因为eFPGA的尺寸可以针对特定的目标功能进行调整。此外,eFPGA中不需要独立FPGA中的功能,如可编程I/O缓冲器和接口逻辑。

由于超低延迟和实时处理推动了对高效实施基于360°视图视觉的系统的需求,带有自定义块的Speedcore eFPGA与同一主机SoC中的CPU协同工作,非常适合实现专用功能,如对象检测和图像识别、扭曲和失真校正,以及最终将最终图像拼接在一起。