TEMPLATIZED COMMANDS IN DISC AUTHORING
Authoring a Blu-ray disc (BD), comprising: generating a template code representing templatized navigation commands, the template code specifying a first object to be processed, wherein the templatized navigation commands are used to provide navigational control of the BD using playable content; converting the template code to generate multiple lines of low level code; and automatically placing the low level code at multiple positions on the BD to effect desired behaviors by the BD.
This application claims the benefit of priority of co-pending U.S. Provisional Patent Application Ser. No. 60/712,685, entitled “Rule-Based Authoring and Templatized Commands in Disc Authoring” and co-pending U.S. Provisional Patent Application Ser. No. 60/712,684, entitled “Abstractions in Disc Authoring”, both filed Aug. 29, 2005. This application is also related to U.S. patent application Ser. No. ______, entitled “Abstractions in Disc Authoring”, Attorney Docket No. 113748-6001US, filed on the same day as this application. The disclosures of the above-referenced patent applications are hereby incorporated by reference.
BACKGROUNDThe present invention relates generally to disc authoring and, more particularly, to providing templatized commands in authoring optical discs such as Blu-ray Discs.
A media authoring system is typically used to generate articles of media that are compliant with a particular standard. For example, a Digital Versatile Disc (DVD) authoring system is used to generate data, such as audio and video data and information used to present and access the audio and video data, on a DVD. The data on the disc is stored according to standards defined for DVD. Similarly, a Blu-ray Disc (BD) authoring system is used to create optical discs storing information according to the standards defined for BD.
SUMMARYImplementations of the present invention include systems and methods to implement techniques for disc authoring using templatized commands.
In one implementation, a method of authoring a Blu-ray disc (BD) comprises: generating a template code representing templatized navigation commands, the template code specifying is a first object to be processed, wherein the templatized navigation commands are used to provide navigational control of the BD using playable content; converting the template code to generate multiple lines of low level code; and automatically placing the low level code at multiple positions on the BD to effect desired behaviors by the BD.
In another implementation, a Blu-ray disc (BD) authoring system comprises: a template code generator configured to generate a template code representing templatized navigation commands, the template code specifying a first object to be processed, wherein the templatized navigation commands are used to provide navigational control of the BD using playable content; and a code converter to converting the template code to generate multiple lines of low level code, and to automatically place the low level code at multiple positions on the BD to effect desired behaviors by the BD.
Other features and advantages of the present invention will become more readily apparent to those of ordinary skill in the art after reviewing the following detailed description and accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGSThe details of the present invention, both as to its structure and operation, may be understood in part by studying the accompanying drawings, in which like reference numerals refer to like parts, and in which:
As will be further described below, embodiments of the present invention provide the need for an efficient structure and configuration in authoring articles of media that are compliant with the Blu-ray Disc (BD) standard specifications. A BD authoring system (BDAS) executes instructions to store information based on the BD standard specifications. In one implementation, the BDAS provides a defined set of navigation commands (referred to as “templatized commands”) that are used to provide navigational control of the BD.
After reading this description it will become apparent to one skilled in the art how to implement the invention in various embodiments and applications. However, although various embodiments of the present invention will be described herein, it is understood that these embodiments are presented by way of example only, and not limitation. As such, this detailed description of various embodiments should not be construed to limit the scope or breadth of the present invention as set forth in the appended claims.
The BD standard specifications include the BD Read Only Memory (BD-ROM) specification, which provides a number of data structures that needs to be defined on a BD in order for the disc to behave as desired. The BD-ROM specification defines BD Prerecorded and BD Recordable application formats.
Index Table 200, shown in
A Movie Object includes executable lines of codes or navigation commands, which enable dynamic scenario description. Thus, as shown in
When a Title associated with a BD-J Object in the Index Table on disc is selected, the corresponding application is automatically launched and its lifecycle is bound to the Title. A BD-J application is a Java Xlet which is controlled by the BD-ROM player's Application Manager through its Xlet interface. The Xlet interface has four states as follows: loaded, paused, active and destroyed. Once a BD-J application is destroyed, any resources allocated to it, such as memory and AV control, is released.
Referring back to
The Clip Information file 142 stores the time stamps of the access point into the corresponding AV stream file 144. The BD player reads the Clip Information file 142 to find out the position where it should begin to read the data from the Clip AV stream file 144. Therefore, there is a one-to-one relationship between a Clip AV stream file 144 and a Clip Information file 142.
The BD-ROM specification has a defined set of navigation commands that are used to provide navigational control of the BD. The BDAS allows users to author these navigation commands using a high level script language. However, multiple lines of script language representing a large number of navigation commands are often required to be written in a number of places on the disc to accomplish certain disc behaviors. Therefore, in order to simplify the authoring process, the BDAS generates a template code (representing the navigation commands) that is automatically placed at multiple positions on the disc. Thus, the template code allows certain disc behaviors to be achieved using just one or two lines of high level script language code. The BDAS converts these lines of high level code to multiple lines of low level code using a script generator and a compiler. The commands represented by the template code are referred to as templatized commands.
In one implementation, the template code is generated by the BDAS to playback an object (e.g., a piece of content) starting from a specific entry mark or PlayItem when playing the next object or when playing a specific object. For example, the Delayed PlayMark command shown in
In another implementation, the template code is generated by the BDAS to set destination Button and Page information when playing the next object or when playing a specific object. For example, the Delayed Set Button command shown in
In another implementation, the template code is generated by the BDAS to set specific streams when playing the next object or when playing a specific object. For example, the Delayed Set Stream command shown in
In other implementations, the template code is generated by the BDAS to achieve other BD behaviors. In one example, the template code is generated to playback specific transition effects before going to or when coming from a button on a page. In another example, the template code is generated to playback a defined chain of content similar to the operation of virtual playable content. In yet another example, the template code is generated to provide control over resume information in the scenarios described above.
In another implementation, delayed commands can be categorized into two categories: specific and global. The specific delayed command is a command that is to be executed only when a specific object is to be played. For example, the Delayed PlayMark command (see
The template code representing the templatized commands can be manually written by the user or generated by the BDAS using graphical connectors that the user can draw from one object to another object. Some of the templatized commands can be exposed using macros, wherein the macros enable the script compiler to convert a single line of high level code to multiple lines of high level code before compiling the high level code. These macros can be used to set a number of command parameters at the same time. In some implementations, the template code can be hidden.
The controller 1010 is a programmable processor and controls the operation of the computer system 1000 and its components. The controller 1010 loads instructions from the memory 1020 or an embedded controller memory (not shown) and executes these instructions to control the system. In its execution, the controller 1010 provides the templatized command portion of the BDAS 1012 as a software system. Alternatively, this service can be implemented as separate components in the controller 1010 or the computer system 1000.
Memory 1020 stores data temporarily for use by the other components of the computer system 1000. In one implementation, memory 1020 is implemented as RAM. In one implementation, memory 1020 also includes long-term or permanent memory, such as flash memory and/or ROM.
Storage 1030 stores data temporarily or long term for use by other components of the computer system 1000, such as for storing BD data used by the templatized command portion of the BDAS 1012. In one implementation, storage 1030 is a hard disk drive.
The media device 1040 receives removable media and reads and/or writes data to the inserted media. In one implementation, the media device 1040 is an optical disc drive.
The user interface 1050 includes components for accepting user input from the user of the computer system 1000 and presenting information to the user. In one implementation, the user interface 1050 includes a keyboard, a mouse, audio speakers, and a display. The controller 1010 uses input from the user to adjust the operation of the computer system 1000.
The I/O interface 1060 includes one or more I/O ports to connect to corresponding I/O devices, such as external storage or supplemental devices (e.g., a printer or a PDA). In one implementation, the ports of the I/O interface 1060 include ports such as: USB ports, PCMCIA ports, serial ports, and/or parallel ports. In another implementation, the I/O interface 1060 includes a wireless interface for communication with external devices wirelessly.
The network interface 1070 includes a wired and/or wireless network connection, such as an RJ-45 or “Wi-Fi” interface (802.11) supporting an Ethernet connection.
The computer system 1000 includes additional hardware and software typical of computer systems (e.g., power, cooling, operating system), though these components are not specifically shown in
Various illustrative implementations of the present invention have been described. However, one of ordinary skill in the art will recognize that additional implementations are also possible and within the scope of the present invention. For example, although the disc authoring system using templatized commands has been described exclusively in terms of the BD format, the system can be used to author discs in formats other than the BD format, such as the DVD format and the HD-DVD format.
Accordingly, the present invention is not limited to only those implementations described above.
Claims
1. A method of authoring a Blu-ray disc (BD), the method comprising:
- generating a template code representing templatized navigation commands, said template code specifying a first object to be processed,
- wherein said templatized navigation commands are used to provide navigational control of the BD using playable content;
- converting said template code to generate multiple lines of low level code; and
- automatically placing said low level code at multiple positions on the BD to effect desired behaviors by the BD.
2. The method of claim 1, wherein said template code is a single line of high level script language.
3. The method of claim 1, wherein said template code is multiple lines of high level script language.
4. The method of claim 1, wherein converting said template code includes
- compiling said template code using a script compiler.
5. The method of claim 1, wherein generating a template code includes
- exposing the templatized navigation commands using macros,
- wherein the macros enable the script compiler to convert a single line of high level code to multiple lines of high level code before compiling the script.
6. The method of claim 1, wherein generating a template code includes
- manually writing said template code.
7. The method of claim 1, wherein generating a template code includes
- drawing graphical connectors from one object to another object of said playable content.
8. The method of claim 1, wherein providing navigational control of the BD using playable content includes
- playing the first object starting from a predetermined point of the first object.
9. The method of claim 1, wherein providing navigational control of the BD using playable content includes
- playing the first object from a predetermined point of the first object when returning from playing a second object.
10. The method of claim 9, wherein the first object is a movie object that is visually placed after the second object on a page.
11. The method of claim 1, further comprising
- setting parameters for media streams referenced in the first object.
12. The method of claim 1, further comprising
- setting information about button and page referenced in the first object.
13. The method of claim 1, wherein providing navigational control of the BD using playable content includes
- playing predetermined transition effects before going to or when coming from a button on a page.
14. The method of claim 1, wherein providing navigational control of the BD using playable content includes
- playing a predetermined chain of movie objects.
15. A Blu-ray disc (BD) authoring system, comprising:
- a template code generator configured to generate a template code representing templatized navigation commands, said template code specifying a first object to be processed,
- wherein said templatized navigation commands are used to provide navigational control of the BD using playable content; and
- a code converter to converting said template code to generate multiple lines of low level code, and to automatically place said low level code at multiple positions on the BD to effect desired behaviors by the BD.
16. The system of claim 15, wherein said template code is a single line of high level script language.
17. The system of claim 15, wherein said template code is multiple lines of high level script language.
18. The system of claim 15, wherein said code converter includes
- a script compiler configured to compile said template code into multiple lines of low level code.
19. The system of claim 18, said template code generator includes
- a plurality of macros configured to expose the templatized navigation commands,
- wherein the macros enable said code converter to convert a single line of high level code to multiple lines of high level code before compiling the high level code.
20. The system of claim 15, wherein said template code generator is configured to allow a user to manually write said template code.
21. The system of claim 15, wherein said template code generator is configured to receive a user input of graphical connectors drawn from one object to another object of said playable content, and using the graphical connectors to generate said template code.
22. An apparatus for authoring a Blu-ray Disc (BD), the apparatus comprising:
- means for generating a template code representing templatized navigation commands, said template code specifying a first object to be processed,
- wherein said templatized navigation commands are used to provide navigational control of the BD using playable content;
- means for converting said template code to generate multiple lines of low level code; and
- means for automatically placing said low level code at multiple positions on the BD to effect desired behaviors by the BD.
23. A computer program, stored in a computer-readable storage medium, for authoring a Blu-ray Disc, the program comprising executable instructions that cause a computer to:
- generate a template code representing templatized navigation commands, said template code specifying a first object to be processed,
- wherein said templatized navigation commands are used to provide navigational control of the BD using playable content;
- convert said template code to generate multiple lines of low level code; and
- automatically place said low level code at multiple positions on the BD to effect desired behaviors by the BD.
Type: Application
Filed: Aug 28, 2006
Publication Date: Mar 1, 2007
Patent Grant number: 8213771
Inventors: Don Eklund (Yorba Linda, CA), Sumit Malik (Pasadena, CA), Raja Sahi (Los Angeles, CA), Tommy Choy (Lakewood, CA)
Application Number: 11/467,892
International Classification: H04N 5/00 (20060101);