This invention relates to the field of composition and presentation of multimedia. More specifically, the invention relates to the programmatic generation of multimedia presentation sequences.
A block diagram of a conventional distributed multimedia presentation environment is shown in
Therefore, conventionally, multimedia presentation materials are generated before the presentation, i.e., at an authoring time. Once generated, presentation is accomplished exactly as the presentation materials are pre-composed. The user's capability to interact with the presentation is limited through interaction with the control panels 12 on the presentation device 11. Typical examples of the possible interactions provided by these control panels 12 include selection of different materials (channels or URLs), fast forward, fast reverse, pause, etc. However, in prior art systems, no dynamic changes to the presentation materials are supported.
A somewhat enhanced interaction capability is provided by the 3D object model. A pre-specified interaction semantic is built into the object. For example, PanoramIX, an image-based rendering software from IBM (www.software.ibm.com/net.media), uses environment maps (e.g., cylinders with tops/bottoms or polyhedral approximations of spheres) to render the background from a fixed viewpoint that does not translate. It supports smooth rotation and continuous zoom of the view. PanoramIX also allows pre-composition of a complex scene with embedded sprites, audio segments, video clips and 3D objects. It uses a control file that is pre-defined during scene authoring, using a special authoring tool.
Another example of a prior art system that uses pre-composed complex scenes is contained in the specifications of the MPEG-4 standard. MPEG-4 employs a BIFS (Binary Information for Scenes) composite file that describes a scene hierarchy, along the lines of VRML (Virtual Reality Modelling Language) scene graphs. Leaf nodes of the graph are AVOs (Audio-Visual Objects) that could be a video or audio or a 3D object or any other component media type. In fact, PanoramIX may be viewed as one instance of the MPEG-4 specification.
While they do provide some added interaction capability, these systems still fall short of providing the full ability to dynamically alter presentations after authoring.
The present invention provides a method by which a user can programmatically compose presentation materials which have been authored. First, users compose different presentations by applying dynamic synchronization, placement and selection of media stream segments under the control of a program. In contrast to pre-composed presentations where the selection of media segments and the synchronization and placement of those media segments are predetermined (e.g., MPEG-2 video), in the present invention, the selection, synchronization (for example, the determination of starting times for each media segment and delay insertion) and placements (in the display window) are controlled dynamically through the composition program. Second, the composition programs themselves are rule-based and event-driven, and therefore can be dynamically altered. Third, the program that controls composition may be downloaded or pre-resident at the presentation site. Additionally, various commands (understood by this program) may also be streamed to the program via separate logical channel(s). Finally, the composition can be accomplished both at the client site or at the server site based on user interactions at the client as well as network and server load.
Specifically, a method of dynamically generating a presentation sequence from a plurality of authored presentation documents is provided including the steps of receiving the plurality of authored presentation documents from a plurality of data sources, applying the plurality of authored presentation documents to a set of presentation rules, and generating the presentation sequence in response to the applying step.
Preferably, the applying step includes the steps of testing for satisfied rule conditions and applying the plurality of authored presentation documents to a set of presentation rules in response to the satisfied rule conditions. In addition, it is preferable that the method include the step of receiving user input and wherein the generating step includes the step of generating the presentation sequence in response to the received user input. The method preferably includes the further step of modifying the set of presentation rules in response to the received user input.
The method can further include the step of sensing an external event, wherein the generating step includes the step of generating the presentation sequence in response to the sensed external event. Additionally, the method can further include the step of modifying the set of presentation rules in response to the sensed external even or in response to the received presentation documents.
The method can further include the steps of receiving meta data from the data sources and modifying the set of presentation rules in response to the received meta data.
The authored presentation documents are preferably authored presentation sequences and the generated presentation sequence is preferably a composite presentation sequence.
A method for programmatic generation of continuous multimedia presentations by a station capable of receiving at least one presentation and sensed events is also provided including the steps of maintaining a library of rules, receiving at least one presentation; selecting at least one event to be sensed; receiving the event, testing each rule in the library for each received event; and optionally applying each rule to the presentation for each received event in response to the testing step to modify the presentation or to generate a new presentation.
A method for dynamically composing a presentation from a plurality of multimedia components is also provided including the steps of selecting one or more of the multimedia components to be identified as an initial portion of the presentation; programmatically selecting one or more other multimedia components to be identified as a subsequent portion of the presentation; disposing the subsequent portion with or following the initial portion; and synchronizing the selected components to form the presentation.
Preferably, this method further includes the step of presenting the presentation. The multimedia components can be continuous media components or non-continuous media components. They can also be audio or video components or text or image components.
It is preferable that the programmatically selecting step is responsive to input parameters, a past presentation history or a current state and to line content or meta-data.
A program storage device, readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for dynamically generating a presentation sequence according to the above-referenced method steps is also provided.
A programmatic presentation generator into which presentation documents are received is provided, including a rule base; a program state; and a computation engine, wherein the engine receives rule data from the rule base and state data from the program state and generates a presentation sequence responsive to the presentation documents, the rule data and state data.
A set top box for receiving channels and sending presentation sequences to a digital television is also provided, including the programmatic presentation generator of the present invention.
Finally, a television set for receiving channels and generating presentation sequences is provided including the programmatic presentation generator of the present invention.
Further objects, features and advantages of the present invention will become apparent from a consideration of the following detailed description of the invention when read in conjunction with the drawing figures, in which:
This programmatic presentation generator 1A4 could be incorporated on different software components. For example, it can be incorporated as part of the set-top box environment or executed as part of the server software.
The rule-base 261 is composed of a set of rules to be described hereinbelow. The rule-base 261 can be modified (i.e., adding, deleting or modifying one or more rules) in several ways. First, modification can occur by local user input. Second, one or more existing rules can implicitly modify the rule-base. Finally, data contained in the presentation sequence(s) received from the data source(s) or meta data received from the data source(s) in a separate logical channel (whether initiated by a user pull command or by a data source push command) can alter the rule-base.
The presentation state 262 consists of a presentation history and a set of state variables. The presentation history includes the history of such information as presentation contents, user interactions and external events up to a certain point in time. A state variable is a program-defined variable which serves to mark and represent the status of a presentation so that it can be referred within a program (rules).
The computation engine 263 includes computational logic which monitors the presentation state 262, interprets the rule base 261 and sensed external events, and modifies the presentation sequence, thereby generating a new presentation sequence 264 and a resulting presentation 27. The sensed external events can include input timing parameters and user inputs. Upon each sensed external event, the engine 263 serializes the rules in the rule-base 261, and applies each rule to the current presentation sequence. That is, given a rule-base RB={R1, R2, . . . , Rn}, where Ri is a rule, and the current presentation sequence P, the engine generates the new presentation sequence Pn as follows:
P=={R1}==>P1=={R2}==>P2=={R3}==>P3=={Rn}==>Pn
where Pi is the presentation sequence generated from the presentation sequence Pi−1 by applying rule Ri.
ACTION 32 is a sequence of operations on a presentation sequence to generate a new presentation. These operations can be realized by any code segments using any programming language such as C, PASCAL, JAVA, etc. The operations in an ACTION are preferably composed of four parts 321, 322, 323, 324. The first code segment 321 is to specify the selection of different content data to be included in the presentation. The second is the code segment 322 which specifies different temporal orders of presentation. This code segment uses the operations which will be described in
In the application of a rule Ri=<TEST,ACTION> to a presentation sequence P, first, it is tested if the condition TEST is met and if so, the code segment ACTION is applied to the presentation sequence P. More mathematically, when the condition TEST is satisfied (is TRUE), an ACTION can be specified as Pold==ACTION==>Pnew where Pold is the current presentation sequence and Pnew is the new presentation sequence.
The operation to create a presentation sequence can be represented by Create, i.e.,
Create(<(s1,t1),(s2,t2), . . . ,(sn,tn)>).
Given a sequence of static objects, s1, s2, . . . , sn, a presentation sequence <(s1, t1), (s2, t2), . . . , (sn, tn)> is created in which static object si is displayed during virtual time interval (ti, ti+1). For example, in
A presentation sequence can also be generated from one or more existing presentation sequences using temporal operators. A set of temporal operations for the description of temporal property can also be found in “Composition and Search with Video Algebra” by Ron Weiss, Andrej Duda and David K. Gifford in IEEE Multimedia, 1995.
Head (D,i) 81: Given a presentation sequence D=<(s1, t1), (s2, t2), . . . , (sn, tn)>, a subsequence ending at the ith object is selected as a new presentation sequence. That is, Dnew=<(s1, t1), (s2, t2), . . . , (si, ti)>.
Tail (D,i) 82: Given a presentation sequence D=<(s1, t1), (s2, t2), . . . (sn, tn)>, a subsequence starting from the ith object is selected as a new presentation sequence. That is, Dnew=<(si, ti), (si+1, ti+1), . . . , (sn,tn)>.
Delay (D,t) 83: Given a presentation sequence D=<(s1, t1), (s2, t2), . . . (sn, tn)>, a new presentation sequence Dnew is created in which the virtual display times are delayed by t virtual time units. That is, Dnew=<(s1, t1+t), (s2, t2+t), . . . , (sn, tn+t)>.
Stretch (D,r) 84: Given a presentation sequence D=<(s1, t1), (s2, t2), . . . , (sn, tn)>, a new presentation sequence Dnew is created in which the starting times ti of static object si is scaled to ti×r, i.e., Dnew=<(s1, t1×r), (s2, t2×r), . . . , (sn, tn×r)>.
Repeat (D,i,j,r) 85: Given a presentation sequence D, a new presentation sequence is created in which the subsequence from si to sj is repeated r times.
A composite presentation sequence also can be generated by temporally relating multiple presentation sequences (i.e., via inter-sequence operations) according to the present invention.
Meet (D1, D2) 91: Given two presentation sequences D1 and D2, a new presentation sequence Dnew is created in which the starting time of D2 is the same as the ending time of D1.
Co-Start (D1, D2) 92: Given two presentation sequence D1 and D2, a new presentation sequence Dnew is created in which the starting time of D1 and D2 are the same.
Co-End (D1, D2) 93: Given two presentation sequences D1 and D2, a new presentation sequence Dnew is created in which the ending time of D1 and D2 are the same.
Interleave (D1, D2, d) 96: Given two presentation sequences, D1 and D2, a new presentation sequence is created in which the two sequences are interleaved. Here the parameter d represents the delay in the new presentation sequence of the start time of D2 relative to the start time of the presentation sequence D1.
Given a presentation sequence, a presentation is constructed by associating a start time and a play rate. More mathematically, P=<D, ts, r> is a presentation where the presentation sequence D is started at real time S with play rate r. Here the start time ts and the play rate r are used to map virtual times to real times. For example, virtual time ti is mapped to real time ts+ti×r.
Thus, an important feature of the framework of a programmatic generation of a presentation according to the present invention is that the rule-base can be dynamically changed by inserting/deleting/modifying rules and the changes can be dynamically reflected in the generation of a presentation with the engine.
The framework of the programmatic generation of the presentation sequence according to the present invention can be made in either the multimedia server or in the client presentation system or both.
Now that the invention has been described by way of a preferred embodiment, various modifications and improvements will occur to those of skill in the art. Thus, it should be understood that the preferred embodiment is provided as an example and not as a limitation. The scope of the invention is defined by the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
5388197 | Rayner | Feb 1995 | A |
5410344 | Graves et al. | Apr 1995 | A |
5550735 | Slade et al. | Aug 1996 | A |
5614940 | Cobbley et al. | Mar 1997 | A |
5659790 | Kim et al. | Aug 1997 | A |
5664206 | Murow et al. | Sep 1997 | A |
5740388 | Hunt | Apr 1998 | A |
5758093 | Boezeman et al. | May 1998 | A |
5805156 | Richmond et al. | Sep 1998 | A |
5815717 | Stack | Sep 1998 | A |
5818441 | Throckmorton et al. | Oct 1998 | A |
5826102 | Escobar et al. | Oct 1998 | A |
5848352 | Doughrty et al. | Dec 1998 | A |
5861880 | Shimizu et al. | Jan 1999 | A |
5931908 | Gerba et al. | Aug 1999 | A |
6040841 | Cohen et al. | Mar 2000 | A |
6118444 | Garmon et al. | Sep 2000 | A |
6119154 | Weaver et al. | Sep 2000 | A |
6173317 | Chaddha et al. | Jan 2001 | B1 |
6257774 | Stack | Jul 2001 | B1 |
6260194 | Shiels et al. | Jul 2001 | B1 |
6298482 | Seidman et al. | Oct 2001 | B1 |
6317885 | Fries | Nov 2001 | B1 |
6597405 | Iggulden | Jul 2003 | B1 |
6654930 | Zhou et al. | Nov 2003 | B1 |
6792618 | Bendinelli et al. | Sep 2004 | B1 |
6810503 | David et al. | Oct 2004 | B1 |
7272780 | Abbott et al. | Sep 2007 | B2 |
20020080159 | Montgomery et al. | Jun 2002 | A1 |
Number | Date | Country |
---|---|---|
7210652 | Aug 1995 | JP |
8180037 | Jul 1996 | JP |