CLAIM OF PRIORITYThis application claims the priority benefit of commonly-assigned, co-pending U.S. patent application Ser. No. 12/259,852 entitled “COMBINED BROADCAST AND BACKCHANNEL DELIVERY OF STREAMING CONTENT” to Payton R. White, Stephen C. Detwiler and Gary M. Zalewski, filed Oct. 28, 2008, the entire disclosures of which are incorporated herein by reference.
FIELD OF INVENTIONThis invention relates to the delivery of streaming content, and specifically to the delivery of streaming content using a combined broadcast and backchannel approach.
BACKGROUND OF INVENTIONAs digital multimedia accelerates into the mainstream, more and more people rely on this multimedia as a daily form of entertainment. From video clips to music videos to TV shows and movies, a wide range of multimedia can be found being accessed all around the world through the Internet, television, radio, etc. A common problem with accessing such multimedia, from the viewpoint of the user, is the relative speed with which receiving devices may stream content. Because receiving devices commonly stream multimedia content from one source, issues concerning bandwidth and server capabilities may limit a user's ability to access multimedia at a fast rate.
With many countries mandating a change from the presentation of multimedia with an analog signal format to a new digital format, more broadcaster-user systems have become available for users to obtain different forms of multimedia. It is within this context that embodiments of the current invention arise.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 is a schematic diagram illustrating an example of a combined broadcast and backchannel approach to the delivery of streaming content.
FIG. 2 is a flow diagram illustrating the process of combined broadcast and backchannel delivery of streaming content from the perspective of the user of the receiving device.
FIG. 3A-C are schematic diagrams illustrating examples of packets of information being broadcast by the broadcaster.
DESCRIPTION OF THE SPECIFIC EMBODIMENTSFIG. 1 is a schematic diagram illustrating an example of a combined broadcast and backchannel approach to the delivery of streaming content according to an embodiment of the present invention. Abroadcaster101 may communicate information to a user's receivingdevice107 through abroadcast transmitter105 by way of a broadcast signal. In accordance with an embodiment of the present invention, the information may be compiled by a computer processor at thebroadcaster101 or compiled elsewhere and relayed to thebroadcaster101. The information may then be relayed to thebroadcast transmitter105 in the form of a packet ofinformation103 containingstreamlets1,2,3,4.
As used herein, the term “streamlet” refers a portion of a larger unit of streaming data. By way of example, and not by way of limitation each streamlet may represent a portion (e.g., the first ten seconds) of a video or audio clip. By way of example, and not by way of limitation, the packet ofinformation103 may be configured to containstreamlets1,2,3,4 of the most popular video clips being broadcast on the Internet. These streamlets are not sent in bulk, but instead are sent one-by-one, with the packet ofinformation103 repeating itself after each full rotation ofstreamlets1,2,3,4 have been broadcast by thetransmitter105. In addition to these streamlets, the packet ofinformation103 may contain a table of contents TOC, informing the user of thereceiving device107 of what streaming content is available for viewing within the packet ofinformation103. The table of contents TOC, like thestreamlets1,2,3,4, may be included in each rotation of the packet ofinformation103.
By way of example, a digital broadcast signal may be a modulated radiation signal transmitted from abroadcast transmitter105, e.g., in the form of an over-the-air broadcast, such as by a radio-frequency electromagnetic wave signal. Alternatively, embodiments of the invention may be used in conjunction with digital broadcasts transmitted over media such as cable (e.g., coaxial cable), optical fiber, or satellite transmission.
By way of example, the digital broadcast signal may be configured in accordance with a digital broadcast standard. Examples of digital broadcast standards include, but are not limited to, the Digital Video Broadcasting (DVB) family of standards maintained in Europe and Australia, the Advanced Television Standards Committee (ATSC) family of standards developed for use in the United States and Canada, the Integrated Services Digital Broadcasting (ISDB) family of standards developed for use in Japan, and the Digital Multimedia Broadcasting (DMB) standard used in South Korea.
The DVB family of standards includes the DVB-S and DVB-S2 standards for satellite television, the DVB-T and DVB-T2 standards for terrestrial television, the DVB-C standard for cable televisions, the DVB-H standard for mobile television, and other DVB standards, which have been or may be developed. The ATSC family of standards includes the ATSC standard for terrestrial television broadcasts and the ATSC M/H standard for broadcasts to mobile and handheld devices. The IDSB family of standards includes the ISDB-S, ISDB-T, and ISDB-C standards, which were developed for satellite, terrestrial, and cable television respectively.
By way of example, and not by way of limitation, the digital broadcast signal may be configured according to the ATSC or ATSC-M/H standards. The ATSC standard is described in detail, e.g., in “ATSC Digital Television StandardPart 1—Digital Television System” (A/53, Part 1:2007), “ATSC Digital Television StandardPart 2—RF/Transmission System Characteristics” (A/53, Part 2:2007), and “ATSC Digital Television StandardPart 3—Service Multiplex and Transport Subsystem Characteristics” (A/53,Part 3, 2007), the disclosures of all three of which are incorporated herein by reference. The ATSC Data Broadcast Standard is described, e.g., in “ATSC Recommended Practice: Implementation Guidelines for the ATSC Data Broadcast Standard (Doc. A/90)”, which is incorporated herein by reference.
The user of thereceiving device107 may receive these broadcast packets ofinformation103 through anantenna129. The receiving device may contain in addition to an antenna129: atuning device109, aprocessor111, amemory113, astorage device119, abackchannel communication link121, and adisplay device123. The digitalbroadcast receiving device107 may be any type of device capable of receiving and utilizing the digital broadcast signal. By way of example, the digitalbroadcast receiving device107 may be a digital television set, digital radio receiver, personal computer, laptop computer, or a mobile or handheld device such as a cellular telephone, mobile Internet device, or mobile digital television receiver. Furthermore, the term digital broadcast receiving device encompasses “digital media receivers”, GPS devices, game consoles, portable game devices, home, mobile or device security systems, and any combination thereof and including other devices for which the present invention may be coupled to provide command and control.
Thereceiving device107 may include a digitalbroadcast tuning device109 and adecoder131. Thetuning device109 may be coupled to theantenna129 that receives the digital broadcast signal. Thetuning device109 may select one or more particular frequencies from among the various signals that are picked up by theantenna129. Thedecoder131 may then extract the data from the digital broadcast signal and process it. By way of example, thetuning device109 anddecoder131 may provide the following functions: demodulation, transport stream demultiplexing, decompression, error correction, analog-to-digital conversion, AV synchronization, and media reformatting. As used herein, demodulation refers to the process of transforming the received digital broadcast signal into a usable signal from which data may be extracted and/or from which quality images and sound may be produced.
Transport stream demultiplexing may be implemented, e.g., wheremultiple information packets103 are combined and then transmitted from one antenna source to create over the air broadcasts. Thedecoder131 may implement decompression if theinformation packet103 contains data in compressed form. Thetuning device109 may decompress such data, e.g., by unpacking compressed packets of digital data to their original size.
Thedecoder131 may also implement error correction to make sure that any data that is missing from the received broadcast signal can be corrected. For instance, sometimes interference or a poor-quality signal will cause the loss of data information that thetuning device109 receives. In such cases, thedecoder131 may perform a number of checks and repair data.
Thedecoder131 may implement AV synchronization to coordinate audio and video signals being displayed on thedisplay123 in proper time. AV synchronization ensures that the audio does not lag behind the video that is being displayed on thedisplay123 or vice versa, so that both audio and video are in sync. Media reformatting allows thedisplay123 to properly display video images using the data extracted from the digital broadcast signal. Media reformatting is important because the formatting of images on certain displays may differ significantly according to the technology employed. For example, some televisions utilize an interlaced picture, whereas others utilize a progressive-scan picture.
The information associated with thestreamlets1,2,3,4 of the packet ofinformation103 may be displayed on thevideo display123. By way of example, and not by way of limitation, thestreamlets1,2,3,4, may contain video clips and thedisplay123 may be any suitable video and/or audio-visual display compatible with the digital broadcast signal. By way of example, and not by way of limitation, thedisplay123 may include a video monitor, such as a cathode ray tube (CRT), plasma display, liquid crystal display (LCD) or an organic light-emitting diode (OLED) display. In addition, thedisplay123 may include one or more devices for generating audio, e.g., one or more speakers.
Theprocessor111 may be configured to allow the user of the receivingdevice107 to communicate with the receivingdevice107. Furthermore, the processor may be configured to run software applications, and optionally, an operating system.
Thememory113 may store applications and data for use by theprocessor111. Thememory113 may implement both abuffer115 and acache117. Alternatively, thecache113 and buffer115 may be implemented by separate components. Thebuffer115 is configured to process data immediately as it is received, whereas thecache117 is configured to store data until theprocessor111 or user decides to use the data. Thememory113 may be in the form of an integrated circuit, e.g., RAM, DRAM, ROM, and the like. A computer program may be stored in thememory113 in the form of instructions that can be executed on theprocessor111.
The receivingdevice107 may further include a fastdata storage device119 such as a hard disk drive that provides non-volatile storage for applications and data. Thefast storage device119 may be used for temporary of long-term storage of files retrieved from a slower data storage device. By way of example, thestorage device119 may be, e.g., a CD-ROM, DVD-ROM, Blu-Ray, HD-DVD, UMD, or other optical storage devices.
Lastly, the receivingdevice107 may implement abackchannel communication link121 that allows information to be sent from the receivingdevice107 to a remote data stream source (e.g. a web server for a website or other network source). In some embodiments, the receivingdevice107 may implement a back channel to the broadcaster through a digital broadcast signal transmitted from the receivingdevice107 andantenna129, e.g., using a digital broadcast, multicast or unicast capability built into thetuning device109. Alternatively, the back channel may be implemented through thebackchannel communication link121 by some other mode of communication such as wireless telephony, wireless Internet, cable, optical fiber, computer network (e.g., Ethernet) link, and the like. The back channel may also be used to receive data from a remotedata stream source125.
Once the digital broadcast signal has been picked up by theantenna129 and decoded by thedecoder131, the receivingdevice107 can begin to process thestreamlets1,2,3,4 contained in theinformation packet103. When the rotation ofstreamlets1,2,3,4 in the packet ofinformation103 reaches the table of contents TOC, the receiving device may store this information in thememory113 orcache117. Thedevice107 may be programmed to notify the user of whichstreamlets1,2,3,4 are being broadcast in the packet ofinformation103, e.g., via a message presented with thedisplay123. At this point, theprocessor111 may request thetuning device109 to obtain additional broadcast signals with updated packets ofinformation103, such that the user of the receivingdevice107 is updated with thelatest streamlets1,2,3,4 at all times.
The user of the receivingdevice107 can then select whichstreamlet1,2,3,4 to display on thevideo display123. Once on of thestreamlets1,2,3,4 has been selected, the data is sent to the memory's113buffer115 to be immediately processed and displayed on thevideo display123. As soon as the selected streamlet begins to be displayed, the receivingdevice107 may communicate with adata stream source125 through thebackchannel communication link121 to request the remaining data for the full data stream associated with the streamlet that was selected. Thedata stream source125 has access to full versions of data streams127 associated withstreamlets1,2,3,4. In addition to sending a request to thedata stream source125 through thebackchannel communication link121, the receivingdevice107 may also send an indication of the time duration of the selectedstreamlet1,2,3,4. This indication allows thedata stream source125 to offset the full stream associated with thestreamlet1,2,3,4 by the duration of thestreamlet1,2,3,4. This allows the user of the receivingdevice107 to receive the full data streams associated with the streamlets without perceiving any delay associated with having to retrieve the full data stream from the remotedata stream source125 via thebackchannel communication link121.
The table of contents TOC that is stored in thecache117 may have an expiration time. Thedevice107 may be programmed to delete the table of contents TOC from thecache117 once the expiration time has transpired. Once the table of contents TOC has expired, the user of the receivingdevice107 may request thetuning device109 to obtain additional broadcast signals with updated versions of the packet ofinformation103. Furthermore, the receivingdevice107 may be configured to work with amotion sensor132, such as an accelerometer, gyroscope, laser gyroscope or tilt sensor that is coupled to theprocessor111. By way of example, and not by way of limitation, themotion sensor132 may be physically attached to a case or housing that contains other components of thedevice107. The processor may be programmed to interpret signals from themotion sensor132 in such a way as to determine whendevice107 has been picked up and interpret this as a signal to initiate receipt of updated packets ofinformation103. Once the table of contents TOC has expired and been deleted from the memory's113cache117, the user may initiate thetuning device109 to receive updated packets ofinformation103 in response to a signal generated by themotion sensor132 when the user picks up the device or otherwise actively grabs it.
In some embodiments, thedata stream source125 may communicate with thebroadcaster101 and indicate to the broadcaster which data streams were most often requested. This allows thebroadcaster101 to update the packets ofinformation103 such that they contain the most updated version of the streamlets.
FIG. 2 is a flow diagram illustrating the process of combined broadcast and backchannel delivery of streaming content from the perspective of the percipient user of the receiving device. Initially the receiving device must configure the tuning device to receive broadcast signals from a broadcast tower as indicated at201. This can be done in multiple ways. The user may directly communicate with the receiving device and request that the tuning device be configured to receive broadcast signals from the broadcast tower. The receiving device may also be programmed to continuously receive broadcast signals from a broadcast tower based on a timing mechanism, such that the tuner looks for updated broadcast signals every given segment of time. Alternatively, the tuning device can be configured to respond to motion, as described above. For example, an idle receiving device may initiate contact with a broadcast tower when the user of the device picks it up.
Once the tuning device has been configured to receive broadcast signals from the broadcast tower, the receiving device may to receive the packet of information containing a table of contents and streamlets as indicated at203. The streamlets are sent to the user in a rotation, such that no streamlet needs to be stored in the receiving device's memory. As discussed above, the packets of information also contain a table of contents, which is cached in the receiving device's memory such that the user has a catalog of what video streamlets are available to view as indicated at205. The table of contents may have an associated expiration time, such that once this time has expired the tuning mechanism of the receiving device may automatically configure itself to receive updated broadcast signals from a broadcast tower.
The user of the receiving device may then select a streamlet to watch from the packet of information as indicated at207. The user may use the table of contents to decide which streamlet to select or may wait for each streamlet to be sent to the receiving device via thebroadcast tower105 before selecting a streamlet to view. If, as indicated at217, the user chooses not to select a streamlet to view from the particular packet ofinformation103, the receiving device may tune the device in order to receive an updated version of the packet of information.
As soon as the user has selected a streamlet to view, the receiving may tune in to thebroadcast tower105 to receive the entire streamlet as indicted at209. The streamlet may be stored in thebuffer115 and displayed with thedisplay123. Simultaneously, the receivingdevice107 may communicate with thedata stream source125 to receive the remaining data stream associated with the streamlet as indicated at211. Thedevice107 may automatically send a request to thedata stream source125 indicating which data stream is desired. In addition, thedevice107 may send an indication of the offset of the data stream needed to complete the entire video clip. Thedata stream source125 processes this information, and sends the remaining data stream necessary to complete the video clip.
The receiving device receives the remaining data stream necessary to complete the video clip by placing this data in the buffer of the receiving device's memory as indicated at213. The receivingdevice107 may then convert the remaining data stream into a form compatible with presentation on thedisplay123. The remaining data stream may then be displayed to the user as indicated at215. The user of the receivingdevice107 may thus watch an entire video clip through the combined broadcast and backchannel delivery of the streaming content. The user does not have to wait for the remaining data to be received from a remote source, and then watch the remaining stream associated with the initial streamlet. Instead, the user can watch the entire video clip without pause because as the initial streamlet is being presented, the receiving device may obtaining at least part of the remaining portion of the video clip from a data stream source, such that as soon as the streamlet ends, a portion of the remaining stream is ready to be displayed to the user.
According to embodiments of the present invention, there are a number of ways in which the packet ofinformation103 may be compiled for broadcast. Such compilation may be done in accordance with suitable configured computer program instructions.FIG. 3A is a diagram illustrating an example of a packet ofinformation301 to be sent by thebroadcaster101 via a broadcast transmitter. In this example, the packet ofinformation301 is sent through a rotational scheme in which all ofstreamlet1 is sent before all ofstreamlet2, and so on, with the rotation repeating once allstreamlets1,2,3,4,5 and the table of contents TOC have been broadcast. At the end of each rotation of streamlets, a device may receive and store the table of contents TOC, which can be stored in the cache so that the user of the receiving device may access it at any time. The user may then select astreamlet1,2,3,4,5 to view at any time after receiving any portion of the packet of information from the broadcaster. Thestreamlets1,2,3,4,5 and table of contents TOC each have the same periodicity, so that each one repeats after an equal interval of time.
FIG. 3B is a diagram illustrating another example of a packet ofinformation303 to be sent by the broadcaster to the percipient user of the receiving device via a broadcast tower. In this example, the streamlets that make up the packet ofinformation303 are broken down into portions that are broadcast sequentially. The packet ofinformation303 is sent through an interleaving scheme in which a portion of eachstreamlet1A,2A,3A,4Ais sent in order, followed by a table of contents TOC, followed by a subsequent portion of eachstreamlet1B,2B,3B,4B. The user of the percipient device may send these portions of streamlets directly to the buffer of the device's memory to be immediately processed, or may send these portions of streamlets to the memory's cache to be temporarily stored and processed at a later time. Note that the table of contents TOC has a shorter period than the periodicity of eachindividual streamlet1,2,3,4 because the streamlets are broadcast in portions.
FIG. 3C is a diagram illustrating a third example of a packet of information to be sent by the broadcaster to the percipient user of the receiving device via a broadcast tower. This packet ofinformation305 is sent through a tiered scheme in whichcertain streamlets1,2,3,4 (e.g. most popular video clips) are sent with a shorter periodicity than other streamlets A, B, etc. (e.g. less popular video clips/advertisements). By creating a tiered scheme, the user is presented more popular data streams at a higher frequency than less popular data streams. Note that the table of contents TOC is still being sent at a periodicity equal to the most popular data stream.
While the above is a complete description of the preferred embodiment of the present invention, it is possible to use various alternatives, modifications and equivalents. Therefore, the scope of the present invention should be determined not with reference to the above description but should, instead, be determined with reference to the appended claims, along with their full scope of equivalents. Any feature described herein, whether preferred or not, may be combined with any other feature described herein, whether preferred or not. In the claims that follow, the indefinite article “A”, or “An” refers to a quantity of one or more of the item following the article, except where expressly stated otherwise. The appended claims are not to be interpreted as including means-plus-function limitations, unless such a limitation is explicitly recited in a given claim using the phrase “means for”.