MulticoreWare

实例探究

优化和提高图像处理算法的性能

November 30, 2022

本案例研究强调了我们在为一个客户创建色度校正算法的优化管道和未来增强功能方面的作用。

客户

客户是一家全球领先的半导体解决方案开发商。客户正在为智能手机摄像头和互联网服务供应商建立世界上最小的图像传感器,并围绕它建立相应的软件管道。

该项目

客户有一个复杂的基于图像处理的管道,作为其RGB传感器和相机ISP(图像信号处理器)模块的一部分。该项目的目标是将该软件管道的色度校正模块优化10倍,以实现更高的性能(在速度上)。

挑战

  • 一个非常幼稚的算法版本作为一个基础开始。
  • 对第三方库(如OpenCV)有很大的依赖性
  • 与数据带宽有关的问题必须在各个模块之间进行优化管理

典型的软件优化工作流程

一个典型的软件优化工作流程可以分为以下几个阶段:

第一阶段:这个阶段需要在目标平台上修改、编译和构建应用程序,最好是禁用所有编译器的优化。其目的是确定软件的正确性。

第二阶段:这一阶段被称为剖析,以找到应用程序花费大部分运行时间的代码区域。

第三阶段: 这个阶段是实际优化发生的地方

  • 启用相关的编译器优化
  • 缓存友好算法
  • 优化使用可用的寄存器和内存传输
  • 硬件特定的优化

所有的阶段及其相互依存关系可以用图示表示如下

Phases of a typical Software Optimization workflow

建议的解决方案

  • 创建控制流图
  • 手工优化模块以取代OpenCV的API调用
  • 设计缓存感知算法以减少缓存垃圾
  • 循环优化
    • 代码运动/循环不变性
    • 迭代重新排序
    • 循环解卷

MulticoreWare 的优势和方法

MulticoreWare 的基因库包括在性能优化方面根深蒂固的专业知识,特别是针对图像和视频处理管道。我们在为多核和异构计算环境创建软件解决方案和工具开发方面拥有深厚的经验。该项目将优化和视频/图像处理完美地结合在一起,这是MulticoreWare被认为是市场领导者的另一个领域。

重新定义技术架构–凭借我们在开发作为开源 SDK(x265/rpp/rocAL)的裸机图像/视频API方面的经验,MulticoreWare团队很容易就能移除OpenCV等依赖性第三方库。一旦去除外部依赖性,下一步就是设计新的控制流程。

结果

在预计的项目时间内,MulticoreWare团队能够将该算法的性能提高约8倍。

Share Via

Explore More

Aug 6 2025

提升x265中HEVC压缩的色度编码质量

客户与MulticoreWare合作,旨在提升x265 HEVC编码器在色度通道压缩方面的性能。该项目重点是改善彩色胶片颗粒表现并减少伪影,如色度块化和对角线失真,最终为专业媒体工作流程提供更准确、高效的编码方案。

Read more
Jun 10 2025

在新一代人工智能加速器上启用 PyTorch 2.0 模型

客户 本案例研究面向使用基于 ARM 的硬件平台并寻求 (a) 增加对较新人工智能模型的支持 (b) 优化人工智能模型在 ARM 后端上的性能的公司。

Read more
Jun 9 2025

用于多格式媒体处理的双向视频编码应用

家领先的电信运营商,提供高性能广播和流媒体基础设施解决方案,为企业和媒体客户提供通过传统网络和IP网络进行视频传输的先进功能。

Read more

GET IN TOUCH