我正在用C编写图形库,我想利用SSE指令来加速某些功能。我该怎么做呢?我正在使用GCC编译器,所以我可以依赖编译器内在函数。我还想知道是否应该改变我存储图像数据的方式(目前我只使用浮点数组) - 我是否需要使用类型为 float __attribute __的数组((vector_size(16) ))

编辑:我感兴趣的图像处理/处理类型包括仿射变换,几何和频域滤波(傅里叶分析)

我将非常感谢任何有关如何在C中使用SSE进行图像处理的参考或提示。

感谢

有帮助吗?

解决方案

我一直在使用Microsoft Visual C ++上的SSE进行一些图像处理。我发现最简单的方法是从一开始就对齐所有图像数据(在Visual C ++中用_aligned_malloc和_aligned_free完成)。虽然对齐是一个真正的痛苦,这就是为什么我只使用SSE进行算术运算(加,减,点积,那些东西)。如果我不得不做更复杂的事情,我通常只使用指针。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top