iPOINT Video Server and Clients

The motivation of the iPOINT Video Server is to test and analyze the performance of iPOINT ATM switch for unicast/multicast isochronous (video/audio) data. The current implementation of the Video Server involves a server code running in SparcStation 20. The Server is capable of listening to the incoming requests from the Clients. The Server can then start transmitting compressed video data to the Client(s) using a unicast/multicast protocol, with a previously agreed upon data rate. The Client is responsible for receiving the compressed packets from the Server, decompressing/displaying the video and handling any contingencies on its end, like dropped/lost packets.

The Server can also send data in multicast mode. ATM Switch hardware multicasts the incoming ATM cells to the respective ports. On the receiving end, the received IP packet is checked against the multicast IP address and denied or rejected on that basis. We have successfully tested our multicast implementation over iPOINT switch and Ethernet.

Present Status

Present implementation of the Video Server uses UDP/IP protocol. The IP packets are converted into ATM cells by the Fore Systems SBA-100/SBA-200E boards. The ATM cells, contaning isochronous traffic, are then transmitted through the iPOINT switch to the Client requesting service. On the Client machine, data is re-assembled upward in the protocol stack (ATM/IP/UDP).

We have already successfully tested our Server/Client code for the UDP/IP over ATM, transmitting these ATM cells through the iPOINT Switch. The Server and Client now handle MJPEG and MPEG-1 streams.

The unique features of our implementation are as follows:

Multiple Concurrent Threads

In the previous implementation, the reception of the video data packets and their decompression and display were serialized. This gave rise to a visible freeze-and-go effect in the video playback. We have modified our client to incorporate multithreading available with Solaris 2.x. This allows concurrent "packet receive" and "decompress/display" threads on the client. Even without increasing the number of CPUs on the client, the freeze-and-go effect is eliminated.

  • A diagram of the previous implementation of video client.
  • A diagram of the current multithreaded video client.
  • A diagram of the detailed schematic representation of Multithreaded iPOINT Video Server and Client.
  • A diagram of the detailed schematic representation of iPOINT Multicast Video Server and Client.

    Software Tools used

    We have used SunVideo SDK from Sun Microsystems for the Server and Client code development. This SDK provides APIs to access complete frames of data, to recognize the frame boundaries and to create a stream of compressed images (JPEG, MPEG-1 or Sun's proprietary CellB compression). SunVideo SDK runs on Solaris 2.3 Operating System.

    Future Extensions

    The iPOINT Video Server/Client code is currently being modified in the following direction:

    Using Fore APIs for ATM

    We are already using Fore Systems SBA-100/SBA-200 ATM cards which create ATM cells from our UDP/IP protocol stack. Fore also provided ATM APIs for raw ATM connection. We intend to reduce the overhead from UDP/IP protocol processing by using these ATM APIs. This is expected to improve the performance of the Server as well as the Client.

    Researchers Involved