The invention relates to creating themes used by an authoring application to produce a multimedia presentation.
Multimedia authoring applications allow a user to create and edit multimedia items, such as Digital Versatile Discs (DVDs), for distribution. Multimedia authoring applications also allow the user to create and edit multimedia presentations for the multimedia item, such as an interactive menu presentation for the DVD. These multimedia presentations typically include an area for presenting a movie or image and a set of selectable menu buttons. The selectable menu buttons allows a user, for example, to play a multimedia item (such as a movie) or transfer to another set of menu buttons. Interactive menus keep a viewer of the multimedia item entertained until the viewer selects one of the menu buttons.
The invention provides a method for creating a menu theme (i.e., template) for a multimedia authoring application. As used in the multimedia authoring application, the menu theme provides a basic structure for a multimedia menu presentation (such as a DVD menu presentation) that allows a user to easily create and edit the multimedia menu presentation. A theme includes one or more drop zone areas to receive and immediately present a multimedia graphic (such as a still image, set of still images, or a movie). A user selects a multimedia graphic to be presented in a drop zone area, for example, by dragging and dropping the multimedia graphic onto the drop zone area. A theme may also include an animation and/or a set of selectable menu buttons.
A menu theme is created using a menu theme description file that contains a general description of each object (such as a drop zone area, selectable menu buttons, menu title, theme background, etc.) contained in the menu theme. In addition, the menu theme description file contains a path to one or more patch files for each object in the menu theme, the patch file being used to render the object. In some embodiments, a patch file is created using a composer application that displays a graphical representation of the patch file and translates the graphical representation to a textual representation.
The novel features of the invention are set forth in the appended claims. However, for purpose of explanation, several embodiments of the invention are set forth in the following figures.
The disclosure of United States patent application entitled “Method and Apparatus for Creating Multi-Media Presentations,” having Ser. No. 10/337,924 filed on Jan. 6, 2003, is expressly incorporated herein by reference.
In the following description, numerous details are set forth for purpose of explanation. However, one of ordinary skill in the art will realize that the invention may be practiced without the use of these specific details. In other instances, well-known structures and devices are shown in block diagram form in order not to obscure the description of the invention with unnecessary detail.
Multimedia Authoring Application Overview
The present invention introduces a multimedia authoring application to create and edit multimedia items, such as Digital Versatile Discs (DVDs), for distribution. The present invention allows a user to easily create a dynamic and interactive menu presentation for the multimedia item. The multimedia authoring application allows the user to create customized menu presentations using one of many pre-designed menu “themes” that gives a basic structure for the multimedia presentation. Each menu theme is a template menu that may be customized/modified by the user.
The multimedia authoring application displays the menu theme in a display area as part of a graphical user interface (“GUI”) with which a user can interact through traditional GUI operations, such as click operations (e.g., to select an item), click-and-drag operations (e.g., to move an item), etc. The multimedia authoring application allows a user to edit the menu theme, for example, by adding a multimedia graphic (such as a still image, set of still images to be displayed in a slide show, or a movie) to the menu theme through the use of a drop zone. A menu theme may includes one or more drop zone areas to receive and immediately present a multimedia graphic selected by the user. A user selects a multimedia graphic to be presented in a drop zone area, for example, by placing a cursor over the multimedia graphic and dragging and dropping the multimedia graphic onto the drop zone area using a cursor-controller device. The user may select a multimedia graphic from a list of multimedia graphics and easily import the selected multimedia graphic into the drop zone area of the menu theme. In some embodiments, a theme includes a special effect that is applied to the multimedia graphic after the multimedia graphic is selected to be presented in the drop zone area by the user.
In some embodiments, a theme further includes a set of selectable menu buttons. The set of selectable menu buttons serves as an interactive menu in the menu presentation that allows the user, for example, to begin viewing the multimedia item (e.g., a movie), advance to a specific scene in the multimedia item, navigate to submenus, view additional features, or navigate to other features. In some embodiments, a selectable menu button is comprised of two components, a text component and a multimedia graphic component (discussed below in relation to
The ability to easily create and edit multimedia presentations by adding a dynamic menu presentation is advantageous. Dynamic menu presentations not only keep a user entertained at the first instance of inserting the multimedia item into a multimedia player, but also enhance the overall appearance of the multimedia item. One advantageous feature of the menu presentation is that it may provide the user with a glimpse of the multimedia content that is on multimedia item.
Example of Multimedia Authoring Application Usage
In one embodiment, a default menu theme is loaded when the authoring application 200 is launched. In the example shown in
The selectable buttons 220 to 270 of the multimedia authoring application 200 allow the user to perform various operations. A customize button 220 allows the user to customize a present menu theme or select an alternative menu theme. A folder button 230 allows the user to navigate to various folders on the user's computer for either retrieving or saving various types of data, such as the menu presentation being created for the multimedia item. A slide show button 240 allows the user to import several images for displaying in a slideshow format on the multimedia authoring application 200. A motion button 250 allows the user to toggle whether or not any movies in the menu presentation will be displayed in motion. A preview button 260 allows the user to produce a simulation of how the interactive menu will appear and operate if created. A burn button 270 allows the user to produce a final multimedia item, such as a DVD, that contains the created menu presentation.
Referring back to
Referring back to
Customizing a Menu Theme
After a multimedia graphic is selected to be displayed in the drop zone area, the multimedia graphic is immediately displayed in the drop zone area to give the user a representation of how the menu presentation would appear to a viewer of the multimedia presentation. By providing a ‘real-time’ representation of the menu presentation, the authoring application 200 allows the user to quickly and easily determine how the menu presentation would appear to a viewer and if other customizations to the menu presentation are needed (for example, if the selected multimedia graphic does not give the desired look to the menu presentation).
Referring back to
To edit a menu theme, a user may also select a photos button 360 to bring up a library of images. One or more images from the library of images may then be selected for presentation in the drop zone area 650. If more than one image is selected, the images will be displayed in a slideshow format where the selected images will be displayed in sequential order in a loop manner.
A menu theme may contain one or more animations. In some embodiments, an animation file is a movie, for example, in QuickTime™ format. The example of
A menu theme also includes a set of selectable menu buttons 660. The user may add or delete a selectable menu button 660 or modify a selectable menu button 660. For example, the user may modify the text, shape, or multimedia graphic of the selectable menu button.
Referring back to
In some embodiments, upon selecting the burn button 270, all of the objects that define the menu presentation are rendered (composited) and a single movie (e.g., MPEG video and audio) is created and stored to the final multimedia item. Typically, the created movie has no interaction capabilities except through the selectable menu buttons. For the set of selectable menu buttons, an overlay layer is also rendered to produce an interactive function for the set of selectable menu buttons, each selectable menu button being a sub-area of the overlay layer.
As presented in the final multimedia item, a selectable menu button 660 allows a viewer, for example, to begin viewing a multimedia item, advance to a specific scene in the multimedia item, display a slideshow, navigate to submenus, view additional features, or navigate to other features. A selectable menu button 660 may be linked to submenus where each submenu may be created through use of a menu theme as well. For example, if the user selects the “Scene Selection” menu button from the selectable menu 660, a scenes submenu may be displayed.
Multimedia Authoring Application Environment
The menu theme description file 1010 is a description of a menu theme that contains a general description of each object (such as a drop zone area, selectable menu buttons, menu title, theme background, etc.) contained in the menu theme. General properties for each object are described in the menu theme description file 1010, such as position in the menu theme, size, alignment, etc. For example, for a menu title, the general properties may include font, size, color, etc.
Of particular interest in the menu theme description file 1010 is the description of the drop zone area. Each menu theme can have an arbitrary number of drop zone areas (1 to N). Each drop zone area is defined in the menu theme description file 1010 by several properties. Examples of these properties are position, area size (defined by a bounding box), orientation, an alpha value (that specifies a transparency level of a multimedia graphic presented in the drop zone area), and a Z-level (that specifies the depth of the drop zone area).
In addition, the menu theme description file 1010 contains a path to one or more patch files 1015 for each object in the menu theme, the patch file(s) being used to render the object. The general properties of an object described in the menu theme description file 1010 is used in conjunction with a patch file 1015 for the object by the rendering engine 1020 to render the object.
The patch file(s) associated with an object contains a description of modules having specific functions that are needed to render the object. The rendering engine 1020 reads and determines a specific function called for by a module in a patch file and calls and executes a plug-in program 1030 (discussed below) capable of performing the specific function. Typically, the menu theme description file 1010 contains a path to one patch file 1015 for each object in the menu theme. In some embodiments, however, for an object having two or more components (such as the selectable menu buttons 910 shown in FIG. 9), the menu theme description file 1010 contains a path to a patch file 1015 for each component of the object. In the case where an object has two or more components, a patch file is needed to render each component.
A patch file can be seen as having a low level description of an object that is concerned primarily with the description needed to render the object. In contrast, the menu theme description file 1010 contains a higher level description of an object and contains a description of the general properties of the object. In some embodiments, the menu theme description file 1010 and the patch files 1015 are Extensible Markup Language (XML) files.
The menu theme description file 1010 may also be part of a menu theme bundle (i.e., a folder of files) that contains “content” files (such as a file containing a default multimedia graphic) to be displayed in objects of the menu theme. If a default multimedia graphic is to be displayed in a particular object, the menu theme description file 1010 sends to a patch file (used to render the particular object), a path to the default multimedia graphic.
A patch file 1015 may also be part of a patch bundle (i.e., a folder of files) that contains “content” files containing, e.g., default multimedia graphics or animations to be displayed in an object of the menu theme when the menu theme is initially displayed. In some embodiments, the patch bundle is a sub-folder of the menu theme bundle. These default multimedia graphics or animations are used by the patch file 1015 to render the object.
A menu presentation is produced by the rendering engine 1020 using the general description of the menu theme in the menu theme description file 1010, customizations/edits made by a user (user input 1017) through the multimedia authoring application 1005, and the patch files 1015 referred to in the menu theme description file 1010. To render a particular object of a menu theme, the rendering engine 1020 loads and reads the patch file 1015 specified for the particular object in the menu theme description file 1010.
To render the menu theme, the rendering engine 1020 may use one or more plug-ins 1030, a plug-in 1030 being a program that implements a specific operation required by the menu theme description file 1010 or a module in a patch file 1015. For example, a plug-in 1030 may be used to import a multimedia graphic or text into the rendering engine 1020 or to implement a special effect (e.g., sepia tone, filtering, etc.) on an imported multimedia graphic, as called for by the menu theme description file 1010 or a patch file 1015. A plug-in is called (invoked) and executed by the rendering engine 1020 when needed. The rendering engine 1020 also uses a time/file program 1040 that manages resources required by the plug-ins 1030 (such as memory space, processor time, etc.).
Multimedia Authoring Application Architecture
The menu theme description file 1010 also refers to other files (called “referred files”) to render objects of the menu theme. A referred file, for example, may be a “content” file having data of a multimedia graphic, animation movie, audio clip, etc. or may be a patch file 1015 containing a description of an arrangement of modules. In some embodiments, the menu theme description file 1010 refers to one or more of the following “content” files: a graphic file 1120, audio file 1130, animation file 1140, and font file 1150. A graphic file 1120 contains a multimedia graphic that may be presented, for example, in the theme background area or the drop zone area of a menu theme. An audio file 1130 contains an audio clip that is played in a looped manner while a menu theme is displayed. An animation file 1140 includes an animation (e.g., opening and closing theatre curtains) associated with the menu theme. A font file 1150 is used to render selectable menu buttons and menu title of a menu theme. The menu theme description file 1010 may be contained in a menu theme bundle that also contains one or more of the “content” files. Typically, the “content” files contained in a menu theme bundle are able to be customized/changed by the user through the multimedia authoring application 1005.
The menu theme description file 1010 contains a path to one or more patch files 1015 for each object (such as a drop zone area, selectable menu buttons, menu title, theme background, etc.) to be rendered in the menu theme. A patch file 1015 contains a description of a menu theme object that is read by the rendering engine 1020 to render the object. One or more patch files may be used to produce, for example, a selectable menu button or a drop zone area. In some embodiments, a patch file 1015 is created by a composer application 1195 (discussed below in relation to
A patch file 1015 may also refer to one or more “content” files 1160 (discussed above) to render an object of the menu theme, such as a highlight multimedia graphic (that is displayed in the drop zone area when, for example, the user drags a multimedia graphic over the drop zone area) or an animation file. A patch file 1015 may be contained in a patch bundle that also contains one or more of the “content” files. Typically, the “content” files contained in the patch bundle are not able to be customized/changed by the user through the multimedia authoring application 1005. In some embodiments, the patch bundle is a sub-folder of the menu theme bundle.
Rendering Engine Operations
The ordering of object layers in the global compositing stack 1210 is specified by the general description of the menu theme in the menu theme description file 1010. The menu theme description file 1010 also contains, for each object layer in the global compositing stack 1210, a path to a patch file needed to render the object layer. The multimedia authoring application 1005 reads the menu theme description file 1010 and sends the ordering of object layers and associated patch file paths to the rendering engine 1020. As each patch file is received by the rendering engine 1020, an object layer is created in the global compositing stack 1210. The rendering engine 1020 then composites the objects accordingly to produce the rendered menu theme 1240.
The rendering engine 1020 renders objects starting from the bottom layer to the top layer so that objects on upper layers are displayed on top of objects on lower layers (i.e., an object layer above a lower object layer in the object hierarchy is rendered as opaque while the lower object layer is rendered as transparent when both object layers occupy the same area in the menu theme). To render each object in the object hierarchy, the rendering engine 1020 reads the patch file for the object and uses a separate compositing stack for each object.
In the example shown in
Each image importer (i.e., multimedia graphic importer) represents a communication port with the multimedia authoring application 1005 where a multimedia graphic is received from the multimedia authoring application 1005 and imported into the patch file for processing by the rendering engine 1020 (according to the description in the patch file). A file containing the multimedia graphic may be contained in a menu theme bundle or a patch bundle created for the drop zone. A text importer (not shown) provides the same function as an image importer but imports text rather than a multimedia graphic.
For example, the “Drop Here” image 1320 may import an image showing the text “Drag photos or movies here,” as shown in the drop zone area 650 of
Each image importer produces a data stream of pixels 1355. In the example shown in
To render the composited drop zone 1230, the video output module 1350 internally creates a drop zone compositing stack 1310 that receives data streams 1355 from modules described in the drop zone patch file (such as the image importers or special effect modules). The video output module 1350 then composites the received data streams of pixels 1355 and produces a composited drop zone 1230. In the example shown in
Each module described in the drop zone patch file and each object layer of the drop zone compositing stack 1310 is controlled through use of the remote controller 1315 that receives instructions from the multimedia authoring application 1005. Through the remote controller 1315, the multimedia authoring application 1005 may control, for example, when a module or layer is activated and when it is not activated. This allows, for example, particular modules or layers to be applied depending on user interaction with the multimedia authoring application 1005.
For example, the multimedia authoring application 1005 (through the remote controller) may activate the “Drop Here” image 1320 layer so that the “Drop Here” image 1320 is displayed in the drop zone area when the multimedia authoring application 1005 is initially launched. The multimedia authoring application 1005 may then activate the highlighted drop zone image 1325 layer when a multimedia graphic is “dragged” over the drop zone area by the user. As such, the highlighted drop zone image 1325 layer would then be displayed on top of the multimedia graphic shown in the drop zone area. As a further example, after a multimedia graphic is “dropped” to the drop zone area by the user, the multimedia authoring application 1005 (through the remote controller) may de-activate the highlighted drop zone image 1325 layer. The remote controller 1315 can also activate or de-activate other modules such as special effect modules.
The rendering engine 1020 then composites the layers in the drop zone compositing stack 1310 to produce the drop zone object 1230. The drop zone object 1230 is then sent to the global compositing stack 1210 where it is composited with other objects to produce the composited menu theme 1240.
Creating Patch Files Using a Composer Application
An example of a graphical representation of an object is shown in
An image or text importer represents a communication port with the multimedia authoring application 1005 where multimedia graphics or text are imported from the multimedia authoring application 1005 into the patch file for processing by the rendering engine 1020 (according to the description in the patch file). A special effect module can then be used to perform a special effect (e.g., emboss, blur, fade, etc.) on an imported multimedia graphic or text. A special effect module has an input and output port where two or more special effect modules may be chained. The relationships between the modules are shown by connectors 1425 that indicate, for example, that the output of one module is the input of another module. As such, a connector 1425 represents a data stream from one module to another module.
In the example shown in
The composer application 1195 then converts the graphical representation of the object to a textual representation (e.g., XML representation) of the object, the textual representation comprising the patch file needed by the rendering engine 1020 to render the object. Each patch file contains a description of an arrangement of modules including a list of the modules and connections between the modules needed to produce the object composite 1430. Patch files are generally autonomous from the multimedia authoring application 1005. For example, special effects described in patch files can be enabled or disabled without intervention of the multimedia authoring application 1005.
Methods for Creating Menu Themes
One or more patch files are then created (at step 1530) for each object included in the menu theme (discussed below in relation to
A path to each patch file is created (at 1540) in the menu theme description file. In some embodiments, the menu theme description file is stored (at 1545) to a menu theme bundle. One or more “content” files are then stored (at 1550) to the menu theme bundle. A stored “content” file may contain, for example, a default multimedia graphic. One or more references are then created (at 1560) in the menu theme description file to the one or more “content” files stored in the menu theme bundle. A reference to a “content” file may be, for example, a unique name or path that identifies the “content” file. When the menu theme description file is later read by a multimedia authoring application, the application sends the reference (e.g., unique name or path) to a patch file that is to receive the “content” file, the reference being used by the patch file to import the “content” file.
The following XML code in the menu theme description file defines a drop zone in one embodiment:
<key>drop zones</key>
<array>
</array>
The object composite resulting from the graphical representation of the object is then previewed at step 1614 (for example, through use of a rendering engine 1020 used in conjunction with the composer application 1195). It is then determined (at 1614) if the resulting object composite is satisfactory. If not, the graphical representation of the object is edited (at 1616) and the method proceeds to step 1612. If the resulting object composite is satisfactory, the graphical representation of the object is then translated (at 1620) to a textual representation (e.g., XML representation) of the object that contains a description of the arrangement of modules including a list of the modules and the connections (relationships) between the modules. The textual representation comprises the patch file needed to render an object in the menu theme (for example, by a rendering engine 1020).
In some embodiments, the patch file is stored (at 1645) to a patch bundle. One or more “content” files are then stored (at 1650) to the patch bundle. A stored “content” file may contain, for example, an animation movie. One or more references are then created (at 1660) in the patch file to the one or more “content” files stored in the patch bundle. A reference to a “content” file may be, for example, a unique name or path that identifies the “content” file. When the patch file is later read by a rendering engine, the reference (e.g., unique name or path) is used to import the “content” file identified by the reference into the patch file or rendering engine. In some embodiments, the patch bundle is stored (at 1670) to a menu theme bundle, the patch bundle being a sub-folder of the menu theme bundle.
For objects having two or more components (such as the selectable menu buttons 910 shown in
The bus 1705 collectively represents all system, peripheral, and chipset buses that communicatively connect the numerous internal devices of the computer system 1700. For instance, the bus 1705 communicatively connects the processor 1710 with the read-only memory 1720, the system memory 1715, and the permanent storage device 1725.
The read-only-memory (ROM) 1720 stores static data and instructions that are needed by the processor 1710 and other modules of the computer system. The permanent storage device 1725, on the other hand, is read-and-write memory device. This device is a non-volatile memory unit that stores instruction and data even when the computer system 1700 is off. Some embodiments of the invention use a mass-storage device (such as a magnetic or optical disk and its corresponding disk drive) as the permanent storage device 1725. Other embodiments use a removable storage device (such as a floppy disk or Zip® disk, and its corresponding disk drive) as the permanent storage device.
Like the permanent storage device 1725, the system memory 1715 is a read-and-write memory device. However, unlike storage device 1725, the system memory is a volatile read-and-write memory, such as a random access memory (RAM). The system memory stores some of the instructions and data that the processor needs at runtime.
In some embodiments, instructions, descriptions, and/or data needed to perform methods of the present invention are stored in the system memory 1715, the permanent storage device 1725, the read-only memory 1720, or any combination of the three. For example, the various memory units may contain the multimedia authoring application, rendering engine application, plug-in programs, menu theme description file, patch files, and “content” files used in the present invention. From these various memory units, the processor 1710 retrieves instructions, descriptions, and/or data to perform the processes of the present invention.
The bus 1705 also connects to the input and output devices 1730 and 1735. The input devices 1730 enable a user to communicate information and select commands to the computer system 1700. For instance, the input devices 1730 enable the user to communicate user information 1017 to the computer system 1700 and interact with the multimedia authoring application 1005. The input devices 1730 include alphanumeric keyboards and cursor-controllers. The output devices 1735 display images generated by the computer system 1700. For instance, these devices display a user interface (e.g., graphical user interface) through which the user can interface with the computer system 1700. The output devices include printers and display devices, such as cathode ray tubes (CRT) or liquid crystal displays (LCD).
Finally, as shown in
While the invention has been described with reference to numerous specific details, one of ordinary skill in the art will recognize that the invention can be embodied in other specific forms without departing from the spirit of the invention. Thus, one of ordinary skill in the art would understand that the invention is not to be limited by the foregoing illustrative details, but rather is to be defined by the appended claims.
This patent application claims benefit to and is a continuation-in-part of the United States patent application entitled “Method and Apparatus for Creating Multi-Media Presentations,” having Ser. No. 10/337,924 filed on Jan. 6, 2003.
Number | Name | Date | Kind |
---|---|---|---|
5519828 | Rayner | May 1996 | A |
5737552 | Lavallee et al. | Apr 1998 | A |
5752029 | Wissner | May 1998 | A |
5778108 | Coleman, Jr. | Jul 1998 | A |
5956026 | Ratakonda | Sep 1999 | A |
5995095 | Ratakonda | Nov 1999 | A |
6064438 | Miller | May 2000 | A |
6111562 | Downs et al. | Aug 2000 | A |
6230172 | Purnaveja et al. | May 2001 | B1 |
6307550 | Chen et al. | Oct 2001 | B1 |
6453459 | Brodersen et al. | Sep 2002 | B1 |
6714216 | Abe | Mar 2004 | B2 |
6731295 | MacInnis et al. | May 2004 | B1 |
6760042 | Zetts | Jul 2004 | B2 |
6912327 | Hori et al. | Jun 2005 | B1 |
6928613 | Ishii et al. | Aug 2005 | B1 |
6954894 | Balnaves et al. | Oct 2005 | B1 |
6988244 | Honda et al. | Jan 2006 | B1 |
7030872 | Tazaki | Apr 2006 | B2 |
7124366 | Foreman et al. | Oct 2006 | B2 |
7127149 | Lin | Oct 2006 | B1 |
7165219 | Peters et al. | Jan 2007 | B1 |
7200836 | Brodersen et al. | Apr 2007 | B2 |
7546544 | Weber et al. | Jun 2009 | B1 |
7694225 | Weber et al. | Apr 2010 | B1 |
20020019833 | Hanamoto | Feb 2002 | A1 |
20020167540 | Dobbelaar | Nov 2002 | A1 |
20020180803 | Kaplan et al. | Dec 2002 | A1 |
20020194195 | Fenton et al. | Dec 2002 | A1 |
20020198909 | Huynh et al. | Dec 2002 | A1 |
20030016240 | Hanes | Jan 2003 | A1 |
20030052897 | Lin | Mar 2003 | A1 |
20030090507 | Randall et al. | May 2003 | A1 |
20030189588 | Girgensohn et al. | Oct 2003 | A1 |
20030193520 | Oetzel | Oct 2003 | A1 |
20030210261 | Wu et al. | Nov 2003 | A1 |
20040017390 | Knowlton et al. | Jan 2004 | A1 |
20040021684 | Millner | Feb 2004 | A1 |
20040085340 | Dimitrova et al. | May 2004 | A1 |
20040125124 | Kim et al. | Jul 2004 | A1 |
20040125129 | Marsh | Jul 2004 | A1 |
20040125133 | Pea et al. | Jul 2004 | A1 |
20040201610 | Rosen et al. | Oct 2004 | A1 |
20040221227 | Wu | Nov 2004 | A1 |
20090249211 | Weber et al. | Oct 2009 | A1 |
Number | Date | Country | |
---|---|---|---|
Parent | 10337924 | Jan 2003 | US |
Child | 10742957 | US |