[Webkit-unassigned] [Bug 30333] [Color] (Un)premultiplication code is not optimal and broken in alpha==0 case

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Oct 13 06:50:58 PDT 2009


Sebastian Dröge <slomo at circular-chaos.org> changed:

           What    |Removed                     |Added
  Attachment #41101|                            |review?
               Flag|                            |

--- Comment #1 from Sebastian Dröge <slomo at circular-chaos.org>  2009-10-13 06:50:58 PDT ---
Created an attachment (id=41101)
 --> (https://bugs.webkit.org/attachment.cgi?id=41101)

Now to the explanation. First of all, for consistency and correctness the
resulting value of (un-)premultiplication with a 0-alpha should result in (0,
0, 0, 0) instead of the input value without changes. This is because:
a) unpremultiplication: if input alpha is 0 all other components *must* be 0
too, otherwise the premultiplication was done incorrectly
b) premultiplication: for non-0 alpha we multiply with alpha, if we do the same
for 0 alpha the output will be (0, 0, 0, 0) as it should

For the non-0 alpha cases it makes more sense to round to the nearest integer
instead of always rounding upwards. Rounding upwards results in an uneven
distribution of color values, i.e. a 0 component is much less likely than every
other component value.

Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

More information about the webkit-unassigned mailing list