2001 Project Plans

Lawrence A. Rowe
(August 1, 2001)

This note describes our development plans for the third year of the NSF grant. Our plans include tasks that must be completed and tasks that are stretch goals. And as with all development projects, there will be numerous small projects completed along the way.

  1. [must] H.263 codec.
    Open Mash currently supports a number of video codecs including MJPEG, H.261, CELLB, NV, LDCT, etc. Some of these codecs are deprecated (e.g., CELLB, NV, and LDCT), and they will be removed from the code. MJPEG and H.261 are the primary codecs used with video streaming applications. MJPEG can be used for images up to full-sized D1 images (i.e., 720x480) with and without interlacing but every block is coded which makes it relatively slow. H.261 does block encoding so it is more efficient but the H.261 standard supports only QCIF- or CIF-sized images (i.e., 176x144 and 352x288, respectively).
    Many applications want larger-sized image block encoded video streams. H.263 is an improved version of H.261 that supports more coding tactics and supports larger images. A series of extensions have been made to H.263 (e.g., H.263+, H.263++, etc.) leading to MPEG4. While MPEG4 has numerous algorithms for coding images including region coding, the baseline MPEG4 codec is based on H.263++. We plan to implement a simple H.263 codec that will support larger images. High quality commercial codecs can produce excellent CIF coded streams at 250 Kbs. Our plan is to produce good quality full-sized image coded streams at 500-750 Kbs.

  2. [must] 16-bit audio support and audio codecs.
    Open Mash, and for that matter vat on which the code is based, only support 8-bit 8 KHz sampled audio. Modern streaming audio applications require improved audio capture and playback (e.g., multiple channels, 16-bit digitizing, and sampling rates up to 48 KHz). We are implementing new audio abstractions, specifically an AudioAgent and codec architecture similar to the video abstractions, that will support improved audio. We are also incorporating an MP3 codec so that high quality audio can be streamed and played.

  3. [must] RGB capture abstractions.

    Many applications require the ability to capture and stream material taken from a computer display (e.g., presentation slides, demonstrations, web pages, etc.). The typical approach to solving this problem is to use a scan converter to convert the RGB signal from the computer to an NTSC or PAL video signal and then digitize the video signal, compress and transmit it. This solution works, but the quality is poor due to the lower resolution video signal (i.e., a 1024x768 RGB image has to be mapped into a 720x480 video image) and the errors inherent in digitizing an analog video signal.

    We have found a low cost (approx. $1K) RGB digitizing board from a company in England (Datapath Limited) that can be used with Windows PC's. We are implementing a glue routine that will allow images captured from the board, called the VisionRGB board, to be passed to a video codec for streaming. Using this board, it will be possible to capture full-sized RGB images (i.e., xga and sxga) and stream them. Moreover, since the images will not transformed through NTSC or PAL, they will be much higher quality.

  4. [must] Resurrect MediaBoard and AS/1 Services.

    During the transition to Open Mash and the significant code clean-up done in 2000 (e.g., eliminating all compiler warnings and removing cruft from the Mash source tree), several important applications stopped working. The MediaBoard and AS/1 Services are two applications that researchers have asked us to clean-up and support. Consequently, we will get this code working and continue to support it. Note: the AS/1 Services are important for many other Open Mash applications including the Director's Console/Virtual Director, the MARS archiving/replay system, and the Video Explorer, an ad hoc video browsing system currently under development at Berkeley.

  5. [must] Improved remote video capture application (rvc/rvic).

    Several applications (e.g., Access Grid and Berkeley Internet Webcasting System) require server applications to capture and stream media. For example, rvic and rvc are two such applications that stream video. At present these applications use TclDP for the remote procedure call protocol (RPC). TclDP is a simple text-oriented RPC that is used by all our applications. More details are available at TclDP Project. However, that project is now defunct, and since sockets were added to Tcl, it is possible to implement TclDP functionality using Tcl-only as shown by the following example.

    Recently there has been a lot of interest in a portable, text-based RPC package based on XML, sometimes called XML RPC. This protocol is gaining widespread interest particularly after Microsoft elected to use it for the .NET initiative.

    We plan to modify the rvic application to use XML/RPC and develop a new client-side library for accessing and controlling the application.

  6. [must] Upgrade to recent versions of Tcl, Tk, oTcl, and TclCL.

    Numerous changes have been made to the various packages used in Open Mash. We need to upgrade to these new packages to incorporate bug fixes and solve some problems in Mash.

  7. [stretch] Combined audio/video player with synchronization.

    The Mbone tools have always operated as separate applications, for example, vic captured/played video streams and rat/ vat captured/played audio streams. Audio/video synchronization between streams has always been problematic. Many modern applications need high-quality audio/video synchronization (e.g., RTPtv). Moreover, all commercial streaming software uses one application to play both audio and video. A simple audio/video player that implements high-quality synchronization is needed.

  8. [stretch] Memory leak code clean-up.

    Several people have suggested that Open Mash has numerous memory leaks. This year we are using some memory tracking tools (e.g., Purify) to identify possible problems and fix them.

  9. [stretch] Distribute Internet Webcasting System Software.

    A number of tools have been developed at Berkeley to support production of Internet Webcasts. A brief overview is given in the workshop paper Streaming Media Middleware is more than Streaming Media. Other research groups have asked to use these tools. The current software is coded with too many specific assumptions about the Berkeley environment. We are developing a new audio/video infrastructure using XML descriptions and AS/1 services which will be used to support both the video explorer and the webcasting system. Once that infrastructure is complete, we can distribute the Webcasting System for others to use.

  10. [stretch] MacOS X Port.

    The original NSF grant specified that we would do a Mac port of Mash. One reviewer of the proposal noted that it would be foolish to port to MacOS 9 or earlier since MacOS X was going to be released soon and it would be based on Unix which should simplify the port. We have investigated this project and discovered that the Tcl/Tk port for MacOS X is not yet available. We hope it will be completed soon at which time we'll do the Mash port. In the meantime, many changes being made to clean-up the code and move to new versions of Tcl and related packages will simplify the port when we do it.

If you have any questions or comments, send them to the Open Mash Developers list.

Webmaster
© Copyright 1999 - 2001 by the Regents of the University of California