Unformatted text preview:

COMP 249 — MULTIMEDIA NETWORKINGFall 1999Kevin JeffayHomework 4, September 30An Implementation of the Audio Conference With Minimal Control RTP ProfileDue: 9:30am October 28__________________________________________________________________For this assignment you will implement RTP and RTCP and an instance of the RTP profile for a variantof the IMA ADPCM audio conference with “minimal control.” Specifically, you will implement thesubset of the profile specified in Internet Draft RTP Profile for Audio and Video Conferneces withMinimal Control that is relevant to the “VDVI” audio encoding. This is the variable bit-rate version of the“DVI4” audio encoding (which is the IETF’s name for the IMA ADPCM encoding). For this assignmentyou may work with another class member.DetailsThe starting point for this assignment is a fully working solution to Homework 3. To this system you willadd an application-level implementation of RTP and RTCP. The parameters you should use for yourimplementation are:Parameter ValuePayload type 127Sampling rate 8 kHzRTP clock frequency 8 kHzPayload size 161 samplesRTP UDP port 5004RTCP UDP port 5005As in Homework 3, you should transmit 20 ms audio packets and perform packet-by-packet silencedetection and deletion using your best performing silence detection algorithm from Homework 3. Also, asbefore, silence detection should not increase the latency of the playout of the media for more than theduration of audio contained in one packet (i.e., 20 ms). The marker bit in the RTP header will be used toidentify the start of a talkspurt. You should also transmit a comfort noise packet (using the comfort noisepayload type) at the start of each silence period. You will have to experimentally determine a good valueof the comfort noise value to use.The payload format for a RTP VDVI data packet is (in lexical order):• an uncompressed 16-bit, predicted audio sample (i.e., an uncompressed sample that has beencompressed at decompressed at the sender),• the current index into the stepsize table (8-bits),2• an 8-bit reserved field (set to zero), and• 160, VDVI compressed, variable length audio samples.Because we are using a variable length encoding of compressed audio samples, you must pad packets outto the nearest byte as described in the RTP audio conference profile.The payload format for a RTP CN (comfort noise) data packet is:• a single uncompressed 16-bit PCM sample representing the amplitude of a square wave you areto generate (at a suitable low frequency) for comfort noise.Note that this format for comfort noise payload differs from that specified in the RTP audio conferenceprofile.For the RTCP implementation you must:• detect and deal with SSRC conflicts (although it will suffice to simply choose a random numberas the initial SSRC),• support (and use) all SDES source description items (CNAME, NAME, etc.) as well as BYEmessages, and• send RTCP messages at least 1 second apart (i.e., you need not compute the RTCP sendingperiod).1Both sender and receiver programs should take an optional command line argument that specifies theSSRC identifier they should use. For the NTP timestamp you can simply use the time of day on thesystem you are using (see gettimeofday(3C)).The sender should record the values of delay-jitter and loss sent to it by the receiver in RTCP receptionreports. These values should be saved in a file and plotted after each session is completed (see below). Inaddition, the sender should compute and record the estimated round-trip time to the receiver over time.The sender program should have the ability to print out (to stdout) the contents of RTCP reception reportsas they are received. Furthermore, the program should take a command line argument to enable or disablethis feature. Both sender and receiver programs should be able to read and write their audio streams toand from a file. Specifically, the sender should be able to read its inputs (i.e., 16-bit uncompressed PCMsamples) from either a file or microphone, and the receiver should be able to write its outputs (16-bituncompressed PCM samples) to either the sound card or a file.ExperimentationThere are two classes of experiments to perform: interoperability experiments and RTCP monitoringexperiments.To receive full credit for the assignment, your RTP implementation should enable your VDVI codec tointeroperate with the codecs of other teams. This includes the ability for your sender program to receiveand interprete RTCP messages sent by another team’s receiver program. You should feel free to test yourimplementation against those of other teams, however, you may not read the code of other teams’implementations or discuss your implementation with members of other teams.2 1 However, note that in the next assignment you will be required to implement the full RTCP message sending intervalcomputation algorithm.2 The level of systems programming is significantly higher in this assignment than in previous assignments. You may discuss theuse of system calls (any and all) with members of other teams for the purpose of solving abstract problems (e.g., how tomultiplex transmissions on two UDP sockets), however, you may not discuss any RTP specific implementation details (e.g., howto handle SSRC conflicts).3For the performance monitoring experiments you should operate your codec in environments withvarying degrees of network congestion. To do this you will use (1) a packet delay and loss simulatorcalled dummyNet that is built into the FreeBSD kernel, and (2) a network traffic generation program thatwill delay audio packets by saturating the network. Details on how to use these facilities will be providedin a separate handout.Project ReportFor your write-up, give a high-level overview or your RTP/RTCP implementation. This section shouldinclude sufficient detail that the grader can easily read your (well documented) code. You should alsodescribe the silence detection and deletion algorithm that you are using.A second section should describe the experiments you performed and the results you measured/observed.For each choice of input source and dummyNet and traffic generation settings that you use, plot:• the average bit-rate of RTP data transmitted over the network over time,• the loss rate (as reported by the receiver) over time,• the delay-jitter observed over time, and• the estimated round trip time over time.Homework SubmissionSubmit the code for your


View Full Document

ODU COMP 249 - MULTIMEDIA NETWORKING

Documents in this Course
Load more
Download MULTIMEDIA NETWORKING
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view MULTIMEDIA NETWORKING and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view MULTIMEDIA NETWORKING 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?