The invention relates generally to digital video networks, and more particularly, to techniques for fast channel change in digital video networks that are capable of distributing digital video content via multicasting and unicasting.
The viewer experience with delivery of digital video content via broadcast channels is often poor. Because of the characteristics of compressed video encoding, the viewer often waits seconds after selection of a broadcast channel until the digital video content is finally displayed. Because viewers are accustomed to near instantaneous channel change functionality with analog television, the quality of the digital television experience often times does not meet viewer expectations.
The root of the slow channel change problem has to do with the framing of compressed video (e.g., MPEG2 or MPEG4/H.264). In order to minimize bandwidth, the majority of the frames contained within a compressed stream of digital video content are P-frames and B-frames, which are frames that encode changes to a displayed image. An I-frame (MPEG2) on the other hand is a frame that presents a complete new image. The rate at which I-frames (or equivalent I-slice constructs in MPEG4) are delivered in a digital video stream is typically one I-frame every ¼ to 2 seconds, depending on the amount of motion contained within the stream. The delay after requesting a channel change is dominated by having to wait until the next I-frame finally arrives, which can be up to 2 seconds, before the new channel can be displayed.
In an Internet Protocol (IP) television environment, different channels of digital video content are distributed to multiple clients via IP multicasting. One technique for implementing a fast channel change in an IP television environment is described in U.S. Pat. Publ. No. 2005/0081244 to Barret et al. The technique described by Barret et al. involves servicing a channel change request by 1) retaining an I-frame from each different broadcast stream, and then 2) transmitting the retained I-frame for the requested channel to the corresponding client via a unicast message instead of via a multicast message. The I-frame is then used to quickly display the requested channel. Once the retained I-frame is sent to the client via the unicast message, the client is rapidly joined to the multicast group corresponding to the requested channel in time for the client to receive the next I-frame via multicasting. In IP television environments, internet group management protocol (IGMP) is typically used to join clients to multicast groups. While transmitting an I-frame via a unicast message works well to achieve a fast channel change, using IGMP to join a client to a multicast group requires multiple messages between client and server. When a large number of channel change requests are made in a short period of time, the flood of associated IGMP messages can introduce significant delay into the network. In particular, delay associated with the IGMP messages can place limitations on the scalability of this fast channel technique.
In view of this, what is needed is a fast channel change technique that is able to efficiently accommodate large numbers of channel change requests that are received in a short period of time.
In a digital video network that is capable of distributing digital video content to a client via multicasting and unicasting, servicing a channel change request from a client involves switching from providing the digital video content to the client via multicasting to providing the digital video content to the client via unicasting and continuing to provide digital video content to the client via unicasting until a pre-established condition is met. Continuing to provide digital video content to the client via unicasting until a pre-established condition is met allows the network to opportunistically switch the client from unicasting back to multicasting. By opportunistically switching the client from unicasting back to multicasting, network resources can be intelligently managed to achieve efficient resource utilization.
Switching from unicasting back to multicasting may be accomplished using many different techniques. In accordance with an embodiment of the invention, a technique for switching a client from unicasting back to multicasting involves accumulating enough digital video content at the client to bridge the time it takes to transition from receiving the digital video content via unicasting to receiving the digital video content via multicasting. Digital video content is accumulated at the client by temporarily increasing the stream rate of the unicast stream above the playout rate. While the digital video content is being streamed at the increased rate, the amount of digital video content stored in the client's stream buffer grows (as opposed to staying the same, which is the case when the stream rate is the same as the playout rate). The stream rate is held at the increased rate until the client accumulates enough frames in its buffer to be able to bridge the time it takes to transition from receiving the digital video content via unicasting to receiving the digital video content via multicasting.
In accordance with another embodiment of the invention, a technique for switching a client from unicasting back to multicasting involves simultaneously providing the digital video content to the client via unicasting and multicasting until the client has buffered duplicate frames (i.e., frames that contain the same digital video content). Once the client has buffered duplicate frames, the client can transition from playing out of a buffer that holds frames received via unicasting to playing out of a buffer that holds frames received via multicasting without skipping a frame. Once the transition back to multicasting is complete, unicasting is terminated and any frames remaining in the unicast buffer are flushed.
Other aspects and advantages of the present invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.
Throughout the description, similar reference numbers may be used to identify similar elements.
As used herein, the terms “multicast” and “multicasting” refer to a technique for providing the same digital video content to multiple clients in which the digital video content is delivered over common links only once (e.g., the digital video content is copied when it reaches nodes with links to multiple destinations). As used herein, multicast and multicasting are synonymous with the terms broadcast and broadcasting as related to, for example, hybrid fiber coaxial (HFC) cable networks.
As used herein, the terms “unicast” and “unicasting” refer to a technique for providing digital video content to a single specified client.
In some applications, the network for distributing digital video content is a packet-based network. In packet-based networks, multicasting may involve replicating packets at nodes that include multiple branches leading to different clients. The replication of packets at branching nodes eliminates the need to send multiple packets of the same content over the same link. Packet-based distribution networks may utilize, for example, IP, Ethernet, ATM, or a combination thereof to communicate digital video content. In packet-based networks, unicasting typically involves point-to-point messaging between nodes (e.g., servers and clients). Point-to-point messaging can be accomplished, for example, using well-known source/destination address based protocols (e.g., IP or Ethernet).
In some applications, the network for distributing digital video content includes an HFC network that utilizes radio frequency signals (RF) for local distribution of digital video content to the clients. In HFC networks, multicasting typically involves distributing all channels to all clients. Each client is able to receive any channel by tuning to the desired channel. In HFC networks, unicasting may involve distributing a channel, which is intended for only one client, to multiple clients and coordinating with the intended client so that only the intended client is able to receive to the desired channel. Even though the channel may be distributed to multiple clients, only one client, the intended client, is able to access the channel and display the digital video content. For purposes of this description, a communications technique such as this, which can be implemented in HFC networks, is considered unicasting.
The distribution network 110 supports the multicasting and unicasting of digital video content downstream to the clients 112. The distribution network also supports upstream unicast messaging from the clients to the stream server 106 and channel change server 108. The distribution network may utilize any network technology that supports multicasting and unicasting. In a packet-based environment, the distribution network may utilize, for example, routers, switches, DSLAMs, cable modem termination systems (CMTSs), passive optical network (PON) architectures, or any combination thereof. In an HFC environment, the distribution network may utilize, for example, a combination of routers, switches, and QAMs. The clients are systems that receive the digital video content from the distribution network and provide the digital video content to video display devices (e.g., televisions). The clients may be embodied as hardware, firmware, software, or any combination thereof and are sometimes referred to as set-top boxes (STBs). Clients in general are well-known in the field. Specific functions of the clients in accordance with the invention are described in more detail below.
Referring to
In the example of
Referring to
In accordance with the invention and in contrast to the prior art, the digital video content related to channel 2 continues to be provided to the client 112 via unicasting until a pre-established condition is met. That is, multiple consecutive frames of digital video content related to channel 2 are unicast to the client and the client is not switched back to receiving digital video content via multicasting until some pre-established condition is satisfied. In particular, the client is not switched back to multicasting after the unicasting of a single I-frame as is known in the prior art. By not immediately switching back to multicasting after unicasting the single I-frame, the network is allowed to opportunistically switch the client from unicasting back to multicasting. By opportunistically switching the client from unicasting back to multicasting, network resources can be intelligently managed to achieve efficient resource utilization.
In accordance with the invention, exemplary pre-established conditions which could trigger a switch from unicasting back to multicasting include:
Before the client 112 is switched back to multicasting, if any additional channel change requests are made by the client (e.g., client A), the channel change requests are serviced via unicasting instead of multicasting.
Once the pre-established condition is met, the process of switching back to providing digital video content to the client 112 via multicasting instead of unicasting is initiated.
With reference to
In an embodiment, channel change requests are serviced through interaction between the server system 104 and the client 112.
In an alternative embodiment of the invention, whether the digital video content is provided via multicasting or unicasting is a function of whether or not the client is in “surf mode.” When the client is not in surf mode, digital video content is provided to the client via multicasting and when the client is in surf mode, digital video content is provided to the client via unicasting.
An embodiment of the process of servicing a channel change request via unicasting is now described with reference to
In the convention used in
As described above, a channel change request is serviced by providing digital video content related to the requested channel to the client 112 via unicasting instead of multicasting. In particular, the unicast session starts with the first buffered I-frame and continues with the buffered frames that come after the first I-frame.
In an embodiment, the server system is configured such that the multicast streams are streamed out slightly ahead of any unicast streams. That is, duplicate frames of digital video content will be streamed via multicasting slightly before the corresponding frames are streamed via multicasting. As will be seen, the fact that multicast streams are slightly ahead of their corresponding unicast streams can be used advantageously to transition the client from unicasting to multicasting without skipping a frame.
Switching from unicasting back to multicasting may be accomplished using many different techniques. Although there are many different techniques that can be used to switch from unicasting back to multicasting, it is desirable to make the switch without causing any disruption to the playout of the digital video content by the client 112. For example, it is desirable to avoid skipping any frames that make up the stream of digital video content. A seamless switch from unicasting back to multicasting can be accomplished, for example, using one of the techniques described below.
A first technique for switching a client from unicasting back to multicasting involves accumulating enough digital video content at the client to bridge the time it takes to transition from receiving the digital video content via unicasting to receiving the digital video content via multicasting. The transition time is a function of the network specifics. For example, in HFC networks that utilize RF for local delivery of digital video content to the clients, the transition time is a function of how long it takes to retune the tuner to a new channel. In IP-based networks, the transition time is a function of how long it takes to join the client to the corresponding multicast group. In accordance with an embodiment of the invention, digital video content is accumulated at the client by temporarily increasing the stream rate of the unicast stream above the playout rate. While the digital video content is being streamed at the increased rate, the amount of digital video content stored in the client's stream buffer grows (as opposed to staying the same, which is the case when the stream rate is the same as the playout rate). That is, the number of frames in the client's stream buffer increases while the stream rate is increased. The stream rate is held at the increased rate until the client accumulates enough frames in its buffer to be able to bridge the time it takes to transition from receiving the digital video content via unicasting to receiving the digital video content via multicasting. For example, if the transition time from unicasting to multicasting is approximately 1 second, then the stream rate is increased until the client is able to accumulate at least 1 second worth of frames in the stream buffer. In an embodiment, the transition time includes the time required to make the switch from unicasting to multicasting plus the maximum delay that can be attributed to waiting for the next I-frame to arrive at the client (e.g., equal to the time of one GOP).
Operation of this technique is described with reference to FIGS. 8 and 9A-9D. Referring to
Exemplary states of the client's 112 stream buffer 154 are illustrated with respect to this technique in
Although in this embodiment, the process of switching to multicasting is initiated right after the client accumulates enough frames, in other embodiments, the client may wait to initiate the switch. Although a two buffer implementation is described with reference to
A second technique for switching a client from unicasting back to multicasting involves simultaneously providing the digital video content to the client via unicasting and multicasting until the client has buffered duplicate frames (i.e., frames that contain the same digital video content). Once the client has buffered duplicate frames, the client can transition from playing out of a buffer that holds frames received via unicasting to playing out of a buffer that holds frames received via multicasting without skipping a frame. Once the transition back to multicasting is complete, unicasting is terminated and any frames remaining in the unicast buffer are flushed.
Operation of this technique is described with reference to FIGS. 10 and 11A-11D. Referring to
Exemplary states of the client's stream buffer 154 related to this technique are illustrated in
Once the client begins to receive digital video content related to the current channel via multicasting in addition to unicasting, the multicast frames are buffered in a multicast buffer.
The join operation involves making a unique identification between a frame in the unicast buffer and the corresponding and identical frame in the multicast buffer. For this purpose, the minimum size of data required to effect a matching operation is defined as an Identification Quantum (IDQ). The IDQ represents the smallest amount of data required in order to be able to guarantee that a match between frames is unique. Selection of an IDQ type may be according to a list of choices, known to those skilled in the art. These include, but are not limited to: 1) a CRC or MD5 checksum, or other condensed representation, of the data contained within a single transport packet or within multiple packets, 2) a vector consisting of, but not limited to, one or more of the following fields: a transport packet continuity counter, a picture temporal reference, a picture type (I, P, B, etc.), an absolute stream offset from start, where the vector represents a unique frame start identifier, and 3) an in-stream marker bit or bits, or a set of the same (this is possible if the server is able to manipulate the contents of the multicast buffer).
One consequence of buffering the multicast frames and switching to the multicast buffer once duplicate frames arrive is that the timeline of the displayed digital video content is permanently time shifted by the interval that resulted from the first channel change. This delay can be expected to be on the order of from zero to the maximum GOP size (e.g., 1-2 seconds). The above-described technique is especially applicable to clients that are capable of concurrently receiving two different streams and to cases in which adequate bandwidth headroom is temporarily available (e.g., fiber or dual RF/IP path).
The processor 130, 150 within the channel change server 108 and client 112 may include a multifunction processor and/or an application specific processor that is operationally connected to the memory 132, 152. The processor performs functions, such as executing software code, which are well-known in the field. The memory within the channel change server and the client may include circuits for storing processor-executable instructions, for buffering digital video content, and for storing data structures. Although the processor and memory are depicted as separate functional units, in some instances, the processor and memory are partially or fully integrated onto the same device.
With reference to
The above-described techniques for servicing channel change requests can be applied to any type of distribution network that is able to distribute digital video content via multicasting and unicasting. The return to multicasting can be a one-sided operation that is accomplished entirely by the server system 104 and/or the client 112 or it can be a two-sided operation that involves communications between the server system and the corresponding client. The server system depicted in
In
Although the stream server 106 is depicted as a single entity for description purposes, the stream server may be implemented as a single server or multiple servers that act collectively to stream digital video content to the clients.
Although specific embodiments of the invention have been described and illustrated, the invention is not to be limited to the specific forms or arrangements of parts as described and illustrated herein. The invention is limited only by the claims.
This application is entitled to the benefit of provisional U.S. Patent Application Ser. No. 60/655,328, filed Feb. 23, 2005 and provisional U.S. Patent Application Ser. No. 60/719,146, filed Sep. 21, 2005, the disclosure of which is incorporated by reference herein in its entirety. This application is related to the co-filed applications entitled “SWITCHING A CLIENT FROM UNICASTING TO MULTICASTING BY INCREASING THE UNICAST STREAM RATE TO THE CLIENT” having application Ser. No. 11/360,080, filed Feb. 23, 2006 and “SWITCHING A CLIENT FROM UNICASTING TO MULTICASTING BY SIMULTANEOUSLY PROVIDING UNICAST AND MULTICAST STREAMS TO THE CLIENT” having application Ser. No. 11/361,303, filed Feb. 23, 2006.
Number | Name | Date | Kind |
---|---|---|---|
2510397 | Hansell | Jun 1950 | A |
2915652 | Hatsopoulos | Dec 1959 | A |
3021472 | Hernqvist | Feb 1962 | A |
3118107 | Gabor | Jan 1964 | A |
3169200 | Huffman | Feb 1965 | A |
3173032 | Maynard | Mar 1965 | A |
3194989 | Garbuny | Jul 1965 | A |
3238395 | Sense | Mar 1966 | A |
3239745 | Hernqvist | Mar 1966 | A |
3267307 | Fox | Aug 1966 | A |
3267308 | Hernqvist | Aug 1966 | A |
3281372 | Haas | Oct 1966 | A |
3300660 | Bensimon | Jan 1967 | A |
3328611 | Davis | Jun 1967 | A |
3376437 | Meyerand, Jr. | Apr 1968 | A |
3393330 | Vary | Jul 1968 | A |
3470393 | Moncorge | Sep 1969 | A |
3515908 | Caldwell | Jun 1970 | A |
3519854 | Davis | Jul 1970 | A |
3578992 | Shimada | May 1971 | A |
3600933 | Johnston | Aug 1971 | A |
3740592 | Engdahl et al. | Jun 1973 | A |
3821462 | Kaufman et al. | Jun 1974 | A |
3843896 | Rason et al. | Oct 1974 | A |
3992885 | Forster | Nov 1976 | A |
4004210 | Yater | Jan 1977 | A |
4011582 | Cline et al. | Mar 1977 | A |
4039352 | Marinescu | Aug 1977 | A |
4063965 | Cline et al. | Dec 1977 | A |
4097752 | Wolf et al. | Jun 1978 | A |
4148192 | Cummings | Apr 1979 | A |
4188571 | Brunson | Feb 1980 | A |
4199713 | Förster | Apr 1980 | A |
4224461 | Snyder, Jr. et al. | Sep 1980 | A |
4281280 | Richards | Jul 1981 | A |
4373142 | Morris | Feb 1983 | A |
4410951 | Nakamura | Oct 1983 | A |
4423347 | Kleinschmidt | Dec 1983 | A |
4667126 | Fitzpatrick | May 1987 | A |
4880975 | Nishioka et al. | Nov 1989 | A |
4928030 | Culp | May 1990 | A |
4937489 | Hattori | Jun 1990 | A |
4958201 | Mimura | Sep 1990 | A |
5028835 | Fitzpatrick | Jul 1991 | A |
5049775 | Smits | Sep 1991 | A |
5068535 | Rabalais | Nov 1991 | A |
5083056 | Kondou | Jan 1992 | A |
5119151 | Onda | Jun 1992 | A |
5229320 | Ugajin | Jul 1993 | A |
5233205 | Usagawa | Aug 1993 | A |
5235803 | Rodgers | Aug 1993 | A |
5247223 | Mori | Sep 1993 | A |
5307311 | Sliwa, Jr. | Apr 1994 | A |
5309056 | Culp | May 1994 | A |
5323737 | Farrell | Jun 1994 | A |
5327038 | Culp | Jul 1994 | A |
5332952 | Ugajin | Jul 1994 | A |
5336547 | Kawakita et al. | Aug 1994 | A |
5351412 | Furuhata | Oct 1994 | A |
5356484 | Yater | Oct 1994 | A |
5371388 | Oda | Dec 1994 | A |
5399930 | Culp | Mar 1995 | A |
5410166 | Kennel | Apr 1995 | A |
5465021 | Visscher | Nov 1995 | A |
5487790 | Yasuda | Jan 1996 | A |
5503963 | Bifano | Apr 1996 | A |
5521735 | Shimizu | May 1996 | A |
5592042 | Takuchi | Jan 1997 | A |
5625245 | Bass | Apr 1997 | A |
5675972 | Edelson | Oct 1997 | A |
5699668 | Cox | Dec 1997 | A |
5699772 | Yonekawa et al. | Dec 1997 | A |
5701043 | Razzaghi | Dec 1997 | A |
5722242 | Edelson | Mar 1998 | A |
5810980 | Edelson | Sep 1998 | A |
5874039 | Edelson | Feb 1999 | A |
5892767 | Bell et al. | Apr 1999 | A |
5917156 | Nobori et al. | Jun 1999 | A |
5973259 | Edelson | Oct 1999 | A |
5981071 | Cox | Nov 1999 | A |
5981866 | Edelson | Nov 1999 | A |
5994638 | Edelson | Nov 1999 | A |
6054837 | Edelson | Apr 2000 | A |
6064137 | Cox | May 2000 | A |
6084173 | DiMatteo | Jul 2000 | A |
6089311 | Edelson | Jul 2000 | A |
6117344 | Cox et al. | Sep 2000 | A |
6166317 | Volk, Jr. | Dec 2000 | A |
6175217 | Da Ponte et al. | Jan 2001 | B1 |
6192687 | Pinkerton et al. | Feb 2001 | B1 |
6214651 | Cox | Apr 2001 | B1 |
6225205 | Kinoshita | May 2001 | B1 |
6229083 | Edelson | May 2001 | B1 |
6232546 | DiMatteo et al. | May 2001 | B1 |
6271614 | Arnold | Aug 2001 | B1 |
6272873 | Bass | Aug 2001 | B1 |
6281514 | Tavkhelidze | Aug 2001 | B1 |
6314466 | Agarwal et al. | Nov 2001 | B1 |
6339785 | Feigenbaum | Jan 2002 | B1 |
6417060 | Tavkhelidze et al. | Jul 2002 | B2 |
6489704 | Kucherov et al. | Dec 2002 | B1 |
6493876 | DeFreese et al. | Dec 2002 | B1 |
6535909 | Rust | Mar 2003 | B1 |
6651105 | Bhagwat et al. | Nov 2003 | B1 |
6651760 | Cox et al. | Nov 2003 | B2 |
6691312 | Sen et al. | Feb 2004 | B1 |
6711741 | Yeo | Mar 2004 | B2 |
6720704 | Tavkhelidze et al. | Apr 2004 | B1 |
6731625 | Eastep et al. | May 2004 | B1 |
6774003 | Tavkhelidze et al. | Aug 2004 | B2 |
6845398 | Galensky et al. | Jan 2005 | B1 |
6869855 | Tavkhelidze et al. | Mar 2005 | B1 |
7107351 | Baumeister et al. | Sep 2006 | B2 |
7523482 | Barrett et al. | Apr 2009 | B2 |
7549160 | Podar et al. | Jun 2009 | B1 |
20010046749 | Tavkhelidze et al. | Nov 2001 | A1 |
20020114465 | Shen-Orr et al. | Aug 2002 | A1 |
20020126755 | Li et al. | Sep 2002 | A1 |
20020170172 | Tavkhelidze et al. | Nov 2002 | A1 |
20030042819 | Martinovsky et al. | Mar 2003 | A1 |
20030068431 | Taliashvili et al. | Apr 2003 | A1 |
20030074667 | Cheung et al. | Apr 2003 | A1 |
20030093802 | Cho et al. | May 2003 | A1 |
20030093803 | Ishikawa et al. | May 2003 | A1 |
20030152815 | LaFollette et al. | Aug 2003 | A1 |
20040029341 | Cox et al. | Feb 2004 | A1 |
20040195934 | Tanielian | Oct 2004 | A1 |
20050008240 | Banerji et al. | Jan 2005 | A1 |
20050081244 | Barrett et al. | Apr 2005 | A1 |
20050226272 | Luby et al. | Oct 2005 | A1 |
20050257106 | Luby et al. | Nov 2005 | A1 |
20060029065 | Fellman | Feb 2006 | A1 |
20060159117 | Furlong et al. | Jul 2006 | A1 |
20060187950 | Bou-Diab et al. | Aug 2006 | A1 |
20060215593 | Wang et al. | Sep 2006 | A1 |
20060279437 | Luby et al. | Dec 2006 | A1 |
20070157221 | Ou et al. | Jul 2007 | A1 |
20080141097 | Vayanos et al. | Jun 2008 | A1 |
20080151805 | Vayanos et al. | Jun 2008 | A1 |
20080205640 | Shen-Orr et al. | Aug 2008 | A1 |
20090064242 | Cohen et al. | Mar 2009 | A1 |
20090100473 | Segel | Apr 2009 | A1 |
Number | Date | Country |
---|---|---|
4025618 | Feb 1992 | DE |
07322659 | Dec 1995 | JP |
10-238406 | Aug 1998 | JP |
WO-9702460 | Jan 1997 | WO |
WO-9910974 | Mar 1999 | WO |
WO-9913562 | Mar 1999 | WO |
WO-9940628 | Aug 1999 | WO |
0249359 | Jun 2002 | WO |
WO 0249359 | Jun 2002 | WO |
WO-03021758 | Mar 2003 | WO |
WO-03083177 | Oct 2003 | WO |
WO-03090245 | Oct 2003 | WO |
Number | Date | Country | |
---|---|---|---|
20070107026 A1 | May 2007 | US |
Number | Date | Country | |
---|---|---|---|
60655328 | Feb 2005 | US | |
60719146 | Sep 2005 | US |