- From: Rik Cabanier <cabanier@gmail.com>
- Date: Tue, 23 Jul 2013 10:00:57 -0700
- To: Dirk Schulze <dschulze@adobe.com>
- Cc: "robert@ocallahan.org" <robert@ocallahan.org>, "public-fx@w3.org" <public-fx@w3.org>
- Message-ID: <CAGN7qDCBkhCPZ_rbLdBVUpVEGrLOK1K7+yDVfCq0nY4p+QnKcQ@mail.gmail.com>
On Mon, Jul 22, 2013 at 11:51 PM, Dirk Schulze <dschulze@adobe.com> wrote: > > On Jul 23, 2013, at 8:30 AM, Robert O'Callahan <robert@ocallahan.org> > wrote: > > > On Tue, Jul 23, 2013 at 5:58 PM, Dirk Schulze <dschulze@adobe.com> > wrote: > > On Jul 23, 2013, at 7:41 AM, Robert O'Callahan <robert@ocallahan.org> > 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. Not necessarily. As you mentioned, certain filer operation always produce clamped values so it would be OK for the implementation to optimize those. I think you should remove the note and leave it up to the implementors if they want to optimize certain code paths.
Received on Tuesday, 23 July 2013 17:01:28 UTC