我正在用C编写图形库,我想利用SSE指令来加速某些功能。我该怎么做呢?我正在使用GCC编译器,所以我可以依赖编译器内在函数。我还想知道是否应该改变我存储图像数据的方式(目前我只使用浮点数组) - 我是否需要使用float __attribute__ ((vector_size (16)))
类型的数组?
编辑:我感兴趣的图像处理/处理类型包括仿射变换,几何和频域滤波(傅里叶分析)
我将非常感谢任何有关如何在C中使用SSE进行图像处理的参考或提示。
感谢
答案 0 :(得分:2)
我一直在使用Microsoft Visual C ++上的SSE进行一些图像处理。我发现最简单的方法是从一开始就对齐所有图像数据(在Visual C ++中用_aligned_malloc和_aligned_free完成)。虽然对齐是一个真正的痛苦,这就是为什么我只使用SSE进行算术运算(加,减,点积,那些东西)。如果我不得不做更复杂的事情,我通常只使用指针。