为了获得两全其美的效果,将FPGA和CPU解决方案相结合,并由FPGA来处理繁重的工作负载是理想的解决方案。FPGA上的高效功能可以被移植到可重新配置的硬件上去运行。例如,运动估计算法是一种适合FPGA的工作负载。另一方面,CPU更适合处理比特率控制算法。
一些服务提供商要求在软件解决方案中实现与x264相同的视频质量和流媒体格式。FPGA和CPU的组合解决方案可以有效地满足这些要求。使用这种方法,每种功能都被合理地分配,较繁重的处理负载被转移到FPGA,与纯软件解决方案相比,这种方法能提供类似或更好的视频质量和流媒体格式,而且编码时间显著减少。
下表列出了使用这种方法的x264评测结果,第一行显示了在FPGA上的运动估计函数(x264_8_me_search_erf)的结果。运动估计是CPU最繁重的工作负载之一,占据总处理时间的21.2278%。
表3:x264评测结果(通过评测软件获得)
视频内容创作
用于内容创作的视频编辑软件支持多种压缩格式,其中包括Apple ProRes、Avid DNx、Sony XAVC和Panasonic AVC-Intra,这些格式都带有基于内帧结构的专有压缩方案。此外,还有一些支持RAW模式的格式,诸如Apple ProRes RAW、RED RAW、ARRI RAW和Blackmagic RAW,这些格式都得到了摄像机制造商的支持。由于这些格式(以及新型的和不断出现的格式)具有不断变化的特性,因此基于ASIC的解决方案并不实用,而需要基于FPGA的解决方案。
在过去,主要的分辨率为HD/2K,CPU具有足够的速度来处理这些视频流。但是,随着4K或8K分辨率变得越来越普遍,仅靠CPU加软件的解决方案不能够提供实时处理。另一方面,基于FPGA的解决方案可以轻松地实时处理4K和8k分辨率视频。
内部基准测试表明,即使与中级FPGA芯片相比,基于FPGA解决方案的处理速度也比最新的CPU加软件解决方案快五倍。虽然GPU可以提供与FPGA类似的性能,但其功耗更高、解决方案占用空间更大。
FPGA解决方案的好处不仅仅在于加速,而且还能降低CPU的繁忙程度。在只有CPU的解决方案中,所有CPU周期都被4K或8K内容的编码所消耗,而使用FPGA来卸载编码任务可以释放CPU周期。因此,FPGA加速器为该应用提供了最佳的解决方案,通过减少4K和8K视频制作所需的处理时间,来提高视频编辑人员的创作效率。
图6:使用FPGA卸载的CPU利用率
人工智能与深度学习
如前所述,在处理H.264/H.265解码方面,FPGA提供了与CPU相当或更高的性能。如果解码器和内帧编码器(例如JPEG或PNG)都位于同一FPGA中,那么基于FPGA的解决方案将提供比CPU更佳的性能。此外,在深度学习应用中,在将图像数据发送到深度学习处理之前,通常会进行一些图像预处理。在同一个FPGA上可以执行所有的处理,包括解码、图像处理和编码等(如图7所示),并且与CPU相比,FPGA可以提供高吞吐量、低延迟和更少的数据事务。深度学习技术在现在和未来都将被广泛应用于各个行业或领域,而基于FPGA的解决方案将助力这一发展。
图7:使用深度学习进行视频和图像处理的典型数据流
Decoding:解码
Image Processing:图像处理
Encoding:编码
针对性能而优化的Speedster7t架构
Speedster7t FPGA是专为满足最高性能的数据加速应用而设计的,该架构非常适合解决本白皮书中提到的所有应用挑战。具体而言,Achronix开发了一种全新的创新型二维片上网络,它力助在I/O带宽、外部存储带宽和片上性能之间提供一种平衡架构,以确保总体最高的吞吐量。在传统的FPGA架构中,用户需要设计电路来连接加速器,从而导致并不理想的布局和布线。现在更新的FPGA架构使用一种网络,在逻辑阵列内的处理单元与各种片上高速接口和存储器端口之间传输数据流(如图8所示)。
图8:在传统的FPGA架构中连接加速器
Status Control:状态控制
Parameters:参数
Address decode and routing:地址解码和布线
Back pressure:背压
Request arbitration:请求仲裁
Response arbitration:响应仲裁
Response back pressure:响应背压
Response routing:响应布线
Accelerator:加速器
图9:先进的FPGA减少了所需的电路数量