如何使用ARM汇编来转换RGBA与BGRA?

[复制链接]
查看11 | 回复3 | 2021-1-27 06:42:58 | 显示全部楼层 |阅读模式
由于两个颜色解释函数的差异,一个32位的颜色是BGRA(各占8位)排列的位图需要转换为RGBA
也就是R与B进行交换
想使用汇编来进行优化,但是又没什么头绪...
请问有什么比较好的解决方案?
其实就是32位中的字节交换
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:42:58 | 显示全部楼层
没什么好方法,就是循环交换:
lodsd
xchgah,[esi-1]
mov[esi-3],ah
回复

使用道具 举报

千问 | 2021-1-27 06:42:58 | 显示全部楼层
没注意是要ARM汇编,上面是按X86写的。ARM不会,LZ自己改一下吧。
回复

使用道具 举报

千问 | 2021-1-27 06:42:58 | 显示全部楼层
不同的平台优化的效果往往不同,一种优化手段在一个平台上效果很好,但也
不能保证在另一个同样好,事实上效果可能反而会有倒退。
所以楼主最好在ARM上找一个好的C/C++编译器开启最大优化效果,然后观察
其反汇编,如果可以的话再进一步优化!因为对应平台上的优化器应该对该
平台作了足够多的优化判定,手头没有ARM环境,so...luck!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行