Abstract:
Various disc enhancement systems and methods are disclosed. In some embodiments, methods comprise retrieving information from a master optical disc; retrieving a data structure from a slave optical disc; using the information from the master optical disc to modify the data structure; and playing content from the slave optical disc in accordance with the modified data structure.

Description:
RELATED APPLICATIONS  
       [0001]     This application relates to co-pending U.S. patent application Ser. No. ______ (Dkt# 200501205), entitled “Search File Indicating Languages Associated With Scenes,” filed Jan. 10, 2005, and hereby incorporated herein by reference. 
     
    
     BACKGROUND  
       [0002]     Film producers and movie studios routinely make shows available to consumers on optical disc for home viewing. To maximize the return on their investment, the movie makers will often produce multiple variations of a movie to encourage repeated viewing and purchasing. For example, after the original version of a movie has been released a studio may release an extended version containing previously omitted footage, or a “director&#39;s cut” of the movie that has been edited differently from the original version. With the advent of high-capacity optical discs, it has become possible to include multiple versions of a movie and other bonus material on a single disc.  
         [0003]     It is expected that consumers will be largely unwilling to pay a significantly increased price for a single disc having multiple movie versions. Given the consumer&#39;s established willingness to pay for incremental changes to their viewing experience, it may be commercially advantageous to be able to individually market different versions of a single disc&#39;s content. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0004]     In the subsequent detailed description, reference will be made to the accompanying drawing in which:  
         [0005]      FIG. 1  shows a block diagram of an illustrative optical disc player;  
         [0006]      FIG. 2  shows a block diagram of an illustrative software architecture for an optical disc player;  
         [0007]      FIG. 3  shows illustrative data structures being combined in an illustrative data structure binding process;  
         [0008]      FIG. 4  shows a flow diagram of an illustrative binding process;  
         [0009]      FIG. 5  shows a flow diagram of an illustrative content unlocking process;  
         [0010]      FIG. 6  shows a flow diagram of an illustrative content locking process;  
         [0011]      FIG. 7  shows a flow diagram of an illustrative content alteration process;  
         [0012]      FIG. 8  shows a flow diagram of an illustrative content supplementation process; and  
         [0013]      FIG. 9  shows an illustrative library file having illustrative master and slave elements. 
     
    
     NOTATION AND NOMENCLATURE  
       [0014]     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.  
         [0015]     As used herein, the term “master” refers to a disc or other information storage medium or source that is capable of modifying the playback of another disc or other information storage medium. The term “slave” refers to a disc or other information storage medium that may have its playback modified by another, master disc or other information storage medium. These terms are not necessarily exclusive, as a disc may be a slave to another disc and a master to a third disc. Nor is there any restriction to the number of discs that may be master to a given disc, or conversely, to the number of discs that may be slave to a given disc.  
       DETAILED DESCRIPTION  
       [0016]     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, including the claims, is limited to that embodiment.  
         [0017]      FIG. 1  shows an illustrative optical disc player. In the player, an optical disc  102  is rotated by a motor  104 . The motor&#39;s rotation rate is controlled by controller  106 , which also controls the read/write position of laser  108 . Laser  108  reads data from optical disc  102 , and if the optical disk is recordable, the laser can write data to the optical disc. Laser  108  receives encoded write data from write strategy module  110 , which compensates for nonlinearities in the laser&#39;s write performance. The encoded write data is provided to write strategy module  110  by encoder module  112 . Encoder module  112  encodes a write data stream using error correction code (ECC) and channel encoding strategies to respectively protect against data recovery errors and ensure compatibility with the physical storage medium.  
         [0018]     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 &amp; 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 .  
         [0019]     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.)  
         [0020]     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.  
         [0021]     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.  
         [0022]     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&#39;s operation is determined by software stored in internal memory  132 . Internal memory  132  serves also as a data cache for the microprocessor&#39;s operations.  
         [0023]     The software executed by microprocessor  122  may be represented with a software architecture diagram.  FIG. 2  shows an illustrative software architecture diagram having blocks for a virtual file system (VFS) module  202 , a management module  214 , a movie module  216 , an application module  218 , a playback control engine  220 , and a presentation engine  222 . When an optical disc  102  is inserted in the disc player, the VFS module  202  creates a virtual package  204 .  
         [0024]     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&#39;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 .  
         [0025]     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.  
         [0026]     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.  
         [0027]     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.  
         [0028]     Application module  218  is provided for executing software content from the disc. This module will not be discussed further here.  
         [0029]      FIG. 3  shows illustrative data structures that may be operated on by the VFS module  202 . Specifically, VFS module  202  may combine the optical disc&#39;s data structure  302  with the player&#39;s stored data structure  304  to provide the virtual package&#39;s data structure  306 . (This combining process is sometimes called “binding.”) The data structures shown here are file system structures, in that directories and files are shown. However, the files too are structured, so the data structures actually contain many more levels than what is shown here.  
         [0030]     Data structure  302  begins with a top-level root directory that contains two subdirectories, Meta (short for metadata) and BDMV (short for Blu-Ray Disc Movie). The illustrative meta directory contains a TitleScene Search file and two Library files. The TitleScene Search file provides descriptive information for each scene on the disc to enable versatile content searches. The Library files are language-specific, and each library file comprises catalog information for the disc. The library files provide such information as the disc title, a description of the disc, a table of contents for the disc, whether the disc is part of a set, copyright license rights, release date, creator, publisher, format, genre, audio track language, ratings, and sources for additional information.  
         [0031]     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).  
         [0032]     Data structure  304  is a more extended data structure, but it largely resembles the optical disc&#39;s data structure  302 . The root directory comprises a temporal subdirectory for caching temporary files, and further comprises a binding unit data subdirectory. This subdirectory contains “binding unit data,” that is, data that is intended to be combined with data from a given optical disc whenever that disc is played. The binding unit data directory comprises an organization identifier subdirectory to organize data according to optical disc publishers. Each organization identifier subdirectory may comprise disk-specific subdirectories named with the corresponding disk identifiers, and may additionally or alternatively comprise a Shared subdirectory for data to be used with multiple discs.  
         [0033]     Within a shared subdirectory or a disc-specific subdirectory, the data structure parallels the optical disc data structure, with Meta and BDMV directories as previously described. Within these directories are included only those files that are used to replace, modify or supplement disc content. Thus, in data structure  304 , a new index file and movie object file have been provided, as have a replacement play list, a supplemental play list, a new clip information file, and a new stream file.  
         [0034]     In general, it is contemplated that when the binding unit data for a given disc comprises a file that is identically named to an existing file on the disc, the file from the binding unit data will be used in place of the disc file. For example, a binding unit data file named 00000.MPLS would be used in place of a disc file of the same name. If a binding unit data file starts with the same identifier as (but is not identically named with) a disc file, the binding unit data file will be merged with the disc file. For example, a binding unit data file named 00001.00.MPLS would be merged with a disc file named 00001.MPLS. If a binding unit data file is provided without a corresponding disc file, the binding unit data file is simply added to the virtual package. The virtual package&#39;s data structure  306  reflects these changes, although the contents of the stream subdirectory are not expressly shown in the figure.  
         [0035]      FIG. 4  shows a flow diagram of an illustrative combining process that may be performed each time an optical disc is inserted in the player. The player begins in block  402  by obtaining a library file from the disc. In block  404 , the library file information (if not already present) is added to a library catalog in memory  132  and/or in local storage  128 .  
         [0036]     An illustrative library file is described further below with reference to  FIG. 9 . For the moment, it is sufficient to note that the library file may specify whether the optical disc is a master disc or a slave disc. In block  406 , the player determines whether the optical disc is a master disc. If so, then in block  408  the player transfers binding unit data to internal memory and/or local storage.  
         [0037]     Whether or not the optical disc is a master disc, the player checks in block  410  to determine whether building unit data has been stored for modifying the playback of the optical disc. If so, in block  412  the player combines the stored data structure with the optical disc&#39;s data structure to form a virtual package data structure. Otherwise, in block  414 , the player determines whether the optical disc requires the use of a master disc. If a master disc is required (and the data from the master disc is not present), the player halts playback, optionally displaying an error message.  
         [0038]     If the master disc data is present or if a master is not required, the player operates on the virtual package in block  420 . Depending on the virtual package content, the operation may be playback of a movie title or execution of a software package.  
         [0039]     The master/slave concept allows for post-purchase modification of a slave disc&#39;s operation. The post purchase modification may take several forms, comprising: 1) unlocking of previously unavailable content; 2) locking of previously available content; 3) altering the content; and 4) supplementing the content. Each of these forms may enhance the value of a purchased disc, and hence may allow publishers to increase revenue by selling master discs to carry out these modifications.  
         [0040]      FIG. 5  shows an illustrative flow diagram for unlocking previously unavailable content. A slave disc, when sold, may comprise content that is not initially available to the purchaser. For example, a publisher may store multiple movie versions, such as a alternative “cuts” (e.g., a director&#39;s cut) and different language versions of the movie. As another example, the publisher may include “bonus material” such as behind-the-scenes interviews, commentary, deleted material, and out-takes. Mastering all such materials on a single disc may cost less than mastering multiple disc versions. The publisher may then provide master discs designed to unlock selective portions of the content. For example, a language master disc may be provided to unlock a certain language version of the movie, or a director&#39;s cut master disc may unlock a director&#39;s cut.  
         [0041]     As indicated in  FIG. 5 , the unlocking process begins in block  502  with playing the master disc in the player. The player transfers to internal memory or local storage a set of binding unit data that may comprise a new index file and movie object file to make the previously unavailable slave disc content accessible to the player. In some embodiments, the binding unit data may comprise a decryption key.  
         [0042]     In block  504  the master disc is removed from the player, and in block  506  a slave disc is inserted. When the slave disc is inserted, the player combines the binding unit data with the data from the slave disc, making previously unavailable content accessible by the player. Thus in block  508 , the player can play the unlocked content.  
         [0043]      FIG. 6  shows an illustrative flow diagram for locking previously available content. A slave disc, when sold, may comprise a wide variety of accessible content. As previously noted, multiple versions of a movie may be present, as may put-takes and other bonus material. Some of this material may be suitable for young viewers, while other material may not. The publisher may provide master discs designed to lock selective portions of the content. For example, a rating master disc may be provided to make selected portions of the content inaccessible.  
         [0044]     As indicated in  FIG. 6 , the unlocking process begins in block  602  with playing the master disc in the player. The player transfers to internal memory or local storage a set of binding unit data that may comprise a replacement index file and movie object file to make the previously available slave disc content inaccessible to the player.  
         [0045]     In block  604  the master disc is removed from the player, and in block  606  a slave disc is inserted. When the slave disc is inserted, the player combines the binding unit data with the data from the slave disc, making previously available content inaccessible by the player. Thus in block  608 , the player can play the accessible content, but is prevented from playing the locked content.  
         [0046]      FIG. 7  shows an illustrative flow diagram for altering content. A master disc may be designed to re-order the playback of existing material. For example, the publisher may wish to create a master disc that alters the playback of a slave disc to convert a movie into a music video or soundtrack album.  
         [0047]     As indicated in  FIG. 7 , the altering process begins in block  702  with playing the master disc. The player transfers to internal memory or local storage a set of binding unit data that may comprise a replacement play lists to alter the playback of the disc content.  
         [0048]     In block  704  the master disc is removed from the player, and in block  706  a slave disc is inserted. When the slave disc is inserted, the player combines the binding unit data with the data from the slave disc, altering the playback method. Thus in block  708 , the player plays the content of the disc in an altered fashion.  
         [0049]      FIG. 8  shows an illustrative flow diagram for adding content. A publisher may develop enhancements for a slave disc after the slave disc has already been published. For example, a publisher may wish to add search options, pop-up trivia or commentary, game software, or user interface enhancements. A master disc may be designed to provide these enhancements for use in the playback of content on the slave disc.  
         [0050]     As indicated in  FIG. 8 , the altering process begins in block  802  with playing the master disc. The player transfers to internal memory or local storage a set of binding unit data that may comprise a additional content to enhance the playback of the slave disc&#39;s content. In block  804  the master disc is removed from the player, and in block  806  the slave disc is inserted. When the slave disc is inserted, the player combines the binding unit data with the data from the slave disc. Thus in block  808 , the player plays the content of the disc in an enhanced fashion.  
         [0051]     The library file discussed above relative to  FIG. 4 , is now described in more detail. The library file may be structured using the extended markup language (XML). An XML file comprises elements that are delimited by tags. The tags identify the elements, and may further comprise attribute values associated with the elements. An element&#39;s content appears between its delimiters, and nested structures are permitted. White space, i.e., tabs, spaces, and line breaks, are largely ignored except as may be needed within a tag to separate an element&#39;s name from any attribute values that may be specified.  
         [0052]     An illustrative library file is shown in  FIG. 9 . Note that the tags are identified with angle brackets &lt; &gt;, and the tags generally provided in pairs, e.g., the &lt;meta&gt; tag and the &lt;/meta&gt; tag delimit the contents of the meta element. The exception to this rule occurs for empty elements such as the master element  902 . An empty element is an element with nothing between the delimiters, e.g., &lt;master&gt;&lt;/master&gt;. Such a construction may be abbreviated as &lt;master /&gt;.  
         [0053]     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&#39;s value appears in quotes on the right side of the equals sign. For example, the master element  902  is shown having two attributes: slaveID and masterType.  
         [0054]     The library file provides information regarding the disc and its content. The structured metadata appears in the meta element between the &lt;meta&gt; and &lt;/meta&gt; delimiters. The metadata comprises the discinfo element and one or more titleinfo elements. The discinfo element provides information about the disc as a whole, while the titleinfo elements contain information specific to each title on the disc.  
         [0055]     The discinfo element comprises a title element to specify the disc&#39;s title (and any alternative titles for the disc). The discinfo element further comprises a description element that may provide a table of contents for the disc with links to the various titles. The discinfo element may also comprise a right element to identify the disc&#39;s copyright owner.  
         [0056]     The discinfo element may further comprise a slave element  904  and one or more master elements  902 . The function of the slave element  904  is to identify the disc as a slave disc. In some embodiments, the player will not combine data from local storage with disc content if the slave element is absent. The slave element may specify a “requiresMaster” attribute value as either “yes” or “no.” The default value may be “no.” If the requiresMaster attribute value is “yes” the disc may not be permitted to play in the absence of data from a master disc. (This might be the case, for example, where the publisher wishes to use master discs to control license rights.)  
         [0057]     The function of the master element  902  is to identify the disc as a master disc. The slaveID attribute of the master element is set equal to an identifier of the slave disc for which the master disc is intended. In some embodiments, the identifier is allowed to include wildcard characters so that the master disc can apply to multiple slave discs. The masterType attribute serves to identify the purpose of the master disc. In the example shown, the masterType is set to be indicative of a director&#39;s cut, so after the master disc has been played, the slave disc should exhibit a director&#39;s cut of the movie.  
         [0058]     The slave disc may be a legacy media type that does not include a library file or other similar data structure. The slave disc can be optical, magnetic, magento-optical, or other type. To accommodate such discs, which might not have a slave element that specifies a slaveID, the slaveID attribute of the master element  902  may be allowed to reference any information on a slave disc. For example, the slaveID attribute might reflect copyright information, title information, publication date information, and combinations thereof.  
         [0059]     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. Some player embodiments may include a network interface configured to retrieve binding unit information via a network. It is intended that the following claims be interpreted to embrace all such variations and modifications.