The invention relates to techniques than can be used to minimize the channel change time for Internet Protocol (IP) Video. More particularly described, the invention can reduce the channel changing delay by caching video packets for the most likely next channel in a buffer in anticipation of a television subscriber changing channels and by having an adaptable buffer length in the set top box.
In the conventional art, video is typically sent via radio-frequency (RF) broadcast. The broadcast method has been used by off-air television stations, cable television systems, and satellite broadcasters, since the beginning of television. Within the category of broadcast television, there are two types of signals, analog and digital.
Besides broadcasting, there are other video delivery systems, including cable, satellite, DSL, and broadcast transmissions through Fiber-to-the-Home (FTTH) systems. An increasingly popular method of transmitting digital video is IP Television (TV) because of the numerous advantages it provides for network providers to offer video services more efficiently in certain cases. For example, IPTV is ideal for programs intended for use by only one subscriber, because a minimum amount of the network is tied up to serve that need. Furthermore, in contrast to broadcast video, IPTV has no inherent limitation in the number of channels that can be offered for transmission. Therefore, the number of channels that can be carried to subscribers can be significantly higher when compared to traditional video delivery systems and depending on the transmission capacity of the network and how much of that capacity is devoted to IPTV. Finally, the same data transmission capacity of a network can be used for all other data traffic. A conventional IP video deployment that uses IPTV will be discussed below.
From the IPTV encoder 220, the stream of individual IPTV packets passes through a series of routers and switches 230A, 230B, 230C until they reach the subscriber's location. At the subscriber's location, typical deployments of IP video services rely on three main systems: customer premise equipment (CPE) 260, a set top converter or set top box (STB) 270, and the subscriber's television 280 or video receiver. The CPE 260 provides a connection to the network 200 and is coupled to a router or switch 230C. In turn, the CPE 260 is coupled to a STB 270 typically using an Ethernet type of link. Finally, the STB 270 is coupled and passes the video signals to the subscriber's television or video receiver 280. The connection from the STB 270 to the television 280 may be standard coaxial cable carrying an RF modulated signal, or it may be an alternative video connection such as S-Video or FireWire.
In the IPTV video deployment system 200, the IP video signals are received by the CPE 260 as IP multicast (or unicast, as is understood by one of ordinary skill in the art) streams delivered from the network 200. To avoid sending all channel signals simultaneously, each multicast video channel uses a specific IP multicast identification. The CPE 260 communicates with the network 200 to identify which channel the user desires to view or is currently viewing. The signaling information is carried using the Internet Group Management Protocol (IGMP).
Therefore, when a user changes the channel on the STB 270, the STB 270 transmits an IGMP “join” message 285 to the network 200 for the new channel. The IGMP “join” message 285 is sent upstream back through the routers and switches 230A, 230B, 230C to look for the appropriate channel signal. When the appropriate signal is located, the packets bearing the multicast identification 290 for the new channel can be transmitted downstream to the CPE 260 and STB 270 which relays the signal to the subscriber's TV 280. Furthermore, when STB 270 tunes to the new channel, the STB 270 or CPE 260 sends an IGMP “leave” message 295 for the previous channel.
As understood by one or ordinary skill in the 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 subscriber.
The Intra-frame, or I-frame, is typically considered to be the fundamental frame of a digital video signal. A STB 270 can completely reconstruct a video picture by decoding the contents of an I-frame. Therefore, because one frame of a picture is fairly similar to the next, less I-frames must be transmitted, as the STB 270 can use the one I-frame for constructing subsequent frames. This is advantageous because I-frames require a large amount of data; therefore, transmitting a large number of them could reduce network bandwidth.
To assist in constructing the picture frames, two other types of frames are transmitted: P-frames, or predictive frames, and B-frames, or bi-directional frames. P-frames and B-frames use both spatial and temporal compression. Spatial compression eliminates redundant data in an individual frame. For temporal compression, the frames reference the previous I-frame in the stream. In simplified terms, P-frames and B-frames usually only contain the differences in the picture that have appeared since the last I-frame. As a consequence, a decoder in a STB 270 typically cannot reconstruct a complete picture from a P-frame or B-frame because it must also have access to the preceding I-frame.
In
The last factor in determining how often to transmit I-frames relates to when a subscriber is changing channels. For example, suppose a subscriber turns to the channel with the channel stream represented in
The conventional IP video system described above provides many advantages to network service providers, including their ability to offer revolutionary video services. However, subscribers to IPTV services complain about one key characteristic—the additional time delay digital video introduces when subscribers change channels, especially when subscribers desire to “channel surf.” The architecture of the conventional IP video system introduces at least three sources of time delay. The aggregate of these three sources can create time delays of up to three seconds to change the channel.
One source of delay relates to the common practice of IPTV encoder manufacturers to transmit an I-frame about twice every second as discussed above. Therefore, when a STB 270 tunes to a new channel, it usually must wait on average of a quarter of a second before it can even begin displaying the new channel's picture. This delay can be one source of irritation to a subscriber, especially if the subscriber is attempting to rapidly scan through channels (“channel surfing”).
Another source of delay relates to the “jitter buffer” that occurs in a buffer found in the STB 270 decoder. The STB 270 decoder is responsible for receiving the incoming IP packet streams from the network 200 and decoding those packet streams in order for them to be displayed correctly on the subscriber's television 280. The buffer in the STB 270 decoder can be represented as a First-In-First-Out (FIFO) Shift Register. The buffer usually serves to delay all packets arriving at the STB 270 by some length of time chosen by the STB 270 manufacturer. This buffer is needed in order to prevent momentary picture “freezes,” which can occur if for some reason a packet is delayed in getting to the STB 270. To one of ordinary skill in the art, the buffer usually must be sized such that the longest packet delay time expected is less than the buffer length. Therefore, when a subscriber changes channels, the FIFO shift register begins filling up with frames that correspond to the channel currently requested by the subscriber. However, the FIFO shift register typically does not begin to transmitting the frames to the STB 270 decoder until the buffer is halfway full, causing a second time delay.
Finally, another source of delay that can occur in a conventional IPTV video system is illustrated in
In view of the foregoing, there is a need in the art to provide techniques than can be used to minimize the channel change time for IPTV. More particularly described, there is a need in the art to reduce the channel changing delay that can occur in networks using IPTV when a subscriber desires to “surf” through channels.
The invention can reduce the delay that occurs when subscribers change channels while watching digital video delivered over broadband Internet Protocol (IP) networks. Specifically, the invention can reduce the channel changing delay when subscribers of the network “channel surf,” or activate a remote control to scroll through or quickly tune through channels in a serial manner to determine what they want to watch. The invention can reduce the channel changing delay by caching video packets for the most likely next channel in a buffer in anticipation of the subscriber changing channels and by having an adaptable buffer length in the set top box.
Digital video relies on standards developed by the Motion Pictures Expert Group for its formatting and transport. These standards, known collectively as MPEG, define an approach for compressing the video content and significantly reducing the bandwidth required to transfer it. In an IPTV encoder, MPEG compression creates a stream of three types of individual frames, each carrying some video content. One of the most important types of frames is known as an Intra-frame, or I-frame which uses various spatial compression techniques to minimize its size. Most importantly, though, a receiver can completely reconstruct a video picture using only the contents of the I-frame. The other two types of video frames, P-frames and B-frames, use both spatial and temporal compression which means they reference an I-frame in the stream. Therefore, P-frames and B-frames only contain the differences in the picture that have appeared since the last I-frame; and, as a consequence, a receiver cannot reconstruct a complete picture from a P-frame or B-frame only.
The IP video signals can be received by customer premise equipment as IP multicast streams delivered from the network. To avoid sending all channel signals simultaneously, each video channel can use a specific IP multicast identification and the customer premise equipment can signal to the network which channel the user is currently viewing or requesting. The signaling information can be carried using Internet Group Management Protocol (IGMP). Therefore, when a user changes the channel, the customer premise equipment can transmit an IGMP “join” message to the network for the new channel, and it can send an IGMP “leave” message for the original channel. The signaling information for the current channel can be transmitted to an IP set top box which relays the signal to the customer's TV.
According to one exemplary aspect of the invention, software located on either the customer premise equipment or set top box can monitor the current channel (multicast group) being transmitted to the customer's set top box and predict the next channel the customer may decide to tune. The potential future channels that the customer premise equipment may predict include: (1) the group corresponding to the television channel immediately following the tuned channel (in case the user is “surfing up”); (2). the group corresponding to the television channel immediately preceding the tuned channel (in case the user is “surfing down”); and/or (3). the group corresponding to the last television channel that the user was watching (in case the user is toggling between two channels). For these channels, instead of passing the streams from the network to the IP set top box, the customer premise equipment or set top box can cache the stream's content in local memory.
In order to reduce the channel change time, the customer premise equipment or set top box can manage the cache such that an MPEG I-frame, the most important type of frame, is always at the cache head. Therefore, when the user changes the channel to a cached stream, the customer premise equipment or set top box can immediately transmit the contents of its cache for that stream. During this time, additional content for the stream can continuously be added to the end of the cache as long as the subscriber is watching that channel.
For another exemplary aspect of the invention, the invention may be simplified by pre-caching only one I-frame in the customer premise equipment. When the user changes the channel, the single I-frame can then be supplied to the set top box. At that time, a normal IGMP join request can be transmitted upstream to locate the full program stream, while the single I-frame can be captured by the set top box. Each time an I-frame is received, it can be captured and replace the previous I-frame in the cache. Other data not related to the I-frame (such as B- and P-frames) can be discarded. In this alternative exemplary embodiment, the set top box decoder can capture and display that single I-frame as a still picture, until it begins receiving a full MPEG video stream for the selected channel. This can afford the subscriber a quick preview of the channel without requiring significant memory, and it can also simplify the transfer of picture content from the buffer in the customer premise equipment to going directly to the set top box.
For another exemplary aspect of the invention, the invention can reduce channel change time by using an adaptive buffer length in the set top box. The buffer in the set top box can comprise a first-in-first-out memory (FIFO), which serves to delay all packets arriving at the set top box by some length of time chosen by the set top box manufacturer. This buffer is usually needed in order to prevent momentary picture “freezes,” which can occur if for some reason a packet is delayed in getting to the set top box. However, different video delivery systems exhibit widely varied packet delay times; therefore, set top box manufacturers typically provide a buffer that is long enough to prevent picture freezes under the most severe conditions of packet delay variation.
In order to reduce the channel change time, data entering the FIFO buffer from the customer premise equipment can enter via a switch which is set to different positions by logic, depending on how long a buffer is needed. The switch can have a position where the buffer length is maximum, and the time required for a video signal to propagate through the buffer is maximum. Therefore, in this position, the channel change time will be maximum. Furthermore, at the opposite extreme, the switch can have a position where the buffer length is minimum, where the channel change time would be minimized because the new channel I-frame would propagate through the buffer in less time. Finally, the switch can have intermediate positions that allow the buffer size to be increased or decreased to certain lengths without reaching the maximum or minimum buffer length.
These and other aspects, objects, and features of the invention will become apparent from the following detailed description of the exemplary embodiments, read in conjunction with, and reference to, the accompanying drawings.
The invention relates to minimizing the delay that occurs when subscribers change channels while watching digital video delivered over broadband Internet Protocol (IP) networks. Specifically, the invention relates to reducing the channel changing delay when subscribers “channel surf.” The invention can reduce the channel changing delay by caching video packets for the most likely next channel in a buffer in anticipation of the subscriber changing channels and by having an adaptable buffer length in the set top box.
The description of the flow charts in this detailed description are represented largely in terms of processes and symbolic representations of operations by conventional computer components, including a processing unit (a processor), memory storage devices, connected display devices, and input devices. Furthermore, these processes and operations may utilize conventional discrete hardware components or other computer components in a heterogeneous distributed computing environment, including remote file servers, computer servers, and memory storage devices. Each of these conventional distributed computing components can be accessible by the processor via a communication network.
The present invention may comprise a computer program or hardware or a combination thereof which embodies the functions described herein and illustrated in the appended flow charts. However, it should be apparent that there could be many different ways of implementing the invention in computer programming or hardware design, and the invention should not be construed as limited to any one set of computer program instructions. Further, a skilled programmer would be able to write such a computer program or identify the appropriate hardware circuits to implement the disclosed invention without difficulty based on the flow charts and associated description in the application text, for example. Therefore, disclosure of a particular set of program code instructions or detailed hardware devices is not considered necessary for an adequate understanding of how to make and use the invention. The inventive functionality of the claimed computer implemented processes will be explained in more detail in the following description in conjunction with the remaining Figures illustrating other process flows.
According to one exemplary aspect of the invention, software located on either the customer premise equipment or set top box can monitor the current channel being transmitted to the customer's set top box and predict the next channel the customer may decide to tune. The customer premise equipment or set top box can cache the next channel stream's content in local memory by storing a MPEG I-frame at the cache head and the subsequent MPEG frame information following it. Therefore, when the user changes the channel to a cached stream, the customer premise equipment or set top box can immediately transmit the contents of the cache for that stream, thereby reducing the channel changing delay time.
For another exemplary aspect of the invention, the invention may be simplified by pre-caching only a single I-frame. When the user changes the channel, the single I-frame can then be transmitted to the set top box, and an IGMP join request can be transmitted upstream to locate the full program stream. This alternative exemplary embodiment affords the subscriber a quick preview of the channel without requiring significant memory, and it can also simplify the transfer of picture content from the buffer in the customer premise equipment to the set top box.
For another exemplary aspect of the invention, the invention can reduce channel change time by using an adaptive buffer length in the set top box. The buffer can implemented in a hardware and/or software configuration and serves to delay all packets arriving at the set top box by some length of time chosen by the set top box manufacturer. The buffer can monitor the current buffer fill capacity and increase or decrease the buffer length size in response to that capacity.
Referring now to the drawings, in which like numerals represent like elements, aspects of the exemplary embodiments will be described in connection with the drawing set.
Certain steps in the process described below must naturally precede others for the invention to function as described. However, the invention is not limited to the order of the steps described if such order or sequence does not alter the functionality of the invention. That is, it is recognized that some steps may be performed before or after or in parallel with other steps without departing from the scope and spirit of the invention.
In Decision Step 430, the CPE 260 determines if the subscriber is “surfing up,” or most likely to change to the television channel immediately higher than the tuned channel based on the pattern matching recommendation in Routine 420. If the subscriber is “surfing up,” the CPE 260 will begin requesting the next up channel stream in Step 440 by generating its own IGMP messages to join the multicast group corresponding to the next up channel stream. However, if the user is not “surfing up,” the CPE 260 will then check if the subscriber is “surfing down” in Decision Step 450 based on the pattern matching recommendation in Routine 420.
If the subscriber is “surfing down,” the next likely channel would be the television channel immediately preceding the tuned channel. If the subscriber is “surfing down,” the CPE 260 will begin requesting the next down channel stream in Step 460 by generating its own IGMP messages to join the multicast group corresponding to the next down channel stream. However, if the user is not “surfing down,” the CPE 260 will then check if the subscriber is alternating channels in Decision Step 470.
Finally, if the subscriber is alternating channels as determined in Decision Step 470, the CPE 260 will begin requesting the alternate channel stream in Step 475 by generating its own IGMP messages to join the multicast group corresponding to the alternate channel stream. However, if the user is not alternating channels in Step 470, then the channel change requests do no match a particular channel change pattern. Therefore, the CPE 260 will continue to monitor the channel changing on the STB 270 and return to Routine 420.
If the CPE 260 begins to request any of the three next channel streams in Steps 440, 460, or 475, the CPE 260 will parse out the most recent I-frame from the next channel stream in Step 480. In Step 485, the CPE 260 will store the next channel stream in a buffer with the most recent I-frame positioned at the beginning of the buffer. Therefore, as each new I-frame for the next channel stream is received by the CPE 260, the CPE 260 erases the current buffer contents and begins to store the subsequent stream traffic with the new I-frame positioned at the beginning of the buffer.
In Decision Step 490, the CPE 260 will monitor the channel change request on the STB 270 and determine whether the current channel change request corresponds to the next channel stream that is stored in the buffer. If the current channel change request does not correspond to the next channel stream that is stored in the buffer, the CPE 260 will continue to monitor the channel change requests on the STB 270 and return to Routine 420. However, in Step 495, if the current channel change request does correspond to the next channel stream that is stored in the buffer, the CPE 260 will transmit the next channel stream from the buffer to the STB 270.
Another basic element of the CPE 260 is the IP Stream Control 620 block, which implements IP stream control. The IP Stream Control 620 block generally has three major functions. First, the IP Stream Control 620 block diverts any cached streams to the appropriate cache. Second, IP Stream Control 620 block retrieves information from a cache and forwards it to the STB 270 when the user tunes to a cached channel. Finally, the IP Stream Control 620 block stream control function ceases stream diversion for the active stream once that stream's cache is exhausted.
Another basic element of the CPE 260 is an MPEG parser 630. The MPEG parser 630 block examines the contents of each stream to locate the I-frames within the stream. When an I-frame arrives, it begins replenishing the cache starting with the new I-frame. After the new I-frame is completely received, the previous I-frame is discarded.
Another basic element of the CPE 260 includes the caches or buffers. For standard quality IP video using MPEG-2 encoding, each cached stream requires about 1 MByte of memory.
While the current channel stream is transmitted through the tuned channel buffer 720 to the STB 270, the next channel buffer 740 will receive the video signal 730 corresponding to the next channel stream as determined in Steps 440, 460, or 475. As discussed in reference to Step 480 and Step 485, the CPE 260 will parse the data signal 430 to receive the most recent I-frame and cache the next channel stream in the next channel buffer 740 with the most recent I-frame queued at the front of the next channel buffer 740. The next channel buffer 740 will continue to receive the video signal 730 corresponding to the next channel as determined in Steps 440, 460, or 475.
However, when the subscriber changes the channel in Step 495 on the STB 270, the CPE 260 will switch from the tuned channel buffer 720 at switch position 750A to the next channel buffer 740 at switch position 750B. The next channel buffer 740 will begin to transmit its channel stream with the I-frame at the front of the buffer 740 to the STB 270. The next channel buffer 740 will now be identified as the current channel buffer as it transmits the video signal 730 that corresponds to the current channel stream. Furthermore, the tuned channel buffer 720 will now be identified as the next channel buffer as it receives the video signal 610 that corresponds to the next channel stream as determined in Steps 440, 460, or 475.
While the current channel stream is transmitted through switch position 850A to the STB 270, the I-frame buffer 840 will receive the video signal 830 corresponding to the next channel stream as determined in Steps 440, 460, or 475. As discussed in reference to Step 480 and Step 485, the CPE 260 will parse the video signal 430 to separate the most recent I-frame and cache only a single I-frame in the I-frame buffer 840. The I-frame buffer 840 will continue to receive the video signal 830 corresponding to the next channel as determined in Steps 440, 460, or 475. As the most recent I-frame corresponding to the next channel arrives in the video signal 830, the previous I-frame will be discarded from the I-frame buffer 840 and replaced with the new I-frame.
However, when the subscriber changes the channel in Step 495 on the STB 270, the CPE 260 will momentarily switch from the Video Signal 810 at switch position 850A to the I-frame buffer 840 at switch position 850B. The I-frame buffer 840 will immediately transmit the most recent I-frame to the STB 270. Then, the CPE 260 will switch back to switch position 850A from the I-frame buffer 840 at switch position 850B. As soon as the subscriber changes the channel, an IGMP join message 285 is transmitted to the network 200 to locate the full program stream that corresponds to the new requested channel. When located, the video signal 810 that corresponds to the current channel will immediately start being transmitted to the STB 270. As soon as a new I-frame is received, the moving video will be displayed.
The alternative exemplary embodiment illustrated in
One of ordinary skill in the art, recognizes that the aspects and functions of the CPE 260 described above and represented in
Referring now to
When a subscriber changes channels, incoming data 910A begins filling up the buffer 900A with frames that correspond to the channel currently requested by the subscriber. The incoming data 910A is shifted to the right 970A in the buffer 900A as it begins to fill up. Typically, when the buffer 900A reaches approximately a fifty percent (50%) capacity, the data is transmitted to the STB MPEG decoder 990.
Depending on the amount of jitter in the incoming data 910A, the variable length buffer 900A can adjust its length to consistently keep the buffer 900A around halfway full. If the variable length buffer 900A averages around a fifty percent (50%) capacity, data will continuously be shifted to the right direction 970A and transmitted to the STB MPEG decoder 990. However, if the variable length buffer 900A is nearly full most of the time, it will most likely be necessary to move the switch 920A of the buffer to the maximum buffer length 930A to prevent the buffer from overfilling and potentially losing portions of the incoming data 910A. In the alternative, if the variable length buffer 900A is nearly empty much of the time, it is too long and it will most likely be preferable to move the switch 920A of the buffer to the minimum buffer length 940A to prevent the buffer from consistently dropping below the fifty-percent (50%) capacity threshold and causing excessive delays in channel change time. Finally, switch positions 950A and 960A can be provided for intermediate buffer lengths if the extremes of the maximum buffer length 930A or minimum buffer length 940A are not required to maintain the buffer capacity around the 50% threshold.
To express the situation more rigorously, if the system is introducing a lot of jitter, a longer buffer may be needed to remove the jitter before preventing the data to the decoder. The amount of jitter being introduced by the system may be monitored by looking at how full buffer 900A gets. If buffer 900A regularly fills to a high percentage, then it is too small, and can be lengthened by moving switch 920A in a counterclockwise direction as seen in
The switch 920A cannot be moved while receiving a channel, so it must be moved upon a channel change. Thus, the buffer fill is monitored over a significant length of time, and adjustments to the buffer length are made when the subscriber changes the channel.
Many other modifications, features and embodiments of the present invention will become evident to those of skill in the art. It should be appreciated, therefore, that many aspects of the present invention were described above by way of example only and are not intended as required or essential elements of the invention unless explicitly stated otherwise. Accordingly, it should be understood that the foregoing relates only to certain embodiments of the invention and that numerous changes may be made therein without departing from the spirit and scope of the invention as defined by the following claims. It should also be understood that the invention is not restricted to the illustrated embodiments and that various modifications can be made within the scope of the following claims.
The present application claims priority under 35 U.S.C. § 119(e) to provisional patent application entitled, “MINIMIZING CHANNEL CHANGE TIME FOR IP VIDEO,” filed on Oct. 4, 2004, and assigned U.S. Application Ser. No. 60/615,856; the entire contents of which are hereby incorporated by reference.
Number | Date | Country | |
---|---|---|---|
60615856 | Oct 2004 | US |