Referring now to the drawings wherein like elements are numbered alike in the several FIGURES:
The detailed description explains the exemplary embodiments, together with advantages and features, by way of example with reference to the drawings.
Optionally, the sequence of packets generated by encoder 120 may be compressed or processed to eliminate redundant information, thereby reducing the bandwidth occupied by one or more of the program streams. For example, digital video transmission methods currently employ standards developed by the Motion Pictures Expert Group (MPEG) for program stream formatting and network transport. These standards, known collectively as MPEG, define approaches for compressing video content to significantly reduce the bandwidth required for network transport. MPEG compression creates a stream of individual packets or frames, each carrying video content. Illustratively, the sequence of packets generated by encoder 120 is in a packetized format that complies with MPEG-4 standard H.264.
Encoder 120 may generate a first multicast program stream including a television program commencing at a scheduled broadcast time. This first multicast program stream is shown as a first audiovisual signal 115. An ingest server 140, illustratively implemented using one or more computer servers, is operatively coupled to encoder 120. Ingest server 140 may receive the first multicast program stream and processes the stream for storage on a computer-readable television program storage device such as data storage drive 111. Data storage drive 111, operatively coupled to ingest server 140, may electronically store a television program for one or more subsequent rebroadcasts. Data storage drive 111 is illustratively implemented using one or more computer hard drives, optical storage drives, magnetic tape drives, semiconductor memory, nanotechnology-based memory devices, or various combinations thereof. By way of example, a plurality of separate storage drives may be interconnected or networked to implement data storage drive 111.
Data storage drive 111 is operatively coupled to one or more multicast servers such as a first multicast server 141, a second multicast server 142, and a third multicast server 143. First, second, and third multicast servers 141, 142, 143 are illustratively implemented using computer servers. Illustratively, one or more of the first, second, and third multicast servers 141, 142, 143 may be implemented using a single server. Pursuant to another illustrative example, one or more of the first, second, and third multicast servers 141, 142, 143 are implemented using a plurality of servers.
A processing mechanism 10 is operatively coupled to data storage drive 111, ingest server 140, and at least one multicast server. In the present example, first, second, and third multicast servers 141, 142, 143 are shown. Processing mechanism 110 is illustratively implemented using one or more personal computers, mainframe computers, servers, microprocessor-based devices, or various combinations thereof. Separate elements may be used to implement processing mechanism 110, ingest server 140, and data storage drive 111, or one or more of processing mechanism 110, data storage drive 111, and ingest server 140 could be combined into a single element.
Processing mechanism 110 is capable of accepting input from an input mechanism 193. Input mechanism 193 could, but need not, be implemented using a computer keyboard, touch screen, pushbuttons, one or more switches, voice-activated software, personal computer, computer server, mainframe computer, laptop computer, computer console, or various combinations thereof. In response to input received at input mechanism 193, processing mechanism 10 may command first multicast server 141 to access a stored television program on data storage drive 111 to generate a second multicast program stream including the television program commencing at a first delayed time later than the scheduled broadcast time. This second multicast program stream is shown as second audiovisual signal 116. Illustratively, in response to input received at input mechanism 193, processing mechanism 110 commands second multicast server 142 to access the stored television program on data storage drive 111 to generate a third multicast program stream including the television program commencing at a second delayed time later than the first delayed time. The third multicast program stream is shown as third audiovisual signal 117. Illustratively, in response to input received at input mechanism 193, processing mechanism 110 commands third multicast server 143 to access the stored television program on data storage drive 111 to generate a fourth multicast program stream including the television program commencing at a third delayed time later than the second delayed time. The fourth multicast program stream is shown as fourth audiovisual signal 118.
The television program may be listed in an electronic program guide that associates the program with a specified viewing interval during which the program is available for viewing. The specified viewing interval may, but need not, include a scheduled broadcast time at which the television program is being broadcast live. Illustratively, the difference between the first delayed time and the second delayed time is in an approximate range of thirty to sixty minutes, and the difference between the second delayed time and the third delayed time is approximately equal to the difference between the first delayed time and the second delayed time. The scheduled broadcast time could, but need not, be related to the first delayed time. The foregoing values are provided only as examples, as it should be clearly understood that other values could be employed to meet the requirements of specific system applications.
In response to a viewer request to view the television program during the specified viewing interval, a multicast program stream is selected for which the program has not yet started. The viewer request is received by the viewer first selecting a channel from an electronic program guide, and then selecting an available program for viewing during a specified viewing interval from the electronic program guide. Optionally, if a plurality of multicast program streams are available for which the program has not yet started, a program stream is selected which provides the shortest delay prior to program commencement. During the delay prior to program commencement, optional preprogram material such as advertisements, graphical displays, coming attractions, music, announcements, or various combinations thereof may be presented.
First, second, third, and fourth audiovisual signals 115, 116, 117, 118 each representing streams of individual packets corresponding to respective first, second, third, and fourth multicast program streams pass through a series of routers/switches 130, 131, 132 until one or more of the streams reaches a viewer's location. First, second, third, and fourth audiovisual signals 115, 116, 117, 118 are described only for purposes of illustration, it being understood that four signals are not required, as any number of two or more audiovisual signals may be provided.
At the viewer's location, network interface equipment 160 receives one of the first, second, third, and fourth multicast program streams from router/switch 132 on network 200. Network interface equipment 160 is operatively coupled to a set top box 170 using a wireless or wireline link and, illustratively, using an Ethernet link. Set top box 170 is operatively coupled to a media presentation device 180, such as a television set, video receiver, or the like, using a wireless or wireline link and, illustratively, using coaxial cable carrying an RF-modulated signal. Alternatively or additionally, set top box 170 is coupled to media presentation device using a video connection such as S-Video or FireWire.
Set top box 170 is equipped with a processing mechanism, such as a microprocessor or microcontroller and associated semiconductor memory, for executing an electronic program guide application 171. Electronic program guide application 171 causes media presentation device 180 to display an electronic program guide in the form of a list or menu of one or more programs or channels, wherein at least one of these programs or channels is associated with a corresponding scheduled broadcast time. Set top box 170 includes a channel/program selection mechanism capable of accepting a viewer input identifying one or more channels or programs. This channel/program selection mechanism could, but need not, operate in conjunction with electronic program guide application 171, for example using optional remote control 173 or a touch-sensitive screen on media presentation device 180 to select a displayed program or channel from the displayed electronic program guide. Alternatively or additionally, set top box 170 may include a channel/program selection mechanism such as a rotary switch and/or a channel/program selection mechanism operated using an optional remote control 173. Set top box 170 may, but need not, include circuitry for converting digital packets representing program streams received from network interface equipment 160 into analog or digital signals capable of being displayed on media presentation device 180.
A viewer may record a program for later viewing using a local storage device 181 such as a digital video disc (DVD) recorder, video cassette recorder (VCR), or hard drive recording device. Optional local storage device may, but need not, be integrated into set top box 170. Moreover, set top box 170 may, but need not, be integrated into media presentation device 180.
Network interface equipment 160 receives a stream of internet protocol (IP) multicast or unicast packets representing a program stream. Unicast refers to communication between a single sender and a single receiver, whereas multicast refers to communication between a single sender and multiple receivers. To avoid sending a multiplicity of different program streams simultaneously over network 200, each respective program stream uses a corresponding IP multicast identifier specific to that program stream. Using Internet Group Management Protocol (IGMP), network interface equipment 160 communicates with network 200 to identify which program the user desires to view or is currently viewing. More specifically, when a user enters an input into the channel/program selection mechanism on set top box 170, illustratively using an optional remote control 173, set top box 170 transmits an IGMP join message 185 to the network 200.
IGMP join message 185 includes a channel/program identifier that identifies a channel or program that the viewer desires to view or is currently viewing. IGMP join message 185 is sent in an “upstream” direction through routers/switches 132, 131, 130 in an attempt to locate a program stream on network 200 corresponding to the channel/program identifier. When the appropriate program stream is located, packets bearing a specified multicast identifier 190 for this stream are transmitted in a “downstream” direction from network 200 to network interface equipment 160 and set top box 170. Set top box 170 then relays the program stream to media presentation device 180, such as a program stream representing first audiovisual signal 115 and carrying a first television program at a scheduled broadcast time. Thereafter, when the user enters an input into the channel/program selection mechanism on set top box 170 indicating that he or she wishes to view a second television channel or program, set top box 170 transmits an IGMP leave message 195 to network 200 identifying the first television program, and transmits an IGMP join message 185 to the network 200 identifying the second television channel or program.
As understood by one of ordinary skill in the relevant art, if a program is intended for one and only one subscriber, multicasting is replaced by unicasting. Both multicasting and unicasting fall within the scope of the instant teaching. An example of a unicast program would be a video-on-demand (VOD) program, which by definition is intended for one and only one user destination.
Upon a viewer selecting a channel such as first My Time channel 511, the first exemplary program guide display 501 is replaced or supplanted by a second exemplary electronic program guide display 502. Second exemplary electronic program guide display 502 shows a list or menu of one or more television programs that are available for viewing on the selected first My Time channel 511 during a specified viewing interval. In the present example, these television programs include Superman II 521, Lost 522, Desperate Housewives 523, local news 524, and the Tonite Show 525. The first and second exemplary electronic program guide displays 501 and 502 are generated by electronic program guide application 170 (
Returning now to
The affirmative branch from block 207 leads to block 208 where a test is performed to determine whether or not the specified viewing interval has expired. If so, the process loops back to block 201. The negative branch from block 208 leads to block 209 where the selected program is retrieved from a local storage drive, or a program stream produced by encoder 120 (
At block 211 (
A viewer's selection of a broadcast channel from the electronic program guide is received at block 303 (
Next, at block 312, a test is performed to ascertain whether or not a specified viewing interval has commenced. The “My Time” feature provides for viewing of the selected program only during the specified viewing interval. This specified viewing interval is defined as including at least one timeslot during which one or more selected programs may be viewed. If the specified viewing interval has not commenced, the process waits at block 313 until the specified viewing interval does commence. The affirmative branch from block 312 leads to block 325 where a test is performed to ascertain whether or not the specified viewing interval has expired. If so, the program loops back to block 301. The negative branch from block 325 leads to block 314 where a plurality of packets are received from a network. Each of the packets bears a multicast identifier corresponding to the viewer selected program commencing at a predetermined time that has not yet occurred. The packets are received in response to transmitting a join message (i.e., IGMP join message 185,
For illustrative purposes, assume that a viewer has activated the “my time” feature in block 307 (
Assume that second audiovisual signal 116 (
Next, at block 315 (
After one or more programs are downloaded from the network to the local storage device at blocks 401 and 403 (
The viewer's selection of a program from the list or menu is received at block 415. A test is performed at block 417 to ascertain whether or not the specified viewing interval has commenced. If not, the procedure waits at block 419 for the specified viewing interval to commence. The affirmative branch from block 417 leads to block 437 where a test is performed to ascertain whether or not the specified viewing interval has expired. If so, the process loops back to block 407. The negative branch from block 437 leads to block 421 where the user selected program is downloaded from local storage device 181 (
The detailed description explains various exemplary embodiments, together with advantages and features, by way of example with reference to the drawings. As described above, the exemplary embodiments can be in the form of computer-implemented processes and apparatuses for practicing those processes. The exemplary embodiments can also be in the form of computer program code containing instructions embodied in tangible media, such as floppy diskettes, CD ROMs, hard drives, or any other computer-readable storage medium, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing the exemplary embodiments. The exemplary embodiments can also be in the form of computer program code, for example, whether stored in a storage medium, loaded into and/or executed by a computer, or transmitted over some transmission medium, loaded into and/or executed by a computer, or transmitted over some transmission medium, such as over electrical wiring or cabling, through fiber optics, or via electromagnetic radiation, wherein, when the computer program code is loaded into an executed by a computer, the computer becomes an apparatus for practicing the exemplary embodiments. When implemented on a general-purpose microprocessor, the computer program code segments configure the microprocessor to create specific logic circuits.
While the invention has been described with reference to exemplary embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted for elements thereof without departing from the scope of the invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the invention without departing from the essential scope thereof. Therefore, it is intended that the invention not be limited to the particular embodiments disclosed for carrying out this invention, but that the invention will include all embodiments falling within the scope of the claims. Moreover, the use of the terms first, second, etc. do not denote any order or importance, but rather the terms first, second, etc. are used to distinguish one element from another. Furthermore, the use of the terms a, an, etc. do not denote a limitation of quantity, but rather denote the presence of at least one of the referenced item.
This application is based upon and claims priority under 35 USC §119(e) to Provisional Patent Application Ser. No. 60/711,884 filed on Aug. 26, 2005, the disclosure of which is incorporated herein in its entirety.
Number | Date | Country | |
---|---|---|---|
60711884 | Aug 2005 | US |