Hexagon SDK部分模块架构分析
Hexagon SDK能够帮助用户定制和扩展对aDSP的使用。本文具体讲解SDK中比较有代表的性的模块的架构,以便我们更好的学习、研究和使用。
Audio
音频框架提供了和音频硬件交互的端口。音频框架主要有三部分组成:encoders/decoders,pre/post processing topologies和 mixer。
encoders/decoders(编解码器):能够对一个信号或者一个数据流进行变换的设备或者程序。每路流都包含编解码器;
pre/post processing topologies(预处理/后处理拓扑结构):由一个或者多个后处理模块(PP)组成,根据他们被使用的路径可以分为四类:POPP(Per-Object Post-Processing)、COPP(Common-Object Post-Processing)、POREP(Per-Object Pre-Processing)和COPREP(Common-Object Pre-Processing)。
mixer(混合器):定义了流如何连接到设备。
音频结构如下图所示:
FastCV
通过使用优化后的FastCV动态库,允许用户开发DSP加速的计算机视觉应用程序。Hexagon SDK包含以下计算机视觉技术:
lib/fastcv/fastcv: FastCV API的实现接口;
lib/fastcv/dspcv: 本库提供用来调试aDSP性能的钩子函数。
下图给出了用户如何使用FastCV库:
应用程序在init/de-init时需要分别调用dspCV_init和dspCV_deinit API,创建aDSP时钟和线程池。客户端应用程序被分为Apps处理器和aDSP,它们之间是FastRPC接口。
Voice
声音处理路径是可以定制的,现在是和算法一起包裹在CAPI_V2接口中。它允许客户使用动态模型为Tx和Rx处理链定义动态拓扑结构。声音框架提供了I/O路径和音频硬件交互。声音路径结构详见下图: