|Publication number||WO2009080117 A1|
|Publication date||2 Jul 2009|
|Filing date||21 Dec 2007|
|Priority date||21 Dec 2007|
|Publication number||PCT/2007/64452, PCT/EP/2007/064452, PCT/EP/2007/64452, PCT/EP/7/064452, PCT/EP/7/64452, PCT/EP2007/064452, PCT/EP2007/64452, PCT/EP2007064452, PCT/EP200764452, PCT/EP7/064452, PCT/EP7/64452, PCT/EP7064452, PCT/EP764452, WO 2009/080117 A1, WO 2009080117 A1, WO 2009080117A1, WO-A1-2009080117, WO2009/080117A1, WO2009080117 A1, WO2009080117A1|
|Inventors||Andreas Ljunggren, Robert Skog|
|Applicant||Telefonaktiebolaget Lm Ericsson (Publ)|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (3), Classifications (26), Legal Events (6)|
|External Links: Patentscope, Espacenet|
Method and Apparatus for Distributing Media over a Communications Network
The invention relates to the field of distributing media over a communications network, and in particular to distribution of IPTV using a Peer to Peer communications network.
TV services broadcast over an IP network are referred to as IPTV. IPTV is typically broadcast using a broadband access network, in which channels are transmitted over a broadband network from a super head-end down to an end-user's set top box (STB).
Linear content delivery, in which all channels in a subscription are simultaneously delivered to a user's set top box (STB), is not suitable for IPTV, as IPTV has limited bandwidth available over a broadband connection. A typical ADSL broadband connection provides a capacity of between 3 and 8 Mbps, and ADSL2 promises to deliver up to 25 Mbps downstream, whereas VDSL can provide a capacity of greater than 30 Mbps. Standard quality MPEG 2 IPTV content requires 2 Mbps per channel, and HDTV will require around 8-10 Mbps per channel. The MPEG 4 standard will approximately halve the bandwidth required to deliver IPTV content with the same quality. Nevertheless, the available bandwidth is a scarce resource, and IPTV solutions must limit the number of channels that can be delivered simultaneously.
Figure 1 illustrates a known way of distributing media in which an IPTV media stream originates in a service provider network 1 , is passed to a core network 2, is further passed into a metro network 3, and finally is sent via access networks 4 to each home network 5 that contains an STB that wishes to receive the media stream. Networks can quickly become saturated due to heavy traffic loads. In order to mitigate this problem, content can be multicast to reduce bandwidth demands for broadcast TV distribution. Furthermore, Video on Demand (VoD) services can be handled by VoD cache servers located close to the end-user. However, such caches require additional investment, and many routers would need to be replaced, as existing routers may not support IPTV multicasts. It is known to distribute an IPTV service using a Peer to Peer (P2P) network, as illustrated in Figure 2. Each STB is a peer in the network. An IPTV media stream can be delivered to a STB from another STB, from a media injector from which the stream originates, or from any other peer in the network.
The IPTV P2P requires a media injector in order to introduce the IPTV media stream into the network, although the media injector is not a true peer in the network in the sense that it only sends data but does not receive data from the peers. This is illustrated in Figure 3, which is a schematic representation of a simple IPTV P2P network 1. The network 1 includes an IPTV back-end 6 and two STBs STB1 and STB2. Each STB includes a P2P network interface 12, 13 to which is connected a video decoder 9, 11. In this example, STB2 receives the IPTV media stream from both STB1 and the IPTV back-end 6, which injects either streaming content or content from a database 7 using a P2P media injector 8. Note that other network nodes (in addition to nodes in STBs) may be peers in the network.
Note that the term "IPTV media stream" is used herein to refer to any kind of data having real time requirements, and includes Video on Demand, user generated TV content, interactive TV, interactive or co-operative games, or audio media. The media stream is to be delivered to the user such that the user can observe the media content at a constant rate without interruptions or delays. There is some latency in the P2P network, caused by buffers in each STB and the time it takes to establish communication between peers.
Compressed video media generally consists of a series of frames containing the information to be displayed on a user's screen. Each frame can be considered as a "picture" displayed on the screen. In most video compression formats, such as in ITU- T VCEG or ISO/IEC MPEG video standards, only the differences between successive pictures are usually encoded. For example, in a scene in which a person walks past a stationary background, only the moving portions of the picture are represented in each frame (either using motion compensation or as image data or as a combination of the two, depending on which representation requires fewer bits to adequately represent the picture). The parts of the scene that are not changing do not need to be sent repeatedly. For example, MPEG media streams contain different frames, such as l-frames("intra" frames), P-frames ("predicted" frames) and B-frames ("bi-predictive" or "bi-directional" frames), l-frames do not depend on data contained in the preceding or following frames, as they contain a complete picture. P-frames provide more compression than l-frames because they utilize data contained in the previous l-frame or P-frame. When generating a P-frame, the preceding frame is reconstructed and altered according to incremental extrapolation information. B-frames are similar to P-frames, except that B- frames interpolate data contained in the following frame as well as the preceding frame. As a result, B-frames usually provide more compression than P-frames. Typically, every 15th frame or so is an l-frame. P-frames and B-frames might follow an l-frame as follows: IBBPBBPBBPBB(I). The order and number of frames in the sequence can be varied.
The media stream includes payload data and metadata. The payload data is the media data itself, and is decoded and shown by the receiver. Payload data typically comprises frames as described above. The metadata includes all other data in the media stream. This may be, for example, data describing the payload data, or information establishing signalling between two peers. In order to facilitate handling of the media stream, the media stream is sent in "fragments". Fragments are discrete portions of the media stream containing both the payload data and the metadata. It will be appreciated that a frame and a fragment do not necessarily correspond to each other directly: a single frame may be encoded into many fragments or (in some cases) a single fragment may contain more than one frame.
As previously explained, a STB may fetch data fragments (containing frames and metadata) both from other STBs in the network and from one or more Media Injectors. If fragments are fetched from another STB, and the user of that other STB changes channel, then another source from which fragments can be fetched must be found. However, there is a danger of a break in transmission in the period between the other STB changing channel and the new source being identified.
This may be understood with reference to Figure 3. Suppose STB1 is subscribed to channel X, and fetches fragments containing frames for this channel from the media injector STBO. STB2 is also subscribed to channel X, and fetches fragments from STB1. If the user of STB1 changes channel to channel Y, it is no longer possible for STB2 to fetch the fragments for channel X from STB1 , and another source must be found - e.g. STBO. However, STB2 will have had no warning of the change in channel by STB1 and thus, until the search for a new provider for frames is complete, STB2 will have no source of fragments containing frames of channel X.
It would therefore be desirable to provide some form of continuity for other peers when the user of a peer changes channels.
The STB having the necessary resources will continue to fetch fragments containing frames for a channel even if the end-user has selected another channel. This gives a more calm P2P network if end-users change channel often. If STB 1 has enough memory and CPU then the STB 1 could continue to fetch fragments containing frames for channel X (i.e. still be part of P2P for channel X for a grace time) but these frames will not be sent to STB 1 's video decoder. Only channel Y frames will do that.
In accordance with a first aspect of the present invention, there is provided a peer node for use in a P2P network, preferably a P2P IPTV network. The peer node comprises a receiver arranged to receive first data fragments containing media frames associated with a first channel, a buffer operatively connected to the receiver and arranged to store the first data fragments, a transmitter operatively connected to the first buffer and arranged to send the first data fragments to another peer node in the network, and a controller operatively connected to the receiver, transmitter and buffer. The controller is arranged to receive user instructions to change channel and, in response, to cause the receiver to receive second data fragments containing media frames associated with a second channel. After the controller has received the user instructions to change channel, the receiver continues to receive the first data fragments, the buffer continues to store the first data fragments, and the transmitter continues to transmit the first data fragments to the other peer node.
The peer node may comprise a second buffer operatively connected to the receiver and controller and arranged to store the second data fragments, although it is also possible that the second data fragments are stored in the first buffer, interleaved with the first data fragments, if necessary. Before the user instructions to change channel have been received, the frames contained in the first data fragments are preferably sent to a media decoder associated with the peer node. After the user instructions to change channel have been received, the frames contained in the first data fragments are preferably not sent to the media decoder, but the frames contained in the second data fragments may be sent in their place.
Preferably the peer node only receives, stores and sends the first data fragments for a predetermined period of time after the user instructions to change channel have been received. The peer node may further only receive, store and send the first data fragments if they are required by another node.
In accordance with a second aspect of the present invention there is provided a method for delivering media in a P2P network, preferably a P2P IPTV network. The method comprises receiving first data fragments containing media frames associated with a first channel at a peer node in the network. The first data fragments are stored at the peer node, and sent from the peer node to another peer node in the network. After user instructions are received at the peer node to change channel, second data fragments containing media frames associated with a second channel are received at the peer node, but the peer node continues to receive, store and send the first data fragments to the other peer node even after the user instructions to change channel have been received.
According to a third aspect of the present invention, there is provided apparatus for use in a network, the apparatus comprising means for performing a method according to the second aspect of the present invention.
According to a fourth aspect of the present invention, there is provided a program for controlling an apparatus to perform a method according to the second aspect of the present invention.
According to a fifth aspect of the present invention there is provided a program which, when loaded into an apparatus, causes the apparatus to become an apparatus according to the third aspect of the present invention. The program may be carried on a carrier medium, which may be a storage medium or a transmission medium.
According to an sixth aspect of the present invention, there is provided an apparatus programmed by a program according to the fourth or fifth aspect of the present invention.
According to a seventh aspect of the present invention, there is provided a storage medium containing a program according to the fourth or fifth aspect of the present invention.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 illustrates schematically in a block diagram an architecture for the distribution of IPTV;
Figure 2 illustrates schematically in a block diagram an architecture for the distribution of I PTV in a peer to peer network;
Figure 3 illustrates schematically in a block diagram a media injector and two Set Top
Figure 4 illustrates schematically in a block diagram the signalling required to initiate an
IPTV broadcast with a first Set Top Box; Figure 5 illustrates schematically in a block diagram the signalling required to initiate an
IPTV broadcast with a further Set Top Box;
Figure 6 illustrates schematically in a block diagram keep alive messages sent by a Set
Figure 7 is a schematic illustration of a buffer at a moment in time; Figure 8 is a schematic illustration of the buffer of Figure 7 at a later moment in time, after the user of the STB has switched subscription to another channel;
Figure 9 is a schematic block diagram of a STB; and
Figure 10 is a flow diagram illustrating the actions taken by a STB following a channel switch.
The following description sets forth specific details, such as particular embodiments, procedures, techniques, etc. for purposes of explanation and not limitation. In some instances, detailed descriptions of well known methods, interfaces, circuits, and devices are omitted so as not obscure the description with unnecessary detail. Moreover, individual blocks are shown in some of the drawings. It will be appreciated that the functions of those blocks may be implemented using individual hardware circuits, using software programs and data, in conjunction with a suitably programmed digital microprocessor or general purpose computer, using application specific integrated circuitry, and/or using one or more digital signal processors.
Figure 4 illustrates typical signalling required to initiate an IPTV broadcast with a first STB STB1. The video decoder 9 in STB1 receives an instruction from a user to start channel X. This is relayed to the P2P network interface 12 in STB1 , which sends a request to a STB manager 10 in the IPTV back-end to join channel X. The STB
Manager 10 returns a peer list to the network interface 12 in STB1 , but no IPTV media stream. The peer list includes the P2P media injector 8. Since the media injector can be considered as a peer in the network it is hereinafter referred to as STBO. The network interface 12 in STB1 then sends a request to join channel X to STBO. STBO receives an IPTV media stream from an IPTV media stream source (for example from the database 7 shown in Figure 3), and sends a peer list and an IPTV media stream comprising fragments of frames to the network interface 12 of STB1. The network interface 12 sends the frames to the video decoder 9 in STB1 , which can then show the IPTV media stream to the user.
Figure 5 illustrates typical signalling required to initiate an IPTV broadcast with a further STB STB2. It is assumed that STB1 is already receiving an IPTV media stream from STBO. When the user of STB2 wishes to receive channel X, she sends an instruction to logic within STB2, which is relayed to the network interface 13 in STB2. The network interface 13 in STB2 sends a request join channel X to the STB manager 10. The STB manager 10 returns a peer list but no payload to STB2. The peer list includes STBO and STB1 , as these are both possible sources for the IPTV media stream. The network interface 13 in STB2 then sends a request to each of STBO and STB1 to join channel X. STBO and STB1 each send a peer list and IPTV data stream to the network interface 13 in STB2, which passes the frames of the IPTV media stream to the video decoder. It is preferred that all peers in the P2P network send each other "keep alive" messages, as illustrated in Figure 6, to ensure that each STB is included in the list of peers and can both send and receive IPTV media streams.
Returning now to the situation shown in Figure 5, once the broadcast has been initiated, STB2 is subscribed to channel X and receives frames both from STBO and STB1. STB1 receives the frames for channel X from STBO, and passes these frames both to its own video decoder 9 and to the network interface 13 of STB2. In order to achieve this, the frames are stored in a buffer at STB1.
Figure 7 is a schematic illustration of a buffer 14 used by STB1 in this situation. Figure 7 represents a snapshot of the buffer 14 at a single moment in time. For simplicity, the buffer is described as though it contains complete frames: it will be appreciated that, in practice, the buffer contains data fragments as described above, where (usually) a single frame is encoded in more than one fragment, and where the fragments include metadata as well as the payload data. Where the following description refers to "frames" being passed from one entity to another, it will be appreciated that such frames are encoded as data fragments, and it is actually the fragments which are passed (although generally, frames without P2P metadata are generally passed to a local video decoder). As shown in Figure 7, frames 15-21 are currently stored in the buffer, and the remaining frames are currently empty. In this example, requests have been made by another STB (e.g. STB2) for frames from channel X, and frames 16 and 19 are in the process of being passed to STB2. In addition, frame 17 is being passed to the video decoder 9 included in STB1 for display. The most recent frames (starting with frame 21 ) are fetched from STBO (in the example shown) although it will be appreciated that they may be fetched from any other suitable peer in the network, such as another STB. These recent frames are written into the buffer to ensure that there will always be sufficient frames to suit the requirements of the video decoder 9.
If the user of STB1 decides to switch from channel X to another channel, STB1 continues to fetch the channel X frames from its source (e.g. STBO) for a predetermined period of time, even though these frames are no longer being passed to the local video decoder 9. This can be seen with reference to Figure 8, which shows another snapshot of the buffer 14 of STB1 , just after the user of STB1 has switched to channel Y. STB1 finds a source, and starts to fetch the frames, for channel Y. The frames for channel Y may either be stored in the same buffer 14, interleaved with the channel X frames, or stored in a different buffer (not shown). The STB1 also continues to fetch frames for channel X and store them in the existing buffer 14, from where they can be fetched by STB2, where the user is still watching channel X. Figure 8 illustrates frames 18 and 20 being passed to STB2, while frame 23 is fetched from STBO.
Thus STB2 continues to fetch frames for channel X from STB1 for a predetermined period of time, while it searches for another source of data for channel X.
Figure 9 illustrates a set-top box 31 , which may be any of the STBs shown in the other figures. In addition to the functions normally found in a set-top box known in the art, the set-top box 31 comprises first and second buffers 33, 34 for storing frames received from media injectors and/or other set-top boxes or other peers, as discussed above. The set-top box 31 also comprises a transmitter unit 35 and a receiver unit 37, connected to the buffers 33, for communicating with the other set-top boxes in the network. The set-top box 31 also comprises a control unit for controlling the functions of the transmitter unit 35, the receiver unit 37 and the buffers 33, 34. In particular, the control unit is able to ensure that, if the STB is subscribed to channel X, the frames are received by the receiver 37 and stored in a first buffer 33, from which they are passed to a video decoder (not shown) for display, and/or sent to other subscribing peers in the network via the transmitted 35. If the user switches channel to channel Y, the controller 39 ensures that frames of channel Y are stored in the second buffer 34, but that frames of channel X are still received for a period of time, and stored in the first buffer 33.
The receiver may be implemented as a software module in a television set, which will then be able to receive IPTV from the network and display it to the user. Alternatively, the set-top box is implemented as a software module, for example in a personal computer or other terminal having data processing capabilities. The stream can then be forwarded from the set-top box to any display unit, including a television set, or the computer's own display for display to the user.
Figure 10 is a flow chart illustrating the actions taken by STB1 in changing subscription from channel X to channel Y, depending on whether another STB (e.g. STB2) is receiving channel X claims from STB1.
S1 : Channel X frames are received by STB1. S2: Channel X frames are stored in a buffer.
S3: STB1 receives instructions from viewer to switch to channel Y.
S4: Channel Y frames received and stored in the buffer.
S5: If no other peer in the network is currently fetching channel X frames from STB1 , then STB1 can stop receiving channel X frames.
S6: If another peer (e.g. STB2) is currently fetching channel X frames from STB1 , then STB1 continues to fetch channel X frames and store them in the buffer.
It will be appreciated that variations from the above described embodiments may still fall within the scope of the claims. For example, the set top boxes have all been described as including "video decoders" but it will be appreciated that decoding for any form of media may be envisaged. Furthermore, some of the embodiments described include the use of a first buffer to store frames of channel X, and a second buffer to store frames of channel Y. It is preferred that a single buffer is used, with channel X frames interleaved with channel Y frames, in which channel Y frames are sent to the local video decoder, while channel X frames are sent to another peer in the network.
Any number of buffers may be used to put the invention into effect. In practice, as previously discussed, fragments are stored in the buffer rather than complete frames, and the metadata of each fragment will identify the channel to which that fragment belongs. It is therefore not a problem for a single buffer to contain a mixture of fragments corresponding to different channels.
Although various embodiments have been shown and described in detail, the claims are not limited to any particular embodiment or example. None of the above description should be read as implying that any particular element, step, or function is essential such that it must be included in the claims' scope. The scope of protection is defined by the claims.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|WO2007095309A2 *||12 Feb 2007||23 Aug 2007||Tvu Networks Corporation||Methods, apparatus, and systems for providing media content over a communications network|
|WO2007123283A1 *||25 Apr 2006||1 Nov 2007||Celrun Co., Ltd.||Method for the delivery of multimedia file compressed by differential pulse code modulation through p2p data exchange|
|US20040255336 *||29 Jan 2004||16 Dec 2004||Gotuit Video, Inc.||Methods and apparatus for simultaneous program viewing|
|International Classification||H04N7/173, H04L29/06, H04L29/08|
|Cooperative Classification||H04L65/605, H04L65/4076, H04N21/4788, H04N21/4331, H04N21/6125, H04N7/17318, H04N21/84, H04N21/47202, H04N21/4383, H04L67/1078, H04L67/1072, H04L67/104|
|European Classification||H04N21/4788, H04N21/472D, H04N21/61D3, H04N21/438T, H04N21/433C, H04N21/84, H04L29/08N9P3C, H04L29/08N9P, H04L29/06M4S2, H04L29/06M6C6, H04N7/173B2|
|26 Aug 2009||121||Ep: the epo has been informed by wipo that ep was designated in this application|
Ref document number: 07858063
Country of ref document: EP
Kind code of ref document: A1
|15 Oct 2009||DPE1||Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)|
|19 May 2010||WWE||Wipo information: entry into national phase|
Ref document number: 1008306.1
Country of ref document: GB
|19 May 2010||ENP||Entry into the national phase in:|
Ref document number: 1008306
Country of ref document: GB
Kind code of ref document: A
Free format text: PCT FILING DATE = 20071221
|22 Jun 2010||NENP||Non-entry into the national phase in:|
Ref country code: DE
|2 Mar 2011||122||Ep: pct app. not ent. europ. phase|
Ref document number: 07858063
Country of ref document: EP
Kind code of ref document: A1