●具有CPU的图形处理单元(GPU)

●具有加速器以及CPU的数字信号处理器

●移动“应用处理器”

●具有CPU的现场可编程门阵列(FPGA)

各类处理器,及其在嵌入式视觉应用上的关键优缺点

高性能嵌入式CPU

在很多情况下,嵌入式CPU不能提供足够的性能实现要求较高的视觉算法——也不能够以可以接受的价格或者功耗来满足性能要求。通常,存储器带宽是关键性能瓶颈,因为视觉算法通常使用大量的数据,不会重复访问相同的数据。嵌入式CPU的存储器系统无法设计适应这类数据流。然而,与大部分处理器相类似,随着时间的推移,嵌入式CPU的性能在逐渐增强,在某些情况下,能够提供足够的性能。

在可能的情况下,有足够的理由在CPU上运行视觉算法。首先,大部分嵌入式系统需要CPU来实现各种功能。如果所需要的视觉功能能够通过这种CPU来实现,那么,相对于多处理器解决方案相比,这降低了系统的复杂度。而且,大部分视觉算法一开始是在PC上开发的,使用了通用CPU及其相关的软件开发工具。PC CPU和嵌入式CPU (及其相关的工具)之间的相似性意味着,与其他类型的嵌入式视觉处理器相比,一般比较容易在嵌入式CPU上通过嵌入方式实现视觉算法。最后,嵌入式CPU使用起来通常比其他类型的嵌入式视觉处理器更简单,这是因为其相对直观的体系结构、成熟的工具以及其他的应用开发基础支持平台等,例如,操作系统。

结合了CPU的ASSP

ASSP是专用、集成度很高的芯片,定制用于特殊应用或者专业应用。ASSP可以采用CPU,或者使用单独的CPU芯片。凭借专业化,与其他类型的处理解决方案相比,ASSP通常具有优异的成本和能效。在其他技术中,ASSP通过使用专用协处理器和加速器来提高效率。而且,由于ASSP主要集中在专业应用上,因此,通常需要大量的应用软件。

这种专业化使得ASSP能够实现很高的效率,但是,也带来了很大的局限:缺乏灵活性。设计用于某一应用的ASSP一般不能用于其他应用,甚至目标应用相关的应用。ASSP使用唯一的体系结构,与其他类型的处理器相比,更难进行编程。实际上,某些ASSP并不支持用户编程。另一方面的考虑是风险问题。ASSP通常由小供应商提供,这可能会增加难以提供芯片的风险,或者无法提供后续产品以帮助系统设计人员更新其设计,设计人员不得不从头开始进行设计。

具有CPU的GPU

GPU主要是用于3D图形,并且越来越多的用于实现其他功能,例如,视觉应用等。目前,个人计算机的GPU倾向于可编程,除了3D图形还能完成其他功能。这类GPU被称为“通用GPU”,或者“GPGPU”。GPU有很强的并行处理能力。它们在个人计算机上是独一无二的。可以免费使用GPU软件开发工具,从GPGPU开始进行编程并不是很复杂。出于这些原因,在PC上第一次开发其计算机视觉算法的开发人员通常采用GPU作为并行处理引擎,他们出于仿真或者原型开发的目的,需要加速算法的执行。