W3C home > Mailing lists > Public > www-svg@w3.org > February 2010

Re: feConvolve matrix bias property premultiplied or not?

From: Jasper van de Gronde <th.v.d.gronde@hccnet.nl>
Date: Tue, 16 Feb 2010 15:06:02 +0100
Message-ID: <4B7AA64A.6020304@hccnet.nl>
To: Erik Dahlstrom <ed@opera.com>
CC: Robert Longson <longsonr@gmail.com>, www-svg@w3.org
Erik Dahlstrom wrote:
> It's agreed that this is probably not what one wants. Considering that 
> @bias is probably not that widely used at the moment we should try to 
> make it clear in the spec and make @bias useful.

Agreed.

> How about changing the spec to say something like the following for the 
> application of @bias:
> ...

Since no one has started screaming that it's a terribly bad idea to use 
premultiplied bias values I guess it should be okay to do something like 
this :) For reference, the pseudo-code in the SVG specification suggests 
the following (preserveAlpha=false):
-------------------------------------
Option 1:
   aF = filtered alpha without bias
   cF = filtered (premultiplied) color without bias
   aR = aF + bias
   cR = cF + bias
-------------------------------------

I previously suggested:
-------------------------------------
Option 2:
   cR = cF + bias*aR
-------------------------------------

You seem to suggest:
-------------------------------------
Option 3:
   cR = cF + bias*(aR-bias)
-------------------------------------
I'm not sure what the advantage of this would be though. For example, if 
you have a uniformly colored shape (opacity also uniform) and apply the 
filter -1 1 (with bias=0.5) I would expect a response of 
(0.25,0.25,0.25,0.5), and not (0,0,0,0.5).

Another option would be to do an explicit conversion from and to 
premultiplied colors:
-------------------------------------
Option 4:
   cR = (cF/aF + bias)*aR
-------------------------------------
Conceptually this might be cleaner, but it does have the disadvantage of 
needing a division. Specifically, what color should result if aF=0?
Received on Tuesday, 16 February 2010 14:06:43 GMT

This archive was generated by hypermail 2.3.1 : Friday, 8 March 2013 15:54:44 GMT