- The inputs:
The inputs for MATNs are modeled by multimedia input strings. A multimedia input string consists of several input symbols and each of them represents the media streams to be displayed at a time interval.
In a multimedia input string, the symbol “&” between media streams indicates these two media streams are displayed concurrently. P/Xi denotes the state after Xi has been read.
In the example shown in Figure 1, there are five occurrences of media stream combinations at each time-duration:
Duration d1: V1 & I1
Duration d2: V1, T1, I1, & A1
Duration d3: T2, I1 & A1
Duration d4: V2, T2, I2 & A1
Duration d5: V2 & A1
2. Lisp Language
Lisp language was invented in late 1950’s as a formalism of reasoning about the use of recursion equations as a model for computation. LISP stands for LISt Processing. Its development history has often been associated with symbolic processing and with both computer and human languages. A heterogeneous list data type has always been built into the language in order to efficiently deal with arbitrary and changing models.
Besides its many other advantages, the following features caught our attention and made us choose Lisp to represent MATN:
Decoupled syntax from semantics:
Lisp defines a simple regular syntax that is used by default for reading programs. It also provides a means to change that syntax, and an internal data representation for programs that are not test based.
Lisp can be combined with other languages to produce wide variety of applications.
Lisp supports powerful data type (numeric, as well as heterogeneous objects), polymorphic functions, logical pathnames, timing and date utilities, sophisticated control structure.
Lisp was the first ANSI standard to incorporate object oriented programming. It has strong support of Meta Object Protocol (MOP).
Lisp is comprehensive. It supports modular design, supports interactive development, debugging and update. Lisp is a very good vehicle for rapid prototyping, which enables early review and discovery of problems.
Database accessing support.
Now let’s move to the system design of MediaLisp.
3. Multimedia Data Types in MediaLisp
Based on traditional lisp convention, MediaLisp achieves the functionality concerning multimedia composition by extending a set of data types and corresponding functions designated to describe and create multimedia objects. The following illustration gives an overview of those data types:
Figure 2.1. Multimedia Data Types
In above figure, MultimediaObject, UnitMediaStream and CompositStream are virtual data types used internally in MediaLisp. Though they are not reachable by users, they do have semantic meanings and tightly related to internal implementation.
Delay,_Sequence_and_Parallel'>MediaStream, Delay, Sequence and Parallel are concrete data types used to define media streams in multimedia representation.
Every data type has a property set that can be constructed at run-time and bound to individual instances. There are two property types: system preserved property and user defined property. All the properties can be read and written at run time. The property set functions as hash table and bound to individual media stream.
System preserved properties are properties whose names and values are defined by MediaLisp system used to specify common features regarding to multimedia representation, such as name, time duration and etc. Those properties can be recognized by MediaLisp and used to retrieve the media stream and control its display
User defined properties can be any name-value pairs without name conflict with system preserved properties. They are bound to the multimedia object to store information used at run time. Users can feel free to use this feature to impose advanced control features at run time.
3.1. Description of Multimedia Data Types:
3.1.1 ModiaStream:
The ModiaStream data structure severs as basic unit that represents a single media stream within a multimedia representation. Each ModiaStream has a name within the multimedia representation and a set of properties. In Media Lisp, the name of a ModiaStream need to be distinct so that it can be referred by name.
The system preserved properties of ModiaStream are listed in following table:
System Preserved Properties
|
Name
|
Type
|
Description
|
Name
|
String
|
The name of
|
MediaType
|
String
|
The media types, such as
Text
Video
Audio
Image
ect.
|
Duration
|
Integer
|
The number of basic time intervals. The negative value means the property needs to be determined at run time.
|
Location
|
String
|
This property tells the location to retrieve the media stream, it adopts Uniform Resource Location (URL) convention.
|
Priority
|
Integer
|
This value is used to determine the priorities among media streams played in parallel.
|
DisplayPolicy
|
Integer
|
This value can be one of the predefined valued:
|
|
To be displayed exactly one time
|
|
To be repeatedly displayed at least one time
|
|
To be repeatedly displayed any times
|
|
|
Channel
|
Integer
|
This value specifies the channel to physically load huge media objects (e.g. video stream). It is assigned by system and is read-only. User can use this value to refer the run-time properties of the channel so as to programmatically control the display.
|
Player
|
String
|
It allows users to specify their desired device to display the media stream. If this value is not specified, MediaLisp can assign a proper one according to MediaType property.
|
3.1.1.1. MediaStream Creation:
By using function Define to define a MediaStream object. The function interface is as follows:
Define
|
|
Calling Convention:
|
|
|
(Define stream_name)
|
|
Parameters:
|
|
|
Stream_name
|
The name of the media stream. This value is Nil, then MediaLisp would automatically assign a name
|
|
Return Value:
|
|
|
The reference of the MediaStream Onject.
|
3.1.1.2. Temporal Relationship:
For such objects, the time duration is calculated as follows:
For non-looping object, the same value as it Duration property.
For looping object, if it is placed in a sub-net of MATN, the duration if the sub-net's overall duration, otherwise is infinite.
3.1.2. Explicit Delay:
Sometimes, it's necessary for user to impose an explicit delay for some duration so as to control (synchronize) the multimedia representation. For this purpose, we introduce the Delay data type in MediaLisp.
The property set of such data type contains "Name" and "Duration" with regarding system preserved properties.
Delay object can be created by the following clause:
Delay
|
|
Calling Convention:
|
|
|
(Delay interval)
|
|
Parameters:
|
|
|
Interval
|
The number of unit time interval to wait for
|
|
Return Value:
|
|
|
The reference of the Delay object
|
|
|
|
Share with your friends: |