MMX/SSE
文章平均质量分 71
feixiaku
这个作者很懒,什么都没留下…
展开
-
MMX及SSE优化--SSE篇
上回讲到针对整数运算的MMX优化技术,然而真正大运算量的图形和声音处理大都用的是浮点运算,而且现在对浮点运算的要求也是越来越高,在这样一个条件下INTEL终于在Pentium III处理中增加针对浮点运算优化的SSE指令,所以所有用过SSE指令的程序必须在Pentium III或者Althon XP以后的CPU上才来运行。 SSE全新定义了8个新的128位寄存器xmm0-xmm7,比MMX转载 2013-03-31 19:02:50 · 935 阅读 · 0 评论 -
MMX指令集
摘《directShow实务精选》P319 在下面的介绍中,使用[]区分不同数据类型的指令,如mov[d,q]实际上是两个指令:movd和movq,前者是DWORD类型数据的转移指令,后者是QWORD类型数据的转移指令。 1.数据转移指令(Data Movement): (1)movd; (2)movq;一次性将32位或64位的转载 2013-07-25 22:29:58 · 1285 阅读 · 0 评论 -
SSE2初学指南
IntroWhat is SSE2?SSE2 is an extension of assembly language which allows programs to execute one operation on multiple pieces of data at a time. Because SSE2 is assembly however, it only works转载 2013-03-31 19:05:51 · 796 阅读 · 0 评论 -
再谈MMX优化
这几天帮别人做了彩色空间转换的MMX优化,包括YUV420RGB,YUV420YUV422,UYVY->YUV420,感觉收获不少.MMX指令的确强劲,使用内联的MMX指令后转换速度比优化前平均提高了3-4倍.下面承接原来的MMX优化的入门篇稍微深入点讲解MMX指令的用法.首先在VC的内联汇编中使用MMX指令的确时相当方便,而且效率也非常高.推荐使用.一般有两种传送方式:数组和指针转载 2013-03-31 19:01:49 · 649 阅读 · 0 评论 -
使用SSE指令优化的数学函数(整理)
float _SSE_cos( float x){ float temp; __asm { movss xmm0, x movss xmm1, _ps_am_inv_sign_mask andps xmm0, xmm1 addss xmm0, _ps_am_pi_o_2 mulss xmm0, _ps_am_2_o_pi cvttss2si转载 2013-03-31 19:08:16 · 1500 阅读 · 0 评论 -
在视频格式转换中使用MMX和SSE指令集提高性能
大家都知道使用Overlay平面显示视频可能充分利用显示的硬件加速功能,自由缩放,同时显著降低CPU的消耗。但现在市场上流行的MP4,H.264板卡解压时往往输出的格式是YV12,这种格式在多数显卡上无法正常显示,一般需要转换为YUYV格式进行显示。一.直接C++代码进行转换void CDispOverlay::BufferFrame(UINT nID, // 通道编号转载 2013-03-31 19:07:40 · 1229 阅读 · 0 评论 -
MMX及SSE优化--MMX篇
MMX和SSE都是INTEL开发的基于SIMD(单指令多数据流)的技术。所谓单指令多数据流是指可以用一条指令可以完成多个数据的操作。虽然64位系统已经推出,但是我们大部分都是使用32位系统,所以如果要完成两个128位的相加运算,用普通32位指令很明显要执行4条相加指令,而基于64位的MMX指令只需要执行两次即可完成,更强大的SSE能一次处理128位,故一次就可以完成操作,所以采用MMX及SSE优化转载 2013-03-31 19:06:50 · 1068 阅读 · 0 评论 -
SSE所需头文件
Q:seafrog:您好,我看到你译著的两篇关于MMX、SSE编程的文章,很受启发。然而,它们都是在Visual Studio.NET下使用。我想在Visual C++里面使用,可在我的机器里找不到emmintrin.h和xmmintrin.h两个头文件。我已在机器上安装了Visual C++,是不是需要从INTEL的网站下载什么包解压后才有这两个文件呢?如果是需要下载什么包?在VC中究竟怎样配置转载 2013-03-31 19:04:46 · 1413 阅读 · 0 评论 -
MMX和SSE的运用
Intel的MM技术是对Intel体系结构(IA)指令集的扩展。该技术使用了单指令多数据技术(SIMD)技术,以并行方式处理多个数据元素。MMX?指令集增加了57条新的操作码和一个新的64位四字数据类型,增加了八个新的64位MMX寄存器,每个寄存器可按名称MM0-MM7直接访问。这意味着我们可以在一个寄存器里最多存8个数据(最小单位字节)。 SSE系列是MMX的超集,直到SSE2才跟MMX有本转载 2013-03-31 18:55:48 · 1348 阅读 · 0 评论 -
SSE指令介绍及其C、C++应用
SSE是英特尔提出的即MMX之后新一代(当然是几年前了)CPU指令集,最早应用在PIII系列CPU上。现在已经得到了Intel PIII、P4、Celeon、Xeon、AMD Athlon、duron等系列CPU的支持。而更新的SSE2指令集仅得到了P4系列CPU的支持,这也是为什么这篇文章是讲SSE而不是SSE2的原因之一。另一个原因就是SSE和SSE2的指令系统是非常相似的,SSE2比SSE多转载 2013-03-31 19:04:07 · 746 阅读 · 0 评论 -
SSE2指令集
1移动指令:1. Movapsmovaps XMM,XMM/m128 movaps XMM/128,XMM把源存储器内容值送入目的寄存器,当有m128时,必须对齐内存16字节,也就是内存地址低4位为0.2. Movupsmovups XMM,XMM/m128 movaps XMM/128,XMM把源存储器内容值送入目的寄存器,但不必对齐内存1转载 2013-12-27 00:30:26 · 2597 阅读 · 0 评论