Date: 9/27/98

Name of group: Phonetics

Team members: Mike Napoleone, Chris Como, Zhiyuan Chen

Task: Data transmission over the Internet

 

Brief description of what you intend to do:

Our first priority is to get our module to work as soon as possible, so that testing can commence on the overall project. Secondly, we want to improve our techniques in order to speed up data transmission, because the speed of the entire project depends on us.

Finally, we hope to make our module flexible in its ability to handle different kinds of data, including video and/or CD audio.

 

Pseudocode:

Class source will contain information about the source type. Source types include: file, microphone, and network (IP Address – Gateway or another machine)

Class Source:

{Constructor(); Sets the source information

Destructor; Clears memory allocated

}

Class destination will contain information about the destination types. Destination types include: file, speaker, and network (IP Address – Gateway or another machine)

Class Destination:

{Constructor(); Sets the destination information

Destructor; Clears memory allocated

}

Class instantiated by Application layer, Source and Destination are parameters to the connection constructor. An instance of this class can represent either a sender or a receiver, determined by the source and destination given. The class is responsible for receiving, decoding/encoding, packetization, send/play out. Sending and receiving network data will be implemented using UDP sockets. The decoding and encoding will be based on some standard coding algorithm (such as PCM, ADPCM, and LD-CELP). Packetization will be done in a standard format agreed on with the gateway group. The goal of packetization is to discretize the data and add timing information. Sending data will be output to a network socket. On the receiver side, playout delay must be dynamically determined based on packet loss statistics.

Class Connection:

{Constructor(); // Input: Source, Destination

// Open appropriate sockets and initialize statistics

SetParameter(); //bytes per packet (for network connections), encoding scheme,

// redundancy scheme, sending rate, and other necessary parameters

Activate(); // Loop continuously

// If you are a sender:

// Get source Data (into Buffer), encode, packetize, send (based on send rate).

// ElseIf reciever

// Get network data, order by packet into buffer, determine packet loss,

// recalculate playout delay, decode, output.

Stop(); // Kill Sockets

Destructor; // Clear allocated memory (buffer, etc)

}

 

 

Interface that we will provide to other teams:

The interface that we provide to the application layer is :

Class Source:

{Constructor(source type - file, microphone, or network);

Destructor

}

Class Destination:

{Constructor(dest. Type - file, speaker, or network);

Destructor

}

Class Connection:

{Constructor(Source, Destination);

SetParameter(bytesPerPacket, encodingScheme, redundancyScheme, sendRate);

Activate();

Stop();

Destructor

}

 

Interfaces that you will use:

None. The only Team with which we communicate is the Gateway. We will need to agree upon a packet format (i.e., header information, packet size, etc.)

 

Schedule:

Date

Objective

9/30

First report

10/9

Collect a variety of resources from the Web, including documentation and sample code.

10/16

Program shell created.

10/23

Second report, some methods implemented (null interface)

10/30

Essentially all major code is written, testing begins.

11/6

Testing & Debugging

11/13

Full Prototype is available for interaction with other Teams.

11/20

Performance tuning, while other Teams use our prototype.

11/27

Thanksgiving

12/4

Final report, incorporate our Enhanced version with the Team’s project.

12/10

Demo

 

What you need from the course staff:

We would like some insight as to how to call methods remotely (RPC or RMI). This is not directly related to our group, but it applies to the overall connectivity of the different applications.

Information about standard audio encoding schemes would be helpful, and we will be doing our own research on this topic as well.

References:

"Internet Telephony: Architecture and Protocols an IETF Perspective" by Schulzrinne and Rosenberg

Vicky Hardman, Martina Angela Sasse, Mark Handley, Anna Watson, "Reliable Audio for Use over the Internet", Proceedings of INET '95.

Jean-C. Bolot, Andres Vega-Garcia, "Control Mechanisms for Packet Audioin the Internet", Proceedings of IEEE INFOCOMM '96.

Ramachandran Ramjee, Jim Kurose, Don Towsley, Henning Schulzrinne, "Adaptive Playout Mechanisms for Packetized Audio Applications in Wide-Area Networks", Proceedings of IEEE INFOCOMM '94, April 1994.