Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberUS20060004778 A1
Publication typeApplication
Application numberUS 11/210,618
Publication dateJan 5, 2006
Filing dateAug 23, 2005
Priority dateJul 7, 2000
Also published asUS7346920, US20020088011, WO2002005104A1, WO2002005104A8, WO2002005104A9
Publication number11210618, 210618, US 2006/0004778 A1, US 2006/004778 A1, US 20060004778 A1, US 20060004778A1, US 2006004778 A1, US 2006004778A1, US-A1-20060004778, US-A1-2006004778, US2006/0004778A1, US2006/004778A1, US20060004778 A1, US20060004778A1, US2006004778 A1, US2006004778A1
InventorsAllan Lamkin, Todd Collart
Original AssigneeInteractual Technologies, Inc.
Export CitationBiBTeX, EndNote, RefMan
External Links: USPTO, USPTO Assignment, Espacenet
System, method and article of manufacture for a common cross platform framework for development of DVD-video content integrated with ROM content
US 20060004778 A1
Abstract
A method for providing enhanced content for play across multiple play platforms employs steps of delivering media content to a client device; delivering HTML content to a client device, the HTML content being accessible and usable by a plurality of client device platforms; activating a browser to access the HTML content, the browser being located on and compatible for use with the client device; activating firmware on the client device to access the media content; and incorporating the accessed HTML content with the accessed media content.
Images(9)
Previous page
Next page
Claims(31)
1. An information storage medium comprising:
AV data including at least one video object that is constituted of video object units each having an audio pack, a video pack, and a navigation pack; and
event occurrence information for generating an event designated based on a data structure of the AV data.
2. The information storage medium of claim 1, further comprising:
a markup document for outputting an AV screen corresponding to the AV data, wherein the event occurrence information is recorded in the markup document.
3. The information storage medium of claim 1, wherein the AV data comprises a video title set, a video object constituting the video title set, and the video object units constituting the video object and including the audio pack, the video pack, and the navigation pack, and the event occurrence information is for requesting that a trigger event occurs when one of the video object units corresponding to the navigation pack of the video title set is reproduced.
4. The information storage medium of claim 3, wherein the event occurrence information requests that designated contents are output on a screen when one of the video object units corresponding to the navigation pack of the video title set is reproduced.
5. The information storage medium of claim 4, further comprising markup document data including the event occurrence information to output a markup screen, wherein the designated contents are displayed on a predetermined portion of the markup screen on which a markup document is reproduced.
6. The information storage medium of claim 4, wherein the event occurrence information comprises:
a trigger event identifier;
a video title set identifier of a designated video title set; and
a navigation pack identifier of a designated navigation pack.
7. The information storage medium of claim 6, wherein the trigger event identifier comprises:
an application program interface for setting the trigger event and canceling the trigger event.
8. The information storage medium of claim 7, wherein the application program interface comprises: parameters including the trigger event identifier, the video title set identifier of the designated video title set, and the navigation identifier of the designated navigation pack.
9. The information storage medium of claim 6, wherein the video title set identifier comprises a video title set number, and the navigation pack identifier comprises: a navigation pack number.
10. The information storage medium of claim 6, wherein the video title set identifier comprises a video object number of the video title set to which a currently reproduced title belongs, and the navigation pack identifier is determined by a point in time at which reproduction of one of the video object units starts.
11. The information storage medium of claim 6, wherein the video title set identifier comprises a program chain number, and the navigation identifier comprises: one of a time and a place of reproduction of a program chain displayed on the screen using a cell elapse time.
12. The information storage medium of claim 6, wherein the video title set identifier comprises a title number, and the navigation pack identifier comprises: one of a time and a place of reproduction of the video title set.
13. A method of playing an information storage medium comprising AV data, which includes a video title set containing at least one video object containing video object units each having an audio pack, a video pack, and a navigation pack, and event occurrence information for generating a predetermined event, the method comprising: interpreting the event occurrence information; and generating the event if a data structure matched with a result of the interpretation of the event occurrence information is discovered while the AV data is being decoded.
14. The method of claim 13, wherein the an information storage medium comprises a markup document containing the event occurrence information, and the interpreting of the event occurrence information comprises: reading event occurrence information from the markup document in which a display window for displaying an AV screen on which the video object is reproduced is defined; and detecting place in which the event matched with the interpretation result occurs.
15. The method of claim 14, wherein the video object that is constituted of cells each having the audio pack, the video pack, and the navigation pack, and the generating of the event comprises: reproducing a portion of the AV data corresponding to the place in which the event occurs.
16. The method of claim 15, wherein the generating of the event comprises: outputting designated contents on a screen at a point in time or several milliseconds after the reproduction of the portion of the video object unit corresponding to the navigation pack of the video title set.
17. The method of claim 13, wherein the event occurrence information comprises: a trigger event identifier; a designated video title set identifier; and a designated navigation pack identifier.
18. The method of claim 17, wherein the trigger event identifier comprises: a first identifier for setting a trigger event; and a second identifier for canceling the trigger event.
19. The method of claim 13, wherein the event occurrence information is implemented as an application program interface.
20. The method of claim 19, wherein the application program interface comprises: parameters including the trigger event identifier, the video title set identifier of a designated video title set, and the navigation pack identifier of a designated navigation pack.
21. An apparatus for playing an information storage medium comprising AV data, which includes a video title set containing at least one video object that is constituted of video object units each having an audio pack, a video pack, and a navigation pack, and event occurrence information for generating a predetermined event, the apparatus comprising: a reader reading the AV data or the event occurrence information; a presentation engine interpreting the read event occurrence information, outputting the interpretation result, and generating the event; and a decoder requesting the presentation engine to generate an appropriate event if a data structure of the AV data matched with the interpretation result received from the presentation engine is discovered during decoding the AV data.
22. The apparatus claim 21, wherein the information storage medium comprises markup document data containing the event occurrence information, and the presentation engine interprets the event occurrence information read from the markup document defining a display window for displaying an AV screen on which the AV data is reproduced.
23. The apparatus of claim 22, wherein the presentation engine generates the event when the AV data corresponding to the navigation pack of a designated video title set is reproduced.
24. The apparatus of claim 23, wherein the presentation engine provides a screen in accordance with the markup document data and outputs designated contents on the screen at a point in time when or several tens of milliseconds after a video object unit corresponding to the navigation pack of the designated video title set starts being reproduced.
25. The apparatus of claim 24, wherein the event occurrence information is implemented as an application program interface.
26. The apparatus of claim 25, wherein the application program interface comprises: parameters including a trigger event identifier, a video title set identifier of the designated video title set, and a navigation pack identifier of the designated navigation pack.
27. The apparatus of claim 26, wherein the trigger event identifier comprises: a first identifier for setting the event; and a second identifier for canceling the event.
28. An information storage medium comprising:
AV data having a data structure, which includes a video title set containing a video object having a plurality of video object units each having an audio pack, a video pack, and a navigation pack; and
markup document data containing event occurrence information generating a designated event based on the data structure of the AV data.
29. The information storage medium of claim 28, wherein the event occurrence information comprises:
event information; and
a request displaying a content of the AV data on a designated portion of a screen provided by the markup document when the data structure of the AV data is matched with the event information.
30. A method of reproducing data from an information storage medium comprising AV data, which comprises a data structure including a video title set containing a video object having a plurality of video object units each having an audio pack, a video pack, and a navigation pack, and markup document data comprising event occurrence information, the method comprising:
reading the markup document data; interpreting the event occurrence information; generating a screen provided by the markup document data; and
displaying a content of the AV data on a portion of the screen according to an event of event occurrence information when the data structure of the AV data is matched with the event occurrence information.
31. The method of claim 30, wherein the markup document data comprises parameters including a trigger event identifier, a video title set identifier of a designated video title set, and a navigation pack identifier of a designated navigation pack, and generating of the content comprises:
matching the parameters of the markup document data with the navigation pack of the video title set.
Description
  • [0001]
    This application is a divisional application of U.S. patent application Ser. No. 09/898,479 for “SYSTEM, METHOD AND ARTICLE OF MANUFACTURE FOR A. COMMON CROSS PLATFORM FRAMEWORK FOR DEVELOPMENT OF DVD-VIDEO CONTENT INTEGRATED WITH ROM CONTENT” filed Jul. 2, 2001, which is a non-provisional claiming priority under 35 U.S.C. 119(e) to U.S. Provisional Patent Application Ser. No. 60/216,822 for “SYSTEM, METHOD AND ARTICLE OF MANUFACTURE FOR A COMMON CROSS PLATFORM FRAMEWORK FOR DEVELOPMENT OF DVD-VIDEO CONTENT INTEGRATED WITH ROM CONTENT” filed Jul. 7, 2000, all of which are incorporated herein by reference as if set for in their entirety.
  • BACKGROUND OF THE INVENTION
  • [0002]
    The present invention relates to enhancement of multimedia content and more particularly to a system, method and apparatus for enhancing multimedia content with supplemental content.
  • [0003]
    Multimedia computer systems have become increasingly popular over the last several years due to their versatility and their interactive presentation style. A multimedia computer system can be defined as a computer system having a combination of video and audio outputs for presentation of audio-visual displays. A modern multimedia computer system typically includes one or more storage devices such as an optical drive, a CD-ROM, DVD (DVD-Video or DVD Audio etc), Laser Disc, Video Disc or Audio Disc, or a hard drive. Audio and video data are typically stored on one or more of these mass storage devices. In some file formats the audio and video are interleaved together in a single file, while in other formats the audio and video data are stored in different files, many times on different storage media. Audio and video data for a multimedia display may also be stored in separate computer systems that are networked together. In this instance, the computer system presenting the multimedia display would receive a portion of the necessary data from the other computer system via the network-cabling.
  • [0004]
    Multimedia computer systems have become increasingly popular over the last several years due to their versatility and their interactive presentation style. A multimedia computer system can be defined as a computer system having a combination of video and audio outputs for presentation of audio-visual displays. A modern multimedia computer system typically includes one or more storage devices such as an optical drive, a CD-ROM, a hard drive, a videodisc, or an audio disc, and audio and video data are typically stored on one or more of these mass storage devices. In some file formats the audio and video are interleaved together in a single file, while in other formats the audio and video data are stored in different files, many times on different storage media. Audio and video data for a multimedia display may also be stored in separate computer systems that are networked together. In this instance, the computer system presenting the multimedia display would receive a portion of the necessary data from the other computer system via the network cabling.
  • [0005]
    Graphic images used in Windows multimedia applications can be created in either of two ways, these being bit-mapped images and vector-based images. Bit-mapped images comprise a plurality of picture elements (pixels) and are created by assigning a color to each pixel inside the image boundary. Most bit-mapped color images require one byte per pixel for storage, so large bit-mapped images create correspondingly large files. For example, a full-screen, 256-color image in 640-by-480-pixel VGA mode requires 307,200 bytes of storage, if the data is not compressed. Vector-based images are created by defining the end points (corners), thickness, color, pattern and curvature of lines and solid objects within an image. Thus, a vector-based image includes a definition that consists of a numerical representation of the coordinates of the object, referenced to a corner of the image.
  • [0006]
    Bit-mapped images are the most prevalent type of image storage format, and the most common bit-mapped-image file formats are as follows. A file format referred to as BMP is used for Windows bit-map files in 1-, 2-, 4-, 8-, and 24-bit color depths. BMP files contain a bit-map header that defines the size of the image, the number of color planes, the type of compression used (if any), and the palette used. The Windows DIB (device-independent bit-map) format is a variant of the BMP format that includes a color table defining the RGB (red green blue) values of the colors used. Other types of bit-map formats include the TIF (tagged image format file), the PCX (Zsoft Personal Computer Paintbrush Bitmap) file format, the GIF (graphics interchange file) format, and the TGA (Texas Instruments Graphic Architecture) file format.
  • [0007]
    The standard Windows format for bit-mapped images is a 256-color device-independent bit map (DIB) with a BMP (the Windows bit-mapped file format) or sometimes a DIB extension. The standard Windows format for vector-based images is referred to as WMF (Windows meta file).
  • [0008]
    Full-motion video implies that video images shown on the computer's screen simulate those of a television set with identical (30 frames-per-second) frame rates, and that these images are accompanied by high-quality stereo sound. A large amount of storage is required for high-resolution color images, not to mention a full-motion video sequence. For example, a single frame of NTSC video at 640-by-400-pixel resolution with 16-bit color requires 512K of data per frame. At 30 flames per second, over 15 Megabytes of data storage are required for each second of full motion video. Due to the large amount of storage required for full motion video, various types of video compression algorithms are used to reduce the amount of necessary storage. Video compression can be performed either in real-time, i.e., on the fly during video capture, or on the stored video file after the video data has been captured and stored on the media. In addition, different video compression methods exist for still graphic images and for full-motion video.
  • [0009]
    Examples of video data compression for still graphic images are RLE (run-length encoding) and JPEG (Joint Photographic Experts Group) compression. RLE is the standard compression method for Windows BMP and DIB files. The RLE compression method operates by testing for duplicated pixels in a single line of the bit map and stores the number of consecutive duplicate pixels rather than the data for the pixel itself. JPEG compression is a group of related standards that provide either lossless (no image quality degradation) or lossy (imperceptible to severe degradation) compression types. Although JPEG compression was designed for the compression of still images rather than video, several manufacturers supply JPEG compression adapter cards for motion video applications.
  • [0010]
    In contrast to compression algorithms for still images, most video compression algorithms are designed to compress full motion video. Video compression algorithms for motion video generally use a concept referred to as interframe compression, which involves storing only the differences between successive frames in the data file. Interframe compression begins by digitizing the entire image of a key frame. Successive frames are compared with the key frame, and only the differences between the digitized data from the key frame and from the successive frames are stored. Periodically, such as when new scenes are displayed, new key frames are digitized and stored, and subsequent comparisons begin from this new reference point. It is noted that interframe compression ratios are content-dependent, i.e., if the video clip being compressed includes many abrupt scene transitions from one image to another, the compression is less efficient. Examples of video compression which use an interframe compression technique are MPEG, DVI and Indeo, among others.
  • [0011]
    MPEG (Moving Pictures Experts Group) compression is a set of methods for compression and decompression of full motion video images that uses the interframe compression technique described above. The MPEG standard requires that sound be recorded simultaneously with the video data, and the video and audio data are interleaved in a single file to attempt to maintain the video and audio synchronized during playback. The audio data is typically compressed as well, and the MPEG standard specifies an audio compression method referred to as ADPCM (Adaptive Differential Pulse Code Modulation) for audio data.
  • [0012]
    A standard referred to as Digital Video Interactive (DVI) format developed by Intel Corporation is a compression and storage format for full-motion video and high-fidelity audio data. The DVI standard uses interframe compression techniques similar to that of the MPEG standard and uses ADPCM compression for audio data. The compression method used in DVI is referred to as RTV 2.0 (real time video), and this compression method is incorporated into Intel's AVK (audio/video kernel) software for its DVI product line. IBM has adopted DVI as the standard for displaying video for its Ultimedia product line. The DVI file format is based on the Intel i750 chipset and is supported through the Media Control Interface (MCI) for Windows. Microsoft and Intel jointly announced the creation of the DV MCI (digital video media control interface) command set for Windows 3.1 in 1992.
  • [0013]
    The Microsoft Audio Video Interleaved (AVI) format is a special compressed file structure format designed to enable video images and synchronized sound stored on CD-ROMs to be played on PCs with standard VGA displays and audio adapter cards. The AVI compression method uses an interframe method, i.e., the differences between successive frames are stored in a manner similar to the compression methods used in DVI and MPEG. The AVI format uses symmetrical software compression-decompression techniques, i.e., both compression and decompression are performed in real time. Thus AVI files can be created by recording video images and sound in AVI format from a VCR or television broadcast in real time, if enough free hard disk space is available.
  • [0014]
    As discussed above, such audio and video content is often stored on media such as CD-ROM or digital video disc (DVD). However, once a vendor has delivered such content to a customer, the vendor loses any practical control over the product. Even if the product is delivered under license rather than out right sale, it has traditionally been difficult to prevent a customer from copying the content or providing the content to any number of friends so that they might illegally copy the content.
  • [0015]
    The now familiar compact disk preserves information as a series of microscopic pits and smooth areas, oriented in concentric circular or helical tracks, on the otherwise smooth, planar surface of an annular disk. Recorded information is read from a compact disk by directing a focused laser beam along the recorded tracks, and detecting variations in the intensity of the laser beam along the recorded tracks, and detecting variations in the intensity of the laser beam as it encounters the microscopic pits and smooth areas on the disk. The coherence and relatively short wavelength of laser radiation enables large volumes of information to be written onto very small spaces of a recording medium.
  • [0016]
    Compact disks were first introduced in the music recording industry in 1982, and now account for 43% of all recorded music sales. In the United States alone, over three hundred million compact disks are sold annually, with a retail value of over three billion dollars, according to the Recording Industry Association of America. The most prevalent format for recording multimedia events onto such disks is Digital Video or Versatile Disk (DVD). The DVD is a read only format for recording a relatively large amount of high quality data. When delivered to a user, the disk is input into a CD-ROM player on a client device such as a computer. Software on the client device allows the DVD formatted data to be read.
  • [0017]
    Once the DVD disk has been manufactured the content is essentially fixed. The content that the user can access from the disk is limited to the content provided when the disk was manufactured. In order to update the information, a new disk must be created and delivered to the user. This is an expensive and inconvenient solution.
  • [0018]
    Thus there remains a need for a system for easily and efficiently updating content provided on a DVD-disk. Such a system would preferably allow update information to be delivered via a network such as the Internet. In addition, such a system would take advantage of software capabilities already present on the client device, and would importantly be able to function on the many different possible platforms of client devices, such as for example Macintosh, PC or a set top box.
  • [0019]
    Disc technologies that are re-writeable like a CD-RW or technologies that allow multiple sessions can be used for adding additional or updated content directly to the disc. Thus for multi-session discs, where the first session of the disc is write-once and additional sessions on the disc can be either write-one, or rewriteable, additional or updated content can be added to these additional sessions of the disc. This includes such technologies as the “Orange Book” specification for CD-ROM, including CD-PROM and Multimedia discs such a Dataplay.
  • [0020]
    Flash memory based and other similar memory technologies can be used for storing multimedia and additional or updated content as well. This includes IBM technology that uses a USB interface to coupled a personal computer to a storage device such as a “keychain” memory device.
  • [0021]
    The present invention advantageously addresses the above and other needs.
  • SUMMARY OF THE INVENTION
  • [0022]
    The present invention advantageously addresses the needs above as well as other needs by providing the enhancement of multimedia content and more particularly to providing a system, method and apparatus for enhancing multimedia content with supplemental content.
  • [0023]
    In one embodiment, the invention can be characterized as a method for providing enhanced content for play across multiple play platforms. The method employs steps of delivering media content to a client device; delivering HTML content to a client device, the HTML content being accessible and usable by a plurality of client device platforms; activating a browser to access the HTML content, the browser being located on and compatible for use with the client device; activating firmware on the client device to access the media content; and incorporating the accessed HTML content with the accessed media content.
  • [0024]
    In another embodiment, the invention can be characterized as a method for enhancing multimedia content. The method employs steps of providing a recording medium; recording content onto the recording medium; integrating HTML content with the recorded content; accessing the recorded content and the HTML content; and playing a multimedia event based on the accessed content.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • [0025]
    The above and other aspects, features and advantages of the present invention will be more apparent from the following more particular description thereof, presented in conjunction with the following drawings wherein:
  • [0026]
    FIG. 1 is a schematic diagram of a hardware implementation of one embodiment of the present invention;
  • [0027]
    FIG. 2 is a schematic diagram of a system for enhancing a DVD multimedia experience;
  • [0028]
    FIG. 2A is a flow chart illustrating steps traversed upon insertion of a DVD disk (or other media) into a device, such as a DVD player;
  • [0029]
    FIG. 3 is a flowchart illustrating logic for incorporating update information to supplement a DVD multimedia play experience;
  • [0030]
    FIG. 4 is graphical representation of data layouts for bitmap layers;
  • [0031]
    FIG. 5 is a flowchart illustrating a method for providing an enhanced multimedia experience; and
  • [0032]
    FIG. 6 is a flowchart illustrating a method for enhancing DVD content with ROM content.
  • [0033]
    Corresponding reference characters indicate corresponding components throughout the several views of the drawings.
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • [0034]
    The following description of the presently contemplated best mode of practicing the invention is not to be taken in a limiting sense, but is made merely for the purpose of describing the general principles of the invention. The scope of the invention should be determined with reference to the claims.
  • [0035]
    FIG. 1 illustrates a system for providing enhanced DVD content for play across multiple user platforms. Both DVD-Video content and HTML content are recorded on DVD discs and provided to a user. The HTML content includes various directories that allow it to be accessed by multiple platforms of user devices. Once inserted into a user device, browser software on the user device accesses the HTML content and supplies supplemental update information to enhance the play experience provided by the DVD-Video content. The supplemental update information can be either retrieved via a network such as the Internet or can be provided directly from the HTML data itself stored on the DVD disc.
  • [0036]
    In various embodiments, the client devices may take the form of computers, televisions, stereos, home appliances, or any other types of devices. In one embodiment, the client apparatuses and the host computer each include a computer such as an IBM compatible computer, Apple Macintosh computer or UNIX based workstation.
  • [0037]
    A representative hardware environment is depicted in FIG. 1, which illustrates a typical hardware configuration of a workstation in accordance with a preferred embodiment having a central processing unit 110, such as a microprocessor, and a number of other units interconnected via a system bus 112. The workstation shown in FIG. 1 includes a Random Access Memory (RAM) 114, Read Only Memory (ROM) 116, an I/O adapter 118 for connecting peripheral devices such as disk storage units 120 (i.e. DVD playback device) to the bus 112, a user interface adapter 122 for connecting a keyboard 124, a mouse 126, a speaker 128, a microphone 132, and/or other user interface devices such as a touch screen (not shown) to the bus 112, communication adapter 134 for connecting the workstation to a communication network (e.g., a data processing network) and a display adapter 136 for connecting the bus 112 to a display device 138. The workstation typically has resident thereon an operating system such as the Microsoft Windows NT/2000 or Windows 95/98/ME Operating System (OS), the IBM OS/2 operating system, the MAC OS, or UNIX operating system. Those skilled in the art will appreciate that the present invention may also be implemented on platforms and operating systems other than those mentioned.
  • [0038]
    A preferred embodiment is written using JAVA, C, HTML and the C++ language and utilizes object oriented programming methodology. Object oriented programming (OOP) has become increasingly used to develop complex applications. As OOP moves toward the mainstream of software design and development, various software solutions require adaptation to make use of the benefits of OOP. A need exists for these principles of OOP to be applied to a messaging interface of an electronic messaging system such that a set of OOP classes and objects for the messaging interface can be provided.
  • [0039]
    A preferred embodiment of the invention utilizes Hypertext Markup Language (HTML) to implement documents on the Internet together with a general-purpose secure communication protocol for a transport medium between the client and the Newco. HTTP or other protocols could be readily substituted for HTML without undue experimentation. Information on these products is available in T. Berners-Lee, D. Connoly, “RFC 1866: Hypertext Markup Language—2.0” (November 1995); and R. Fielding, H, Frystyk, T. Berners-Lee, J. Gettys and J. C. Mogul, “Hypertext Transfer Protocol—HTTP/1.1: HTTP Working Group Internet Draft” (May 2, 1996). HTML is a simple data format used to create hypertext documents that are portable from one platform to another. HTML documents are SGML documents with generic semantics that are appropriate for representing information from a wide range of domains. HTML has been in use by the World-Wide Web global information initiative since 1990. HTML is an application of ISO Standard 8879; 1986 Information Processing Text and Office Systems; Standard Generalized Markup Language (SGML).
  • [0040]
    To date, Web development tools have been limited in their ability to create dynamic Web applications which span from client to server and interoperate with existing computing resources. Until recently, HTML has been the dominant technology used in development of Web-based solutions. However, HTML has proven to be inadequate in the following areas:
      • Poor performance;
      • Restricted user interface capabilities;
      • Can only produce static Web pages;
      • Lack of interoperability with existing applications and data; and
      • Inability to scale.
  • [0046]
    Sun Microsystem's Java language solves many of the client-side problems by:
      • Improving performance on the client side;
      • Enabling the creation of dynamic, real-time Web applications; and
      • Providing the ability to create a wide variety of user interface components.
  • [0050]
    With Java, developers can create robust User Interface (UI) components. Custom “widgets” (e.g., real-time stock tickers, animated icons, etc.) can be created, and client-side performance is improved. Unlike HTML, Java supports the notion of client-side validation, offloading appropriate processing onto the client for improved performance. Dynamic, real-time Web pages can be created. Using the above-mentioned custom UI components, dynamic Web pages can also be created.
  • [0051]
    Sun's Java language has emerged as an industry-recognized language for “programming the Internet.” Sun defines Java as: “a simple, object-oriented, distributed, interpreted, robust, secure, architecture-neutral, portable, high-performance, multithreaded, dynamic, buzzword-compliant, general-purpose programming language. Java supports programming for the Internet in the form of platform-independent Java applets.” Java applets are small, specialized applications that comply with Sun's Java Application Programming Interface (API) allowing developers to add “interactive content” to Web documents (e.g., simple animations, page adornments, basic games, etc.). Applets execute within a Java-compatible browser (e.g., Netscape Navigator) by copying code from the server to client. From a language standpoint, Java's core feature set is based on C++. Sun's Java literature states that Java is basically, “C++ with extensions from Objective C for more dynamic method resolution.”
  • [0052]
    Another technology that provides similar function to JAVA is provided by Microsoft and ActiveX Technologies, to give developers and Web designers wherewithal to build dynamic content for the Internet and personal computers. ActiveX includes tools for developing animation, 3-D virtual reality, video and other multimedia content. The tools use Internet standards, work on multiple platforms, and are being supported by over 100 companies. The group's building blocks are called ActiveX Controls, small, fast components that enable developers to embed parts of software in hypertext markup language (HTML) pages. ActiveX Controls work with a variety of programming languages including Microsoft Visual C++, Borland Delphi, Microsoft Visual Basic programming system and, in the future, Microsoft's development tool for Java, code named “Jakarta.” ActiveX Technologies also includes ActiveX Server Framework, allowing developers to create server applications. One of ordinary skill in the art readily recognizes that ActiveX could be substituted for JAVA without undue experimentation to practice the invention.
  • [0053]
    In accordance with one embodiment, a cross-platform DVD specification defined, which is called InterActual Technologies Cross Platform, hereafter referred to by the name ITX. By following the ITX specification, DVD authors can create HTML-enhanced DVD-Video/Audio content that can play reliably across multiple playback platforms, ranging from computers (such as Windows and Macintosh) to Internet-connected set-top devices (such as the Sony Playstation II and Nuon-enhanced consumer DVD players). The general requirements for enhanced DVD authoring and the requirements for the playback devices, both hardware and software are described herein.
  • [0054]
    The ITX enables DVD-Video/Audio (hereafter referred to only as DVD-Video) content developers to create products that seamlessly combine the Internet and/or other DVD-ROM capabilities with DVD-Video to create a richer, more interactive, and personalized entertainment experience for their customers. All this is accomplished without the need for content developers to create special content for each unique playback platform, and without the need of becoming an expert programmer on Windows, Macintosh, and other platforms. Additionally the present invention allows for customized content and functions tailored for specific platform(s).
  • [0055]
    Internet connectivity is not a requirement for the use of ITX. A stand-alone system with HTML browser functionality is all that is required. In addition, CD-DA (standard music CDs) can also be enhanced by use of ITX.
  • [0056]
    The following terms are defined as follows:
    Term Description
    BCA Burst Cutting Area. Area near inner
    ring on a DVD disc where custom data
    can be imprinted
    ATVEF Advanced Television Enhancement Forum
    (spec allows combining HTML and TV
    programming)
    PIP Picture in Picture
    DVD-Video A disc authored in accordance with
    the DVD-Video specification. Any
    place where the term DVD-Video is
    used it also applies to DVD-Audio,
    unless specifically excluded.
    UOP User Operations (as defined DVD-Video
    and DVD-Audio specifications)
  • [0057]
    The following documents are incorporated by reference:
    1. HTML Cross Platform Authoring Guidelines
    2. ISO-9660
    3. ATVEF Specification (http://www.atvef.com)
    4. DVD-Video (Book 3) and DVD-Audio (Book 4)
    specifications
  • [0058]
    The ITX specification provides a common framework whereby content developers, browser providers, and hardware manufacturers can successfully create and playback Internet-enhanced DVD and CD products.
  • [0059]
    This description of the embodiments is divided into three major sections, targeting three different audiences:
      • Content Development Requirements: Addresses issues specific to DVD authors and content creators. The target audience includes DVD authoring facilities, web designers, and graphics and creative production facilities. This section outlines the integration of DVD-Video with Web Pages, Programming Interfacing, and other cross-platform DVD-Video and DVD-ROM authoring considerations.
      • Browser Requirements: Addresses issues specific to browser implementation. The target audience includes establishments such as: PlanetWeb, Spyglass, Liberate, and VM Labs (with a custom implementation of the Spyglass browser). This section outlines basic browser requirements to support ITX titles and integration of a DVD-Video programming interface.
      • Platform/Rardware Requirements: Addresses issues specific to DVD-Video hardware platforms. The target audience includes specialized chip manufacturers, consumer DVD-Video player, game system manufacturers (Sony Playstation, Nintendo, Sega), and any others who might incorporate web connectivity into DVD player products. This section outlines display requirements, browser interfaces, and other hardware-specific requirements.
  • [0063]
    With reference to FIG. 2, in an embodiment, a system 200 is provided for enhancing an internet play experience. ROM/HTIM content 202 is recorded onto a DVD disc 204. Additionally DVD-Video content 206 is also recorded onto the DVD disc. The disc 104 is inserted into a client device 208 that contains Browser/Presentation software 210 thereon. The client device hardware also includes a DVD Firmware/Navigator 212 that reads the DVD-Video content. In addition, the client device 208 includes a Browser/Presentation Engine software 110, which reads the ROM/HTML Content. The Browser/Presentation Engine can be for example Netscape Navigator or some other engine commonly available on personal computers. After reading the ROM/HTML content, the browser software 110 searches the Internet to find supplemental information related to the DVD content and incorporates the supplemental information into the DVD content 202, 206 to create an Internet Enhanced DVD Experience 214.
  • [0064]
    To better understand the purpose and goals of ITX three possible usage scenarios are described, each with an increasing level of complexity.
  • [0065]
    DVD-Video Disc with Movie Script Provided:
  • [0066]
    A movie is authored with the entire screenplay provided on the DVD disc in HTML format. Clicking on any scene visually represented in the HTML immediately links the user to that scene within the DVD-Video. Besides being a finer granularity than the normal chapter navigation provided on DVD-Video, the HTML-based script could contain other media (pictures, audio) and/or live web links for other information (stored either on the DVD disk, or accessible through the Internet). Further, the text of the screenplay in HTML could automatically “scroll” with the DVD-Video to give the appearance of being synchronized with the DVD-Video. Although many of these types of features (minus live web links and synchronized scrolling) could be authored in DVD-Video, HTML authoring is much more efficient, immediate and widely known.
  • [0067]
    More Complex Menus:
  • [0068]
    A DVD-Video is shipped with a simple HTML page that does little except start a movie. However, the HTML page also uses the Internet and checks to see if that movie has any web site updates. If it does, then the HTML page launches a new movie menu that is downloaded from the web. This new menu might have e-commerce opportunities (buy gifts based on the movie; buy tickets for the sequel to the DVD, etc.). Because the new movie menu is not on the DVD-Video, but rather is on a server accessible via the internet, the window of time during which the choices on the new movie menu is available can be decided by the studio long after the DVD-Video has shipped. The new movie menu may have new links to an actor's web site, which can be particularly advantageous if, for example, the actor has become a star since the movie was made, and therefore wasn't given star treatment in the original DVD-Video. The new movie menu may just be a more convenient way to navigate the disc to a finer granularity than the chapters provided. Advantageously, in accordance with the present embodiment, the DVD can have new movie menus stored on a server accessible through the internet, and that can be changed over time. If the DVD-Video is played without ITX, the DVD-Video operates in a conventional manner.
  • [0069]
    Live Webcast with the Director or Stars in Live Chat:
  • [0070]
    A DVD-Video movie is shipped with an HTML page that links the user to an ITX web site. This site (and studio advertising) notifies the user of the date/time of a “live chat” with, for example, the movie's director, who will discuss the making of the movie. Near the event starting time, the user connects to the web site with the DVD-Video in his/her DVD player. At the start time, the director begins sending voice (such as streaming audio, e.g., Real Audio) over the Internet. The director controls the DVD player of the user, as well as other DVD players, by sending play, pause, fast-forward, and rewind commands, etc. (Latecorners are automatically synchronized). User (if they have, for example, a browser with a keyboard) can enter questions. The director can choose which questions to answer and control every DVD player to an appropriate scene in the movie and discuss the scene. Through the use of bitmap overlay layers and drawing tools, the director can pause the video and draw on the screen (like a football play) to better explain the details involved in creating a certain scene, for example. As the director moves from one question to another the video can use transitions and special effects to make the presentation more professional and entertaining.
  • [0071]
    In order to support the above-described functionality, the present embodiment is as follows. An ITX disk can contain DVD Video and ITX-compatible ROM data, DVD-Audio and ITX-compatible ROM data, CD-Audio and ITX-compatible ROM data, or the like. The ITX compatible ROM data can be any digital file type including HTML and graphics, including for example, HTML graphics, subject to file system limitations described below. There is no theoretical limit to the amount of ITX compatible ROM data that can be placed on a DVD disk, except for physical constraints of the DVD disk (or in an alternative embodiment CD-disk).
  • [0072]
    An ITX-compatible disk adheres to rules regarding capability, detection, file system, directory structure, and content location, each of which is described in further detail herein. As multi-platform support is a goal of the present embodiment, an ITX disk provides for both platform-specific behavior and general-purpose behavior. Platform-specific behavior can be accomplished using the ITX-API described above, by either placing platform-specific binaries on the DVD disk in predefined directories, described herein, or by authoring general purpose HTML content that uses, for example, ECMAScript or JavaScript and the ITX API to detect specific platforms and to “serve” web pages specifically designed for a particular platform, i.e., particular type of device. General purpose content can be created for playback on multiple platforms using HTML content and the ITX API. Both approaches can be combined so that platform-specific behavior can be employed with certain devices, while other devices, such as devices developed after release of the DVD disk, can be supported with general-purpose behavior.
  • [0073]
    For personal computers, such as personal computers operating under Microsoft Windows, ITX content can be viewed through a proprietary browser client per the ITX content viewed through the proprietary browser client can be the same content that is displayed on, for example, a browser-enhanced consumer electronics system, such as a set top box, a game console, or an internet-connected DVD player or the like.
  • [0074]
    The device must provide a capability to determine the type of media that has been inserted into the device. Specifically, the device must be able to determine whether the media is a DVD disk or some form of CD disk. For CD-DA, there may or may not be a file structure formatted on the CD-DA disk, such as described herein and therefore the CD-DA disk table of contents must be read per the “red-book” specification.
  • [0075]
    An ITX-compatible DVD or CD is detected by checking for the existence of a file named index.htm in a directory named common. The ITX-API version information can be found in a mediated area in the index.htm file, which is an HTML file.
  • [0076]
    The index.htm file provides JavaScript that detects the particular type of device into which the DVD disk has been inserted, and the device is “navigator,” and provides general framework for interactive playback. For a disk not authored in accordance with the ITX content, a content homepage is employed, i.e., file named default.htm is employed. The default.htm file may be stored in memory on the device.
  • [0077]
    Content Development Requirements:
  • [0078]
    This section describes the requirements for content developers, DVD authors, and creative houses. This section outlines how DVD-Video can be integrated with ROM content for playback across multiple hardware platforms and multiple browsers. For more information regarding cross-platform HTML development (independent of integration with DVD-Video), refer to the InterActual™ HTML Cross Platform Authoring Guidelines document. This reference document outlines platform/browser detection, use of JavaScript files (.js files) and other HTML authoring techniques.
  • [0079]
    DVD/ROM Authoring Considerations:
  • [0080]
    ITX Directory and File Naming Conventions (Mandatory Compliance)
  • [0081]
    When making an ITX disk, DVD video zone files must be placed physically at the beginning of the ITX disk, contiguously, in the order specified by the DVD-Video specification, likewise, DVD-Audio zone files must follow the DVD-Video files in contiguous order.
  • [0082]
    The DVD specifications for DVD-Video and DVD-Audio require that each disc contain specific directories and files. For example, the DVD-Video files are contained in a directory (or folder) with the name VIDEO_TS; DVD-Audio files in the AUDIO_TS directory. The VIDEO_TS and AUDIO_TS directories should be the first entries in the directory descriptor (the true order of the directory and file entries is usually hidden, since most operating systems list them in, for example, alphabetical order). There is no such requirement for “DVD-ROM” content, and, thus, developers can arrange other files on a disc in any desired manner. It is best to place ROM-zone files in subdirectories versus the root directory. The placement of files on a dual-layered disk (DVD-9, DVD-14, or DVD-18) is generally independent of layer details. DVD-Video and DVD-Audio files must begin on layer zero. ROM-zone files are beginning after the DVD-Video (or DVD-Audio) files and can cross layer boundaries, if needed. In order to prevent problems that can arise from this open aspect of the specifications, ITX provides a convention for ordering and naming files.
  • [0083]
    Files stored for use with ITX can be in any DVD disc directory. However, there must be a method that allows the platform-specific browser and/or playback engine to identify the initial starting HTML file in the case were there is no executable file. Also, in order to simplify support, it is strongly suggested that the full convention described below be followed on all ITX-authored discs.
  • [0084]
    ITX Naming Standard:
  • [0085]
    Each DVD-Video authoring system and tool set supports different naming capabilities; such as ISO-9660, ISO-9660 with Joliet extensions, Macintosh file names, support for Macintosh resources, hybrid discs, etc. Some authoring tools go even further by forcing a certain character case (e.g., the Toshiba authoring system forces all characters to uppercase). These issues must be taken into account as part of the development process since some playback platforms may operate differently depending on the physical layout and file structure on the DVD. As a specific example, Windows and Macintosh operating systems are case insensitive, whereas Unix and Linux operating systems are case sensitive.
  • [0086]
    For ITX compliance, the following naming standard must be followed:
      • UDF 1.02 and ECMA 167 (second edition)
      • Support for hybrid Windows/Macintosh discs (whereby resource forks for the Macintosh operating system are preserved)
  • [0089]
    All files and directories must be developed with case sensitivity in mind. The recommended approach is to use only capital letters for all directories, file names, and HTML references. To be safe, only use A-Z, 0-9 and the underscore. The initial HTML file shall have a name of ITX.HTM.
  • [0090]
    ITX Directories:
  • [0091]
    The ITX.HTM file must be located in a directory that follows these rules. Other files, based on individual authoring needs may be located in any directory following any convention. There may be more than one ITX.HTM file. For example, there could be a different one for each platform supported, or just one primary one and one alternate for a single platform that requires special operations.
    Directory name Platform
    COMMON All (default)
    LINUX linux operating
    system
    MAC Macintosh
    NINTENDO Nintendo Dolphin
    SONY Playstation II and
    CE
    NUON VMLabs
    WIN Windows
    SEGA Sega Dreamcast
    TOSHIBA Toshiba
    WIN Windows
    ZORAN Zoran
    To be determined all other ITX
    directory names must
    be registered to
    insure no conflicts.
  • Directory Naming Conventions
  • [0092]
    Note that any new platform directory names should be reserved and assigned before use. However, each platform developer can control the directory structure under its reserved top-level directory name. For example, Sony could create a PS2 and PS3 directory under the SONY directory.
  • [0093]
    This directory structure allows for proprietary executable binary files for each platform. For example, a current PCFriendly DVD (i.e., a DVD in accordance with the present embodiment) can utilize the directory structure by placing the Windows version of software in a WIN directory, and a Macintosh version of software in a MAC directory. Upon insertion of the disc, the platform will initiate execution of the appropriate binaries (based on some platform-specific autorun feature) and then the binaries will load the ITX.HTM file.
  • [0094]
    The set-top player browser shall locate its starting file via the following logic:
      • Check for online updates enabled and online
      • If OK, then check web for update and use, if found
      • Else check for its platform-specific directory.
      • If the platform-specific directory exists and the ITX.HTM file is found, then start;
      • Else if the COMMON ROM directory exists and the ITX.HTM file is found, then start;
      • Else the disc is not an ITX disc and it should be played as a DVD-Video disc.
  • [0101]
    The above-described structure allows for device specific executable binary file for each type of device supported by a particular DVD disk. The platform-specific directory structure and its associated set of binaries enable any platform to run executables specifically designed for any device provided that such executables are available on the particular DVD disk being utilized. This capability, in essence, allows the device specific binaries to override general purpose ITX content or override a standard browser mechanism. While the actual ROM content may reside in a device specific directory, it is recommended that all content reside in the common directory when possible. The common directory can support any number of subdirectories, including device specific subdirectories.
  • [0102]
    The common directory stores, in most cases, the actual ITX content (versus platform specific binaries). It is recommended that all ITX content (even platform specific ITX content reside in the common directory as this provides an intuitive content development approach. By maintaining a single content directory, Java Script can easily be used to detect platforms and render appropriate HTML players pages tailored to specific devices.
  • [0103]
    There may be cases where device specific binaries may be included on the DVD disk, but still the general-purpose content. For example, an ITX disk can utilize the directory structure by placing a Windows version of software in the WIN directory, and the Macintosh version of the software in the MAC directory. Upon insertion of the ITX disk, the platform will initiate execution of the appropriate binaries (based on a device specific feature, such as autorun) and then the binaries will load the index.htm file located in the common directory, the starting point for any general-purpose ITX disk.
  • [0104]
    The starting or entry point is the index.htm file, with which resides in the top level of the common directory. It is recommended that all ITX content (with the exception of device-specific binaries) be stored in the common directory. Java Script can then be used to detect platforms and render appropriate HTML pages tailored to specific platforms. The index.htm file will be the background “container” web page while standard playback occurs. This page enables Java Script event handlers to be loaded and activate to handle events during playback. The meta-data of the index.htm file contains the ITX-API version information.
  • [0105]
    Referring to FIG. 2A, a flow chart is shown of steps traversed upon the coupling of a storage medium with, e.g., insertion of a DVD disk into, a device, e.g., a personal computer, a consumer electronics device, a game console, or the like. Steps traversed upon insertion of the DVD disk into the device are divided into phases as follows. During the first phase, a disk detection algorithm determines if the disk has content in accordance with the present embodiment, i.e., whether the disk is an ITX disk, i.e., whether the disk contains ITX content. This determination is made by examining whether a file named index.htm is located in a “common” directory on the DVD disk.
  • [0106]
    If the index.htm file exists, then the DVD disk is an ITX disk. Otherwise, the DVD disk is determined not to be an ITX disk. During a second phase, a determination is made as to whether the DVD disk is a DVD-Video or a DVD-Audio, or whether a disk of another type has been inserted, such as a CD-DA. Logic for performing the second phase is included, generally, in the device, and this is not discussed in detail further herein. (Such logic is known.)
  • [0107]
    During a third phase, a determination is made as to a default playback mode of the device. This is determined by reading a “player mode” from the property, e.g., InterActual.PlayerMode. If the device is configured for “play” mode, ITX content, e.g., HTML content, is bypassed, whereas if the device is configured for ITX mode, then the ITX content is launched beginning with the index.htm file in the common directory. The ITX content itself can then be updated dynamically if the device is connected to the Internet, or an equivalent network. There is no Internet connection, or equivalent connection, the device renders ITX content from a ROM portion of the DVD disk.
  • [0108]
    For non-ITX disks, when the device is configured for ITX mode, a default content home page (called default.htm) is displayed and an Internet connection, or equivalent, is attempted to provide potential ITX content for the non-ITX disk.
  • [0109]
    During a fourth phase, platform specific file detection occurs, and a determination is made as to whether there are platform specific binary files on the DVD disk for the device. This is accomplished by searching for a predefined directory, as described above, associated with the device.
  • [0110]
    During a fifth phase, a determination is made as to whether a connection to the internet or similar network, can be made. This step is performed for ITX disks in order to determine whether updated content is available from a server. Additionally, for DVD disks without ITX content, a connection to an on-line database can be attempted, so that the database can be interrogated to determine whether a server containing content associated with the DVD disk is available. If such content is available, an interactive experience similar to that available on ITX disk can be offered to the user of the device. When the device is in “play” mode, then ITX disk can display an icon, to signify that ITX content is available from the DVD disks ROM area. If the user selects the icon, a content home page is displayed, i.e., default.htm, so that the user can switch to ITX mode.
  • [0111]
    With reference to FIG. 3, a process 300 for obtaining update information is described. The process 300 begins with a decision step 302 wherein a determination is made as to whether the user is online and whether the user prefers to check for updates online. If the answer to decision step 302 is no, then in another decision step 304 a determination is made as to whether HTML update information is available. If such information is available then in an operation 306, the ITX.HTM is started from the web and the update information is retrieved. If the answer to question 302 or both questions 302 and 304 are no, then in yet another decision step 308 a determination is made whether a platform directory exists, the platform directory applicable to the platform of the user device. If an appropriate platform directory does exist, then in an operation 310, ITX.HTM is started in the platform directory. If an appropriate platform directory does not exist, then in a decision step 312 a determination is made as to whether a common directory exists which can be used with the platform of the user device. If such a common directory does exist, then ITX.HTM is started in that directory. If such a common platform directory does not exist, then in a step 316 the DVD is played a normal video without Internet enhancement.
  • [0112]
    It is recommended that each player have a user setup that allows the ITX functionality to be overridden, such as:
      • Check for ITX and start as ITX if found (default setting)
      • Check for ITX and give the user a menu choice of ITX or Standard
      • Show the ITX icon on the screen for several seconds when ITX is found (include a remote control function that re-starts discs in ITX mode
      • Play all discs as DVD-Video, ignoring ITX
  • [0117]
    ITX Programming Interface (Mandatory Compliance):
  • [0118]
    This section describes the ITX application programming interface (API) for controlling and scripting ITX-enhanced discs. The API is divided into five sections:
      • Embedding. Syntax for embedding DVD-Video within a web page. This section also addresses displaying video full screen and in a window.
      • Commands. Commands control the playback and search mechanisms of a DVD-Video disc.
      • Properties. Properties are used to query attributes of the DVD-Video and set certain configuration properties.
      • Events. Events are used to trigger notification of various playback conditions, such as time changes, title changes and UOP changes. Events are essential for scripting and synchronizing the video with other assets.
        Embedding:
  • [0123]
    This section describes how to embed DVD-Video within an HTML page and control its layout.
  • [0124]
    Computer operating systems shall embed DVD-Video using currently available embedding techniques. Examples for each of the major computer operating systems is are provided below:
    Operating
    System Example
    Windows <object ID=“PCFriendly”
     CLASSID=“clsid: A0739DE5-571F-11D2-
    A031-0060977F760C”
     BORDER=“1” WIDTH=50% HEIGHT=60% >
    </object>
    Apple/Macintosh <embed ID=”PCFriendly”
     TYPE=”application/x-pcfriendly-
    plugin”
     ALT=”PCFriendly Plug In”
     HIDDEN=”TRUE” >
    </embed>
    Linux TBD
    Others TBD
  • Examples for Embedding DVD-Video in HTML
  • [0125]
    After the DVD-Video object is embedded in the web page, it can be accessed using any style sheet, link, or scripting language. Values for the ID string must begin with a letter (A-Z or a-z) and may be followed by any number of letters, digits, hyphens, and periods up to a maximum of 48.
  • [0126]
    Unlike computers, set-top boxes do not generally have a full-blown operating system and browser. Therefore, the capabilities within the browser are often more restricted. For embedding DVD-Video within these platforms using ITX, the “PCFriendly” ID must be integrated within the embedded browser as any other tag structure. With this approach, any embedded browser that encounters the “PCFriendly” tag, would automatically associate this identifier with the ITX programming API described later in this section.
  • [0127]
    While many possible windows configurations are possible for displaying the update data, the update data is preferably provided on a screen in the following manner:
      • Toggling between full screen
      • Displaying within frame
      • Dynamic resizing
        Commands:
  • [0131]
    Commands (also known as functions or methods in OOP terminology) control the playback and navigation mechanisms of a DVD-Video/Audio or CD-DA disc. Commands can be used by the calling application (HTML, C++, or other) to initiate a DVD/CD playback function. The commands supported by ITX are listed below.
      • All commands support return values as shown above.
      • See notes at the end of the table and for a description of the optional time and FX parameters designated by [*].
  • [0134]
    Items in square brackets [ ] are optional.
    DVD CD- Support
    ITX Commands Description Player DA Level Range
    Open(filename Opens specified Both Y Base
    | type) file name.
    See note 1.
    Play([*]) Start playback of Both Y Base
    the DVD.
    Pause([*]) Pause playback of Both Y Base
    the DVD
    (Pause_On).
    Subsequent issue
    of Pause( ) resumes
    playback
    (Pause_Off)
    Stop([*]) Stop playback of Both Y Base
    the current DVD.
    Stops execution of
    current PGC and
    transfers to Stop
    State.
    FastForward([x[,*]]) Fast forward the Both Base 2-99,
    current DVD at x although
    speed. (By some
    default, x = 2) players
    may
    allow
    only
    the DVD
    values
    of
    2, 4, 8, 1
    6, 32
    Rewind([x[,*]]) Rewind the current Both Base same as
    DVD at x speed. above
    (By default, x = 2)
    Slow([x[,*]]) Play the current Both Adv 2-99
    DVD at x speed. (reciprocal
    (By default, x = 2 values)
    for speed).
    Supported Features
    should be checked
    first to determine
    if capability is
    supported.
    See note 2.
    SlowReverse(x[,*]) Play the current Both Adv same as
    DVD at x speed in above
    reverse. (By
    default, x = 2 for
    speed).
    Supported Features
    should be checked
    first to determine
    if capability is
    supported.
    See note 2.
    Step([n[, *]]) Steps playback of Both Adv 1-30
    the DVD forward n
    frames. Supported
    Features should be
    checked first to
    determine if
    capability is
    supported. By
    default, n = 1.
    NextChapter([*]) Halts playback of Video Base
    the current
    chapter and starts
    playback from the
    next chapter
    within the title.
    PrevChapter([*]) Halts playback of Video Base
    the current
    chapter and starts
    playback from the
    start of the
    current chapter;
    or if near the
    start of a chapter
    goes to the
    previous chapter.
    NextTrack( ) Halts playback of Audio Y Base
    the current track
    and starts
    playback from the
    next track in the
    same Audio Title
    within the Title
    Group.
    PrevTrack( ) Halts playback of Audio Y Base
    the current track
    and starts
    playback from the
    previous track in
    the same Audio
    Title within the
    Title Group.
    NextDisplay([*]) Presents the next Audio Base
    visual
    display/slide in
    the display list
    to the user.
    PrevDisplay([*]) Presents the Audio Base
    previous visual
    display/slide in
    the display list
    to the user.
    TitlePlay(t[,*]) Start playback at Video Base 1-99
    the specified
    title index, t.
    (Initializes all
    GPRMs and SPRMs).
    ChapterPlay(t,c[,*]) Start playback at Video Base t: 1-99
    the specified c: 1-99
    title index and
    chapter value. If
    in TT_DOM and
    already within
    specified title,
    ChapterSearch is
    issued to maintain
    all GPRM and SPRM
    values. Otherwise,
    ChapterPlay is
    issued and all
    GPRMs and SPRMs
    are initialized.
    TimePlay(h,m,s,f[,*]) Start playback at Both Base h: 00-23
    the specified. m: 00-59
    Specify time in s: 00-59
    hours, minutes, f: 00-29
    seconds, frames.
    (Computer must
    translate into
    milliseconds). If
    in TT_DOM or
    TT_GR_DOM and
    already within
    specified title,
    TimeSearch is
    issued to maintain
    all GPRM and SPRM
    values. Otherwise,
    TimePlay is issued
    and all GPRMs and
    SPRMs are
    initialized.
    TitleGroupPlay(g[,*]) Start playback at Audio Base g: tbd
    the specified
    title group
    number.
    TrackPlay(g,t[,*]) Start playback at Audio Y Base g: tbd
    the specified t: tbd
    title group number
    and track number.
    If in TT_GR_DOM
    and already within
    specified title
    group, TrackSearch
    is issued to
    maintain all GPRM
    and SPRM values.
    Otherwise,
    TrackPlay is
    issued and all
    GPRMs and SPRMs
    are initialized.
    In case of CD-DA,
    group number
    should be 1 by
    default.
    HiddenGroupPlay(g[,*]) Plays desired Audio Adv g: tbd
    hidden/locked
    group.
    HiddenTrackPlay(g,t[,*]) Plays desired Audio Adv g: tbd
    hidden/locked t: tbd
    track within
    Hidden Group.
    HiddenTimePlay(h,m,s[,*]) Plays from Audio Adv h: 00-23
    specific time
    within Hidden m: 00-59
    Group. s: 00-59
    Menu(x[,*]) Display the Both Base 1-5
    specified menu.
    See note 3.
    GotoMenuID(x[,*]) Displays menu Both Adv
    associated with
    entered menu ID
    GotoBookMark(x[,*]) Continues playback Both Y Adv
    at the specified
    bookmark location
    by number.
    See note 4.
    SaveBookMark(x[,*]) Creates a bookmark Both Y Adv 0-n
    at the current n is
    location to store system
    with a given dependent,
    number. about
    See note 4. 32
    Resume([*]) Resume DVD Both Base
    playback (if
    applicable based
    on Navigation).
    StillOff([*]) Continue with Both Base
    still off.
    UOPMask( ) Retrieve current Video Base
    UOPs.
    AutoMouseHide(b) Show or hide the Both Adv
    mouse cursor when
    the DVD is
    playing. (Hide
    occurs 2 seconds
    after no activity)
    UpButtonSelect([n]) Selects the up Both Base 1-36
    direction button n
    times. By default
    n = 1.
    DownButtonSelect([n]) Selects the down Both Base 1-36
    direction n times.
    By default n = 1.
    LeftButtonSelect([n]) Selects the left Both Base 1-36
    direction button n
    times. By default
    n = 1.
    RightButtonSelect([n]) Selects the right Both Base 1-36
    direction button n
    times. By default
    n = 1.
    ButtonActivate( ) Activate the Both Base
    current
    highlighted
    button.
    ButtonSelect Activate the Both Base 1-36
    And specified
    Activate(n) highlighted
    button, where n is
    the button number
    between 1 and 36.
    AudioSelect(n) Sets the stream Both Base 1-8
    number of the
    Audio to play
    SubPictureSelect(n) Sets the stream Video Base 1-32
    number of the
    Subpicture to
    display
    SubPictureEnable(n) Enables or Video Base 0 = off
    Disables 1 = on
    Subpictures (sub
    titles)
    AngleSelect(n) Sets the stream Video Base 1-8
    number of the
    Angle to play
    MenuLanguage Selects the Both Base 1-tbd
    Select(n) language for the
    System Menu
    according to the
    language code (n).
    Only available in
    a Stop State.
    TextLanguage Selects the Audio Base 1-tbd
    Select(n) language for the
    Audio Text Data.
    ParentalLevel Selects parental Video Base 1-8
    Select(n) level of player.
    ParentalCountry Selects the Video Base 1-tbd
    Select(n) country for the
    parental level.
    KaraokeSelect(x) Changes the Audio Video Adv 1:
    mode for Karaoke. vocalist 1
    2:
    vocalist 2
    3:
    guide
    melody
    Zoom([x, y[,*]]) Zoom (or scale) by Both Adv 2500-40000
    a percentage (16-bit
    factor of x unsigned
    (horizontal) and y values)
    (vertical).
    Individual players
    may support
    various zoom
    ranges, but 25% to
    400% is
    recommended (2500 < x,
    y < 40000).
    See note 5.
    X and Y are
    integers, 100
    times the
    percentage. By
    default, x and y
    are 10000 (100%).
    Pan([x,y[,*]]) Set center point Both Adv −5000
    of zoomed display to
    to x, y coordinates +5000
    based on
    percentage of
    normal content
    full screen
    display.
    See note 5.
    X and Y are
    integers, 100
    times the
    percentage. By
    default, x and y
    are zero (center
    point).
    VideoBlending([a,c[,*]]) Controls whether Both Adv a: 0-255
    the video is c: 32-
    played in its own bit
    window/full screen ARGB
    (a = 0) or if the
    video is in the
    background and
    HTML content is
    blended on top of
    it (where a is the
    alpha blending
    value from 1 to
    255; c is HTML the
    HTML background
    color that is
    clear). By
    default, a = 255
    (HTML on top) and
    c = white (white
    HTML background is
    clear for video to
    show through).
    See note 6.
    Bitmap Layer
    Extensions
    CreateLayer(b,c,r,d,p) Create an overlay Both Y Adv b: 1-9
    layer c: 32-
    b is the bitmap bit
    overlay ref number ARGB
    (or handle) r: 1-4
    Initialize to d: 1,
    color c 2, 4,
    r is the 8, 15,
    resolution 16, 24,
    d is the number of 32
    bits per pixel. p p:
    is the palette palette
    when b = 1, 2, 4 or 8 tbl
    See note 7.
    ChangePalette(b,p[,*]) Change the palette Both Y Adv b: 1-9
    for layer b p:
    palette
    tbl
    DestroyLayer(b) Destroy an overlay Both Y Adv 1-9
    layer. If b = 0
    then destroy all
    layers.
    ShowLayer(b[,*]) Make a layer Both Y Adv 1-9
    visible
    HideLayer(b[,*]) Hide a layer Both Y Adv 1-9
    SetVectorDraw(b,c,w[,*]) Set default Both Y Adv b: 1-9
    drawing color (c) c: 32-
    and width (w) for bit
    layer b. ARGB or
    c: ARGB or index palette
    into palette index
    w: 1 to 16 pixels w: 1-16
    SetVectorCorners(x1,y1,x2,y2) Set the user x: 0-720
    coordinate system (or
    to: x1, y1 (upper 1920)
    left corner); y: 0-480,
    x2, y2 (lower right 576 (or
    corner). 1080)
    The default is
    0, 0..720, 480 for
    NTSC and 0, 0..720
    576 for PAL; which
    matches one to one
    to pixels in the
    layer. (All values
    are 16-bit signed
    integers)
    This coordinate
    system is used for
    VectorMove and
    VectorDraw
    VectorMove(x Move to x, y on,y,b[,*]) Both Y Adv x: 0-720
    layer b. (or
    (x, y based on 1920)
    SetVectorCorners) y: 0-480,
    576 (or
    1080)
    b: 1-9
    VectorDraw(x,y,b[,*]) Draw to x, y on Both Y Adv x: 0-720
    layer b. (or
    (x, y based on 1920)
    SetVectorCorners) y: 0-480,
    576 (or
    1080)
    b: 1-9
    DisplayImage(f, b,a[,*]) Display image from Both Y Adv f:
    file (types: JPEG, filename
    Gif) in layer b, b: 1-9
    with alpha blend a: 0-255
    level a. (Layer
    must have
    sufficient bit
    depth.)
    Time and FX
    SetRelTime([t]) Set the relative Both Y Base t: 0-231
    time counter to t. unsigned
    (unsigned 32-bit 32-
    integer in ms) bit
    See GetRelTime integer
    property. The
    relative time
    affects only
    commands issued
    for delayed
    execution
    (queued). Once
    queued commands
    use machine
    absolute time. By
    default, t = 0.
    FlushCmdQueue( ) Flush and/or Both Y Base
    initialize the
    command queue.
    Misc
    Extensions
    SetMixVolume(x[,*] Set primary audio Both Y Adv x: 0-100
    stream volume 0 = mute
    level to main
    percentage x to audio
    allow overmixing.
    FullScreen(w[,*]) Toggles video Both Base 0 = full
    playback between 1 = window
    full screen and
    window.
    NetConnect([u[,*]]) Establish WWW Both Y Adv u = text
    connection to string
    optional URL
    provided. By
    default,
    connection is made
    with no URL.
    Computer The following
    Only: commands should be
    ignored in set-top
    players
    Close( ) Close the driver Both Y Base
    and stop playback
    of the current
    DVD.
    ShowControls(x,y[,*]) Show or hide the Both Y Base x: 0-1920
    video controls in y: 0-1200
    full screen mode,
    at x, y. Use −1,−1
    to hide.
    ShowContextMenu( ) Controls the right Both Base
    mouse click
    context menu.
    PopUpMenu( ) Displays and Both Base
    allows the audio
    languages, sub-
    pictures, and
    angles to be set
    to those currently
    available.
    SuppressErrors(b) Suppresses display Both Y Base 0 = suppress
    of error messages 1 = show
    (0 = suppress
    display of error
    messages, 1 = display
    error
    messages)
  • ITX Command Summary
  • [0000]
    Command Notes:
  • [0135]
    [*] optional parameters
      • Special effects and timed operations are performed with four optional parameters. See section 2.1.2.2.3 for complete details.
        1. Open.
  • [0137]
    Opening of VOB files and MPEG files is required for baseline support. Other file types are advanced features. An open file can be played, paused, stopped. Fast forward and rewind are not available. Stopping causes the file pointer to be reset to the start of the file.
  • [0000]
    2. Slow and Slow Reverse.
  • [0138]
    If slow is supported a speed of is required. Other slow speeds may also be supported; decreasing powers of two are recommended: , ⅛, 1/16, etc although any value from to 1/99 is allowed. Integer reciprocal values are used for the speeds, such as 2 for and 4 for , etc.
  • [0000]
    3. Menu.
  • [0139]
    Menu choices are:
      • 1: Title Menu
      • 2: Root Menu
      • 3: Chapter Menu
      • 4: Audio Languages Menu
      • 5: Subpicture Languages Menu
        4. Bookmarks.
  • [0145]
    The bookmarks are assigned a number when set. A GotoBookMark returns to the same position on the disc as when the bookmark was set (saved). Preservation of bookmarks during powerdown is not required, however, if implemented, bookmarks shall be unique to the disc (using a generated disc id). A minimum of one bookmark per disc is required if implemented (32 recommended). It is recommended that bookmarks save the entire DVD-Video or DVD-Audio state, but this is not required. At a minimum, the correct title and time must be saved.
  • [0000]
    5. Zoom and Pan.
  • [0146]
    Zoom parameters are based on a percentage, so integer values of 10000 and 10000 (x and y) indicate 100% of normal full screen display with no zoom. Normally the x and y scale factors should be the same to maintain a correct aspect ratio. When zooming to a value greater than 100%, by default, the center point of the image remains on the center of the display. Panning allows moving the center point of the portion of the image to be displayed. These x and y pan parameters are provided as a percentage of the display from −50% to +50% using integer values from −5000 to +5000. (This is done so that the differences between NTSC and PAL do not have to be calculated in pixels. Additionally, it may also be possible to use the same HTML code for handling 4:3 and 16:9 as well.) If the pan parameters would cause the display to pan off the edge of the video, then the platform software shall only set that panning parameter to the largest or smallest value that keeps the video in the display area.
  • [0000]
    6. Blending.
  • [0147]
    This advanced feature allows an HTML page to be constructed that includes a background color (the colorkey) that is treated as clear. Other information on the page (graphics or text) is then alpha blended with the video. An alpha value of 0 indicates that the video shows everywhere. An alpha value of 255 indicates that the HTML page shows everywhere (except where it is clear as defined by the colorkey value). This allows, for example, placing textual titles on top of the video (or blended with the video). Graphical menus can be added in the same manner. A minimum of 16 (256 recommended) discreet alpha values are required if this feature is supported. However, the alpha blend parameter is always from 0 to 255.
  • [0000]
    7. Bitmap Layers.
  • [0148]
    The bitmap layer features allow defining and using multiple layers (possibly only one active at a time depending on the playback device) with other layers stored in memory and ready to be activated when needed. This is how an event moderator can remotely draw onto the video image. The number of bits per pixel (color depth) can be 1, 2, 4, 8, 15, 16, 24 or 32. For bpp of 1, 2, 4 and 8 a palette must be provided (32-bit ARGB data). It is anticipated that the most frequently used capability will be bpp values of 1 or 2 to be used for image markup, like a chalkboard with 1 to 4 colors. Bpp values of 15, 16, 24 and 32 allow images to be used on a layer.
  • [0000]
    Errors and Warnings
  • [0149]
    All commands shall return one of the following error codes
    number name description commands
    0 OK Successful all
    1 General Other or Unknown error all
    Error condition
    1 FileNot File not found Open,
    Found DisplayImage
    2 NotSupported File type or feature not
    supported
    3 NoDisc Attempt to play with no Play, +others?
    disc
    4 BadParam Parameter out of range many
    5 ParamError Parameter out of range many
    for current disc or
    current condition
    6 NoMem Not enough memory for CreateLayer,
    operation DisplayImage
    7 QueueFull Command queue is full Time delayed
    command
    8 QueueFail Timed command error Time delayed
    (such as overlapping command
    command)
    9 QueueWarn Timed command accepted, Time delayed
    but action may be command
    emulated
  • Error and Warning Summary
  • [0150]
    Layers and Pixel Formats:
  • [0151]
    With reference to FIG. 4, a data layout 400 for a layer with 2 bpp, resolution is depicted. Also depicted is a data layout 402 for a layer with a 4 bpp resolution. The pixel formats for data in a layer may be stored (internally) in any format. The diagrams on the next page illustrate how it might work in one implementation. The data in the LUT (lookup table) is provided as a color palette by CreateLayer( ) or ChangePalette( ). Each entry in the palette is a 32-bit integer as follows:
      • byte 0: blue (least significant byte)
      • byte 1: green
      • byte 2: red
      • byte 3: alpha
  • [0156]
    An alpha value of 0 indicates a transparent color (i.e. the video shows through) and 255 is a solid opaque color (i.e. no video shows through). The first entry in every color palette should consist of 4 bytes of zero, a clear color. The default color value, c, in CreateLayer( ) should normally be zero to initialize the layer to a clear color. Special visual effects can be created by use of other values, such as initializing a layer to red, then erasing it off with a series of drawing commands and/or by changing alpha values, in the color palette, etc. Layers and data on them are not affected by video transitions and special effects having to do with video playback.
  • [0157]
    As described in the next section, some commands may be modified with time parameters and special effects or transitions. Of particular note to the bitmap layer commands are the ChangePalette( ) and VectorDraw( ) commands. A VectorDraw( ) command with a time duration simply draws a line incrementally. However, the ChangePalette( ) command with a time duration should be implemented such that there are three complete palettes, the original, the final and the current palette. At each time increment every palette table entry is interpolated towards its final value. The ShowLayer( ) and HideLayer( ) commands may have a timed special effect applied to them such as a wipe or fade.
  • [0158]
    Transitions, Special Effects and Timing:
  • [0159]
    Similar to how an author might use transitions and special effects during video editing, ITX allows a subset of these types of capabilities, depending on the unique capabilities of each playback system. If a system cannot produce the effect due to hardware or software limitations then it should gracefully degrade to some emulation or simply produce no effect at all, but concluding at the same logical end point.
  • [0160]
    Transitions can be used, for example, when switching from one scene to another with a time search or chapter search. If no effect is specified, then the playback system would normally produce a standard cut or possibly insert black frames between the scenes. However, if a wipe left is specified, then the final still frame of scene 1 is shown and scene 2 wipes in from the left at the specified rate. (No attempt is made to provide a moving image for both scenes simultaneously.)
  • [0161]
    The following table details the optional parameters and their ranges:
    Description range
    xxx(?[t1,t2,fx,p]) Command xxx with optional t1: 0-231
    see command list parameters as follows: t2: 0-231
    in 2.1.2.2 where t1: time 1 (0 or relative fx: 0-999
    [*] is replaced by start time) p: 32-bit
    [t1,t2,fx,p] t2: time 2 (duration (if value
    t1=0) or relative end time) based on x
    fx: special effect number all
    p: extra parameter based on unsigned
    fx 32-bit
    There are two basic modes: integers
    1. If t1=0, then t2 is the
    command duration.
    2. If t1>0, then t1=starting
    relative time and t2=ending
    relative time.
    t1 and t2 are unsigned 32-
    bit integers in
    milliseconds.
    The possible choices for the
    variable numbers of
    parameters are:
    t1 (not allowed)
    t1, t2
    t1, t2, fx
    t1, t2, fx, p
  • Optional Parameter Format for Timed Commands and Special Effects
  • [0000]
    Notes:
  • [0000]
    1. Immediate Execution
  • [0162]
    To cause a timed command or special effect to start immediately, the t1 parameter must be set to zero (or to a value less than the current relative time). The t2 parameter contains the duration of the command (when t1=0). If t1 is greater than zero, but less than the current relative time then the duration is equal to t2-t1. A negative duration is treated as the shortest possible time for that operation.
  • [0000]
    2. Delayed Execution
  • [0163]
    To cause a command to be queued for later execution, the t1 parameter must be set to a non-zero value greater than the current relative time. To accomplish this the current relative time can be queried via the GetRelTime property. Alternatively, the relative time can be set using the SetRelTime command. Once a command has been queued, the player shall convert the relative time to an absolute time for its scheduled execution and cannot be changed. (However, the command queue can be flushed.)
  • [0000]
    3. SpecialFX.
  • [0164]
    Any immediate or delayed execution command can have a special effect or transition (with optioannl parameter) added to modify its operation. All special effects and transitions must be accepted by all players but may be emulated or ignored if the effect cannot be performed. The same is true of the timed nature of various commands—if a player has a fixed duration for executing a particular command, then the requested duration is ignored.
  • [0000]
    4. Command Macros
  • [0165]
    Macros of commands can be created by using the SetRelTime and then issuing various commands based with offsets from that time.
  • [0000]
    5. Command Queue
  • [0166]
    The player must support a command queue with a depth of at least two items (eight is recommended; PC/Mac: 64 is recommended). That is, two items are pending execution at a later time while further commands continue to execute. If a command is accepted for the queue, then it must be executed (unless flushed or some other operation negates or overrides its action). Times stored in the queue should be in an absolute machine time (not relative time and not DVD playback time) so that subsequent changes to the relative time do not affect commands already queued.
  • [0000]
    6. Conflicting Commands
  • [0167]
    Because it is possible to schedule commands that have overlapping times, these must be checked prior to acceptance for the queue. Non-conflicting, overlapping operation can be accepted. Conflicting overlapping operations may be accepted also if the operations can still be logically completed. Conflicting overlapping operations that are accepted shall return a warning code. An example of a conflicting operation would be to schedule a chapter advance with a 5 second fade in and a second chapter advance after only 2 seconds. Robust internally interlocks must be used if there is any chance of an erroneous program to lock up a machine due to the use of timed or delayed execution commands. A fallback to basic sequential operation is suggested.
  • [0168]
    Exemplary transitions and special effects according to an embodiment of the invention include the following.
    num name description parameters
     0 none standard cut, no effect none
     1 dissolve old scene dissolves away, none
    new scene appears
     2 fade old fades to color, new color: 32-bit
    scene fades in ARGB
     3 wipe old scene is wiped off LRTB
    revealing new scene
     4 reveal old scene is pulled off, LRTB
    revealing new scene
     5 slide new scene slides on, LRTB
    covering old scene
     6 push new scene pushes old scene LRTB
    off
     7 peal old scene is peeled off LFTB
    (like a wipe, but 3D)
     8 corner wipe from a corner ULURLLLR
    wipe
     9 corner reveal from a corner ULURLLLR
    reveal
     10 corner slide from a corner ULURLLLR
    slide
     11 corner peel from a corner ULURLLLR
    peal
     12 random random boxes poke holes in box size in
    boxes old scene revealing new pixels
    scene
     13 blinds horiz or vert blinds wipe blind size in
    off revealing new scene pixels
    14-99 reserved for other
    transitions
    100 none standard video and audio none
    101 YUV adjustments are made to luma byte 0: V
    and chroma byte 1: U
    byte 2: Y
    byte 3:
    reserved 0
    (signed byte
    adjustments)
    102 snow snow is added to the display 0 = none
    255 = maximum
    103 ripple video is played like 0 = none
    underwater 255 = maximum
    104-999 reserved
    1000 assignable for specific
    and system effects
    up

    Notes:

    LRTB: 1 = left, 2 = right, 3 = top, 4 = bottom

    ULURLLLR: 1 = upper left, 2 = upper right, 3 = lower left, 4 = lower right
  • List of Transitions and Special Effects
  • [0000]
    Notes:
  • [0169]
    LRTB: 1=left, 2=right, 3=top, 4=bottom
  • [0170]
    ULURLLLR: 1=upper left, 2=upper right, 3=lower left, 4=lower right
  • [0171]
    All transitions and/or effects do not make sense with each command. The guiding philosophy should be to implement only those that make sense. The following table is the recommended set features for the most advanced playback systems with Y1 being the most basic to Y4 the most advanced.
    time
    delayed time effect/tr
    ITX Command (queued) duration ansition
    ChangePalette Y1 Y4
    (b,p[,*])
    ChapterPlay(t, Y1 Y2 Y2
    c[,*])
    DisplayImage(f, Y1 Y3 Y3
    b, a[,*])
    FastForward([ Y1 Y2 Y2
    x[,*]])
    FullScreen(w[,*]) Y1 Y3
    GotoBookMark(x[,*]) Y1
    GotoMenuID(x[,*]) Y1 Y2 Y2
    HiddenGroupPlay Y1
    (g[,*])
    HiddenTimePlay Y1
    (h,m,s[,*])
    HiddenTrackPlay Y1
    (g,t[,*])
    HideLayer(b[,*]) Y1 Y3 Y3
    Menu(x[,*]) Y1 Y2 Y2
    NetConnect([u Y2
    [,*]])
    NextChapter([*]) Y1 Y2 Y2
    NextDisplay([*]) Y1 Y2 Y2
    Pan([x,y[,*]]) Y1 Y2
    Pause([*]) Y1 Y2 Y2
    Play([*]) Y1 Y2 Y2
    PrevChapter([*]) Y1 Y2 Y2
    PrevDisplay([*]) Y1 Y2 Y2
    Resume([*]) Y1 Y2 Y2
    Rewind([x[,*]]) Y1 Y2 Y2
    SaveBookMark( Y1
    x[,*])
    SetMixVolume( Y1
    x[,*])
    SetVectorDraw Y1
    (b,c,w[,*])
    ShowControls(x, Y1 Y3 Y3
    y[,*])
    ShowLayer(b[,*]) Y1 Y3 Y3
    Slow([x[,*]]) Y1 Y2 Y2
    SlowReverse(x Y1 Y2 Y2
    [,*])
    Step([n[,*]]) Y1
    StillOff([*]) Y1
    Stop([*]) Y1 Y2 Y2
    TimePlay(h,m, Y1 Y2 Y2
    s,f[,*])
    TitleGroupPlay Y1
    (g[,*])
    TitlePlay(t[,*]) Y1 Y2 Y3
    TrackPlay(g,t Y1
    [,*])
    VectorDraw(x, Y1 Y3
    y,b[,*])
    VectorMove(x, Y1 Y3
    y,b[,*])
    VideoBlending Y1 Y2
    ([a,c[,*]])
    Zoom([x,y[,*]]) Y1 Y2
  • Recommended Commands and Special Effects Matchups
  • [0172]
    ITX Events
  • [0173]
    Events are integral to synchronizing DVD-Video with other media. With these events, web pages can be synchronized with the audio or video. For example, each ChapterEvent (start of new chapter) can change an HTML storyboard that corresponds to the movie. Time events can be used to coordinate advertising messages in HTML while the video is playing: when James Bond is driving his BMW, an appropriate web page (BMW or auto sales site) can automatically be displayed at the same time.
  • [0174]
    The value of events is that these external media do NOT have to be embedded or even be known at the time the DVD-Video is authored. This flexibility keeps DVD-Video authoring on schedule and greatly minimizes the authoring costs while adding valuable and unique features to each disc.
  • [0175]
    Events can be used by the calling application (HTML, C++, or other) to receive notification of DVD playback status. If a platform does not support an event, then an error code must be returned when its use is attempted. Supported events are:
    Sup-
    CD- port
    ITX Events Description DA Level Range
    TitleEvent(t) Called when title Base 1-99
    changes. Returns the
    new title number in t.
    ChapterEvent(c) Called when chapter Base 1-99
    changes. Returns the
    new chapter number in
    c.
    TitleGroupEvent Called when title Base 1-tbd
    (g) group changes.
    Returns the new
    title group
    number in g.
    TrackEvent(t) Called when the track Y Base 1-tbd
    changes. Returns the
    new track number in t.
    TimeEvent(e,t) Called on time change. Base e: 1-231
    Returns elapsed time t: 1-231
    in e and total time in (˜224
    t. Both in is
    milliseconds. practical
    limit
    DisplayChange(x) Called when Base tbd
    slide/display list
    changes. Returns slide
    number in x.
    AngleEvent(x) Called on angle Base 1-9
    change. Returns new
    angle number in x.
    StateEvent(x) Called when play state Base 0-6
    changes (i.e., play to
    pause). Returns state
    in x.
    See CurrentState
    property for values.
    SpeedEvent(x) Called when speed Base 1-32
    changes (i.e., play to
    scanning). Returns
    new speed in x.
    UOPSEvent(n) Called when any UOP Base 32
    changes. Returns 16-bit
    UOPs array in n.
    values
    DomainEvent(x) Called when domain Base
    changes. Returns
    domain in x.
    MenuEvent(x) Called when menu ID Adv
    changes. Returns the
    ID of the new menu in
    x.
    MenuButtonEvent Called when user Adv 1-32
    (x) clicks a button on a
    menu. Returns the ID
    of the button selected
    in x.
    MouseEvent(b,x,y) Called when the user Adv b: tbd
    clicks either the left x: 0-720
    or right mouse button. y: 0-480
    Returns mouse button or
    in b, x coordinate in 576
    x, and y coordinate in
    y.
    AudioEvent(x) Called when user Y Base 1-tbd
    changes audio track.
    Returns audio number
    in x.
    SubpictureEvent Called when user Base 1-32
    (x) changes subpicture
    track. Returns
    subpicture number in
    x.
    AngleEvent(c,m) Called when user Base c: 1-9
    changes video angle. m: 1-9
    Returns current angle
    number in c and total
    number of angles in m
    MenuLanguageEvent Called when user Base 1-tbd
    (x) changes menu
    language. Returns
    menu language
    number in x.
    TextLanguageEvent Called when user Base 1-tbd
    (x) changes text language.
    Returns text language
    number in x.
    VideoErrorEvent Called when an error Base tbd
    (n) occurs. Returns error
    number in n.
    ParentalEvent(p,c) Called when parental Adv p: 1-8
    control changes. c: tbd
    Returns level in p and
    country in c.
    KaraokeEvent(b) Called when karaoke Adv 0-1
    event changes. Returns
    1 if karaoke track has
    begun playing, 0 if
    just finished.
    EjectEvent( ) Called when disc is Y Base
    ejected from device.
    No return value.
    InsertEvent( ) Called when disc is Y Base
    inserted into device.
    No return value.
  • ITX Events Summary
  • [0176]
    ITX Properties
  • [0177]
    Properties can be used to find information about commonly used variables; such as time, title and chapter. All properties must be supported even if the advanced feature itself is not supported. Non-supported features may return a reasonable default value (for example if the zoom feature is not supported the zoom properties should always return 10000.) If a feature is not supportable and there is no reasonable value, then a −1 should be returned.
  • [0178]
    The following properties are supported:
    CD Support
    ITX Property Description DA Level Range
    CurrentElapsed Elapsed time of Y Base 0-231
    Time current title (in
    milliseconds)
    CurrentTotalTime Total time of current Base 0-231
    title (in
    milliseconds)
    CurrentTitle Currently playing Base 0-99
    title
    CurrentTitleGroup Currently playing Base 0-99
    title group
    CurrentChapter Currently playing Base 0-99
    chapter
    CurrentTrack Currently playing Y Base 0-99
    track
    CurrentDisplay Currently playing Base 0-99
    display list item
    CurrentState Current play state Y Base 0-6
    (0=None, 1=Scanning,
    2=Stop, 3=Pause,
    4=Play, 5=Slow Play,
    6=Menu)
    CurrentDomain Current domain Base tbd
    CurrentAudio Current audio track Y Base 0-99
    CurrentSubpicture Current sub picture Base 0-31
    track
    CurrentAngle Current video angle Base 1-9
    CurrentMenuLang Current menu language Base 1-8
    NumAudio Number of audio Base 1-8
    languages/tracks
    currently available
    NumSubpicture Number of subpictures Base 0-31
    currently available
    NumAngles Number of angles Base 1-9
    currently available
    NumMenuLang Number of menu Base 1-8
    languages available
    GetAudioLanguage Returns audio language Base 0-99
    (x) (and extensions) for
    specified audio number
    x. Returned audio
    language is the 2-
    digit locale.
    GetSubpictureLanguage Returns subpiucture Base 0-99
    (x) language (and
    extensions) for
    specified subpicture
    number x. Returned
    subpicture language is
    the 2-digit locale.
    GetMenuLanguage Returns menu for Base 0-99
    (x) specified menu number
    x. Returned menu
    language is the 2-
    digit locale.
    SupportedFeatures Returns feature bits Y Base 32-bit
    corresponding to mask
    capabilities of
    current system (Must
    be available before
    the navigator is in
    the play state).
    See section 4.1 and
    4.2 for details.
    Version Returns version of Y Base Two
    platform. This field 16-bit
    can also be used to integers
    determine parsing of
    certain components in
    the SupportedFeatures
    property. Returns
    major version and
    minor version unique
    to each playback
    system.
    CurrentZoomX Current Zoom X value Base Unsigned
    16-bit
    CurrentZoomY Current Zoom Y value Base Unsigned
    16-bit
    CurrentPanX Current Pan X value Base Unsigned
    16-bit
    CurrentPanY Current Pan Y value Base Unsigned
    16-bit
    CurrentMenuID Current ID associated Base 0-99
    with currently
    selected menu
    NumLayers Number of overlay Y Base 0-9
    layers currently
    possible (based on
    memory available at
    resolution 1, bpp = 1)
    See note 8.
    MaxLayers Maximum number of Y Base 0-9
    simultaneous overlay
    layers supported
    See note 8.
    MaxAlpha Maximum number of Y Base 16,
    alpha blending steps 32,
    supported. (i.e. DVD 64,
    subpictures requires 128,
    16 levels but hardware 256
    may support 256
    levels).
    MaxFast Maximum number of fast Base 0-99
    speeds.
    MaxFastReverse Maximum number of Base 0-99
    reverse fast speeds.
    MaxSlow Maximum number of slow Base 0-99
    speeds. Could be zero
    if not supported.
    MaxSlowReverse Maximum number of Base 0-99
    reverse slow speeds.
    Could be zero if not
    supported.
    MaxCmdQueue Maximum size of the Y Base 0-255
    command queue
    MaxBookmarks(x) Maximum number of Y Base Unsigned
    bookmarks based on x: 16-bit
    1: total in volatile
    memory
    2: total in non-
    volatile memory
    3: per disc in
    volatile memory
    4: per disc in non-
    volatile memory
    NumBookmarks(x) Number of bookmarks Y Base Unsigned
    available based on x. 16-bit
    (same as above)
    GetRelTime Gets the relative time Y Base 0-231
    counter.
    CurrentCmdQueue Current number of Y Base 0-255
    empty slots in the
    command queue
    GetDiscType Gets the current disc Y Base 0-216
    type and sub-type. low 8
    types: bits
    0 = drive empty or is an
    unknown state integer
    1 = DVD type;
    2 = CD audio high 8
    3 = other bits
    4-255 = reserved are
    sub-types for DVD (bit bit
    fields): fields
    0 = DVD-Video
    1 = DVD-Audio
    2 = DVD-ROM material
    present
    3 = PCFriendly
    4 = ITX
    5-7 = reserved
    See section 2.1.2.4.1
    for details
    QueryNet Gets Internet Y Base 0-9
    connection status
    0 = not available,
    ever
    1 = not currently
    avail
    2 = available, not
    online
    3 = online, speed
    unknown
    4 = up to 23.8K
    5 = up to 56K
    6 = up to 128K
    7 = up to 1.5M
    8 = up to 10M
    9 = >10M
  • ITX Properties Summary
  • [0000]
    Notes:
  • [0000]
    8. Layer Properties.
  • [0179]
    The MaxLayers property is how many simultaneous overlay layers the hardware can process or the software/hardware system can effectively emulate as simultaneous overlays in real time and blend with a full screen video. The NumLayers property returns the number of layers that can be created (but not necessarily used simultaneously) based on the amount of free memory currently available.
  • [0180]
    The concept of layer resolution is that a 720480 image requires some number of bytes of data (depending on the bpp) at a resolution of 1. A resolution of 2 uses one data item for a 22 pixel area of the image (i.e. 4 less data). This allows a layer to be defined for markup that doesn't need high accuracy and/or a method for a platform to perform graceful degradation if not enough memory is available for a full resolution layer. Resolution 3 is a 33 pixel area, and is somewhat awkward. Resolution 4 is a 44 pixel area. No other resolutions are defined.
  • [0000]
    Disc Type Detection
  • [0181]
    The GetDiscType property requires that the type of disc in the player be available to the application. A disc may be only one of the following types:
      • 0: drive empty or unknown state
      • 1: DVD
      • 2: CD
      • 3: other
  • [0186]
    For a DVD disc, any number of the DVD sub-types may be detected and have their respective bits set as follows:
    Bit
    number Description Detection method
    0 DVD-Video VIDEO_TS\VIDEO_TS.IFO
    file present
    1 DVD-Audio AUDIO_TS\AUDIO_TS.IFO
    file present
    2 DVD-ROM Any file in the main
    material directory other than
    present VIDEO_TS and AUDIO_TS
    directories
    3 PCFriendly DISC.ID file present
    4 ITX ITX.HTM file present
    5-7 reserved N/A
  • Disc Sub-Types Bit Fields
  • [0000]
    Browser Requirements
  • [0187]
    Web browsers and the software environment on each platform shall be capable of the following
    Support
    Feature Level
    ITX features in para 2.1.2.2-2.1.2.4 Base/Adv
    Presentation layer must properly Base
    interpret HTML with embedded video
    HTML version 4.0 Base
    JavaScript version 1.2 Base
    Platform determination Base
    (navigator.platform)
    Language determination Base
    (navigator.language)
    JavaScript handlers for
    Methods Base
    Properties Base
    Events Base
    Graphic support (JPG, GIF) Base
    Graphic support (BMP) Adv
    Animated GIF support Adv
    XML Adv
    Java support Adv
    Streaming media support Adv
    Macromedia Flash Base/Adv
    Macromedia Shockwave Adv
    QuickTime Adv
    Interfaces to common hardware features Base
    (ID, cookie, etc.)
  • Browser Requirements Summary
  • [0000]
    HTTP Header Formatting (Base)
  • [0188]
    Each HTTP header should be formatted with the following information (in addition to standard HTTP header information:
      • Language
      • Screen resolution
      • Hardware platform identifier and version
      • Browser identifier and version
        Cookies (Base)
  • [0193]
    Browser must be able to support cookie mechanism, which of course places a memory requirement on the hardware device. Cookie shall be placed by browser in local persistent memory and shall be readable only by a specific server and browser/hardware partner. Cookie shall contain:
      • User/hardware ID: generated by computer software or by hardware platform (in case of set-top)
      • Disc ID: generated by local hardware based on a hashing algorithm.
      • BCA number: read from lead-in area of DVD
  • [0197]
    The following is matter of design choice.
      • Format of cookie
      • When to place cookie (i.e., insertion event)
        Direct Connection to Navigator (Adv)
  • [0200]
    Ability to pass commands directly to DVD/CD navigator, such as:
      • All DVD/CD navigation commands
      • Additionally, must have ability to set GPRMs
        Platform/Hardware Requirements
  • [0203]
    In order to provide a consistent baseline platform for ITX content developers it is important that the platform and hardware vendors properly support the ITX API. Not all hardware platforms will have identical capabilities. So it is important that each platform provide access to the features that are available and graceful degradation for those that are not supported—and provide this as feedback so that content developers understand how their content will function on different platforms.
  • [0000]
    Baseline Hardware Platform Requirements
  • [0204]
    Hardware platform vendors must provide hardware and interfaces capable of performing all the functions specified as base above to be ITX compatible. If the feature is not available it is important that it either be emulated or degrade gracefully in some manner. Items marked as advanced can be supported or not, but the Supported Features bits must accurately indicate what features are available.
  • [0205]
    It is expected that hardware platforms meet these minimum specifications:
      • Support HTML 3.2 browser and other requirements in paragraphs 3.x
  • [0207]
    Play video full screen down to a 4:1 downscale (180120 (NTSC), 180144 (PAL)).
    ITX Baseline
    bit Command Group Command list
    0 GRP_OPENVOB Open(filename |
    type)
    1 GRP_TRANSPORT Play([*])
    Pause([*])
    Stop([*])
    FastForward([x[,*]])
    Rewind([x[,*]])
    NextChapter([*])
    PrevChapter([*])
    Resume([*])
    StillOff([*])
    2 GRP_AUDIOTRANSPORT NextTrack( )
    PrevTrack( )
    NextDisplay([*])
    PrevDisplay([*])
    3 GRP_SEARCH TitlePlay(t[,*])
    ChapterPlay(t,c[,*])
    TimePlay(h,m,s,f[,*])
    Menu(x[,*])
    4 GRP_AUDIOSEARCH TitleGroupPlay(g[,*])
    TrackPlay(g,t[,*])
    5 GRP_UOP UOPMask( )
    6 GRP_SELECT UpButtonSelect([n])
    DownButtonselect([n])
    LeftButtonSelect([n])
    RightButtonSelect([n])
    ButtonActivate( )
    ButtonSelectAndActivate
    (n)
    7 GRP_VFEATURES SubPictureSelect (n)
    SubPictureEnable(n)
    AudioSelect (n)
    AngleSelect (n)
    MenuLanguageSelect(n)
    ParentalLevelSelect(n)
    ParentalCountrySelect
    (n)
    FullScreen(w[,*])
    8 GRP_AFEATURES TextLanguageSelect(n)
    9 GRP_PC Close( )
    ShowControls(x,y[,*])
    ShowContextMenu( )
    PopUpMenu( )
    10  GRP_DOWNSCALE From HTML embedded
    object width and
    height parameters
    Zoom(x,y[,*])
    (downscale required
    for baseline;
    upscale is advanced)
    11-15 N/A reserved (must
    return 0)
  • Baseline Capabilities Grouping
  • [0000]
    Advanced Hardware Platform Requirements:
  • [0208]
    Each advanced feature requires that it be fully supported for its feature bit to be enabled. However, different playback systems may have differing levels of support for some features, such as the number of bookmarks supported or the variety of special effects supported.
    ITX Advanced
    bit Command Group Command List
    16 GRP_FILEOPEN Open(filename |
    type)
    Play files other
    than VOB and MPG.
    Audio:
    WAV
    MID
    Video:
    AVI
    17 GRP_ADVPLAY Slow([x[,*]])
    SlowReverse([x[,*]])
    Step([n[,*]])
    18 GRP_HIDDEN HiddenGroupPlay(g[,*])
    HiddenTrackPlay(g,t[,*])
    HiddenTimePlay(h,m,s[,*])
    19 GRP_MENU GotoMenuID(x[,*])
    20 GRP_BOOKMARK GotoBookMark(x[,*])
    SaveBookMark(x[,*])
    21 GRP_MOUSE AutoMouseHide(b)
    22 GRP_KARAOKE KaraokeSelect(x)
    23 GRP_ZOOMPAN Zoom([x,y[,*]])
    Pan([x,y[,*]])
    24 GRP_BLEND VideoBlending([a,c[,*]])
    25 GRP_LAYER CreateLayer(b,c,r,d,p)
    ChangePalette(b,p[,*])
    DestroyLayer(b)
    ShowLayer(b[,*])
    HideLayer(b,[,*])
    DisplayImage(f,b,a[,*])
    26 GRP_DRAW SetVectorDraw(b,c,w[,*])
    SetVectorCorners(x1,
    y1,x2,y2)
    VectorMove(x,y,b[,*])
    VectorDraw(x,y,b[,*])
    27 GRP_AUDIOMIX SetMixVolume(x[,*])
    28 GRP_QUEUE FlushCmdQueue( )
    SetRelTime([t])
    all optional timed
    command parameters
    and special effects
    29 GRP_WEB NetConnect([u[,*]])
    30-31 N/A reserved (must
    return 0)
  • Advanced Capabilities Grouping
  • [0000]
    Local Storage/Memory Requirements:
  • [0209]
    The only local storage requirement of ITX is minimal memory for the purpose of placing cookies. Optionally, the hardware platform can also support larger local memory for the purposes of caching web pages. More information: TBD.
  • [0000]
    Hardware Platform Considerations
  • [0210]
    Some set-top players may not be able to access both DVD-Video and ROM content at the same time. The application will need to permit intelligent caching, and the platform will need to provide sufficient memory.
  • [0211]
    Directory Structure for Current PCFriendly Client:
    /ROOT
      PCFRIEND.EXE (WIN)
      PCFRIEND (MAC)
      README (MAC)
      README (WIN)
      /COMMON
        /SETUP
          LANG.INI
          SETUP_EN.BMP
          SETUP_JA.BMP
          SETUP_FR.BMP
          LIC_EN.TXT
          LIC_JA.TXT
          LIC_FR.TXT
        /CONTENT
          general content (runs on multiple platforms)
      /MAC
        /SETUP
          PCFRIENDLY PLUG IN
          FLASH 4
        /CONTENT
      /WIN
        /SETUP
          PCFRIEND.ICO
          INUNINST.EXE
          UPDATE.DAT
        /CABINETS
          MAIN.CAB
          VIDEO.CAB
          OTHER.CAB
        /THIRDPTY
      /MACROMED
        SWFLASH.EXE
      /MSIE
        /EN
        /JA
  • [0212]
    User Operation Control:
    DVD-Video DVD-Audio DVD-Audio +
    Only Only Video
    Function Menu Title Stop AMGM Title Stop AMGM Title Stop
    TitlePlay X X X X X X X X
    Title_Group_Play
    PTTPlay, X X X X X X X X
    TrackPlay
    TimePlay X X X X X X X X
    Stop X X X X X
    TimeSearch X X X
    PTTSearch, X X X
    TrackSearch
    NextTrack X X
    PrevTrack X X
    NextPG X X X
    PrevPG X X X
    NextDisplay X
    PrevDisplay X
    ForwardScan X X X X X
    BackwardScan X X X X X
    Menu X X X X X
    Resume X X
    Up X X X X
    Down X X X X
    Left X X X X
    Right X X X X
    Enter X X X X
    ButtonSelectand X X X X
    Activate
    Pause X X X X X
    MenuLanguageSelect X X
    TextLanguageSelect X X
    AudioChange X X X X X X X X
    SubpictureChange X X X X X
    AngleChange X X X X
    ParentalLevel X
    ParentalCountry X
    VideoPresentation X X X X X X
    Mode
    KaraokeMode X X X
    HiddenGroupPlay X X X X X
    HiddenTrackPlay X X X X X
    HiddenTimePlay X X X X X
  • User Operation Control Summary
  • [0213]
    AMGM (Audio Manager Menu): Optional Visual Menu defined in the Audio Manager (AMG). The Audio Manager contains the information and data to control all Audio Title Sets (ATS), all Video Title Sets (VTSs) for Audio Titles and the AMGM.
  • [0214]
    Enumerations:
    Item Options Value
    Domain First Play 1
    Video Manager Menu 2
    Video Title Set Menu 3
    Title 4
    Stop 5
    Unknown −1
    Menus Title Menu 2
    Root Menu 3
    Subpicture Languages 4
    Menu
    Audio Languages Menu 5
    Angle Menu 6
    Chapter Menu 7
    Play State None 0
    Scanning 1
    Stop 2
    Pause 3
    Play 4
    Slow 5
    Step 6
    Unknown −1
    Speed State Normal Speed 0
    Double Speed 1
    Slow Forward Speed 2
    Slow Backward Speed 3
    Fast Forward Speed 4
    Fast Backward Speed 5
    Step Speed 6
    Unknown −1
  • Enumerations
  • [0215]
    With reference to FIG. 5, a process 500 is described for providing an enhanced multimedia experience. In an operation 502, DVD content is recorded onto a DVD disc. Then, in an operation, 504, the HTML content is recorded onto the same disc. Thereafter, in an operation 506, the disc is inserted into a client device. The client device can be, for example a personal computer having DVD capabilities and an Internet browser. The client device could also be a set top box. Then in an operation 508, the DVD content is accessed by DVD software present on the client device. In a step 510, the HTML data is accessed. The HTML content is preferably accessed by the browser software already present on the client device. The HTML content is can include data obtained via the Internet by the browser software under the direction of the HTML content recorded onto the disc. Also, the HTML content can consist of only the recorded HTML data with no need for Internet connection. Finally, in an operation 512, the DVD content is supplemented with the HTML content to provide an enhanced multimedia event. The HTML content can be added to the DVD content in multiple ways. For example, the HTML content can be in the form of a picture within a picture, (e.g. a relatively small window within a DVD video). The HTML content could also be update data incorporated directly into a video or could be in the form of navigation commands or relevant Internet links.
  • [0216]
    With reference to FIG. 6, a general process 600 is described for enhancing DVD-content with ROM content. In an operation 602, DVD content is recorded onto a disc. The DVD content is in the form of standard DVD content familiar to those skilled in the art. Then, in an operation 604 DVD-ROM content is generated. This content is preferably HTML encoded content which can be read and operated on by standard Internet browsers. In an operation 606, a plurality of directories are incorporated into the DVD-ROM content. The directories allow operation with multiple user device platforms. The directories preferably include common directories which can be used on several platforms sharing common properties as well as platform specific directories for use with platforms having unique interface requirements. Thereafter, in an operation 608, the DVD-ROM content along with the directories is recorded onto the disc. Then, in an operation 610, the user's particular device platform is determined. This operation occurs automatically upon the user's attempt to use the disc. Then, in an operation, 612, a directory appropriate for use with the determined user device platform is selected from among the plurality of directories. This selected directory is called using Javascript function and appropriate tags associated with the directories.
  • [0217]
    While the invention herein disclosed has been described by means of specific embodiments and applications thereof, numerous modifications and variations could be made thereto by those skilled in the art without departing from the scope of the invention set forth in the claims.
Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
US4000510 *Jun 2, 1975Dec 28, 1976Ampex CorporationSystem for storage and retrieval of video information on a cyclical storage device
US4386375 *Sep 24, 1980May 31, 1983Rca CorporationVideo disc player with multiple signal recovery transducers
US4602907 *Dec 5, 1984Jul 29, 1986Foster Richard WLight pen controlled interactive video system
US4672572 *May 21, 1984Jun 9, 1987Gould Inc.Protector system for computer access and use
US4709813 *Apr 10, 1986Dec 1, 1987Minnesota Mining And Manufacturing CompanyAnti-theft device for compact discs
US4710754 *Sep 19, 1986Dec 1, 1987Minnesota Mining And Manufacturing CompanyMagnetic marker having switching section for use in electronic article surveillance systems
US4739510 *Apr 2, 1987Apr 19, 1988General Instrument Corp.Direct broadcast satellite signal transmission system
US4775935 *Sep 22, 1986Oct 4, 1988Westinghouse Electric Corp.Video merchandising system with variable and adoptive product sequence presentation order
US4785472 *May 11, 1987Nov 15, 1988The Trustees Of The Stevens Institute Of TechnologyRemote teaching system
US4798543 *Mar 31, 1983Jan 17, 1989Bell & Howell CompanyInteractive training method and system
US4804828 *Apr 14, 1987Feb 14, 1989Sharp Kabushiki KaishaCard-type processing device
US4863384 *Apr 10, 1986Sep 5, 1989Keilty, Goldsmith & BoonePersonalized feedback system utilizing pre-recorded media and method of making same
US4888638 *Oct 11, 1988Dec 19, 1989A. C. Nielsen CompanySystem for substituting television programs transmitted via telephone lines
US4967185 *Aug 8, 1989Oct 30, 1990Minnesota Mining And Manufacturing CompanyMulti-directionally responsive, dual-status, magnetic article surveillance marker having continuous keeper
US4993068 *Nov 27, 1989Feb 12, 1991Motorola, Inc.Unforgeable personal identification system
US5023907 *Sep 30, 1988Jun 11, 1991Apollo Computer, Inc.Network license server
US5109482 *Feb 19, 1991Apr 28, 1992David BohrmanInteractive video control system for displaying user-selectable clips
US5128752 *Oct 25, 1990Jul 7, 1992Kohorn H VonSystem and method for generating and redeeming tokens
US5274758 *Dec 28, 1992Dec 28, 1993International Business MachinesComputer-based, audio/visual creation and presentation system and method
US5426629 *Jan 8, 1993Jun 20, 1995Sony CorporationRecording and/or reproducing method for an optical disc
US5467329 *Nov 9, 1993Nov 14, 1995Sony CorporationOptical disc playback apparatus and method which utilizes single RAM for data decoding and TOC processing
US5617502 *Mar 22, 1996Apr 1, 1997Cirrus Logic, Inc.System and method synchronizing audio and video digital data signals during playback
US5619024 *Dec 12, 1994Apr 8, 1997Usa Technologies, Inc.Credit card and bank issued debit card operated system and method for controlling and monitoring access of computer and copy equipment
US5633946 *Nov 3, 1995May 27, 1997Geospan CorporationMethod and apparatus for collecting and processing visual and spatial position information from a moving platform
US5721827 *Oct 2, 1996Feb 24, 1998James LoganSystem for electrically distributing personalized information
US5774664 *Mar 25, 1996Jun 30, 1998Actv, Inc.Enhanced video programming system and method for incorporating and displaying retrieved integrated internet information segments
US5774666 *Oct 18, 1996Jun 30, 1998Silicon Graphics, Inc.System and method for displaying uniform network resource locators embedded in time-based medium
US5778181 *Mar 14, 1996Jul 7, 1998Actv, Inc.Enhanced video programming system and method for incorporating and displaying retrieved integrated internet information segments
US5778187 *May 9, 1996Jul 7, 1998Netcast Communications Corp.Multicasting method and apparatus
US5782692 *Mar 22, 1997Jul 21, 1998Stelovsky; JanTime-segmented multimedia game playing and authoring system
US5796393 *Nov 8, 1996Aug 18, 1998Compuserve IncorporatedSystem for intergrating an on-line service community with a foreign service
US5796952 *Mar 21, 1997Aug 18, 1998Dot Com Development, Inc.Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database
US5805804 *Mar 12, 1997Sep 8, 1998Oracle CorporationMethod and apparatus for scalable, high bandwidth storage retrieval and transportation of multimedia data on a network
US5809512 *Jul 23, 1996Sep 15, 1998Matsushita Electric Industrial Co., Ltd.Information provider apparatus enabling selective playing of multimedia information by interactive input based on displayed hypertext information
US5818935 *Mar 10, 1997Oct 6, 1998Maa; Chia-YiuInternet enhanced video system
US5839905 *Oct 31, 1995Nov 24, 1998Tv Interactive Data CorporationRemote control for indicating specific information to be displayed by a host device
US5861881 *Feb 8, 1996Jan 19, 1999Actv, Inc.Interactive computer system for providing an interactive presentation with personalized video, audio and graphics responses for multiple viewers
US5909551 *Aug 9, 1996Jun 1, 1999Hitachi, Ltd.Interactive recording/reproducing medium and reproducing system
US5915091 *Jun 11, 1996Jun 22, 1999Collaboration Properties, Inc.Synchronization in video conferencing
US5915288 *Feb 19, 1998Jun 22, 1999Interactive Music Corp.Interactive system for synchronizing and simultaneously playing predefined musical sequences
US5945988 *May 30, 1997Aug 31, 1999Intel CorporationMethod and apparatus for automatically determining and dynamically updating user preferences in an entertainment system
US5953005 *Jun 28, 1996Sep 14, 1999Sun Microsystems, Inc.System and method for on-line multimedia access
US5977964 *Jan 5, 1998Nov 2, 1999Intel CorporationMethod and apparatus for automatically configuring a system based on a user's monitored system interaction and preferred system access times
US6023241 *Nov 13, 1998Feb 8, 2000Intel CorporationDigital multimedia navigation player/recorder
US6128434 *Jun 9, 1998Oct 3, 2000Kabushiki Kaisha ToshibaMultilingual recording medium and reproduction apparatus
US6202061 *Oct 24, 1997Mar 13, 2001Pictra, Inc.Methods and apparatuses for creating a collection of media
US6330719 *Jun 30, 1999Dec 11, 2001Webtv Networks, Inc.Interactive television receiver unit browser that waits to send requests
US6343314 *Apr 28, 1997Jan 29, 2002Collaboration Properties, Inc.Remote participant hold and disconnect during videoconferencing
US6405203 *Apr 21, 1999Jun 11, 2002Research Investment Network, Inc.Method and program product for preventing unauthorized users from using the content of an electronic storage medium
US6426778 *Apr 3, 1998Jul 30, 2002Avid Technology, Inc.System and method for providing interactive components in motion video
US6452609 *Nov 6, 1998Sep 17, 2002Supertuner.ComWeb application for accessing media streams
US6460180 *Apr 20, 1999Oct 1, 2002Webtv Networks, Inc.Enabling and/or disabling selected types of broadcast triggers
US6580870 *Nov 27, 1998Jun 17, 2003Kabushiki Kaisha ToshibaSystems and methods for reproducing audiovisual information with external information
US6583806 *Apr 7, 1997Jun 24, 2003Collaboration Properties, Inc.Videoconferencing hardware
US6615408 *Jan 15, 1999Sep 2, 2003Grischa CorporationMethod, system, and apparatus for providing action selections to an image referencing a product in a video production
US6665835 *Dec 23, 1997Dec 16, 2003Verizon Laboratories, Inc.Real time media journaler with a timing event coordinator
US6721748 *May 13, 2002Apr 13, 2004Maquis Techtrix, Llc.Online content provider system and method
US6731239 *Jan 18, 2002May 4, 2004Ford Motor CompanySystem and method for retrieving information using position coordinates
US6732162 *Nov 15, 1999May 4, 2004Internet Pictures CorporationMethod of providing preprocessed images for a plurality of internet web sites
US6741790 *May 29, 1998May 25, 2004Red Hen Systems, Inc.GPS video mapping system
US6864746 *Jan 17, 2003Mar 8, 2005Microtune (Texas), L.P.Dual gain amplification low noise amplifier
US6909708 *Nov 18, 1996Jun 21, 2005Mci Communications CorporationSystem, method and article of manufacture for a communication system architecture including video conferencing
US6959339 *Aug 18, 1999Oct 25, 2005International Business Machines CorporationTechnique for handling a universal image format on the internet
US6976229 *Dec 16, 1999Dec 13, 2005Ricoh Co., Ltd.Method and apparatus for storytelling with digital photographs
US7024497 *Sep 7, 2000Apr 4, 2006Adaptec, Inc.Methods for accessing remotely located devices
US7111009 *Sep 15, 1999Sep 19, 2006Microsoft CorporationInteractive playlist generation using annotations
US7136574 *Mar 18, 2004Nov 14, 2006Kabushiki Kaisha ToshibaInformation storage system capable of recording and playing back a plurality of still pictures
US7168012 *Feb 20, 2002Jan 23, 2007Autodesk, Inc.Error handling and representation in a computer-aided design environment
US7171480 *Jan 29, 2001Jan 30, 2007Sony Computer Entertainment America Inc.Method and system for providing auxiliary content located on local storage during download/access of primary content over a network
US7254825 *Aug 23, 2000Aug 7, 2007Xperex CorporationMethod and device with DVD and HTML control environments
US7272843 *Jun 17, 1998Sep 18, 2007Hitachi, Ltd.Broadcasting method and broadcast signal receiver apparatus
US7281199 *Apr 27, 2000Oct 9, 2007Verizon Corporate Services Group Inc.Methods and systems for selection of multimedia presentations
US7412482 *Jan 12, 2007Aug 12, 2008Avistar Communications CorporationSystem for managing real-time communications
US20010051037 *Mar 19, 2001Dec 13, 2001General Instrument CorporationPersonal versatile recorder: enhanced features, and methods for its use
US20010056434 *Mar 29, 2001Dec 27, 2001Smartdisk CorporationSystems, methods and computer program products for managing multimedia content
US20020007493 *Jul 29, 1997Jan 17, 2002Laura J. ButlerProviding enhanced content with broadcast video
US20020049978 *Jun 14, 2001Apr 25, 2002Rodriguez Arturo A.System and method for access and placement of media content information items on a screen display with a remote control device
US20020053078 *Apr 18, 2001May 2, 2002Alex HoltzMethod, system and computer program product for producing and distributing enhanced media downstreams
US20020059342 *Oct 23, 1997May 16, 2002Anoop GuptaAnnotating temporally-dimensioned multimedia content
US20020064149 *Jun 14, 2001May 30, 2002Elliott Isaac K.System and method for providing requested quality of service in a hybrid network
US20020103855 *Jan 29, 2001Aug 1, 2002Masayuki ChataniMethod and system for providing auxiliary content located on local storage during download/ access of primary content over a network
US20020136406 *Jun 8, 2001Sep 26, 2002Jeremy FitzhardingeSystem and method for efficiently storing and processing multimedia content
US20020161578 *Apr 26, 2001Oct 31, 2002Speche CommunicationsSystems and methods for automated audio transcription, translation, and transfer
US20020184637 *May 30, 2001Dec 5, 2002Perlman Stephen G.System and method for improved multi-stream multimedia transmission and processing
US20030005461 *Jul 2, 2001Jan 2, 2003Sony CorporationSystem and method for linking closed captioning to web site
US20030191697 *Apr 8, 2002Oct 9, 2003Stolski Sean M.Dedicated portable computer sales presentation system
US20040010510 *Jul 10, 2002Jan 15, 2004Timo HottiMethod and system for database synchronization
US20040017475 *Feb 19, 2003Jan 29, 2004Akers William RexApparatus and method for computerized multi-media data organization and transmission
US20040024818 *Jun 6, 2003Feb 5, 2004Lg Electronics Inc.System and method for updating chatting data in an interactive disc player network
US20040114042 *Dec 12, 2002Jun 17, 2004International Business Machines CorporationSystems and methods for annotating digital images
US20040139077 *Dec 18, 2003Jul 15, 2004Banker Shailen V.Linked information system
US20040215755 *Apr 1, 2003Oct 28, 2004O'neill Patrick J.System and method for updating and distributing information
US20050050208 *Aug 26, 2003Mar 3, 2005Sony Computer Entertainment America Inc.System and method for controlling access to computer readable content using downloadable authentication
US20050154682 *Nov 12, 2004Jul 14, 2005Sonic SolutionsSecure transfer of content to writable media
US20050223013 *May 3, 2005Oct 6, 2005Matthew JarmanDelivery of navigation data for playback of audio and video content
US20050240588 *Apr 26, 2004Oct 27, 2005Siegel Hilliard BMethod and system for managing access to media files
US20060159431 *Mar 22, 2006Jul 20, 2006Hideo AndoOptical disc for storing moving pictures with text information and apparatus using the disc
US20060184538 *Feb 16, 2005Aug 17, 2006Sonic SolutionsGeneration, organization and/or playing back of content based on incorporated parameter identifiers
US20070094583 *Oct 25, 2005Apr 26, 2007Sonic Solutions, A California CorporationMethods and systems for use in maintaining media data quality upon conversion to a different data format
Referenced by
Citing PatentFiling datePublication dateApplicantTitle
US7555715Oct 25, 2005Jun 30, 2009Sonic SolutionsMethods and systems for use in maintaining media data quality upon conversion to a different data format
US7689510Dec 16, 2005Mar 30, 2010Sonic SolutionsMethods and system for use in network management of content
US7711795Mar 31, 2006May 4, 2010Sonic SolutionsSystem, method and article of manufacture for remote control and navigation of local content
US7779097Aug 17, 2010Sonic SolutionsMethods and systems for use in network management of content
US7886226Apr 24, 2007Feb 8, 2011Adobe Systems IncorporatedContent based Ad display control
US7936377May 3, 2011Tandent Vision Science, Inc.Method and system for optimizing an image for improved analysis of material and illumination image features
US7945141 *Aug 12, 2004May 17, 2011Samsung Electronics Co., Ltd.Information storage medium including event occurrence information, and apparatus and method for reproducing the information storage medium
US8331769 *Dec 11, 2012Panasonic CorporationRecording medium, playback device, program, playback method, and recording method
US8380048 *Feb 19, 2013Panasonic CorporationReproduction device, optical disc, recording medium, program, reproduction method
US8385720 *Nov 3, 2009Feb 26, 2013Panasonic CorporationReproduction device, optical disc, recording medium, program, reproduction method
US8391677Jan 7, 2005Mar 5, 2013Panasonic CorporationRecording medium, reproduction device, program, reproduction method
US8392826Mar 5, 2013Sonic Solutions LlcMethods and systems for use in maintaining media data quality upon conversion to a different data format
US8612847Apr 19, 2007Dec 17, 2013Adobe Systems IncorporatedEmbedding rendering interface
US8954852Jan 23, 2007Feb 10, 2015Sonic Solutions, Llc.Adaptive intervals in navigating content and/or media
US20030182627 *Mar 10, 2003Sep 25, 2003Samsung Electronics Co., Ltd.Reproducing method and apparatus for interactive mode using markup documents
US20050152681 *Aug 12, 2004Jul 14, 2005Samsung Electronics Co., Ltd.Information storage medium including event occurrence information, apparatus and method for reproducing the same
US20050265701 *May 20, 2005Dec 1, 2005Interactual Technologies, Inc.Presentation of media content
US20060200465 *Dec 6, 2005Sep 7, 2006Tsung-Hua ChuangMethod for searching a computer file in a file directory according to its file name
US20070078732 *Sep 14, 2005Apr 5, 2007Crolley C WInteractive information access system
US20070198111 *Jan 23, 2007Aug 23, 2007Sonic SolutionsAdaptive intervals in navigating content and/or media
US20080082907 *Apr 19, 2007Apr 3, 2008Adobe Systems IncorporatedEmbedding Rendering Interface
US20080082911 *Dec 18, 2006Apr 3, 2008Adobe Systems IncorporatedEnvironment-Constrained Dynamic Page Layout
US20080137733 *Nov 26, 2007Jun 12, 2008Sylvain FabreEncoding device, decoding device, recording device, audio/video data transmission system
US20080266430 *Apr 30, 2007Oct 30, 2008Tandent Vision Science, Inc.Method and system for optimizing an image for improved analysis of material and illumination image features
US20090006968 *Jun 29, 2007Jan 1, 2009Keoki TraskSystem, computer-implemented method, and removable computer-readable medium with software for creating and displaying dynamically and automatically in real time a transient themed digital multimedia slide show presentation
US20090034939 *Jan 7, 2005Feb 5, 2009Tomoyuki OkadaRecording medium, reproduction device, program, reproduction method
US20090265617 *Oct 22, 2009Sonic Solutions, A California CorporationMethods and systems for use in maintaining media data quality upon conversion to a different data format
US20100046923 *Feb 25, 2010Panasonic CorporationReproduction device, optical disc, recording medium, program, reproduction method
US20100046924 *Nov 3, 2009Feb 25, 2010Panasonic CorporationReproduction device, optical disc, recording medium, program, reproduction method
US20100153226 *Dec 11, 2008Jun 17, 2010At&T Intellectual Property I, L.P.Providing product information during multimedia programs
US20100260489 *Oct 14, 2010Panasonic CorporationRecording medium, playback device, program, playback method, and recording method
US20100281368 *Nov 4, 2010Samsung Electronics Co., Ltd.Information storage medium including event occurrence information, apparatus and method for reproducing the same
WO2008042875A2 *Oct 1, 2007Apr 10, 2008Adobe Systems IncorporatedEmbedding rendering interface
WO2008134038A1 *Apr 28, 2008Nov 6, 2008Tandent Vision Science, Inc.Method and system for optimizing an image for improved analysis of material and illumination image features
Classifications
U.S. Classification1/1, G9B/27.012, 707/E17.119, 707/E17.009, 707/999.01
International ClassificationH04L29/08, H04L29/06, G06F17/30, G11B27/034
Cooperative ClassificationH04L29/06027, G11B2220/2562, H04L29/06, G11B27/034, H04L69/329, H04L67/34, H04L67/303, H04L67/02, H04L65/604, G06F17/30899
European ClassificationH04L29/08N29T, G11B27/034, H04L29/08N1, H04L29/08N33, G06F17/30W9, H04L29/06, H04L29/06M6C4
Legal Events
DateCodeEventDescription
May 10, 2006ASAssignment
Owner name: SONIC SOLUTIONS, A CALIFORNIA CORPORATION, CALIFOR
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTERACTUAL TECHNOLOGIES, INC., A CALIFORNIA CORPORATION;REEL/FRAME:017596/0401
Effective date: 20060327