1月 2009

symbian alpha blending的问题

symbian系统api中对alpha混合的实现不是很好,至少不是很灵活,比如必须配合256级灰度mask图等,如果只是想填充半透明的矩形区域的话这样显然比较浪费内存。比较好的方法是自己实现类似矩形半透明填充等的算法,也就是那个src*alpha+(1-alpha)*dst的alpha混合算法,通过一些多项式合并以及用整数运算代替浮点运算的方法,可以对其执行效率有一定的优化,在内存允许的情况下,使用查表的方式可以对速度有更进一步的提高。另一个问题是,对于N95类ARMv6架构的CPU来说,如何在生成exe的时候使编译器支持armv6指令从而使用simd对alpha混合等大量像素级的数据运算进行并行优化?目前研究了一段时间也没发现carbide上能启用armv6的方式,我想是由于需要对N73类同为3rd的机型的兼容吧。