CS414 Spring 2008 Multimedia System Design

Homework and Machine Problems

Updated 4/01/08


Homework

Hints for HW1

For Problem 5, you can write a short program (or script) for the DCT transformation, quantization, and run-length encoding.  MATLAB might be a good choice to implement the DCT transformation, but many other languages will also work.  You should include the relevant source code functions in your homework submission.  Also, at the end of quantization in Part B, you should apply either the floor or ceiling function to all of the values.  The resulting integers can then be run-length encoded in Part C.

For Problem 7, the translation relation should include the number of transport layer packets, which have a size of 9 KB per packet, required to transmit a single frame of video.

Machine Problems

Hints for MP1

In order to access the audio or video devices, you must be logged in at the console.

If you are using high-level APIs, please keep in mind that accessing individual media frames is very important for rewinding and fast forwarding in your video player.

The ffmpeg tutorial might be a good place to start if you want to write an audio or video player using the ffmpeg and SDL libraries.

For some machines, the sound devices are in /dev/snd and can be accessed using the Advanced Linux Sound Architecture (ALSA).  For other machines, the sound devices can be accessed through /dev/dsp directly or through the SoX libraries.

The ffmpeg utility can be used to convert other video formats to Motion JPEG.

The following links contain audio and video files that can be used to test your audio and video players before you generate your own content.

Example WAV files
Example MPEG files

Hints for MP2

For those of you looking for an alternative to ffmpeg, the following site has some Java code that you might find useful, especially if you want to use a simple Motion JPEG player for your own Motion JPEG format.  Note: you are not required to use RTP and RTSP as they do in the example code.

Streaming Video with RTSP and RTP (Java)

Hints for MP3

In the proxy, you may use separate buffers for audio and video.  However, in Scenario C, the proxy should use no more than one audio buffer to send audio data to both clients and no more than one video buffer to send video data to both clients.

To determine the local resources available at the proxy for admission control, you may use hard-coded variables or a configuration file (e.g., MAX_BANDWIDTH = 10 Mbps or MAX_NUM_SESSIONS = 2).  It is not necessary to determine the actual amount of bandwidth or memory available.