使用 SSE 指令进行快速图像操作?

发布于 2024-08-12 09:13:38 字数 291 浏览 6 评论 0原文

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

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

任何有关我应该如何使用 SSE 在 C 中进行图像处理的参考或提示将不胜感激。

谢谢

I am writing a graphics library in C and I would like to utilize SSE instructions to speed up some of the functions. How would I go about doing this? I am using the GCC compiler so I can rely on compiler intrinsics. I would also like to know whether I should change the way I am storing the image data (currently I am just using an array of floats) - do I need to use an array of type float __attribute__ ((vector_size (16))) ?

EDIT: the type of image manipulation/processing I am interested in include affine transformations, geometry, and frequency domain filtering (Fourier analysis)

Any references or tips on how I should go about using SSE for image manipulation in C would be much appreciated.

thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

盗琴音 2024-08-19 09:13:38

我一直在 Microsoft Visual C++ 上使用 SSE 进行一些图像处理。我发现从一开始就对齐所有图像数据(在 Visual C++ 中使用 _aligned_malloc 和 _aligned_free 完成)是最简单的。不过,对齐确实很痛苦,这就是为什么我只使用 SSE 进行算术运算(加、减、点积等)。如果我必须做更复杂的事情,我通常只使用指针。

I've been working on some image processing with SSE on Microsoft Visual C++. I've found it's easiest to align all image data (in Visual C++ that's done with _aligned_malloc and _aligned_free) right from the start. Alignment is a real pain though, that's why I only used SSE for arithmetic operations (add, subtract, dot product, those kinds of things). If I had to do more complicated things I generally just used pointers.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文