[ptx] simple nonlinear antialiasing that is good for pictures.
anderson314159 at netscape.net
anderson314159 at netscape.net
Fri Sep 30 14:14:19 BST 2005
just re-subscribed to this excellent list, so please fill me in if ive
missed something on this subject.
i would like to suggest a simple algorithm to reduce aliasing in the
panorama stitching process.
the stitcher transforms the input images through a nonlinear remapping
transformation, tipicaly taking the planar projection image that the
camera produces, reducing barreling and remaping it onto another kind
of projection, cylindrical equirectangular or off axis planar. many
of the resulting remaping transformations involve a non-linear or
non-uniform scaleing across the image. this makes for a difficult
situation sometimes in removing aliasing effects from the resulting
images.
with the software you can use huge image resolution to avoid aliasing.
(sometimes memory and disk io intensive)
i would like to bring up for discussion a simple alternative, to
supersample randomly.
the input image taken by the camera is assumed to have no significant
aliasing but possibly much higher resolution than the output image. to
subsample the cameras image would introduce aliasing.
for this discussion imagine the input image is positioned correctly in
front of the eye point, as the eye would see the scene the camera saw.
consider a cilynder projection as an output image. wrap a cilynder
around the eye point with pixels of the output image to be centered on
a regular spaced grid laid out on the cylinder.
the software does the following:
for every output pixel on the cilynder,
shoot a ray from the eye through the output pixel center and
sample the intersection with the cameras image to color that output
pixel.
the resulting images are good if the output resolution is verry high,
but if someone were to be trying to produce modest resolution panorama
image rendering of a scene featuring say a white picket fence for
example, it would be realy ugly!
a simple alternative to reduce the aliasing would be to supersample
randomly:
for each and every output pixel on the cilynder,
shoot a biradge of random rays from the eye tightly grouped around
the output pixel center and
sample all the intersections with the cameras image, use all the
samples to color that output pixel.
this would reduce aliasing artifacts despite the nonuniform scaleing
quality of the mapping. this kind of process produces a nice looking
image because any aliasing that results from under sampleing would be
broken up by the randomness and not look like strong regular
frequencies, which is a good quality for pictures.
this is exactly like antialiasing in ray tracing algorithms where a
bunch of random rays are fired through each pixel.
the same considerations should apply like finding how many rays need to
be shot for each pixel.
ray tracing algorithms use a statistical criterion to determine for
each pixel when enough rays have been fired for that pixel. moast
pixels get only a few rays, but pixels near edges get alot of rays.
so these ray tracing algorithms are fairly fast. there are papers on
these algorithms.
i expect it wouldnt be to slow on a modern computer to do the panorama
remaping this way, if it produced a good image. mabe a "biradge"
option.
juaquin
__________________________________________________________________
Look What The New Netscape.com Can Do!
Now you can preview dozens of stories and have the ones you select
delivered to you without ever leaving the Top Home Page. And the new
Tool Box gives you one click access to local Movie times, Maps, White
Pages and more. See for yourself at
http://netcenter.netscape.com/netcenter/
More information about the ptx
mailing list