引言
卷积滤波器常用于许多与图像处理、实时视频分析和人工智能相关的应用中。例如,卷积滤波器通常用于生物医学图像分析 [1], [2] 中的样本预处理,或在卷积神经网络(CNNs)[3], [4], [5], [6], [7], [8], [9], [10], [11] 的前几层提取基本特征。流行的卷积滤波器示例包括边缘检测 [12], [13], [14]、高斯 [15], [16], [17], [18], [19]、双边 [20] 或锐化 [21] 滤波器。边缘检测滤波器突出输入图像的边缘。高斯和双边滤波器软化输入图像的纹理并减少噪声。最后,锐化滤波器增强图像像素之间的对比度。这些滤波器中的卷积运算消耗了图像处理系统的大部分计算能力 [22]。因此,开发计算卷积滤波器的新方法是提高其效率的关键。
许多技术已被提出以高效计算卷积。在文献的 previous works 中,许多作者专注于固定权重滤波器的实现,允许使用移位相加技术消除乘法器 [23], [24], [25]。另一个热门话题是减少卷积的操作次数。许多工作使用快速傅里叶变换等算法来实现这一点 [26], [27], [28], [29], [30]。也有专注于降低功耗的工作示例 [31], [32]。其他文章讨论了创新的卷积算法,例如用于高光谱图像超分辨率的三维卷积核心 [33]。其他示例包括用于减少高斯滤波器操作次数的近似卷积算法 [34],或自定义浮点卷积滤波器的生成器 [35]。此外,在 [36] 中提出了一种事件驱动的卷积核心。另一项创新工作是 [37],其中作者开发了一种与模数转换器集成的卷积滤波器。
为了加速卷积,一种常见的选择是将电路实现于现场可编程门阵列(FPGAs)[7], [8], [9], [10] 上。FPGA 支持在触发器和逻辑门级别进行电路设计。我们可以设计实现特定电路以满足给定系统要求同时优化资源使用的架构。使用 FPGA,也很容易设计高度可并行化的操作,如卷积,这受益于并行计算技术的使用 [38]。因此,FPGA 是卷积滤波器的一个伟大、高效且灵活的平台。其他设备,如专用集成电路(ASICs),可用于实现更高的数字电路优化。ASIC 支持更高效的低级实现,减少面积、功耗和延迟。这类设备在卷积实现中也广受欢迎 [39], [40], [41], [42]。
当需要高吞吐量卷积时,卷积电路中增加并行化的一种常见趋势是复制串行架构 [7] 或使用多个加法器树 [8], [10]。这导致架构使用的加法器、乘法器、寄存器和内存数量增加,且随并行化而扩展。然而,我们发现可以在不增加使用内存位置数量的情况下并行处理许多样本。与以前工作中并行处理多个串行卷积不同,我们并行处理同一卷积的多个样本。因此,总内存使用量是恒定的且与并行化无关,从而实现高吞吐量和面积高效的实现。
在本文中,我们专注于设计和实现并行高吞吐量架构,这些架构计算接收每个时钟周期多个样本流的二维(2D)卷积滤波器,使其适用于实时图像和视频处理系统。通过所提方法,我们旨在开发能够管理每个输入数据率同时保持硬件资源和功耗高效使用的结构。为了实现这一点,我们研究卷积中涉及的数学运算,设计并实现满足高吞吐量目标同时优化资源利用率的架构,并将现有架构与所提架构进行比较。此外,本文采用了一种新符号,有助于理解通过滤波器的数据流。这项工作的另一个重要方面是,所提架构适用于任何卷积滤波器,如边缘检测、高斯、双边或锐化,以及 CNNs,因为它们都使用相同的结构,仅在于权重的值不同,而在所提方法中这些值被视为通用的。
总之,这项工作的主要贡献如下:
- •
我们设计了计算 2D 卷积的电路,每个时钟周期接收输入图像的多个样本。与以前的方法不同,所提结构在不增加内存使用的情况下增加并行化。这显著减少了高吞吐量卷积滤波器的面积。
- •
我们详细分析了所提结构如何工作,并提出了一种新符号来帮助理解通过电路的数据流。这种符号建立了一个模型,供未来研究用来描述卷积滤波器中的数据流。
- •
当在 FPGA 和 ASIC 上实现时,所提架构不仅减少内存,而且与以前的工作相比改善了功耗效率并减少了逻辑使用。
本工作的组织如下:在第 2 节中,我们提供了本工作的背景,并总结了与我们方法相关的最 relevant previous works。在第 3 节中,我们讨论了取决于并行输入样本数量的卷积滤波器实现。我们还详细解释了所提架构,并提供了带有时序图的示例。在第 4 节中,我们总结了设计电路的特征,将其资源使用和性能与文献中的 previous works 进行比较。作为结论,在第 5 节中,我们提供了本文贡献和成就的摘要。