Abstract:
Selection of an audio-visual stream from among a plurality of streams occurs by first detecting a navigation packet within at least one stream that provides information concerning the stream, as well as those streams in lie in synchronism therewith. From the navigation packet, a determination is made which other streams lie in synchronism with the one stream, which audio and sub-picture data packets exist in each stream, and as well as which highlight information properties exist for selecting among the synchronized streams. At least one of the audio data packets, sub-picture data packets, or highlight information properties undergoes modification in accordance with information about at least one other synchronized stream to allow display of a viewer selectable button or the like to select among the synchronized streams and/or be presented with differing audio and/or sub-picture contents with each stream.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS  
       [0001]     This application claims priority under 35 U.S.C. 119(e) to U.S. Provisional Patent Application Ser. No. 60/564,415, filed on Apr. 22, 2004, the teachings of which are incorporated herein. 
     
    
     TECHNICAL FIELD  
       [0002]     This invention relates to Digital Versatile Discs, previously known as Digital Video Discs (DVDs) and more particularly to a technique for facilitating selection among, and interaction with, different audio/visual (A/V) streams embedded on a DVD.  
       BACKGROUND ART  
       [0003]     The development of the DVD followed the development of CD ROM in an effort to achieve sufficient storage capacity for large video files to enable a single disc could carry a full length motion picture, albeit compressed using a compression technique such as the Moving Picture Expert Group compression (MPEG) technique. Since its first introduction in the mid 1990&#39;s, the DVD has proliferated, becoming the preferred medium of choice for wide scale distribution of motion picture and video content to consumers.  
         [0004]     Present day DVDs typically include at least one, and usually several A/V/streams in parallel synchronism to each other. Often such A/V streams comprise different recordings of the same scene shot from a different angle. Hence, such different A/V streams are often referred to as “angles”. Selection of different angles (i.e., different streams) occurs through a process known as “multi-angle navigation” whereby a viewer selects a desired angle by selecting an associated icon on a display screen. The DVD specification adopted by the manufacturers of DVDs and associated playback devices defines a process known as “multi-angle video” whereby a content author can define as many as nine concurrent A/V streams, any one of which can appear on a display screen at any time. During playback, the viewer can switch seamlessly among a set of synchronized A/V streams by actuating a command via a button on a DVD player or on the remote control device for such player. However, under known implementations of currently available DVD authoring software, the button highlight information (HLI) stored in each A/V stream always remains identical to that in other streams.  
         [0005]     As a result a given button will appear in the same way and in the same location to enable execution of the same command no matter what angle appears on the display screen. Additional HLI properties will also be the same, such as instructions for directional navigation between buttons and button color schemes. Sub-picture and audio data stored in each A/V stream also remains identical. Such Sub-picture data describes the rendering of buttons, subtitles, and other graphical elements displayed over video.  
         [0006]     Thus, there exists a need for multi-angle DVD navigation technique that affords the content author an ability to both assign contextually dependent interactivity and to substitute differing audio and sub-picture data into parallel, synchronized Audio/Visual (A/V) streams playing from a DVD.  
       BRIEF SUMMARY OF THE INVENTION  
       [0007]     Briefly, in accordance with a preferred embodiment of the present principles, there is provided a method for enabling a viewer to seamlessly select among a plurality of audio-visual streams recorded on a storage medium. The method commences by detecting a first navigation data packet within at least one stream. A determination is made from the navigation packet which of the other streams lie in synchronism, and which highlight properties exist, including selection commands, within at least one stream for selecting among the synchronous streams. Then at least one synchronous stream highlight property, e.g. a selection command, undergoes a modification of at least one of its appearance, location, and execution functionality for subsequent display to the viewer. A viewer who receives a display command can thus effect a switching of streams. In this way, a content author can embed unique interactive buttons with unique attendant properties into each of the parallel streams in a manner that allows the viewer to interact with the streams and execute commands, such as changing seamlessly to another parallel A/V stream, selecting alternate audio or subtitle content, or jumping to other presentation content.  
         [0008]     A method is also provided for the content author to modify sub-picture and/or audio data within at least one of a plurality of audio-visual streams presented in parallel. This method commences by detecting a first navigation packet within at least one stream. A determination is made from the navigation packet which of the other streams lie in synchronism, and what audio and sub-picture packets exist within each stream. Then, the data payload of one or more audio and/or sub-picture packets is modified. An A/V stream in a parallel presentation will then have differing sub-picture and audio contents compared to the other synchronous streams. In this way, a content author can embed within each A/V stream unique audio and/or sub-picture content, providing an advantage over traditional methods, where alternate content must exist in additional sub-streams within each A/V stream. 
     
    
     BRIEF SUMMARY OF THE DRAWINGS  
       [0009]      FIG. 1  depicts a block schematic diagram of a present day DVD player useful for practicing the multi-angle navigation technique of the present principles;  
         [0010]      FIG. 2  depicts the relationship among an audio/visual stream, Video Object Units (VOBUs) and an Interleave Units (ILVUs)  
         [0011]      FIGS. 3A and 3B  depict two video screens each displaying two different angles, with each screen displaying an inverse angle arrangement from the other;  
         [0012]      FIGS. 4A-4D  each depicts a video screen with four angles in each of four separate arrangements in accordance with the present principles; and  
         [0013]      FIGS. 5A-5I  each depicts a video screen showing one of nine separate angles arranged in different ways in accordance with the present principles. 
     
    
     DETAILED DESCRIPTION  
       [0014]      FIG. 1  depicts a block schematic diagram of a prior-art Digital Versatile Disc (DVD) player  10  useful for practicing the DVD navigation technique of the present invention. The DVD player  10  includes a drive motor  12  that rotates a DVD  13  under the control of a servomechanism  14 . A pick-up head motor  16 , also controlled by the servomechanism  14 , serves to displace an optical pick-up head  18  across the DVD  13  to read information carried thereby. A pre-amplifier  20  amplifies the output signal of the pick-up head  18  for input to a decoder  22  that decodes the optical information read from the DVD  13  to yield a program stream. A de-multiplexer  24  de-multiplexes the program stream into separate components: (a) an audio stream, (b) a video stream, (c) a sub-picture stream and (d) navigation information, typically in the form of metadata or the like.  
         [0015]     The audio, video, and sub-picture streams undergo decoding by a separate one of audio decoder  26 , video decoder  28  and sub-picture decoder  30 , respectively. A synchronizer  36 , some times known as a presentation engine, serves to synchronize and combine the separately decoded audio, video and sub-picture streams into a video stream, with embedded audio for suitable reproduction in accordance with one of several known television formats, such as NTSC or PAL for example. A video digital-to-analog converter  34  converts the video stream into analog video for display on a display device (not shown) such as a television set, while an audio digital-to-analog-converter converts the embedded audio to analog audio for subsequent reproduction by the display device or by other means (not shown).  
         [0016]     Within the DVD player  10 , a central processing unit (CPU)  38 , typically in the form of a microprocessor with associated memory, or a microcomputer or microcontroller, serves to control navigation, as well as other aspects of the DVD player, in accordance with viewer commands entered through a viewer interface (U/I)  40 , typically comprising the combination of an Infrared (I/R) transmitter, in the form of remote control, and an I/R receiver. Specifically with regard to navigation, the CPU  38  receives decoded metadata form the demultiplexer  24  and generates menu information for receipt by the synchronizer  32 . In this way, the menu information ultimately undergoes display for viewing by the viewer. In response to the displayed information, the viewer typically will enter one or more commands through the U/140 for receipt by the CPU  38 , which in turn, controls the servomechanism  14  to displace the pick-up head  18  to retrieve the desired program content.  
         [0017]     The DVD specification (DVD Specifications for Read-Only Disc/Part 3. VIDEO SPECIFICATIONS, Version 1.0, August 1996), defines the smallest object to which DVD navigation can apply as a Video Object Unit (VOBU). The VOBU typically contains multiplexed video, audio, sub-picture, highlight and other navigation data, corresponding to playback duration of 0.4 to 1.2 seconds. Multiple sub-streams of audio and sub-picture data can exist in each VOBU (e.g. stereo and surround audio sub-streams and/or German and Portuguese subtitles.) This combination of such multiplexed data constitutes an “A/V stream.” In a multi-angle segment, multiple A/V streams are interleaved together into a single Video Object (VOB) stream in order to allow quick access from one stream to another for seamless or near-seamless switching.  
         [0018]     The DVD specification defines an Interleave Unit (ILVU) as a block of one or more VOBUs in order to align the A/V stream content of multiple angles with a common time stamp, providing synchronization of the A/V streams. During playback, the synchronizer  32  decodes and displays only the ILVUs corresponding to the currently selected A/V stream. The DVD specification defines a maximum size of the ILVU based on number of angles (i.e., number of available streams), scan speed of the physical device, and size of the decode buffer (not shown). If this maximum size is exceeded, seamless playback of any angle cannot be guaranteed.  
         [0019]      FIG. 2  illustrates the relationship of multiplexed A/V stream data to VOBU and ILVU data structures for multi-angle video. As illustrated in  FIG. 2 , each block of the program stream decoded by the decoder  22  of  FIG. 1  includes a navigation packet (NV_PCK), a video packet (V_PCK), an audio packet (A_PCK) and a sub-picture packet (SP_PCK). The DVD specification defines a Seamless Angle Information data structure (SML_AGLI) in the navigation data structure (DSI) portion of the NV_PCK at the beginning of each VOBU that includes a table of ILVU start points indicating the location where the next ILVU for each seamless angle is located. Such information enables the CPU  38  of  FIG. 1  to control the servomechanism  14  where to go within the VOB stream when it is ready to begin presenting the next ILVU.  
         [0020]     In addition, the DVD specification defines several data structures within a portion of the navigation data at the beginning of each VOBU that describe the Highlight Information (HLI) for interactive buttons. These data structures, such as the Highlight General Information (HLI_GI), Button Color Information Table (BTN_COLIT), and Button Information Table (BTN_IT) define the number, position, appearance, and function of the buttons that appear in the screen display.  
         [0021]     In accordance with the present principles, the Highlight information can undergo manipulation to alter the information displayed to the viewer, such as the picture-in-picture menu display to enable the selection of different streams. Given a set of seamless multi-angle VOB streams for a DVD disc that already contains an existing set of interactive buttons that are identical for all angles, low-level manipulation of the Highlight Information (HLI) multiplexed into each angle stream, can occur follows via the following process: 
        1. Scan the VOB stream to locate the first NV_PCK that includes non-zero values in the Seamless Angle Information (SML_AGLI) table in order to determine where seamless multi-angle data begins.     2. Determine the number of angles, number of buttons, size of the ILVU, and start address of ILVUs of each angle from this NV_PCK.     3. Modify the Highlight Information as desired for the current angle. If the Highlight Information now differs from the previous VOBU, then reset the Highlight Information Status (HLI_SS) value to 01b, in accordance with the DVD specification.     4. Loop through each VOBU of the current ILVU, repeating Step #3.     5. Loop through each subsequent ILVU, repeating the above steps.        
 
         [0027]     The above-described process typically occurs using a software utility that takes as input the VIDEO_TS directory of files intended for a DVD and outputs a modified VIDEO_TS directory of files with the VOB streams adjusted according to the content author&#39;s intent. By way of explanation, on a DVD disc, the DVD movies appear in the VIDEO_TS directory, whereas the AUDIO_TS directory stores DVD audio. Such a software utility would exist comprise the following functions and classes for execution:  
         [0000]     DVDDataSeach( )  
         [0028]     This function searches for the VOB packet header indicator and retrieves the size of the IVLU block and reference data for the first video angle.  
         [0000]     GetDataPosition( )  
         [0029]     This function retrieves the button, command, and ILVU size information, the location of which is defined in the DVD specification.  
         [0000]     DoVOBUChange( )  
         [0030]     This function checks the angle identifier and gets the button information from GetDataPosition( ). Further, this function modifies the button information according to the viewer input.  
         [0000]     ProcessAngles( )  
         [0031]     This function initiates a loop through the VOB stream to locate and process each instance of seamless multi-angle data.  
         [0000]     CAngleNavigateAppDlg  
         [0032]     This function establishes class definitions for the viewer interface by which the content author can specify the modification of each angle&#39;s button highlight information.  
         [0033]     The following examples illustrate different ways of providing contextually dependent multi-angle selection choices in accordance with the present principles.  
       EXAMPLE # 1—SWITCH  
       [0034]      FIGS. 3A and 3B  collectively depict a simple example of a switch between first and second angles  102  and  104 , with each angle having associated video content. Each angle occupies a full frame of a video display and includes a button  106  appearing at the bottom of the frame. A viewer seeking to change angles click or otherwise actuates the button  106 . Thus, for example in  FIG. 3A  with the angle  102  displayed full screen, a viewer clicks the button  106  to select angle  104  to appear full screen as shown in  FIG. 3B . Conversely, with the angle  104  now displayed full screen in  FIG. 3B , the viewer clicks on the button  106  in that screen to select the angle  102  to appear full screen as seen in  FIG. 3A . The button  106 , which can appear either as a visible or invisible element, thus permits simple toggling from one angle to the other and back again. Thus, the command set for button  106  will have the following states angles  102  and  104                                                     Angle 102:   Angle 104:                           1: Set Angle = 104   1: Set Angle = 102                        
       EXAMPLE 2  
     Preview  
       [0035]      FIGS. 4A-4E  each depicts a multi-angle video displays comprised of four video angles  202 ,  204 ,  206  and  208 , respectively, with one of the angles appearing full screen, and the others each appearing as “picture-in-picture” elements along the bottom of the full screen angle. Each of the “picture-in-picture angles” provides both a preview to that angle as well as a selector button allowing seamless switching to that angle. Thus, in each of  FIGS. 4A-4D , the angles  202 ,  204 ,  206  and  208 , respectively appear full screen with the other angles appearing as picture-in-picture elements. By clicking on a separate one of the angles appearing as picture-in-picture elements, a viewer can select and seamlessly switch to one of the alternate video angles. The selection button function associated with each angle of the angles  202 ,  204 ,  206  and  208  appear as follows:  
                                           Angle 202:   Angle 204:   Angle 206:   Angle 208:                   1: Set Angle = 204   1: Set Angle = 202   1: Set Angle = 204   1: Set Angle = 204       2: Set Angle = 206   2: Set Angle = 206   2: Set Angle = 202   2: Set Angle = 206       3: Set Angle = 208   3: Set Angle = 208   3: Set Angle = 208   3: Set Angle = 202                    
         [0036]     In this example, only one button selection need occur to change from one angle to the next, with all three “picture-in picture-in-picture elements modified across all four angles.  
       C. EXAMPLE EMBODIMENT #3  
     Direct  
       [0037]      FIGS. 5A-5I  each depict one of nine separate angles  302 ,  304 ,  306 ,  308 ,  310 ,  312 ,  314 ,  316  and  318 , respectively, in different arrangements which affords the viewer the experience of directly navigating through 3D space. Within each of  FIGS. 5A-5I , each angle represents a point of view on a grid. Five buttons respectively appear in each video angle, and each button lies in the same orientation as a separate one of the Select, Up Arrow, Down Arrow, Left Arrow and Right Arrow keys on a typical DVD player&#39;s remote control. Although visible in  FIGS. 5A-5I , these buttons are typically invisible in practice. The buttons are mapped to direction such that Button  1 =Up, Button  2 =Left, Button  3 =Center (Select), Button  4 =Right, and Button  5 =Down. The Select button (at the center) is highlighted by default, and the remaining buttons become automatically activated when the corresponding direction is selected. Therefore, when the viewer presses the Right Arrow key on the remote control, the corresponding (invisible) button (Button  4 ) will execute its command. Each of the five-buttons in each of  FIGS. 5A-5I  selects a corresponding one of the angles  302 - 318 .  
         [0038]     As shown in the diagrams below, to achieve this sense of seamlessly stepping through a 3D space a complex combination of button commands is required, customized to each video angle.  
         [0039]     The selection button function associated with each angle of the angles  302 ,  304 ,  306 ,  308 ,  310 ,  312 ,  314 ,  316 , and  318  appear as follows:  
                                           Angle 302:   Angle 304:   Angle 306:               1: Set Angle = 302   1: Set Angle = 304   1: Set Angle = 306       2: Set Angle = 302   2: Set Angle = 302   2: Set Angle = 304       3: Set Angle = 314   3: Set Angle = 316   3: Set Angle = 318       4: Set Angle = 304   4: Set Angle = 306   4: Set Angle = 306       5: Set Angle = 308   5: Set Angle = 310   5: Set Angle = 312               Angle 308:   Angle 310:   Angle 312:               1: Set Angle = 302   1: Set Angle = 304   1: Set Angle = 306       2: Set Angle = 304   2: Set Angle = 308   2: Set Angle = 310       3: Set Angle = 302   3: Set Angle = 304   3: Set Angle = 306       4: Set Angle = 310   4: Set Angle = 312   4: Set Angle = 312       5: Set Angle = 314   5: Set Angle = 316   5: Set Angle = 318               Angle 314:   Angle 316:   Angle 318:               1: Set Angle = 308   1: Set Angle = 310   1: Set Angle = 312       2: Set Angle = 314   2: Set Angle = 314   2: Set Angle = 316       3: Set Angle = 308   3: Set Angle = 310   3: Set Angle = 312       4: Set Angle = 316   4: Set Angle = 318   4: Set Angle = 318       5: Set Angle = 314   5: Set Angle = 316   5: Set Angle = 318                  
 
 As noted above, the button commands 1-5 associated with each of the angles  302 - 318  in the above table correspond to the button layout in  FIGS. 5A-5I  (e.g. 1=up, 2=left, 3=center  4 =right, 5=down) 
 
         [0040]     The directional navigation (via Up Arrow, Down Arrow, Left Arrow, or Right Arrow) from the center button (Button  3 ) is shown in the table below. In this example, directional navigation is disallowed when the function of the button navigated to would have no visible result (e.g. a command selecting the current angle.)  
                                                           Angle 302:   Angle 304:   Angle 306:                       Up: None   Up: None   Up: None           Left: None   Left: Button 2   Left: Button 2           Right: Button 4   Right: Button 4   Right: None           Down: Button 5   Down: Button 5   Down: Button 5                       Angle 308:   Angle 310:   Angle 312:                       Up: Button 1   Up: Button 1   Up: Button 1           Left: None   Left: Button 2   Left: Button 2           Right: Button 4   Right: Button 4   Right: None           Down: Button 5   Down: Button 5   Down: Button 5                       Angle 314:   Angle 316:   Angle 318:                       Up: Button 1   Up: Button 1   Up: Button 1           Left: None   Left: Button 2   Left: Button 2           Right: Button 4   Right: Button 4   Right: None           Down: None   Down: None   Down: None                      
 
         [0041]     In accordance with the present principles, the sub-picture and audio data within a particular sub-stream within each A/V stream in a parallel presentation can undergo manipulation to alter the information presented to the viewer, such as different audio commentary or audio mix within each A/V stream or different button shapes or subtitles. 
        1. Scan the VOB stream to locate the first NV_PCK that includes non-zero values in the Seamless Angle Information (SML_AGLI) table in order to determine where seamless multi-angle data begins.     2. Determine the number of angles, number of buttons, size of the ILVU, and start address of ILVUs of each angle from this NV_PCK.     3. Modify the A_PCK and SP_PCK data as desired for the current angle.     4. Loop through each VOBU of the current ILVU, repeating Step #3.     5. Loop through each subsequent ILVU, repeating the above steps.        
 
         [0047]     The above-described process typically occurs using a software utility that takes as input the VIDEO_TS directory of files intended for a DVD and outputs a modified VIDEO_TS directory of files with the VOB streams adjusted according to the content author&#39;s intent. By way of explanation, on a DVD disc, the DVD movies appear in the VIDEO_TS directory, whereas the AUDIO_TS directory stores DVD audio. Such a software utility would comprise the following functions and classes for execution:  
         [0000]     DVDDataSeach( )  
         [0048]     This function searches for the VOB packet header indicator and retrieves the size of the IVLU block and reference data for the first video angle.  
         [0000]     GetDataPosition( )  
         [0049]     This function retrieves the button, command, and ILVU size information, the location of which is defined in the DVD specification.  
         [0000]     DoVOBUChange( )  
         [0050]     This function checks the angle identifier and gets the A_PCK and SP_PCK location from GetDataPosition( ).  
         [0000]     ProcessAngles( )  
         [0051]     This function initiates a loop through the VOB stream to locate and process each instance of seamless multi-angle data.  
         [0052]     The following example illustrates one embodiment of differing audio and sub-picture data within the same sub-stream between different angles in a seamless multi-angle presentation in accordance with the present principles.  
       EXAMPLE #1  
     Director&#39;s Commentary  
       [0053]     A seamless multi-angle presentation is used to provide visual director&#39;s commentary for a scene. Two A/V streams are presented in parallel. The first A/V stream presents the scene, while the second A/V stream presents the scene with an image of the director composited into the frame. Each A/V stream contains one sub-picture sub-stream and one audio sub-stream. The audio sub-stream of A/V stream  1  contains the actors&#39; dialogue only. The audio sub-stream of A/V stream  2  contains the actors&#39; dialogue mixed with the director&#39;s commentary. The sub-picture sub-stream of A/V stream  1  contains subtitles of the actors&#39; dialogue only. The sub-picture sub-stream of A/V stream  2  contains subtitles of both the actors&#39; dialogue and the director&#39;s commentary.  
         [0054]     The foregoing describes a technique for provided a method for enabling a viewer to seamlessly select among a plurality of audio-visual streams recorded on a storage medium by means of interactive elements that are unique for each stream. While the seamless selection technique of the present principles has been described with respect to the DVD specification, the technique also applies to HD DVD-Video Specification Version 0.9. Further the technique is also applicable to the so-called “Blue Ray” (BD) disc as well.