Re: Rendering quality (subsampling)

Steve Maher <[email protected]>
Newsgroups gmane.text.xml.batik.user
Message-ID <CAEEDN15txTzwW1o9RsS8hjjrRz2zoGXquVm7CYJTG4OJqcB4tw@mail.gmail.com>
Thanks for the comments Martin (and Jeremias).

I ended up going with the oversized rendering and scaling down the
resulting image.  Interestingly, that too had surprising, unwanted effects
- I was using Java 2d.  Even testing on Gimp, using high quality scaling,
the circle that overlaps four pixels evenly, when scaled down from 400 x
400 (or 100 x 100) pixels to 4 x 4 ends up with uneven intensities.  I
didn't investigate deeply but there must be some degenerate case with the
interpolation when you get down to just a few pixels.

So I wrote my own scaling software.  It considers my 400 x 400 image to be
made of 4 "superpixels" that are 100 x 100.  Then I get a single value for
each of my superpixel (taking average intensity) and get a correct 4 x 4.
 Basic supersampling.  Works well.

Steve

On Thu, Dec 22, 2011 at 4:42 AM, Martin J <[email protected]> wrote:

> FWIW, my experience is that regrettably, the HW/OS combo is key to the
> image rendering quality; I had a servlet app I developed on Mac OS X
> that produced SVG images on demand that had to be returned to the Web
> client as PNG. On the Mac, the rendering was extremely good, but when
> run on a PC/Linux server, it produced unacceptable images. In our
> case, this issue was mostly that of poor text rendering at small type
> sizes, due to bad anti-aliasing. After a lot of testing, we decided to
> get a Mac dedicated to image rendering!   YMMV.
> best
> Martin
>
> On 14 December 2011 16:01, Steve Maher <[email protected]> wrote:
> > Hi,
> >
> > I'm looking for a high-quality SVG renderer.  Batik's rasterizer seems
> to be
> > the best out of the three I've tried, but I need it to do better.  I've
> > tried all the image-rendering, shape-rendering, color-rendering hints
> > without much (any?) change.  I've searched the source - mainly to try to
> > increase any subsampling quantities - but had no luck.
> >
> > I'm dealing with small circles that need to be rendered "correctly" for a
> > custom projector in our lab at work.
> >
> > For example, for a circle of radius .5 pixels (no stroke), and centered
> in
> > the middle of a pixel (in other words, a circle touching the edges of a
> > pixel), the rendered pixel intensity should be roughly PI/4 times the
> > intensity of the circle (because the ratio of circle area to square area
> is
> > PI/4).
> >
> > Also, if I rotate the circle by 45 degrees (rotation centered on corner
> of
> > pixel), there will be a 4 pixel square used to render the circle, with
> most
> > intensity split between two adjacent pixels and much less intensity split
> > between the other two adjacent pixels.
> >
> > Batik comes close, but the intensity is high in the first case and in the
> > second case, the intensity is not symmetric between the adjacent pixels
> > (like the rotation wasn't exactly 45 degrees).
> >
> > One option I am exploring is to artificially enlarge the scene, render
> by 1
> > pixel circle across, oh, 100 pixels, and then shrink the image.
>  Effectively
> > increasing the subsampling of the circle to determine pixel intensity.  I
> > was hoping to be able to do that natively in the Batik source - or use
> some
> > other SVG renderer.
> >
> > Any tips are appreciated -
> >
> > Regards,
> > Steve
> >
> >
>
>
>
> --
> From my MacBook Pro
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.