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:
- Server responds to feedbacks from Clients
and adjusts its data rate accordingly.
- Server and Client code implementation are
multi-threaded (feature provided by Solaris 2.3/+
for greater efficiency).
- Server and Clients can also run on IP-over-ATM
multicast mode.
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