Reducing the time difference between programs being transmitted to two different receivers

A content distribution system may distribute content to a plurality of receivers on demand. When it is determined that two different receivers are receiving the same program but one receiver requested the information prior to the other, bandwidth may be conserved by increasing the rate of data flow to one user and decreasing the rate of data flow to another user, in one embodiment, until such time as both users are receiving the same portion of the program at the same time. In such case, the program may be simultaneously distributed to two users on the same channel, conserving bandwidth.

BACKGROUND

This invention relates generally to systems for distributing information to a plurality of users.

Information may be broadcast to a plurality of users in a variety of environments. Information may be wirelessly transmitted from a network server to a plurality of wirelessly coupled processor-based systems. In addition, hard wired systems may be utilized to distribute information such as television programming to a variety of different users. In one scenario, a catalog of programs is available for distribution upon program selection to a plurality of receivers. Each receiver may determine which program to view.

For example, in a cable television distribution system, each home may have its own receiver. Each user can decide what video information to receive in a so-called video on demand system. When the user selects a particular video, that video is streamed to the user over the available transmission medium.

Obviously, if the transmission medium has a limited bandwidth and there are a large number of users, the possibility exists that each user may pick a different program, taxing the bandwidth of the transmission medium. In addition, different users may expect to receive video on demand, i.e., upon selection. Thus, different users may select the same video but may do so at different times. Because of the time difference between the selections, the same video may be transmitted to two different receivers but two different channels may be required because of the difference in start time of each video.

As a result, transmissions, such as video transmissions, to a large number of users may result in the consumption of relatively large amounts of bandwidth. The resulting bandwidth requirements may tax available resources. As a result, video on demand systems for example, are not widely available at this time.

Thus, there is a need for better ways to conserve bandwidth in the distribution or transmission systems for distributing information to a plurality of users.

DETAILED DESCRIPTION

A distribution system10, shown inFIG. 1, can distribute information from database14to a plurality of receivers24, only three of which are shown inFIG. 1. The distribution medium22may be an airwave medium such as a conventional broadcast transmitter, a satellite distribution medium, or a hard wired medium using cable or optical fibers as two examples.

The system10may take a variety of different forms and may be involved in many different applications. For example, in one embodiment, the system10may be a cable distribution system that distributes video on demand. As another example, the system10may be a telephone system that provides information to a plurality of receivers24in the form of telephone receivers. The telephone receivers may be wireless or cellular telephones. As still another example, the system10may be a network that distributes information to a plurality of receivers24in the form of processor-based systems. In one example, the system10may be a local area network (LAN) including wired or wireless LANs. As another example, it may be a metropolitan area network (MAN).

The system10may include a server12coupled to the program database14and a storage16coupled to the server12. A transmission system20may be coupled to the server12to place data from the program database14in an appropriate format for transmission over the available transmission medium22. Software18may control the transmission of data by the server12and that software18may be stored on the storage16.

In one embodiment, programs stored on the program database14are distributed to receivers24. While the word “program” is utilized in connection with the database14, it should be understood that the present invention is in no way limited to television programs. It may apply to music, video, television programs, commercials, software and games, to mention a few examples. Thus, the term program is simply used to refer to any electronic file that is distributed by the server12to the receivers24.

Turning toFIGS. 2A through 2C, in some cases, the same program may be distributed to more than one receiver24such as receivers24aand24b. In some cases, the programs are distributed on an on-demand basis. Thus, the distribution of the program begins upon receipt of a request from a receiver24. As a result, two programs may be distributed to two different receivers. Two different channels may be needed to distribute the information because the programs are streamed to the receivers24and one receiver24may have begun receiving the transmission before another receiver24. As a result, the amount of bandwidth required to transmit the same program starting at different times to two different receivers corresponds to the bandwidth that would be needed to distribute different programs to two different receivers.

As shown inFIG. 2A, a channel X may be utilized to distribute a program A to receiver24a, channel Y may be utilized to distribute a program B to receiver24b, and channel Z may be utilized to distribute a program A to receiver24c. However, the distribution to receiver24amay begin 30 seconds, as one example, before the distribution of the same program to the receiver24c. As a result, three different channels may be utilized to accomplish the distribution of two programs to three receivers24.

Referring toFIG. 2B, the software18stored on the server12may enable the server12to attempt to decrease the time difference between the distribution of program A to receivers24aand24c. At periodic intervals, spacing may be provided in the distribution of the program to the receiver24aand the distribution of the program to the receiver24cmay be similarly compressed in some embodiments.

Techniques for expanding or compressing streaming files are well known. In one embodiment, a filler may be provided. In another embodiment, different degrees of compression or lack thereof may be utilized.

Progressively, over time, as shown inFIGS. 2B and 2C, the gap between the program on channel X and the same program on channel Z is decreased until there is no gap whatsoever as shown inFIG. 2C. As a result, the program A may be sent to both receivers24aand24cusing channel X. This frees channel Z for the distribution of other content.

Turning toFIG. 3, the software18begins by detecting common programs on different channels as indicated in block30. When such a situation is detected, the time difference between the programs (delta T) is determined as indicated in block32.

A check at diamond34determines whether the time difference is less than a predetermined amount of time. The predetermined amount of time may be an amount of time such that is not worth attempting to remove the time difference. In some cases, the amount of compression or packing that may be needed to save bandwidth may unduly distort the programming. In such case, the separate channel distribution is maintained.

However, if the time difference is within an acceptable range, the time difference may be progressively removed, as indicated in block36. Again, conventional techniques may be utilized to decrease the rate of data flow to one receiver24and/or to increase the rate of data flow to the other receiver24.

Eventually, a check at diamond38determines whether the gap has been substantially removed and therefore, one of the two channels should be made available for other information as indicated in diamond38. At the same time, one of the two channels may be assigned to distribute the same information on the same channel to both receivers. If a channel is now available, that channel may be assigned to another program as indicated in block40. If not, the time warping continues in block36.