ParaView/Image Compressor Configuration
ParaView has a number of settings that affect remote interactivity. This section discusses how to enable and configure ParaView for image compression.
A - Remote Render Threshold
One of the most important settings is the Remote Render Threshold. If checked this will enable remote rendering above the specified geometry size. If unchecked remote rendering will be disabled altogether. When remote rendering is enabled images are rendered in parallel on the server, either using Mesa in software or on server hardware using OpenGl. Each frame of the visualisation is shipped to the client to display. When remote rendering is disabled the geometry (a VTK dataset) is transfered from the server to the client, where rendering takes place. Geometry is often larger than the rendered image and thus shipping the geometry can be a costly operation. However once the geometry is received one can interact with the visualization at local rendering rates. The image compressor is only applied when remote rendering is enabled. To enable parallel remote rendering check the Remote Render Threshold and set the value to 0.
B - Interactive Sample Rate
During interaction the Interactive Subsample Rate setting will be used to down-sample the rendered image before sending from server to client. This can significantly reduce the size of the rendered image, and thus reduce the image transfer time. Down-sampling drastically reduces the quality of the delivered image, so it best not to exceed 3 pixel setting. In most cases a setting of 2 is acceptable. For very fast networks disabling down-sampling altogether may be the best option.
C - Image Compression
The Image Compression check box is used to explicitly enabled or disable ParView's image compressor. Compression of rendered images can improve remote interactivity. During interaction rendered images are down-sampled and compressed before transmission reducing the amount of data sent in many cases by a couple of orders of magnitude. The compressor stage adds significant overhead to the rendering pipeline, however for slower Internet connections the image delivery time is much larger than the compressor run time. For very fast networks the compressor will tend to reduce interactivity and should be disabled.
D - Squirt Compressor Configuration
When image compression is enabled, the Squirt image compressor, can be selected and configured here. Squirt is a run-length-encoded (RLE) compression algorithm designed by Sandia National Lab. As is the case with many RLE compression algorithm it is fast, but achieves relatively low compression ratio's compared to alternative compression algorithms. Squirt's primary strength is its speed, therefore it is most effective when used on very fast networks where the image transmission times are comparable to other compressor's run time. The Squirt algorithm can optionally apply a colorspace reduction mask during the run length computation. Applying the color space reduction mask tends to make runs longer when neighbouring pixel's vary only in the least significant bits. It is a clever implementation in that it reduces the color-space while introducing no new colors to the de-compressed image. When set to its highest reductions this can produce visual artefacts in the de-compressed image when runs cross actor boundaries. For this reason it is best to use Squirt at 16 bits per pixel (bpp). There is no performance hit when applying the color space reduction, so one might as well always apply it. Squirt's color-space reduction is only applied during interaction, preserving full image quality for still renders. The decompressed image color space can be selected using the slider. There are six settings, labeled by the bits-per-pixel in the decompressed image. The settings range from 24 bpp (no color space reduction) to 10 bpp (14 bit colorspace reduction).
E - Zlib Compressor Configuration
When image compression is enabled, the Zlib image compressor, can be selected and configured here. Zlib is public domain implementation of DEFLATE, the scheme originally used in pkzip. This is a loss-less compression scheme that works well on images and has been used in png image standard. The algorithm has fixed memory requirements independent of input data size, and never inflates data. At its highest settings the Zlib compressor achieves compression ratios an order of magnitude or so higher than Squirt. The trade off, is as is often the case, speed as runtime for zlib compressor is an order of magnitude longer than Squirt. However, when connecting to a ParaView server over a network the runtime is much smaller than the image delivery time and as a result one can see an improvement in frame rates by using the Zlib compressor.
The Zlib compressor has a number of configuration options. The first setting is Level and can be selected by using the spin box. This is a number between 1 and 9, where level 1 sacrifices compression ratio to achieve faster run time, and level 9 sacrifices runtime to achieve higher compression ratio. The second setting is the color space. This setting is selected using the slider. There are 5 settings available ranging from 24 bits-per-pixel to 9 bit-per-pixel. Unlike Squirt the Zlib colorspace reduction algorithm introduces new colors in the decompressed image, and the lower colorspace settings produce significant color changes in the decompressed image. For this reason it is recommended not to go bellow 15 bits-per-pixel. The color space reduction is performed in a pre-compression pass, which imposes a performance and memory penalty. For these reasons it's use is only recommended on relatively slower networks. Finally, the Strip Alpha setting can be used to reduce the image size by removing the alpha channel prior to compression. If selected this setting is applied during the color space reduction and has a similar performance and memory hit. For these reasons it's use is only recommended on relatively slower networks.
F - Compressor Pre-sets
In an effort to facilitate configuration, especially for those new to ParaView, a number of pre-set configurations are provided via the Compressor Pre-sets drop down menu. The pre-sets do not guarantee the best achievable performance nor the highest image quality, rather they provide a compromise where relatively good performance is obtained in conjunction with relatively good image quality. It is important to recognise that the overall rendering performance is highly system, and network dependent. The available pre-sets have been designed to be a good starting point in your search for optimal settings for your particular system and network.
Typical Performance Using the Pre-sets
The following chart show typical performance characteristics of the compressors when configured using the Compressor Pre-sets drop down menu in comparison to using no compression at all. Note that the configurations used for these tests make use of the recommended settings, rather than settings that would give optimal results. The test consisted of an image produced using the Hierarchical Fractal source and forcing 200 interactive renders using ParaView's Play Test feature. The results, presented in the following histograms and table, are organized by network and compressor. Three networks have been employed. The first row of results was taken on localhost connection running both ParaView client and server on a 2 x 2.5GHz Core 2 Quad with 32 G of ram and a Quadro FX 3700 video board. The second row of results was taken running ParaView client on the same workstation while running the server on a 2.6 Ghz Core 2 notebook with 4 G of ram and an GeForce 9800M GS video board over a 100 Mb lan. The third row of results was taken on with the client running on the same workstation and the server running on a compute node of UCSD's cluster nashi over a broadband connection and a 1 hop ssh tunnel. While this doesn't make for a good comparison of the compressors themselves on technical grounds, it does provide useful information about the overall system performance in typical use cases. Testing that illustrates isolated compressor performance can be found here.
The specific configuration employed is documented in the following table.
|Down sampling||Comp. Level||Colorspace||Strip Alpha||Frames per Sec.||Avg Time Delta||Eff. Compression ratio|
The Effective Compression Ratio is defined as the Rendered image size / compressed image size. Includes sub-sampling and color space reduction. The Time Delta is defined as the elapsed time in between successive image delivery. Includes rendering time, spatial sub-sample time, and color space reduction time.