Re: [filter-effects] Color clamping of intermediate filter primitive results

On Jul 23, 2013, at 8:30 AM, Robert O'Callahan <> wrote:

> On Tue, Jul 23, 2013 at 5:58 PM, Dirk Schulze <> wrote:
> On Jul 23, 2013, at 7:41 AM, Robert O'Callahan <> wrote:
> > I'm afraid that your proposed change may be rather complex though. I'd like to see the details.
> grayscale, sepia, saturate, hue-rotate, invert, opacity, brightness and contrast are all filter operations that can be represented by a color matrix. Lets take a look at the following example:
> I understand all that. I'm just saying that you'll have to define exactly how filter primitives are combined into groups for clamping, and you'll be forcing implementations to do it that way.
> Also, note that in your example it seems no clamping is actually necessary, since the primitives you chose should not send any values out of the 0-255 range. (Except huerotate maybe?)

As long as values are between 0% and 100% for most of the shorthand they should be fine. However, this is not always the case for filters like brightness, saturate or contrast. Here you often want to go beyond 100%. To find the ranges for hue-rotate is a bit more math. I did not do the math yet, but checking the matrix multiplication (and especially summation) that is involved, I expect smaller ranges where you can assume that you don't need to clamp.

It would indeed require more detailed description in the spec and as you described require a definition of grouping of filter primitives. On the other hand, the spec requires clamping at the moment which is also forcing implementations to do it one certain way and in this case a less efficient way.


> Rob
> -- 
> Jtehsauts  tshaei dS,o n" Wohfy  Mdaon  yhoaus  eanuttehrotraiitny  eovni le atrhtohu gthot sf oirng iyvoeu rs ihnesa.r"t sS?o  Whhei csha iids  teoa stiheer :p atroa lsyazye,d  'mYaonu,r  "sGients  uapr,e  tfaokreg iyvoeunr, 'm aotr  atnod  sgaoy ,h o'mGee.t"  uTph eann dt hwea lmka'n?  gBoutt  uIp  waanndt  wyeonut  thoo mken.o w  

Received on Tuesday, 23 July 2013 06:51:45 UTC