FastCV SDK发行版本说明(1)
1. 简介
FastCV SDK 是一组为 ARM 实现的算法,并针对高通的 Snapdragon 处理器进行了优化。
1.1 平台
目前支持以下库:
1. Android 32 bit and 64 bit library
2. IA-32 (x86) Win32 and MS Visual C++ 2010, 2012, and 2013.
3. IA-32 (x86) Win64 and MS Visual C++ 2012, and 2013.
1.2 安装
可以通过多种方式将库和头文件合并到项目中。 软件中没有写入路径,因此不需要特定的安装路径。
1.3 操作模式
为了获得针对高通Snapdragon处理器实现的算法的优势,应该调用 API 作为初始化和取消初始化过程的一部分。
1.3.1 初始化过程
作为初始化过程的一部分,以下API
FASTCV_API int fcvSetOperationMode(fcvOperationMode mode)
应该被调用。 应根据应用目标选择一个选项。
以下是可用的fcvOperationMode操作:
Operation mode | Description |
---|---|
FASTCV_OP_LOW_POWER | 除非QDSP速度比CPU速度慢3倍,否则将使用QDSP实现。 |
FASTCV_OP_PERFORMANCE | 将使用最快的实现。 |
FASTCV_OP_CPU_OFFLOAD | QDSP实现将在可用时使用,否则它将寻找GPU和CPU实现。 |
FASTCV_OP_CPU_PERFORMANCE | 将使用CPU最快的实现。 |
1.3.2 取消初始化
作为取消初始化过程的一部分,以下API
FASTCV_API void fcvCleanUp( void )
应该被调用。
2 发行版本的变化
2.1 版本编号方案
新的发布通常出于以下原因:
- 对先前发布的 API 的更改
- 添加新功能
- 性能改进和/或错误修复——也称为实现修改
每种动机对库用户都有不同程度的影响。 通用版本编号方案关注这种不同的动机。 给定版本 ID:A.B.C
“A”的增加表示先前发布的 API 已更改,因此开发人员可能会遇到编译问题,需要修改其代码以遵守修改后的 API。 Qualcomm 将尽一切努力将这些变化降至最低。 此外,可能会出现新的功能和实现修改。
“B”的增加表示库中添加了新函数,因此附加功能可用,但现有 API 没有改变。 此外,可能存在实施修改。
“C”的增加表示仅进行了实现修改。
注意:
发行版1.0.2是对外发布的最初版本。
2.2 命名修改策略
没有API修改,这将影响使用fastCV库以前版本的应用程序的兼容性。然而,有相当数量的函数被确定需要更改函数签名。为了保持向后兼容性,并继续改进fastcv库,以下策略被应用于需要改变函数签名的函数:
首先,保留现有的API及其先前存在的函数签名。这允许库保持向后兼容性。接下来,将一个新函数添加到库中,该函数与原函数共享相同的名称,只是名称后面附加了“_v2”(版本#2)。版本2函数被进一步修改以根据需要更改函数签名。鼓励开发人员迁移到“_v2”函数以使用修改后的API,但是,对于当前版本,这种迁移不是强制的。在未来的版本中,release version 2.0.0,带有原始函数签名的原始函数将被删除,_v2函数将连同其函数签名一起重命名为原始函数名。
例如:
Release 1.0.4:
void A (void);
Release 1.1.0:
void A (void);
void A_v2 (int x); // New function signature added
Release 2.0.0
void A (int x);