This application is related to U.S. application Ser. No. 10/337,924 filed on Jan. 6, 2003, and Ser. No. 10/742,957 filed on Dec. 22, 2003, which are hereby incorporated by reference in their entirety.
The present disclosure relates to multimedia applications.
The proliferation of various forms of digital media (e.g., still images, audio, video, etc.) has created a continuing need for improved multimedia authoring tools. Consumers typically use media authoring tools to compose, edit, and arrange digital media (e.g., video and audio content, still images, slideshows, etc.) as part of a media project. Consumers render the finished media project into a file, which can be burned onto a Digital Versatile Disc (“DVD”) or other media, which can be played on a variety of devices.
Conventional multimedia authoring tools allow a user to generate professional quality media projects. In addition to providing content, the authoring tools typically enable users to create menu and submenu screens for enabling viewers to navigate content stored on the DVD using, for example, a television remote control or a mouse. For example, a typical DVD includes a hierarchy of menus allowing the viewer to select a movie to play or to access other features or content on the DVD, such as a chapter index for jumping to a particular chapter in the movie.
In general, in one aspect, a computer program product, encoded on a computer-readable medium, is provided. The computer program product is operable to cause a data processing apparatus to perform operations including generating a menu screen template, the menu screen template including one or more menu elements. The computer program product also causes a data processing apparatus to perform operations including incorporating user selected media content in the menu screen template and calculating a motion path associated with one or more menu elements, the calculated motion path being automatically adjusted according to parameters of the selected media content.
Implementations can include one or more of the following features. The computer program product can further include generating a menu screen including rendering the menu elements according to the calculated motion path. Generating a menu screen template can further include receiving a user input selecting a theme for the menu screen template. Calculating a motion path can further include receiving a base first motion path and adjusting the base motion path according to one or more input parameters associated with the selected media content. Adjusting the base motion path can further include adjusting a speed of the motion path, generating a single motion path for a plurality of menu elements, and adjusting a motion path to a menu screen duration.
In general, in one aspect, a computer program product, encoded on a computer-readable medium, is provided. The computer program product is operable to cause a data processing apparatus to perform operations including generating a user interface for generating a menu screen including one or more adjusted motion paths. The user interface includes one or more content menus for selecting content for incorporation in a menu screen and a menu screen window for providing a menu screen template having one or more motion paths, wherein the menu screen window is configured to receive user selected media content for incorporation in the menu screen template. The computer program product also calculates a motion path associated with one or more menu elements, the calculate motion path being automatically adjusted according to parameters of the selected media content.
Implementations can include one or more of the following features. The user interface can further include a theme selection menu, where selection of a theme provides one or more menu screen templates including a plurality of menu elements. Each menu screen template can include a theme definition that includes one or more animated menu elements defined by one or more motion paths. The menu elements can include drop zones configured to receive user selected media content.
In general, in another aspect, a computer-implemented method is provided. The method includes generating a menu screen template, the menu screen template including one or more menu elements. The method also includes incorporating user selected media content in the menu screen template. Additionally, the method further includes calculating a motion path associated with one or more menu elements, the calculated motion path being automatically adjusted according to parameters of the selected media content.
The disclosed implementations provide several advantages over conventional media authoring tools. Specifically, animated menu screens for a media project are disclosed that include elements, which behave according to a particular defined motion path. The elements can be animated individually and as part of a group of elements. The animated menu screens provide a professional look and feel to a media project while minimizing user input. The motion path defining the animation of one or more elements in a menu screen can be automatically adjusted according to parameters of the particular user content included in the menu screen. The motion path for an element can be adjusted to modify the acceleration of the element as well to match the duration of a menu screen loop. The motion path of an element can vary depending on the menu period such as an introduction period, a main menu period, and an outro period. Multiple elements can be grouped together to behave according to a single motion path.
Additionally, using motion paths to animate menu elements reduces a need to use other structures such as movie files with pre-rendered animations. As a result, motion path animation can be faster and more fluid. Because animations are not included in a movie file, the animation can be independent of movie frame rate. Also, the amount of storages space necessary for the animations can be reduced. Furthermore, menu loop behavior is improved including the ability to exactly loop elements without discontinuity at looping point regardless of the actual menu duration.
The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the invention will become apparent from the description, the drawings, and the claims.
Like reference numbers and designations in the various drawings indicate like elements.
A media project including a number menu screens can be created using a menu generator. The menu screens allow a user to navigate media content linked to elements of the menu screen (e.g., the menus of a DVD). The menu screens can also include a number of static and animated elements. The animated elements can follow a defined motion path governing the behavior of the animated elements. The motion path of elements can be adjusted according to media content included in the menu screens.
Each menu screen can be based on a template associated with a particular theme. A theme template includes a number of menu screen elements having one or more properties. In some implementations, the menu screen elements and their associated properties are defined by a theme definition. Theme properties can include, for example, a shape, depth, transparency, and position of a menu screen element. Element properties can also change as a function of time. For example, elements can change with time in position, color, transparency, or other properties. The theme definition can define a location for menu screen content, buttons, background graphics, animation, text regions, drop zones and other theme properties. Menu elements can be organized in a hierarchal structure in which an individual element can be part of a group of higher level elements.
Drop zones (e.g., drop zones 106a, 106b, and 106c) are regions defined by the theme definition and positioned within the menu screen environment (i.e., the displayable area of menu screen 100). Drop zone properties can include position, size, orientation, transparency, and depth. Drop zones can also include animation behavior, which changes over time such as rotational and translational movement. Drop zones can be configured to contain media content. For example, a user can drop an image or a film clip in a drop zone.
The theme definition can also include one or more patch files. In one implementation, a patch file is provided for each element defined by the theme definition. The patch file can be used to render the element, for example using a rendering component. For example, a patch file can include data describing the information and functions for rendering the element associated with the patch file. In one implementation, the rendering component, after determining functions required by the element from the received patch file, can call one or more plug-in programs to perform the specified function. The rendering component can use the patch files and plug-ins to render the completed menu screens.
Theme definitions, including drop zones and patch files, are discussed in U.S. patent application Ser. No. 10/337,924 filed on Jan. 6, 2003, and Ser. No. 10/742,957 filed on Dec. 22, 2003, the entirety of which are hereby incorporated by reference. Generation of menu screens using user selected themes and media content, is described in U.S. patent application Ser. No. 11/327,280, entitled “Automated Multimedia Authoring,” filed on Jan. 6, 2006.
In the example implementation shown in
Other menu screen elements, such as a selection menu 104, including one or more menu buttons, provide for user interaction and navigation of content found in the media project. Other elements provide for the look and feel of the menu screen such as the formatting of the title for the media project as well as background color, graphics, and other menu screen properties. A user can customize menu screen elements. For example, the user can specify the title 102 for the media project as well as customize selection menu 104 and add drop zone content.
The menu controller 202 provides for the creation and editing of menu screens generated using the menu generator 200. The menu controller 202 can include themes 210. The themes 210 provide definitions for menu screen templates. The theme definition for the menu screen defines the elements within the menu screen according to the theme 210, including menu buttons, drop zones, titles, and background. Additionally, the theme definition can define a base motion path for any animated elements in the menu screen. The motion path defines how one or more properties of an element changes as a function of time. The motion path can be applied to a single element, a group of elements (e.g., a group of drop zones having the same motion path), or a combination of both (e.g., a motion path for a particular element in addition to the group motion path).
The menu controller 202 can also include media content 212. Media content 212 includes user selected media content for a particular media project. The user can select media content to be accessed using the menu screens as well as media content to populate the menu screens. For example, the particular audio, video, and image content selected for the menu screen (e.g., a movie clip for a particular drop zone in the menu screen).
The motion path component 204 calculates the actual motion path for the elements of the menu screen according to input parameters provided by the menu controller 202. The input parameters are discussed in more detail below and can include element properties, such as the base motion path including position, direction, speed, rotation, color, and transparency. In addition, the input parameters can include data regarding the user content placed in the menu screen, for example, the duration of movie clips placed in a drop zone or the duration of audio selected for the menu screen. The motion path component 204 can use the input parameters provided by the menu controller 202 to calculate an adjustment to the base motion path to provide an actual motion path for the elements at any given point in time. The motion path component 204 can provide output parameters to the rendering component 206.
The rendering component 206 renders the graphics of the menu screen according to the motion path calculations from the motion path component 204, for example, providing input signals to a display device presenting the menu screen. For example, the rendering component 206 renders the animation of an element in the menu screen according to the output parameters according to the actual motion path, including changes in position, color, or transparency of the element with time.
The process 300 begins by presenting a menu editing window to a user (step 302). The menu editing window provides a user interface for customizing menu screen content. The menu generator receives a user selected theme for the menu screen (step 304). The user can select a theme from a menu in the menu editing window. The selected theme provides menus screen templates for the menu screens of a generated media project.
Once the user selects a particular theme, one or more menu screen templates corresponding to the selected theme are presented to the user (step 306). The presented menu screen templates can include elements having base motion paths, for example, a set of empty rotating drop zones, animated buttons, or other animated menu screen elements. The user can edit the text of each menu screen template to customize the menu screens to the user's media project (step 308). For example, the user can edit the title of the project displayed in the menu screen. Additionally, the user can edit the menu buttons presented by the menu screen in order to tailor the buttons to the user's project (e.g., button text identifying specific user content accessible through the button). Alternatively, the menu generator can automatically edit the text of the menu screen template according to media content previously identified by the user; thus user interaction in editing the templates can be an optional feature.
The user can also populate drop zones provided by the menu screen templates (step 310). The user can populate the drop zones, for example, by dragging and dropping media content from a menu in a menu editing window to a target drop zone. The populated content can include images, movie frames, movie clips and other media content. Alternatively, the drop zones can be automatically populated by the menu generator (e.g., menu generator 200) extracting media content based on user selected content for the media project.
Once the content has been defined for the menu screen, the menu generator can use information from the selected theme definition as well as from the selected media content in order to define the actual motion path of elements in the menu screen (step 312). The menu screen showing the actual motion path of the elements can be presented to the user (step 314).
The drop zone editor 404 can be used to view and customize drop zone media content. The drop zone editor 404 can be a toolbar positionable at any place on a user display including any position on the menu editing window 402. In one implementation, the drop zone editor 404 is a partially transparent overlay region. The contents of the drop zone editor 404 are discussed in greater detail below with respect to
In some implementations, the theme can be selected using the content menu 408. The content menu 408 currently displays a list of themes that can be selected by the user. Different theme lists can be presented based on a selected theme list from a theme drop down menu 410. Other content can be displayed in the content menu 408 by selecting the appropriate content selector button 412. As shown in
The drop zone editor 404 also includes a drop zone menu 506. The drop zone menu 506 includes references to each drop zone in the menu screen 406. In
The drop zone menu 506 can also be used to navigate between the drop zones. For example, navigation arrows 518 can be used to cycle through additional drop zones that are not shown (i.e., drop zones in addition to the five drop zones shown in the drop zone menu 506). Navigating to additional drop zones using the navigation arrows 518 can also cause the drop zones shown in the menu screen 406 to adjust such that the user can see the drop zones in the menu screen 406 corresponding to the drop zone positions in the drop zone menu 506.
A number of input parameters are received (step 602). For example, the input parameters can be received from a menu controller (e.g., menu controller 202). The received parameters can include parameters from the theme definition as well as parameters associated with the selected media content to be included in the menu screen. Examples of input parameters include the menu screen duration as well as the duration of different menu screen portions. A typical menu cycle can include different phases, each having a particular duration. For example, a menu cycle can include an introduction phase, a main phase, and an outro phase. The menu screen duration can be defined as the sum of the durations of each phase in the menu cycle. The input parameters can also include parameters of the menu screen elements such as the position, size and type of the elements.
The input parameters can be used to adjust a base motion path defined for elements in the menu screen template. For example, the base motion path can define the movement of individual elements in a menu screen prior to the addition of any user media content (e.g., an empty drop zone). The base motion path defines the starting position, acceleration, or other behavior of the menu elements associated with the motion path. The adjustments to the motion path can be used to determine the actual motion path for a menu screen in light of the media content added to the menu screen template.
The motion path acceleration can be adjusted (step 604). The motion of one or more elements in the menu screen can be sped up or slowed down in order to create fluid menu screen animation. For example, the speed of an “ease-in” or “ease-out” of menu buttons during the introduction or outro time periods can be adjusted according to the duration of the introduction and outro menu phases.
Auto sequencing can also be applied to a group of elements (step 606). Elements of a same type or behavior can be grouped together in a single motion path instead of requiring separate motion paths to be calculated and executed independently for each element. For example, if a menu screen has a set of four drop zones that have the same rotational motion path around an axis, the motion path component can group the drop zone elements together into a single motion path. In another example, the menu screen can include a series of menu buttons which sequentially fade into the menu screen. The sequential fade-in of similar elements can be performed by a single motion path instead of a separate motion path for each button. Additionally, in one implementation, elements that have been grouped together can be accelerated as a whole. For example, if the sequence of a menu button fade-in would take longer then the introduction duration, the fade-in sequence can be adjusted for the entire group of menu elements to fit within the duration of the introduction phase.
The motion path can be adjusted to correspond to menu duration (step 608). The motion path component can calculate different time values for the menu depending on the input parameters providing the durations of the menu introduction, main (or looping), and outro phases. For example, a relative time can be calculated, which slows down or accelerates the motion path of one or more elements to fit the menu screen duration. A looping time can also be calculated. The looping time allows the motion path of elements during the main phase to continuously loop during the duration of the main phase. Finally, an adjusted looping time can also be calculated. The adjusted looping time is similar to the looping time in that the motion path loops during the main menu phase, however, the speed of the motion path is adjusted such that an integral number of loops occur during the main menu phase. Consequently, by determining the different menu timing, the motion path behavior can be adjusted to fit the required timing. In an alternative implementation, the menu duration itself can be adjusted to match the motion path.
In some implementations, motion path adjustments can take the specific media content of the menu screen into consideration. The motion path adjustments can occur individually or in combination depending on the input parameters. For example, if a user selects a particular music to play in the menu background while the menu is presented, the menu duration can be adjusted to last the length of the music. The motion path of various elements can also be adjusted according to the modified menu duration. For example, the number of loops of a drop zone motion path can be increased to match an increased menu duration.
The speed of the motion path for elements can be adjusted according to the particular media content associated with the elements. For example, a drop zone in a menu screen can include a movie clip. The drop zone can follow a defined motion path that translates off the menu screen, or rotates to become obscured by one or more other elements such as other drop zones. Using the length of the movie clip, the motion path of the drop zone can be adjusted such that the movie clip remains visible during the duration of the movie clip. Furthermore, if the drop zone with a movie clip is part of a group of drop zone elements, the motion path can be adjusted as a group (as discussed above) such that each drop zone's content is presented for the necessary amount of time depending on the drop zone's individual content. In another example, the motion path of an element can be adjusted to the menu screen duration such that the position of the element at the end of a menu loop is the same as the position of the menu element at the beginning of a loop, thus preventing discontinuity between main menu loops.
The actual motion path can be processed in light of any adjustments (step 610). The processing of the actual motion path takes the base motion path with any adjustments in order to calculate output parameters for each menu element. In one implementation, the motion path controller includes one or more kernel objects that perform the motion calculation to produce output parameters defining the actual motion path for a rendering. For example, the kernel object can receive the adjusted motion path parameters and execute an algorithm to produce the output parameters for rendering the menu element. Examples of kernel objects include a linear keyframe interpolator for calculating a parameter (e.g., for calculating opacity), a Bezier keyframe interpolator for calculating curved motion paths, and a javascript kernel, including code, to control behavior of a group of elements (e.g., flashing buttons in sequence).
The output parameters can be provided to the rendering component for rendering the menu screen elements (612). The output parameters can include the position, in three dimensions, of an element including an incremental offset from an initial reference position. Additionally, scaling factors for adjusting element size according to the calculated position in the three-dimensional environment (e.g., element becomes smaller when appearing to move back in the distance) can be provided. Other output parameters include a drawing order for overlapping elements, opacity, color, centers of rotation, and other movements. The output parameters can also include timing information. For example, an element's content, such as a movie clip in a drop zone, can be controlled by the timing parameters so that the content is not displayed until the element is visible on the menu screen (e.g., a movie clip in a drop zone is not played until the drop zone is visible). Additionally, timing information can be used such that a menu can begin at a point other than the beginning of the motion path or can run in reverse, fast-forward, or some other speed.
Other element effects rendered according to the motion path can include specific output parameters for controlling element behavior specifically designed to provide a particular effect. For example, the output parameters can provide element functionality that was designed outside of the menu generator (e.g., that was not part of the theme definition, but was independently added by the user). For example, a designer can define a button element to include a blur effect. The designer can define a motion path that provides an output parameter defining the blur effect applied to a button. The creation of element effects, independent of the menu controller, can be performed using a graphics development tool, such as Quartz Composer, which is described at http://developer.apple.com/documentation/GraphicsImaging/ConceptualQuartzComposer/qc_intro/chapter—1_section—1.html the subject matter of which is hereby incorporated by reference.
The menu screen 702 includes drop zones 708a, 708b, and 708c arranged in a three-dimensional display environment 707. The particular display environment 707 presented by the menu screen 702 depends on the selected theme. As shown in screenshot 700, a reflection theme 701 has been selected for the menu screen where each drop zone is reflected in reflective surface supporting the drop zones. Drop zone 708a is presented in the foreground partially overlapping drop zone 708b. Drop zone 708c lies in a same plane as drop zone 708a, which is angled so that drop zone 708c appears further away from the front of the menu screen 702. In this example menu, there are no menu buttons or title present in the menu screen 702 presented at the start of the introduction period shown in
Specifically, the drop zones 708a, 708b, 708c have rotated as a group around a vertical axis in the display environment 707 according to the motion path defined for the drop zones in the theme definition. The position of drop zone 708c now appears to be closer to the front of the menu screen 702 than drop zone 708a. The relative position between the drop zones 708a, 708b, and 708c has remained the same, just rotated. For example, the motion path can define a particular rotation over time for the group of drop zones. The time can be the entire menu duration or can be a smaller component such as the introduction portion of the menu screen 702.
The menu screen 902 still displays drop zones 708a, 708b, and 708c within the environment 707. The continued rotation of the drop zones 708a, 708b, and 708c has caused drop zone 708a to appear to have receded into the distance of the environment 707 while drop zone 708c now is in the forefront and partially obscuring drop zone 708b. In addition to continued rotation of the drop zones 708a, 708b, and 708c, there is a translational movement of the group to the left of the menu screen 902. Thus, drop zone 708c is now fully visible within the menu screen 902.
In this Figure, the rotation of the drop zones has slowed. For example, the motion path can define a rotation as a function of time that slows down with time. In another implementation, the rotation can be defined over the introduction period of the menu duration and have a rotation that decreases as the end of the introduction period approaches. Alternatively, the rotation can be defined over an angular range and the motion path can define the rotation rate such that the rotation slows as the end of the defined angular range nears. Other rotational definitions are possible, for example, according to a mathematical formula or a program (e.g., JavaScript).
Additionally, new menu elements are entering the menu screen 1002; A title 1004 has appeared in the lower portion of the menu screen 1002. The title 1004 is only partially visible, for example, transitioning from fully transparent to visible (e.g., along a range of opacity values). Additionally, a glass pane 1006 effect is beginning to rise out of the bottom portion of the menu screen 1002. The glass pane 1006 is a partially transparent region that will include menu buttons.
Additionally, the rotation of the group of drop zones has stopped. In one implementation, the motion path for the drop zones can be defined to end once a particular degree of rotation has been reached. For example, the rotation can be defined as over a particular range such as from −25 degrees to 65 degrees, stopping once rotation has reached 65 degrees from the plane of the menu screen (e.g., menu screen 1102). In an alternative implementation, the rotation can be defined by a time period not a particular angle. For example, the motion path can define a rotational rate during the introductory period of the menu screen only. Consequently, the rotation ends once the menu introductory period ends.
The title 1004 has transitioned from a dim lettering to increased brightness making the title characters fully visible. The glass pane 1006 has fully risen in the foreground. The glass pane 1006 is partially transparent, and further includes a blur effect which blurs the drop zones (e.g., drop zone 708c) lying behind the glass pane 1006. Additionally, the menu buttons 1104 have become visible on the glass pane 1006. The menu buttons 1104 allow the user to interact with the menu screen 1102 in order to access particular content. In this particular example, the intro period of the menu screen is completed with menu screen 1102.
Following the main menu duration, different effects defined by motion paths can occur. For example, an outro portion can be provided to transition out of the main menu in order to loop the menu screen back to the introduction portion. For example,
The term “computer-readable medium” refers to any medium that participates in providing instructions to a processor 1602 for execution, including without limitation, non-volatile media (e.g., optical or magnetic disks), volatile media (e.g., memory) and transmission media. Transmission media includes, without limitation, coaxial cables, copper wire and fiber optics. Transmission media can also take the form of acoustic, light or radio frequency waves.
The computer-readable medium 1612 further includes an operating system 1616 (e.g., Mac OS®, Windows®, Linux, etc.), a network communication module 1618, a browser 1620 (e.g., Safari®, Microsoft® Internet Explorer, Netscape®, etc.), a media player 1622 and a menu generator 1624.
The operating system 1616 can be multi-user, multiprocessing, multitasking, multithreading, real-time and the like. The operating system 1616 performs basic tasks, including but not limited to: recognizing input from input devices 1610; sending output to display devices 1604; keeping track of files and directories on computer-readable mediums 1612 (e.g., memory or a storage device); controlling peripheral devices (e.g., disk drives, printers, A/V interface 1606, etc.); and managing traffic on one or more buses 1614. The network communications module 1618 includes various components for establishing and maintaining network connections (e.g., software for implementing communication protocols, such as TCP/IP, HTTP, Ethernet, etc.). The browser 1620 enables the user to search a network (e.g., Internet) for information (e.g., digital media items). The media player 1622 (e.g., Quick Time®, Windows Media Player®, Real Player®, etc.) enables the user to view content.
The menu generator 1624 provides various software components for performing the various functions for menu generation and motion path calculation, as described with respect to
Particular embodiments of the invention have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results. Additionally, other interpolators can be used to determine motion path parameters in addition to the linear and Bezier keyframes discussed above such as other spline interpolators. Motion paths can include or be defined according to different programming languages in addition to JavaScript (e.g., Java, LUA). Furthermore, motion path animations can be rendered in other applications in addition to menu generation, for example in other multimedia authoring application such as those for creating and editing video content.
Number | Name | Date | Kind |
---|---|---|---|
5642430 | Greer et al. | Jun 1997 | A |
5675752 | Scott et al. | Oct 1997 | A |
5729673 | Cooper et al. | Mar 1998 | A |
5914717 | Kleewein et al. | Jun 1999 | A |
6246402 | Setogawa et al. | Jun 2001 | B1 |
6310625 | Yoshio et al. | Oct 2001 | B1 |
6433797 | Zellweger | Aug 2002 | B1 |
6717591 | Fiveash et al. | Apr 2004 | B1 |
7073127 | Zhao et al. | Jul 2006 | B2 |
7222300 | Toyama et al. | May 2007 | B2 |
7359617 | Ma | Apr 2008 | B2 |
7383508 | Toyama et al. | Jun 2008 | B2 |
7432940 | Brook et al. | Oct 2008 | B2 |
20030016239 | Christopher | Jan 2003 | A1 |
20030151621 | McEvilly et al. | Aug 2003 | A1 |
20030234805 | Toyama et al. | Dec 2003 | A1 |
20040001079 | Zhao et al. | Jan 2004 | A1 |
20040046801 | Lin et al. | Mar 2004 | A1 |
20040131336 | Matsuno et al. | Jul 2004 | A1 |
20050010599 | Kake et al. | Jan 2005 | A1 |
20050138569 | Baxter et al. | Jun 2005 | A1 |
20050154679 | Bielak | Jul 2005 | A1 |
20050207442 | Zoest et al. | Sep 2005 | A1 |
20050210410 | Ohwa et al. | Sep 2005 | A1 |
20050251754 | Padgett et al. | Nov 2005 | A1 |
20050278634 | Chen et al. | Dec 2005 | A1 |
20050289466 | Chen | Dec 2005 | A1 |
20060001835 | Johnson | Jan 2006 | A1 |
20060048056 | Huang | Mar 2006 | A1 |
20060055700 | Niles et al. | Mar 2006 | A1 |
20060129909 | Butt et al. | Jun 2006 | A1 |
20060184890 | Altenhofen | Aug 2006 | A1 |
20060282794 | Chen et al. | Dec 2006 | A1 |
20070038938 | Canora et al. | Feb 2007 | A1 |
20070162855 | Hawk et al. | Jul 2007 | A1 |
20070162857 | Weber et al. | Jul 2007 | A1 |
20090031254 | Herpel et al. | Jan 2009 | A1 |
Number | Date | Country |
---|---|---|
WO 2005050652 | Jun 2005 | WO |
Number | Date | Country | |
---|---|---|---|
20070162853 A1 | Jul 2007 | US |