Film producers and movie studios routinely make shows available to consumers on optical disc for home viewing. With the advent of high-capacity optical discs, it has become possible to offer additional content and features to published optical discs. One proposed feature is an enhanced search capability that would be able to identify scenes in a movie having certain actors or characters. However, proposed formats for the disc content allow for the possibility that a scene may have multiple versions, e.g., a scene could be rendered in different languages. It would be desirable to provide any enhanced search capability with the power to differentiate between multiple versions of a given scene. The differentiation should be implemented in a manner that provides maximum flexibility but ensures consistent operation on different platforms.
In the subsequent detailed description, reference will be made to the accompanying drawing in which:
Certain terms are used throughout the following description and claims to refer to particular system components. As one skilled in the art will appreciate, companies may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not function. In the following discussion and in the claims, the terms “including” and “comprising” are used in an open-ended fashion, and thus should be interpreted to mean “including, but not limited to . . . .” Also, the terms “couple” or “couples” and “connect” or “connects” are intended to mean either an indirect or direct electrical connection. Thus, if a first device couples or connects to a second device, that connection may be through a direct electrical connection, or through an indirect electrical connection via other devices and connections.
The following discussion is directed to various embodiments of the invention. Although one or more of these embodiments may be preferred, the embodiments disclosed should not be interpreted, or otherwise used, as limiting the scope of the disclosure or the claims. In addition, one skilled in the art will understand that the following description has broad application, and the discussion of any embodiment is meant only to be illustrative of that embodiment, and not intended to suggest that the scope of the disclosure or the claims is limited to that embodiment.
Laser 108 detects changes in reflected light intensity to read data from optical disc 102. Laser 108 provides a read signal to pre-amplifier 114, which amplifies the signal and provides it to module 116 for timing recovery and equalization. Pre-amplifier 114 further provides a tracking error signal that controller 106 uses for feedback control of the read/write position of laser 108. Timing and equalization module 116 provides an equalized read signal to address & data decoder 118. The decoder forms one or more read data streams from the address and data information extracted from the read signal. A transport stream manager 120 operates under control of microprocessor 122 to direct, multiplex, and de-multiplex data streams to and from various components. Transport stream manager 120 receives a data stream from decoder 118, de-multiplexes the data stream into component streams, and directs the component streams as appropriate to audio block 124, video block 126, local storage 128, and microprocessor 122. Manager 120 further accepts one or more component streams from audio block 124, video block 126, local storage 128, and microprocessor 122, multiplexes the one or more component streams into a single write data stream, and directs the write data to encoder 112.
Audio block 124 is an interface for audio output and audio input. Accordingly, audio block 124 may be configured to connect to speakers and headphones, and may be further configured to receive a line input or audio input from another source. (The audio block 124 is optional and may be omitted in some embodiments.)
Video block 126 is an interface for video output and video input. Accordingly, video block 126 may be configured to connect to a television monitor, or video screen, and may be further configured to receive video input from an external source.
Local storage 128 is a persistent information storage device, and may take the form of a disk drive, solid state device, or other large capacity storage device. Local storage 128 may be used to build an information library regarding optical discs that have been played, and may further be used to store content from one or more of the optical discs for later playback without the disc.
Microprocessor 122 coordinates the operation of the various player components in response to input from user interface 130. The user interface 130 may comprise various lights, buzzers, and digital displays for providing status information and feedback to the user. The microprocessor's operation is determined by software stored in internal memory 132. Internal memory 132 serves also as a data cache for the microprocessor's operations.
The software executed by microprocessor 122 may be represented with a software architecture diagram.
Virtual package 204 is constructed from disc content combined with stored information from local storage 128 (or in the absence of local storage 128, stored information from internal memory 132). The virtual package 204 represents the contents of a virtual disc. The use of a virtual package 204 allows for modification of an optical disc's operation with no modification to the optical disc itself. In the absence of stored information, the virtual package 204 will be identical to the contents of optical disc 102.
Virtual package 204 comprises an index table 206, one or more movie objects 208, one or more play lists 210, and one or more clips 212. The index table 206 is a table that defines a top-level menu and identifies the titles on the disc. The menu and titles are identified in terms of the movie object(s) that implement the menu or launch playback of the title. The index table further specifies a movie object or application to be automatically played when a disc is inserted into the player.
A movie object 208 is a navigation program that initiates playback of a play list and/or interacts with a user to select a play list or another movie object. A play list 210 is an ordered collection of playing intervals in the clips. The playing intervals are specified in terms of a start point and an end point in a given clip. A clip 212 is an audio-visual stream file (“clip stream file”) together with associated database attributes (“clip information file”). The clip stream file may be, for example, an MPEG-2 transport stream as provided in ISO/IEC 13818-1, and it may comprise multiplexed video, audio, graphics, and text streams. The clip information file identifies time-stamped access points to the clip stream file.
Management module 214 controls the top-level operations of the player, including determining which movie objects are to be executed and initiating execution of those movie objects associated with menus and titles. Movie module 216 is called by management module 214 to execute a given movie object. Movie module 216 calls playback control engine 220 with the play lists to be displayed. Playback control engine 220 also responds to commands by management module 214 for “trick play” modes such as fast-forward, pause, rewind, restart, and jump-to-next-scene. These modes are initiated via the playback control functions and playback control registers embedded within the playback control engine 220. Playback control engine 220 causes presentation engine 222 to retrieve clips 212 and play the clip content to the user via video screens and speakers.
Application module 218 is provided for executing software content from the disc. This module will not be discussed further here.
Search module 226 may be called by management module 214 in response to a user command. Search module 226 retrieves a search file 224 via VFS module 202 from disc 102, local storage 128, or internal memory 132. Search module 226 transforms the search file into selection lists for display to the user, and allows the management module 214 to associate scenes with selections from the lists.
The BDMV directory comprises an index file, a movie object file, and four subdirectories: Play List, ClipInf, Stream, and AuxData. The index file is the source of the index table 206 described previously. The movie object file is the source of the movie objects 208 described previously. The Play List directory comprises a file for each play list, the files being named with a five-digit play list identifier. The ClipInf directory comprises the clip information files described previously, and the Stream directory comprises the clip stream files described previously. (There is a one-to-one correspondence between the clip information files and the clip stream files.) The AuxData directory contains sound files and font files for graphics screens (such as menus).
Parallel paths may be used to provide language-specific scenes. For example, the title credits for a movie may be provided in different languages. As another example, a newspaper that appears in a scene may be in English in one version, and Japanese in another version. The disc player may automatically select a path based on a configuration set up by the user, or the user could select a desired path when initiating playback of the movie.
In block 609, the player determines a list of scenes in the movie that have the selected category member. The list may be filtered by language preference to avoid listing different language versions of the same scene. Alternatively, the list may comprise different language versions of a given scene and may specify the associated language. In block 610, the player displays the scene list on the screen and receives a scene selection from the user. In block 612, the player initiates playback of the selected scene.
The search file schema begins with a top-level search element 702. The search element has no attributes, but it does have sub-elements as indicated by nesting symbol 704; The sub-elements to search element 702 are scene elements 706. Search element 702 comprises at least one scene element 706, and may comprise more than one.
Each scene element 706 has one or more attributes 708, and may have sub-elements as indicated by nesting symbol 710. Each scene element 706 comprises an entry_point attribute that specifies the starting point for the scene. The starting point is specified in terms of elapsed time from the beginning of the movie. Each scene element 706 may comprise a duration attribute, an angle_num attribute, and/or a languagecode attribute. The duration attribute specifies the time length of the scene. The angle_num specifies the a camera angle associated with the scene when the scene is one in which multiple camera angles have been provided. The languagecode attribute identifies the language associated with a scene, and it is intended for use with scenes where multiple language versions have been provided.
The languagecode attribute may be assigned a three-character string value to identify the language associated with the scene. Suitable attribute values are the standard three-letter codes have been established in ISO 639-2:1988 “Codes for the representation of names of languages—Part 2: Alpha-3 code.” However, other attribute values could also be used to represent languages.
The optional sub-elements of the scene element 706 are the scenetype element 712, the character element 714, the actor element 716, and the authordef element 718. Each of these elements may have attributes 720 and sub-elements 730, 732. The scenetype element 712 is intended to provide a description of the scene. The scene element may comprise multiple character elements 714, each of which is intended to identify a character in the scene. Similarly, multiple actor elements 716 may be provided, each of which serves to identify an actor or actress present in the scene. Finally, there may be multiple authordef elements 718, each of which may be defined by the author to provide information about other aspects of the scene.
The name sub-element 730 for each of the scenetype element 712, the character element 714, the actor element 716, and the authordef element 718, serves to provide a value for that element. Thus, the name sub-element 730 for the scenetype may contain a brief description of the scene, whereas the name sub-element for the actor may contain the name of the actor. The description sub-element 732 serves to provide additional description about the element in question.
The authordef element 718 may further comprise an authordef sub-element 734, where the author can provide additional information with a customized structure. The authordef sub-element 734 may comprise additional, nested levels of information.
Optional attributes 720 comprise the id attribute, the relation attribute, and the idref attribute. The id attribute is a unique identifier for the element, i.e., the id attribute is assigned a value that is not shared with any other element in the search file. The relation attribute is a uniform resource identifier (URI) that identifies where additional information related to the element can be found. For example, the relation attribute for an actor element could specify an internet site having a biography for the actor. Finally, the idref attribute is a reference to a preceding element in the search file where attributes and sub-elements for the current element can be found. The idref allows repetitious information to be omitted from the search file. For example, once an element has been defined for an actor in one scene, all the subsequent scenes having that actor can simply have an empty actor element that refers back to the previously defined actor element.
An illustrative search file is shown in
Attributes for an element are included between the angle brackets and after the element name. Attributes are specified using an equals sign. The attribute name appears on the left side of the equals sign, and the attribute's value appears in quotes on the right side of the equals sign. For example, the actor element 802 is shown having a single attribute: idref.
The search file provides information regarding scenes in the movie. The structured information appears in the search element between the <search> and </search> delimiters. The information shown in
The above discussion is meant to be illustrative of the principles and various embodiments of the present invention. Numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. For example, the foregoing description was made in the context of optical discs, but the disclosed material is equally applicable to other forms of information storage. Also, the language differentiation was made using an attribute of the scene element, but could alternatively be made using a language sub-element of the scene element. It is intended that the following claims be interpreted to embrace all such variations and modifications.
The present application relates to co-pending U.S. patent application Ser. No. ______ (Dkt# 200501208), entitled “Disc Content Enhancement Systems and Methods,” filed Jan. 10, 2005, and hereby incorporated herein by reference.