- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在 Visual C++ 2010 中使用 OpenCV 中的 BRIEF 描述符来匹配两个图像中的点。
在the paper关于 BRIEF-descriptor 的内容是可以加快速度:
"The BRIEF descriptor uses hamming distance, which can be done extremely fast on modern CPUs that often provide a specific instruction to perform a XOR or bit count operation, as is the case in the latest SSE instruction set."
启用 SSE4.2 后应该会加速。我的问题只是如何在 Visual C++ 中执行此操作?
另一种方法是选择另一个支持 SSE4 的编译器。比如英特尔的ICC。这真的有必要吗?
最佳答案
不幸的是,它不是那样工作的。
C/C++ 编译器可能会被告知在项目-> C/C++ -> 代码生成-> 启用增强指令集中使用特定的指令集。但它几乎什么都不做,在你的情况下,绝对没有。这是因为某些 CPU 指令无法从 C 语句轻松访问。一些编译器(如 Intel 的)在这方面比其他编译器做得更好,但是对于您想要实现的目标,没有一个编译器足够聪明。
你要做的就是找到具体的算法,学习SSE指令并用这些指令手动重写算法。你可以用纯汇编写,或者使用 intrinsic函数,可以从 C/C++ 调用,并在编译时发出 SSE 指令。
关于opencv - 如何在 Visual C++ 中启用 SSE4.2 指令集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10188252/
我是一名优秀的程序员,十分优秀!