We use active multimedia objects to adapt themselves to the available bandwidth and display characteristics. An active multimedia object is some form of multimedia such as an image or a video with an associated piece of code that can control various aspects of the object either at the point it is served, cached or displayed. These aspects are such things as the level of lossy compression in a JPEG image, the frame rate of video, or the colour depth and size of an image adapted to a specific display device. We use the obvious media hierarchy to represent the media, as in Figure 2, and provide control interfaces to the media, as in Table 1. These control interfaces can be remotely called across the network, transforming the media before it is downloaded. As long as the overhead of the remote calls plus transformed media size is less than the original media size, then the transformations may considerably reduce the time taken to download the media, yet be more suited to the display. The control interfaces are the Open Implementation of the components in our technology. Full details of the network aspects of the architecture can be found in [4].
Figure 2: A partial media hierarchy
Interface name | Description | Applicable classes |
compress | Apply a lossless compression to the media | uncompressed media |
scale | reduce media to display in a smaller size | Video, Images |
reduce | Apply lossy compression | all |
toAscii | Translate media into some ASCII equivalent, typically a description of what the media represents | all |
toBmp | Convert an image to an X-Bitmap | image |
toGiff | Convert an image to a Giff | image |
toHtml | Convert a media to some html representation | all |
toProgressive | Convert a JPEG to a progressive scan representation | JPEG |
toBaseline | describe JPEG using Huffman coding only | JPEG |
To demonstrate the viability of the architecture, we have developed a test bed application that acts as an image proxy for web pages, providing similar functionality to [2]. Image tags within pages requested by browsers are replaced by applets which talk to a proxy holding the image, applying the transformations before downloading the image.
The decision about what set of transformations to apply to a given piece of multimedia is made within the applet. This decision comes from the interpretation of an instance of what we have termed the Media Policy Language mpl. This script is at the heart of the configurability of our system; it weaves the transformations and media together. As the name suggests, mpl defines policies on what to do to media in particular situations of bandwidth availability and display characteristics described in Section 5.