Media streaming has found applications in many domains such as education, entertainment, communication
and video surveillance. Many of these applications require non-trivial manipulations of media streams, beyond
the usual capture/playback operations supported by typical multimedia software and tools. To support rapid
development of such applications, we have designed and implemented a scripting language called Plasma. Plasma
treats media streams as first-class objects, and caters to the characteristic differences between stored media files
and live media streams. In this paper, we illustrate the design and features of Plasma through several small
examples, and describe two example applications that we developed on top of Plasma. These two applications
demonstrate that using Plasma, complex applications that compose, mix, and filter multimedia streams can be
written with relatively little effort.
We present Dagster, an end-host multicast scheme for delivering multimedia streams. Unlike previous schemes, Dagster does not constrain the amount of bandwidth a node must donate. Instead, it relies on a novel incentive scheme to encourage nodes to contribute more bandwidth to improve the total capacity of the system. The key idea behind the incentive is that Dagster allows a node with more donated bandwidth to preempt another node in the system. Dagster also allows a host to receive from multiple parents at the same time, thus is more resilient to node failures. Our simulation results show that Dagster's design leads to low rejection rate, high resilience to failure and smaller diameter. Furthermore, nodes that donate more bandwidth have lower rejection rate and are positioned fewer overlay hops away from the source, providing incentives for nodes to increase their contribution.
This paper presents a unified set of abstractions and operations for
hardware devices, software processes, and media data in a distributed audio and video environment. These abstractions, which are provided through a middleware layer called Indiva, use a file system metaphor to access resources and high-level commands to simplify the development of Internet webcast and distributed collaboration control applications. The design and implementation of Indiva are described and examples are presented to illustrate the usefulness of the abstractions.
This paper presents a new approach for constructing libraries for building processing-intensive multimedia software. Such software is currently constructed either by using high-level libraries or by writing it `from scratch' using C. We have found that the first approach produces inefficient code, while the second approach is time- consuming and produces complex code that is difficult to maintain or reuse. We therefore designed and implemented Dali, a set of reusable, high-performance primitives and abstractions that are at an intermediate level of abstraction between C and conventional libraries. By decomposing common multimedia data types and operations into thin abstractions and primitives, programs written using Dali achieve performance competitive with hand-tuned C code, but are shorter and more reusable. Furthermore, Dali programs can employ optimizations that are difficult to exploit in C (because the code is so verbose) and impossible using conventional libraries (because the abstractions are too thick). We discuss the design of Dali, show several example programs written using Dali, and show that programs written in Dali achieve performance competitive to hand- tuned C programs.
Conference Committee Involvement (5)
Multimedia Computing and Networking 2009
19 January 2009 | San Jose, California, United States
Multimedia Computing and Networking 2008
30 January 2008 | San Jose, California, United States
Multimedia Computing and Networking 2007
31 January 2007 | San Jose, CA, United States
Multimedia Computing and Networking 2006
18 January 2006 | San Jose, California, United States
Multimedia Computing and Networking 2005
19 January 2005 | San Jose, California, United States