[MPlayer-dev-eng] Re: [PATCH] cmov detection and draw_alpha fixes
Ivan Kalvachev
ikalvachev at gmail.com
Fri Mar 31 22:21:34 CEST 2006
2006/3/31, Alban Bedel <albeu at free.fr>:
> On Fri, 31 Mar 2006 10:53:53 +0300
> "Ivan Kalvachev" <ikalvachev at gmail.com> wrote:
>
> > now let's say we have image pixles with variable "image" we have
> > bitmap pixel with variable "bitmap" and alpha for the same bitmap
> > called "alphamap", (all values are floats) so
> >
> > newimage = image*alphamap + bitmap*(1-alphamap).
> >
> > now, the (bitmap*(1-alphamap) depends only on the data from the
> > bitmap, not the data from the image. This means it could be
> > precalculated and stored. so:
> >
> > newimage = image*alphamap + calcmap.
> >
> > Now, if you have overflow you are most likely using "bitmap" instead
> > of "calcmap" or there is some kind of rounding error (e.g. for speed
> > reasons alpha 1.0 is 0xff not 0x100)
>
> Seems so. However i still think their is a pb, at least that's not what
> is done for the subtitles. The code let the bitmap untouched and instead
> modify the alphamap such that image*alphamap + bitmap doesn't overflow.
> This will make sure the subs get over the image, but it's not really
> correct blending.
>
> I don't like that system much anyway, if you want to change the alphamap
> you need to recompute the whole bitmap. Plus such operation is loosy,
> so no way to get back :( It doesn't matter much for the subs, but for the
> osd menu it is quiet annoying.
>
> Their is another alternative to the formula you have shown:
>
> newimage = alphamap*(newimage-bitmap) + bitmap
>
> It only add one substraction compared to the current method and it
> doesn't need you to botch your bitmap or alphamap before rendring.
> So what about using that instead ?
I'll think about it.
However I want to reproduce the bug you are trying to fix. Please give
me instructions. (consider that i've never been able to make -menu
work ;)
About cmov, you can commit it right away, i think lavc uses it.
More information about the MPlayer-dev-eng
mailing list