Title of the Invention
METHOD AND APPARATUS FOR SYNCHRONIZING PLAYBACK OF
MULTIPLE MEDIA TYPES OVER NETWORKS HAVING DIFFERENT
TRANSMISSION CHARACTERISTICS
Background of the Invention Field of the Invention
This invention generally relates to consumer device control systems and more particularly, to a method and apparatus for synchronizing playback of multiple media types over networks with different transmission characteristics. Description of the Related Art
Conventional audio-video systems are designed to play audio and video information from a variety of different media. The audio-video systems include audio devices that can playback sounds from audio media such as compact disks (CD), minidisks, tape cassettes, and records. The video devices in these systems can display images on a display screen such as a television set and generate accompanying voice, music, or sound. Video information can be stored on video media such as video cassettes, digitally encoded laser disks, and digital video disks (DVD).
The audio and video devices are generally connected to the audio-video system using a local bus or other direct connection. These devices transmit audio and connection is reserved for use by the directly attached audio and video devices. As a result, there is a relatively short time period between requesting playback of media and the time playback of the media begins. Further, the delivery rate of the audio and video information is predictable because the direct connection delivers information to the audio-video system at essentially a constant transmission rate. For example, a CD player can deliver audio information over a direct connection to an audio-video system at a constant transmission rate because bandwidth on the direct connection is not shared with other devices.
By connecting an audio-video system to a network such as the Internet, many more audio and video titles are available for playback. The Internet provides an everchanging variety of media and is not limited to the media stored on traditional devices such as CDS, videos, laser disks, and minidisks. Unfortunately, media delivered over a network like the Internet may include variable delays and transmit data at variable data rates. Variations in delivery may occur because the audio or video information being transmitted has different compression/decompression methods that take different times periods to process or because the information is delivered by computer systems transmitting information over networks with different bandwidths. As an additional factor, data delivery rates may fluctuate on public networks such as the Internet as thousands of users sporadically access the Internet and consume the available bandwidth.
For at least these reasons, it is difficult to combine media stored on a network such as the Internet with information stored on a local device because the transmission characteristics of a network are not as predictable as a local direct connection. For example, the difference in transmission speed makes it difficult to play back a CD from a local CD player while simultaneously downloading and displaying images from the Internet in realtime. Even though audio information on the CD is ready for playback immediately, images cannot be downloaded from a network as quickly. Further, sudden variations in data traffic on a network such as the Internet may cause the transmission rate for downloading information to change unpredictably. This also makes it difficult to synchronize playback of media on a local device, such as a CD player, with media being downloaded over a network.
Accordingly, there is a need to coordinate the delivery and playback of data stored on different media types delivered to an audio or video device when the data is being transmitted with different transmission characteristics to an audio- video system.
Summary of The Invention
In accordance with the present invention, as embodied and broadly described herein, a method for synchronizing the playback of data on a primary media with data on a secondary media is provided. Initially, the data on the primary media is identified using a unique identifier. The unique identifier is generated based upon information associated with data on the primary media such as the table of contents. This unique identifier is used to locate data on the secondary media stored remotely over a network. For example, data on
the secondary media could be a hypertext link associated with a particular track on a compact disk (CD). Data on the secondary media matching the unique identifier is downloaded over the network and cached in a local storage area. Timing information is then used to synchronize playback of data on the primary data on media with the cached data from the secondary media.
Another aspect of the present invention provides a method of using the timing information to synchronize playback of data from the primary media with data from the secondary media. Initially, data on the primary media is identified using a unique identifier. Data from the secondary media cached on a local storage device is located using the unique identifier. Timing information associated with the data from secondary media is used to set triggers for launching data from the secondary media. The time period for launching data from the secondary media is based upon an elapsed time period data on the primary media has played. Playing data from the primary media over a time period triggers interrupts, launches data on the secondary media, and synchronizes playback of data from the secondary media with the data on primary media.
Brief Description of The Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate systems and methods consistent with the invention and, together with the description, serve to explain the advantages, and principles of the invention.
In the drawings:
FIG. 1 is a block diagram of an audio-video system consistent with the present invention including data from primary media and secondary media;
FIG. 2 is a block diagram of a set-top device shown in FIG. 1 consistent with the present invention;
FIG. 3 is a flowchart consistent with the present invention for playing data on secondary media downloaded from a network with data on primary media stored on a local audio- video device;
FIG. 4 is a flowchart for synchronizing the playback of data on a secondary media and data on a primary media consistent with the present invention; and
FIG. 5 is a block diagram displaying one technique for organizing synchronization information associated with data on the primary media and secondary media consistent with one implementation of the present invention.
Detailed Description Audio Visual System And Network
FIG. 1 is a block diagram of an audio-video system 100 operatively coupled to a network capable of combining various media into a multimedia presentation. Audiovideo system 100 includes audio-video devices 102, a display device 104, a set-top device 106, an input device 107 for communicating with set-top device 106, and a network 108 accessible to set-top device 106. A server 110 is operatively coupled to network 108 and a remote database with secondary media 1 12. A local database stored on primary media 1 14 is operatively coupled to audio-video devices 102. Network 108 can include the Internet and computer resources associated with the Internet.
Audio-video devices 102 include devices capable of playing different audio and video media. For example, these devices may include a compact disk player, a video tape player, a DVD player, a mini disk player, a television receiver, an audio receiver, and an audio playback device such as a stereo receiver/amplifier and audio tape player. These devices can be connected together using a bus 103 such as IEEE- 1394 ("Firewire") or Universal Serial Bus (USB). Bus 103 transmits data stored on a media quickly between set- top device 106 and audio-video devices 102. Because each device connected to bus 103 can be uniquely addressed, multiple identical devices can be configured into the same system. For example, DVD players could be separately addressed on bus 103 as DVD-1 and DVD-2.
Video images are displayed on display device 104 when a portion of data on the media includes visual display information. For example, a television tuner or video playback device in audio-video devices 102 generates images displayed on display device 104. The television tuner or video playback device may also generate audio information played back through an audio device such as a stereo receiver/amplifier and audio tape player. Display device 104 can be any device used to display images such as a computer screen, a television, or a video-monitor device.
Set-top device, or box, (STB) 106 is a computer-based device used to control audio- video devices 102 and display device 104. In addition, set-top device 106 has access to
server 110 and secondary media 112 through network 108. Consistent with the present invention, set-top device 106 coordinates playback of data on primary media 114 and secondary media 112. Primary media 114 is typically a storage medium such as a CD-ROM associated with an audio-video device while secondary media 112 is a storage medium such as a hard-disk associated with server 100.
A communication protocol enables STB 106 to communicate with audio-video devices 102 and display device 104. STB 106 sends commands to audio-video devices 102 to play the audio media, video media, and other information associated with primary media 114 and secondary media 112. These commands can be in the format of the control protocol called Control A-l or S-Link developed by the Sony Corporation based in Tokyo, Japan. Alternatively, other control protocols such as Home Audio Video Interoperability Architecture (HAVi) can be used along with other control protocols that are compatible with audio-video devices 102 and display device 104. HAVi was developed by a consortium including many consumer electronics companies including Sony, Hitachi, Matsushita, Phillips, Toshiba. Sharp, and Grundig. The document describing HAVi, "The HAVi Architecture: Specification of the Home/Nideo Interoperability (HAVi) Architecture", Version 0.8, authored by Sony. Hitachi, Matsushita. Phillips, Toshiba, Sharp, Grundig is incorporated by reference herein.
Input device 107 can communicate with STB 106 through a wireless communication mechanism using infrared signals or radio frequency signals. This allows a user to operate STB 106 and accompanying audio-video devices 102 without cumbersome wires. Input device 107 can be a keyboard, a keyboard and a mouse, a hand-held remote control device, or any other input device useful in controlling STB 106.
In FIG. 1, server 110 facilitates access to secondary media 112. Secondary media 112 includes data or information related to data on primary media 114. For example, data on secondary media 112 may include hypertext links to locations on the Internet, static images, or video clips that compliment and enhance the playback of data on primary media 114. Server 110 transmits this data from secondary media 112 through network 108 to STB 106. STB 106 stores data from the secondary media internally in a local database on a storage device such as a hard disk or other cache device.
STB 106 then coordinates the playback of data on primary media 114 and data from secondary media 112. Coordination is necessary because network 108 transmits data stored on secondary media 112 at a slower transmission rate to STB 106 than data transmitted between audio-video-devices 102, primary media 114, and STB 106. Using a local storage area such as cache, implementations of the present invention provide a technique for synchronizing the playback of data from secondary media 1 12 transmitted over network 108 and data from primary media 114 stored on audio-video devices 102. Data transmitted over a slower transmission link, such as network 108, is cached in a local database and played back at a predetermined time corresponding to the playback of data transmitted over a faster transmission link, such as bus 103, thus synchronizing the playback of data on secondary media 112 and primary media 114. Additional information on synchronizing data provided over transmission links with different transmission speeds and operating characteristics is discussed in further detail later herein.
FIG. 2 is a block diagram of STB 106 designed in accordance with the present invention. STB 106 includes a processor 202, an input-output interface 204, a network interconnection 206, a wireless interface 207, a memory 208, an audio-video interface 210, a secondary storage 212, and an internal bus 214 facilitating communication between each of the aforementioned elements. Processor 202 can be a general purpose processor such as an Intel Pentium processor or an application specific integrated circuit (ASIC) designed to execute one or more applications. For example, processor 202 can be an ASIC designed specifically to run web browser software compatible with the World Wide Web (WWW). Input-output interface 204 can be connected to a number of different peripheral devices such as an external storage device or a printer. Network interconnect 206 may be a modem, cable modem, or other device to provide an interface between a network such as the Internet and STB 106. Wireless interface 207 facilitates receiving infra-red (IR) or radio frequency (RF) signals from input devices not physically attached to STB- 106. For example, a keyboard device and mouse can communicate with set-top box 106 through a wireless infrared interface without the use of cables or other physical attachments.
Memory 208 includes a user interface 218. a media download module 220. a media cache module 222, a media synchronization module 224, synchronization data 226, a local database application 228. a remote database application 230, a development kit 232, and a
run time environment 234. User interface 218 is a graphical user interface supporting hypertext links and suitable for displaying and controlling the playback of data from multiple media types in accordance with the present invention. Preferably, user interface 218 is a web browser capable of displaying and controlling static images, video, audio, and providing hypertext links to other locations on the World Wide Web (WWW).
Media download module 220 uses a communication protocol such as TCP/IP to download data from secondary media 112 over network 108 to STB 106. Server 110 uses a unique identifier associated with data on primary media 114 to search secondary media 112 for data corresponding to primary media 114. The data associated with secondary media 112 may include hypertext links, static images, video clips, and audio clips suitable for playback with different types of data stored on primary media 114. Data on primary media 114 and secondary media 112 is organized using database storage and retrieval techniques well known in the art. For example, this data could be stored on EXCEL databases. Data on secondary media 112 matching the unique identifier is downloaded into local database 216 associated with STB 106. Local database 216 acts as a temporary cache location to store data from secondary media 112 before playback on audio-video devices 102. Preferably, each entry of data from secondary media 112 stored in local database 216 is also indexed according to the same unique identifier.
Media cache module 222 matches entries in local database 216 to the data on primary media 114 being played back over audio-video devices 102. Media cache module 222 searches data from secondary media 112 cached in local database 216 for a unique identifier associated with data on primary media 114 being played on an audio or video device. Matching entries of data from secondary media 112 in local database 216 are played back with data on primary media 114 consistent with the present invention.
Media synchronization module 224 sends commands to different audio and video devices to play data on primary media 114 and data on secondary media 112 at predetermined times. Timing information indicates when the data on secondary media 112 should be played. For example, timing information can indicate that data from secondary media 112 should be played after data on primary media 1 14 has been played for a predetermined number of seconds. This timing information can be stored in local database
216 along with data from secondary media 112 or may be stored separately in a file containing synchronization information.
Media download module 220, media cache module 222, and media synchronization module 224 can be implemented in C, JavaScript, or an object-oriented programming language such as the Java programming language. For security reasons, standard versions of the Java programming language and the JavaScript scripting language do not generally allow applications to access storage areas associated with a computer system. Consequently, modules 220, 222, and 224 require extensions to JavaScript or the Java Programming language to access secondary storage 212, memory 208, and other storage areas where data from secondary media 112, primary media 114, and related information may be stored.
Synchronization data 226 provides timing information for playing back data from primary media 114 and secondary media 112. The timing information is generally downloaded over network 108 along with data from secondary media 112. Playback of data from secondary media 112 depends on the elapsed time primary media 114 has played. For example, timing information can indicate that a secondary media such as a hypertext link should be displayed on display device 104 after a selected primary media such as a music on a CD-ROM has been playing for 20 seconds. As previously discussed, synchronization data 226 can be stored in a separate file or separate record in a database.
Local database application 228 and remote database application 230 are software components used to search and retrieve data stored on local database 216 and a remote database storing data from secondary media 112. Remote database application 230 provides database operations necessary for media download module 220 to access and retrieve data from secondary media 112. Local database application 228 provides similar database functionality enabling media cache module 222 to retrieve downloaded data from secondary media 112 stored on local database 216.
Development kit 232 includes software libraries and application programming interfaces (APIs) used by media download module 220, media cache module 222. and media synchronization module 224 to access static images, audio, and video media information stored on local databases, remote databases, and other storage areas associated with set-top box 106. Preferably, development kit 232 provides access to HAVi or Sony's Control A-l or
S-Link protocol to send commands to audio-video devices 102. These software libraries and APIs in development kit 232 may be compatible with a wide range of programming languages including C, JavaScript, the Java programming language, and other object- oriented programming languages. User interface 218 may include extensions to hypertext markup language (HTML) that access development kit 232 and process static images, audio, and video media.
Run-time environment 234 facilitates execution on processor 202 of the above mentioned software subsystems located in memory 208. Different run-time environments 228 compatible with implementations of the present invention include real-time operating systems (RTOS) for real-time processing, UNIX-based operating systems, or Microsoft Windows.
Audio-video interface 210 provides a connection to audio-video devices 102 and display device 104. STB 106 transmits commands through audio-video interface 210 to display device 104 or the appropriate device in audio-video devices 102 in accordance with the present invention. These commands control operation of each device in audio-video devices 102. For example, audio-visual interface 210 can transmit commands requesting a device to send descriptive information on the media stored in the device or data stored on the media. For example, the descriptive information could include the title of a video or audio track. These commands can also include commands that cause the audio and video devices to play audio and video media in a desired sequence.
Secondary storage 212 preferably comprises a hard disk drive or other mass storage device formatted to store information such as local database 216. As previously discussed, local database 216 can be used as a cache for storing data from secondary media 112 such as hypertext links, video clips, audio or video information as well as synchronization or timing information. Media Synchronization
FIG. 3 is a flow chart of the method steps for synchronizing the playback of data on primary media 112 and secondary media 114 in accordance with the present invention. Initially, set-top box 106 sends commands to audio-video devices 102 to determine which devices are available and determine the configuration of audio-video system 100 (stage 302). Set-top box device 106 identifies each audio-video device according to a unique
address assigned by the manufacturer thereof. Because each audio or video device has a unique address, STB 106 can distinguish between multiple audio-video devices that play the same media format. For example, STB will identify two CD players as CD-I and CD-2.
STB 106 uses the unique address associated with each audio-video device to interrogate audio-video devices 102 and identify the primary media associated with each audio-video device (stage 304). Primary media 114 associated with these devices includes CDS, video cassettes, laser disks, DVDs, and minidisks. Preferably, the commands used to perform this interrogation are based on HAVi or the Control A-l or S-Link protocol developed by the Sony Corporation.
STB 106 extracts table of contents information from the data associated with media on each audio-video device. The table of contents can be used as a "fingerprint" to uniquely identify the data because the table of contents for data on different audio or video media is generally unique. One technique for identifying audio CDS is contained in a specification known in the industry as the "Red Book". Additional techniques for identifying data stored on CDS are also described in U.S. Patent, "Compact Disc Changer Utilizing Disc Database", Serial No. 08/507.544, by Carl J. Yankowski, assigned to the assignee of the present invention, filed July 26, 1995 which is incorporated by reference in its entirety. Those skilled in the art will appreciate that the techniques for identifying data on CDS can also be used to identify data stored on video cassettes and other storage mediums such as DVD and minidisks.
Accordingly, STB 106 uses table of contents data extracted from primary media 1 14 to generate a unique identifier (stage 306). Thereafter, the unique identifier identifies data on primary media 114 and is used to cross reference data stored on secondary media 112 available over network 108.
STB 106 loads media download module 220 into memory 208 to obtain data from secondary media 112. Data on secondary media 112 is indexed according to the unique identifier associated with primary media 114. Media download module 220 uses the unique identifier to locate data on secondary media 112 associated with a remote database over a network such as the Internet (stage 308). For example, a database developer indexes information such as hypertext links from secondary media 112 by one or more unique identifiers corresponding to data on primary media 114. When a user loads a CD in a CD
player, media download module 220 uses the unique identifier for the data stored on the CD to locate the corresponding data such as a hypertext link or a static image stored on secondary media 112.
Once related data on secondary media is located, media download module 220 downloads the data over network 108 and into a cache or database such as local database 216 (stage 310). Preferably, the database or cache used to hold data from secondary media 112 can transmit information at a transmission rate equal to or greater than the transmission rate associated with transmitting data from the primary media. Because data on primary media 114 and cached data from secondary media 112 can be transmitted at essentially the same rate, set-top box can synchronize playback of data from primary media 114 with data on secondary media 112 (stage 312). For example, data from secondary media such as hypertext links previously downloaded from the Internet can be displayed on display device 104 while data stored on a storage medium such as a CD is being played on a CD player.
FIG. 4 is a flowchart diagram illustrating the stages associated with the process of synchronizing the playback of data on primary media 114 and secondary media 112 in accordance with the present invention. These additional stages are associated with stage 312 in FIG. 3. Initially, STB 106 loads media cache module 222 in memory 208 for processing by processor 202. Media cache module 222 identifies data on primary media 114 selected for playback, such as audio media stored on a CD, using the unique identifier discussed above (stage 402). Using the unique identifier, media cache module 222 locates cached data from secondary media 112 corresponding to the unique identifier stored in local database 216 (stage 404). For example, cached data from secondary media 112 may include a series of hypertext links related to audio tracks on a CD being played on a CD player. As previously discussed, data from secondary media 112 such as a hypertext link is cached before playback of data from primary media 114 to avoid the delay introduced downloading data over a network such as the Internet.
Once data stored on primary media 114 and corresponding data stored on secondary media 112 is identified, processor 202 executes media synchronization module 224 to coordinate the playback. Media synchronization module 224 sets triggers to play data on the secondary media 112 based upon the elapsed time period data on primary media 114 has played (stage 406). As previously discussed, synchronization data 226 holds information
used for timing the playback of the different types of media. This synchronization information is loaded into media synchronization module 224 before playing data from primary media 1 14. Triggers are set in media synchronization module 224 to launch data from secondaiy media 112 such as hypertext links at predetermined time intervals. Those skilled in the art will understand how traditional interrupt mechanisms capable of setting, triggering, and processing interrupts can be used to implement this aspect of the present invention. Synchronization begins when data stored on primary media 114 such as a CD begins playing (stage 408). After the data plays for an elapsed time period, media synchronization module 224 triggers interrupts causing cached data from secondary media 112, such as a hypertext link, to be launched and processed by the appropriate audio-visual devices (stage 410). Media synchronization module 224 then locates subsequent data in cache based on the media unique identifier (stage 412). At the appropriate time period, synchronization module 224 launches the next data from secondary media 1 12 for playback and the process repeats until all data from primary media 114 and corresponding data from secondary media 112 has been played (stage 414).
FIG. 5 illustrates an exemplary organization of synchronization data 226 used for two tracks on a CD, data from primary media 114, and the hypertext links, data from secondary media 112, corresponding to these tracks. For the first track of the CD, synchronization data 226 includes a synchronization header 500, a track identifier 501, a first link 502, a second link 504, a third link 506, and a fourth link 508. Synchronization header 500 includes information to describe the synchronization file including the unique identifier ("file name") to associate the hypertext links with the tracks on a CD. In this example, the filename is "850f970b.SCN" wherein the prefix "850f970b" corresponds to the primary data and the suffix ".SCN" indicates that this file is a synchronization file. Track identifier 501 indicates which track of the CD should be played while the hypertext links are displayed on a display device for selection. Those skilled in the art will understand that track identifier 501 includes sufficient information to identify and load a CD in a CD player for use with a command language such as HAVi or the Control A-l or S-Link developed by the Sony Corporation.
Each link subsequent to track identifier 501 includes a time stamp and data specifying when to launch the link. For example, first link 502 has a time stamp of zero
indicating that the corresponding link is available and can be displayed immediately when the CD begins playing the first track (i.e. the CD has played zero seconds). The "<type>" entry in first link 502 can indicate the type of information including a universal record locator (URL) type pointing to any valid URL type or a JavaScript type pointing to a separate file containing JavaScript commands. The ten (10) second time stamp on second link 504 indicates that the hypertext link is displayed after the CD has played ten (10) seconds of the first track. Similarly, the forty (40) second time stamp associated with the third link 506 and the one-hundred sixty (160) second time stamp associated with the fourth link 508 indicate that the third and fourth links have been downloaded and available for display after the CD has played forty (40) and one-hundred sixty (160) seconds, respectively.
Synchronization data 226 also includes information for synchronizing the second track of the CD with several hypertext links. The synchronization information for the second track includes a track identifier for the second track 510, a first link 512 for the second track, a second link 514 for the second track, and a third link 516 for the second track. Synchronization data 226 for the second track on the CD is organized in a similar manner to the corresponding information for the first track on the CD discussed above.
While specific embodiments have been described herein for purposes of illustration, various modifications may be made without departing from the spirit and scope of the invention. For example, the figures and examples discussed above utilize a primary and a secondary media however implementations of the present invention could be used to synchronize more than two types of media. Implementations of the present invention can also use command languages other than HAVi or the Control A-l or S-Link protocol developed by the Sony Corporation. Further, although aspects of the present invention are described as being stored in memory and other storage mediums, one skilled in the art will appreciate that these aspects of the present invention can also be stored on or read from other types of computer-readable media, such as secondary storage devices, like hard disks, floppy disks, or CD-ROM; a carrier wave from the Internet, or other forms of RAM. Accordingly, the invention is not limited to the above described embodiments, but instead is defined by the appencted claims in light of their full scope of equivalents.