On Tue, Dec 22, 2015 at 9:15 PM, Bill Spitzak <spit...@gmail.com> wrote: > > > On Tue, Dec 22, 2015 at 4:21 AM, Oded Gabbay <oded.gab...@gmail.com> wrote: >> >> On Sat, Dec 12, 2015 at 8:06 PM, <spit...@gmail.com> wrote: >> > From: Bill Spitzak <spit...@gmail.com> >> > >> > With the other patch to put error on the center pixel, this produces >> > the same result as BOX.IMPULSE filter. >> > --- >> > pixman/pixman-filter.c | 2 ++ >> > 1 file changed, 2 insertions(+) >> > >> > diff --git a/pixman/pixman-filter.c b/pixman/pixman-filter.c >> > index 00126cd..64981cd 100644 >> > --- a/pixman/pixman-filter.c >> > +++ b/pixman/pixman-filter.c >> > @@ -327,7 +327,9 @@ pixman_filter_create_separable_convolution (int >> > *n_values, >> > subsample_y = (1 << subsample_bits_y); >> > >> > width = filter_width (reconstruct_x, sample_x, sx); >> > + if (width < 1) width = 1; >> >> Please put the assignment in a new line > > > Okay I will get these. >> >> >> > height = filter_width (reconstruct_y, sample_y, sy); >> > + if (height < 1) height = 1; >> >> Same comment >> >> > >> > *n_values = 4 + width * subsample_x + height * subsample_y; >> > >> > -- >> > 1.9.1 >> > >> > _______________________________________________ >> > Pixman mailing list >> > Pixman@lists.freedesktop.org >> > http://lists.freedesktop.org/mailman/listinfo/pixman >> >> I have the same request as with the other patch (center pixel). I can >> see the visual difference - the picture in scale demo doesn't >> disappear when reconstruct & sample are IMPLUSE - but I would like >> some additional explanation to better understand. >> >> In which cases width/height are smaller than 1 ? How does that happen >> ? How this patch solves it ? > > > The impulse filters have a width of zero (if you could actually plot them > they are an infinitely thin and infinitely tall line with an area of 1.0). > Once convolved with any other filter you will get a filter of width 1, with > a value equal to the other filter at the center of the impulse filter. The > convolving code detects the impulse filters and calculates this directly (it > is possible the impulse filter calculating function, which returns 1.0, is > not necessary as it is never called?). > > The proper result of impulse+impulse is 1.0 when the subsample is in the > pixel center and 0.0 otherwise. But I don't think the result is useful (it > means there are dots where the pixel centers line up). Also it would require > the code to handle un-normalized filters which would complicate it a good > deal. So I just made it produce the same as BOX.IMPULSE (ie nearest pixel). > OK, so assuming you fix the above and put this into the commit msg than this patch is:
Acked-by: Oded Gabbay <oded.gab...@gmail.com> >> >> >> Oded > > _______________________________________________ Pixman mailing list Pixman@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pixman