如何用MMX,SSE进行RGBA转BGRA?
算法如下,我不会用C语言写。麻烦高手实现以下。
假定2快连续内存 src 和 dst
- src 的 每个DWORD(32位)与 0x00FF00FF进行与操作 放到 dst
- src 的 每个DWORD(32位)与 0xFF00FF00进行与操作 放到 B
- 对于 B 的个DWORD(32位)进行循环左移8位,
- 对于 B 的每个WORD(16位) 进行循环左移8位,
- 最后 B+dst 比如: 0xAABBCCDD 转换为 0xCCBBAADDB 第一步 dts 为 0x00BB00DD 第一步 B 为 0xAA00CC00 第一步 B 为 0x00CC00AA 第一步 B 为 0xCC00AA00 追后 dst+B 为 0xCCBBAADD