NLM Home Page VHP Home Page

 
Next: References Previous: Title Page Contents: Conference page

The Visible Human Slice Sequence Animation Web Server


 

Introduction

     Web-based slicing services for extracting slices from the Visible Human dataset exist since 1995, but they authorize only to extract slices perpendicular to the main axes.
     Since June 1998, EPFL’s Visible Human Slice Server (http://visiblehuman.epfl.ch/)  [1] allows to extract arbitrarily oriented and positioned slices. More than 300,000 slices are extracted per year. A surface extracting service has been added and allows to define, flatten and extract curved surfaces.
     Recently, a new service has been added for extracting slice animations along a user-defined trajectory (http://visiblehuman.epfl.ch/animation/) .

     To offer this new service, we had to meet the following challenges:

  1. The user interface must be intuitive and allow to define the trajectory of the animation.
  2. Server side extraction of slices and synthesis of compressed slice animation must be carried out quickly (few seconds). The progress of the animation download must be shown.
  3. A synchronization between the slice sequence animation and the user-defined trajectory shall allow to locate the current displayed animation slice.
  4. The server must allow to compute several slice sequence animations at once, in order to avoid blocking other user requests.
  5. It should be possible to save the slice sequence animation on the local client computer despite security restrictions.
  6. The animation should be compressed as an MPEG-1 movie, supported by most browsers.

Slice sequence animation synthesis

      The slice sequence animation server (Figure 1) can be broken down in two parts:
  1. The client side whose user interface was developed in Java 1.1.
  2. The server side, a parallel program developed within the CAP [2] parallelization framework interface to the Web by FastCGI.

Client side user interface

     The interface for specifying the slice sequence animation parameters is the same as the interface for the Visible Human Slice Web server [1] with an additional “Slice sequence animation“ mode allowing to modify the animation parameters (size, quality). The animation trajectory is specified as a natural spline drawn on an extracted slice. Each slice of the slice sequence animation is represented by a line segment orthogonal to the user-defined trajectory. The succession of line segments gives a feedback about slice size and slice spacing. These parameters determine the size of the final MPEG animation.

The succession of line segments is also used as a progress bar for:

  1. indicating the animation download progression (Web streaming).
  2. showing the synchronization between the slice sequence animation and the user-defined trajectory, allowing to realize where the current displayed slice is located while the animation is played.
A Java MPEG player [3] has been integrated in the applet (Figure 2).

Web server

     The Visible Human Slice Animation Server runs with FastCGI and is easily portable between platforms (Windows NT, Linux, Unix).
     The animation server program extracts in parallel on several PCs the slices required for the animation request and, at the same time compresses the slices into the MPEG-1 format. In pipeline, MPEG-1 slice sequences are sent to the client in streaming mode, while computation of the remaining parts of the animation proceeds.
     At the present time, only the extraction of slices is distributed on several PCs. The MPEG compression is not yet parallelized. The parallelization of MPEG compression is of interest when more than two PCs contribute to the computation of animations. In front of the server Web, a buffering proxy has been added in order to cache the computed animation for clients having a slow Internet connection (FastCGI accepts only one request at a time per process).
On a single PC configuration (Bi-Pentium II, 450Mhz, 8 U2W disks), the animation server extracts and compresses 7.8 slices per second, of size 300x300 pixels. In order to generate 7.8 slices/s, 41 MB/s of 3D Visible Human data must be accessed, partly from cache and partly from striped disk files. The MPEG output throughput is approximately 75 Kbytes/s.

Perspectives and conclusion

     The slice sequence animation gives a 3D view of anatomic structures, useful for research and teaching purposes (Movie 1, Movie 2). In the future, we are interested in creating tools for associating sound to animations and creating a repository of annoted and commented slice sequence animations.


Next: References Previous: Title Page Contents: Conference page

Office of High Performance Computing and Communications
Lister Hill National Center for Biomedical Communications
U.S. National Library of Medicine, 8600 Rockville Pike, Bethesda, MD 20894
National Institutes of Health
Department of Health & Human Services
Copyright and Privacy Policy
Last updated: 2 July 2001