系统级设计用于 DPCM 图像压缩的 SoC-FPGA 加速器

摘要

该实现嵌入式平台和便携式系统中的数据压缩正快速增长,原因是日常人类生活中对图像和视频处理的需求。数据压缩应用中,医学影像,例如计算机断层扫描(CT),以及激光雷达(LiDAR)已成为活跃的研究领域,尤其是在必须通过通信接口进行数据传输时。由于数据压缩算法的复杂性和输入流的高分辨率,当前的嵌入式平台可能无法充分利用数据压缩算法。为了解决此限制,最近的方法利用硬件加速器来加速计算。在可用的硬件加速器中,片上系统(SoC)可编程门阵列(FPGA)已成为实现令人满意的计算性能的重要架构方法。本研究展示了一种在 Zynq SoC-FPGA 上实现和综合的差分脉冲编码调制(DPCM)算法的硬件加速器,并实现了 88 倍的加速因子。

作者

Amin Safaei 计算机科学系,莱克海德大学,桑德比,安大略省,加拿大

Samira Sabeti 计算机科学系,莱克海德大学,桑德比,安大略省,加拿大

Morteza Masoudian 计算机科学系,莱克海德大学,桑德比,安大略省,加拿大

发表信息

期刊: 2024 IEEE Canadian Conference on Electrical and Computer Engineering (CCECE) 年份: 2024 页码: 887-891 DOI: 10.1109/CCECE59415.2024.10667112 文章编号: 10667112 ISSN: Electronic ISSN: 2576-7046, Print on Demand(PoD) ISSN: 0840-7789

指标

总下载量: 91

资金来源


关键词

IEEE 关键词: 图像编码, 激光雷达, 计算机断层扫描, 数据压缩, 计算机体系结构, 并行处理, 脉冲调制

索引词条: 图像压缩, 差分脉冲编码调制, 医学成像, 源代码, 激光雷达, 光检测, 加速因子, 门阵列, 硬件加速器, 压缩算法, 通信接口, 人类日常生活, 预测误差, 输入图像, 图形处理单元, 计算机断层扫描图像, 比特流, 相邻像素, 遥感数据, L2 缓存, 无损压缩, 编码树, ARM 处理器, 内存数据, 时钟周期, 单芯片

作者关键词: 可编程门阵列, 图像处理, 数据压缩, 嵌入式视觉, 减法技术

未定义

第一节:引言

数据压缩技术用于降低数据的冗余特征,并以更短的形式表示数据,从而使得在不丢失任何数据(无损形式)的情况下,在内存中存储更多数据成为可能,并且在更短时间内传输数据。 一种数据压缩的应用是使用标准协议压缩图像。 与图像价值相关,图像压缩可以是有损或无损。 数据压缩的两大常见应用是医学成像和激光雷达; 图 2 显示了激光雷达和 CT 图像。

在医疗领域,为了对患者数据进行分析,医学图像由于其高价值,需要长期存储 1;因此,必须使用无损压缩来节省图像数据在内存中的占用。 另一方面,远程诊断系统以及医学图像传输系统在使用图像压缩时效率更高 2 3

数据压缩的另一种应用是激光雷达(LiDAR)。LiDAR 可用于提供高程数据。这种方法的输出非常精确、及时,并且在恶劣地形上越来越具备能力 4,因此可以用于诸如大气参数调查、土地管理以及裸土数字地形模型等应用。

在遥感(RS)数据的分析与传输中,压缩可以非常有用。另一方面,鉴于RS数据包含的重要信息,优先使用无损压缩。此外,在实时应用中使用简单算法可以加速执行过程。因此,一个快速高效的压缩算法对于RS数据非常有用。

无损压缩包含两个主要部分:变换和编码 5 6。如图 1.a 所示,输入图像经过变换阶段;随后执行编码步骤,图像以更短的时间形成为压缩比特流。变换用于去相关输入图像并将图像转换到另一个域。变换试图将输入图像的能量集中到相对较少的系数中 7

正如前文所述,数据压缩被广泛应用于许多场景,且由于便携式系统的普及和市场需求,嵌入式平台也必须具备数据压缩能力,尤其是在传输方面。然而,由于数据压缩算法的复杂性以及输入流的高分辨率,当前的嵌入式处理器在数据压缩任务上并不够高效。有效的方法是使用硬件加速器,例如现场可编程门阵列(FPGA)和图形处理单元(GPU),或针对多种计算操作优化的多核微处理器架构。

然而,GPU 和多核 CPU 在功耗方面面临挑战,因此难以在嵌入式环境中部署。因此,一代新的 FPGA 基础 SoC,由微处理器和单芯片 FPGA 组成 8,从而消耗更少功率并能集成到小型系统中,为嵌入式应用提供了一个有吸引力的平台 9 10 11 12 13 14 15。在本工作中,我们提出了一种基于差分脉冲编码调制 (DPCM) 算法的专用 SoC 硬件实现与设计方法。

Figure 1

图 1. 无损压缩块图 (a)、DPCM 块图 (b) 与邻域像素 (c).

本文结构如下。第 II 节提供了 DPCM 压缩算法及相关工作的背景。第 III 节展示了在嵌入式平台上实现 DPCM 的模块设计。第 IV 节呈现了 SoC FPGA 的实验与实现结果。最后在第 V 节给出结论。

第 II 节. 相关工作

变换的性能基于能量压缩和低计算与实现复杂度定义。因此,变换的目标是将图像转换为适合编码步骤的系数矩阵。编码步骤将执行压缩任务并将图像重塑为比特流。

如前所述,熵提供了平均信息概率,并表示在使用编码后图像的压缩水平,如方程 1 和 2 所示。熵的输出表示每像素的比特数,经过更好的变换,熵值会降低。结果,通过测量熵,可以获得变换的性能。

\begin{align*} & H(X) = {\mathbb{E}}[I(X)] = {\mathbb{E}}[ - \ln (P(X))]\tag{1} \\ & H(x) = \sum\limits_{i = 1}^n P \left({{x_i}}\right)I\left({{x_i}}\right) = - \sum\limits_{i = 1}^n P \left({{x_i}}\right){\log _2}P\left({{x_i}}\right)\tag{2}\end{align*}

为了编码像素分布,采用霍夫曼编码。霍夫曼编码是编码像素值表示的常见方案;它为出现频率更高的像素值考虑短二进制代码,为出现频率较低的像素值考虑长二进制代码。

DPCM 技术

DPCM 是一种预测算子,通过邻近像素的特定预测模型来预测每个像素,如图 1.b 和 1.c 所示。它基于感兴趣像素与邻域像素的相关性理论。DPCM 算子根据不同的预测算子将感兴趣像素从预测值中相减,概述见表 1。正如表 1 所示,每个预测算子由不同的数学函数组成,基于提供可接受精度所需电路的复杂度,并且有效利用资源。

为了更好地表示 DPCM 运算,我们通过应用预测模型 9 并比较变换前后强度分布的结果,考虑了图 2 中所示的不同图像。由此证明能量聚合大约达到零。当然,更好的预测可以提供更好的能量聚合,结果传输图像的熵更低。对 CT 图像和 LiDAR 数据的分析表明,强度、分布和强度重复率不高,因此更多像素相关。因此,表示 CT 图像和 LiDAR 图像数据所需的强度值多样性不高;鉴于这一特性与其他压缩技术相比,DPCM 方法是 CT 和 LiDAR 图像数据的高效方法。

Figure 2

表 I

第 III 节 硬件实现

可为 DPCM 压缩过程采用不同的实现方法。一般实现方法基于硬件复杂度,并可进一步改进。

在本工作中,所提出的实现已在 Xilinx Zynq SoC 7000 上综合并运行。Xilinx Zynq SoC 的优势在于它在单芯片中集成了一个双核 ARM 处理器(PS 单元)和可编程逻辑块(PL 单元)。在本实现中,我们使用第一个核心来控制由生成预测误差矩阵和执行编码组成的操作序列。此外,PL 块中模块的所有控制信号都由处理器控制。图 3 表示系统的块图。

通信接口

AMBA AXI 4 版协议是处理器与可编程逻辑之间通信的主要接口。AXI 接口由四个 64-/32 位高性能 AXI(HP AXI)从接口、两个 32 位 AXI 主接口、两个 32 位 AXI 从接口、一个 64 位 AXI 加速器一致性端口(ACP)以及一个扩展多路复用 I/O(EMIO)接口组成。

Figure 3

Fig. 2. 原始图像 (a),原始图像熵 (b),预测图像 (c) 与预测图像熵 (d)。

在传统的加速系统中,独立的芯片,如 DSP、FPGA 和 GPU,作为主处理器的协处理器工作。主处理器管理控制信号并将数据转移到共享内存。协处理器由主处理器触发,以在共享数据上执行操作。算法的输出随后被送回共享内存。在最终阶段,主处理器读取共享内存的内容并将其转移到输出端口。所有事务均由主处理器控制和监视,这既低效又导致高开销。在我们研究中使用的新架构中,主处理器与加速器之间的共享内存是低延迟的 L2 缓存。ACP 是 AXI4-Stream 互连与主处理器(ARM CPU)之间的接口。ACP 是位于 snoop 控制单元(SCU)上的 64 位 AXI 从机接口,提供了一个直接从 PL 到主处理器子系统的异步缓存一致访问点。

ACP 在 PS 与在 PL 中实现的加速器之间提供低延迟路径。主处理器仅需初始化缓存,随后输入数据以完全独立的方式传输到 PL 中的 DMA。结果,主处理器上可用的周期更多,用于更高级别的处理。

计算块

DPCM 块中的输入流可以以位并行和字节串行的形式传输。如上所述,通信采用 AXI 接口。处理器从存储块(如 SD 卡)或通信链路(如 USB 接口)读取输入数据流,并将数据存入 L2 缓存。缓存内容传递给在 PL 块中合成、配有 ACP 端口的 DMA 块。根据表 1 所示的预测算子,对于某些算子,我们只需要邻近像素的信息;对于更复杂的预测器,需要 4 个像素的信息。在传统方法中,需要额外一个时钟周期才能在存储块中找到合适的邻近像素。使用预测器 1–9 的流程如算法 1 所示。正如算法所示,该预测器由两个需要额外时钟周期操作的循环组成。为优化算法并并行化操作,需要研究循环类型。通过识别展开循环,可以提高 FPGA 大量计算资源的利用率。循环可分为 Irrelevant, IndependentDependent。第一个循环定义了索引是否不使用数组 I 的任何函数;因此,它被视为与数组 I 无关。第二个模型中,如果数组 Arr 上的数据空间在循环索引上完全可分离,则称为与数组 I 独立的循环索引。最后,在最后一个模型中,如果数组 Arr 上的数据空间在循环索引上不可分离,则称为与数组 I 相关的循环索引。为了优化具有两个循环的算法 1 的操作,必须使数组在循环迭代 i 和 j 上相互独立。算法 1 的所提出电路如图 3 所示,由一个 3 × 3 × 8 位移位寄存器组成,可被每个单元并行访问,以及一个 W × (H - 1) × 8 位 RAM 块,其中 W 和 H 分别为垂直和水平图像尺寸。感兴趣的像素值被传递给算术逻辑单元 (ALU) 以计算预测误差。该方法的优点是仅需一个时钟周期即可更新每个单元的内容,从而为高分辨率应用节省更多时钟周期。获得预测误差后,下一步是对该值进行编码。在本工作中,为使用 Huffman 编码,我们采用静态 Huffman 表。

表格是通过在前期对超过 100 张 CT 和 LiDAR 图像计算预测误差来离线生成的。

Figure 4

算法 1

Figure 5

图 3. SoC FPGA 结构图显示了 FPGA 结构中图像压缩,从而加速数据压缩算法

第四节 实施结果与评估

所提出的图像压缩硬件加速方案已在配备 XC7Z020-1CLG484C 芯片、FPGA 时钟 140 MHz、ARM 时钟 866 MHz 的 Xilinx XC7Z020 板上实现。该电路使用 Vivado 2017.4 在 FPGA 上综合。处理器的软件采用 C 语言编写,其他模块则使用 VHDL 编写。DMA 能力由 Xilinx Vivado 提供的 IP 实现。此外,还使用了为 Xilinx SoC 定制的嵌入式 Linux 版本 PetaLinux 来控制处理器的运行。如前所述,内部使用 AMBA AXI 4 版将处理器核与 FPGA 部分互连。该平台还配备了两个片上内存接口:DDR3 和 LPDDR2。我们的实现结果与其他提出的方法汇总于表 II;然而,实施结果也与平台相关,并不总是适用于比较。一个高效的方案可以基于加速因子。

Figure 6

表 II

使用平台上第二颗芯片作为加速器的嵌入式系统,可以通过加速比进行定量评估,加速比基于主处理器执行单个操作所需时间与该操作被加速器处理时的执行时间之比来定义。在此压缩方法中,DPCM 预测器是压缩中资源消耗最大的操作之一;因此,我们针对单幅图像研究了该操作的加速比。测量电路如图3所示。该电路由一个在 PL 区块中编码的定时器组成。第一次测量时,ARM 处理器将单帧内容传输至缓存,在执行 DPCM 函数之前,它触发定时器。第二次测量时,相同操作由 PL 区块执行。针对单帧,我们测得加速比为 88 倍。该测量加速比的测试算法由 Xilinx 16 提出,用于硬件加速评估。

章节 V. 结论

本文提出了一种基于 SoC-FPGA 的图像压缩方案。所提出的算法采用并行处理和流水线架构来加速计算。该平台可应用于不同的工业和医疗领域。未来工作可在其他医疗图像数据集和 LiDAR 上测试该系统,并评估在不同条件(包括噪声)下电路的性能。未来工作还可通过减小变量位宽来评估性能。

参考文献

附加参考文献

  1. Y. Wang, A. Bermak, A. Bouzerdoum, and B. Ng, “FPGA实现预测向量量化图像压缩算法用于图像传感器应用,”在 Electronic Design, Test and Applications, 2008. DELTA 2008. 4th IEEE International Symposium on." IEEE, 2008, pp. 431–434.

  2. Y. Wang, S. Chen, and A. Bermak, “FPGA实现图像压缩使用DPCM和fbar,”在 Integrated Circuits, 2007. ISIC’07. International Symposium on. IEEE, 2007, pp. 329–332.