OpenCV的加速嵌入式系统开发中的应用
图2:SoC基本内部架构
现在,SoC最重要的部分不是硬件本身,而是可帮助开发人员通过ARM应用程序高效利用SoC全部性能的支持性软件,这不仅包括优化C语言编译器的熟悉工具,还包括加速常见信号处理任务的优化软件库,以及处理SoC中不同模块之间低级互动的驱动器。此外,它可能还包括支持特定厂商协处理器与加速器的特殊工具。这些工具相结合,可使嵌入式优化成为高级应用开发中一个简单透明的组成部分。
通过高效集成OpenCV等高级软件与器件厂商提供的低端软件,进而创建高效可行的系统,是嵌入式开发的重要挑战之一。例如,我们不妨考虑这样一种情况,SoC中包括了针对高强度计算的全功能数字信号处理器(DSP)。该DSP可能非常适合OpenCV的影像分析算法,尤其是在CPU缺乏原生浮点指令情况下更是如此,不过,要让OpenCV在DSP架构上运行,可能还有大量工作要做。让OpenCV等高级软件实现分区,并在整个SoC上无缝运行是软件开发工具的重要使命。
从嵌入式开发人员的角度来说,将应用的不同部分透明地交给SoC上最合适的模块来处理是再好不过的了。这样做能够帮助开发人员将更多资源集中到终端产品开发方面,从而*费更少的时间处理特定平台问题,这是嵌入式器件的独特优势。支持上述要求的软件工具则可在基本的处理功能与硬件功能基础上更进一步,这对开发人员而言具有更重要的意义,器件厂商必须满足这一要求,才能保持自身的竞争优势。
图3:嵌入式应用分区后,在异构多内核SoC上运行更高效
评论