问题描述
- MMX, SSE指令进行 shuffle_bytes (RGBA 转 BGRA)
-
如何用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
时间: 2024-11-20 18:57:52