gpt4 book ai didi

c++ - 有人有优化的函数来通过 alpha 预乘位图吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:01:35 27 4
gpt4 key购买 nike

GDIPlus 混合函数使用 alpha 位图预乘 rgb channel 以提高效率。然而,预乘 alpha 的成本非常高,因为您必须一个一个地处理每个像素。

看起来它会是 SSE 组装的一个很好的候选者。这里有人想分享它的实现吗?我知道这是一项艰苦的工作,所以这就是我问的原因。我不是想偷你的工作。如果可以的话,你会得到我所有的考虑。

编辑:我不是想通过软件进行 alpha 混合。我正在尝试将图像中每个像素的每个颜色分量与其 alpha 预乘。我这样做是因为 alpha 混合是通过以下公式完成的:dst=srcsrc.alpha+dst(1-dst.alpha) 但是 AlphaBlend Win32 函数确实实现了 dst=src+dst( 1-dst.alpha) 出于优化原因。为了获得正确的结果,您需要在调用 AlphaBlend 之前让 src 等于 src*src.alpha。

因为我对汇编知之甚少,所以我会花一些时间来写,所以我问是否有人愿意分享它的实现。 SSE 会很棒,因为在论文中软件混合 alpha 的增益为 300%。

最佳答案

这里有一篇好文章。它有点旧,但您可能会在使用 MMX 实现 alpha 混合的部分中找到一些有用的东西。这可以很容易地转换为 SSE 指令,以利用更大的寄存器大小(128 位)

MMX Enhanced Alpha Blending

此处为英特尔应用说明,带有源代码

Using MMX™ Instructions to Implement Alpha Blending

关于c++ - 有人有优化的函数来通过 alpha 预乘位图吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/759778/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com