next up previous contents
Next: Summary Up: Transferring Video on the Previous: Methods for General Data

Methods Related to Video Transfer

When live, or other real-time play is required, the client and server need to negotiate the size of the data transferred, and thus the quality of the movie, to cope with variations in available bandwidth on the network. Several ad hoc solutions are implemented in various programs, but standards are beginning to emerge on the Internet, most of them currently as drafts.

Real-Time Protocol (RTP)

  RTP [53] defines functionality for use in applications transmitting real-time data, such as audio and video, over multicast or unicast network services. The functionality includes identification of media type, sequence numbering and timestamping. The data transfer may be aided by a control protocol (RTCP), providing data delivery monitoring, and participant identification for on-going sessions. RTP and RTCP are typically run on top of UDP, but other transport protocols, such as TCP, may also be used.

Resource reservation and quality of service are not addressed by RTP, but are left to lower layers. Likewise, RTP does not guarantee delivery or prevent out of order delivery, but the sequence number provided by RTP allows the receiver to reconstruct the sending order.

RTP is considered a framework for new protocols, and is thus not directly usable. A header template is defined, but the format of the data to be transferred, the payload, is undefined. Application developers will have to create profile specifications and payload format specifications extending RTP to cope with the medium in question. A profile specification defines payload type codes, and any extensions or modifications to the original RTP. Profiles for audio and video are defined in [54]. The payload format specification defines how the payload, in our case the video data, is to be carried in RTP. Currently, payload formats for MPEG [55], H.261 [56] and JPEG [57] are defined, while others are being developed.

CU-SeeMe

CU-SeeMe is a software package featuring it's own, proprietary, and partly undocumentedgif, compression scheme. The package may be used for video telephony and conferencing on Macintoshes and PC's, and has gained some popularity, since the data transfer rate is suitable for modern modems, making the program usable for most people with an Internet connection. The package was originally developed at Cornell University, but a commercial version is also available.

In [58] Tim Dorcey, one of the developers, gives a quick overview of how CU-SeeMe works: A frame is resampled to 160 tex2html_wrap_inline4177 120 pixels, with each pixel quantized to 16 levels of gray. Following that, the frame is subdivided in blocks of 8 tex2html_wrap_inline4177 8 pixels. A block is marked for transmission if it differs sufficiently from the previous transmitted block at that location. The difference is measured as the sum of the absolute values of all 64 differences, with an extra multiplicative penalty for differences in nearby pixels.

Before transmitting a block, it is compressed using a simple, ad hoc reversible compression scheme developed by the program authors. The goal of the scheme is to be able to compress and decompress fast. To cite Tim Dorcey, ``What it lacks in mathematical elegance, it makes up for in quickness''. Compression builds on the assumption that a row inside a block is often similar to the row above it. A 32 bit word is created by combining the pixel values in a row, and the difference with the above 32 bit word is coded using 4, 12, 20 or 36 bits, including 4 bits giving further coding details. The compression scheme is said to reduce the amount of data to transfer by about 40%.

The program uses UDP at port 7648 for transferring image frames between two participants [59].

In it's original form, CU-SeeMe can be used for one-to-one communication only. Using reflectors however, the usability may be extended to real, multi-participant video conferencing. A reflector is a specialized program running on a Unix host, capable of multicasting CU-SeeMe packets.


next up previous contents
Next: Summary Up: Transferring Video on the Previous: Methods for General Data

Sverre H. Huseby
Sun Feb 2 15:54:02 MET 1997