基础设施助力双11(四):图片编码FPGA硬件优化

简介: 从我们的性能评测中可以看出基于FPGA编解码方案在性能上优于传统CPU方案,未来可以考虑更多采用FPGA方案提供服务,释放更多CPU资源用于其他服务。

**项目背景
**

目前互联网上的图片还是以JPEG格式为主,伴随新的图像视频编解码技术的发展,也产生了多种更高效的图片编解码算法,这些高效的图片编解码算法相比JPEG图片格式可以提升50%以上的压缩率。如果客户端对图片的请求采用高压缩率图片格式,可以相应减少50%以上的传输带宽,可以有效提升用户的图片下载体验。

但是,随着算法压缩率的提升,编码算法的计算复杂度也越来越高,采用通用CPU进行编码成本很高,导致很难在业务中全面推广。

因此,硬件FPGA编解码方案替代通用CPU方案,通过提高计算效率和计算密度,来降低硬件成本很有实际意义。

开发实施

整个项目分为编码功能验证和编码性能提升两个阶段进行开发:

编码功能验证阶段使得FPGA运行在100Mhz主频,主要用来分析编码效果和图片质量。

编码性能提升阶段将主频提升到300Mhz,同时实现多个IP并行编码,目标:相比CPU服务器实现性能提升25倍。

技术层次结构

    整个项目开发涉及FPGA逻辑开发、软件开发。

    FPGA在服务器中作为通用CPU的协处理器,以PCIE卡的形式与通用CPU连接。

    FPGA处理系统基于AliFPGA逻辑平台开发。

项目整体的层次结构如下:

image.png

图1 系统层次结构图

整体层次结构可以分为FPGA功能逻辑层、AliFPGA通用开发平台、业务软件层三个层次:

  • FPGA功能逻辑层*

主要实现高压缩率图片格式编码功能。

AliFPGA通用开发平台

该层为标准的AliFPGA通用开发平台,主要实现软件与FPGA功能逻辑的交互,分为FPGA部分和驱动部分。驱动部分负责给业务软件部分提供访问的命令接口及数据接口。

  • 业务软件层*

该层实现网络通信及业务逻辑等。

关键优化点

FPGA高性能数据处理需要综合考虑系统流水线设计、FPGA逻辑主频提升、软件设计等多个方面:

FPGA硬件编码流水线优化

流水线定制是FPGA较之通用CPU的优势所在。在FPGA中,每个功能模块硬件资源独立,无需竞争。通过合理设计流水线的划分,可以优化流水线吞吐量。

我们对标准编码流程进行了解耦合,进行了流水拆分。将整个图片编码流水线由2级流水,优化到4级流水。

解耦后的流水方案吞吐量是标准编码流程的2倍。

  • 基于FPGA逻辑主频提升*

对于FPGA高性能计算,除了采用流水线、乒乓等技术外,提升每个功能逻辑IP的运行频率,是性能优化非常关键的一步。

项目中通用逻辑平台运行在250Mhz和300Mhz时钟;功能逻辑IP运行在用户时钟域300MHz。

对于功能逻辑IP时钟域,我们通过识别硬件算法的关键路径,并对其进行针对性优化,通过降低无关逻辑的耦合性以及优化寄存器扇出等方法综合起来将图像编码核的频率提升3倍。

  • 软件设计*

软件层的主要功能是把来自调度层的图片原始文件下发给FPGA编码核,同时将编码后文件返回给软件调度层。

软件设计中重点考虑以下几点:

1) 应用层的多并发支持

2) 驱动层的多IP支持

3) 多通道之间的负载均衡

性能提升

本项目基于FPGA芯片实现了高压缩率图片编码加速: 运行频率300Mhz,结合功能逻辑IP多通道并发,在实际评测中相比当前高性能通用CPU服务器(64核),整体性能提升了25倍。

小结

从我们的性能评测中可以看出基于FPGA编解码方案在性能上优于传统CPU方案,未来可以考虑更多采用FPGA方案提供服务,释放更多CPU资源用于其他服务。

目录
相关文章
|
16天前
|
数据采集 算法 测试技术
【硬件测试】基于FPGA的1024QAM基带通信系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍了基于FPGA的1024QAM基带通信系统的硬件测试版本,包含testbench、高斯信道模块和误码率统计模块。系统新增ila在线数据采集和vio在线SNR设置模块,支持不同SNR条件下的性能测试。1024QAM调制将10比特映射到复平面上的1024个星座点之一,实现高效数据传输。硬件测试结果表明,在SNR=32dB和40dB时,系统表现出良好的性能。Verilog核心程序展示了各模块的连接与功能实现。
39 7
|
5天前
|
数据采集 算法 数据安全/隐私保护
【硬件测试】基于FPGA的MSK调制解调系统系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文基于FPGA实现MSK调制解调系统,采用Verilog开发,包含同步模块、高斯信道模拟、误码率统计等功能。相比仿真版本,新增ILA数据采集与VIO在线SNR设置模块。通过硬件测试验证,展示不同SNR(如10dB和16dB)下的性能表现。研究聚焦软件无线电领域,优化算法复杂度以适应硬件限制,利用MSK恒定包络、相位连续等特性提升频谱效率。核心代码实现信号生成、调制解调、滤波及误码统计,提供完整的硬件设计与分析方案。
41 19
|
10天前
|
数据采集 算法 数据安全/隐私保护
【硬件测试】基于FPGA的4ASK调制解调通信系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍了基于FPGA的4ASK调制解调系统的硬件测试版本,该系统包括testbench、高斯信道模块和误码率统计模块,并新增了ILA在线数据采集和VIO在线SNR设置功能。通过VIO设置不同SNR(如15dB和25dB),实现了对系统性能的实时监测与调整。4ASK是一种通过改变载波幅度表示数据的数字调制方式,适用于多种通信场景。FPGA平台的高效性和灵活性使其成为构建高性能通信系统的理想选择。
59 17
|
9天前
|
数据采集 算法 数据安全/隐私保护
【硬件测试】基于FPGA的16QAM调制+软解调系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文基于之前开发的16QAM调制与软解调系统,增加了硬件测试功能。该系统包含FPGA实现的16QAM调制、软解调、高斯信道、误码率统计模块,并新增了ILA在线数据采集和VIO在线SNR设置模块。通过硬件测试,验证了不同SNR条件下的系统性能。16QAM软解调通过比较接收信号采样值与16个调制点的距离,选择最近的调制点来恢复原始数据。核心Verilog代码实现了整个系统的功能,包括SNR设置、信号处理及误码率统计。硬件测试结果表明系统在不同SNR下表现良好,详细操作步骤可参考配套视频。
44 13
|
13天前
|
数据采集 算法 数据安全/隐私保护
【硬件测试】基于FPGA的4FSK调制解调通信系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文基于之前的文章《基于FPGA的4FSK调制解调系统》,增加了ILA在线数据采集模块和VIO在线SNR设置模块,实现了硬件测试版本。通过VIO设置不同SNR(如10dB和20dB),并展示了ILA采集的数据结果。四频移键控(4FSK)是一种数字调制方法,利用四个不同频率传输二进制数据,具有较高的频带利用率和抗干扰性能。输入的二进制数据分为两组,每组两个比特,对应四个频率f1、f2、f3、f4,分别代表二进制组合00、01、10、11。调制过程中选择相应频率输出,并进行幅度调制以增强抗干扰能力。接收端通过带通滤波器提取信号并还原为原始二进制数据。
31 7
|
17天前
|
数据采集 算法 数据处理
【硬件测试】基于FPGA的256QAM基带通信系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍了基于FPGA的256QAM基带通信系统的硬件测试版本,包含testbench、高斯信道模块和误码率统计模块。系统新增ila在线数据采集和vio在线SNR设置模块,支持不同信噪比(如30dB和40dB)的仿真测试,并提供配套操作视频。256QAM调制方案每个符号携带8比特信息,通过复数值星座图映射实现高效传输。Verilog代码展示了核心模块设计,包括SNR设置、数据处理和ILA测试分析,确保系统在实际硬件环境中的稳定性和性能。
19 2
|
21天前
|
数据采集 算法 数据安全/隐私保护
【硬件测试】基于FPGA的16QAM基带通信系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍了基于FPGA的16QAM基带通信系统硬件测试版本。该系统在仿真基础上增加了ILA在线数据采集和VIO在线SNR设置模块,支持不同信噪比(如15dB、25dB)的测试。16QAM是一种正交幅度调制方式,通过两路4ASK信号叠加实现,每个符号包含4比特信息。系统采用正交调幅法生成16QAM信号,并通过DAC转换为模拟信号。解调时使用正交相干解调,经低通滤波器恢复电平信号。开发板内完成发射与接收,无需定时同步模块。代码可移植至其他开发板,具体步骤见配套文档。
28 2
|
27天前
|
数据采集 算法 测试技术
【硬件测试】基于FPGA的2ASK调制解调系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍基于FPGA的2ASK调制解调系统,涵盖仿真效果、理论知识、Verilog核心程序及开发板使用说明。系统包含testbench、高斯信道模块和误码率统计模块,支持不同SNR设置。硬件测试版本增加了ILA在线数据采集和VIO在线SNR设置功能。2ASK调制通过改变载波振幅传输二进制信号,FPGA实现包括系统设计、Verilog编码、仿真测试和硬件部署。详细操作步骤见配套视频,代码适用于多种开发板,提供移植方法。
34 1
|
18天前
|
数据采集 算法 数据安全/隐私保护
【硬件测试】基于FPGA的64QAM基带通信系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍了基于FPGA的64QAM基带通信系统的硬件测试版本,包含testbench、高斯信道模块和误码率统计模块。系统新增ila在线数据采集模块和vio在线SNR设置模块,支持不同SNR条件下的仿真与测试。通过设置SNR为25dB和30dB进行测试,验证了系统的可行性和性能。此外,本文详细阐述了64QAM调制解调的工作原理,包括信号生成、调制、解调及误码率测试等环节,并提供了Verilog核心程序代码。
20 0
|
2月前
|
数据采集 算法 测试技术
【硬件测试】基于FPGA的16psk调制解调系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍了基于FPGA的16PSK调制解调系统的硬件测试版本。系统在原有仿真基础上增加了ILA在线数据采集和VIO在线SNR设置模块,支持不同信噪比下的性能测试。16PSK通过改变载波相位传输4比特信息,广泛应用于高速数据传输。硬件测试操作详见配套视频。开发板使用及移植方法也一并提供。
53 6

热门文章

最新文章