|
Description  |
|
|
FIELD OF THE INVENTION
This invention relates to an apparatus and method for preprocessing multimedia presentations.
BACKGROUND OF THE INVENTION
In U.S. patent application Ser. No. 08/274,502, entitled System and Method for Preprocessing and Delivering Multimedia Presentations, filed on Jul. 13, 1994 concurrently with, and for the same inventors of the present application, and
incorporated herein by reference, the limitations associated with prior schemes for delivering multimedia presentations are discussed. An object of this related U.S. patent application is a system and method for preprocessing and delivering multimedia
presentations. An object of the present application is a novel apparatus and method for preprocessing a multimedia presentation, which can be employed in a preprocessing and delivery system such as described in the related U.S. patent application.
SUMMARY OF THE INVENTION
An aspect of our invention is a system and method for preprocessing and delivering multimedia presentations to customers. Our inventive system comprises a preprocessor, mass storage, a delivery processor, a distribution network, and a plurality
of presentation processors. The preprocessor receives as inputs an OMP, which includes presentation commands and associated objects, and presentation technology parameters (PTPs) indicating key information about the delivery processor, the distribution
network, and the presentation processor which are to deliver and present the presentation to a requesting customer. This key information includes the round trip latency (RTL) between the delivery processor and the presentation processor, which RTL is
the time for a 1 bit message to be sent from the presentation processor to the delivery processor and a response from the delivery processor to be received at the presentation processor.
Based upon these inputs, the preprocessor generates a preprocessed multimedia presentation (PMP) which includes a delivery schedule for delivering the presentation such that delays and gaps in presentation due to interactive response time are
virtually eliminated.
The mass storage holds PMPs available for delivery, and the delivery processor delivers multimedia presentations requested by customers by following the delivery commands contained in the delivery schedule of the preprocessed multimedia
presentation. Each customer has a corresponding presentation processor, and the delivery processor transmits a requested presentation to the presentation processor corresponding to the requesting customer via the distribution network. The presentation
processor presents the objects of the presentation to the customer according to associated presentation commands received from the delivery processor.
The preprocessor includes a presentation scheduler, which analyzes the objects of the presentation, their associated presentation times, and customer interactive features and generates a delivery schedule such that:
1) each object and its associated presentation command arrive at the presentation processor no later than the time at which the object is to be presented;
2) any object and its associated presentation command which are delivered to the presentation processor can be accommodated in its memory; and
3) the interactive response time due to the customer's selection of an interactive feature is virtually eliminated.
In generating the delivery schedule, the presentation scheduler also ensures that those objects to be presented in response to a customer's selection of an interactive feature are received at the presentation processor prior to their earliest
possible presentation times.
The preprocessing of an OMP begins with the OMP and presentation technology parameters being loaded into the preprocessor. A delivery schedule in the form of a labelled, directed graph is generated by the presentation scheduler by defining a
node including a delivery command for delivering a presentation command and its associated object from the delivery processor to the presentation processor. A presentation command and its associated object having the earliest presentation time are
scheduled for earliest delivery, and each delivery command includes the delivery time and the identity of the presentation command and its associated object to be delivered.
The delivery processor delivers the presentation to the presentation processor corresponding to the requesting customer by executing the delivery schedule embedded in the PMP. Specifically, the delivery processor follows the labelled, directed
graph representing the delivery schedule and executes the delivery command contained in each node of the graph. On encountering a node having multiple output leads, which indicates that an interactive feature is available for customer selection, the
delivery processor checks if a message has been received from the presentation processor indicating the customer's selection of an interactive feature. Whether or not such a message is detected determines the path in the delivery schedule to be followed
by the delivery processor in proceeding with the delivery of the presentation.
The presentation processor compares the time on its local clock with the time for executing each presentation command to determine if any of the presentation commands are due to be executed. If so, these commands are executed and then the
commands and their associated objects are deleted from the memory. The presentation processor also monitors messages received from its corresponding customer indicating that an interactive feature has been selected. On receiving such a message, the
presentation processor determine whether the interactive feature is enabled. If so, the presentation processor sends a message to the delivery processor indicating the customer's selection of the interactive feature.
Through our inventive, preprocessing and delivery system, multimedia presentations, which are conventionally delivered according to requests from a customer's CPE, are delivered based on a delivery schedule which ensures that each presentation
command and associated object are delivered to the presentation processor prior to its presentation time even if an interactive feature is selected by the customer. Furthermore, the interactive response time of our system is virtually zero and remains
so independent of the number of simultaneous customers actually being served by the delivery processor up to a fixed maximum. This result is not achievable in conventional systems employing the traditional client-server model, which systems have a
greater than zero interactive response time that progressively worsens as more customers are simultaneously served by the conventional system.
BRIEF DESCRIPTION OF THE DRAWING
FIG. 1A depicts, from tie prior art, an illustrative embodiment of a delivery system employing a prior client-server model for transporting multimedia presentations to customers.
FIGS. 1B and 1C depict a table and graph, respectively, of objects representing an original multimedia presentation for illustrative purposes.
FIG. 1D depicts on interaction table corresponding to the original multimedia presentation of FIGS. 1B and 1C.
FIG. 1E depict the delivery of Objects 1 through 7, consecutively, over a prior delivery system operating under a traditional client-server model.
FIG. 2 depicts an illustrative embodiment of our multimedia preprocessing and delivery system for preprocessing and delivering multimedia presentations to customers, in accordance with our invention.
FIG. 3 depicts an illustrative embodiment of our multimedia preprocessor in accordance with our invention.
FIG. 4 depicts an illustrative embodiment of our delivery processor in accordance with an aspect of our invention.
FIG. 5 depicts an illustrative embodiment of our presentation processor in accordance with an aspect of our invention.
FIG. 6A depicts a table of the delivery times of preprocessed multimedia presentation corresponding to the original multimedia presentation of FIGS. 1B and 1C, in accordance with an aspect of our invention.
FIG. 6B depicts a labelled, directed graph representing a delivery schedule for the preprocessed multimedia presentation, in accordance with an aspect of our invention.
FIGS. 7A through 7E depict flow diagrams showing a representative embodiment of our preprocessing method, in accordance with an aspect of our invention.
FIG. 8 depicts a flow diagram showing a representative embodiment of our delivery method, in accordance with an aspect of our invention.
FIG. 9 depicts a flow diagram showing a representative embodiment of our presentation method, in accordance with an aspect of our invention.
The organization and operation of the invention will be better understood from a consideration of
the detailed description of the illustrative embodiments thereof, which follow, when taken in conjunction with the accompanying drawing.
DETAILED DESCRIPTION OF THE INVENTION
Our invention is a system and method for preprocessing and delivering multimedia presentations to customers. Our inventive system and method entail preprocessing an original multimedia presentation (OMP), comprising multimedia objects and
presentation commands, to generate a preprocessed multimedia presentation (PMP), which includes a delivery schedule for delivering the presentation. In generating the delivery schedule, the OMP is analyzed and the time at which each object of the
presentation is to be presented to the customer and the interactive features available for customer selection in the presentation are taken into consideration. Furthermore, the characteristics of the system components, which will deliver the
presentation, and the round trip latency between system components are considered. Specifically, objects along a main presentation path of the OMP, which are objects to be presented independent of the customer's selection of an interactive feature, are
scheduled for delivery such that each presentation command and associated object will be available for presentation to the customer prior to the presentation time of the object despite transmission delays inherent to the delivery system and the number of
simultaneous customers actually being simultaneously served by the delivery system. Furthermore, objects along a sub-presentation path of the OMP, which are conventionally delivered to the customer only after an appropriate customer interaction has been
selected, are scheduled for pre-delivery in anticipation of the customer's interaction such that delays due to interactive response time are essentially eliminated.
FIG. 2 depicts an illustrative embodiment of our multimedia preprocessing and delivery system 100. Our system 100 includes a multimedia preprocessor 200, a mass storage 300, a delivery processor 400, a distribution network 500, and a plurality
of presentation processors 600-1 through 600-N. The preprocessor 200 receives an OMP, which comprises multimedia objects and associated presentations commands for presenting the multimedia objects to a customer based upon the customer's interactive
commands under a traditional client-server model. The preprocessor 200 also receives other inputs called presentation technology parameters (PTPs) which indicate key information characterizing components of system 100, which components are employed in
delivering the presentation to a customer. This key information includes the round trip latency (RTL) between the delivery processor and the presentation processor, which RTL is the time for a 1 bit message to be sent from the presentation processor to
the delivery processor and a response from the delivery processor to be received at the presentation processor. The PTPs also include the bit rate of distribution network and the memory capacity of the presentation processor. Based upon these inputs,
the preprocessor generates a PMP.
In addition to the multimedia objects and presentation commands of the OMP, the PMP includes a delivery schedule to be executed by the delivery processor 400 for delivery of the presentation virtually without delays due to interactive response
time.
The PMP generated at preprocessor 200 is stored at mass storage 300, which is connected to the preprocessor 200 via output 250 and which stores PMPs available for delivery on customer request. The delivery processor 400 is in communication with
the presentation processors 600-1 through 600-N, which correspond to customers 601-1 through 601-N, respectively, via the distribution network 500. Upon receiving a request from a customer for a multimedia presentatation, the delivery processor 400
retrieves the requested PMP from storage 300. The delivery processor 400 executes the delivery schedule embedded in the PMP and delivers the multimedia objects and presentation commands to the presentation processor corresponding to the requesting
customer. The presentation processor 600 presents the multimedia objects to the customer according to presentation commands. The presentation processor 600 also receives messages from its customer, which messages may include the customer's selection of
an interactive feature, and on receiving such a message, the presentation processor 600 forwards a message to the delivery processor 400 advising it of the customer's selection.
The distribution network 500 interconnecting the delivery processor 400 and the presentation processors 601-1 through 601-N comprises transmission equipment and transmission links of fiber optic, coaxial, or copper cable or other suitable
transmission medium. Specifically, the distribution network could be the distribution portion of a public switched telephony network (PSTN), which employs Integrated Services Digital Network (ISDN) technology operating at a basic rate of 128 Kb/s or
asymmetrical digital subscriber line (ADSL) technology, which provides transport at 1.5 Mb/s, downstream, and a few kilobits/second, upstream, overlaid on a telephony channel. Alternatively, the distribution network 500 could also include a local area
network.
Multimedia Preprocessor
A detailed depiction of an illustrative embodiment of our multimedia preprocessor 200 is shown in FIG. 3. The preprocessor 200 receives as an input at input port 210 an OMP, which is stored in OMP storage 201 and which may have been created
using any of the well-known multimedia authoring systems. Such systems allow authors to create presentations including formatted multi-font text, animations, graphics images, photographic images, audio and motion video. Many of these systems, such as
Macromedia's Authorware Professional, provide a graphical user interface enabling authors to create presentations by manipulating images on a computer display.
The output of the authoring system may not be in a format suitable as input to the preprocessor 200. Therefore, the output of the authoring system may require a software translation into the format suitable for the preprocessor 200. For
purposes of discussion, it is assumed that the OMP is in a format acceptable to the preprocessor 200. An illustrative OMP is depicted in FIGS. 1B and 1C and is described in the Background of the Invention.
Another input to the preprocessor 200 at input port 230 is the presentation technology parameters (PTPs), which define characteristics of the delivery processor 400, the distribution network 500, and the presentation processor 600. The PTPs
include the minimum bit rate of the distribution network 500, the maximum memory capacity of the presentation processor 600, and the round trip latency (RTL) between the delivery processor 500 and the presentation processor 600. The PTPs may be manually
inputted at input port 230 from a human interface. Alternatively, the preprocessor may request the PTP from the system component being characterized by the PTP. For example, the preprocessor could prompt presentation processor 600-1 for its memory
capacity, the delivery processor for the RTL between the delivery processor 400 and presentation processor 600-1, and the distribution network, connecting the delivery processor 400 and presentation processor 600-1, for its bit rate. Each component
prompted by the preprocessor would electronically transmit the requested PTP to the preprocessor at input port 230. The delivery processor includes a PTP generator 407 (discussed infra), which transmits signals to and and receives signals from a
presentation processor to measure a RTL as input to the preprocessor. Based on the PTPs and the OMP, the preprocessor 200 generates at output port 250 a PMP, which includes a delivery schedule comprising delivery commands to be executed by the delivery
processor for delivery of the presentation to the presentation processor 500.
The preprocessor 200 comprises an OMP store 201 for receiving and storing the presentation to be preprocessed and a PTP store 203 for receiving and storing these parameters to be used during preprocessing. The preprocessor also includes a memory
counter 206 for tracking the available memory at the memory store 603 (See FIG. 5, discussed infra) of the presentation processor 600 as multimedia objects are scheduled for delivery. The preprocessor 200 also includes an active clock 208 for tracking
the current time into the presentation along a particular path of the presentation and associated with a particular clock.
Additionally, the preprocessor 200 comprises a presentation scheduler 205 which controls the preprocessing of the OMP. The presentation scheduler 205 assesses the objects to be delivered and their associated presentation times and the
interactive features that may be selected by the customer during pre-specified intervals of the presentation. Considering the results of this assessment and the PTPs defining the characteristics of the delivery system which is to deliver and present the
presentation, the presentation scheduler 205 generates a PMP comprising a delivery schedule for delivering the presentation such that interactive response delays and gaps in the presentation are virtually eliminated. In the case where a delivery
schedule cannot be generated for a presentation to avoid such delays and gaps, the presentation scheduler 205 causes a message generator 207 to relay an error message indicating that an optimal delivery schedule is unachievable for the presentation over
a delivery system having the specified PTPs.
In generating the delivery schedule, the presentation scheduler analyzes the objects, their associated presentation times, and optional customer interactive features. The presentation scheduler 205 then generates delivery commands which comprise
the delivery schedule such that:
1) each presentation command and its associated object arrive at the presentation processor no later than the time at which the object is to be presented;
2) any presentation command and associated object delivered to the presentation processor can be accommodated at the memory of the presentation processor; and
3) the interactive response time due to the customer's selection of an interactive feature is virtually eliminated. For certain OMPs, it may not be possible to produce a delivery schedule meeting these constraints. In such cases, the
presentation scheduler 205 may cause the message generator 207 to report an error and may halt the preprocessing operation.
The delivery schedule generated by the presentation scheduler during preprocessing can be best described as a labelled, directed graph, G, comprising nodes, leads, and labels, wherein:
G=(N, LE, LA)
N=(S, E, R)
N is a set of nodes
S (an element of N) is a designated Start Node
E (an element of N) is a designated End Node
R (a subset of N) is a set of Return Nodes
LE is a set of leads, which are output leads from nodes
LA is a set of labels for each lead, each label being an integer.
The Start (S) Node contains instructions for the delivery processor to begin delivery of the multimedia presentation to the presentation processor. The End (E) Node contains instructions to notify the delivery processor that the delivery of the
presentation is completed, and the Return (R) Node contains instructions for the delivery processor to return in the graph to the point prior to the current node.
Each lead in the graph has a label which is an integer. These labels indicate points where the delivery processor may receive messages from the presentation processor in response to interactive features being offered to the customer. A lead
labelled zero indicates the default path to be followed if no message indicating the selection of an interactive feature is received at the delivery processor. A lead having a non-zero label indicates an alternate path that should be followed if such a
message is received. If a customer selects an interactive feature, a message is sent from the presentation processor to the delivery processor, and the delivery processor checks for such messages at appropriate labels in the delivery schedule. Such
messages are interpreted by the delivery processor to correspond to a label and are used by the delivery processor to identify the lead that should be followed in continuing the delivery of the presentation.
Each node, N, contains a delivery command, which may include commands for the delivery processor to "send" information to the presentation processor, "wait" for a customer interaction, or "halt" delivery of the presentation to the presentation
processor. A send command contains an object which is to be delivered to the presentation processor, the presentation command associated with the object being delivered, and the earliest time at which the object is to be delivered. The wait and halt
commands contain no objects for delivery.
In generating the delivery schedule, the preprocessor maintains a view of the time on the active clock and available memory at the presentation processor by simulating the delivery of the presentation from the delivery processor and the play out
of the multimedia presentation at the presentation processor. One of the basic operations of the presentation scheduler 205 is to schedule an object for delivery to the presentation processor by incorporating a node, N, containing a send command into
the delivery schedule. The presentation scheduler 205 schedules objects for delivery according to presentation time, with objects having the earliest presentation time being scheduled for earliest delivery. Objects to be presented only if the customer
selects an interactive feature are scheduled for delivery such that a sufficient number of these objects are available for presentation as of the time that the interactive feature is offered to the customer such that delays due to interactive response
time delays are virtually eliminated.
In determining the placement of the node in the delivery schedule and generating the associated send command, the presentation scheduler 205 determines the earliest time at which the presentation processor 600 will have sufficient available
memory to accommodate this object by tracking the presentation processor's available memory capacity at memory counter 206. If no such time can be identified by the preprocessor, or if the identified time is later than the presentation time of the
object, then the presentation may be deemed undeliverable. The presentation scheduler may discontinue the preprocessing operation and cause an error message to be generated at the message generator 207.
If an appropriate time is identified, the presentation scheduler 205 inserts a node containing a send command into the the delivery schedule. This send command identifies the delivery start time of the object, the object to be delivered, and its
associated presentation command to be executed by the presentation processor. If the presentation scheduler 205 finds, by checking its memory counter 208, that an object and its associated presentation commands cannot be accommodated in its entirety by
the presentation processor prior to the presentation time, but that there is some, but limited available memory at the presentation processor, the presentation scheduler may re-package the original object into smaller objects for delivery at different
times under different send commands.
The presentation scheduler 205 will include a wait command in the delivery schedule to instruct the delivery processor to wait until a pre-specified period of time has elapsed or until a pre-specified condition is met. Alternatively, a wait
command could instruct the delivery processor to wait for a customer interaction before proceeding with the delivery of the presentation. Since the delivery processor will, in general, be serving multiple customers, it is expected that the delivery
processor will process delivery schedules for other customers while it is waiting. The presentation scheduler may also generate a halt command to instruct the delivery processor to terminate delivery of the presentation.
Delivery Processor
An illustrative embodiment of our delivery processor 400 is shown in FIG. 4 and comprises an interface 405 to the mass storage 300 and an interface 404 to the presentation processors 600-1 through 600-N via the distribution network 500. Another
component of the delivery processor is the PTP generator 407, which determines the RTL between the delivery processor and a presentation processor, which round trip latency is used by the preprocessor during preprocessing.
As described above, the RTL is the time for a 1 bit message to be sent from a presentation processor to the delivery processor and a response from the delivery processor to be received at the presentation processor. Therefore, the RTL is the
time required for the following actions to occur:
1) Transmission of a message consisting of one bit from a presentation processor via the distribution network to the presentation processor;
2) Detection of this message and generation of a one bit response by the delivery processor while serving a maximum number of simultaneous presentation processors; and
3) Transmission from the delivery processor, via the distribution network, of a one bit response to the presentation processor.
To determine the RTL between the delivery processor and a presentation processor, the PTP generator 407 sends a message via the interface 404 to the distribution network 500 requesting the one-way propagation delay (PD) of the network, which
propagation delay is the time for one bit to travel over the distribution network from the delivery processor to the presentation processor. Furthermore, the PTP generator requests from a delivery controller 401 (discussed infra) of the delivery
processor, which executes delivery commands of the PMP, information regarding the worst case service time (ST), in second, of the delivery controller. This information is specific to the delivery controller and is dependent on the performance of the
software and hardware employed therein. The service time is the maximum time for the delivery controller, once receiving a message from the presentation processor indicating the customer's selection of an interactive feature, to respond with appropriate
presentation commands and objects, while simultaneously serving other presentation processors under worst case conditions. The PTP generator may have been preprogrammed with the service time of the delivery processor, thus precluding the need to request
this information from the delivery controller. Alternatively, the PTP generator could be an element of the delivery controller.
The PTP generator then uses the network propagation delay (PD) received from the distribution network and the service time (ST) received from the delivery controller and generates the round trip latency (RTL) based on the following mathematical
expression:
The PTP generator may also request and receive from the distribution network its network bit rate, and from the presentation processor, via interface 404, its memory capacity, thereby permitting the preprocessor to retrieve all PTPs from the PTP
generator 407 in lieu of having to communicate directly with the distribution network and presentation processor. On being prompted by the preprocessor for PTPs, the PTP generator sends, via interface 405, the PTPs requested.
The delivery processor further includes a presentation store 403, where preprocessed multimedia presentations are stored once retrieved from mass storage 300, and a local delivery clock for tracking the current time at the delivery processor.
Also, the delivery processor includes a message store 402 for holding messages received from the presentation processor including messages indicating customers' selections of interactive features.
Another element of the delivery processor is a delivery controller 401, which, on receiving a presentation request from a customer, causes the PMP version of the requested presentation to be retrieved from mass storage 300 of FIG. 2 into the
presentation store 403 via interface 405. The delivery controller 401 then delivers the presentation to the presentation processor corresponding to the requesting customer by implementing the delivery schedule embedded in the PMP. Specifically, the
delivery controller 401 follows the labelled, directed graph representing the delivery schedule and executes the delivery command contained in each node of the graph.
The main function of the delivery processor 400 is to execute the delivery schedule beginning with the Start (S) Node and following the delivery commands contained in each node. If the inspected node contains a halt command, the delivery
processor halts delivery of this presentation to the presentation processor until a pre-specified time has elapsed or some other specified condition has been fulfilled. If the inspected node contains a send command, the delivery processor waits (if
necessary) until the current time is equal to the delivery time in the command. The delivery processor then transmits the specified object to the presentation processor. If the inspected node contains a wait command, the delivery processor inspects the
output lead(s) of the node. Each node will have a single output lead labelled 0, and may have one or more leads labelled with a non-zero integer.
On encountering a node having multiple output leads, which indicates that an interactive feature is available for customer selection, the delivery controller 401 of the delivery processor will check the message store 402 to determine if a message
has been received from the presentation processor indicating customer's selection of an interactive feature. If such a message has been received, the delivery processor follows the lead having a label which corresponds to the customer's message and
inspects the node that is reached by following that lead. If no such message is received or if the node has a single lead labelled 0, indicating that no customer interactive feature is available for selection, the delivery processor will follow the lead
labelled zero and inspect the node that is reached. In inspecting a node, the delivery processor reads the delivery commands contained in the node and executes them as instructed. Then, the delivery processor inspects the outgoing leads from that node
to determine its next action.
Presentation Processor
An illustrative embodiment of our presentation processors 600-1 through 600-N is shown in FIG. 5. Each presentation processor comprises an interface 601, which receives information for communicating messages to the delivery processor 400. The
presentation processor also comprises an interface 602 for communicating with its corresponding customer. A memory store 610 is located at the presentation processor which may be partitioned into an object store 603, for storing objects of the
multimedia presentation, a command store 604, for storing presentation commands, and an interaction table store 605, for storing the interaction table of the presentation being presented. In addition, a customer input store 606 for collecting and
storing customer's inputs, which may include a message indicating a customer's selections of an interactive feature, is also an element of the presentation processor 600.
The presentation processor also includes a local presentation clock 607 which tracks the local time at the presentation processor. Another element of the presentation processor is a presentation controller 608 which executes presentation
commands received from the delivery processor and presents the objects of the presentation as instructed. The presentation controller 608 causes interface 601 to store presentation commands in command store 604, presentation objects in object store 603,
and the interaction table in store 605. Another function of the presentation controller 608 is to check the customer store for messages from the customer indicating selection of an interactive feature. Upon selecting such a message, the presentation
controller 608 forwards a message to the delivery processor 400 via interface 601 and the distribution network 500 (see FIG. 2).
The basic function of the presentation processor is to receive and process objects and presentation commands sent by the delivery processor as a result of executing delivery commands and to present the objects to the customer as instructed in the
presentation commands. The presentation commands contain instructions for the presentation processor to execute and the time at which such instructions should be executed. In particular, a presentation command may contain the time at which an
associated object is to be presented.
The presentation controller of the presentation processor continually compares the time on its local clock with the time for executing each presentation command to determine if any of the presentation commands are due to be executed. If so,
these commands are executed and then the commands and their associated objects are deleted from the memory store 610. The presentation controller also monitors customer store 606, and if a message is received at store 606 indicating that an interactive
feature has been selected, the presentation processor checks the interaction table stored at store 605 to determine whether the interactive feature is enabled. If so, the presentation processor sends a message to the delivery processor indicating the
customer's selection of the interactive feature.
Illustrative Processing and Delivery of OMP
The operation of our processing and delivery system is described below. First, operation of the preprocessor and the steps taken in generating a PMP and its associated delivery schedule for the illustrative OMP shown in FIGS. 1B and 1C are
discussed, and FIGS. 7A through 7E show a flow diagram of our preprocessing method 800. As indicated in the background of the invention, we assume that the distribution network 500 operates at a network bit rate of 128 kb/s and that the memory capacity
at the customer's CPE is 250 Kbytes. We also assumed that the RTL is 2 seconds.
Preprocessing of an OMP begins with the OMP being loaded into the OMP store 201 and the PTPs being loaded in the PTP store 230 (Step 810 of FIG. 7A). The PTPs may be loaded manually from a human interface or inputted directly from the delivery
processor 400, distribution network 500, or presentation processor 600 to be employed in delivering and presenting the presentation. In generating a delivery schedule 240, depicted in FIG. 6B, the presentation scheduler will define the clock of the main
presentation, Clock 1, as the active clock, set the active clock to t.sub.1 =0, initialize the memory counter to 250 Kbytes, and define a Start (S) Node (Step 811). The Start Node contains instructions for the delivery processor to begin delivery of the
multimedia presentation to the presentation processor. This node will also contain a send command for the delivery processor to send the interaction table of the presentation to the presentation processor and a presentation command to be delivered by
the delivery processor to the presentation processor instructing it to wait five seconds before proceeding with the play out of the presentation. Also, the start node contains instructions for the delivery processor to make Clock 1 the active clock
which is initialized at t.sub.1 =0. After defining the Start Node, the presentation scheduler 205 updates the active clock to reflect the time that will lapse in executing the delivery commands contained in the Start Node (Step 811). Since the time
required to deliver the interaction table and this command to the presentation processor is infinitesimally small, the time on the active clock 208 after the Start Node has been executed remains at t.sub.1 =0.
In scheduling objects for delivery, the presentation scheduler first analyzes the OMP to identify the unscheduled object on Clock 1 having the earliest presentation time (Step 812). In finding that Object 1 has the earliest presentation time
(t.sub.1 =5 seconds), the preprocessor makes Object 1 the current object for scheduling (Step 812). The presentation scheduler inspects the interaction table of the OMP (see FIG. 1D) and determines whether an interactive feature is available for
selection by the customer between the current time on the active clock (t.sub.1 =0) and the presentation time (t.sub.1 =5 seconds) of the current object (Object 1) (Step 813). As shown in FIG. 1D, an interactive feature is available for selection by the
customer only between t.sub.1 =9 seconds and t.sub.1 =19 seconds.
Since no interactive feature is available for selection between t.sub.1 =0 and t.sub.1 =5 seconds (Steps 814 and 815), the memory counter can accommodate the 50 Kbytes of Object 1 (Step 820 of FIG. 7B), and Object 1 can be delivered prior to its
presentation time (t.sub.1 =5 seconds) (Step 822), the presentation scheduler includes in the delivery schedule Node 1, which contains a send command for delivering Object 1 and its associated presentation command with delivery start and end times of 0.0
and 3.1 seconds, respectively, as shown in FIG. 6A (Step 823). If Object 1 could not have been delivered prior to its presentation time, an error message would have been generated at the message generator 207 (Step 824). Furthermore, as shown in FIG.
6B, the presentation scheduler includes lead 220, which is labelled 0 and which connects the Start Node and Node 1, to indicate the default path to be followed in the delivery schedule (Step 825). In addition, the presentation scheduler 250 tracks the
available memory at the presentation processor at memory counter 206 which indicates that 200 Kbytes of available memory will remain after the 50 Kbytes of Object 1 are delivered (See FIG. 6A and Step 826 of FIG. 7B). The presentation scheduler then
updates the active clock which indicates that 3.1 seconds have elapsed after the object has been delivered resulting in t.sub.1 =3.1 seconds (Step 826).
Since there are other unscheduled objects on the active clock (Step 816 of FIG. 7A and Steps 850 and 854 of FIG. 7C), the presentation scheduler then similarly schedules the delivery of the next unscheduled object to be presented on Clock 1
having the earliest presentation time, Object 2. No interactive feature is enabled between the current time on the active clock (t.sub.1 =3.1 seconds) and the presentation time of Object 2 (t.sub.1 =9 seconds). Therefore, the scheduled delivery of
Object 2 is represented by Node 2, in the graph of FIG. 6B, and lead 221, labelled 0, connects Nodes 1 and 2. As indicated in FIG. 6A, Object 2 is scheduled for delivery starting at t.sub.1 =3.1 seconds. Since Object 2 contains only 50 bytes of
information, the total time for delivering this object to the presentation processor is negligible and the end delivery time of Object 2 is 3.1 seconds. After delivery of Object 2, t.sub.1 =3.1 seconds. In scheduling the delivery of Object 3 and
inspecting the interaction table of the OMP, the presentation scheduler determines that an interactive feature is available for selection by the customer between the current time on the active clock (t.sub.1 =3.1 seconds) and the presentation time of
Object 3 (t.sub.1 =16 seconds) (Step 814 of FIG. 7A). The presentation schedule refers to the interaction table and determines that the selection of the interactive feature would result in Clock 2 becoming the active clock and Objects 6 and 7 being
presented prior to Object 3.
To ensure that sufficient information is available at the presentation processor in the case that the interactive feature is selected, the presentation scheduler shifts from scheduling Object 3 to a determination of what portions of Objects 6 and
7 should be pre-delivered to the presentation processor such that the interactive response time is virtually eliminated (Step 817 of FIG. 7A). To make this determination, the presentation scheduler first determines that Object 6 would be the earliest
unscheduled object to be presented on Clock 2 if the interactive feature is selected (Step 830 of FIG. 7D) and makes Object 6 the active object (Step 831).
The presentation scheduler next determines whether the available memory at the presentation processor is sufficient to accommodate the 50 Kbytes of Object 6 and whether Object 6 can be delivered prior to its earliest presentation time (Steps 820
and 822 of FIG. 7B). As shown in the interaction table of FIG. 1D, the sidebar interactive feature could be selected as early as t.sub.1 =9 seconds. Therefore, the earliest presentation time of Object 6 is t.sub.1 =9 seconds. The next available
delivery time is t.sub.1 =3.1 seconds and transmission of Object 6 from the delivery processor to the presentation processor would take 3.1 seconds. Therefore, if scheduled as the next object for delivery, Object 6 would be completed at t.sub.1 =6.2
seconds, which time is prior to its earliest presentation time of t.sub.1 =9 seconds. The available memory at the presentation processor is 200 Kbytes which can accommodate the 50 Kbytes of Object 6.
Since Object 6 can be completely delivered to the presentation processor prior to its earliest presentation time, and since sufficient memory is available at the presentation processor, the presentation scheduler schedules the delivery of Object
6 by adding Node 3 into the delivery schedule of FIG. 6B, with delivery start and end times of t.sub.1 =3.1 and 6.2 seconds, respectively, as shown in FIG. 6A. In addition, the presentation scheduler continues to track the available memory at the
presentation processor at memory counter 206 which indicates 150 Kbytes of available memory after Object 6 is delivered. The presentation scheduler also includes lead 222, as shown in FIG. 6B, which is labelled 0 and which connects Nodes 2 and 3. The
active clock is updated to reflect a current time of t.sub.1 =6.2 seconds after the delivery of Object 6 (Steps 820-826 of FIG. 7B).
Since the objects on Clock 2 will only be presented by the presentation processor in the case that the customer selects an interactive feature, the presentation scheduler next assesses whether there is a need to schedule the delivery of the next
object on Clock 2, Object 7, to ensure that the interactive response time is virtually eliminated (Steps 833 and 832 of FIG. 7D). Therefore, the presentation scheduler assesses whether the delivery of Object 7 can be delayed until after the customer
selects the interactive feature without interactive response delays being realized. This determination is made by comparin | | |