文/Alok Sanghavi,Achronix Semiconductor资深产品营销经理
带有多个高分辨率摄像头的嵌入式360°视域视觉系统已经进入了各种应用中,如汽车传感器融合、视频监控、目标检测、运动分析等。在此类系统中,多个实时摄像机的视频流(最多6个) 被汇聚在一起逐帧处理,进行失真和其他图像伪影校正,调整曝光和白平衡,然后动态拼接成一个360°全景视图,以4K清晰度和60 fps帧频输出,最终投影到一个球形坐标空间上。
目前用于此类应用的高分辨率鱼眼相机镜头通常具有一个广角视域(FOV)。环视相机系统最大的瓶颈之一是: 实时到或从外部存储器存储/读取和访问多路摄像机输入数据,然后将其作为一个单一帧进行处理。硬件需要在一帧延迟内,在输入摄像机传入的原始传感器数据和拼接输出视频之间完成处理运行。
高性能计算平台一直朝着与CPU一起协同使用FPGA的方向发展,以便为实时图像处理任务提供专门的硬件加速。 这种配置使得CPU能专注于特别复杂的算法,其中它们可以快速切换线程和上下文,并将重复性任务分配给一个FPGA,以充当可配置的硬件加速器/协处理器/卸载引擎。 即使将FPGA和CPU作为分立器件使用,系统也可以提高整体效率,因为这些技术不会发生冲突,而是像将手套戴在手上一样来配合在一起。
例如,从鱼眼镜头获得的图像遭受严重失真之苦,因而基于多个相机视频生成的拼接操作是高度计算密集型的任务,其原因为它是点像素操作。这种拼接需要大量的实时图像处理和高度并行化的架构。但是,这种下一代的应用超过了FPGA可不断接续实现的性能,主要是由于芯片吞吐数据的延迟。这反过来会影响整个系统的整体延迟、吞吐速度和性能。
在一个SoC中加入可与CPU一起嵌入的eFPGA半导体知识产权(IP)。与一个独立的FPGA芯片加CPU解决方案相比,嵌入式FPGA阵列结构具有独特的优势,主要优势在于性能更强。一个eFPGA可通过一个宽的并行接口直接连接到ASIC(无I / O缓冲器)上,提供显著提高的吞吐量,以及以个位数时钟周期来计数的延迟。低延迟是复杂的图像实时处理过程的关键,例如纠正鱼眼镜头的失真这样的处理。
利用Speedcore eFPGA IP,客户可以定义其逻辑、内存和DSP资源需求,然后Achronix可配置其IP以满足他们的需求。查找表(LUTs)、RAM单元块和DSP64单元块可以像积木一样进行组合,为任何给定的应用创建最佳的可编程结构。
除了标准逻辑、嵌入式存储器和DSP单元模块之外,客户还可以在Speedcore eFPGA结构里面定义他们自己的功能块。通过把这些定制功能模块与传统构建模块一起集成到逻辑阵列结构中,可添加优化过的功能来减少面积和提高目标应用的性能,可使eFPGA的性能得到极大的提高,特别是对嵌入式视觉和图像处理算法非常有效。
用自定义单元块来成功地解决高性能图像处理就是一个很好的例子,在实现您只看一次(YOLO)这一种使用了神经网络的、最先进的、实时对象检测算法时,可以优于早期的方法大大提高性能。该算法依赖于大量的矩阵乘法器,而在FPGA中实现时,这些矩阵乘法器需要使用DSP和RAM模块来构建;YOLO所需要的DSP和RAM模块之间的最佳配置,与一个典型的FPGA阵列结构中发现的不匹配之处就会出现问题。例如,FPGA阵列结构可能提供18×27乘法/累加单元块和32×128 RAM的DSP单元块,而此时的最佳解决方案可能是带有48×1024 RAM的16×8 DSP单元块。通过创建实现最佳DSP和RAM模块配置的定制单元块,所得到的Speedcore阵列结构所使用的芯片面积就会减少40%,来实现相同的功能并且能获得更高级别的系统性能。
在SoC中嵌入FPGA阵列结构提供了两个额外的系统级好处:
更低的功耗 - 可编程I / O电路占独立FPGA芯片总功耗的一半,而一个eFPGA可以与主控SoC中的其他模块直接内部线路连接,完全不需要大型可编程I / O缓冲器。
更低的系统成本 - 由于eFPGA只需实现特定功能,eFPGA的裸片尺寸远小于等效的独立FPGA芯片,这是因为eFPGA不再需要可编程的I / O缓冲器和不必要的接口逻辑。
借助超低延迟和实时处理功能,可以有效实现基于360°视域的视觉系统,具有定制单元块的Speedcore eFPGA与同一主控SoC中的一个CPU配合使用,非常适合去实现专用功能,如目标检测和图像识别、变形和失真校正、以及最后将最终图像拼接在一起。在SoC中嵌入FPGA阵列结构是超深亚微米时代系统集成的一个自然发展过程。