US20020112226A1 - Menu authoring system and methd for automatically performing low-level dvd configuration functions and thereby ease an author's job - Google Patents

Menu authoring system and methd for automatically performing low-level dvd configuration functions and thereby ease an author's job Download PDF

Info

Publication number
US20020112226A1
US20020112226A1 US09/010,267 US1026798A US2002112226A1 US 20020112226 A1 US20020112226 A1 US 20020112226A1 US 1026798 A US1026798 A US 1026798A US 2002112226 A1 US2002112226 A1 US 2002112226A1
Authority
US
United States
Prior art keywords
pgc
menu
movie
dvd
authoring
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US09/010,267
Other versions
US6453459B1 (en
Inventor
Rainer Brodersen
Gregory Kent Wallace
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US09/010,267 priority Critical patent/US6453459B1/en
Application filed by Individual filed Critical Individual
Priority to EP07007378A priority patent/EP1801802A3/en
Priority to CA002318059A priority patent/CA2318059C/en
Priority to CA002444920A priority patent/CA2444920C/en
Priority to CA2505480A priority patent/CA2505480C/en
Priority to DE69935851T priority patent/DE69935851T2/en
Priority to EP10185776A priority patent/EP2270794A3/en
Priority to AU23390/99A priority patent/AU772108B2/en
Priority to EP07006810A priority patent/EP1798728A3/en
Priority to EP99903344A priority patent/EP1057120B1/en
Priority to AT99903344T priority patent/ATE360235T1/en
Priority to PCT/US1999/001458 priority patent/WO1999038098A2/en
Priority to JP2000528933A priority patent/JP4101462B2/en
Assigned to SPRUCE TECHNOLOGIES, INC. reassignment SPRUCE TECHNOLOGIES, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BRODERSEN, RAINER, WALLACE, GREGORY KENT
Assigned to JAPAN INFORMATION PROCESSING SERVICE CO., LTD. reassignment JAPAN INFORMATION PROCESSING SERVICE CO., LTD. SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SPRUCE TECHNOLOGIES, INC.
Assigned to SPRUCE TECHNOLOGIES, INC. reassignment SPRUCE TECHNOLOGIES, INC. RELEASE AND REASSIGNMENT Assignors: JAPAN INFORMATION PROCESSING SERVICE CO., LTD.
Assigned to FINANCETECH, INC., AS COLLATERAL AGENT reassignment FINANCETECH, INC., AS COLLATERAL AGENT SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SPRUCE TECHNOLOGIES, INC.
Priority to US10/213,025 priority patent/US7200836B2/en
Publication of US20020112226A1 publication Critical patent/US20020112226A1/en
Publication of US6453459B1 publication Critical patent/US6453459B1/en
Application granted granted Critical
Priority to AU2004200812A priority patent/AU2004200812B2/en
Priority to US11/535,885 priority patent/US8208789B2/en
Assigned to APPLE COMPUTER, INC. reassignment APPLE COMPUTER, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SPRUCE TECHNOLOGIES, INC.
Priority to US11/679,799 priority patent/US8180194B2/en
Assigned to APPLE, INC. reassignment APPLE, INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: APPLE COMPUTER, INC.
Assigned to APPLE INC. reassignment APPLE INC. CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY NAME PREVIOUSLY RECORDED ON REEL 019028 FRAME 0611. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME. Assignors: APPLE COMPUTER, INC.
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/84Television signal recording using optical recording
    • H04N5/85Television signal recording using optical recording on discs or drums
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/034Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/34Indicating arrangements 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/8042Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/21Disc-shaped record carriers characterised in that the disc is of read-only, rewritable, or recordable type
    • G11B2220/213Read-only discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • G11B2220/2562DVDs [digital versatile discs]; Digital video discs; MMCDs; HDCDs

Definitions

  • the present invention relates generally to mass data storage and retrieval, and more particularly to apparatus and methods for authoring a digital versatile disk.
  • New mass data storage means provide not only for storing greater amounts of multimedia and other information, but also for more interactive data retrieval by consumers.
  • one such storage means is espoused by the “DVD Specification for Read-Only Disc, Physical, File Format and Video Specifications” (DVD Consortium 1997), hereinafter referred to as the “DVD Specification”.
  • DVD-related technologies e.g. DVD-Audio, DVD-RAM, etc.
  • non-DVD technologies e.g. DVD-Audio, DVD-RAM, etc.
  • the Physical and File System portions of the DVD Specification defines the physical encoding and organization of data for storage on read-only digital versatile disk (“DVD ROM”) media.
  • the Video portion of the DVD Specification defines a data set (“DVD-Video data set”) with which pre-recorded DVD-Video discs must conform in order to assure proper reading, decoding and playback when inserted into a media reader/decoder (“DVD-player”). More specifically, the Video portion specifies how “control data” and audio/video “presentation data” are encoded and ordered within the data set.
  • the control data determines how presentation of audio/video data will proceed when the disc is played back on a DVD-player and consists of low-level state information, data structures and instruction sets which govern what kinds of functions and user operations a DVD player can perform.
  • the process of encoding and authoring a DVD movie title includes a number of separate and distinct steps requiring similarly separate and distinct expertise.
  • After movie production raw film and/or video footage is edited, the soundtrack is edited and mixed, and a movie film or video master is created.
  • This master is subsequently digitized, encoded as video and audio streams and stored as data files.
  • the Moving Pictures Expert Group (“MPEG-1 or MPEG-2”) format is used to encode the video streams and any one or more of a number of specified formats (e.g. MPEG-1 or MPEG-2 Audio, Dolby AC-3, PCM) is used to encode the audio streams.
  • Graphic data i.e. still or moving images for creating menus and other presentation data
  • authoring guidelines, the encoded audio and video stream files and the graphic files are gathered for the authoring phase.
  • a DVD author utilizes the guidelines and file information to construct a DVD movie-title.
  • the authored movie-title determines what a user of a resultant movie title will see and hear, and what kinds of interactions the user can command when the movie title is played back by a DVD-player.
  • the author organizes the video, audio and (often author-created) subtitle files, divides the movie into segments (“chapters”), creates menus, and specifies low-level instructions.
  • the low-level instructions will set parameters, define fixed or optional jump points and their destinations and determine the order and options by which playback of still pictures, movie chapters and associated audio tracks will proceed based on the user's menu selections and/or use of other DVD-player controls (i.e. typically using a remote control device).
  • DVD-Video data is converted into a “disc image layout” file, which can be used to burn a “write-once DVD-R” disc, or can be stored onto a tape to send to a DVD-ROM manufacturing plant for creating a “master” disc, which can then be used for replication.
  • Conventional DVD authoring systems comprise a computer system running an application-specific DVD authoring program.
  • An exemplary, widely used conventional DVD authoring system is Scenarist-II.
  • Scenarist-II is essentially an attempted, nearly direct embodiment of the DVD Specification.
  • an author organizes data streams, and constructs menus and DVD structures according to the DVD Specification.
  • Top level structures i.e. up to 99 “VTSs” and “VTSMs”, a “VMG” and a VMGM” are constructed by selecting the structure type and then populating the structure with one or more low-level command segments (“program chains” or “PGCs”) including movie or menu references.
  • program chains or “program chains” or “PGCs”
  • the author also selects from among available data formats, as well as from among the numerous DVD options and requisite parameters, using a number of provided lists and other data and parameter representations. Stated alternatively, all structures and PGC parameters, capabilities and references must be fully specified by the author on an ongoing basis during authoring.
  • a further disadvantage of conventional authoring systems is that experimentation and all but necessary modification are often compromised due to time and cost considerations.
  • many DVD movie titles due to limited budget to support expensive authoring time) provide a DVD consumer with only minimal playback control, navigation flexibility and interactivity.
  • the present invention provides a data processing-system based authoring system and method that essentially removes an author from consideration of the structures and low-level instruction sets of the DVD Specification. More specifically, the present authoring system removes the ordered tasks associated with creating DVD structures and programming PGCs, and replaces them instead with an interactive, intuitive and graphical authoring environment.
  • the present invention further provides for flexible program flow in response to control events.
  • Many interactive controls, menu button destinations and other features that are possible in accordance with the DVD Specification can be specified by an author in multiple instances and according to quick, intuitive and interactively modifiable selections.
  • the invention facilitates authoring of a DVD movie title by even an inexperienced author with context sensitive responsiveness to DVD consumer instructions and other DVD player-generated events.
  • a preferred embodiment of the present invention comprises an authoring engine having an integrated interface with which an author performs the above tasks a data management engine for storing and recalling authoring information, a simulator for viewing progressive and/or comparatively authored movie titles prior to compiling, a compiler, a multiplexer and an emulator for viewing authored movie titles after compiling and multiplexing.
  • the interface provides such “user abstractions” as arranging movies (i.e. data streams including video, audio, subtitles, chapter points and other elements), creating menu layouts (i.e. menus, menu buttons and still or moving images with or without sound) and specifying connections among these arrangements and layouts, each in a simple and intuitive, yet highly flexible way.
  • Further abstractions include a network or connection-switching abstraction and a number of control and router PGC abstractions from which the connection-switching abstraction is constructed.
  • Authoring instructions entered through the interface are preferably broken down into component parts and stored by the data management engine.
  • the invoked compiler using only summary authoring information, preferably constructs a skeleton form PGC layout structure comprised of PGC abstractions corresponding to the number of authored movie elements.
  • the compiler then completes the layout structure according to author-selected and default source-target connections.
  • a source PGC abstraction is invoked in response to DVD player and/or consumer instructions.
  • the source PGC abstraction determines target information and transfers control, through necessary router PGC abstractions, to a target PGC abstraction.
  • the target in accordance with the target information, plays a movie chapter, displays a menu, or sets and/or modifies one or more DVD parameter.
  • FIG. 1 is functional block diagram generally illustrating an authoring system according to a preferred embodiment of the invention
  • FIG. 2 is a functional block diagram illustrating in more detail a preferred authoring program of the authoring system shown in FIG. 1, according to the invention
  • FIG. 3 is a screenshot of a preferred performance element arrangement interface portion of the FIG. 2 authoring program, according to the invention.
  • FIG. 4 is a blowup of the FIG. 3 screenshot showing, in more detail, a preferred authoring toolbar for accessing authoring program modules and functions;
  • FIG. 5 is a flowchart illustrating an exemplary method used by an author to create a performance element arrangement using the performance element arrangement interface portion of FIG. 3;
  • FIG. 6 a is a flowchart illustrating preferred responses of the authoring program to authoring while the performance element arrangement interface portion of FIG. 3 is active;
  • FIG. 6 b is a flowchart further illustrating preferred responses of the authoring engine to authoring while the performance element arrangement interface portion of FIG. 3 is active;
  • FIG. 7 is a screenshot of a menu element layout interface portion of the FIG. 2 authoring program, according to the invention.
  • FIG. 8 is a flowchart illustrating an exemplary method used by an author to create a menu layout using the menu element layout interface portion of FIG. 7;
  • FIG. 9 is a screenshot of a preferred connections interface portion of the FIG. 2 authoring program, according to the invention.
  • FIG. 10 is a screenshot of a preferred simulator interface portion of the FIG. 2 authoring program, according to the invention.
  • FIG. 11 is a functional block diagram of a preferred data management engine according to the invention.
  • FIG. 12 a is a flowchart showing generally the operation of a preferred compiler according to the invention.
  • FIG. 12 b is a flowchart showing how a compiler according to the invention preferably constructs a skeleton-form PGC layout structure
  • FIG. 12 c is a flowchart showing how the compiler preferably resolves source-target connections and substitutes those connections for null operations in a preferred skeleton-form PGC layout structure, according to the invention
  • FIG. 13 is a block diagram showing the format of a preferred PGC layout structure according to the invention.
  • FIG. 14 is a functional block diagram showing a preferred connection-switching abstraction according to the invention.
  • FIG. 15 is a flowchart showing a preferred operation of the connection-switching abstraction of FIG. 14, according to the invention.
  • DVD ROMS motion picture DVD ROMS
  • the types of DVD ROMS which can be authored are further in no way limited to movie titles. Other examples include but are not limited to music videos, documentaries, educational videos, corporate training, medical applications and other continuous play or interactive information which utilizes audio, video and/or other presentation data.
  • a preferred embodiment of authoring system 100 preferably comprises electrically connected hardware elements including input devices 110 , processor 115 , memory 120 , storage 125 , MPEG encoder/decoder 130 , video I/O device 135 and audio I/O device 140 .
  • Authoring system 100 further comprises software elements including operating system 150 , authoring engine 160 , data management engine 165 , compiler 170 , simulator 175 , emulator 180 and multiplexer 185 .
  • Input devices 110 can comprise any number of devices and/or device types for inputting commands and/or data, including but not limited to a keyboard, mouse, and/or speech recognition. (The use of a keyboard and a mouse are exemplified throughout the discussion that follows.)
  • FIG. 2 block diagram illustrates in greater functional detail an authoring program 201 of the preferred authoring system of FIG. 1.
  • authoring program 201 comprises authoring engine 160 (which includes interface 160 a ), data management engine 165 , compiler 170 , simulator 175 , emulator 180 , multiplexer 185 , output DVD data storage 290 and layout formatter 187 , user abstractions 285 and PGC abstractions 287 .
  • abstractions further remove such consideration without unduly limiting, for most practical purposes, authoring flexibility, PGC efficiency or interactive responsiveness of a resultant DVD-ROM, among other factors.
  • abstractions provide a framework of re-useable components that are readily adaptable to further modification for providing improvements, and for re-use in a variety other DVD and non-DVD applications.
  • Authoring program 201 is preferably implemented in C++, an object-oriented language, for reliability, updateability and other known generalized advantages of object-oriented programming. Those skilled in the computer arts will appreciate however, that despite such advantages, other environments and/or programming languages of various object-oriented and non-object-oriented types can also be utilized.
  • an author enters authoring information and instructions for activating and controlling authoring program 201 through interface portion 160 a of authoring engine 160 .
  • Authoring engine 160 interactively receives entered information and commands by correspondingly adjusting interface portion 160 a , invoking a further authoring program module, sending entered authoring information to data management engine 165 , retrieving authored information from data management engine 165 , and sending and/or retrieving presentation data from presentation data storage 203 .
  • Data management engine 165 responds to authoring engine 160 by receiving and storing authored information from authoring engine 160 and/or sending information, which it retrieves from storage (and/or from a remote source), to authoring engine 160 .
  • Simulator 175 responds to authoring engine 160 by retrieving authoring data from data management engine 165 , retrieving multiplexed presentation data from multiplexer, and simulating an authored DVD-ROM in conjunction with interface 160 a.
  • Compiler 170 responds to authoring engine 160 by retrieving authored information from data management engine 165 , compiling the information and storing the compiled information (“.ifo files”) in output DVD data storage 290 .
  • Emulator 180 responds to authoring engine 160 by retrieving compiled data from output DVD data storage 290 , retrieving multiplexed data from output DVD data storage 290 and emulating an authored DVD-ROM in conjunction with interface 160 a .
  • Multiplexer 185 responds to authoring engine 160 by receiving DVD parameter information from compiler 170 , retrieving presentation data from presentation data storage 203 and combining the retrieved information and data in accordance DVD Specification 205 .
  • Multiplexer 185 then stores the combined information and data (“DVD data stream” or “.vob file”) in output DVD data storage 290 .
  • Layout formatter 187 retrieves the .vob files and .ifo files from output DVD data storage 290 and combines these files into a single “disc image” file, which it then stores in disc image file storage 207 .
  • the disc image file can then be sent through network I/O 145 (FIG. 1) to additional apparatus for further review, processing and/or for burning one or more DVD-ROMs 207 .
  • FIGS. 3 through 10 illustrate how an interface according to the invention enables an author to assemble a movie title essentially removed from DVD programming specifications 207 (FIG. 2) of the DVD Specification.
  • Preferred interface 160 a is illustrated as an application running under a Windows95® or Windows NT® (trademark of Microsoft, Corp.) operating system.
  • FIG. 3 screenshot illustrates a preferred authoring window 300 , which an author can utilize to select an arrangement of audio-visual material including video segments (“video clips”), audio segments (“audio clips”) and subtitles (hereinafter referred to collectively as “performance data”).
  • video clips video segments
  • audio clips audio segments
  • subtitles hereinafter referred to collectively as “performance data”.
  • Authoring window 300 is divided into movable, modifiable and replaceable groupings or “views” and “panels” including presentation data panel 301 , performance assembly panel 302 , assembled elements panel 307 , log panel 308 and preview video panel 309 .
  • Assembly panel 302 is further divided into video assembly portion 320 , audio assembly portion 330 and subtitle assembly portion 340 (which are collectively referred to herein as performance view 303 ), and performance tools portion 360 .
  • Authoring window 300 also includes authoring toolbar 399 a and menu bar 399 b .
  • a single, continuous movie is being authored (i.e. a movie having component video, audio and subtitle data streams each of which begins at the start of the movie and ends at the conclusion of the movie).
  • Presentation data panel 301 provides a display listing for each presentation data file that an author has selected and loaded for use in assembling movies and menus either during a current authoring session or when continuing a re-initiated, prior authoring session.
  • File listings include file name 311 , file duration 313 , and file type 315 parameters.
  • File name 311 lists the name of a file.
  • File duration 313 lists the playback duration of files such as video data files and audio data files.
  • File type 315 alternatively lists a file format, which is generally indicated by a filename extension, or a recognized data type such as “video” data or “audio” data.
  • presentation data file listings can be used interactively during an authoring session.
  • Performance assembly view 303 of performance assembly panel 302 is used by an author to graphically and interactively assemble loaded video and/or audio data, to add and assemble subtitles, and/or to add chapter points.
  • performance view 303 includes video assembly portion 320 , audio assembly portion 330 , subtitle assembly portion 340 and chapter assembly portion 350 respectively.
  • Video assembly portion 320 is used by an author to assemble graphic objects referencing stored video data files (“video clips”). As discussed, these files, once initially selected, are listed in presentation data panel 301 .
  • Video frame thumbnails 323 a and 323 b are indicative of chapter points as will be further discussed herein.
  • Audio assembly portion 330 of performance assembly panel 302 is used by an author to receive graphic objects referencing stored audio data files (“audio clips”). As with video clips, audio clips, once selected for use, are listed in and selected from presentation data panel 301 for arrangement purposes. Up to eight (alternate language) audio data streams or audio “tracks”, exemplified by audio tracks 331 a through 331 c , are available in accordance with DVD Specification 205 (FIG. 2). Audio bars 332 a and 332 b , which represent author-arranged audio clips, have a length that reflects the playback time of the audio data represented. Separators 333 are further indicators of chapter points, as with video frame thumbnails 323 a and 323 b of video assembly portion 320 .
  • Audio tracks 332 a through 332 c further include audio encoding indicators 334 a , audio format indicators 334 b , track number indicators 335 and selected language indicators 336 , which are indicative respectively of audio data file encoding and playback format, selectable audio track number 336 and modifiable language label 335 .
  • Language labels 335 can be set by author selection or, as is expected, automatically by recognition of languages spoken in a recorded dialog of a respective audio track.
  • Subtitle assembly portion 340 provides for entry, retrieval and/or editing of up to thirty-two (alternate language) frame-based subtitle sequences, as exemplified by tracks 341 a and 341 b .
  • Exemplary subtitle frames 342 a and 342 b illustrate textual subtitle contents.
  • Subtitles are entered in a conventional manner using a conventional text editor (not shown) which is invoked by activating a subtitle frame (e.g. by menu selection or double-clicking) and/or by retrieving a pre-existing subtitle file using, for example, presentation data panel 301 .
  • subtitle portion 340 includes selectable track numbers and modifiable language label indicators.
  • Performance assembly view 303 also includes chapter assembly portion 350 , which is used by an author to graphically and interactively assemble chapter points.
  • Chapter assembly portion 350 includes wall clock 351 , reference offset clock 352 , author-assembled chapter indicators 353 a through 353 c , chapter time indicators 354 a through 354 c and reference time indicators 355 a through 355 c .
  • Wall clock 351 indicates a time within a video clip corresponding to a cursor position over chapter portion 350 of assembly panel 302 .
  • Offset clock 352 indicates the start time of a currently indicated video clip according to the reference timecode of a master tape (i.e. from which the video data file was created).
  • Chapter indicators 353 a through 353 c show chapter points (i.e.
  • Chapter time indicators 354 a through 354 c and reference time indicators 355 a through 355 c display the elapsed time of corresponding selected chapter points from the start of a movie and from the start of a clip respectively. Reference times are typically recorded (and thus can be selectively retrieved and displayed) utilizing Society of Motion Pictures and Television (“SMPTE”) timecode.
  • SMPTE Society of Motion Pictures and Television
  • Tabs 302 a provide one alternative control structure for selectively switching between initiated or “open” authoring tasks, for example, to alternate between assembling presentation data of multiple movies, for creating menu layouts, and/or for other authoring tasks.
  • Other control structures include menu options (not shown) for selectively de-coupling panels and transport enabling controls ( 362 a through 362 c and 363 a through 363 b ), and further for re-coupling in the illustrated default arrangement, in an author-selectable arrangement and/or interactively by an author.
  • Panels can be resized and/or re-arranged among other window capabilities, as will be understood by those skilled in the art in view of the discussion herein.
  • Assembly tools portion 360 of performance assembly panel 302 comprises selectable zoom controls 361 a through 361 c , preview transport buttons including stop 362 a , play 362 b and frame advance 362 c , preview transport start time selector 363 a and stop time selector 363 b , selected clip indicator 364 a and total clips indicator 364 b .
  • Zoom controls 361 a through 361 c are used respectively for increasing the viewable data range of a selected area within performance assembly view 303 of performance assembly panel 302 , for selecting a portion of performance assembly view 302 for such viewing, and for decreasing the viewable data range.
  • Transport controls 362 a through 362 c provide video playback control when previewing a video clip, audio clip and/or subtitle data using preview video panel 309 , or when selecting a representative video frame in a video clip as a preview thumbnail (as with exemplary thumbnails 323 a and 323 b ).
  • Transport control 362 a halts video, audio and/or subtitle playback
  • transport control 362 b initiates/continues playback
  • transport control 362 c provides for per-frame (“step”) viewing, as will be understood by those skilled in the art.
  • Start and end time selectors 363 a and 363 b are used respectively for selecting and monitoring video, audio and/or subtitle playback position and for setting and monitoring a playback stop time.
  • Assembled elements panel 306 provides interactive and selectable listings of authored contents of a current movie title, including but not limited to movie volume 361 , movies 362 and menus 363 .
  • Log panel 308 provides selectable progress reports and other information relating to decoding/encoding of presentation data, compiling and layout of a disk file format according to DVD disk format specifications 205 (FIG. 2). These reports are automatically created and can be accessed using log tabs exemplified by tabs 381 and 383 .
  • Preview video panel 303 selectively displays a video frame corresponding to a cursor position over assembly panel chapter portion 350 , video assembly portion 320 , audio assembly portion 330 , subtitle portion 340 and/or chapter portion 350 of assembly panel 302 .
  • preview video panel is used for previewing video data using transport controls 362 a through 362 c , start and stop time selectors 363 a and 363 b or directly invoking the panel using selection or drag-and-drop capabilities.
  • transport controls 362 a through 362 c start and stop time selectors 363 a and 363 b or directly invoking the panel using selection or drag-and-drop capabilities.
  • toolbar 399 The following toolbar chart lists the respective elements of toolbar 399 . It will be understood by those skilled in the art, in view of the discussion herein, that the toolbar elements can vary substantially and includes user-defined expandable and replaceable elements. The elements shown are provided as defaults. Label Referenced as Description 401 New volume Loads default values and adjusts the interface for a new movie title. 403 New menu Loads default values and adjusts the interface for a new menu layout. 405 New movie Loads default values and adjusts the interface for authoring a new movie. 407 Connections Switches to an existing connections interface or adjusts the interface, according to default values for initially setting connections. 413-415 Cut, copy and paste Provide conventional functions except as described herein for connections.
  • FIG. 5 flowchart illustrates, by way of example and with reference to FIGS. 3 and 4, how an interface in accordance with the invention enables an author to assemble performance data and objects without consideration for structures, commands or ordered tasks imposed by DVD programming specifications 207 (FIG. 2). Select, open and drag-and-drop, among other operations, and clicking, double-clicking, click-and-drag and other user actions associated with graphic interfaces are well known and will not be further expounded upon herein.
  • an author initiates a new project (“volume”) by selecting new volume 401 (FIG. 4).
  • the author initiates a new movie by selecting new movie 405 .
  • the author adds video and audio files to presentation data panel 301 (FIG. 3) for potential use in the volume by movies and menus.
  • the author can preview a video file in preview panel 304 by dragging its icon in presentation data panel 301 to preview panel 304 and/or, if desired, by invoking transport controls 362 a through 362 c , preview timer 393 and/or other playback-related controls.
  • step 525 the author adds a selected video clip to the currently opened movie by double-clicking its icon in presentation data panel 301 or by dragging the icon from presentation data panel 301 to video assembly portion 320 of performance view 303 .
  • step 530 the author can select a video frame thumbnail other than a first frame for reference viewing by dragging the pointer of thumbnail timer 325 a and/or by using transport controls 362 a through 362 b.
  • step 535 the author can preview an audio file by selecting its icon in presentation data panel 301 and using controls including stop 362 , play 362 b , using start time and end time selectors 363 a and 363 b and/or using other play-related controls.
  • step 540 the author adds a selected audio clip to a next available track of the currently opened movie by double-clicking its icon in presentation data panel 301 .
  • the author can add a selected audio clip to a specific audio track by dragging the icon from presentation data panel 301 to a selected track in audio assembly portion 330 of performance view 303 .
  • step 545 the author selects a language label by selecting selected language indicator 335 and selecting a listed element.
  • step 550 the author opens a subtitle frame and enters subtitle information for display in a video frame during playback of video clips.
  • step 555 the author selects a language label corresponding to the subtitle track containing the subtitle frame. If, in step 560 , the author elects to add more performance data, then the author returns to step 520 .
  • step 565 the author moves a cursor within chapter assembly portion 350 of performance view 303 to view video frames available as chapter points.
  • step 570 the author selects a chapter point. If, in step 575 , the author elects to add more chapter points, then the author continues at step 565 .
  • step 580 the author selects an audio track number and optionally selects a subtitle track number and/or playback start and/or end times before selecting play button 362 b to preview playback of the video clip and the audio clip referenced by the selected track number.
  • FIGS. 6 a and 6 b flowchart (with reference to FIGS. 2 and 3) generally illustrates responses by the preferred authoring program 201 to an author's actions according to the invention.
  • data management engine 165 FIG. 2 loads related parameters and, in step 606 , sends the parameters to authoring engine 160 . Otherwise, default parameters for a new movie are loaded in step 608 .
  • step 609 authoring engine 160 updates assembled elements panel 307 (FIG. 3) and other affected interface 160 a elements to indicate the movie parameters. If, in step 612 , the author selects presentation data files, then data management engine 165 loads and sends the respective presentation data file parameters to authoring engine 160 in step 614 , which updates presentation data panel 301 in step 616 . If, in step 622 , the author assembles one of the selected video clips, then authoring engine 160 accordingly updates video assembly portion 320 , chapter assembly portion 350 and offset clock 352 in step 624 , updates assembled elements panel 307 in step 626 , and sends the video clip parameters to data management engine 165 for storage in step 628 .
  • authoring engine 160 updates the selected track of audio assembly portion 320 in step 634 , updates assembled elements panel 307 in step 636 , and sends the audio clip parameters to data management engine 165 in step 638 .
  • authoring engine 165 updates subtitle assembly portion 340 in step 644 , updates assembled elements 307 in step 646 , and sends subtitle data and parameters to data management engine 160 in step 628 .
  • step 652 the author moves an interface 160 a pointer (e.g. a mouse pointer) within chapter assembly portion 360
  • authoring engine 160 updates wallclock 351 , finds an I-frame (i.e. a video frame that is completely described without reference to other frames) within the video clip corresponding to the mouse pointer position and displays the I-frame in preview video panel 309 .
  • step 672 the author assembles a chapter point
  • authoring engine 160 updates video assembly portion 340 and chapter assembly portion 350 in step 674 , updates assembled elements panel 307 in step 676 , and sends corresponding chapter parameters to data management engine 165 in step 678 .
  • FIG. 7 screenshot illustrates the preferred authoring window 300 of FIG. 3 with the performance data assembly panels replaced by panels for allowing an author to layout menus. More particularly, menu layout panel 701 and menu tools panel 702 are selected, sized and positioned to replace performance view 303 of FIG. 3. An exemplary menu layout including graphic and textural images is shown in menu layout panel 701 for purposes of illustration. Menu layout panel 701 is used visually and interactively by an author to retrieve, add, place and modify menu elements using menu tools panel 702 selections.
  • menu elements presentable to a DVD consumer can include a background image (“background”), an overlay image (“subpicture”) and up to twenty-five buttons.
  • author-selected background 710 is a multicolor design
  • author-selected subpicture 711 includes the textural information, Dolby Demo 1 , Dolby Demo 2 , Play Both Demos and Main Menu.
  • buttons 720 a through 720 d including button frames 721 a through 721 d are also shown.
  • Each of button numbers 722 a through 722 d is added by authoring program 201 (FIG. 2) in response to creation of a respective button for identification purposes (i.e. during authoring and for use in compilation).
  • Menu tools panel 702 comprises controls for implementing selectable menu element parameters and for selectably altering the display characteristics of elements within menu layout panel 701 during an authoring session.
  • color selection boxes 732 , 734 , 736 and 738 allow an author to choose a button outline color for display (in a consumer viewing scenario) when a button is not selected (“normal”), when a consumer points at the button (“selection”) and when a button is invoked (“action”) respectively.
  • An author can also select the opacity of the buttons for these cases using opacity sliders 733 , 735 , and 737 respectively.
  • an author can select button shapes and other characteristics by selecting one of the layout feature tabs 739 and utilizing the tool sets that appear in a respective tool set panel (not shown).
  • An author might, for example, utilize prior button shape, color, texture, opacity and/or normal, selection and activation color combinations used with a prior authoring session as either a starting point for further changes or without further modification. Other parameter combinations might also be utilized.
  • Safe area toggle 755 a allows an author to selectively display safe area indicator 755 b of menu layout panel 701 (which bounds an area that is assured to be displayed on a consumer television).
  • Display controls 751 and 752 provide for altering the characteristics indicated which, in light of the prior discussion, will be understood by those skilled in the art without further edification.
  • Layout feature tabs 749 also provide access to button ordering tools (not shown). As with other authoring parameters, an author can selectively utilize an existing order of buttons that will be traversed in a currently displayed menu when a consumer pushes directional buttons on a remote control device. An alternative order can also be set using any number of methods including but not limited to using a displayed remote control device or dragging an arrow from a starting point to an ending point. Such features and their operational characteristics, given the foregoing, will be understood by those skilled in the art without further edification.
  • FIG. 8 flowchart shows how the actions required for laying out a menu are consistent with those for assembling performance data.
  • step 805 the author selects background and subpicture files for inclusion in a menu layout. Selected files will appear in presentation data panel 301 (FIG. 7).
  • step 810 an author adds a background and a subpicture to the current menu by double-clicking on file listings, dragging the files to menu layout panel 701 or by using a similar method.
  • step 815 the author draws (i.e. drags a box) around subpicture text forming a button frame, thereby indicating button placement directly in menu layout panel 701 . If, in step 820 , more button frames remain to be added, then the author returns to step 815 .
  • step 825 the author selects a button and sets shape, size, opacity and other parameters using preset combinations and/or color selection boxes 732 , 734 , 736 and 738 , opacity sliders 733 , 735 , and 737 and/or other tools.
  • step 830 the author sets the intra-menu button order in the manner already described. If, in step 840 , more menus remain to be created, then the author selects add menu button 413 in step 840 , and returns to step 805 . New elements appear in assembled elements panel 307 and control data (i.e. relating to added elements and their layout characteristics) are sent to data management engine 165 (FIG. 2) as with performance data assembly.
  • data management engine 165 FIG. 2
  • connection view 901 includes available targets panel 903 and linking panel 905 .
  • Linking panel 905 further includes available sources portion 950 and connected targets portion 960 .
  • assembled elements panel 307 can further be used as a selection means for navigating more quickly to a desired target within available targets panel 903 .
  • an author forms a link or “available connection” simply by copying (i.e. performing a copy action or dragging) a target from available targets portion 903 to a position in connected targets portion 960 that is in the same row as a desired source in available sources view 950 .
  • an author can interactively remove, move or otherwise modify links in a conventional manner. For example, a link can be removed by deletion or a target can be moved or copied to another row in linking portion 905 .
  • any menu button can further be linked to any DVD event, including but not limited to a chapter point (e.g. chapter point 953 ), the end of chapter playback or depressing a DVD remote control device menu button 1020 and 1040 (FIG. 10).
  • a particular menu button can also be used as a target in multiple instances, as might be creatively appropriate.
  • a consumer interface can be quickly and easily created which is interactively responsive (“context sensitive”) to a consumer's actions.
  • an interface can be authored such that, for example. the conclusion of a specific chapter playback or menu button activation will determine a next chapter playback, a next menu or even a next menu wherein an author-selected menu button is highlighted.
  • FIG. 11 block diagram illustrates the structure of a preferred data management engine 165 (FIG. 1) according to the invention.
  • data management engine 165 only partially reflects the interface constructs and the structures of the DVD Specification. While reflecting interface abstractions (e.g. a movie, menu and connection based movie-title description) and DVD Specification requirements (e.g. first play jump source), data management engine 165 is further structured as a flexible network of data storage and distribution objects that also reflects other abstractions of the invention.
  • One further abstraction is a model of a DVD player, a consumer's controller and the compiled authoring instructions as an actively connection-switched network.
  • DVD program chains representative of action-oriented authoring instructions (“routers”), perform switching among available connections in response to DVD-player (i.e. consumer) instructions, thereby re-directing program flow and control.
  • Control-receiving program chains then perform more localized tasks (e.g. such as displaying a menu).
  • a router program chain resolves an available connection from a DVD-player control instruction to a receiving program chain, which again routes control or executes the instruction.
  • Further abstractions also include models of program chains for performing a common base functionality in a same or similar manner using a derived common program chain structure.
  • data management engine 165 supports authoring flexibility with regard to source-target connections that are switchable. Further, given the power of even conventional computer systems, data management engine 165 is sufficiently robust to enable the interactive operation of interface 160 a (FIG. 2) as well as minimal compilation times of compiler 170 (i.e. only milliseconds) without direct interface or DVD program specification 205 correlation. Data management engine 165 is therefore also readily adaptable to interface variations and further interfaces, as well as to compiler variations and other compilers supporting other DVD and non-DVD data storage and/or retrieval applications.
  • data management engine 165 comprises a root volume object 1100 , which manages data management engine 165 communication and storage.
  • Volume object 1100 provides an interface for communicating messaged data to and from its component parts, including title key jump source 1101 , first play jump source 1102 , media database 1103 , DVD layout properties 1104 , movies list 1105 , menus list 1106 and connections list 1107 (objects).
  • Media database 1103 further includes media files list 1130 , which stores pointers to media files referred to by the performance data arrangement as a result of authoring.
  • each of the presentation data objects i.e. movies list 1105 and menus list 1106
  • a connection sets list object 1107 contain links to other data management engine objects in the form of an object tree. More specifically, movies list 1105 is linked to movie objects movie- 1 1150 a through movie-M 1150 b , wherein M is the total number of movies authored for storage on a single DVD-ROM (“movie title”).
  • Each movie object contains a respective track list object 1151 and a respective chapter list object 1152 .
  • Each track list object 1151 contains respective track objects, track- 1 1153 a through track-T 1153 b , wherein T is the total number of tracks authored within a respective movie.
  • Track- 1 through track-T further contain clip lists, which in turn contain clip objects clip- 1 1154 a through clip-CL 1154 b (and wherein CL is the total number of clips in a given track within a given movie).
  • each clip object contains a respective clip properties object, as exemplified by clip object 1155 .
  • Menu objects are structured in a manner similar to that of movie objects.
  • Menus list object 1160 contains menu objects menu- 1 1160 a through menu-N, wherein N is the total number of menus authored for storage on a given DVD-ROM.
  • Each menu object further contains a respective button list object (e.g. object 1161 ), each button list object contains a respective button objects (button- 1 1162 a through button-B 1162 b ) and each button object is linked to a button properties object (e.g. object 1163 ).
  • B indicates a total number of buttons in a respective menu.
  • connections sets list 1107 contains respective connections lists (i.e. connect-list- 1 1170 a through connect-list-CL 1170 b ), wherein CL is the total number of connections lists authored for storage on a given DVD-ROM.
  • Each connect-list is further linked to respective connections objects (i.e. connect- 1 1171 a through connect-CN), wherein CN is the total number of connections authored to facilitate flexible program flow and control.
  • Each connections object ( 1171 a through 1171 b ) represents an action-oriented switch between a respective source and a respective target (as indicated by source-pointer variable 1172 and target-pointer variable 1173 ), as will be discussed further herein.
  • each object includes an indexed object list having a pointer to each connected dependent object (i.e. an object “further down the tree” as illustrated), as well as a totals variable.
  • the object list is updated to include new dependent objects as these objects are created (“instantiated”) to reflect, for example, an added chapter point or menu.
  • Dependent objects are similarly removed from the object list according to authoring deletions.
  • Totals variables are also updated during authoring to reflect each corresponding dependent object instantiation and deletion. Undo and redo operations are handled in a conventional manner using authoring instructions which are further conventionally stored within respective objects during each authoring session.
  • data management engine 165 breaks down or filters control data generated during authoring into its basic component parts for storage in a corresponding object's indexed data list. These basic component parts are then retrieved by authoring engine 160 , or retrieved and reconstructed into an applicable form by compiler 170 , as needed.
  • volume 1100 receives messages from authoring engine 160 in response to and reflecting each author modification of a performance assembly, menu layout or connection.
  • Volume 1100 receives the message, polls its contained-objects list for a recipient object according to the message type, and sends the message to the matching recipient object. If the message includes a reference to a title key source or a first play source (which is author-slectable in connections view 901 ), then volume 1100 sends the message respectively to either title key jump source 1101 or first play jump source 1102 .
  • title key jump source 1101 or first play jump source 1102 will accordingly store included data, delete stored data or modify stored data.
  • volume 1100 sends the message to media database 1103 . If the message contains an instruction to add a data element, then media database 1103 stores the data (which will include a pointer to a media file) in media files list 1130 . If the message contains an instruction to delete a stored pointer, then media database 1103 deletes the pointer. If the message contains an instruction to modify a stored pointer (e.g. if the file was moved to a new location), then media database 1103 locates and replaces the file pointer. Media database 1103 further updates its totals variable to reflect additions and deletions.
  • volume 1103 sends the message respectively to movies list 1105 , menus list 1106 or connections list 1107 .
  • movies list 1105 , menus list 1106 and connection sets list 1107 operates similarly to objects described thus far.
  • a movie message for example, will then progress down through the movie object tree, and, depending upon the message type, will be filtered, by track list 1152 , track- 1 1153 a and then handled a matching clip, or will be filtered by chapter list 1152 and then handled by corresponding chapter or by a clip properties object (i.e. as illustrated).
  • Menu layout data will similarly progress (as illustrated) down through the menus list tree, being handled by a matching menu properties object, and connections data will progress down the connection sets list tree until it is handled by a connection object (with reference to its source pointer or destination pointer variables).
  • a clip properties, menu key, end key, menu properties or connection object will handle the message and store included data, delete stored data or modify stored data in a similar manner as with media database object 1103 .
  • Each respective storage object stores authoring modifications in a sequentially indexed list according to its type (i.e. each object name is illustrated to reflect the data type the object stores).
  • each object name is illustrated to reflect the data type the object stores.
  • chapter points within a movie are stored from a first chapter point during playback to a final chapter point in the movie. (Playback will however, be determined by authored connections.)
  • the list accommodates added, inserted or deleted data interactively by expanding or contracting about the addition, insertion or deletion point.
  • Data management engine 165 returns stored data to authoring engine 160 in a manner essentially the reverse of that for storing data.
  • Volume 1100 upon receipt of a request for stored data, parses the request call for a data type, searches its contained objects list for a corresponding object, and forwards the request to title key jump source 1101 , first play jump source 1102 , media database 1103 , DVD layout properties list 1105 , movies list 1106 , menus list 1107 or connection sets list 1107 .
  • Movies list 1105 , menus list 1106 or connection sets list 1107 upon receipt of such a request, parses its available objects list and forwards the message correspondingly to a movie object, menu object or connection list object, and so on, until the message is received by a last recipient object. The last recipient object then retrieves the requested data and sends the data in the reverse direction of request receipt until the data reaches volume 1100 . Volume 1100 , upon receipt of the data, sends the requested data to authoring engine 160 . (Error handling and messaging functionality are otherwise handled in a conventional manner.) Data management engine 165 further responds to queries from authoring engine 160 for purposes such as totaling the number of data elements of a given type or for reviewing the contents of a particular object's data list.
  • volume 1100 parses the message, polls its available objects list and sends the message to a corresponding object. For objects linked to a tree-structure, such as movies list 1105 , menus list 1106 and connection sets list 1107 , the message is forwarded down through respective objects as already discussed, and a last recipient object will respond. If the message requests, for example, a total number of data elements of a given type, then a last recipient will either poll its totals variable or, if necessary, poll its data list for corresponding data, count the number of corresponding occurrences and return a response including the total.
  • the response is sent back through the tree structure to volume 1100 , which sends the message (including the total) to authoring engine 160 .
  • alternatives such as asynchronous multiple-messaging and, in particular, broadcast messages
  • the object types, inter-object messaging protocol and data objects utilized in data management engine 165 will be apparent to those skilled in the computer arts.
  • available object libraries from Microsoft® are utilized.
  • the preferred available objects and data lists utilize Standard Template Libraries and, in particular, Expandable Indexed Buffered/Vectored Lists.
  • Such objects provide robust response with the flexibility of expandable lists and indexed vectors for easy lookup in light of the typically small number of objects and datasets, among other factors.
  • use of an object-oriented architecture and/or the specific data structures are not essential and many conventional alternatives can be utilized.
  • FIGS. 12 a through 15 illustrate compilation according to a preferred embodiment of the invention.
  • compiler 170 (FIG. 2) preferably operates on data entered through the authoring process into the interface 160 a of authoring engine 160 (FIG. 2) and stored by data management engine 165 in three stages.
  • compiler 170 builds an intermediate skeleton-form PGC layout data structure.
  • the skeleton-form PGC layout data structure is preferably formed according to DVD program code segment (“program chain” or “PGC”) abstractions and a network abstraction according to the invention, utilizing only summary data gathered from data management engine 165 .
  • each PGC abstraction is preferably comprised of pre-determined command combinations, wherein the number of PGCs of a given type and the number of command combinations of a given type (e.g. button command combinations) are determined according to either a default value (e.g. typically one PGC) or according to the number of corresponding authored element types. (e.g. the number of menu buttons in a given menu).
  • compiler 170 resolves source-target connections as indices to source and target identifier information within data management engine 165 .
  • compiler 170 replaces the indices with identifier information which is retrieved by further querying data management engine 165 .
  • FIG. 13 illustrates a preferred PGC layout structure according to the invention. As shown, the PGC layout structure is divided into a single first play PGC space 1301 (in accordance with the DVD Specification), a single video manager (“VMGM”) domain 1302 , and one or more video title set (“VTS”) domains (e.g. 1303 and 1304 ) according to the number of movies in the movie title.
  • VMGM single video manager
  • VTS video title set
  • the preferred VMGM domain PGC layout structure includes a single title key PGC abstraction, 1321 and a single movie router PGC abstraction 1322 . Thereafter, the VMGM PGC structure includes 2 menu PGC abstractions (e.g. 1323 a and 1323 b ) for each authored menu and a single PGC abstraction for each end command (in each movie) that an author for which an author has specified a connection. As will be discussed further, each menu PGC abstraction pair includes a menu display PGC (e.g. 1323 a and 1324 a ) and a menu button router PGC (e.g. 1323 b and 1324 b ).
  • each menu PGC abstraction pair includes a menu display PGC (e.g. 1323 a and 1324 a ) and a menu button router PGC (e.g. 1323 b and 1324 b ).
  • Each VTS domain PGC layout structure (e.g. 1303 ) includes a movie display PGC 1331 and a video title set menu (“VTSM”) area 1332 .
  • VTSM area further consists of from one to four remote key router PGCs (e.g. remote key router PGCs 1332 ), depending upon the number of different remote key commands necessary, given the preferred layout structure, to realize the chapter target connections selected using connection view 901 . More specifically:
  • number of remote key router PGCs in a given VTSM total number of chapter points in a corresponding movie/25 (rounded, if a non-integer, to a next higher integer value).
  • the number of remote key router PGCs per VTSM area calculation reflects that each chapter point abstraction requires more than four commands. This in turn reflects that only one hundred twenty eight commands are allowable in a single PGC chain in accordance with the DVD programming specification 207 . While not essential, placing each abstraction completely within a separated chains and in equal numbers throughout like chains provides an efficiently symmetrical structure. Since DVD programming specifications 207 provide for up to ninety nine chapter points per movie, a maximum of four PGC abstractions is required without detrimental impact in terms of connectability. Considering the same parameters and calculations for menus however, it is seen that only twenty five menu buttons are available per menu without limitation on connectability. In practical terms however (i.e. displaying a menu on a conventional television set), this number does not present any practical detrimental effect.
  • PGC abstractions provide for other than consecutively arranged elements as an indexed list in memory 120 (FIG. 1).
  • Such alternatives include but are not limited to multiple lists, queues and/or multi-dimensional arrays stored in memory, in other media, and/or in more than one media either locally or in a distributed fashion, as with data management engine 165 .
  • Such methods can be useful where more than one authoring location or other distributed environments are utilized.
  • FIG. 12 b flowchart, with reference to FIG. 13, shows in greater detail how compiler 170 constructs a preferred PGC layout data structure in an initial skeleton form.
  • compiler 170 begins by storing a first play PGC abstraction, a title key PGC abstraction and a menu router PGC abstraction into PGC layout structure 1300 (FIG. 13) in steps 1207 , 1208 and 1209 respectively.
  • step 1213 compiler 170 queries data management engine 165 for a total number, MenusTot, of menus authored and, in step 1214 , initializes a menu pointer, MenuPtr.
  • compiler 170 queries data management engine 165 for a total number, ButtonsTot, of buttons authored in a current menu (e.g. initially, a first menu).
  • MenusTot will specify the number of pre-determined menu display and menu button router PGC abstractions (i.e. “menu PGC abstraction pairs”) that compiler 170 will add to the structure, while ButtonsTot will specify the number of commands that compiler 170 will add to each PGC of a current menu PGC abstraction pair.
  • step 1216 compiler 170 adds a menu PGC abstraction pair to VMGM PGC structure 1302 (FIG. 13) corresponding to the existence of and the number of buttons in a current authored menu (e.g. initially, a first menu). If, in step 1217 , one or more menus are not yet added to VMGM PGC structure 1301 , then in step 1218 , compiler 170 increments the menu counter and returns to step 1211 .
  • compiler 170 lacks any authoring information other than MenusTot and a respective ButtonsTot value for each current menu.
  • a similar same lack of further authoring details will also exist for other PGCs in the skeleton-form, PGC layout structure.
  • the preferred PGC and network abstractions of the invention enable compiler 170 to accommodate missing authoring details merely by inserting null values (“no-ops”) into the commands of the abstracted PGCs for unknown connection information (i.e. source- target identification information).
  • compiler 170 will preferably resolve these no-ops later in compilation.
  • These abstractions further enable menu PGCs to be created independently of movies and movie arrangements.
  • independently created/conceived menu PGCs provide extensive flexibility, allowing an author to link any available menu button of any menu to any potential target using a user-friendly interface such as the preferred connection view 901 .
  • compiler 170 proceeds to step 1219 .
  • compiler 170 queries data management engine 165 for the total number, MovieTot, of movies, which compiler 170 will use to create end commands, VTSs and VTS contents.
  • compiler 170 initializes a current movie pointer (“MoviePtr”), as well as two counters, “EndTot” and “Remote”. Compiler 170 will use EndTot to count the number of available end-of-chapter conditions in each movie for which an author has specified connections and will use Remote to count the number of available playback interruption conditions (i.e. by a user pressing a DVD-player control, typically on a remote control device) for which an author has specified connections.
  • MoviePtr current movie pointer
  • compiler 170 queries data management engine 165 for the total number of chapters (“ChapterTot”) in a current movie (e.g. initially, the first movie) and, in step 1225 , initializes a current chapter pointer (“ChapterPtr”). If, in step 1227 , the author has specified a target for the current chapter, end-of-chapter condition (i.e. using connection view 901 ), then, in step 1229 , compiler 170 increments EndTot; otherwise, compiler 170 proceeds to step 1231 .
  • ChapterTot the total number of chapters
  • a current movie e.g. initially, the first movie
  • step 1225 initializes a current chapter pointer (“ChapterPtr”). If, in step 1227 , the author has specified a target for the current chapter, end-of-chapter condition (i.e. using connection view 901 ), then, in step 1229 , compiler 170 increments EndTot; otherwise, compiler 170 proceeds to step 1231 .
  • step 1231 if, in step 1231 , the author has specified a target for the current chapter, remote-control key playback interruption (“remote-key”) condition, then, in step 1233 , compiler increments Remote; otherwise, compiler 170 proceeds to step 1235 .
  • remote-key remote-control key playback interruption
  • objects 1101 - 1163 contain actual source and target identifier information (i.e. corresponding to authored sources and targets), while the connection objects (e.g. 1171 a ) contain pointers to data stored by these objects.
  • a connection object is instantiated, including a source pointer that points to the potential source and a null-value target pointer; if an author later connects such a source, then the corresponding connection-object target pointer value is replaced by a pointer to the target object. (Subsequent editing by an author correspondingly deletes or instantiates a connection object and/or changes a source pointer or target pointer value.)
  • compiler 170 determines the existence of a connected end command by first querying each connection object for a source pointer pointing to the currently selected chapter-object. Once found, compiler 170 checks the corresponding target pointer. A null-value target pointer indicates an unconnected end command while a non-null-value target pointer indicates the existence of a connection. Remote key (i.e. “menu key” in FIG. 11) connections are similarly determined by finding an identifier in a current chapter menu key object (e.g. 1157 ), finding the corresponding source pointer in one of the connection objects, and then querying the connection object for the existence of a corresponding non-null-value target pointer.
  • menu key i.e. “menu key” in FIG. 11
  • connections-tree i.e. objects 1107 - 1173
  • a single connection object could also be used (i.e. having a single list of all connections), as could connection objects that remain despite the deletion of a source.
  • Other variations are also anticipated.
  • the current structure is however, preferred in that it provides a compilation time of only a few milliseconds, minimizes memory usage and further facilitates debugging, emulation, simulation and overall symmetry by separating these objects (and their contained data). In simulation, for example, the restrictions imposed by the DVD Specification are not controlling and simulation can therefore more efficiently utilize authoring data directly from the preferred, non-integrated data management engine 165 object structure.
  • compiler 170 increments ChapterPtr and returns to step 1227 ; otherwise, compiler 170 proceeds to step 1237 .
  • compiler 170 adds a 1-4 PGC, end command router PGC abstraction to layout structure 1300 (FIG. 13).
  • compiler 170 creates a VTS domain for the current movie (i.e. including a VTSM), adding to the VTS domain a movie display PGC in step 1239 and adding a 1-4 PGC, remote key PGC abstraction in step 1240 .
  • step 1241 If, in step 1241 , more movies remain in the current movie title (i.e. tested by comparing MovieTot with MoviePtr), then compiler increments moviePtr in step 1243 , re-initializes EndTot and Remote in step 1245 and returns to step 1223 . Otherwise, formation of a PGC layout structure in skeleton form has been completed.
  • FIG. 12 c flowchart with reference to FIG. 11 shows how compiler 170 replaces the no-ops in (skeleton form) PGC layout structure 1300 with indices (i.e. source or target pointers) to respective sources and targets, and then further replaces the indices with element identifiers.
  • compiler 170 initializes a movie pointer (“MoviePtr”) to a first movie, a chapter pointer (“ChapterPtr”) to a first chapter, a menu pointer (“MenuPtr”) to a first menu and a button pointer (“ButtonPtr”) to a first button.
  • indices i.e. source or target pointers
  • compiler 170 queries data management engine 165 (i.e. connection-objects) for a source-pointer to a next (initially, a first) author-connected button.
  • data management engine 165 i.e. connection-objects
  • the connection object checks its source-pointer for a corresponding source having a corresponding non-null-value target pointer. Since specific connection values (rather than the existence of a connection as with FIG. 12 b ) are required in this case, the query utilized results in the return of such a source-pointer.
  • compiler 170 uses the returned source-pointer to query data management engine 165 for the corresponding target-pointer and, in step 1257 , compiler 170 uses the returned indices to query data management engine 165 (e.g. via volume 1100 , menu- 1 1160 a and button list 1161 to button- 1 1162 a ) for the source and target identifiers corresponding to the source and target pointers. Then, in step 1259 , compiler 170 replaces the current button command no-ops (of the current menu PGC abstraction pair) with the returned identifiers.
  • step 1261 If, in step 1261 , more buttons remain unresolved in the current menu, then compiler 170 increments ButtonPtr in step 1263 and returns to step 1253 ; otherwise, compiler 170 proceeds to step 1265 . If, in step 1265 , menus remain unresolved, then compiler 170 increments MenuPtr and resets ButtonPtr to one in step 1267 , and then returns to step 1253 ; otherwise, compiler 170 proceeds to step 1271 .
  • compiler 170 next resolves all chapter end-command and remote-key PGC abstraction no-ops in a similar manner.
  • Compiler 170 queries data management engine 165 for a (next connected) current chapter end command source-pointer in step 1271 , uses the returned source-pointer to query data management engine 165 for a corresponding target-pointer in step 1272 , uses the pointers to query data management engine 165 for corresponding identifiers in step 1273 and replaces corresponding layout structure 1300 PGC commands with the returned identifiers in step 1274 .
  • compiler 170 queries data management engine 165 for a (next connected) current remote key source-pointer in step 1277 , uses the returned source-pointer to query data management engine 165 for a corresponding target-pointer in step 1278 , uses the pointers to query data management engine 165 for corresponding identifiers in step 1279 and replaces corresponding layout structure 1300 PGC commands with the returned identifiers in step 1280 .
  • step 1283 If, in step 1283 , more chapters remain unresolved, then compiler 170 increments the chapter pointer in step 1285 and returns to step 1271 . If instead, no chapters remain unresolved in the current movie, then compiler 170 proceeds to step 1286 .
  • step 1286 compiler 170 queries data management engine 165 (i.e. via volume 1100 to media database 1103 of FIG. 11) for all audio and video file references which reference the current movie.
  • step 1287 compiler 170 invokes multiplexer 185 , which retrieves the referenced audio and video files and outputs a resultant multiplexed data file in a conventional manner and in accordance with the DVD disk format specifications 205 (FIG. 2) of the DVD Specification.
  • compiler 170 If, in step 1288 more movies remain unresolved in layout structure 1300 , then compiler 170 resets pointers for the next movie and first chapter in step 1289 and returns to step 1271 . Otherwise, compiler 170 (in a similar manner) resolves first play, title key jump source and menu router no-ops respectively in steps 1291 , 1293 and 1295 . Then, in step 1297 , compiler 170 saves the PGC layout structure as a stored file.
  • total authored element values are maintained on an ongoing basis in a corresponding list object or the functional equivalent of a list object as already discussed.
  • movies-list object 1105 (FIG. 11), in addition to a list for containing references to all instantiated movie objects, also contains a variable for updating the total number of movies in a current movie title during the course of one or more authoring sessions.
  • button-list object 1161 contains a list of instantiated button objects (e.g. 1162 a through 1162 b ) as well as a variable indicating the total number of buttons in menu- 1 .
  • preferably pre-determined PGC abstraction types comprising preferably pre-determined command combinations and the preferred PGC layout structure are thus factors in providing a maximized authoring flexibility and efficient compilation among other benefits. Available connections remain completely flexible during authoring and, in fact, until substitutions are made for no-ops during compilation.
  • the preferred structures of PGC abstractions further add to compilation efficiency, since a skeleton can be formed with only summary authoring data, and then authoring details can be quickly added thereafter.
  • FIGS. 14 and 15, with reference to FIG. 13, illustrate a preferred network or “connection-switching” abstraction according to the invention.
  • the connection-switching abstraction while operationally active only during playback of a movie-title, is also a factor in determining PGC abstractions produced by compiler 170 as well as the movie, menu and connection movie-title abstraction utilized by data management engine 165 , interface 160 a and authoring engine 160 (FIG. 2).
  • DVD programming specifications 207 provide that PGCs can reside (along with the corresponding presentation data) in virtual structures including a first play space, a video manager (“VMGM”) and any of 99 video title sets (“VTSs”), each of which includes a video title set menu space (“VTSM”).
  • VGM video manager
  • VTSs video title sets
  • VTSM video title set menu space
  • a PGC in an initial VTS or VTSM cannot directly trigger (i.e. jump to, using a DVD jump command) a PGC stored in another VTS (or VTSM).
  • a PGC in an initial VTS can “playback a chapter of presentation data” and the conclusion of chapter playback can trigger a “followup” PGC
  • the followup PGC cannot be stored in a different VTS.
  • an initial PGC used to respond to DVD consumer menu-button activation cannot trigger a second PGC which is stored in a different VTS.
  • the format of performance data must remain constant within a given VTS. So, for example, a video data stream having one aspect ratio cannot be stored in the same VTS with another video data stream having a different aspect ratio.
  • FIG. 14 functional diagram illustrates how the preferred connection-switching abstraction provides a flexible and robust functional superstructure within which movie-title, DVD-player and interactively occurring consumer-control events are routed and executed.
  • VTS-A 1303 and VTS-A+1 exemplify any two different VTSs which have been created during compilation of a movie-title.
  • connection arrows only denote the “path” from one box (i.e. PGC abstraction, PGC or command-set) to another that can result from an author's use of connection view 901 (FIG. 9).
  • VTS-A 1303 includes movie display PGC abstraction 1331 and (within its VTSM domain 1322 ) remote key PGC abstraction 1322 a .
  • Movie display PGC abstraction 1331 comprises a single PGC which includes a command-set (“pre-command”) for selecting a chapter and initiating playback of the chapter, as well as an end command “cell command” that initiates routing upon the occurrence of an end-of-chapter-playback condition.
  • Remote menu key 1431 a which denotes an automatic DVD player function, traps and forwards a remote-key condition (i.e.
  • Remote menu key router PGC abstraction 1322 a of VTSM-A 1322 sets the authored target for a corresponding remote menu key condition (i.e. where a consumer presses a remote menu key during playback) and then routes control to a corresponding movie PGC abstraction or menu PGC abstraction within VMGM 1302 .
  • Other VTSs e.g. VTS-A+ 1 1304 ) are similarly structured for each movie within the current DVD movie-title.
  • Each remote menu key router PGC abstraction includes up to 4 PGCs to accommodate the up to 99 chapter points per movie limitation of the DVD Specification.
  • the first remote menu key PGC is always assigned as a root menu and is always a hardwired (i.e. unalterable) target for any remote menu key condition (in accordance with the DVD Specification). Therefore, in order to provide for chapter dependent routing of a remote menu key condition, a DVD-player system register must first be queried for the last played chapter. Using the returned last played chapter information, program execution is then diverted to the corresponding authored remote menu key router PGC.
  • VTSM 1302 comprises the discussed menu display PGC (e.g. 1322 ) and menu button router PGC (e.g. 1323 b ) abstraction pairs (for providing menu control), as well as the remaining router PGC abstractions. More specifically, movie router PGC abstraction 1322 acts as a playback bridge between VTS domains, receiving control from a remote key PGC in a first VTS (e.g. remote key PGC 1322 a of VTS 1303 ) and then forwarding control to a movie display PGC abstraction in second VTS (e.g. movie play PGC 1341 of VTS 1304 ). In contrast, end router PGC abstractions (e.g. 1325 and 1326 ) can be author-connected to route control from an end-of-chapter condition to either a selected chapter in a selected movie, or to a selected menu button in a selected menu.
  • end router PGC abstractions e.g. 1325 and 1326
  • end router PGC abstractions can be author-connected to route control from an end-of-
  • each end command router PGC abstraction is paired with (i.e. responds to) a specific end command such that each end-of-chapter condition for a given movie will be routed from the end command to a unique end router PGC abstraction.
  • Separate end command PGCs are required due to a flaw in current generation DVD-players whereby the last played chapter is not reliably available at the end of chapter playback. Upon correction of this flaw in future generation DVD-players however, end command routing can be accomplished in a manner consistent with remote menu key PGC abstractions (i.e. using only up to four end-command router PGCs per movie).
  • a menu display PGC abstraction (e.g. 1323 a ), when it receives control as a target and thereafter while a consumer continues to depress menu navigation buttons, effectuates control by highlighting a menu button and displaying the menu. If however, a consumer activates a menu button, then the DVD-player initiates the corresponding router PGC abstraction (e.g. 1323 b ), which routes control (i.e. according to an authored connection) to either a movie display PGC or to a menu display PGC.
  • first play PGC abstraction 1301 and title key PGC abstraction 1321 are not shown in FIG. 14. Each operates to transfer control to either a menu display PGCs or a movie display PGC as with the end command router PGCs and menu router PGCs.
  • First play PGC 1301 is stored in a separate DVD-player storage location, while title key PGC 1321 is stored in VMGM 1302 .
  • command execution delays will necessarily occur as a result of PGC execution and greater delays typically result from transfer of control between a VTS (e.g. 1303 and 1304 ) and VMGM 1302 .
  • VTS e.g. 1303 and 1304
  • VMGM 1302 e.g. 1303 and 1304
  • Another example is that a delay occurring prior to the start of a movie is observed to be more acceptable than a similar delay during navigation through what can be a large number of menus.
  • consistent delay periods for similar transitions is more acceptable than inconsistent delays for similar transitions.
  • connection-switching abstraction provides a generally symmetrical structure wherein delays are first minimized by source-router-target execution paths having a minimum number of PGCs and PGC commands.
  • Movie display PGC abstractions are further placed similarly within each VTS, while menu PGC abstraction pairs are placed similarly within VMGM 1302 . (Note that an author typically only connects the end command of a last chapter within any given movie, such that the DVD-player will continuously play all chapters with the movie before control is routed outside the corresponding VTS).
  • movie router 1322 is only used for VTS-to-VTS transitions This reflects, for example, that inconsistent delay between movie-to-movie playback and menu-to-movie playback is more acceptable than imposing further delay on menu-to-movie playback or other alternatives. (For example, further distribution and/or re-distribution of movie and/or menu routing functions have been observed to produce subjectively less acceptable results.) In addition, movie router 1322 complexity and PGC length is therefore reduced. It should be understood however, that these already short delay periods will further decrease as advances are made in DVD-player technology and that the resulting decreasing importance of such considerations might well contribute to further connection-switching abstraction variations.
  • FIG. 15 flowchart broadly illustrates the operation of preferred connection-switching abstraction 1400 .
  • first play PGC abstraction is invoked in response to insertion of a movie-title into a DVD-player.
  • the first play PGC abstraction i.e. now the current PGC abstraction
  • determines target information i.e. a target identifier and, if needed, target parameters. If, in step 1505 , a router is required, then, the current PGC abstraction routes the target information and control to a next router abstraction in step 1507 and operation returns to step 1511 . If no router is required in step 1505 , then, in step 1509 , the current PGC abstraction routes the target information to the target PGC abstraction.
  • step 1511 If, in step 1511 , the target is not a chapter (i.e. playback of a chapter is not the resultant authored event) then the target displays a menu (i.e. according to the target information) in step 1513 and the DVD-player waits for a menu button to be selected (i.e. step 1513 through 1515 act as a wait loop). If, in step 1515 a menu button is selected, then the current PGC abstraction sets authored target information for the selected button in step 1517 and operation returns to step 1505 .
  • step 1511 the target is a chapter
  • step 1525 a consumer invokes the remote menu key during playback of the chapter
  • the current PGC abstraction sets authored target information in step 1527 and operation returns to step 1505 .
  • step 1525 the remote menu key is not invoked (i.e. the chapter plays uninterrupted to its conclusion) and a chapter end command target has been authored
  • step 1535 a chapter end command target has not been authored
  • operation continues in step 1545 .
  • step 1545 If, in step 1545 , more chapters exist in the current movie, then the DVD player increments the chapter number in step 1543 and operation returns to step 1523 . If instead, in step 1545 , no more chapters remain unplayed in the current movie, then the player suspends playback and (in some models) switches itself off.
  • connection-switching abstraction 1400 will also be discussed, by way of example, with reference to FIG. 14. If, for example, an authored-connection for first play is set to begin playback of a first chapter of a first movie stored in VTS-A 1303 , then upon insertion of the DVD movie-title into a DVD-player, movie display PGC abstraction 1331 will be invoked. Movie display PGC 1331 will select and initiate playback of the first chapter.
  • the DVD-player will automatically trap the condition (i.e. box 1431 a ) and will initiate the root menu PGC of remote menu key router 1322 a of VTSM-A 1322 .
  • the root menu PGC of remote menu key router 1322 a i.e. now the current source PGC abstraction
  • movie router 1322 If movie router 1322 receives control, then upon receipt, movie router further routes control to the author-connected movie display PGC, in this case, movie display PGC 1341 of VTS-A+1 1304 , which will set and initiates playback of the author-selected chapter of the VTS-A+1 movie.
  • the DVD-player will continue to play successive chapters of the first movie until the conclusion of the last movie.
  • the DVD-player will execute cell command 1431 b (i.e. end command), which will transfer control to the PGC in end router 1325 (in VTSM 1302 ) that corresponds with the chapter last chapter played, i.e. the last chapter of VTS-A movie. (Since, in this case, only one chapter in the VTS-A movie has a connected end-of-chapter playback condition, end router 1325 will include only the one corresponding PGC.)
  • end router 1325 Upon receipt of control from end command 1431 , end router 1325 (i.e. now the current source) will set the corresponding author-connected target included in end router 1325 . Assuming the target is the VTS-A+1 movie, end router 1325 will further route control to movie display PGC 1341 of VTS-A+1 1304 , which will set and initiate playback according to the chapter of the VTS-A+1 movie set by end router 1325 . (Since control is not being routed from one VTS to another VTS, movie router 1322 is not utilized.)
  • the current source PGC of end router 1325 (i.e. again, the only PGC in end router 1325 in this example) includes an author-selected connection to menu N 1323 , then end router 1325 will set target parameters and will route control to menu display PGC 1323 a .
  • Menu display PGC 1323 a will highlight the button of menu-N 1323 according to the received target parameters and will then display menu-N 1323 .
  • Menu display PGC 1323 a will thereafter continue to be invoked by the DVD-player and will continue to highlight a button and display menu-N 1323 correspondingly with each successive uninterrupted (i.e. by consumer selection of a conflicting DVD control function) consumer depression of a navigation button.
  • menu button router PGC 1323 b will set target parameters according to the author-selected connection for the activated button, and so on.
  • Attachment A attached hereto provides computer listings of preferred PGC abstractions source code according to the invention. For clarity sake, compilation has already been completed. Stated alternatively, the no-ops initially included in the skeleton-form PGC layout structure have been replaced by indices and the indices have been resolved to source and target identifiers using the discussed compiler and compilation methods.
  • each DVD player includes 16 general purpose registers (“GPs”), and 20 system registers (“SPs”).
  • GPs general purpose registers
  • SPs system registers
  • the GPs are functionally undefined and merely “available for use” by movie title control program PGCs.
  • the SPs have fully defined purposes consistent with DVD player operation and movie title control program interfacing.
  • GPs are utilized by source PGC abstractions primarily for designating (i.e. resolving an available connection to) target PGC abstractions and for passing to the targets parameters affecting target operation.
  • the GPs are further utilized by target PGC abstractions primarily for establishing, manipulating and recalling localized variables (i.e. relating to a currently executing PGC command set).
  • a source PGC abstraction stores a value in GP 10 (“stream select”). That value will later indicate to a target PGC which audio, subtitle and/or angle stream is to be selected for movie playback.
  • GP 10 stream select
  • a further example is that, at a time prior to routing control to a target PGC abstraction, a source PGC abstraction stores a target's designation in a combination of registers GP 12 (“Movie Number”) and GP 14 (“Chapter Number”) for a movie target or GP 13 (“Button Number”) for a menu target.
  • PGC abstractions preferably utilize GP 15 to temporarily store values, typically for use within a current PGC operation.
  • register bits In most cases, only a portion of a given register (“register bits”) are utilized, while conversely, a given register may be used for multiple purposes, as seen in the utilization of GP 10 in the register chart.
  • register bits a given register may be used for multiple purposes, as seen in the utilization of GP 10 in the register chart.
  • a single register or register set can be designated in all cases for similar purposes, thereby minimizing complexities, the number of registers required and the number of commands required within a PGC without detrimentally affecting routing or parameter passing flexibility.
  • operations required to parse register data containing multiple data values are not needed.
  • Other arrangements consistent with the teachings of the invention are likely in view of other applications facilitated by these teachings and in accordance with the scope and spirit of the invention.
  • VIDEO MANAGER Program Chains

Abstract

A DVD authoring system in a processor-based system removes an author from consideration of the DVD Specification during authoring. According to a preferred embodiment, the authoring system provides an authoring engine having an interactive graphical authoring interface, a data management engine, an emulator, a compiler, a multiplexer and a simulator. Using summary authoring data, the compiler builds a skeleton-form PGC layout structure comprising control PGC abstractions and router PGC abstractions. The compiler then resolves the PGC abstractions according to source-target connections. During playback on a DVD player, the PGC abstractions form elements in a connection-switching abstraction superstructure. Accordingly, in response to DVD-consumer and other control events, a source PGC preferably determines target PGC information and then transfers control, via virtual connections through necessary router PGC abstractions, to a target PGC abstraction. The target PGC abstraction then correspondingly initiates playback of a movie chapter or displays a menu.

Description

    FIELD OF THE INVENTION
  • The present invention relates generally to mass data storage and retrieval, and more particularly to apparatus and methods for authoring a digital versatile disk. [0001]
  • BACKGROUND OF THE INVENTION
  • New mass data storage means provide not only for storing greater amounts of multimedia and other information, but also for more interactive data retrieval by consumers. For example, one such storage means is espoused by the “DVD Specification for Read-Only Disc, Physical, File Format and Video Specifications” (DVD Consortium 1997), hereinafter referred to as the “DVD Specification”. Other examples include further DVD-related technologies (e.g. DVD-Audio, DVD-RAM, etc.) as well as non-DVD technologies. [0002]
  • The Physical and File System portions of the DVD Specification defines the physical encoding and organization of data for storage on read-only digital versatile disk (“DVD ROM”) media. The Video portion of the DVD Specification defines a data set (“DVD-Video data set”) with which pre-recorded DVD-Video discs must conform in order to assure proper reading, decoding and playback when inserted into a media reader/decoder (“DVD-player”). More specifically, the Video portion specifies how “control data” and audio/video “presentation data” are encoded and ordered within the data set. The control data determines how presentation of audio/video data will proceed when the disc is played back on a DVD-player and consists of low-level state information, data structures and instruction sets which govern what kinds of functions and user operations a DVD player can perform. [0003]
  • The DVD Specification is further hereby fully incorporated herein by reference as if repeated verbatim immediately hereinafter. [0004]
  • The process of encoding and authoring a DVD movie title, as currently practiced, includes a number of separate and distinct steps requiring similarly separate and distinct expertise. After movie production, raw film and/or video footage is edited, the soundtrack is edited and mixed, and a movie film or video master is created. This master is subsequently digitized, encoded as video and audio streams and stored as data files. In accordance with the DVD Specification, the Moving Pictures Expert Group (“MPEG-1 or MPEG-2”) format is used to encode the video streams and any one or more of a number of specified formats (e.g. MPEG-1 or MPEG-2 Audio, Dolby AC-3, PCM) is used to encode the audio streams. Graphic data (i.e. still or moving images for creating menus and other presentation data) is also created and stored in conventional graphic files. Finally, authoring guidelines, the encoded audio and video stream files and the graphic files are gathered for the authoring phase. [0005]
  • During authoring, a DVD author utilizes the guidelines and file information to construct a DVD movie-title. The authored movie-title determines what a user of a resultant movie title will see and hear, and what kinds of interactions the user can command when the movie title is played back by a DVD-player. The author organizes the video, audio and (often author-created) subtitle files, divides the movie into segments (“chapters”), creates menus, and specifies low-level instructions. The low-level instructions will set parameters, define fixed or optional jump points and their destinations and determine the order and options by which playback of still pictures, movie chapters and associated audio tracks will proceed based on the user's menu selections and/or use of other DVD-player controls (i.e. typically using a remote control device). [0006]
  • Once authored, the author's organizational decisions, subtitle, chapter and menu decisions, and low-level instructions are compiled into control data, and the encoded video, audio and subtitle streams, as well as the graphic data files, are multiplexed into presentation data, which together constitute the DVD-Video data set. Finally, this DVD-Video data is converted into a “disc image layout” file, which can be used to burn a “write-once DVD-R” disc, or can be stored onto a tape to send to a DVD-ROM manufacturing plant for creating a “master” disc, which can then be used for replication. [0007]
  • Conventional DVD authoring systems comprise a computer system running an application-specific DVD authoring program. An exemplary, widely used conventional DVD authoring system is Scenarist-II. [0008]
  • Scenarist-II is essentially an attempted, nearly direct embodiment of the DVD Specification. Using Scenarist-II, an author organizes data streams, and constructs menus and DVD structures according to the DVD Specification. Top level structures (i.e. up to 99 “VTSs” and “VTSMs”, a “VMG” and a VMGM”) are constructed by selecting the structure type and then populating the structure with one or more low-level command segments (“program chains” or “PGCs”) including movie or menu references. Throughout this process, the author also selects from among available data formats, as well as from among the numerous DVD options and requisite parameters, using a number of provided lists and other data and parameter representations. Stated alternatively, all structures and PGC parameters, capabilities and references must be fully specified by the author on an ongoing basis during authoring. [0009]
  • Unfortunately, the DVD Specification is very complex, as are the conventional programs that attempt to embody it. Available options are extensive, as are the numerous listings of options and parameters within programs such as Scenarist-II. The potential combinations of structures and PGCs are also extensive, and many such combinations will not ultimately result in functional DVD movie-titles. [0010]
  • To make matters more difficult, the PGCs (i.e. basic and frequent constructs of the DVD Specification and therefore of programs such as Scenarist-II) are counter-intuitive. Often, many PGCs (including both operative and so-called “dummy” PGCs) must be used in specific combinations to provide a DVD consumer with even the most basic control capabilities. Limitations imposed by the DVD Specification must also be considered throughout the process. Thus, errors in planning and/or programming might well remain undetected until after a substantial number of structures are formed. In addition, given the sheer number of structures, PGCs, commands, options and parameters involved, identifying, locating and correcting errors is difficult and time-consuming. [0011]
  • Consequently, while providing extensive low-level control and an expedient authoring-to-compilation correspondence, conventional authoring systems require an extensive expertise with regard to both the DVD Specification and the authoring system itself. Further, even assuming such expertise, authoring is extremely time-consuming and is therefore typically very costly. In addition, even assuming resolution of other factors, the time and expertise required would likely prevent authoring of even a preliminary movie-title as a directorial aid during the movie production process. [0012]
  • A further disadvantage of conventional authoring systems is that experimentation and all but necessary modification are often compromised due to time and cost considerations. Thus, many DVD movie titles (due to limited budget to support expensive authoring time) provide a DVD consumer with only minimal playback control, navigation flexibility and interactivity. [0013]
  • Accordingly, there is a need for an authoring system and method that enables DVD authoring in a manner removed from the structures and low-level instruction sets of the DVD Specification, thereby reducing the time, cost and complexity of the authoring process. [0014]
  • There is further a need for such an apparatus and method whereby authoring can be conducted in an intuitive manner, while maximizing flexibility and access to features provided by or otherwise not in conflict with the DVD Specification. [0015]
  • SUMMARY OF THE INVENTION
  • The present invention provides a data processing-system based authoring system and method that essentially removes an author from consideration of the structures and low-level instruction sets of the DVD Specification. More specifically, the present authoring system removes the ordered tasks associated with creating DVD structures and programming PGCs, and replaces them instead with an interactive, intuitive and graphical authoring environment. [0016]
  • The present invention further provides for flexible program flow in response to control events. Many interactive controls, menu button destinations and other features that are possible in accordance with the DVD Specification can be specified by an author in multiple instances and according to quick, intuitive and interactively modifiable selections. Thus the invention facilitates authoring of a DVD movie title by even an inexperienced author with context sensitive responsiveness to DVD consumer instructions and other DVD player-generated events. [0017]
  • Accordingly, a preferred embodiment of the present invention comprises an authoring engine having an integrated interface with which an author performs the above tasks a data management engine for storing and recalling authoring information, a simulator for viewing progressive and/or comparatively authored movie titles prior to compiling, a compiler, a multiplexer and an emulator for viewing authored movie titles after compiling and multiplexing. [0018]
  • Included within and facilitating the ability of these elements to remove an author from the DVD Specification are several abstractions. Preferably, the interface provides such “user abstractions” as arranging movies (i.e. data streams including video, audio, subtitles, chapter points and other elements), creating menu layouts (i.e. menus, menu buttons and still or moving images with or without sound) and specifying connections among these arrangements and layouts, each in a simple and intuitive, yet highly flexible way. Further abstractions include a network or connection-switching abstraction and a number of control and router PGC abstractions from which the connection-switching abstraction is constructed. [0019]
  • Authoring instructions entered through the interface are preferably broken down into component parts and stored by the data management engine. The invoked compiler, using only summary authoring information, preferably constructs a skeleton form PGC layout structure comprised of PGC abstractions corresponding to the number of authored movie elements. The compiler then completes the layout structure according to author-selected and default source-target connections. [0020]
  • Further according to a preferred embodiment, during playback of a resultant DVD movie title, a source PGC abstraction is invoked in response to DVD player and/or consumer instructions. The source PGC abstraction determines target information and transfers control, through necessary router PGC abstractions, to a target PGC abstraction. The target, in accordance with the target information, plays a movie chapter, displays a menu, or sets and/or modifies one or more DVD parameter. [0021]
  • These and other objects, advantages and benefits of the present invention will become apparent from the drawings and specification that follow. [0022]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is functional block diagram generally illustrating an authoring system according to a preferred embodiment of the invention; [0023]
  • FIG. 2 is a functional block diagram illustrating in more detail a preferred authoring program of the authoring system shown in FIG. 1, according to the invention; [0024]
  • FIG. 3 is a screenshot of a preferred performance element arrangement interface portion of the FIG. 2 authoring program, according to the invention; [0025]
  • FIG. 4 is a blowup of the FIG. 3 screenshot showing, in more detail, a preferred authoring toolbar for accessing authoring program modules and functions; [0026]
  • FIG. 5 is a flowchart illustrating an exemplary method used by an author to create a performance element arrangement using the performance element arrangement interface portion of FIG. 3; [0027]
  • FIG. 6[0028] a is a flowchart illustrating preferred responses of the authoring program to authoring while the performance element arrangement interface portion of FIG. 3 is active;
  • FIG. 6[0029] b is a flowchart further illustrating preferred responses of the authoring engine to authoring while the performance element arrangement interface portion of FIG. 3 is active;
  • FIG. 7 is a screenshot of a menu element layout interface portion of the FIG. 2 authoring program, according to the invention; [0030]
  • FIG. 8 is a flowchart illustrating an exemplary method used by an author to create a menu layout using the menu element layout interface portion of FIG. 7; [0031]
  • FIG. 9 is a screenshot of a preferred connections interface portion of the FIG. 2 authoring program, according to the invention; [0032]
  • FIG. 10 is a screenshot of a preferred simulator interface portion of the FIG. 2 authoring program, according to the invention; [0033]
  • FIG. 11 is a functional block diagram of a preferred data management engine according to the invention; [0034]
  • FIG. 12[0035] a is a flowchart showing generally the operation of a preferred compiler according to the invention;
  • FIG. 12[0036] b is a flowchart showing how a compiler according to the invention preferably constructs a skeleton-form PGC layout structure;
  • FIG. 12[0037] c is a flowchart showing how the compiler preferably resolves source-target connections and substitutes those connections for null operations in a preferred skeleton-form PGC layout structure, according to the invention;
  • FIG. 13 is a block diagram showing the format of a preferred PGC layout structure according to the invention; [0038]
  • FIG. 14 is a functional block diagram showing a preferred connection-switching abstraction according to the invention; [0039]
  • FIG. 15 is a flowchart showing a preferred operation of the connection-switching abstraction of FIG. 14, according to the invention; [0040]
  • DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT
  • For clarity sake, the discussed embodiment herein will be directed primarily toward storage according to the DVD Specification, and more specifically at authoring motion picture DVD ROMS (“movie titles”). It should be understood, however, that the present invention relates to a broad range of program and data storage and retrieval utilizing a variety of media, only a subset of which will be specifically identified herein. The types of DVD ROMS which can be authored are further in no way limited to movie titles. Other examples include but are not limited to music videos, documentaries, educational videos, corporate training, medical applications and other continuous play or interactive information which utilizes audio, video and/or other presentation data. [0041]
  • As illustrated in FIG. 1, a preferred embodiment of [0042] authoring system 100 according to the invention preferably comprises electrically connected hardware elements including input devices 110, processor 115, memory 120, storage 125, MPEG encoder/decoder 130, video I/O device 135 and audio I/O device 140. Authoring system 100 further comprises software elements including operating system 150, authoring engine 160, data management engine 165, compiler 170, simulator 175, emulator 180 and multiplexer 185.
  • It will be apparent to those skilled in the art that several variations of the authoring system elements are contemplated and within the intended scope of the present invention. For example, given processor and computer performance variations and ongoing technological advancements, hardware elements such as MPEG encoder/[0043] decoder 130 may be embodied in software or in a combination of hardware and software. Similarly, software elements such as multiplexer 185 may be embodied in hardware or in a combination of hardware and software. Further, while connection to other computing devices is indicated as network I/O 145, wired, wireless, modem and/or other connection or connections to other computing devices (including but not limited to local area networks, wide area networks and the internet) might be utilized. A further example is that the use of distributed processing, multiple site viewing, information forwarding, collaboration, remote information retrieval and merging, and related capabilities are each contemplated. Various operating systems and data processing systems can also be utilized, however at least a conventional multitasking operating system such as Windows95® or Windows NT® (trademarks of Microsoft, Inc.) running on an IBM® (trademark to International Business Machines) compatible computer is preferred and will be presumed for the discussion herein. Input devices 110 can comprise any number of devices and/or device types for inputting commands and/or data, including but not limited to a keyboard, mouse, and/or speech recognition. (The use of a keyboard and a mouse are exemplified throughout the discussion that follows.)
  • The FIG. 2 block diagram illustrates in greater functional detail an [0044] authoring program 201 of the preferred authoring system of FIG. 1. As shown, authoring program 201 comprises authoring engine 160 (which includes interface 160 a), data management engine 165, compiler 170, simulator 175, emulator 180, multiplexer 185, output DVD data storage 290 and layout formatter 187, user abstractions 285 and PGC abstractions 287.
  • It is discovered through examination of the features supported by DVD players that the basic presentation data types and consumer controls available to an author of DVD movie titles can be generalized and then reconstructed as abstracted user data types and controls. Further, despite the complexity of the DVD Specification, many of its programming constructs can also be generalized and then reconstructed as abstracted DVD program chains (“PGCs”) operating within a further abstracted network or connection-switching superstructure. [0045] Such user abstractions 285 and PGC abstractions 287, as integrated into authoring engine 160, data management engine 165 and compiler 170 (as illustrated), effectively remove an author using authoring program 201 from consideration of DVD Specification 205. These abstractions further remove such consideration without unduly limiting, for most practical purposes, authoring flexibility, PGC efficiency or interactive responsiveness of a resultant DVD-ROM, among other factors. In addition, these abstractions provide a framework of re-useable components that are readily adaptable to further modification for providing improvements, and for re-use in a variety other DVD and non-DVD applications.
  • [0046] Authoring program 201 is preferably implemented in C++, an object-oriented language, for reliability, updateability and other known generalized advantages of object-oriented programming. Those skilled in the computer arts will appreciate however, that despite such advantages, other environments and/or programming languages of various object-oriented and non-object-oriented types can also be utilized.
  • Operationally, an author enters authoring information and instructions for activating and controlling [0047] authoring program 201 through interface portion 160 a of authoring engine 160. Authoring engine 160 interactively receives entered information and commands by correspondingly adjusting interface portion 160 a, invoking a further authoring program module, sending entered authoring information to data management engine 165, retrieving authored information from data management engine 165, and sending and/or retrieving presentation data from presentation data storage 203. Data management engine 165 responds to authoring engine 160 by receiving and storing authored information from authoring engine 160 and/or sending information, which it retrieves from storage (and/or from a remote source), to authoring engine 160. Simulator 175 responds to authoring engine 160 by retrieving authoring data from data management engine 165, retrieving multiplexed presentation data from multiplexer, and simulating an authored DVD-ROM in conjunction with interface 160 a.
  • [0048] Compiler 170 responds to authoring engine 160 by retrieving authored information from data management engine 165, compiling the information and storing the compiled information (“.ifo files”) in output DVD data storage 290. Emulator 180 responds to authoring engine 160 by retrieving compiled data from output DVD data storage 290, retrieving multiplexed data from output DVD data storage 290 and emulating an authored DVD-ROM in conjunction with interface 160 a. Multiplexer 185 responds to authoring engine 160 by receiving DVD parameter information from compiler 170, retrieving presentation data from presentation data storage 203 and combining the retrieved information and data in accordance DVD Specification 205. Multiplexer 185 then stores the combined information and data (“DVD data stream” or “.vob file”) in output DVD data storage 290. Layout formatter 187 retrieves the .vob files and .ifo files from output DVD data storage 290 and combines these files into a single “disc image” file, which it then stores in disc image file storage 207. The disc image file can then be sent through network I/O 145 (FIG. 1) to additional apparatus for further review, processing and/or for burning one or more DVD-ROMs 207.
  • FIGS. 3 through 10, with reference to FIG. 2, illustrate how an interface according to the invention enables an author to assemble a movie title essentially removed from DVD programming specifications [0049] 207 (FIG. 2) of the DVD Specification. Preferred interface 160 a is illustrated as an application running under a Windows95® or Windows NT® (trademark of Microsoft, Corp.) operating system.
  • The FIG. 3 screenshot illustrates a [0050] preferred authoring window 300, which an author can utilize to select an arrangement of audio-visual material including video segments (“video clips”), audio segments (“audio clips”) and subtitles (hereinafter referred to collectively as “performance data”).
  • [0051] Authoring window 300 is divided into movable, modifiable and replaceable groupings or “views” and “panels” including presentation data panel 301, performance assembly panel 302, assembled elements panel 307, log panel 308 and preview video panel 309. Assembly panel 302 is further divided into video assembly portion 320, audio assembly portion 330 and subtitle assembly portion 340 (which are collectively referred to herein as performance view 303), and performance tools portion 360. Authoring window 300 also includes authoring toolbar 399 a and menu bar 399 b. For clarity sake, the following discussion assumes that a single, continuous movie is being authored (i.e. a movie having component video, audio and subtitle data streams each of which begins at the start of the movie and ends at the conclusion of the movie).
  • [0052] Presentation data panel 301 provides a display listing for each presentation data file that an author has selected and loaded for use in assembling movies and menus either during a current authoring session or when continuing a re-initiated, prior authoring session. File listings include file name 311, file duration 313, and file type 315 parameters. File name 311 lists the name of a file. File duration 313 lists the playback duration of files such as video data files and audio data files. File type 315 alternatively lists a file format, which is generally indicated by a filename extension, or a recognized data type such as “video” data or “audio” data. As will be further discussed, presentation data file listings can be used interactively during an authoring session.
  • [0053] Performance assembly view 303 of performance assembly panel 302 is used by an author to graphically and interactively assemble loaded video and/or audio data, to add and assemble subtitles, and/or to add chapter points. For these purposes, performance view 303 includes video assembly portion 320, audio assembly portion 330, subtitle assembly portion 340 and chapter assembly portion 350 respectively. Video assembly portion 320 is used by an author to assemble graphic objects referencing stored video data files (“video clips”). As discussed, these files, once initially selected, are listed in presentation data panel 301. Video frame thumbnails 323 a and 323 b are indicative of chapter points as will be further discussed herein.
  • [0054] Audio assembly portion 330 of performance assembly panel 302 is used by an author to receive graphic objects referencing stored audio data files (“audio clips”). As with video clips, audio clips, once selected for use, are listed in and selected from presentation data panel 301 for arrangement purposes. Up to eight (alternate language) audio data streams or audio “tracks”, exemplified by audio tracks 331 a through 331 c, are available in accordance with DVD Specification 205 (FIG. 2). Audio bars 332 a and 332 b, which represent author-arranged audio clips, have a length that reflects the playback time of the audio data represented. Separators 333 are further indicators of chapter points, as with video frame thumbnails 323 a and 323 b of video assembly portion 320. Audio tracks 332 a through 332 c further include audio encoding indicators 334 a, audio format indicators 334 b, track number indicators 335 and selected language indicators 336, which are indicative respectively of audio data file encoding and playback format, selectable audio track number 336 and modifiable language label 335. Language labels 335 can be set by author selection or, as is expected, automatically by recognition of languages spoken in a recorded dialog of a respective audio track.
  • [0055] Subtitle assembly portion 340 provides for entry, retrieval and/or editing of up to thirty-two (alternate language) frame-based subtitle sequences, as exemplified by tracks 341 a and 341 b. Exemplary subtitle frames 342 a and 342 b illustrate textual subtitle contents. Subtitles are entered in a conventional manner using a conventional text editor (not shown) which is invoked by activating a subtitle frame (e.g. by menu selection or double-clicking) and/or by retrieving a pre-existing subtitle file using, for example, presentation data panel 301. As with audio assembly portion 330, subtitle portion 340 includes selectable track numbers and modifiable language label indicators.
  • [0056] Performance assembly view 303 also includes chapter assembly portion 350, which is used by an author to graphically and interactively assemble chapter points. Chapter assembly portion 350 includes wall clock 351, reference offset clock 352, author-assembled chapter indicators 353 a through 353 c, chapter time indicators 354 a through 354 c and reference time indicators 355 a through 355 c. Wall clock 351 indicates a time within a video clip corresponding to a cursor position over chapter portion 350 of assembly panel 302. Offset clock 352 indicates the start time of a currently indicated video clip according to the reference timecode of a master tape (i.e. from which the video data file was created). Chapter indicators 353 a through 353 c show chapter points (i.e. points to which a DVD-ROM consumer can advance) as arranged during authoring. Chapter time indicators 354 a through 354 c and reference time indicators 355 a through 355 c display the elapsed time of corresponding selected chapter points from the start of a movie and from the start of a clip respectively. Reference times are typically recorded (and thus can be selectively retrieved and displayed) utilizing Society of Motion Pictures and Television (“SMPTE”) timecode.
  • As noted earlier, [0057] performance assembly panel 302 and the other panels and views of authoring window 300 are replaceable. Tabs 302 a provide one alternative control structure for selectively switching between initiated or “open” authoring tasks, for example, to alternate between assembling presentation data of multiple movies, for creating menu layouts, and/or for other authoring tasks. Other control structures include menu options (not shown) for selectively de-coupling panels and transport enabling controls (362 a through 362 c and 363 a through 363 b), and further for re-coupling in the illustrated default arrangement, in an author-selectable arrangement and/or interactively by an author. Panels can be resized and/or re-arranged among other window capabilities, as will be understood by those skilled in the art in view of the discussion herein.
  • [0058] Assembly tools portion 360 of performance assembly panel 302 comprises selectable zoom controls 361 a through 361 c, preview transport buttons including stop 362 a, play 362 b and frame advance 362 c, preview transport start time selector 363 a and stop time selector 363 b, selected clip indicator 364 a and total clips indicator 364 b. Zoom controls 361 a through 361 c are used respectively for increasing the viewable data range of a selected area within performance assembly view 303 of performance assembly panel 302, for selecting a portion of performance assembly view 302 for such viewing, and for decreasing the viewable data range. Transport controls 362 a through 362 c provide video playback control when previewing a video clip, audio clip and/or subtitle data using preview video panel 309, or when selecting a representative video frame in a video clip as a preview thumbnail (as with exemplary thumbnails 323 a and 323 b). Transport control 362 a halts video, audio and/or subtitle playback, transport control 362 b initiates/continues playback and transport control 362 c provides for per-frame (“step”) viewing, as will be understood by those skilled in the art. Start and end time selectors 363 a and 363 b are used respectively for selecting and monitoring video, audio and/or subtitle playback position and for setting and monitoring a playback stop time.
  • Assembled elements panel [0059] 306 provides interactive and selectable listings of authored contents of a current movie title, including but not limited to movie volume 361, movies 362 and menus 363.
  • [0060] Log panel 308 provides selectable progress reports and other information relating to decoding/encoding of presentation data, compiling and layout of a disk file format according to DVD disk format specifications 205 (FIG. 2). These reports are automatically created and can be accessed using log tabs exemplified by tabs 381 and 383.
  • [0061] Preview video panel 303 selectively displays a video frame corresponding to a cursor position over assembly panel chapter portion 350, video assembly portion 320, audio assembly portion 330, subtitle portion 340 and/or chapter portion 350 of assembly panel 302. In addition, preview video panel is used for previewing video data using transport controls 362 a through 362 c, start and stop time selectors 363 a and 363 b or directly invoking the panel using selection or drag-and-drop capabilities. (As will be understood by those skilled in the art, encoded video and audio files are decoded and buffered, as needed, for playback in a conventional manner using MPEG encoder/decoder 130 of FIG. 1.)
  • The following toolbar chart lists the respective elements of toolbar [0062] 399. It will be understood by those skilled in the art, in view of the discussion herein, that the toolbar elements can vary substantially and includes user-defined expandable and replaceable elements. The elements shown are provided as defaults.
    Label Referenced as Description
    401 New volume Loads default values and adjusts the
    interface for a new movie title.
    403 New menu Loads default values and adjusts the
    interface for a new menu layout.
    405 New movie Loads default values and adjusts the
    interface for authoring a new movie.
    407 Connections Switches to an existing connections
    interface or adjusts the interface,
    according to default values for initially
    setting connections.
    413-415 Cut, copy and paste Provide conventional functions except
    as described herein for connections.
    421 Compile start Initiating compiler operation.
    423 Compiler stop Interrupts compiler operation.
    425 DVD Layout Invokes DVD Disk layout operation.
    427 Write Tape Provides for output of multiplexed
    data stream to tape.
    429 Simulator Invokes simulator
  • The FIG. 5 flowchart illustrates, by way of example and with reference to FIGS. 3 and 4, how an interface in accordance with the invention enables an author to assemble performance data and objects without consideration for structures, commands or ordered tasks imposed by DVD programming specifications [0063] 207 (FIG. 2). Select, open and drag-and-drop, among other operations, and clicking, double-clicking, click-and-drag and other user actions associated with graphic interfaces are well known and will not be further expounded upon herein.
  • As shown, in [0064] step 505, an author initiates a new project (“volume”) by selecting new volume 401 (FIG. 4). In step 510, the author initiates a new movie by selecting new movie 405. In step 515, the author adds video and audio files to presentation data panel 301 (FIG. 3) for potential use in the volume by movies and menus. In step 520, the author can preview a video file in preview panel 304 by dragging its icon in presentation data panel 301 to preview panel 304 and/or, if desired, by invoking transport controls 362 a through 362 c, preview timer 393 and/or other playback-related controls. In step 525, the author adds a selected video clip to the currently opened movie by double-clicking its icon in presentation data panel 301 or by dragging the icon from presentation data panel 301 to video assembly portion 320 of performance view 303. In step 530, the author can select a video frame thumbnail other than a first frame for reference viewing by dragging the pointer of thumbnail timer 325 a and/or by using transport controls 362 a through 362 b.
  • In [0065] step 535, the author can preview an audio file by selecting its icon in presentation data panel 301 and using controls including stop 362, play 362 b, using start time and end time selectors 363 a and 363 b and/or using other play-related controls. In step 540, the author adds a selected audio clip to a next available track of the currently opened movie by double-clicking its icon in presentation data panel 301. (Alternatively, the author can add a selected audio clip to a specific audio track by dragging the icon from presentation data panel 301 to a selected track in audio assembly portion 330 of performance view 303. In step 545, the author selects a language label by selecting selected language indicator 335 and selecting a listed element.
  • In [0066] step 550, the author opens a subtitle frame and enters subtitle information for display in a video frame during playback of video clips. In step 555, the author selects a language label corresponding to the subtitle track containing the subtitle frame. If, in step 560, the author elects to add more performance data, then the author returns to step 520.
  • In [0067] step 565, the author moves a cursor within chapter assembly portion 350 of performance view 303 to view video frames available as chapter points. In step 570, the author selects a chapter point. If, in step 575, the author elects to add more chapter points, then the author continues at step 565.
  • In [0068] step 580, the author selects an audio track number and optionally selects a subtitle track number and/or playback start and/or end times before selecting play button 362 b to preview playback of the video clip and the audio clip referenced by the selected track number.
  • The FIGS. 6[0069] a and 6 b flowchart (with reference to FIGS. 2 and 3) generally illustrates responses by the preferred authoring program 201 to an author's actions according to the invention. As shown, if in step 602 an author selects a movie assembled in a prior authoring session, then, in step 604, data management engine 165 (FIG. 2) loads related parameters and, in step 606, sends the parameters to authoring engine 160. Otherwise, default parameters for a new movie are loaded in step 608.
  • In [0070] step 609, authoring engine 160 updates assembled elements panel 307 (FIG. 3) and other affected interface 160 a elements to indicate the movie parameters. If, in step 612, the author selects presentation data files, then data management engine 165 loads and sends the respective presentation data file parameters to authoring engine 160 in step 614, which updates presentation data panel 301 in step 616. If, in step 622, the author assembles one of the selected video clips, then authoring engine 160 accordingly updates video assembly portion 320, chapter assembly portion 350 and offset clock 352 in step 624, updates assembled elements panel 307 in step 626, and sends the video clip parameters to data management engine 165 for storage in step 628. Similarly, if the author assembles one of the selected audio clips in step 632, then authoring engine 160 updates the selected track of audio assembly portion 320 in step 634, updates assembled elements panel 307 in step 636, and sends the audio clip parameters to data management engine 165 in step 638. If, in step 642, the author assembles subtitle data, then authoring engine 165 updates subtitle assembly portion 340 in step 644, updates assembled elements 307 in step 646, and sends subtitle data and parameters to data management engine 160 in step 628.
  • If, in [0071] step 652, the author moves an interface 160 a pointer (e.g. a mouse pointer) within chapter assembly portion 360, then in step 654 authoring engine 160 updates wallclock 351, finds an I-frame (i.e. a video frame that is completely described without reference to other frames) within the video clip corresponding to the mouse pointer position and displays the I-frame in preview video panel 309. If, in step 672, the author assembles a chapter point, then authoring engine 160 updates video assembly portion 340 and chapter assembly portion 350 in step 674, updates assembled elements panel 307 in step 676, and sends corresponding chapter parameters to data management engine 165 in step 678.
  • The FIG. 7 screenshot illustrates the [0072] preferred authoring window 300 of FIG. 3 with the performance data assembly panels replaced by panels for allowing an author to layout menus. More particularly, menu layout panel 701 and menu tools panel 702 are selected, sized and positioned to replace performance view 303 of FIG. 3. An exemplary menu layout including graphic and textural images is shown in menu layout panel 701 for purposes of illustration. Menu layout panel 701 is used visually and interactively by an author to retrieve, add, place and modify menu elements using menu tools panel 702 selections.
  • In accordance with the DVD Specification, menu elements presentable to a DVD consumer can include a background image (“background”), an overlay image (“subpicture”) and up to twenty-five buttons. For the present example, author-selected [0073] background 710 is a multicolor design, and author-selected subpicture 711 includes the textural information, Dolby Demo 1, Dolby Demo 2, Play Both Demos and Main Menu. Four author-created buttons 720 a through 720 d including button frames 721 a through 721 d are also shown. Each of button numbers 722 a through 722 d is added by authoring program 201 (FIG. 2) in response to creation of a respective button for identification purposes (i.e. during authoring and for use in compilation).
  • [0074] Menu tools panel 702 comprises controls for implementing selectable menu element parameters and for selectably altering the display characteristics of elements within menu layout panel 701 during an authoring session. For example, color selection boxes 732, 734, 736 and 738 allow an author to choose a button outline color for display (in a consumer viewing scenario) when a button is not selected (“normal”), when a consumer points at the button (“selection”) and when a button is invoked (“action”) respectively. An author can also select the opacity of the buttons for these cases using opacity sliders 733, 735, and 737 respectively. Similarly, an author can select button shapes and other characteristics by selecting one of the layout feature tabs 739 and utilizing the tool sets that appear in a respective tool set panel (not shown). An author might, for example, utilize prior button shape, color, texture, opacity and/or normal, selection and activation color combinations used with a prior authoring session as either a starting point for further changes or without further modification. Other parameter combinations might also be utilized. Safe area toggle 755 a allows an author to selectively display safe area indicator 755 b of menu layout panel 701 (which bounds an area that is assured to be displayed on a consumer television). Display controls 751 and 752 provide for altering the characteristics indicated which, in light of the prior discussion, will be understood by those skilled in the art without further edification.
  • Layout feature tabs [0075] 749 also provide access to button ordering tools (not shown). As with other authoring parameters, an author can selectively utilize an existing order of buttons that will be traversed in a currently displayed menu when a consumer pushes directional buttons on a remote control device. An alternative order can also be set using any number of methods including but not limited to using a displayed remote control device or dragging an arrow from a starting point to an ending point. Such features and their operational characteristics, given the foregoing, will be understood by those skilled in the art without further edification.
  • The FIG. 8 flowchart shows how the actions required for laying out a menu are consistent with those for assembling performance data. Once again, authoring is visually and interactively achieved without requiring any specific ordering of actions. Therefore, as with performance data assembly, the specific ordering of actions is given for purposes of illustration only. [0076]
  • As shown, in [0077] step 805, the author selects background and subpicture files for inclusion in a menu layout. Selected files will appear in presentation data panel 301 (FIG. 7). In step 810, an author adds a background and a subpicture to the current menu by double-clicking on file listings, dragging the files to menu layout panel 701 or by using a similar method. In step 815, the author draws (i.e. drags a box) around subpicture text forming a button frame, thereby indicating button placement directly in menu layout panel 701. If, in step 820, more button frames remain to be added, then the author returns to step 815.
  • In [0078] step 825, the author selects a button and sets shape, size, opacity and other parameters using preset combinations and/or color selection boxes 732, 734, 736 and 738, opacity sliders 733, 735, and 737 and/or other tools. In step 830, the author sets the intra-menu button order in the manner already described. If, in step 840, more menus remain to be created, then the author selects add menu button 413 in step 840, and returns to step 805. New elements appear in assembled elements panel 307 and control data (i.e. relating to added elements and their layout characteristics) are sent to data management engine 165 (FIG. 2) as with performance data assembly.
  • The FIG. 9 screenshot illustrates a further selectable configuration of the FIG. 3 interface for linking together presentation data, menu layouts, buttons within menu layouts and available control functions of a DVD player. As shown, [0079] connection view 901 includes available targets panel 903 and linking panel 905. Linking panel 905 further includes available sources portion 950 and connected targets portion 960. While connections view 901 is active, assembled elements panel 307 can further be used as a selection means for navigating more quickly to a desired target within available targets panel 903.
  • Operationally, an author forms a link or “available connection” simply by copying (i.e. performing a copy action or dragging) a target from [0080] available targets portion 903 to a position in connected targets portion 960 that is in the same row as a desired source in available sources view 950. As with assembling a movie and menu layouts, an author can interactively remove, move or otherwise modify links in a conventional manner. For example, a link can be removed by deletion or a target can be moved or copied to another row in linking portion 905.
  • As with arranging performance data and forming menu layouts, an author has easy and complete flexibility in adding interactivity to a consumer's viewing experience. A DVD movie can be authored, for example, such that entry and exit from a menu can be controlled by any available event. Referring also to the FIG. 10 [0081] simulator window 1000, any menu button can further be linked to any DVD event, including but not limited to a chapter point (e.g. chapter point 953), the end of chapter playback or depressing a DVD remote control device menu button 1020 and 1040 (FIG. 10). A particular menu button can also be used as a target in multiple instances, as might be creatively appropriate.
  • Thus, for example, a consumer interface can be quickly and easily created which is interactively responsive (“context sensitive”) to a consumer's actions. Stated alternatively, an interface can be authored such that, for example. the conclusion of a specific chapter playback or menu button activation will determine a next chapter playback, a next menu or even a next menu wherein an author-selected menu button is highlighted. [0082]
  • Among the reasons for such ease and flexibility is that, contrary to conventionally authored DVD movies, program chains are not created during the authoring process. Similarly, connections specified during authoring are not permanent (“hard wired”). Rather, program chains are not created until compilation and available connections are not fully resolved until playback, each according to additional abstractions of the invention, as will be further discussed herein. [0083]
  • The FIG. 11 block diagram illustrates the structure of a preferred data management engine [0084] 165 (FIG. 1) according to the invention. As illustrated, data management engine 165 only partially reflects the interface constructs and the structures of the DVD Specification. While reflecting interface abstractions (e.g. a movie, menu and connection based movie-title description) and DVD Specification requirements (e.g. first play jump source), data management engine 165 is further structured as a flexible network of data storage and distribution objects that also reflects other abstractions of the invention.
  • One further abstraction, for example, is a model of a DVD player, a consumer's controller and the compiled authoring instructions as an actively connection-switched network. Within this network, DVD program chains representative of action-oriented authoring instructions (“routers”), perform switching among available connections in response to DVD-player (i.e. consumer) instructions, thereby re-directing program flow and control. Control-receiving program chains then perform more localized tasks (e.g. such as displaying a menu). Stated alternatively, a router program chain resolves an available connection from a DVD-player control instruction to a receiving program chain, which again routes control or executes the instruction. Further abstractions also include models of program chains for performing a common base functionality in a same or similar manner using a derived common program chain structure. [0085]
  • Such an arrangement provides real world flexibility and efficiency. For example, [0086] data management engine 165 supports authoring flexibility with regard to source-target connections that are switchable. Further, given the power of even conventional computer systems, data management engine 165 is sufficiently robust to enable the interactive operation of interface 160 a (FIG. 2) as well as minimal compilation times of compiler 170 (i.e. only milliseconds) without direct interface or DVD program specification 205 correlation. Data management engine 165 is therefore also readily adaptable to interface variations and further interfaces, as well as to compiler variations and other compilers supporting other DVD and non-DVD data storage and/or retrieval applications.
  • Referring again to FIG. 11 and with further reference to FIG. 2, [0087] data management engine 165 comprises a root volume object 1100, which manages data management engine 165 communication and storage. Volume object 1100 provides an interface for communicating messaged data to and from its component parts, including title key jump source 1101, first play jump source 1102, media database 1103, DVD layout properties 1104, movies list 1105, menus list 1106 and connections list 1107 (objects). Media database 1103 further includes media files list 1130, which stores pointers to media files referred to by the performance data arrangement as a result of authoring.
  • In addition, each of the presentation data objects (i.e. movies list [0088] 1105 and menus list 1106) and a connection sets list object 1107 contain links to other data management engine objects in the form of an object tree. More specifically, movies list 1105 is linked to movie objects movie-1 1150 a through movie-M 1150 b, wherein M is the total number of movies authored for storage on a single DVD-ROM (“movie title”). Each movie object contains a respective track list object 1151 and a respective chapter list object 1152. Each track list object 1151 contains respective track objects, track-1 1153 a through track-T 1153 b, wherein T is the total number of tracks authored within a respective movie. Track-1 through track-T further contain clip lists, which in turn contain clip objects clip-1 1154 a through clip-CL 1154 b (and wherein CL is the total number of clips in a given track within a given movie). Finally, each clip object contains a respective clip properties object, as exemplified by clip object 1155.
  • Menu objects are structured in a manner similar to that of movie objects. Menus list object [0089] 1160 contains menu objects menu-1 1160 a through menu-N, wherein N is the total number of menus authored for storage on a given DVD-ROM. Each menu object further contains a respective button list object (e.g. object 1161), each button list object contains a respective button objects (button-1 1162 a through button-B 1162 b) and each button object is linked to a button properties object (e.g. object 1163). B indicates a total number of buttons in a respective menu.
  • Finally, connections sets [0090] list 1107 contains respective connections lists (i.e. connect-list-1 1170 a through connect-list-CL 1170 b), wherein CL is the total number of connections lists authored for storage on a given DVD-ROM. Each connect-list is further linked to respective connections objects (i.e. connect-1 1171 a through connect-CN), wherein CN is the total number of connections authored to facilitate flexible program flow and control. Each connections object (1171 a through 1171 b) represents an action-oriented switch between a respective source and a respective target (as indicated by source-pointer variable 1172 and target-pointer variable 1173), as will be discussed further herein.
  • Where applicable, each object includes an indexed object list having a pointer to each connected dependent object (i.e. an object “further down the tree” as illustrated), as well as a totals variable. The object list is updated to include new dependent objects as these objects are created (“instantiated”) to reflect, for example, an added chapter point or menu. Dependent objects are similarly removed from the object list according to authoring deletions. Totals variables are also updated during authoring to reflect each corresponding dependent object instantiation and deletion. Undo and redo operations are handled in a conventional manner using authoring instructions which are further conventionally stored within respective objects during each authoring session. [0091]
  • Using this structure, [0092] data management engine 165 breaks down or filters control data generated during authoring into its basic component parts for storage in a corresponding object's indexed data list. These basic component parts are then retrieved by authoring engine 160, or retrieved and reconstructed into an applicable form by compiler 170, as needed.
  • Operationally, [0093] data management engine 165 receives messages from authoring engine 160 in response to and reflecting each author modification of a performance assembly, menu layout or connection. Volume 1100 receives the message, polls its contained-objects list for a recipient object according to the message type, and sends the message to the matching recipient object. If the message includes a reference to a title key source or a first play source (which is author-slectable in connections view 901), then volume 1100 sends the message respectively to either title key jump source 1101 or first play jump source 1102. Upon receipt, title key jump source 1101 or first play jump source 1102 will accordingly store included data, delete stored data or modify stored data.
  • If a received message includes a reference to a video, audio or subtitle file, then [0094] volume 1100 sends the message to media database 1103. If the message contains an instruction to add a data element, then media database 1103 stores the data (which will include a pointer to a media file) in media files list 1130. If the message contains an instruction to delete a stored pointer, then media database 1103 deletes the pointer. If the message contains an instruction to modify a stored pointer (e.g. if the file was moved to a new location), then media database 1103 locates and replaces the file pointer. Media database 1103 further updates its totals variable to reflect additions and deletions.
  • If a received message type relates to the content of a movie arrangement, menu layout or connection, then [0095] volume 1103 sends the message respectively to movies list 1105, menus list 1106 or connections list 1107. Each of movies list 1105, menus list 1106 and connection sets list 1107 operates similarly to objects described thus far. Each parses through a received message for included control information, sends the message respectively to a corresponding movie object, menu object or connections list and adjusts its totals variable as needed.
  • A movie message, for example, will then progress down through the movie object tree, and, depending upon the message type, will be filtered, by [0096] track list 1152, track-1 1153 a and then handled a matching clip, or will be filtered by chapter list 1152 and then handled by corresponding chapter or by a clip properties object (i.e. as illustrated). Menu layout data will similarly progress (as illustrated) down through the menus list tree, being handled by a matching menu properties object, and connections data will progress down the connection sets list tree until it is handled by a connection object (with reference to its source pointer or destination pointer variables). Upon receipt, a clip properties, menu key, end key, menu properties or connection object will handle the message and store included data, delete stored data or modify stored data in a similar manner as with media database object 1103.
  • Each respective storage object stores authoring modifications in a sequentially indexed list according to its type (i.e. each object name is illustrated to reflect the data type the object stores). Thus, for example, chapter points within a movie are stored from a first chapter point during playback to a final chapter point in the movie. (Playback will however, be determined by authored connections.) The list accommodates added, inserted or deleted data interactively by expanding or contracting about the addition, insertion or deletion point. [0097]
  • While other data structures might be utilized, interactively adjusted indexed lists and limited object definitions, using even a minimally equipped computer, are sufficiently robust to accommodate an author's input rate, given the relatively small amount of data stored in each list. Alternative structures that might be used, for example, include but are not limited to a lesser number of objects each containing a less restricted dataset and/or the addition of summary objects for storing total numbers of menus, buttons and system other status and/or statistical information. Such arrangements however, have been found to add complexity with only moderate gains in application-specific operational characteristics. Alternative data structures, including but not limited to multi-dimensional arrays, multiple queues and linked lists stored locally and/or remotely, present similar tradeoffs. [0098]
  • [0099] Data management engine 165 returns stored data to authoring engine 160 in a manner essentially the reverse of that for storing data. Volume 1100, upon receipt of a request for stored data, parses the request call for a data type, searches its contained objects list for a corresponding object, and forwards the request to title key jump source 1101, first play jump source 1102, media database 1103, DVD layout properties list 1105, movies list 1106, menus list 1107 or connection sets list 1107. Movies list 1105, menus list 1106 or connection sets list 1107, upon receipt of such a request, parses its available objects list and forwards the message correspondingly to a movie object, menu object or connection list object, and so on, until the message is received by a last recipient object. The last recipient object then retrieves the requested data and sends the data in the reverse direction of request receipt until the data reaches volume 1100. Volume 1100, upon receipt of the data, sends the requested data to authoring engine 160. (Error handling and messaging functionality are otherwise handled in a conventional manner.) Data management engine 165 further responds to queries from authoring engine 160 for purposes such as totaling the number of data elements of a given type or for reviewing the contents of a particular object's data list. As with data storage and retrieval above, data management engine 165 receives a call from authoring engine 160 requesting information. Volume 1100 parses the message, polls its available objects list and sends the message to a corresponding object. For objects linked to a tree-structure, such as movies list 1105, menus list 1106 and connection sets list 1107, the message is forwarded down through respective objects as already discussed, and a last recipient object will respond. If the message requests, for example, a total number of data elements of a given type, then a last recipient will either poll its totals variable or, if necessary, poll its data list for corresponding data, count the number of corresponding occurrences and return a response including the total. The response is sent back through the tree structure to volume 1100, which sends the message (including the total) to authoring engine 160. Given the relatively small number of objects, alternatives (such as asynchronous multiple-messaging and, in particular, broadcast messages) add some expediency, but with unnecessarily added complexity.
  • As with the authoring engine interface objects, the object types, inter-object messaging protocol and data objects utilized in [0100] data management engine 165, in view of the disclosure herein, will be apparent to those skilled in the computer arts. Preferably, available object libraries from Microsoft® are utilized. For example, the preferred available objects and data lists utilize Standard Template Libraries and, in particular, Expandable Indexed Buffered/Vectored Lists. Such objects provide robust response with the flexibility of expandable lists and indexed vectors for easy lookup in light of the typically small number of objects and datasets, among other factors. As noted earlier however, use of an object-oriented architecture and/or the specific data structures are not essential and many conventional alternatives can be utilized.
  • As discussed, the particular arrangement of objects of the preferred [0101] data management engine 165 is preferred according to its flexibility, performance and adaptability among other factors. It should be noted therefore, that any number of modifications will be apparent according to the teachings and within the spirit and scope of the invention.
  • FIGS. 12[0102] a through 15, with reference to FIGS. 2 and 11, illustrate compilation according to a preferred embodiment of the invention.
  • As shown generally in FIG. 12[0103] a, compiler 170 (FIG. 2) preferably operates on data entered through the authoring process into the interface 160 a of authoring engine 160 (FIG. 2) and stored by data management engine 165 in three stages. In step 1201, compiler 170 builds an intermediate skeleton-form PGC layout data structure. The skeleton-form PGC layout data structure is preferably formed according to DVD program code segment (“program chain” or “PGC”) abstractions and a network abstraction according to the invention, utilizing only summary data gathered from data management engine 165. Broadly stated, each PGC abstraction is preferably comprised of pre-determined command combinations, wherein the number of PGCs of a given type and the number of command combinations of a given type (e.g. button command combinations) are determined according to either a default value (e.g. typically one PGC) or according to the number of corresponding authored element types. (e.g. the number of menu buttons in a given menu).
  • In [0104] step 1203, compiler 170 resolves source-target connections as indices to source and target identifier information within data management engine 165. In step 1205, compiler 170 replaces the indices with identifier information which is retrieved by further querying data management engine 165.
  • FIG. 13 illustrates a preferred PGC layout structure according to the invention. As shown, the PGC layout structure is divided into a single first play PGC space [0105] 1301 (in accordance with the DVD Specification), a single video manager (“VMGM”) domain 1302, and one or more video title set (“VTS”) domains (e.g. 1303 and 1304) according to the number of movies in the movie title.
  • The preferred VMGM domain PGC layout structure includes a single title key PGC abstraction, [0106] 1321 and a single movie router PGC abstraction 1322. Thereafter, the VMGM PGC structure includes 2 menu PGC abstractions (e.g. 1323 a and 1323 b) for each authored menu and a single PGC abstraction for each end command (in each movie) that an author for which an author has specified a connection. As will be discussed further, each menu PGC abstraction pair includes a menu display PGC (e.g. 1323 a and 1324 a) and a menu button router PGC (e.g. 1323 b and 1324 b).
  • Each VTS domain PGC layout structure (e.g. [0107] 1303) includes a movie display PGC 1331 and a video title set menu (“VTSM”) area 1332. VTSM area further consists of from one to four remote key router PGCs (e.g. remote key router PGCs 1332), depending upon the number of different remote key commands necessary, given the preferred layout structure, to realize the chapter target connections selected using connection view 901. More specifically:
  • number of remote key router PGCs in a given VTSM=total number of chapter points in a corresponding movie/25 (rounded, if a non-integer, to a next higher integer value). [0108]
  • In each case, an attempt has been made to minimize the number of PGCs without detrimental impact on flexibility. Thus, while the number of PGCs is as indicated above, complete authoring flexibility with regard to connecting menus, menu buttons and presentation data without concern for limitations of the DVD programming specification [0109] 207 (FIG. 2) is provided. Further, the practical impact of resultant limitations is also minimized.
  • For example, the number of remote key router PGCs per VTSM area calculation reflects that each chapter point abstraction requires more than four commands. This in turn reflects that only one hundred twenty eight commands are allowable in a single PGC chain in accordance with the [0110] DVD programming specification 207. While not essential, placing each abstraction completely within a separated chains and in equal numbers throughout like chains provides an efficiently symmetrical structure. Since DVD programming specifications 207 provide for up to ninety nine chapter points per movie, a maximum of four PGC abstractions is required without detrimental impact in terms of connectability. Considering the same parameters and calculations for menus however, it is seen that only twenty five menu buttons are available per menu without limitation on connectability. In practical terms however (i.e. displaying a menu on a conventional television set), this number does not present any practical detrimental effect.
  • The use of consecutive locations in the PGC layout structure greatly simplifies the task of finding specific PGCs relating to specific data types and further for resolving PGC connections. A movie title PGC will always be the first element, a movie router PGC will always be the second element, and a display menu PGC can always be located merely by adding a known constant plus two times the menu number, etc. [0111]
  • Those skilled in the art will appreciate however, in view of the discussion herein, that the PGC abstractions provide for other than consecutively arranged elements as an indexed list in memory [0112] 120 (FIG. 1). Such alternatives, for example, include but are not limited to multiple lists, queues and/or multi-dimensional arrays stored in memory, in other media, and/or in more than one media either locally or in a distributed fashion, as with data management engine 165. Such methods can be useful where more than one authoring location or other distributed environments are utilized.
  • The FIG. 12[0113] b flowchart, with reference to FIG. 13, shows in greater detail how compiler 170 constructs a preferred PGC layout data structure in an initial skeleton form. As shown, compiler 170 begins by storing a first play PGC abstraction, a title key PGC abstraction and a menu router PGC abstraction into PGC layout structure 1300 (FIG. 13) in steps 1207, 1208 and 1209 respectively. Next, in step 1213, compiler 170 queries data management engine 165 for a total number, MenusTot, of menus authored and, in step 1214, initializes a menu pointer, MenuPtr. In step 1215, compiler 170 queries data management engine 165 for a total number, ButtonsTot, of buttons authored in a current menu (e.g. initially, a first menu). MenusTot will specify the number of pre-determined menu display and menu button router PGC abstractions (i.e. “menu PGC abstraction pairs”) that compiler 170 will add to the structure, while ButtonsTot will specify the number of commands that compiler 170 will add to each PGC of a current menu PGC abstraction pair.
  • In [0114] step 1216, compiler 170 adds a menu PGC abstraction pair to VMGM PGC structure 1302 (FIG. 13) corresponding to the existence of and the number of buttons in a current authored menu (e.g. initially, a first menu). If, in step 1217, one or more menus are not yet added to VMGM PGC structure 1301, then in step 1218, compiler 170 increments the menu counter and returns to step 1211.
  • At this point, [0115] compiler 170 lacks any authoring information other than MenusTot and a respective ButtonsTot value for each current menu. A similar same lack of further authoring details will also exist for other PGCs in the skeleton-form, PGC layout structure. The preferred PGC and network abstractions of the invention however, enable compiler 170 to accommodate missing authoring details merely by inserting null values (“no-ops”) into the commands of the abstracted PGCs for unknown connection information (i.e. source- target identification information). As discussed, compiler 170 will preferably resolve these no-ops later in compilation. These abstractions further enable menu PGCs to be created independently of movies and movie arrangements. Thus, independently created/conceived menu PGCs provide extensive flexibility, allowing an author to link any available menu button of any menu to any potential target using a user-friendly interface such as the preferred connection view 901.
  • If instead, in [0116] step 1217, all authored menu layouts are reflected by corresponding menu PGC abstraction pairs, then compiler 170 proceeds to step 1219. In step 1219, compiler 170 queries data management engine 165 for the total number, MovieTot, of movies, which compiler 170 will use to create end commands, VTSs and VTS contents. In step 1221, compiler 170 initializes a current movie pointer (“MoviePtr”), as well as two counters, “EndTot” and “Remote”. Compiler 170 will use EndTot to count the number of available end-of-chapter conditions in each movie for which an author has specified connections and will use Remote to count the number of available playback interruption conditions (i.e. by a user pressing a DVD-player control, typically on a remote control device) for which an author has specified connections.
  • In [0117] step 1223, compiler 170 queries data management engine 165 for the total number of chapters (“ChapterTot”) in a current movie (e.g. initially, the first movie) and, in step 1225, initializes a current chapter pointer (“ChapterPtr”). If, in step 1227, the author has specified a target for the current chapter, end-of-chapter condition (i.e. using connection view 901), then, in step 1229, compiler 170 increments EndTot; otherwise, compiler 170 proceeds to step 1231. Similarly, if, in step 1231, the author has specified a target for the current chapter, remote-control key playback interruption (“remote-key”) condition, then, in step 1233, compiler increments Remote; otherwise, compiler 170 proceeds to step 1235.
  • The existence of authored connections is determined similarly for both end-of-chapter and remote-key conditions. Preferably, objects [0118] 1101-1163 (FIG. 11) contain actual source and target identifier information (i.e. corresponding to authored sources and targets), while the connection objects (e.g. 1171 a) contain pointers to data stored by these objects. Stated alternatively, as a new potential source is authored, a connection object is instantiated, including a source pointer that points to the potential source and a null-value target pointer; if an author later connects such a source, then the corresponding connection-object target pointer value is replaced by a pointer to the target object. (Subsequent editing by an author correspondingly deletes or instantiates a connection object and/or changes a source pointer or target pointer value.)
  • Therefore, [0119] compiler 170 determines the existence of a connected end command by first querying each connection object for a source pointer pointing to the currently selected chapter-object. Once found, compiler 170 checks the corresponding target pointer. A null-value target pointer indicates an unconnected end command while a non-null-value target pointer indicates the existence of a connection. Remote key (i.e. “menu key” in FIG. 11) connections are similarly determined by finding an identifier in a current chapter menu key object (e.g. 1157), finding the corresponding source pointer in one of the connection objects, and then querying the connection object for the existence of a corresponding non-null-value target pointer.
  • Those skilled in the art, in view of the foregoing, will appreciate that considerable variation of the above structure will provide the same, related or similar functionality. For example, identifiers, labels and even complete movie tree, menu tree and/or other objects could well be contained within or duplicated within the connections-tree (i.e. objects [0120] 1107-1173). A single connection object could also be used (i.e. having a single list of all connections), as could connection objects that remain despite the deletion of a source. Other variations are also anticipated. The current structure is however, preferred in that it provides a compilation time of only a few milliseconds, minimizes memory usage and further facilitates debugging, emulation, simulation and overall symmetry by separating these objects (and their contained data). In simulation, for example, the restrictions imposed by the DVD Specification are not controlling and simulation can therefore more efficiently utilize authoring data directly from the preferred, non-integrated data management engine 165 object structure.
  • Returning now to FIG. 12[0121] b, if, in step 1235, more chapters remain in the current movie, then compiler 170 increments ChapterPtr and returns to step 1227; otherwise, compiler 170 proceeds to step 1237. In step 1237, compiler 170 adds a 1-4 PGC, end command router PGC abstraction to layout structure 1300 (FIG. 13). In step 1238, compiler 170 creates a VTS domain for the current movie (i.e. including a VTSM), adding to the VTS domain a movie display PGC in step 1239 and adding a 1-4 PGC, remote key PGC abstraction in step 1240.
  • If, in [0122] step 1241, more movies remain in the current movie title (i.e. tested by comparing MovieTot with MoviePtr), then compiler increments moviePtr in step 1243, re-initializes EndTot and Remote in step 1245 and returns to step 1223. Otherwise, formation of a PGC layout structure in skeleton form has been completed.
  • The FIG. 12[0123] c flowchart with reference to FIG. 11 shows how compiler 170 replaces the no-ops in (skeleton form) PGC layout structure 1300 with indices (i.e. source or target pointers) to respective sources and targets, and then further replaces the indices with element identifiers. In step 1251, compiler 170 initializes a movie pointer (“MoviePtr”) to a first movie, a chapter pointer (“ChapterPtr”) to a first chapter, a menu pointer (“MenuPtr”) to a first menu and a button pointer (“ButtonPtr”) to a first button.
  • In [0124] step 1253, compiler 170 queries data management engine 165 (i.e. connection-objects) for a source-pointer to a next (initially, a first) author-connected button. As discussed earlier, the connection object checks its source-pointer for a corresponding source having a corresponding non-null-value target pointer. Since specific connection values (rather than the existence of a connection as with FIG. 12b) are required in this case, the query utilized results in the return of such a source-pointer. In step 1255, compiler 170 uses the returned source-pointer to query data management engine 165 for the corresponding target-pointer and, in step 1257, compiler 170 uses the returned indices to query data management engine 165 (e.g. via volume 1100, menu-1 1160 a and button list 1161 to button-1 1162 a) for the source and target identifiers corresponding to the source and target pointers. Then, in step 1259, compiler 170 replaces the current button command no-ops (of the current menu PGC abstraction pair) with the returned identifiers.
  • If, in [0125] step 1261, more buttons remain unresolved in the current menu, then compiler 170 increments ButtonPtr in step 1263 and returns to step 1253; otherwise, compiler 170 proceeds to step 1265. If, in step 1265, menus remain unresolved, then compiler 170 increments MenuPtr and resets ButtonPtr to one in step 1267, and then returns to step 1253; otherwise, compiler 170 proceeds to step 1271.
  • Having resolved and replaced all menu button no-ops, [0126] compiler 170 next resolves all chapter end-command and remote-key PGC abstraction no-ops in a similar manner. Compiler 170 queries data management engine 165 for a (next connected) current chapter end command source-pointer in step 1271, uses the returned source-pointer to query data management engine 165 for a corresponding target-pointer in step 1272, uses the pointers to query data management engine 165 for corresponding identifiers in step 1273 and replaces corresponding layout structure 1300 PGC commands with the returned identifiers in step 1274. Similarly, compiler 170 queries data management engine 165 for a (next connected) current remote key source-pointer in step 1277, uses the returned source-pointer to query data management engine 165 for a corresponding target-pointer in step 1278, uses the pointers to query data management engine 165 for corresponding identifiers in step 1279 and replaces corresponding layout structure 1300 PGC commands with the returned identifiers in step 1280.
  • If, in [0127] step 1283, more chapters remain unresolved, then compiler 170 increments the chapter pointer in step 1285 and returns to step 1271. If instead, no chapters remain unresolved in the current movie, then compiler 170 proceeds to step 1286. In step 1286, compiler 170 queries data management engine 165 (i.e. via volume 1100 to media database 1103 of FIG. 11) for all audio and video file references which reference the current movie. In step 1287, compiler 170 invokes multiplexer 185, which retrieves the referenced audio and video files and outputs a resultant multiplexed data file in a conventional manner and in accordance with the DVD disk format specifications 205 (FIG. 2) of the DVD Specification.
  • If, in [0128] step 1288 more movies remain unresolved in layout structure 1300, then compiler 170 resets pointers for the next movie and first chapter in step 1289 and returns to step 1271. Otherwise, compiler 170 (in a similar manner) resolves first play, title key jump source and menu router no-ops respectively in steps 1291, 1293 and 1295. Then, in step 1297, compiler 170 saves the PGC layout structure as a stored file.
  • With regard to FIG. 12[0129] b and 12 c, total authored element values (i.e. such as MenusTot and ButtonsTot) are maintained on an ongoing basis in a corresponding list object or the functional equivalent of a list object as already discussed. For example, movies-list object 1105 (FIG. 11), in addition to a list for containing references to all instantiated movie objects, also contains a variable for updating the total number of movies in a current movie title during the course of one or more authoring sessions. Similarly, button-list object 1161 contains a list of instantiated button objects (e.g. 1162 a through 1162 b) as well as a variable indicating the total number of buttons in menu-1. Other list objects similarly include ongoing totals which are updated during the course of authoring. One reason is that some early-generation DVD-players limit the available memory space for storing PGCs, which correspondingly limits the number of elements (e.g. menus, menu buttons and chapters) that the invention permits to be authored. These limits and/or current totals are therefore selectively conveyed to an author through interface 160 a. Ongoing totals are also beneficial in that no time periods are required during compilation for calculating such totals.
  • As will be understood by those skilled in the art however, total values might become unimportant for other than compilation purposes as DVD-players are manufactured with increasing resources in conformance with the current DVD Specification, in accordance with expanded DVD capabilities and in accordance with the requirements of non-DVD systems. In such cases, totals can alternatively be calculated during compilation. [0130]
  • The use of preferably pre-determined PGC abstraction types comprising preferably pre-determined command combinations and the preferred PGC layout structure are thus factors in providing a maximized authoring flexibility and efficient compilation among other benefits. Available connections remain completely flexible during authoring and, in fact, until substitutions are made for no-ops during compilation. The preferred structures of PGC abstractions further add to compilation efficiency, since a skeleton can be formed with only summary authoring data, and then authoring details can be quickly added thereafter. [0131]
  • FIGS. 14 and 15, with reference to FIG. 13, illustrate a preferred network or “connection-switching” abstraction according to the invention. The connection-switching abstraction, while operationally active only during playback of a movie-title, is also a factor in determining PGC abstractions produced by [0132] compiler 170 as well as the movie, menu and connection movie-title abstraction utilized by data management engine 165, interface 160 a and authoring engine 160 (FIG. 2).
  • Details of the DVD Specification including but not limited to multiplexed data stream and DVD player configurations, data formats, protocols and loading of data are known to those skilled in the art and will therefore be discussed only to the extent required for an understanding of the invention. [0133]
  • DVD programming specifications [0134] 207 (FIG. 2) provide that PGCs can reside (along with the corresponding presentation data) in virtual structures including a first play space, a video manager (“VMGM”) and any of 99 video title sets (“VTSs”), each of which includes a video title set menu space (“VTSM”). Among the limitations of this virtual structure however, is first that a PGC in an initial VTS or VTSM cannot directly trigger (i.e. jump to, using a DVD jump command) a PGC stored in another VTS (or VTSM). For example, while a PGC in an initial VTS can “playback a chapter of presentation data” and the conclusion of chapter playback can trigger a “followup” PGC, the followup PGC cannot be stored in a different VTS. Similarly, an initial PGC used to respond to DVD consumer menu-button activation cannot trigger a second PGC which is stored in a different VTS. A further relevant limitation is that the format of performance data must remain constant within a given VTS. So, for example, a video data stream having one aspect ratio cannot be stored in the same VTS with another video data stream having a different aspect ratio.
  • The FIG. 14 functional diagram illustrates how the preferred connection-switching abstraction provides a flexible and robust functional superstructure within which movie-title, DVD-player and interactively occurring consumer-control events are routed and executed. In the figure, VTS-[0135] A 1303 and VTS-A+1 exemplify any two different VTSs which have been created during compilation of a movie-title. It should also be noted that the illustrated connection arrows only denote the “path” from one box (i.e. PGC abstraction, PGC or command-set) to another that can result from an author's use of connection view 901 (FIG. 9). Thus, fewer connections than those illustrated might be authored and each path from one box to another is accomplished individually using a single “jump command” or a single transfer of control by a DVD-player. (The use of multiple connected arrows and shared arrows is used only for clarity sake, since the alternative use of individual arrows between each pair of boxes might otherwise obscure the invention.)
  • Within each VTS, only a movie display PGC abstraction operates as a “control PGC” (i.e. directly controls menu and/or movie display). For example, VTS-[0136] A 1303 includes movie display PGC abstraction 1331 and (within its VTSM domain 1322) remote key PGC abstraction 1322 a. Movie display PGC abstraction 1331 comprises a single PGC which includes a command-set (“pre-command”) for selecting a chapter and initiating playback of the chapter, as well as an end command “cell command” that initiates routing upon the occurrence of an end-of-chapter-playback condition. Remote menu key 1431 a, which denotes an automatic DVD player function, traps and forwards a remote-key condition (i.e. user depression of a remote menu key which interrupts playback). Remote menu key router PGC abstraction 1322 a of VTSM-A 1322 sets the authored target for a corresponding remote menu key condition (i.e. where a consumer presses a remote menu key during playback) and then routes control to a corresponding movie PGC abstraction or menu PGC abstraction within VMGM 1302. Other VTSs (e.g. VTS-A+1 1304) are similarly structured for each movie within the current DVD movie-title.
  • Each remote menu key router PGC abstraction includes up to 4 PGCs to accommodate the up to 99 chapter points per movie limitation of the DVD Specification. The first remote menu key PGC is always assigned as a root menu and is always a hardwired (i.e. unalterable) target for any remote menu key condition (in accordance with the DVD Specification). Therefore, in order to provide for chapter dependent routing of a remote menu key condition, a DVD-player system register must first be queried for the last played chapter. Using the returned last played chapter information, program execution is then diverted to the corresponding authored remote menu key router PGC. [0137]
  • [0138] VTSM 1302 comprises the discussed menu display PGC (e.g. 1322) and menu button router PGC (e.g. 1323 b) abstraction pairs (for providing menu control), as well as the remaining router PGC abstractions. More specifically, movie router PGC abstraction 1322 acts as a playback bridge between VTS domains, receiving control from a remote key PGC in a first VTS (e.g. remote key PGC 1322 a of VTS 1303) and then forwarding control to a movie display PGC abstraction in second VTS (e.g. movie play PGC 1341 of VTS 1304). In contrast, end router PGC abstractions (e.g. 1325 and 1326) can be author-connected to route control from an end-of-chapter condition to either a selected chapter in a selected movie, or to a selected menu button in a selected menu.
  • As shown, a separate PGC is provided for each author-connected end-of-chapter condition. Each end command router PGC abstraction is paired with (i.e. responds to) a specific end command such that each end-of-chapter condition for a given movie will be routed from the end command to a unique end router PGC abstraction. Separate end command PGCs are required due to a flaw in current generation DVD-players whereby the last played chapter is not reliably available at the end of chapter playback. Upon correction of this flaw in future generation DVD-players however, end command routing can be accomplished in a manner consistent with remote menu key PGC abstractions (i.e. using only up to four end-command router PGCs per movie). [0139]
  • A menu display PGC abstraction (e.g. [0140] 1323 a), when it receives control as a target and thereafter while a consumer continues to depress menu navigation buttons, effectuates control by highlighting a menu button and displaying the menu. If however, a consumer activates a menu button, then the DVD-player initiates the corresponding router PGC abstraction (e.g. 1323 b), which routes control (i.e. according to an authored connection) to either a movie display PGC or to a menu display PGC.
  • For clarity sake, the first [0141] play PGC abstraction 1301 and title key PGC abstraction 1321 (FIG. 13) are not shown in FIG. 14. Each operates to transfer control to either a menu display PGCs or a movie display PGC as with the end command router PGCs and menu router PGCs. First play PGC 1301 is stored in a separate DVD-player storage location, while title key PGC 1321 is stored in VMGM 1302.
  • While those skilled in the art will appreciate, in view of the discussion herein, that considerable variation might be utilized, iterative experimentation with different connection-switching abstractions and DVD players has revealed a number of considerations. For example, command execution delays will necessarily occur as a result of PGC execution and greater delays typically result from transfer of control between a VTS (e.g. [0142] 1303 and 1304) and VMGM 1302. Another example is that a delay occurring prior to the start of a movie is observed to be more acceptable than a similar delay during navigation through what can be a large number of menus. A still further example is that consistent delay periods for similar transitions is more acceptable than inconsistent delays for similar transitions.
  • Thus, the preferred connection-switching abstraction provides a generally symmetrical structure wherein delays are first minimized by source-router-target execution paths having a minimum number of PGCs and PGC commands. Movie display PGC abstractions are further placed similarly within each VTS, while menu PGC abstraction pairs are placed similarly within [0143] VMGM 1302. (Note that an author typically only connects the end command of a last chapter within any given movie, such that the DVD-player will continuously play all chapters with the movie before control is routed outside the corresponding VTS). In addition, movie router 1322 is only used for VTS-to-VTS transitions This reflects, for example, that inconsistent delay between movie-to-movie playback and menu-to-movie playback is more acceptable than imposing further delay on menu-to-movie playback or other alternatives. (For example, further distribution and/or re-distribution of movie and/or menu routing functions have been observed to produce subjectively less acceptable results.) In addition, movie router 1322 complexity and PGC length is therefore reduced. It should be understood however, that these already short delay periods will further decrease as advances are made in DVD-player technology and that the resulting decreasing importance of such considerations might well contribute to further connection-switching abstraction variations.
  • The FIG. 15 flowchart broadly illustrates the operation of preferred connection-switching [0144] abstraction 1400. In step 1503, first play PGC abstraction is invoked in response to insertion of a movie-title into a DVD-player. The first play PGC abstraction (i.e. now the current PGC abstraction) determines target information (i.e. a target identifier and, if needed, target parameters). If, in step 1505, a router is required, then, the current PGC abstraction routes the target information and control to a next router abstraction in step 1507 and operation returns to step 1511. If no router is required in step 1505, then, in step 1509, the current PGC abstraction routes the target information to the target PGC abstraction.
  • If, in [0145] step 1511, the target is not a chapter (i.e. playback of a chapter is not the resultant authored event) then the target displays a menu (i.e. according to the target information) in step 1513 and the DVD-player waits for a menu button to be selected (i.e. step 1513 through 1515 act as a wait loop). If, in step 1515 a menu button is selected, then the current PGC abstraction sets authored target information for the selected button in step 1517 and operation returns to step 1505.
  • If instead, in [0146] step 1511, the target is a chapter, then the target initiates playback of the chapter. If further, in step 1525, a consumer invokes the remote menu key during playback of the chapter, then the current PGC abstraction sets authored target information in step 1527 and operation returns to step 1505. If, in step 1525, the remote menu key is not invoked (i.e. the chapter plays uninterrupted to its conclusion) and a chapter end command target has been authored, then the current PGC abstraction sets the authored target information in step 1537 and operation returns to step 1505. If, in step 1535, a chapter end command target has not been authored, then operation continues in step 1545.
  • If, in [0147] step 1545, more chapters exist in the current movie, then the DVD player increments the chapter number in step 1543 and operation returns to step 1523. If instead, in step 1545, no more chapters remain unplayed in the current movie, then the player suspends playback and (in some models) switches itself off.
  • For clarity sake, the operation of preferred connection-switching [0148] abstraction 1400 will also be discussed, by way of example, with reference to FIG. 14. If, for example, an authored-connection for first play is set to begin playback of a first chapter of a first movie stored in VTS-A 1303, then upon insertion of the DVD movie-title into a DVD-player, movie display PGC abstraction 1331 will be invoked. Movie display PGC 1331 will select and initiate playback of the first chapter.
  • If the first chapter playback is interrupted by a remote menu key condition, then the DVD-player will automatically trap the condition (i.e. box [0149] 1431 a) and will initiate the root menu PGC of remote menu key router 1322 a of VTSM-A 1322. Assuming further that less than 25 chapters exist in the first movie, the root menu PGC of remote menu key router 1322 a (i.e. now the current source PGC abstraction) will set the author-selected target for the first chapter remote menu key condition and will route control to either movie router 1322 or a menu display PGC (e.g. 1323 or 1324) within VMGM 1302. If movie router 1322 receives control, then upon receipt, movie router further routes control to the author-connected movie display PGC, in this case, movie display PGC 1341 of VTS-A+1 1304, which will set and initiates playback of the author-selected chapter of the VTS-A+1 movie.
  • If instead, playback of the first movie is not interrupted and only the last chapter of the first movie includes an author-connected end command, then the DVD-player will continue to play successive chapters of the first movie until the conclusion of the last movie. At the conclusion of the last movie, the DVD-player will execute [0150] cell command 1431 b (i.e. end command), which will transfer control to the PGC in end router 1325 (in VTSM 1302) that corresponds with the chapter last chapter played, i.e. the last chapter of VTS-A movie. (Since, in this case, only one chapter in the VTS-A movie has a connected end-of-chapter playback condition, end router 1325 will include only the one corresponding PGC.)
  • Upon receipt of control from end command [0151] 1431, end router 1325 (i.e. now the current source) will set the corresponding author-connected target included in end router 1325. Assuming the target is the VTS-A+1 movie, end router 1325 will further route control to movie display PGC 1341 of VTS-A+1 1304, which will set and initiate playback according to the chapter of the VTS-A+1 movie set by end router 1325. (Since control is not being routed from one VTS to another VTS, movie router 1322 is not utilized.)
  • If instead, the current source PGC of end router [0152] 1325 (i.e. again, the only PGC in end router 1325 in this example) includes an author-selected connection to menu N 1323, then end router 1325 will set target parameters and will route control to menu display PGC 1323 a. Menu display PGC 1323 a will highlight the button of menu-N 1323 according to the received target parameters and will then display menu-N 1323. Menu display PGC 1323 a will thereafter continue to be invoked by the DVD-player and will continue to highlight a button and display menu-N 1323 correspondingly with each successive uninterrupted (i.e. by consumer selection of a conflicting DVD control function) consumer depression of a navigation button. If however, the consumer next activates a displayed menu button, then the DVD-player will invoke menu button router PGC 1323 b. Once invoked, menu button router PGC 1323 b will set target parameters according to the author-selected connection for the activated button, and so on.
  • Attachment A attached hereto provides computer listings of preferred PGC abstractions source code according to the invention. For clarity sake, compilation has already been completed. Stated alternatively, the no-ops initially included in the skeleton-form PGC layout structure have been replaced by indices and the indices have been resolved to source and target identifiers using the discussed compiler and compilation methods. [0153]
  • As shown in attachment A, the preferred PGC abstractions utilize a number of DVD player registers. According to the DVD specification, each DVD player includes 16 general purpose registers (“GPs”), and 20 system registers (“SPs”). The GPs are functionally undefined and merely “available for use” by movie title control program PGCs. Conversely, the SPs have fully defined purposes consistent with DVD player operation and movie title control program interfacing. [0154]
  • The preferred GPs utilization and corresponding naming conventions according to the invention are indicated in the following chart. As shown, PGC abstractions exclusively utilize only 5 GPs, leaving a maximized number of remaining GPs available for adding further capabilities. [0155]
    Register Referenced as Description
    GP10 Stream Select Bit 15 = Select audio stream on/off
    Bit 14 = Select subtitle stream on/off
    Bit 13 = Select angle stream on,off
    Bits 10-12 = Audio stream number
    Bits 7-9 = Angle stream number
    Bits 0-6 = Subtitle stream number
    GP12 Target Movie Number Stored number = Movie number
    GP13 Target Button Number Stored number = Button number
    GP14 Target Chapter Number Stored number = Chapter number
    GP15 Temporary Register Stored number = value used with
    current PGC
    SP7  Last Chapter Played DVD player fills the register with the
    number of the last chapter played
    SP8  Last Highlighted Button DVD player fills the register with the
    number of the last highlighted button
  • As illustrated by the register utilization chart, GPs are utilized by source PGC abstractions primarily for designating (i.e. resolving an available connection to) target PGC abstractions and for passing to the targets parameters affecting target operation. The GPs are further utilized by target PGC abstractions primarily for establishing, manipulating and recalling localized variables (i.e. relating to a currently executing PGC command set). [0156]
  • For example, at a time prior to initiating playback of a chapter, a source PGC abstraction stores a value in GP[0157] 10 (“stream select”). That value will later indicate to a target PGC which audio, subtitle and/or angle stream is to be selected for movie playback. A further example is that, at a time prior to routing control to a target PGC abstraction, a source PGC abstraction stores a target's designation in a combination of registers GP12 (“Movie Number”) and GP14 (“Chapter Number”) for a movie target or GP13 (“Button Number”) for a menu target. Finally, PGC abstractions preferably utilize GP15 to temporarily store values, typically for use within a current PGC operation.
  • In most cases, only a portion of a given register (“register bits”) are utilized, while conversely, a given register may be used for multiple purposes, as seen in the utilization of GP[0158] 10 in the register chart. Those skilled in the art will appreciate, given the discussion herein, that the preferred embodiment enables certain advantages. Among these are that a single register or register set can be designated in all cases for similar purposes, thereby minimizing complexities, the number of registers required and the number of commands required within a PGC without detrimentally affecting routing or parameter passing flexibility. Similarly, operations required to parse register data containing multiple data values are not needed. Other arrangements consistent with the teachings of the invention however, are likely in view of other applications facilitated by these teachings and in accordance with the scope and spirit of the invention.
  • While the present invention has been described herein with reference to a particular embodiment thereof, a latitude of modification, various changes and substitutions are intended in the foregoing disclosure, and it will be appreciated that in some instances some features of the invention will be employed without a corresponding use of other features without departing from the spirit and scope of the invention as set forth. [0159]
    APPENDIX A
    PGC ABSTRACTION SOURCE CODE
    Exemplary Included Movies/Menus
    2 Movies with 3 chapters each
    2 Menus with 4 Buttons each
    Exemplary Included Connections
    Connections Source Connections Target
    Movie 1 : Chapter 1 Remote Key -> Menu 1: Button 1
    Movie 1 : Chapter 2 Remote Key -> Menu 1: Button 2
    Movie 1 : Chapter 3 Remote Key -> Menu 1: Button 3
    Movie 1 : Chapter 3 End -> Menu 1: Button 1
    Movie 2 : Chapter 1 Remote Key -> Menu 2: Button 1
    Movie 2 : Chapter 2 Remote Key -> Menu 2: Button 2
    Movie 2 : Chapter 3 Remote Key -> Menu 2: Button 3
    Movie 2 : Chapter 3 End -> Menu 2: Button 1
    Menu 1 : Button 1 -> Movie 1: Chapter 1
    Menu 1 : Button 2 -> Movie 1: Chapter 2
    Menu 1 : Button 3 -> Movie 1: Chapter 3
    Menu 1 : Button 4 -> Menu 2: Button 1
    Menu 2 : Button 1 -> Movie 2: Chapter 1
    Menu 2 : Button 2 -> Movie 2: Chapter 2
    Menu 2 : Button 3 -> Movie 2: Chapter 3
    Menu 2 : Button 4 -> Menu 1: Button 1
    1. VIDEO MANAGER (“VMGM”) Program Chains (“PGCs”)
    First Play PGC
    PRE_CMD#1: MovI GP14, 1 // Target = Chapter 1
    PRE_CMD#2: MovI GP12, 1 // Target = Movie 1
    PRE_CMD#3: JumpSS VMGM PGCI 2 // Jump To Movie Router
    Title PGC (PGC #1)
    PRE_CMD#1: MovI GP13, 1 // Target = Button 1
    PRE_CMD#2: LinkPGCN PGCN = 3 // Jump to Menu 1
    Movie Router PGC (VMGM PGC #2)
    PRE_CMD#1: MovI GP15, 1 // Setup Comparision to 1
    PRE_CMD#2: EQ GP15, GP12 JumpTT TTN = 1 // If Target Movie = 1,
     goto Movie1
    PRE_CMD#3: MovI GP15, 2 // Setup Comparision to 2
    PRE_CMD#4: EQ GP15, GP12 JumpTT TTN = 2 // If Target Movie = 2,
     goto Movie 2
    PRE_CMD#5: JumpSS First Play // Should never get here
    Menu 1 Display PGC (VMGM PGC #3)
    PRE_CMD#1: Mov GP15, GP13 // Put target button no.
     into temp storage
    PRE_CMD#2: MulI GP15, 1024 // Shift Button number by
     10 Bits to the left
    PRE_CMD#3: SetEL_BTNN HLP = GP15 // Highlight target button
     in menu; display menu
    Menu 2 Display PGC (VMGM PGC #4)
    PRE_CMD#1: Mov GP15, GP13 // Put target button no.
     into temp storage
    PRE_CMD#2: MulI GP15, 1024 // Shift Button number by
     10 Bits to the left
    PRE_CMD#3: SetHL_BTNN HLP = GP15 // Highlight target Button
     in menu; display menu
    Menu 1 Button Router (VMGM PGC #5)
    PRE_CMD#1: Mov GP15, SP8 // Put last highlighted
     button in temp storage
    PRE_CMD#2: DivI GP15, 1024 // Shift Button number 10
     bits to the right
    PRE_CMD#3: NEI GP15, 1 GoTo CMDNUM = 7 // If button number ≠ 1,
     goto CMD #7
    PRE_CMD#4: MovI GP14, 1 // Target = Chapter 1
    PRE_CMD#5: JumpTT TTN = 1 // Jump Movie 1
    PRE_CMD#6: Nop
    PRE_CMD#7: NEI GP15, 2 GoTo CMDNUM = 11 // If button number ≠ 2,
     goto CMD #11
    PRE_CMD#8: MovI GP14, 2 // Target = Chapter 2
    PRE_CMD#9: JumpTT TTN = 1 // Jump Movie 1
    PRE_CMD#10: Nop
    PRE_CMD#11: NEI GP15, 3 GoTo CMDNUM = 15 // If button number ≠ 3,
     goto CMD #15
    PRE_CMD#12: MovI GP14, 3 // Target = Chapter 3
    PRE_CMD#13: JumpTT TTN = 1 // Jump Movie 1
    PRE_CMD#14: Nop
    PRE_CMD#15: MovI GP13, 1 // Target = Button 1
    PRE_CMD#16: LinkPGCN PGCN = 4 // Jump Menu 2
    Menu 1 Button Router (VMGM PGC #6)
    PRE_CMD#1: Mov GP15, SP8 // Put last highlighted
     button in temp storage
    PRE_CMD#2: DivI GP15, 1024 // Shift Button number 10
     bits to the right
    PRE_CMD#3: NEI GP15, 1 GoTo CMDNUM = 7 // If button number ≠ 1,
     goto CMD #7
    PRE_CMD#4: MovI GP14, 1 // Target = Chapter 1
    PRE_CMD#5: JumpTT TTN = 2 // Jump Movie 2
    PRE_CMD#6: Nop
    PRE_CMD#7: NEI GP15, 2 GoTo CMDNUM = 11 // If button number ≠ 2,
     goto CMD #11
    PRE_CMD#8: MovI GP14, 2 // Target = Chapter 2
    PRE_CMD#9: JumpTT TTN = 2 // Jump Movie 2
    PRE_CMD#10: Nop
    PRE_CMD#11: NEI GP15, 3 GoTo CMDNUM = 15 // If button number ≠ 3,
     goto CMD #15
    PRE_CMD#12: MovI GP14, 3 // Target = Chapter 3
    PRE_CMD#13: JumpTT TTN = 2 // Jump Movie 2
    PRE_CMD#14: Nop
    PRE_CMD#15: MovI GP13, 1 // Target = Button 1
    PRE_CMD#16: LinkPGCN PGCN = 3 // Jump Menu 1
    Title 1 End Router Chapter 3 (VMGM PGC #7)
    PRE_CMD#1: MovI GP13, 1 // Target = Button 1
    PRE_CMD#2: LinkPGCN PGCN = 3 // Jump Menu 1
    Title 2 End Router Chapter 3 (VMGM PGC #8)
    PRE_CMD#1: MovI GP13, 1 // Target = Button 1
    PRE_CMD#2: LinkPGCN PGCN = 4 // Jump Menu 2
    2. Video Title Segment #1 (“VTS-1”) PGCs
    Movie 1 Display PGC (VTS PGC #1)
    PRE_CMD#1: Mov GP15, GP14 // Move Target Chapter
     into temp storage
    PRE_CMD#2: MovI GP14, 0 // Zero Target Chapter
     register
    PRE_CMD#3: EQI GP15, 1 LinkPGN PGN = 1 // If Chapter=1, Goto
     Program #1 (Chapter 1)
    PRE_CMD#4: EQI GP15, 2 LinkPGN PGN = 2 // If Chapter=2, Goto
     Program #2 (Chapter 2)
    PRE_CMD#5: EQI GP15, 3 LinkPGN PGN = 3 // If Chapter=3, Goto
     Program #3 (Chapter 3)
    End CMD for Movie 1 Chapter 3 (VTS PGC #1)
    C_CMD#1: CallSS VMGM_PGCN = 7, // Jump to VMGM PGC
    DOMAINID = 3  #7 (Title1, End-router for
     Chapter 3)
    Chapter Router PGC (VTSM PGC #1)
    PRE_CMD#1: Mov GP15, SP7 // Put last played chapter
     into temp storage
    PRE_CMD#2: Nop
    PRE_CMD#3: Nop
    PRE_CMD#4: Nop
    PRE_CMD#5: GEI GP15, 2 GoTo CMDNUM = 9 // If last chapter ≧ 2,
     goto CMD #9
    PRE_CMD#6: MovI GP13, 1 // Target = Button 1
    PRE_CMD#7: JumpSS VMGM_PGCN = 3, // Jump to Menu 1
    DOMAINID = 3
    PRE_CMD#8: Nop
    PRE_CMD#9: GEI GP15, 3 GoTo CMDNUM = 13 // If last chapter ≧ 3,
     goto CMD #13
    PRE_CMD#10: MovI GP13, 2 // Target = Button 2
    PRE_CMD#11: JumpSS VMGM_PGCN = 3, // Jump to Menu 1
    DOMAINID = 3
    PRE_CMD#12: Nop
    PRE_CMD#13: MovI GP13, 3 // Target = Button 3
    PRE_CMD#14: JumpSS VMGM_PGCN = 3, // Jump to Menu 1
    DOMAINID = 3
    3. Video Title Segment #2 (“VTS-2”) PGCs
    Movie 2 Display PGC (VTS PGC #1)
    PRE_CMD#1: Mov GP15, GP14 // Move Target Chapter
     into temp storage
    PRE_CMD#2: MovI GP14, 0 // Zero Target Chapter
     register
    PRE_CMD#3: EQI GP15, 1 LinkPGN PGN = 1 // If Chapter=1, Goto
     Program #1 (Chapter 1)
    PRE_CMD#4: EQI GP15, 2 LinkPGN PGN = 2 // If Chapter=2, Goto
     Program #2 (Chapter 2)
    PRE_CMD#5: EQI GP15, 3 LinkPGN PGN = 3 // If Chapter=3 Goto
     Program #3 (Chapter 3)
    End CMD for Movie 2 Chapter 3 (VTS PGC #1)
    C_CMD#1: CallSS VMGM_PGCN = 7, // Jump to VMGM PGC
    DOMAINID = 3  #8 (Title 2 End Router
     Chapter 3)
    Chapter Router PGC (VTSM PGC #1)
    PRE_CMD#1: Mov GP15, SP7 // Put last played chapter
     into temp storage
    PRE_CMD#2: Nop
    PRE_CMD#3: Nop
    PRE_CMD#4: Nop
    PRE_CMD#5: GEI GP15, 2 GoTo CMDNUM = 9 // If last chapter ≧ 2,
     goto CMD #9
    PRE_CMD#6: MovI GP13, 1 // Target = Button 1
    PRE_CMD#7: JumpSS VMGM_PGCN = 4, // Jump to Menu 2
    DOMAINID = 3
    PRE_CMD#8: Nop
    PRE_CMD#9: GEI GP15, 3 GoTo CMDNUM =  // If last
    13 chapter ≧ 3,
    goto CMD #13
    PRE_CMD#10: MovI GP13, 2 // Target = Button 2
    PRE_CMD#11: JumpSS VMGM_PGCN = // Jump to Menu 2
    4, DOMAINID = 3
    PRE_CMD#12: Nop
    PRE_CMD#13: MovI GP13, 3 // Target = Button 3
    PRE_CMD#14: JumpSS VMGM_PGCN = 4, // Jump to Menu 2
    DOMAINID = 3

Claims (2)

We claim:
1. A method of making a multimedia program comprising the steps of:
selecting an arrangement of performance information containing a plurality performance elements;
creating a layout of a performance information access structure containing a plurality of access elements;
linking the performance elements and access elements with linking information to create linked performance and access elements; and
automatically generating programming data from the linked performance and access elements to construct said multimedia program.
2. A system for making a multimedia program comprising:
means for selecting an arrangement of performance information containing a plurality performance elements;
means for creating a layout of a performance information access structure containing a plurality of access elements;
means for linking the performance elements and access elements with linking information to create linked performance and access elements; and
means for automatically generating programming data from the linked performance and access elements to construct said multimedia program.
US09/010,267 1998-01-21 1998-01-21 Menu authoring system and method for automatically performing low-level DVD configuration functions and thereby ease an author's job Expired - Lifetime US6453459B1 (en)

Priority Applications (17)

Application Number Priority Date Filing Date Title
US09/010,267 US6453459B1 (en) 1998-01-21 1998-01-21 Menu authoring system and method for automatically performing low-level DVD configuration functions and thereby ease an author's job
CA002318059A CA2318059C (en) 1998-01-21 1999-01-21 Dvd-authoring system and method
CA002444920A CA2444920C (en) 1998-01-21 1999-01-21 Dvd-authoring system and method
CA2505480A CA2505480C (en) 1998-01-21 1999-01-21 Dvd-authoring system and method
DE69935851T DE69935851T2 (en) 1998-01-21 1999-01-21 DVD PRODUCTION SYSTEM AND METHOD
EP10185776A EP2270794A3 (en) 1998-01-21 1999-01-21 Authoring system and method
AU23390/99A AU772108B2 (en) 1998-01-21 1999-01-21 Authoring system and method
EP07006810A EP1798728A3 (en) 1998-01-21 1999-01-21 Authoring system and method
EP99903344A EP1057120B1 (en) 1998-01-21 1999-01-21 Dvd-authoring system and method
AT99903344T ATE360235T1 (en) 1998-01-21 1999-01-21 DVD PRODUCTION SYSTEM AND METHOD
PCT/US1999/001458 WO1999038098A2 (en) 1998-01-21 1999-01-21 Dvd-authoring system and method
JP2000528933A JP4101462B2 (en) 1998-01-21 1999-01-21 Authoring system and method
EP07007378A EP1801802A3 (en) 1998-01-21 1999-01-21 Authoring system and method
US10/213,025 US7200836B2 (en) 1998-01-21 2002-08-05 Menu authoring for automatically performing low-level DVD configuration functions
AU2004200812A AU2004200812B2 (en) 1998-01-21 2004-02-27 Authoring system and method
US11/535,885 US8208789B2 (en) 1998-01-21 2006-09-27 Video program authoring systems and methods
US11/679,799 US8180194B2 (en) 1998-01-21 2007-02-27 Authored video programs

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/010,267 US6453459B1 (en) 1998-01-21 1998-01-21 Menu authoring system and method for automatically performing low-level DVD configuration functions and thereby ease an author's job

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US10/213,025 Continuation US7200836B2 (en) 1998-01-21 2002-08-05 Menu authoring for automatically performing low-level DVD configuration functions

Publications (2)

Publication Number Publication Date
US20020112226A1 true US20020112226A1 (en) 2002-08-15
US6453459B1 US6453459B1 (en) 2002-09-17

Family

ID=21744951

Family Applications (4)

Application Number Title Priority Date Filing Date
US09/010,267 Expired - Lifetime US6453459B1 (en) 1998-01-21 1998-01-21 Menu authoring system and method for automatically performing low-level DVD configuration functions and thereby ease an author's job
US10/213,025 Expired - Lifetime US7200836B2 (en) 1998-01-21 2002-08-05 Menu authoring for automatically performing low-level DVD configuration functions
US11/535,885 Expired - Lifetime US8208789B2 (en) 1998-01-21 2006-09-27 Video program authoring systems and methods
US11/679,799 Expired - Lifetime US8180194B2 (en) 1998-01-21 2007-02-27 Authored video programs

Family Applications After (3)

Application Number Title Priority Date Filing Date
US10/213,025 Expired - Lifetime US7200836B2 (en) 1998-01-21 2002-08-05 Menu authoring for automatically performing low-level DVD configuration functions
US11/535,885 Expired - Lifetime US8208789B2 (en) 1998-01-21 2006-09-27 Video program authoring systems and methods
US11/679,799 Expired - Lifetime US8180194B2 (en) 1998-01-21 2007-02-27 Authored video programs

Country Status (8)

Country Link
US (4) US6453459B1 (en)
EP (4) EP2270794A3 (en)
JP (1) JP4101462B2 (en)
AT (1) ATE360235T1 (en)
AU (1) AU772108B2 (en)
CA (1) CA2318059C (en)
DE (1) DE69935851T2 (en)
WO (1) WO1999038098A2 (en)

Cited By (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010047454A1 (en) * 1999-12-08 2001-11-29 Pontus Soderstrom I/O method and apparatus for optical storage media
EP1411512A2 (en) * 2002-10-16 2004-04-21 Microsoft Corporation Adaptive menu system for media players
US20040221044A1 (en) * 2003-05-02 2004-11-04 Oren Rosenbloom System and method for facilitating communication between a computing device and multiple categories of media devices
US20050071764A1 (en) * 2003-09-28 2005-03-31 Denny Jaeger Method for creating a collection of multimedia interactive graphic elements using arrow logic
US20050094971A1 (en) * 2003-11-04 2005-05-05 Zootech Limited Data processing system and method
US20050149214A1 (en) * 2004-01-06 2005-07-07 Yoo Jea Y. Recording medium having a data structure for managing sound data and recording and reproducing methods and apparatus
US20050246375A1 (en) * 2004-05-03 2005-11-03 Microsoft Corporation System and method for encapsulation of representative sample of media object
EP1609052A2 (en) * 2003-04-03 2005-12-28 Thomson Licensing S.A. Method for presenting menu buttons
US20060031545A1 (en) * 2004-08-06 2006-02-09 Microsoft Corporation System and method for generating selectable extension to media transport protocol
US20060031384A1 (en) * 2004-05-03 2006-02-09 Microsoft Corporation System and method for optimized property retrieval of stored objects
WO2006064049A1 (en) * 2004-12-16 2006-06-22 Zootech Limited Menus for audiovisual content
WO2006070298A1 (en) * 2004-12-27 2006-07-06 Koninklijke Philips Electronics N.V. Method and apparatus for enabling an application to cooperate with running ofa program
WO2006090300A1 (en) 2005-02-28 2006-08-31 Koninklijke Philips Electronics N.V. Fallback mechanism for data reproduction
WO2006100304A2 (en) * 2005-03-24 2006-09-28 Zootech Limited Authoring audiovisual content
US20060294015A1 (en) * 2001-03-12 2006-12-28 Kim Hyung S Method of recording and reproducing sample data to/from a recording medium and sample data containing recording medium
US20060294010A1 (en) * 2001-03-13 2006-12-28 Kim Hyung S Read-only recording medium containing sample data and reproducing method thereof
US20060294585A1 (en) * 2005-06-24 2006-12-28 Microsoft Corporation System and method for creating and managing a trusted constellation of personal digital devices
US20070002166A1 (en) * 2005-07-01 2007-01-04 Eklund Don File format translation
US20070047924A1 (en) * 2005-08-29 2007-03-01 Eklund Don Templatized commands in disc authoring
US20070047923A1 (en) * 2005-08-29 2007-03-01 Eklund Don Playable content
US20070047922A1 (en) * 2005-08-29 2007-03-01 Eklund Don Discontinuous timeline in disc authoring
US20070050717A1 (en) * 2005-08-29 2007-03-01 Eklund Don Slicing interactive graphic data in disc authoring
US20070077039A1 (en) * 2005-08-29 2007-04-05 Eklund Don Portfolios in disc authoring
US20070079010A1 (en) * 2005-10-04 2007-04-05 Microsoft Corporation Media exchange protocol and devices using the same
US20070292106A1 (en) * 2006-06-15 2007-12-20 Microsoft Corporation Audio/visual editing tool
US20080022227A1 (en) * 2006-06-23 2008-01-24 Sony Corporation Apparatus, method, and computer program for processing information
US20080184212A1 (en) * 2007-01-26 2008-07-31 Oracle International Corporation Code persistence and dependency management for dynamic compilation in a database management system
US20080184195A1 (en) * 2007-01-26 2008-07-31 Oracle International Corporation Code generation in the presence of paged memory
US20080184210A1 (en) * 2007-01-26 2008-07-31 Oracle International Corporation Asynchronous dynamic compilation based on multi-session profiling to produce shared native code
US20080193105A1 (en) * 2007-02-14 2008-08-14 Sheng-Wen Bai Machine-implemented authoring method for a high definition digital versatile disc, and a computer readable storage medium for implementing the same
US20080244407A1 (en) * 2005-08-29 2008-10-02 Eklund Don Abstractions in disc authoring
US20080238938A1 (en) * 2005-08-29 2008-10-02 Eklund Don Effects for interactive graphic data in disc authoring
US20090113403A1 (en) * 2007-09-27 2009-04-30 Microsoft Corporation Replacing no operations with auxiliary code
US20110135280A1 (en) * 2009-12-09 2011-06-09 Sony Corporation Framework, system and method for rapid deployment of interactive applications
USRE44341E1 (en) * 2000-12-05 2013-07-02 Calligramme Holdings Fr L.L.C. System and method for producing storage media images
US20130191816A1 (en) * 2012-01-20 2013-07-25 Qualcomm Incorporated Optimizing texture commands for graphics processing unit
US20130251335A1 (en) * 2007-08-29 2013-09-26 Lg Electronics Inc. Method of displaying recorded material and display device using the same
US20140181663A1 (en) * 2004-12-02 2014-06-26 Rhomson Licensing Method for generating multi-language menus
TWI466110B (en) * 2005-12-23 2014-12-21 Koninkl Philips Electronics Nv Methdo and apparatus for enabling an application running with a program
US20150256903A1 (en) * 2014-03-07 2015-09-10 Comcast Cable Communications, Llc Retrieving supplemental content
US9699488B2 (en) * 2014-06-02 2017-07-04 Google Inc. Smart snap to interesting points in media content
US11297382B2 (en) 2011-08-25 2022-04-05 Comcast Cable Communications, Llc Application triggering
US11657088B1 (en) * 2017-11-08 2023-05-23 Amazon Technologies, Inc. Accessible index objects for graph data structures
US11665394B2 (en) 2013-03-13 2023-05-30 Comcast Cable Communications, Llc Selective interactivity

Families Citing this family (131)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137904A (en) * 1994-11-14 1996-05-31 Daikin Ind Ltd Method and device for supporting production of dynamic image cdrom software
EP1065665A4 (en) * 1998-02-23 2004-10-06 Toshiba Kk Information storage medium and information recording/reproducing system
JP3895492B2 (en) * 1998-03-13 2007-03-22 株式会社リコー Image processing apparatus, image processing method, and computer-readable recording medium storing program for causing computer to execute the method
US20020067913A1 (en) * 1998-05-15 2002-06-06 Hideo Ando Information recording method and information reproducing method
US7610599B1 (en) * 1998-11-30 2009-10-27 Sony Corporation Information providing device and method for index information for scene changes
US6748421B1 (en) * 1998-12-23 2004-06-08 Canon Kabushiki Kaisha Method and system for conveying video messages
US6529949B1 (en) 2000-02-07 2003-03-04 Interactual Technologies, Inc. System, method and article of manufacture for remote unlocking of local content located on a client device
US7448021B1 (en) * 2000-07-24 2008-11-04 Sonic Solutions, A California Corporation Software engine for combining video or audio content with programmatic content
US6453420B1 (en) 1999-04-21 2002-09-17 Research Investment Network, Inc. System, method and article of manufacture for authorizing the use of electronic content utilizing a laser-centric medium
FR2796181B1 (en) * 1999-07-09 2001-10-05 France Telecom SYSTEM FOR FAST DEVELOPMENT OF INTERACTIVE APPLICATIONS
US7099561B1 (en) * 1999-08-20 2006-08-29 Thomson Licensing User interface and processing system for digital video, audio and ancillary data
US6574417B1 (en) 1999-08-20 2003-06-03 Thomson Licensing S.A. Digital video processing and interface system for video, audio and ancillary data
WO2001028238A2 (en) * 1999-10-08 2001-04-19 Sarnoff Corporation Method and apparatus for enhancing and indexing video and audio signals
US7020351B1 (en) * 1999-10-08 2006-03-28 Sarnoff Corporation Method and apparatus for enhancing and indexing video and audio signals
US7127149B1 (en) * 1999-11-10 2006-10-24 Thomson Licensing Three-stage menu processing for digital disc recorder
US6728477B1 (en) * 1999-12-28 2004-04-27 Lsi Logic Corporation Simultaneous multiple-angle presentation of DVD audio/visual content
US20010033296A1 (en) * 2000-01-21 2001-10-25 Fullerton Nathan W. Method and apparatus for delivery and presentation of data
US7689510B2 (en) 2000-09-07 2010-03-30 Sonic Solutions Methods and system for use in network management of content
JP3612274B2 (en) * 2000-11-08 2005-01-19 株式会社東芝 Recording / playback device with playlist creation guide function
US7266767B2 (en) * 2000-11-27 2007-09-04 Parker Philip M Method and apparatus for automated authoring and marketing
US8397164B2 (en) * 2001-03-02 2013-03-12 Technicolor Digital Cinema Llc Apparatus and method for loading media in a digital cinema system
US7440972B2 (en) * 2001-04-26 2008-10-21 Sonic Solutions Interactive media authoring without access to original source material
TW550507B (en) * 2001-10-16 2003-09-01 Ulead Systems Inc System and method for establishing interactive video disk playing menu
EP1423853B1 (en) * 2001-10-23 2009-04-01 Samsung Electronics Co., Ltd. Information storage medium containing event occurrence information, and method therefor
JP3787529B2 (en) * 2002-02-12 2006-06-21 株式会社日立製作所 Optical disc recording / reproducing apparatus
US7457532B2 (en) * 2002-03-22 2008-11-25 Microsoft Corporation Systems and methods for retrieving, viewing and navigating DVD-based content
TW200401267A (en) * 2002-04-04 2004-01-16 Sonic Solutions Optimizing the recording on a rewritable interactive medium of revisions to an existing project on that medium
GB2388241A (en) 2002-04-30 2003-11-05 Zoo Digital Group Plc Authoring of complex DVD-video products
KR100514733B1 (en) * 2002-05-24 2005-09-14 삼성전자주식회사 Information storage medium, reproducing method, and reproducing apparatus for supporting interactive mode
US7280955B2 (en) * 2002-06-18 2007-10-09 Martin Joseph B Universal system component emulator with human readable output
US20080059954A1 (en) * 2002-06-18 2008-03-06 Martin Joseph B Universal system component emulator with human readable output
US20040002993A1 (en) * 2002-06-26 2004-01-01 Microsoft Corporation User feedback processing of metadata associated with digital media files
US9445133B2 (en) * 2002-07-10 2016-09-13 Arris Enterprises, Inc. DVD conversion for on demand
US7009655B2 (en) * 2002-07-23 2006-03-07 Mediostream, Inc. Method and system for direct recording of video information onto a disk medium
US8737816B2 (en) * 2002-08-07 2014-05-27 Hollinbeck Mgmt. Gmbh, Llc System for selecting video tracks during playback of a media production
JP3717880B2 (en) * 2002-10-01 2005-11-16 パイオニア株式会社 Information recording medium, information recording apparatus and method, information reproducing apparatus and method, information recording / reproducing apparatus and method, computer program for recording or reproduction control, and data structure including control signal
US7536088B2 (en) * 2002-10-03 2009-05-19 Cyberlink Corp. Method of authoring DVD video record on an external storage device
JP4487479B2 (en) * 2002-11-12 2010-06-23 日本電気株式会社 SIMD instruction sequence generation method and apparatus, and SIMD instruction sequence generation program
US20040096199A1 (en) * 2002-11-14 2004-05-20 Chou Charles C.L. Editing system and software for automatically creating interactive media
US7840905B1 (en) 2003-01-06 2010-11-23 Apple Inc. Creating a theme used by an authoring application to produce a multimedia presentation
US7546544B1 (en) 2003-01-06 2009-06-09 Apple Inc. Method and apparatus for creating multimedia presentations
US7694225B1 (en) * 2003-01-06 2010-04-06 Apple Inc. Method and apparatus for producing a packaged presentation
MXPA05007529A (en) * 2003-01-13 2006-04-18 Disney Entpr Inc Fast play dvd.
GB2400779A (en) * 2003-04-17 2004-10-20 Zoo Digital Group Plc Creating video sequences representing transitions from a first view of an original asset to a second view of an original asset
US20050021903A1 (en) * 2003-07-25 2005-01-27 Baxter John Francis Method of embedding product information on a digital versatile disc
US20050046892A1 (en) * 2003-09-03 2005-03-03 Masatoshi Inoue Communication terminal, a network communication method, and a computer-readable recording medium for storing a program for executing the network communication method
US7403206B1 (en) * 2003-10-01 2008-07-22 Microsoft Corporation Picking TV safe colors
US20050089306A1 (en) * 2003-10-27 2005-04-28 Zoo Digital Group Plc DVD video merging
GB2407691A (en) * 2003-10-27 2005-05-04 Zoo Digital Group Plc Method for inserting data into an existing DVD programme
JP3675465B2 (en) * 2003-10-29 2005-07-27 ソニー株式会社 Encoding control apparatus and encoding system
GB2408869B (en) * 2003-11-04 2006-07-26 Zoo Digital Group Plc Data processing system and method
US8472792B2 (en) 2003-12-08 2013-06-25 Divx, Llc Multimedia distribution system
US7519274B2 (en) 2003-12-08 2009-04-14 Divx, Inc. File format for multiple track digital data
KR100561417B1 (en) * 2004-02-09 2006-03-16 삼성전자주식회사 Information storage medium recorded interactive graphic stream for the transition of AV data reproducing state, and reproducing method and apparatus thereof
US8238721B2 (en) * 2004-02-27 2012-08-07 Hollinbeck Mgmt. Gmbh, Llc Scene changing in video playback devices including device-generated transitions
US8837921B2 (en) 2004-02-27 2014-09-16 Hollinbeck Mgmt. Gmbh, Llc System for fast angle changing in video playback devices
US7882436B2 (en) * 2004-03-10 2011-02-01 Trevor Burke Technology Limited Distribution of video data
US8108890B2 (en) * 2004-04-20 2012-01-31 Green Stuart A Localised menus
KR20070038104A (en) * 2004-07-12 2007-04-09 코닌클리케 필립스 일렉트로닉스 엔.브이. Content with navigation support
US20060190959A1 (en) * 2004-11-05 2006-08-24 Annemarie Gatti Method of presenting a customized sequence of video segments
US7613383B2 (en) 2004-12-02 2009-11-03 Hitachi, Ltd. Editing method and recording and reproducing device
GB2422946A (en) * 2004-12-16 2006-08-09 Zootech Ltd Menus for audiovisual product
GB2424988A (en) * 2005-04-05 2006-10-11 Zootech Ltd Menus for audiovisual content
WO2006066052A2 (en) 2004-12-16 2006-06-22 Sonic Solutions Methods and systems for use in network management of content
US8045845B2 (en) * 2005-01-03 2011-10-25 Hollinbeck Mgmt. Gmbh, Llc System for holding a current track during playback of a multi-track media production
TW200639759A (en) * 2005-05-04 2006-11-16 Benq Corp Method and apparatus of transforming format of multimedia file
US8755673B2 (en) 2005-05-23 2014-06-17 Open Text S.A. Method, system and computer program product for editing movies in distributed scalable media environment
US8145528B2 (en) 2005-05-23 2012-03-27 Open Text S.A. Movie advertising placement optimization based on behavior and content analysis
US8141111B2 (en) 2005-05-23 2012-03-20 Open Text S.A. Movie advertising playback techniques
US9648281B2 (en) * 2005-05-23 2017-05-09 Open Text Sa Ulc System and method for movie segment bookmarking and sharing
EP1894409B1 (en) * 2005-06-09 2017-03-22 Koninklijke Philips N.V. Preview mode for content
US7721308B2 (en) 2005-07-01 2010-05-18 Microsoft Corproation Synchronization aspects of interactive multimedia presentation management
US8305398B2 (en) 2005-07-01 2012-11-06 Microsoft Corporation Rendering and compositing multiple applications in an interactive media environment
US7941522B2 (en) 2005-07-01 2011-05-10 Microsoft Corporation Application security in an interactive media environment
US20070006065A1 (en) * 2005-07-01 2007-01-04 Microsoft Corporation Conditional event timing for interactive multimedia presentations
US8656268B2 (en) 2005-07-01 2014-02-18 Microsoft Corporation Queueing events in an interactive media environment
US8020084B2 (en) 2005-07-01 2011-09-13 Microsoft Corporation Synchronization aspects of interactive multimedia presentation management
US8108787B2 (en) * 2005-07-01 2012-01-31 Microsoft Corporation Distributing input events to multiple applications in an interactive media environment
US8799757B2 (en) * 2005-07-01 2014-08-05 Microsoft Corporation Synchronization aspects of interactive multimedia presentation management
US20070006062A1 (en) * 2005-07-01 2007-01-04 Microsoft Corporation Synchronization aspects of interactive multimedia presentation management
US20070011625A1 (en) * 2005-07-08 2007-01-11 Jiunn-Sheng Yan Method and apparatus for authoring and storing media objects in optical storage medium
US20090013286A1 (en) * 2005-07-08 2009-01-08 Jiunn-Sheng Yan Method and Apparatus for Authoring and Storing Media Objects in Optical Storage Medium
US8074248B2 (en) 2005-07-26 2011-12-06 Activevideo Networks, Inc. System and method for providing video content associated with a source image to a television in a communication network
US8201073B2 (en) * 2005-08-15 2012-06-12 Disney Enterprises, Inc. System and method for automating the creation of customized multimedia content
US8667395B2 (en) * 2005-08-19 2014-03-04 Nintendo Co., Ltd. Method and apparatus for creating video game and entertainment demonstrations with full preview and/or other features
EP1917576B1 (en) * 2005-08-25 2012-10-24 Gambro Lundia AB Medical apparatus and user interface for a medical apparatus
CN101496090A (en) * 2005-08-29 2009-07-29 索尼株式会社 Effects for interactive graphic data in disc authoring
ATE438164T1 (en) * 2006-03-10 2009-08-15 Nero Ag DEVICE AND METHOD FOR PROVIDING A SEQUENCE OF VIDEO SINGLE IMAGES, DEVICE AND METHOD FOR PROVIDING A SCENE MODEL, SCENE MODEL, DEVICE AND METHOD FOR GENERATING A MENU STRUCTURE AND COMPUTER PROGRAM
US7515710B2 (en) 2006-03-14 2009-04-07 Divx, Inc. Federated digital rights management scheme including trusted systems
WO2008007905A1 (en) 2006-07-12 2008-01-17 Lg Electronics Inc. Method and apparatus for encoding/decoding signal
WO2008048066A1 (en) * 2006-10-19 2008-04-24 Lg Electronics Inc. Encoding method and apparatus and decoding method and apparatus
EP2106665B1 (en) * 2007-01-12 2015-08-05 ActiveVideo Networks, Inc. Interactive encoded content system including object models for viewing on a remote device
US9826197B2 (en) * 2007-01-12 2017-11-21 Activevideo Networks, Inc. Providing television broadcasts over a managed network and interactive content over an unmanaged network to a client device
US20080181585A1 (en) * 2007-01-26 2008-07-31 Disney Enterprises, Inc. System and Method for Allocating Excess Capacity on a Storage Medium
KR101125286B1 (en) * 2007-03-27 2012-03-21 삼성전자주식회사 Method of updating additional data and reproduction apparatus thereof
US20080271095A1 (en) * 2007-04-24 2008-10-30 Yahoo! Inc. Method and system for previewing media over a network
US20090041426A1 (en) * 2007-08-06 2009-02-12 Apple Inc Concurrently displaying a drop zone editor with a menu editor during the creation of a multimedia device
US20090060453A1 (en) * 2007-09-05 2009-03-05 Kellogg John Method and system for authoring music
WO2009065137A1 (en) 2007-11-16 2009-05-22 Divx, Inc. Hierarchical and reduced index structures for multimedia files
CN102232294B (en) 2008-12-01 2014-12-10 图象公司 Methods and systems for presenting three-dimensional motion pictures with content adaptive information
JP5681641B2 (en) 2009-01-07 2015-03-11 ソニック アイピー, インコーポレイテッド Specific, collective and automatic generation of media guides for online content
WO2010126353A1 (en) 2009-04-27 2010-11-04 N.V. Nutricia Pea-based protein mixture and use thereof in a liquid nutritional composition suitable for enteral feeding
EP2507995A4 (en) 2009-12-04 2014-07-09 Sonic Ip Inc Elementary bitstream cryptographic material transport systems and methods
TWI410818B (en) * 2009-12-30 2013-10-01 Fiitotech Company Ltd Network digital authoring system and method thereof
US8965180B2 (en) * 2010-07-13 2015-02-24 Rovi Guides, Inc. Systems and methods for converting interactive multimedia content authored for distribution via a physical medium for electronic distribution
US9021541B2 (en) 2010-10-14 2015-04-28 Activevideo Networks, Inc. Streaming digital video between video devices using a cable television system
US9247312B2 (en) 2011-01-05 2016-01-26 Sonic Ip, Inc. Systems and methods for encoding source media in matroska container files for adaptive bitrate streaming using hypertext transfer protocol
WO2012138660A2 (en) 2011-04-07 2012-10-11 Activevideo Networks, Inc. Reduction of latency in video distribution networks using adaptive bit rates
KR102163151B1 (en) 2011-08-30 2020-10-08 디빅스, 엘엘씨 Systems and methods for encoding and streaming video encoded using a plurality of maximum bitrate levels
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
US8818171B2 (en) 2011-08-30 2014-08-26 Kourosh Soroushian Systems and methods for encoding alternative streams of video for playback on playback devices having predetermined display aspect ratios and network connection maximum data rates
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
EP2815582B1 (en) 2012-01-09 2019-09-04 ActiveVideo Networks, Inc. Rendering of an interactive lean-backward user interface on a television
US9123084B2 (en) 2012-04-12 2015-09-01 Activevideo Networks, Inc. Graphical application integration with MPEG objects
US10452715B2 (en) 2012-06-30 2019-10-22 Divx, Llc Systems and methods for compressing geotagged video
KR101328199B1 (en) * 2012-11-05 2013-11-13 넥스트리밍(주) Method and terminal and recording medium for editing moving images
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9906785B2 (en) 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
WO2014145921A1 (en) 2013-03-15 2014-09-18 Activevideo Networks, Inc. A multiple-mode system and method for providing user selectable video content
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US9294785B2 (en) 2013-06-06 2016-03-22 Activevideo Networks, Inc. System and method for exploiting scene graph information in construction of an encoded video sequence
EP3005712A1 (en) 2013-06-06 2016-04-13 ActiveVideo Networks, Inc. Overlay rendering of user interface onto source video
US9219922B2 (en) 2013-06-06 2015-12-22 Activevideo Networks, Inc. System and method for exploiting scene graph information in construction of an encoded video sequence
US9967305B2 (en) 2013-06-28 2018-05-08 Divx, Llc Systems, methods, and media for streaming media content
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
US10148989B2 (en) 2016-06-15 2018-12-04 Divx, Llc Systems and methods for encoding video content
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
JP7337743B2 (en) 2020-03-27 2023-09-04 鹿島建設株式会社 Installation mechanism and installation method of receiving plate and joint

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5574843A (en) * 1991-04-26 1996-11-12 Escom Ag Methods and apparatus providing for a presentation system for multimedia applications
AU7093394A (en) 1993-05-24 1994-12-20 Media Station, Inc. Interactive multimedia development system and method
US5694548A (en) * 1993-06-29 1997-12-02 International Business Machines Corporation System and method for providing multimedia quality of service sessions in a communications network
US5450489A (en) * 1993-10-29 1995-09-12 Time Warner Entertainment Co., L.P. System and method for authenticating software carriers
US5515490A (en) * 1993-11-05 1996-05-07 Xerox Corporation Method and system for temporally formatting data presentation in time-dependent documents
US5544305A (en) * 1994-01-25 1996-08-06 Apple Computer, Inc. System and method for creating and executing interactive interpersonal computer simulations
US5619636A (en) * 1994-02-17 1997-04-08 Autodesk, Inc. Multimedia publishing system
US5592602A (en) * 1994-05-17 1997-01-07 Macromedia, Inc. User interface and method for controlling and displaying multimedia motion, visual, and sound effects of an object on a display
US5778142A (en) * 1994-11-24 1998-07-07 Kabushiki Kaisha Toshiba Large capacity recording medium, method and apparatus for reproducing data from a large-capacity recording medium, and method and apparatus for recording data on a large-capacity recording medium
US5659793A (en) * 1994-12-22 1997-08-19 Bell Atlantic Video Services, Inc. Authoring tools for multimedia application development and network delivery
JP3109971B2 (en) * 1995-02-03 2000-11-20 オリンパス光学工業株式会社 Information reproducing system, information recording system, and recording medium therefor
US5680619A (en) * 1995-04-03 1997-10-21 Mfactory, Inc. Hierarchical encapsulation of instantiated objects in a multimedia authoring system
AU5442796A (en) * 1995-04-06 1996-10-23 Avid Technology, Inc. Graphical multimedia authoring system
US6199082B1 (en) * 1995-07-17 2001-03-06 Microsoft Corporation Method for delivering separate design and content in a multimedia publishing system
TW436777B (en) * 1995-09-29 2001-05-28 Matsushita Electric Ind Co Ltd A method and an apparatus for reproducing bitstream having non-sequential system clock data seamlessly therebetween
EP0810603A4 (en) 1995-10-09 2002-04-17 Matsushita Electric Ind Co Ltd Multimedia optical disc corresponding to different rating systems of different countries, and method and apparatus for reproduction
JPH09212349A (en) 1996-01-31 1997-08-15 Mitsubishi Electric Corp Contents generation support system
JP3345019B2 (en) * 1996-03-29 2002-11-18 松下電器産業株式会社 Recording method, reproducing apparatus, and reproducing method for recording medium with improved performance of interactive reproduction progress
KR100449075B1 (en) * 1996-04-05 2005-05-10 마츠시타 덴끼 산교 가부시키가이샤 Multimedia optical disc on which a plurality of channels of audio data and sub-picture data are recorded simultaneously with moving picture data, and a playback device thereof, and a playback method
JPH09282848A (en) * 1996-04-05 1997-10-31 Pioneer Electron Corp Information recording medium, and recording apparatus and reproducing apparatus therefor
SG79952A1 (en) * 1996-11-13 2001-04-17 Matsushita Electric Ind Co Ltd A system stream reproduction control information editing apparatus and a recording medium on which the method used therein is recorded
WO1998021722A1 (en) 1996-11-13 1998-05-22 Matsushita Electric Industrial Co., Ltd. Apparatus and method of generating bit stream for information recording disc storage which enables seamless reproduction of a plurality of pieces of image information, and recording medium on which program applied to the generating apparatus is recorded
US6263486B1 (en) * 1996-11-22 2001-07-17 International Business Machines Corp. Method and system for dynamic connections with intelligent default events and actions in an application development environment
US6061696A (en) * 1997-04-28 2000-05-09 Computer Associates Think, Inc. Generating multimedia documents
US6580870B1 (en) * 1997-11-28 2003-06-17 Kabushiki Kaisha Toshiba Systems and methods for reproducing audiovisual information with external information

Cited By (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010047454A1 (en) * 1999-12-08 2001-11-29 Pontus Soderstrom I/O method and apparatus for optical storage media
US7188147B2 (en) * 1999-12-08 2007-03-06 Axis Ab I/O method and apparatus for optical storage media
USRE44341E1 (en) * 2000-12-05 2013-07-02 Calligramme Holdings Fr L.L.C. System and method for producing storage media images
US20080162359A1 (en) * 2001-03-12 2008-07-03 Hyung Sun Kim Method of recording and reproducing sample data to/from a recording medium and sample data containing recording medium
US20060294015A1 (en) * 2001-03-12 2006-12-28 Kim Hyung S Method of recording and reproducing sample data to/from a recording medium and sample data containing recording medium
US8140437B2 (en) 2001-03-12 2012-03-20 Lg Electronics Inc. Method of recording and reproducing sample data to/from a recording medium and sample data containing recording medium
US7650311B2 (en) 2001-03-13 2010-01-19 Lg Electronics Inc. Read-only recording medium containing sample data and reproducing method thereof
US7634447B2 (en) 2001-03-13 2009-12-15 Lg Electronics Inc. Method of recording and reproducing sample data to/from a recording medium and sample data containing recording medium
US7788178B2 (en) 2001-03-13 2010-08-31 Lg Electronics Inc. Recording medium containing sample data and reproducing thereof
US20080240442A1 (en) * 2001-03-13 2008-10-02 Hyung Sun Kim Managing copy protecting information of encrypted data
US20060294014A1 (en) * 2001-03-13 2006-12-28 Kim Hyung S Method of recording and reproducing sample data to/from a recording medium and sample data containing recording medium
US20060294010A1 (en) * 2001-03-13 2006-12-28 Kim Hyung S Read-only recording medium containing sample data and reproducing method thereof
US7680740B2 (en) 2001-03-13 2010-03-16 Lg Electronics Inc. Managing copy protecting information of encrypted data
EP1411512A3 (en) * 2002-10-16 2006-04-12 Microsoft Corporation Adaptive menu system for media players
EP1411512A2 (en) * 2002-10-16 2004-04-21 Microsoft Corporation Adaptive menu system for media players
EP2261787A1 (en) * 2003-04-03 2010-12-15 Thomson Licensing Method for presenting menu buttons
EP1609052A2 (en) * 2003-04-03 2005-12-28 Thomson Licensing S.A. Method for presenting menu buttons
US7673020B2 (en) 2003-05-02 2010-03-02 Microsoft Corporation System and method for facilitating communication between a computing device and multiple categories of media devices
US20040221044A1 (en) * 2003-05-02 2004-11-04 Oren Rosenbloom System and method for facilitating communication between a computing device and multiple categories of media devices
US20050071764A1 (en) * 2003-09-28 2005-03-31 Denny Jaeger Method for creating a collection of multimedia interactive graphic elements using arrow logic
GB2408868B (en) * 2003-11-04 2006-07-26 Zoo Digital Group Plc Data processing system and method
US20050094971A1 (en) * 2003-11-04 2005-05-05 Zootech Limited Data processing system and method
GB2408868A (en) * 2003-11-04 2005-06-08 Zoo Digital Group Plc Authoring an audiovisual product to include menu data
US8630725B2 (en) * 2004-01-06 2014-01-14 Lg Electronics Inc. Recording medium having a data structure for managing sound data and recording and reproducing methods and apparatus
US20050149214A1 (en) * 2004-01-06 2005-07-07 Yoo Jea Y. Recording medium having a data structure for managing sound data and recording and reproducing methods and apparatus
US20050246375A1 (en) * 2004-05-03 2005-11-03 Microsoft Corporation System and method for encapsulation of representative sample of media object
US7502820B2 (en) * 2004-05-03 2009-03-10 Microsoft Corporation System and method for optimized property retrieval of stored objects
US7574655B2 (en) 2004-05-03 2009-08-11 Microsoft Corporation System and method for encapsulation of representative sample of media object
US20060031384A1 (en) * 2004-05-03 2006-02-09 Microsoft Corporation System and method for optimized property retrieval of stored objects
US7555554B2 (en) 2004-08-06 2009-06-30 Microsoft Corporation System and method for generating selectable extension to media transport protocol
US20060031545A1 (en) * 2004-08-06 2006-02-09 Microsoft Corporation System and method for generating selectable extension to media transport protocol
US9304664B2 (en) * 2004-12-02 2016-04-05 Thomas Licensing Method for generating multi-language menus
US20140181663A1 (en) * 2004-12-02 2014-06-26 Rhomson Licensing Method for generating multi-language menus
US20140181662A1 (en) * 2004-12-02 2014-06-26 Thomson Licensing Method for generating multi-language menus
US9298354B2 (en) * 2004-12-02 2016-03-29 Thomson Licensing Method for generating multi-language menus
US8490022B2 (en) * 2004-12-16 2013-07-16 Elizabeth Susan Stone Menus for audiovisual content
WO2006064049A1 (en) * 2004-12-16 2006-06-22 Zootech Limited Menus for audiovisual content
US20090034931A1 (en) * 2004-12-16 2009-02-05 Elizabeth Susan Stone Menus For Audiovisual Content
US9779778B2 (en) 2004-12-27 2017-10-03 Koninklijke Philips N.V. Method and apparatus for enabling an application to cooperate with running of a program
US20100119209A1 (en) * 2004-12-27 2010-05-13 Koninklijke Philips Electronics, N.V. Method and apparatus for enabling an application to cooperate with running of a program
WO2006070298A1 (en) * 2004-12-27 2006-07-06 Koninklijke Philips Electronics N.V. Method and apparatus for enabling an application to cooperate with running ofa program
US20080186816A1 (en) * 2005-02-28 2008-08-07 Koninklijke Philips Electronics, N.V. Fallback Mechanism For Data Reproduction
WO2006090300A1 (en) 2005-02-28 2006-08-31 Koninklijke Philips Electronics N.V. Fallback mechanism for data reproduction
US8787131B2 (en) 2005-02-28 2014-07-22 Koninklijke Philips N.V. Fallback mechanism for data reproduction
US20080219636A1 (en) * 2005-03-24 2008-09-11 Zootech Limited Authoring Audiovisual Content
WO2006100304A3 (en) * 2005-03-24 2006-12-07 Zootech Ltd Authoring audiovisual content
WO2006100304A2 (en) * 2005-03-24 2006-09-28 Zootech Limited Authoring audiovisual content
US20060294585A1 (en) * 2005-06-24 2006-12-28 Microsoft Corporation System and method for creating and managing a trusted constellation of personal digital devices
US7848621B2 (en) 2005-07-01 2010-12-07 Sony Corporation File format translation
US20070002166A1 (en) * 2005-07-01 2007-01-04 Eklund Don File format translation
US20070047924A1 (en) * 2005-08-29 2007-03-01 Eklund Don Templatized commands in disc authoring
US7949229B2 (en) 2005-08-29 2011-05-24 Sony Corporation Discontinuous timeline in disc authoring
US20080238938A1 (en) * 2005-08-29 2008-10-02 Eklund Don Effects for interactive graphic data in disc authoring
EP1946261A4 (en) * 2005-08-29 2010-06-16 Sony Corp Portfolios in disc authoring
US7773864B2 (en) 2005-08-29 2010-08-10 Sony Corporation Slicing interactive graphic data in disc authoring
US20080244407A1 (en) * 2005-08-29 2008-10-02 Eklund Don Abstractions in disc authoring
US20070050717A1 (en) * 2005-08-29 2007-03-01 Eklund Don Slicing interactive graphic data in disc authoring
US20070047923A1 (en) * 2005-08-29 2007-03-01 Eklund Don Playable content
US8644682B2 (en) 2005-08-29 2014-02-04 Sony Corporation Playable content
WO2007028063A3 (en) * 2005-08-29 2007-10-25 Sony Corp Portfolios in disc authoring
US20070047922A1 (en) * 2005-08-29 2007-03-01 Eklund Don Discontinuous timeline in disc authoring
US8229278B2 (en) 2005-08-29 2012-07-24 Sony Corporation Portfolios in disc authoring
US20070077039A1 (en) * 2005-08-29 2007-04-05 Eklund Don Portfolios in disc authoring
US8213771B2 (en) 2005-08-29 2012-07-03 Sony Corporation Templatized commands in disc authoring
US20070079010A1 (en) * 2005-10-04 2007-04-05 Microsoft Corporation Media exchange protocol and devices using the same
US8117342B2 (en) 2005-10-04 2012-02-14 Microsoft Corporation Media exchange protocol supporting format conversion of media items
TWI466110B (en) * 2005-12-23 2014-12-21 Koninkl Philips Electronics Nv Methdo and apparatus for enabling an application running with a program
US20110185269A1 (en) * 2006-06-15 2011-07-28 Microsoft Corporation Audio/visual editing tool
US20070292106A1 (en) * 2006-06-15 2007-12-20 Microsoft Corporation Audio/visual editing tool
US7945142B2 (en) 2006-06-15 2011-05-17 Microsoft Corporation Audio/visual editing tool
US8276075B2 (en) * 2006-06-23 2012-09-25 Sony Corporation Apparatus, method, and computer program for processing information
US20080022227A1 (en) * 2006-06-23 2008-01-24 Sony Corporation Apparatus, method, and computer program for processing information
US8037460B2 (en) * 2007-01-26 2011-10-11 Oracle International Corporation Code persistence and dependency management for dynamic compilation in a database management system
US8341609B2 (en) 2007-01-26 2012-12-25 Oracle International Corporation Code generation in the presence of paged memory
US20080184210A1 (en) * 2007-01-26 2008-07-31 Oracle International Corporation Asynchronous dynamic compilation based on multi-session profiling to produce shared native code
US20080184212A1 (en) * 2007-01-26 2008-07-31 Oracle International Corporation Code persistence and dependency management for dynamic compilation in a database management system
US20080184195A1 (en) * 2007-01-26 2008-07-31 Oracle International Corporation Code generation in the presence of paged memory
US8413125B2 (en) 2007-01-26 2013-04-02 Oracle International Corporation Asynchronous dynamic compilation based on multi-session profiling to produce shared native code
US8417102B2 (en) * 2007-02-14 2013-04-09 Corel Corporation Machine-implemented authoring method for a high definition digital versatile disc, and a computer readable storage medium for implementing the same
US20080193105A1 (en) * 2007-02-14 2008-08-14 Sheng-Wen Bai Machine-implemented authoring method for a high definition digital versatile disc, and a computer readable storage medium for implementing the same
US9253465B2 (en) * 2007-08-29 2016-02-02 Lg Electronics Inc. Method of displaying recorded material and display device using the same
US20130251335A1 (en) * 2007-08-29 2013-09-26 Lg Electronics Inc. Method of displaying recorded material and display device using the same
US20090113403A1 (en) * 2007-09-27 2009-04-30 Microsoft Corporation Replacing no operations with auxiliary code
US8615163B2 (en) * 2009-12-09 2013-12-24 Sony Corporation Framework, system and method for rapid deployment of interactive applications
US20110135280A1 (en) * 2009-12-09 2011-06-09 Sony Corporation Framework, system and method for rapid deployment of interactive applications
US11297382B2 (en) 2011-08-25 2022-04-05 Comcast Cable Communications, Llc Application triggering
US20130191816A1 (en) * 2012-01-20 2013-07-25 Qualcomm Incorporated Optimizing texture commands for graphics processing unit
US9256408B2 (en) * 2012-01-20 2016-02-09 Qualcomm Incorporated Optimizing texture commands for graphics processing unit
US11665394B2 (en) 2013-03-13 2023-05-30 Comcast Cable Communications, Llc Selective interactivity
US11877026B2 (en) 2013-03-13 2024-01-16 Comcast Cable Communications, Llc Selective interactivity
US11076205B2 (en) * 2014-03-07 2021-07-27 Comcast Cable Communications, Llc Retrieving supplemental content
US20150256903A1 (en) * 2014-03-07 2015-09-10 Comcast Cable Communications, Llc Retrieving supplemental content
US11736778B2 (en) 2014-03-07 2023-08-22 Comcast Cable Communications, Llc Retrieving supplemental content
US9699488B2 (en) * 2014-06-02 2017-07-04 Google Inc. Smart snap to interesting points in media content
US11657088B1 (en) * 2017-11-08 2023-05-23 Amazon Technologies, Inc. Accessible index objects for graph data structures

Also Published As

Publication number Publication date
US20080046857A1 (en) 2008-02-21
EP1798728A3 (en) 2007-10-10
EP1801802A3 (en) 2007-10-10
EP1057120A2 (en) 2000-12-06
DE69935851T2 (en) 2008-01-10
CA2318059C (en) 2004-01-13
US8208789B2 (en) 2012-06-26
US8180194B2 (en) 2012-05-15
CA2318059A1 (en) 1999-07-29
AU772108B2 (en) 2004-04-08
US7200836B2 (en) 2007-04-03
WO1999038098A2 (en) 1999-07-29
EP2270794A2 (en) 2011-01-05
EP2270794A3 (en) 2011-09-28
JP2002501277A (en) 2002-01-15
DE69935851D1 (en) 2007-05-31
EP1801802A2 (en) 2007-06-27
US20030005442A1 (en) 2003-01-02
WO1999038098A3 (en) 1999-09-23
EP1798728A2 (en) 2007-06-20
US6453459B1 (en) 2002-09-17
AU2339099A (en) 1999-08-09
US20070166009A1 (en) 2007-07-19
EP1057120B1 (en) 2007-04-18
ATE360235T1 (en) 2007-05-15
JP4101462B2 (en) 2008-06-18

Similar Documents

Publication Publication Date Title
US6453459B1 (en) Menu authoring system and method for automatically performing low-level DVD configuration functions and thereby ease an author's job
JP4491035B2 (en) Playback device, debug device, system LSI, program
CN1754225B (en) Playback device, recording method and playback method
JP2004529566A (en) Authoring interactive media without access to the original source material
JP2004529566A5 (en)
KR20050109665A (en) Method of reproducing along with data recorded on storage medium and downloaded data and apparatus thereof
US8644682B2 (en) Playable content
JP2009506479A5 (en)
US20080244407A1 (en) Abstractions in disc authoring
JP2007534092A (en) Preparing a navigation structure for audiovisual works
AU2004200812B2 (en) Authoring system and method
AU2007202660B2 (en) Video program authoring systems and methods
CA2444920C (en) Dvd-authoring system and method
CA2505480C (en) Dvd-authoring system and method
JP2006172583A (en) Reproducing device, reproducing method, recording device, recording medium, program storage medium, and program
KR20060030608A (en) Recording mdium, method and apparatus for reproducing data from the recording medium
JP4355166B2 (en) Macro description file processing program, macro description file processing apparatus, and macro description file processing method
KR20070005918A (en) Optical disc, player for the optical disc and its play back method
JP2003084974A (en) Program forming device, and program forming method

Legal Events

Date Code Title Description
AS Assignment

Owner name: SPRUCE TECHNOLOGIES, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BRODERSEN, RAINER;WALLACE, GREGORY KENT;REEL/FRAME:011116/0716

Effective date: 20000712

AS Assignment

Owner name: JAPAN INFORMATION PROCESSING SERVICE CO., LTD., JA

Free format text: SECURITY INTEREST;ASSIGNOR:SPRUCE TECHNOLOGIES, INC.;REEL/FRAME:011872/0298

Effective date: 20010511

AS Assignment

Owner name: SPRUCE TECHNOLOGIES, INC., CALIFORNIA

Free format text: RELEASE AND REASSIGNMENT;ASSIGNOR:JAPAN INFORMATION PROCESSING SERVICE CO., LTD.;REEL/FRAME:011672/0495

Effective date: 20010613

AS Assignment

Owner name: FINANCETECH, INC., AS COLLATERAL AGENT, GEORGIA

Free format text: SECURITY INTEREST;ASSIGNOR:SPRUCE TECHNOLOGIES, INC.;REEL/FRAME:011701/0549

Effective date: 20010613

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FEPP Fee payment procedure

Free format text: PAT HOLDER NO LONGER CLAIMS SMALL ENTITY STATUS, ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: STOL); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

REFU Refund

Free format text: REFUND - SURCHARGE, PETITION TO ACCEPT PYMT AFTER EXP, UNINTENTIONAL (ORIGINAL EVENT CODE: R2551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: APPLE COMPUTER, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SPRUCE TECHNOLOGIES, INC.;REEL/FRAME:018442/0517

Effective date: 20061025

AS Assignment

Owner name: APPLE, INC., CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:APPLE COMPUTER, INC.;REEL/FRAME:019028/0611

Effective date: 20070110

AS Assignment

Owner name: APPLE INC., CALIFORNIA

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY NAME PREVIOUSLY RECORDED ON REEL 019028 FRAME 0611. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME.;ASSIGNOR:APPLE COMPUTER, INC.;REEL/FRAME:020403/0769

Effective date: 20070110

Owner name: APPLE INC., CALIFORNIA

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY NAME PREVIOUSLY RECORDED ON REEL 019028 FRAME 0611. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME;ASSIGNOR:APPLE COMPUTER, INC.;REEL/FRAME:020403/0769

Effective date: 20070110

FPAY Fee payment

Year of fee payment: 8

FPAY Fee payment

Year of fee payment: 12