1. Field of the Invention
This invention relates broadly to telecommunications. More particularly, this invention relates to multicasting of data streams. The invention has many applications, one of which is the multicasting of audiovisual media streams.
2. State of the Art
The term “broadcasting” entered the telecommunications lexicon in the 1920s during the dawn of commercial radio entertainment. Later it was applied to over-the-air television. It generally means to transmit over the air so that anyone within range of the transmitter can receive the radio or television signal and perceive its content.
As telecommunications technology has evolved, much of what is communicated today travels to the receiver by wire, or in some cases, by fiber optic. Signals which are sent out to all of the subscribers of a cable television system were first said to be “cablecast” which means broadcast over cable. Most modern cable television systems cablecast a number of channels simultaneously as analog or digital signals and a number of channels on an as requested basis as digital signals. Moreover, the digital signals not only can be broadcast or cablecast, they can be individually “addressed” to each subscriber that has requested them.
Digital television signals may be High Definition (HDTV) or normal definition (TV). In the latter case, the digital signal is typically converted to an analog signal inside the subscriber's set top box before being sent to an analog TV receiver. However, if the set top box is connected to a digital TV no conversion is necessary. The digital signals are typically transmitted as packetized MPEG streams. MPEG (pronounced M-peg), which stands for Moving Picture Experts Group, is the nickname given to a family of International Standards used for coding audio-visual information in a digital compressed format. The MPEG family of standards includes MPEG-1, MPEG-2 and MPEG-4, formally known as ISO/IEC-11172, ISO/IEC-13818 and ISO/IEC-14496. MPEG-1 was released in 1992. It was designed for audio and video to be played on a computer screen from a CD-ROM or hard disk. The MPEG-1 frame is generally 320×240 pixels. MPEG-2 issued in 1994. It is the more popular coding standard for TV and HDTV. It has a frame size of generally 720×480 pixels although other sizes are possible. MPEG-4 is based on MPEG-1, MPEG-2, and Apple Computer's QuickTime technology.
An analog video stream consists of two interlaced frames which are transmitted at 60 frames per second to create 30 full image frames per second. Digital video is often not interlaced. Full frames are transmitted at a rate of at least 15 full frames per second. MPEG video compression is achieved by transmitting less than the entire video signal and then recreating the entire video signal at the receiver using certain algorithms.
Generally speaking, an MPEG video stream consists of three or four different kinds of frames: I frames (intracoded frames), P frames (predicative interceded frames), B frames (bidirectional predictive interceded frames), and D frames (DC coded frames).
I frames are compressed without reference to any other frames. That is, they are compressed using just the information in the frame itself, in the same way still images are compressed. This is called intracoding. There are generally two or more I frames in each second of video (more often three to six per second), and particularly complex frames are encoded as I frames.
P and B frames are encoded with reference to the previous frame, i.e., they are intercoded. P frames are encoded with reference only to a previous frame. This is called forward prediction. B frames are encoded with reference to both the previous frame and the next frame. This is called forward and backward prediction. Use of forward and backward prediction makes a high compression rate possible, because it is necessary to record/transmit only the changes from one frame to the next.
An I frame plus the following B and P frames before the next I frame together define a Group of Pictures (GOP). The size of the GOP can be set to optimize encoding to suit different movies and display formats. Most commonly a GOP is 15 frames long, and has the sequence IBBPBBPBBPBBPBB. A similar 12-frame sequence is also common.
Macroblocks are blocks of 16 pixels by 16 pixels within a frame. The encoder uses motion compensated prediction for P frames and B frames. That is, it detects macroblocks that don't change from one frame to the next, or that change only by moving. For each macroblock, a search is made for the closest match in the search area of the previous frame. When a match is found, a motion vector is computed. The motion vector records how far the macroblock has moved, and in what direction.
When only one subscriber has requested a particular video stream, it is said to be unicast. When two or more subscribers have requested the same video stream, it is said to be multicast. Most cable TV systems deploy several multicast engines throughout their network in order to serve a greater number of subscribers. Each multicast engine is associated with a multicast table (a two dimensional matrix) which associates video streams with subscribers. Prior art
When a subscriber requests a video stream, a signal is sent from the subscriber's set top box to an administration computer connected to the network. The administration computer receives the request and (assuming there is no need to perform a pay-per-view dialog) sends a message to the multicast engine to add this subscriber and video stream to the multicast table. As seen in Table 1, subscriber A has selected channel 72; subscribers B and D have selected channel 248; and subscriber C has selected channel 111. Subscriber E has selected the HD version of channel 72. As other subscribers select other or the same channels, the table will be expanded until capacity is filled. Then other multicast engines will be called upon to fulfill requests. It will be appreciated that if a subscriber has more than one set top box, each coupled to a different TV set, they will be treated as separate subscribers in the multicast table.
After a channel is selected, the compressed MPEG video stream must then be synchronized with a decompressor in the customer's set top box. Synchronization occurs after receipt of the first I frame. Unlike changing analog channels, which appears to take place instantly, setting up the multicast entries and synchronizing the I frames takes place during a perceivable delay. This delay appears in most digital video delivery systems, not just cable TV systems. Other systems which are affected by this delay include Internet Protocol TV (IPTV), Multiple Service Operators (MSOs), and Telcos delivering video via Digital Subscriber Lines (DSL).
It is believed that some customers find this delay annoying, particularly when “channel surfing” (i.e. stepping through channels one after the other). Thus, there is an apparent need to eliminate or minimize this delay.
It is therefore an object of the invention to provide methods for eliminating or minimizing the delay when changing channels of digital video streams.
It is another object of the invention to provide a multicasting system which implements quality of service policies.
It is a further object of the invention to provide a multicasting system which implements an hierarchical encoding model.
It is also an object of the invention to provide a multicasting system in which streams are assigned weights indicating how many frames in a GOP may be discarded.
It is still another object of the invention to provide a multicasting system which optimizes the way content is delivered to a network.
In accord with these objects, which will be discussed in detail below, the methods of the invention include providing a multicast table wherein table entries which associate data streams with recipients can have more values than zero and one. By making this simple change in multicast tables, several interesting applications can be implemented.
According to a first application of the invention, a multicast table entry associating video streams with TV subscribers may have the logical values zero, one, or two. The entries zero and one have the same function as existing multicast tables. The entry two indicates a stream of I frames only. When a subscriber first selects a channel, the methods of the invention propose making additional table entries such that the subscriber will receive all frames of the selected channel as well as I frames from the two adjacent channels. In this manner, when the subscriber surfs up or down a channel, a still picture of the program will be immediately available and motion will begin quickly as soon as the next frame is received.
According to a second application of the invention, quality of service policies are implemented by providing a fourth logical value for each stream such as forward all frames but mark less important frames with a discard bit. If downstream resources are unavailable, the frames with a discard bit will be dropped. This provides a weight for each frame in the stream. The weight can also be used to trigger other operations within the network such as marking packets with standard or proprietary tags which will determine how the packets are treated by the network. For example, the “forward I frames only” weight could be tagged as low priority traffic such that the frames would be dropped during network congestion. When the network is not congested, the delivery of these frames will enhance the subscriber experience.
According to a third application of the invention, frames from a low bandwidth mobile video stream are mixed with selected frames from a standard definition stream and selected frames from a high definition stream. Today video is delivered to hand held devices via various technologies, one of which is referred to as V-casting. A V-cast signal is typically sent at a rate of 256 Kbps or less via a cellular telephone network. The same operators of these cellular networks may also be providing higher quality video signals via digital subscriber lines (DSL) or other wired or wireless technologies. These higher quality signals may include HDTV. Thus, a content provider or a video distribution hub within the provider's network may need to supply the network provider with three versions of the same content. This is illustrated in prior art
Prior art
An application of the present invention creates a hierarchical encoding model whereby three sub-signals are carried in the same stream which can be adapted to the needs of three different subscribers by filtering out the unneeded frames. For example, a combination signal representing all three bandwidths can be based on a V-cast stream with additional delta frames for standard TV and additional delta frames for HDTV. A multicast table with four values for each entry will specify to forward: no frames, V-cast frames only, V-cast plus delta frames for TV, or the entire stream for HDTV. This aspect of the invention also allows the downgrading of a signal rather than an interruption of the signal in the event of network congestion. For example, a signal containing components of HDTV, TV and mobile V-cast video could be delivered to an HD subscriber and downgraded to TV in the event of congestion. Similarly, a TV subscriber could be downgraded to V-cast video quality in the event of network congestion.
Still another application of the weighted multicast table of the invention is applied to teleconferencing. In modern teleconferencing, audio and video signals are sent to all participants. In addition, a whiteboard or computer desktop signal is also sent to all participants. Implementation of the present invention can allow participants with limited bandwidth to choose to not receive the video portion of the conference or to not receive the desktop portion or to only receive the audio portion.
The weighted multicast table of the invention can also be applied to the updating of mirror web servers. Many commercial websites have “mirror” servers located in different parts of the world. The mirror sites distribute the load on the web site geographically. When the main web server is updated, the mirrors must be updated as well. Depending on the importance of the update to the mirror servers, the weighted multicast table can be used to differentiate the frequency of updates to different mirrors.
An alternative implementation of assigning weights to streams is to associate additional rows in the table with each stream, each row representing a different weight. Thus, the table entries could remain binary and this will be more compatible with existing systems.
Additional objects and advantages of the invention will become apparent to those skilled in the art upon reference to the detailed description taken in conjunction with the provided figures.
Referring now to
According to a second application of the invention, quality of service policies are implemented by providing a fourth entry for each stream such as “forward all frames but mark less important frames with a discard bit”. If downstream resources are unavailable, the frames with a discard bit will be dropped. This provides a weight for each portion of the stream. The weight can also be used to trigger other operations within the network such as marking packets with standard or proprietary tags which will determine how the packets are treated by the network. For example, the “forward I frames only” weight could be tagged as low priority traffic and the frames dropped during network congestion. When the network is not congested, the delivery of these frames will enhance the subscriber experience. An exemplary application is illustrated in
In the example of
A third application of the invention involves the simultaneous transmission of different bandwidth signals carrying the same content at different resolutions. Rather than transmitting three separate streams as is done in the state of the art and as described above with reference to prior art
In this application, the multicast table entry “1” means “forward the entire signal Vcast+ΔTV+ΔHDTV”. The entry “2” means “forward all but the differential HDTV part”, i.e. Vcast+ΔTV. The entry “3” means “forward only the Vcast part of the signal”.
This third application of the present invention also allows the downgrading of a signal rather than an interruption of the signal in the event of network congestion. For example, a signal containing components of HDTV, TV and V-cast video could be delivered to an HDTV subscriber and downgraded to standard TV in the event of congestion. Similarly, a standard TV subscriber could be downgraded to V-cast video quality in the event of network congestion.
A fourth application of the weighted multicast table of the invention is applied to teleconferencing. In modern teleconferencing, audio and video signals are sent to all participants. In addition, a whiteboard or a computer desktop signal is also sent to all participants. Implementation of the present invention can allow participants with limited bandwidth to choose to not receive the video portion of the conference or to not receive the desktop portion or to only receive the audio portion.
In this example the table entry “1” means “audio only”. The table entry “2” means “audio and video”. The Table entry “3” means “audio, video, and desktop access”. With desktop access a conference member can view (and control) the computer desktop of another member who has desktop access. The Table entry “4” means audio and desktop access.
The weighted multicast table of the invention can also be applied to the updating of mirror web servers.
In this example, the table entry “1” means “update every day”, “2” means “update every other day”, and “3” means “update every third day”.
An alternative implementation of assigning weights to streams is to associate additional columns in the table with each stream, each column representing a different weight. Thus, the table entries could remain binary and this will be more compatible with existing systems. Table 7 shows the same example as
In Table 7 additional channel entries are provided for the I frames only streams. Thus, reading from left to right, the subscriber does not get a full channel 71 stream, gets a channel 71I frames stream, gets a full channel 72 stream, does not get a channel 72 I frames only stream (because the full stream including I frames is being sent), does not get a full channel 73 stream and does get a channel 73 I frames only stream.
There have been described and illustrated herein several embodiments of a weighted multicast table and applications utilizing it. While particular embodiments of the invention have been described, it is not intended that the invention be limited thereto, as it is intended that the invention be as broad in scope as the art will allow and that the specification be read likewise. Thus, while the invention has been described with reference to sending the full stream of one channel and I frames of adjacent channels, it will be appreciated that the I frames of more than just the adjacent channels could be sent. Moreover, rather then sending the I frames of adjacent channels, I frames for the user's favorite channels could be sent. Favorite channels could be determined by intelligence that keeps track of recently selected channels. It will therefore be appreciated by those skilled in the art that yet other modifications could be made to the provided invention without deviating from its spirit and scope as claimed.