2 lsong98cn lsong98cn 于 2016.02.24 10:23 提问

MMX, SSE指令进行 shuffle_bytes (RGBA 转 BGRA)

如何用MMX,SSE进行RGBA转BGRA?
算法如下,我不会用C语言写。麻烦高手实现以下。
假定2快连续内存 src 和 dst

  1. src 的 每个DWORD(32位)与 0x00FF00FF进行与操作 放到 dst
  2. src 的 每个DWORD(32位)与 0xFF00FF00进行与操作 放到 B
  3. 对于 B 的个DWORD(32位)进行循环左移8位,
  4. 对于 B 的每个WORD(16位) 进行循环左移8位,
  5. 最后 B+dst 比如: 0xAABBCCDD 转换为 0xCCBBAADDB 第一步 dts 为 0x00BB00DD 第一步 B 为 0xAA00CC00 第一步 B 为 0x00CC00AA 第一步 B 为 0xCC00AA00 追后 dst+B 为 0xCCBBAADD
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
使用MMX/SSE汇编指令集优化视频开发
1、汇编指令集 目前大部分的PC机采用的都是Intel或者AMD的CPU,其支持的多媒体汇编指令有: MMX:多媒体扩展指令(MultiMedia eXtention),该指令由Intel在1996年为Pentium处理器开发,包括了57条多媒体指令,可以i一次处理多个数据。但是MMX指令不能与X86浮点运算指令同时执行,在某些场合使用受到一定限制。 SSE:SIMD扩展指令集(Stream
MMX,SSE,SSE2扫盲
MMX 指令集 MMX(Multi Media eXtension,多媒体扩展指令集)指令集是Intel公司于1996年推出的一项多媒体指令增强技术。MMX指令集中包括有57条多媒体指令, 通过这些指令可以一次处理多个数据,在处理结果超过实际处理能力的时候也能进行正常处理,这样在软件的配合下,就可以得到更高的性能。MMX的益处在于, 当时存在的操作系统不必为此而做出任何修改便可以轻松地
关于GCC下使用内建的多媒体指令集(MMX、SSE)函数
 在VC2005以上版本(包括2005)有非常丰富的针对x86架构处理器指令集的内建函数,包括典型的BFS、RDTSC、以及MMX、3DNOW!(+)、SSE、SSE2。到VC2008以后又支持了SSE3、SSSE3、以及SSE4A、SSE4.1和SSE4.2。然而,当这些搬到GCC上时用起来就显得十分麻烦。下面我就先举一个VC2008上的例子:#include #include
SSE指令集系列之三----整数运算指令
6. SSE整数运算指令   pavgb  MM,MM/m64       pavgb XMM,XMM/m128   把源存储器与目的寄存器按字节无符号整数相加,再除以2,结果四舍五入为整数放入目的寄存器。   源存储器为m128时,内存变量地址必须16字节对齐.     pavgw MM,MM/m64   pavgw XMM,XMM/m128   把源存储器与目的寄存器按字无符
【整理】SIMD、MMX、SSE、AVX、3D Now!、neon——指令集大全
http://blog.csdn.net/conowen/article/details/7255920 SIMD SIMD单指令流多数据流(SingleInstruction Multiple Data,SIMD)是一种采用一个控制器来控制多个处理器,同时对一组数据(又称“数据向量”)中的每一个分别执行相同的操作从而实现空间上的并行性的技术。在微处理器中,单指令流多数据流技术
MMX和SSE的运用
源地址:http://falloutmx.blog.163.com/blog/static/3923602020101024914425/
单数据多指令(SIMD) MMX SSE AVX
概述 SIMD是指单指令多数据技术,它已经成为Intel处理器的重要性能扩展。目前Intel处理器支持的SIMD技术包括MMX,SSE,AVX. MMX提供了8个64bit的寄存器进行SIMD操作,SSE系列提供了128bit的8个寄存器进行SIMD指令操作。而最新的AVX指令则支持256bit的SIMD操作。 目前SIMD指令可以有四种方法进行使用分别是汇编语言,C++类,编译器Intri
MMX和SSE
MMX MMX: 是MultiMedia eXtensions(多媒体扩展)的缩写,是第六代CPU芯片的重要特点。MMX技术是在CPU中加入了特地为视频信号(Video Signal),音频信号(Audio Signal)以及图像处理(Graphical Manipulatio
SIMD(单道指令多道数据流)指令(MMX/SSE1/SSE2)详解(中文).
http://www.aogosoft.com/bbs/view.asp?id=74373 作者:ham 向作者致敬! SIMD(单道指令多道数据流)指令(MMX/SSE1/SSE2)详解(中文).还有更多的多媒体指令集,SSE3,SSE4
MMX与SSE优化策略描述
上回讲到针对整数运算的MMX优化技术,然而真正大运算量的图形和声音处理大都用的是浮点运算,而且现在对浮点运算的要求也是越来越高,在这样一个条件下INTEL终于在Pentium III处理中增加针对浮点运算优化的SSE指令,所以所有用过SSE指令的程序必须在Pentium III或者Althon XP以后的CPU上才来运行。  SSE全新定义了8个新的128位寄存器xmm0-xmm7,比MMX