【发布时间】:2013-08-25 15:13:06
【问题描述】:
我想使用 MMX 指令集来优化我的 Linux C 程序,该程序对以 RGB 格式存储的图像执行大量操作(每个 RGB 组件都存储在一个无符号字符中)。这些操作是微不足道的:我从另一个像素中减去一个图像,并累加差值的绝对值之和。 (基本上,我有一个小图像或图案,我试图找出该图案是否存在于更大的图像中)。
我知道这可以使用 MMX 指令以汇编语言编码,以 SIMD 方式执行单个字节操作。但是,有没有更简单的方法?可能是使用 MMX 指令的库或更高级别的接口?
【问题讨论】:
-
你看过这个项目吗? libjpeg-turbo
-
嗯,感谢您的帮助,但我认为这与我的问题无关。 :)
-
实际上,这个页面是一个很好的简洁描述和如何将 MMX 指令合并到 GNU C 代码中的示例:vast.uccs.edu/~tboult/frame/Boult/linux-mmx.html
-
试试英特尔 IPP 库,它们有 linux 版本,并在内部使用 SIMD 指令。不幸的是,它是一个付费软件 SDK(免费再分发),但您无需购买任何东西即可安装和使用一段时间。
-
英特尔 C 编译器不是免费用于非商业用途吗?
标签: c image-processing mmx