Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C Linux下基于MMX的图像处理_C_Image Processing_Mmx - Fatal编程技术网

C Linux下基于MMX的图像处理

C Linux下基于MMX的图像处理,c,image-processing,mmx,C,Image Processing,Mmx,我想使用MMX指令集来优化我的Linux C程序,该程序对以RGB格式存储的图像执行大量操作(每个RGB组件存储在一个无符号字符中)。这些操作很简单:我将一个图像从另一个像素中逐像素减去,然后累积差值的绝对值之和。(基本上,我有一个小的图像,或者说模式,我试图在一个更大的图像中找到这个模式) 我知道这可以用汇编语言编码,使用MMX指令以SIMD方式执行单个字节操作。然而,有没有更简单的方法?可能是使用MMX指令的库或更高级别的接口?通常有一个标题#包含,通常称为intrinsics.h。演示如何

我想使用MMX指令集来优化我的Linux C程序,该程序对以RGB格式存储的图像执行大量操作(每个RGB组件存储在一个无符号字符中)。这些操作很简单:我将一个图像从另一个像素中逐像素减去,然后累积差值的绝对值之和。(基本上,我有一个小的图像,或者说模式,我试图在一个更大的图像中找到这个模式)


我知道这可以用汇编语言编码,使用MMX指令以SIMD方式执行单个字节操作。然而,有没有更简单的方法?可能是使用MMX指令的库或更高级别的接口?

通常有一个标题
#包含
,通常称为
intrinsics.h
。演示如何将MMX与C一起使用。它包括文件
emmintrin.h
。也许这个文件存在于Linux中


此外,如果您正在使用最新的硬件,您可能希望至少使用SSE,如果不是SSE2的话。我相信它们也可以以类似的方式包含进来。

你看过这个项目吗?嗯,谢谢你的帮助,但我认为这与我的问题无关实际上,本页是如何将MMX指令合并到GNU C代码中的一个很好的简明说明和示例:尝试使用Intel IPP LIB,它们有linux版本,并且在内部使用SIMD指令。不幸的是,它是一个payware SDK(免费redistribs),但您可以安装并使用它一段时间而不必购买任何东西。英特尔C编译器不是免费的非商业用途吗?是的,我有一个非常新的CPU。我应该使用SSE2而不是MMX指令吗?这可能会容易得多,因为我直接使用C中的_mm_add_pi8()之类的指令。这等同于用汇编语言编写MMX指令吗?