GDIPlus 混合函数使用 alpha 位图的预乘 rgb 通道来提高效率。然而,通过 alpha 进行预乘是非常昂贵的,因为您必须逐个处理每个像素。
它似乎是 SSE 组装的一个很好的候选者。这里有人想分享它的实现吗?我知道这是一项艰苦的工作,所以这就是我问的原因。我不是想偷你的工作。如果可以的话,你会得到我所有的考虑来分享这个。
编辑:我不想通过软件进行 alpha 混合。我正在尝试将图像中每个像素的每个颜色分量与其 alpha 预乘。我这样做是因为 alpha 混合是通过以下公式完成的:dst=src src.alpha+dst (1-dst.alpha) 但是 AlphaBlend Win32 函数确实实现了 dst=src+dst(1-dst.alpha)优化原因。要获得正确的结果,您需要在调用 AlphaBlend 之前 src 等于 src*src.alpha。
因为我对汇编知之甚少,所以我会花一些时间来写,所以我问是否有人愿意分享它的实现。SSE 会很棒,因为在论文中,软件 alpha 混合的增益是 300%。