Antialiasing in PTViewer

Helmut Dersch
Aliasing in Panorama Viewers has always annoyed me and is one of the biggest obstacles for a true zoomable viewing experience. It occurs when the viewer window has less resolution than the
panoramic image. It is worst when the viewer is zoomed all the way out, and shows up as moving artefacts, especially during slow panning. It effectively prevents the use of really high resolution source panoramas in VR.

This is a well known effect in digital imaging and signal processing in general, and there are simple and effective filters available. However, in real time, these filters are time consuming, and no viewer that I know of implements them. PTViewer (version >= 2.4) now provides an option to reduce aliasing without the penalty of a slow filter. It works by creating prefiltered scaled versions of the source image which differ by a factor of 2 in width and height. The viewer automatically chooses the source image which fits best to any given resolution requested by the user. Upon zooming in and out, the source images are switched transparently to the user.

This option is controlled by two applet parameters:

This is not an optimum filter, and at some points residual artefacts remain, while at other points the image slightly softens, but it is a big improvement over the current situation. Some users actually like aliased images and perceive the artefacts as sharpness. It is therefor a matter of taste and the author should experiment with the parameter oversampling to find a satisfactory solution.

Antialiasing is implemented in PTViewer for equirectangular sources and in PTZoom for rectilinear sources. The same set of parameters may be used in PTZoom. Antialiasing also works with QTVR-panoramas, both cylindrical and cubic, but not with object movies. It should be noted that some features of PTViewer do not work properly when antialiasing is turned on. This affects all options that directly manipulate the panoramic source image like warped hotspot images, which are inserted into the panorama. Also affected are high resolution inserts (ROI) and some extensions (PTMovies). Finally, PTViewer uses more Java resources in this mode and older Java runtimes may run out of memory. Speed and responsiveness, however, is not affected.

This PTZoom-example shows two versions of the same rectilinear source image (1932 x 1284 pixels). The image is scanned from a 35mm negative taken with a Minox 35 (focal length 35mm, scanned at 1360dpi). The right version exhibits aliasing effects which are most severe during panning. The right version with antialiasing turned on creates 4 different filtered versions of the same source image, and uses the appropriate version depending on the choosen zoom ratio. The two versions are identical when zoomed all the way in. This example uses the default oversampling parameter (1.5). The HTML-source for the antialiased image reads:

<applet archive=ptviewer.jar code=ptviewer.class width=200 height=130>
    <param name=fovmin value=3>
    <param name=fov value=50>
    <param name=fovmax value=54>
    <param name=panmin value=-27>
    <param name=panmax value=27>

    <param name=tiltmax value=18>
    <param name=tiltmin value=-18>
    <param name=applet0 value="{code= ptzoom.class} 
    <param name=inits value="ptviewer:startApplet(0)">



    Viewer Instructions:

Left: Antialiased                                                           Right: No Antialiasing


Copyright 2001 Helmut Dersch