WO2009103351A1 - Method and apparatus for obtaining media over a communications network - Google Patents

Method and apparatus for obtaining media over a communications network Download PDF

Info

Publication number
WO2009103351A1
WO2009103351A1 PCT/EP2008/054590 EP2008054590W WO2009103351A1 WO 2009103351 A1 WO2009103351 A1 WO 2009103351A1 EP 2008054590 W EP2008054590 W EP 2008054590W WO 2009103351 A1 WO2009103351 A1 WO 2009103351A1
Authority
WO
WIPO (PCT)
Prior art keywords
fragment
fragments
network
data
buffer
Prior art date
Application number
PCT/EP2008/054590
Other languages
French (fr)
Inventor
Andreas Ljunggren
Robert Skog
Original Assignee
Telefonaktiebolaget Lm Ericsson (Publ)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GBGB0804192.3A external-priority patent/GB0804192D0/en
Application filed by Telefonaktiebolaget Lm Ericsson (Publ) filed Critical Telefonaktiebolaget Lm Ericsson (Publ)
Priority to GB1009929A priority Critical patent/GB2471190A/en
Publication of WO2009103351A1 publication Critical patent/WO2009103351A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4305Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/458Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4621Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/632Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing using a connection between clients on a wide area network, e.g. setting up a peer-to-peer communication via Internet for retrieving video segments from the hard-disk of other client devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/64322IP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments

Definitions

  • the invention relates to the field of obtaining media over a communications network.
  • IPTV 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).
  • STB set top box
  • 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.
  • FIG. 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.
  • content can be multicast to reduce bandwidth demands for broadcast TV distribution.
  • Video on Demand (VoD) services can be handled by VoD cache servers located close to the end-user.
  • such caches require additional investment, and many routers would need to be replaced, as existing routers may not support IPTV multicasts.
  • IPTV IPTV service
  • P2P Peer-to-Peer
  • 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.
  • Figure 3 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.
  • 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.
  • other network nodes may be peers in the network.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • B-frames usually provide more compression than P-frames.
  • 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.
  • 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.
  • a P2P node e.g. STB2
  • a P2P node sends requests for media fragments to nearby peers and/or media injectors.
  • the fragments do not need to be requested individually; typically, of the order of ten fragments are sent in response to each request.
  • requests to nearby peers for fragments should not be made more often than necessary to avoid overloading the network with requests. If such requests are too frequent, both the P2P node(s) from which fragments are requested, and the P2P system itself, may be flooded.
  • the speed at which fragments are inserted into the P2P network depends on the coding rate. For example, fragments containing HDTV content are inserted at a much higher rate than those generated by a low-resolution webcam.
  • the media injector 8 inserts fragments containing webcam data into the network. If the P2P network interface 13 of STB2 requests frames at a rate suitable for HDTV, the "webcam" media injector 8 will be overloaded with requests. This can be especially problematic for media with a variable bit-rate, such as a web-cam operating at 0.1 fps. Furthermore, since the STB2 is requesting frames at a much higher rate than can be supplied by the media injector 8, its own resources will also be wasted.
  • the invention involves analysing tagged time stamps in the fragments, and requesting fragments on the basis of this analysis and a strategy to maintain fragments in a buffer such that the fragments provide at least a predetermined play-out time of media. This information is used to adjust timing of sending requests for fragments.
  • a node for use in a non-linear network delivering streaming media.
  • the node has a receiver arranged to receive data fragments from the network, each data fragment tagged with a timestamp providing a time interval relative to an epoch time reference point.
  • a buffer is also provided for storing the received data fragments.
  • the node also has a processor configured to calculate, on the basis of a timestamp of a data fragment stored in the buffer and a further criterion, a schedule for requesting further fragments.
  • a transmitter is provided for sending fragment requests at times determined by the processor as a result of the calculation. In this way, fragments are not requested unnecessarily, which reduces the amount of network traffic and reduces the processing requirements of both the node and nodes that receive the requests.
  • the further criterion is a time of streaming media that is required to fill the buffer.
  • This may be considered as a buffer filling strategy, and would be, for example, a strategy to fill the buffer with fragments providing 1 second of media.
  • the calculation is optionally based on the difference between a timestamp of a topmost data fragment stored in the buffer and the time the buffer filling strategy.
  • Topmost in this context is used to refer to the latest buffer stored in the node's buffer. Fragments are typically sequentially numbered, but they can be received out of order. The topmost fragment in the buffer is therefore not necessarily the one with the highest sequence number. However, it is possible in an optional embodiment to use the fragments with the highest sequential number rather than the topmost fragment.
  • the time of streaming media required to fill the buffer is determined dynamically by the processor. This allows the processor to incrementally increase the required time and send requests for increasingly further ahead fragments, or to incrementally decrease the required time and send requests for increasingly sooner fragments. This prevents flooding the network with unnecessary requests and acknowledgments, and efficiently uses buffer space.
  • the processor is arranged to either sleep or devote processing resources to other processing tasks during times when fragments need not be requested. If the processor devotes resources to other tasks, this provides more efficient use of the processor. Of the processor sleeps, then it reduces power consumption and heat build-up in the node.
  • each data fragment is further tagged with a fragment counter, and the further criterion is the fragment counters of at least two data fragments.
  • the processor is then arranged to calculate an insertion rate at which the fragments have been inserted into the network, and the schedule for requesting fragments is determined on the basis of the calculated insertion rate.
  • the insertion rate is calculated as follows. The fragment counter of a second fragment is subtracted from the fragment counter of a first fragment to generate a fragment number difference between the first and second fragments. The timestamp of the second fragment is subtracted from the timestamp of the first fragment to generate an insertion time difference between the first and second fragments. The insertion rate is obtained by dividing the fragment number difference by the insertion time difference.
  • the fragment request rate is optionally the same as the calculated insertion rate.
  • an algorithm may be used to ensure that the fragment request rate is not constantly changing.
  • the insertion rate may be calculated periodically, and the fragment request rate adapted over time so that it approaches the calculated insertion rate asymptotically. This should ensure that a suitable average is obtained.
  • the initial fragment request rate should preferably be high.
  • the timestamp on any particular fragment is preferably the internal time at which the frame, of which all or a part is encoded into that fragment, was received by a media injector which inserted the fragments into the network.
  • the timestamp and fragment counter may preferably be included in a metadata portion of each fragment.
  • the receiver is arranged to receive data fragments from more than one source.
  • the node is disposed in a non-linear network such as a Peer-to-Peer network.
  • the invention can also be used in a store and forward or a top-down network.
  • the timestamp is optionally included in a metadata portion of each data fragment.
  • a node for use in a non-linear network delivering streaming media.
  • the node has a receiver arranged to receive data fragments from the network. Each data fragment is tagged with a timestamp providing a time interval relative to an epoch time reference point.
  • a buffer is provided at the node, arranged to store the received data fragments.
  • the node also has a processor, which is arranged to calculate, on the basis of a timestamp of the topmost data fragment stored in the buffer and a strategy to fill the buffer with sufficient fragments to provide a predetermined amount of time of streaming media, a time at which further fragments should be requested.
  • a transmitter is also provided for requesting fragments from another node in the network after the calculated time has elapsed.
  • a node for use in a nonlinear network delivering streaming media.
  • the node has a receiver arranged to receive data fragments from the network. Each data fragment is tagged with a fragment counter and a timestamp providing a time interval relative to an epoch time reference point.
  • a buffer at the node is arranged to store the received data fragments, and a processor is arranged to calculate, from the timestamps and fragment counters of at least two data fragments, an insertion rate at which the fragments have been inserted into the network.
  • a transmitter is provided for requesting fragments from another node in the network. Fragments are requested at a rate determined from the calculated insertion rate.
  • a network node receives data fragments from the network, each data fragment tagged with a timestamp providing a time interval relative to an epoch time reference point.
  • the received data fragments are stored in a buffer at the network node.
  • the method comprises calculating, on the basis of a timestamp of a data fragment stored in the buffer and a further criterion, a schedule for requesting further fragments, and then requesting fragments at times determined by the processor as a result of the calculation.
  • the further criterion is a time of streaming media that is required to fill the buffer
  • the method optionally comprises calculating the schedule for requesting further fragments based on the difference between a timestamp of a topmost data fragment stored in the buffer and the time of streaming media required to fill the buffer. This type of calculation prevents unnecessary sending of requests, which reduces bandwidth usage in the network and allows the processor to devote its resources to other tasks or enter a power-saving 'sleep' mode.
  • the method further comprising dynamically determining the time of streaming media required to fill the buffer.
  • the required time is either incrementally increased, leading to requests being sent for increasingly further ahead fragments, or incrementally decreased, leading to requests being sent for increasingly sooner fragments. This prevents flooding the network with unnecessary requests and acknowledgments, and efficiently uses buffer space.
  • each data fragment is further tagged with a fragment counter.
  • the further criterion includes the fragment counters of at least two data fragments.
  • method comprises calculating an insertion rate at which the fragments have been inserted into the network from which the requesting schedule is determined.
  • the insertion rate is optionally calculated by calculating a fragment number difference between a first and a second fragment by subtracting the fragment counter of the second fragment from the fragment counter of the first fragment.
  • An insertion time difference between the first and the second fragment is then calculated by subtracting the timestamp of the second fragment from the timestamp of the first fragment.
  • the insertion rate can then be obtained by dividing the fragment number difference by the insertion time difference.
  • the data fragments are optionally received from a plurality of sources.
  • fragments may be received from different peers in a peer-to-peer network.
  • a method of controlling delivery of streaming media in a non-linear network The streaming media is encoded into data fragments, and each data fragment contains all or part of a media frame.
  • a media injector connected to the network determines an internal time relative to an epoch time reference point, and tags each data fragment with a timestamp that corresponds to the internal time at the moment the data is encoded.
  • the data fragments are then transmitted from the media injector into the network.
  • a node connected to the network receives the data fragments, and stores them in a buffer.
  • the node calculates uses a timestamp of a data fragment stored in the buffer and a further criterion to calculate a schedule for requesting further fragments.
  • the node then requests fragments at times determined by the processor as a result of the calculation.
  • 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 IPTV 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
  • Figure 6 illustrates schematically in a block diagram keep alive messages sent by a Set
  • FIG. 7 is a schematic illustration of a buffer of a STB in a P2P IPTV network
  • Figure 8 illustrates schematically in a block diagram a STB according to an embodiment of the invention
  • Figure 9 is a flow diagram illustrating the receiving and requesting data fragments by a
  • Figure 10 is a flow diagram illustrating the tagging and transmission of data fragments by a media injector according to an embodiment of the invention.
  • Figure 1 1 is a flow diagram illustrating the receiving and re-ordering of data fragments by a STB according to an embodiment of the invention.
  • FIG. 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.
  • STB1 is already receiving an IPTV media stream from STBO.
  • 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.
  • 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.
  • each fragment is tagged with a timestamp and a counter.
  • the IPTV Back- end 6 includes a video encoder or database 7 and media injector 8.
  • Media frames are passed from the video encoder 7 to the media injector 8 for encoding into fragments and transmission into the network.
  • the media injector 8 runs an internal clock, and tags the metadata of each fragment with a timestamp taken from this internal clock.
  • the time can be relative to any arbitrary chosen time (e.g. midnight on 28 January 2006, or the time of receipt of the first frame) but is consistent for the media injector.
  • each fragment corresponding to a particular frame will be tagged with the same timestamp - i.e. the time that the particular frame was received by the media injector 8.
  • the fragments are also tagged with a counter to indicate the order in which they are encoded by the media injector.
  • the data fragments are then sent through the network and received by the network interface 13 of the STB2.
  • the transmission through the network may introduce jitter, bursting and packet drops, and the data fragments may take different times to arrive. They do not necessarily arrive at the STB2 at a homogeneous rate corresponding exactly to the rate at which they were transmitted by the media injector 8.
  • the STB2 saves all of the fragments into a buffer 70, e.g. a sliding window buffer or a ring buffer, as shown in
  • Figure 7 illustrates the buffer 70 at a snapshot in time when it contains fragments having counters 15-41.
  • fragment 17 is currently being exported to the video decoder 1 1 of STB2 for decoding, and fragment 40 (the last requested fragment) is being written in to the buffer, having been received from the media injector 8.
  • the metadata of fragment 17 contains both the counter value (Fragment ID P
  • the metadata of fragment 40 contains the counter value
  • Figure 8 illustrates a set-top box 31 , which may be any of the STBs shown in the other figures.
  • the set-top box 31 comprises a buffer 70 for storing fragments 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 buffer 70, for communicating with media injectors and the other set-top boxes in the network.
  • the set-top box 31 also comprises a control unit 39 for controlling the functions of the transmitter unit 35, the receiver unit 37 and the buffer 70.
  • the control unit 39 is able to identify time stamps and counters on data fragments stored in the buffer, and apply a buffer strategy (described below) to time requests for further fragments.
  • the set top box 31 has a strategy that it requires sufficient fragments in its buffer 70 to provide a predetermined time of media, say 1 second.
  • the set top box therefore maintains no more than 1 second of buffer.
  • five fragments are requested, and the fragments have timestamps (adjusted for the epoch time) of 0.1 , 0.3, 0.8, 0.9 and 1.5 seconds.
  • the control unit 39 determines from this that the set top box 31 can "sleep" for 0.5 seconds before needing to request additional fragments.
  • This mechanism is adaptive to the rate that fragments are sent, and so is particularly suited to fragments that are sent at a variable rate. Furthermore, it minimises the signalling required in sending requests for fragments, as requests are only sent to keep the buffer filled with fragments for the required amount of time.
  • control unit 39 need not send a request for further until necessary to maintain the buffer preserves the control unit's 39 processing resources. This can be advantageous in the event that the control unit has limited resources. It can also free up processing resources for other tasks, or to temporarily allow the control unit to 'sleep' until further fragments must be requested. Allowing the control unit to sleep reduces power consumption and consequently build-up of heat from the control unit.
  • the strategy need not necessarily require a fixed time of media fragments in the buffer, but might require variable time.
  • the strategy may initially require 0.5 seconds of buffer, and be increased in increments of 0.1 seconds for each running second. This ensures that no more than 10% of additional bandwidth is used.
  • a similar method can be used to back-off requests for further fragments.
  • a STB has a buffer size of 30 seconds, and a strategy to fill this buffer.
  • IPTV media data is dynamically streamed and only available to other peers in the network at a certain time
  • the STB may be sending requests for fragments that the other peers do not have yet. This will result in a flood of negative acknowledgements from peers that receive the requests.
  • the strategy may therefore be to reduce the required amount of time in increments of 0.1 seconds, until the STB receives no, or an acceptable number of, negative acknowledgments from peers.
  • Figure 9 is a flow diagram illustrating the sequence of events at a STP according to an embodiment of the invention. The following numbering corresponds with the numbering used in Figure 9.
  • the STB receives streaming media data fragments from other nodes in the network, each data fragment in the streaming media data being tagged with a time stamp providing a time interval relative to an epoch time reference point.
  • the STB stores the received media data fragments in a buffer.
  • a processor at the STB calculates a time at which to request further fragments using information about a buffer filling strategy and a time stamp of the topmost data fragment stored in the buffer.
  • the STB requests further fragments at the time calculated by the processor.
  • the STB2 saves all of the fragments into a buffer 70, e.g. a sliding window buffer or a ring buffer, as shown in Figure 7.
  • Figure 7 illustrates the buffer 70 at a snapshot in time when it contains fragments having counters 15-41.
  • fragment 17 is currently being exported to the video decoder 1 1 of STB2 for decoding, and fragment 40 (the last requested fragment) is being written in to the buffer, having been received from the media injector 8.
  • the metadata of fragment 17 contains both the counter value (Fragment ID P
  • the metadata of fragment 40 contains the counter value (Fragment ID Las t requested fragment) 40 and a tim ⁇ Stamp t
  • the STB2 calculates the rate at which fragments are being inserted into the network via: Fragment ID Fragment ID
  • this rate is used as a benchmark for the rate at which the STB2 requests subsequent fragments, whether from the media injector 8, or from other peers such as STB1.
  • this calculation uses the timestamp on the fragments, rather than the time at which they are received by the STB2. This ensures that the calculation determines the rate at which they were inserted into the network, rather than the rate at which they are received by the STB2 (which might be very different).
  • the initial fragment request rate should be high, to ensure that the all fragments are received to begin with, whatever the media type. For example, if a client STB requests fragments but does not know what type of media to expect, it must request fragments at a sufficiently high rate that it will receive all of them even if a media injector is inserting many fragments (e.g. HDTV media). If the media source turns out to be a low-resolution webcam, the fragment request rate can quickly be adjusted to take account of the low insertion rate. The insertion rate should then be re-calculated at periodic intervals to ensure that it remains correct.
  • Figure 8 illustrates an alternative set-top box 31 to that described in the first embodiment, which may be any of the STBs shown in the other figures.
  • the set-top box 31 comprises a buffer 70 for storing fragments 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 buffer 70, for communicating with media injectors and 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 buffer 70.
  • control unit is able to identify time stamps and counters on data fragments stored in the buffer, and determine the rate of insertion of fragments into the network by using the timestamps and counters of fragments in the buffer. Requests for further fragments can then be sent at an appropriate rate.
  • 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.
  • 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 carried out by the media injector 8 in the IPTV server 6 shown in Figure 7. The following numbering refers to the numbering of Figure 10.
  • S5 Media frames are received from the video encoder or database 7.
  • S6 The frames are encoded into data fragments.
  • Each data fragment is tagged with a timestamp, the timestamp reflecting the time, relative to a reference epoch time that a frame, of which at least a part is encoded into that fragment, was received by the media injector.
  • Figure 1 1 is a flow chart illustrating the actions carried out by the P2P network interface 13 in the STB2.
  • S10 Data fragments are received from the network.
  • S12 The rate at which fragments were inserted into the network is calculated from the timestamp and counters of two fragments.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

A method and node for use in a non-linear network delivering streaming media. The node has a receiver arranged to receive data fragments from the network, each data fragment tagged with a timestamp providing a time interval relative to an epoch time reference point. A buffer is also provided for storing the received data fragments. The node also has a processor configured to calculate, on the basis of a timestamp of a data fragment stored in the buffer and a further criterion, a schedule for requesting further fragments. A transmitter is provided for sending fragment requests at times determined by the processor as a result of the calculation. In this way, fragments are not requested unnecessarily, which reduces the amount of network traffic and reduces the processing requirements of both the node and nodes that receive the requests.

Description

Method and Apparatus for Obtaining Media over a Communications Network
TECHNICAL FIELD
The invention relates to the field of obtaining media over a communications network.
BACKGROUND
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. In some systems, 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.
In order to obtain data, a P2P node (e.g. STB2) sends requests for media fragments to nearby peers and/or media injectors. The fragments do not need to be requested individually; typically, of the order of ten fragments are sent in response to each request. However, requests to nearby peers for fragments should not be made more often than necessary to avoid overloading the network with requests. If such requests are too frequent, both the P2P node(s) from which fragments are requested, and the P2P system itself, may be flooded.
The speed at which fragments are inserted into the P2P network depends on the coding rate. For example, fragments containing HDTV content are inserted at a much higher rate than those generated by a low-resolution webcam. Returning to Figure 3, suppose the media injector 8 inserts fragments containing webcam data into the network. If the P2P network interface 13 of STB2 requests frames at a rate suitable for HDTV, the "webcam" media injector 8 will be overloaded with requests. This can be especially problematic for media with a variable bit-rate, such as a web-cam operating at 0.1 fps. Furthermore, since the STB2 is requesting frames at a much higher rate than can be supplied by the media injector 8, its own resources will also be wasted.
SUMMARY
The invention involves analysing tagged time stamps in the fragments, and requesting fragments on the basis of this analysis and a strategy to maintain fragments in a buffer such that the fragments provide at least a predetermined play-out time of media. This information is used to adjust timing of sending requests for fragments.
In accordance with a first aspect of the present invention, there is provided a node for use in a non-linear network delivering streaming media. The node has a receiver arranged to receive data fragments from the network, each data fragment tagged with a timestamp providing a time interval relative to an epoch time reference point. A buffer is also provided for storing the received data fragments. The node also has a processor configured to calculate, on the basis of a timestamp of a data fragment stored in the buffer and a further criterion, a schedule for requesting further fragments. A transmitter is provided for sending fragment requests at times determined by the processor as a result of the calculation. In this way, fragments are not requested unnecessarily, which reduces the amount of network traffic and reduces the processing requirements of both the node and nodes that receive the requests.
Optionally, the further criterion is a time of streaming media that is required to fill the buffer. This may be considered as a buffer filling strategy, and would be, for example, a strategy to fill the buffer with fragments providing 1 second of media. The calculation is optionally based on the difference between a timestamp of a topmost data fragment stored in the buffer and the time the buffer filling strategy. Topmost in this context is used to refer to the latest buffer stored in the node's buffer. Fragments are typically sequentially numbered, but they can be received out of order. The topmost fragment in the buffer is therefore not necessarily the one with the highest sequence number. However, it is possible in an optional embodiment to use the fragments with the highest sequential number rather than the topmost fragment.
As an option, the time of streaming media required to fill the buffer is determined dynamically by the processor. This allows the processor to incrementally increase the required time and send requests for increasingly further ahead fragments, or to incrementally decrease the required time and send requests for increasingly sooner fragments. This prevents flooding the network with unnecessary requests and acknowledgments, and efficiently uses buffer space. As an option, the processor is arranged to either sleep or devote processing resources to other processing tasks during times when fragments need not be requested. If the processor devotes resources to other tasks, this provides more efficient use of the processor. Of the processor sleeps, then it reduces power consumption and heat build-up in the node.
As an alternative option, each data fragment is further tagged with a fragment counter, and the further criterion is the fragment counters of at least two data fragments. The processor is then arranged to calculate an insertion rate at which the fragments have been inserted into the network, and the schedule for requesting fragments is determined on the basis of the calculated insertion rate. As an option, the insertion rate is calculated as follows. The fragment counter of a second fragment is subtracted from the fragment counter of a first fragment to generate a fragment number difference between the first and second fragments. The timestamp of the second fragment is subtracted from the timestamp of the first fragment to generate an insertion time difference between the first and second fragments. The insertion rate is obtained by dividing the fragment number difference by the insertion time difference.
The fragment request rate is optionally the same as the calculated insertion rate. Alternatively, an algorithm may be used to ensure that the fragment request rate is not constantly changing. The insertion rate may be calculated periodically, and the fragment request rate adapted over time so that it approaches the calculated insertion rate asymptotically. This should ensure that a suitable average is obtained. The initial fragment request rate should preferably be high.
It is likely that more than one fragment will be required for each frame of media content. The timestamp on any particular fragment is preferably the internal time at which the frame, of which all or a part is encoded into that fragment, was received by a media injector which inserted the fragments into the network. The timestamp and fragment counter may preferably be included in a metadata portion of each fragment.
Optionally, the receiver is arranged to receive data fragments from more than one source. This is useful where the node is disposed in a non-linear network such as a Peer-to-Peer network. However, the invention can also be used in a store and forward or a top-down network.
The timestamp is optionally included in a metadata portion of each data fragment.
According to a second aspect of the invention, there is provided a node for use in a non-linear network delivering streaming media. The node has a receiver arranged to receive data fragments from the network. Each data fragment is tagged with a timestamp providing a time interval relative to an epoch time reference point. A buffer is provided at the node, arranged to store the received data fragments. The node also has a processor, which is arranged to calculate, on the basis of a timestamp of the topmost data fragment stored in the buffer and a strategy to fill the buffer with sufficient fragments to provide a predetermined amount of time of streaming media, a time at which further fragments should be requested. A transmitter is also provided for requesting fragments from another node in the network after the calculated time has elapsed.
According to a third aspect of the invention, there is provided a node for use in a nonlinear network delivering streaming media. The node has a receiver arranged to receive data fragments from the network. Each data fragment is tagged with a fragment counter and a timestamp providing a time interval relative to an epoch time reference point. A buffer at the node is arranged to store the received data fragments, and a processor is arranged to calculate, from the timestamps and fragment counters of at least two data fragments, an insertion rate at which the fragments have been inserted into the network. A transmitter is provided for requesting fragments from another node in the network. Fragments are requested at a rate determined from the calculated insertion rate.
According to a fourth aspect of the invention, there is provided a method for obtaining media data in a non-linear network delivering streaming media. A network node receives data fragments from the network, each data fragment tagged with a timestamp providing a time interval relative to an epoch time reference point. The received data fragments are stored in a buffer at the network node. The method comprises calculating, on the basis of a timestamp of a data fragment stored in the buffer and a further criterion, a schedule for requesting further fragments, and then requesting fragments at times determined by the processor as a result of the calculation.
Optionally, the further criterion is a time of streaming media that is required to fill the buffer, in which case the method optionally comprises calculating the schedule for requesting further fragments based on the difference between a timestamp of a topmost data fragment stored in the buffer and the time of streaming media required to fill the buffer. This type of calculation prevents unnecessary sending of requests, which reduces bandwidth usage in the network and allows the processor to devote its resources to other tasks or enter a power-saving 'sleep' mode.
As an option, the method further comprising dynamically determining the time of streaming media required to fill the buffer. The required time is either incrementally increased, leading to requests being sent for increasingly further ahead fragments, or incrementally decreased, leading to requests being sent for increasingly sooner fragments. This prevents flooding the network with unnecessary requests and acknowledgments, and efficiently uses buffer space.
In an alternative option, each data fragment is further tagged with a fragment counter. The further criterion includes the fragment counters of at least two data fragments. IN this case, method comprises calculating an insertion rate at which the fragments have been inserted into the network from which the requesting schedule is determined. In this case, the insertion rate is optionally calculated by calculating a fragment number difference between a first and a second fragment by subtracting the fragment counter of the second fragment from the fragment counter of the first fragment. An insertion time difference between the first and the second fragment is then calculated by subtracting the timestamp of the second fragment from the timestamp of the first fragment. The insertion rate can then be obtained by dividing the fragment number difference by the insertion time difference.
The data fragments are optionally received from a plurality of sources. For example, fragments may be received from different peers in a peer-to-peer network.
According to a fifth aspect of the invention, there is provided a method of controlling delivery of streaming media in a non-linear network. The streaming media is encoded into data fragments, and each data fragment contains all or part of a media frame. A media injector connected to the network determines an internal time relative to an epoch time reference point, and tags each data fragment with a timestamp that corresponds to the internal time at the moment the data is encoded. The data fragments are then transmitted from the media injector into the network. A node connected to the network receives the data fragments, and stores them in a buffer. The node then calculates uses a timestamp of a data fragment stored in the buffer and a further criterion to calculate a schedule for requesting further fragments. The node then requests fragments at times determined by the processor as a result of the calculation.
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 IPTV in a peer-to-peer network;
Figure 3 illustrates schematically in a block diagram a media injector and two Set Top
Boxes;
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
Top Box; Figure 7 is a schematic illustration of a buffer of a STB in a P2P IPTV network;
Figure 8 illustrates schematically in a block diagram a STB according to an embodiment of the invention;
Figure 9 is a flow diagram illustrating the receiving and requesting data fragments by a
STB according to an embodiment of the invention. Figure 10 is a flow diagram illustrating the tagging and transmission of data fragments by a media injector according to an embodiment of the invention; and
Figure 1 1 is a flow diagram illustrating the receiving and re-ordering of data fragments by a STB according to an embodiment of the invention. DETAILED DESCRIPTION
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 the 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.
When data is inserted into the network, each fragment is tagged with a timestamp and a counter. This can be understood by returning to Figure 3, in which the IPTV Back- end 6 includes a video encoder or database 7 and media injector 8. Media frames are passed from the video encoder 7 to the media injector 8 for encoding into fragments and transmission into the network. The media injector 8 runs an internal clock, and tags the metadata of each fragment with a timestamp taken from this internal clock. The time can be relative to any arbitrary chosen time (e.g. midnight on 28 January 2006, or the time of receipt of the first frame) but is consistent for the media injector. The time used is the time (relative to the arbitrary chosen time) that the frame is received by the media injector. If the arbitrary chosen time is the time the first frame is received by the media injector, it can be seen that frames could be sent to the media injector at, for example, T=O, 2, 4, 7, 8, 12 and 13 ms.
It will be appreciated that there need not be a direct correlation between a single media frame and a single data fragment. It is frequently the case that one frame is encoded into many fragments. In this case, each fragment corresponding to a particular frame will be tagged with the same timestamp - i.e. the time that the particular frame was received by the media injector 8. The fragments are also tagged with a counter to indicate the order in which they are encoded by the media injector.
The data fragments are then sent through the network and received by the network interface 13 of the STB2. The transmission through the network may introduce jitter, bursting and packet drops, and the data fragments may take different times to arrive. They do not necessarily arrive at the STB2 at a homogeneous rate corresponding exactly to the rate at which they were transmitted by the media injector 8.
According to a first specific embodiment of the invention, the STB2 saves all of the fragments into a buffer 70, e.g. a sliding window buffer or a ring buffer, as shown in
Figure 7. Figure 7 illustrates the buffer 70 at a snapshot in time when it contains fragments having counters 15-41. At the time snapshot shown in Figure 7, fragment 17 is currently being exported to the video decoder 1 1 of STB2 for decoding, and fragment 40 (the last requested fragment) is being written in to the buffer, having been received from the media injector 8. The metadata of fragment 17 contains both the counter value (Fragment IDP|ay Out) 17, and a timestamp (relative to the arbitrary epoch time) having value tP|ay out. The metadata of fragment 40 contains the counter value
(Fragment I DLast requested fragment) 40 and a timestamp tLast requested fragment-
Figure 8 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 a buffer 70 for storing fragments 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 buffer 70, for communicating with media injectors and the other set-top boxes in the network. The set-top box 31 also comprises a control unit 39 for controlling the functions of the transmitter unit 35, the receiver unit 37 and the buffer 70. In particular, the control unit 39 is able to identify time stamps and counters on data fragments stored in the buffer, and apply a buffer strategy (described below) to time requests for further fragments.
The set top box 31 has a strategy that it requires sufficient fragments in its buffer 70 to provide a predetermined time of media, say 1 second. The set top box therefore maintains no more than 1 second of buffer. In this example, five fragments are requested, and the fragments have timestamps (adjusted for the epoch time) of 0.1 , 0.3, 0.8, 0.9 and 1.5 seconds. The control unit 39 determines from this that the set top box 31 can "sleep" for 0.5 seconds before needing to request additional fragments. This mechanism is adaptive to the rate that fragments are sent, and so is particularly suited to fragments that are sent at a variable rate. Furthermore, it minimises the signalling required in sending requests for fragments, as requests are only sent to keep the buffer filled with fragments for the required amount of time.
The fact that the control unit 39 need not send a request for further until necessary to maintain the buffer preserves the control unit's 39 processing resources. This can be advantageous in the event that the control unit has limited resources. It can also free up processing resources for other tasks, or to temporarily allow the control unit to 'sleep' until further fragments must be requested. Allowing the control unit to sleep reduces power consumption and consequently build-up of heat from the control unit.
In a further embodiment, the strategy need not necessarily require a fixed time of media fragments in the buffer, but might require variable time. Consider the case where the set top box 31 joins a new channel. The strategy may initially require 0.5 seconds of buffer, and be increased in increments of 0.1 seconds for each running second. This ensures that no more than 10% of additional bandwidth is used.
A similar method can be used to back-off requests for further fragments. Consider, for example, the case where a STB has a buffer size of 30 seconds, and a strategy to fill this buffer. As IPTV media data is dynamically streamed and only available to other peers in the network at a certain time, the STB may be sending requests for fragments that the other peers do not have yet. This will result in a flood of negative acknowledgements from peers that receive the requests. The strategy may therefore be to reduce the required amount of time in increments of 0.1 seconds, until the STB receives no, or an acceptable number of, negative acknowledgments from peers.
To further illustrates the invention, Figure 9 is a flow diagram illustrating the sequence of events at a STP according to an embodiment of the invention. The following numbering corresponds with the numbering used in Figure 9.
51. The STB receives streaming media data fragments from other nodes in the network, each data fragment in the streaming media data being tagged with a time stamp providing a time interval relative to an epoch time reference point.
52. The STB stores the received media data fragments in a buffer.
53. A processor at the STB calculates a time at which to request further fragments using information about a buffer filling strategy and a time stamp of the topmost data fragment stored in the buffer.
54. The STB requests further fragments at the time calculated by the processor.
According to a second specific embodiment, the STB2 saves all of the fragments into a buffer 70, e.g. a sliding window buffer or a ring buffer, as shown in Figure 7. Figure 7 illustrates the buffer 70 at a snapshot in time when it contains fragments having counters 15-41. At the time snapshot shown in Figure 7, fragment 17 is currently being exported to the video decoder 1 1 of STB2 for decoding, and fragment 40 (the last requested fragment) is being written in to the buffer, having been received from the media injector 8. The metadata of fragment 17 contains both the counter value (Fragment IDP|ay out) 17, and a timestamp (relative to the arbitrary epoch time) having value tpiayout- The metadata of fragment 40 contains the counter value (Fragment IDLast requested fragment) 40 and a timβStamp t|_ast requested fragment-
Once the STB2 has been receiving fragments for a predetermined time (x seconds), it calculates the rate at which fragments are being inserted into the network via: Fragment ID Fragment ID
Last requested fragment - Play Out
Last requested fragment Play Out
Once the rate of fragment insertion into the network has been determined, this rate is used as a benchmark for the rate at which the STB2 requests subsequent fragments, whether from the media injector 8, or from other peers such as STB1.
It will be noted that this calculation uses the timestamp on the fragments, rather than the time at which they are received by the STB2. This ensures that the calculation determines the rate at which they were inserted into the network, rather than the rate at which they are received by the STB2 (which might be very different).
It will also be noted that there is no absolute synchronisation between the clock of the STB2 and the clock of the media injector 8: the fragments are labelled with a time reference from the media injector's clock, and the calculation performed by the STB2 simply determines the time difference between fragments.
It will further be noted that the calculation above is determined on the basis of a comparison between the fragment currently being exported to the video decoder and the most recently requested fragment. It will be appreciated that any pair of fragments may be used to perform the calculation, although the more widely spaced the fragments, the better the averaging in determining the correct rate. Furthermore, the calculation can be repeated every few seconds to ensure that the rate has not changed in the meantime. The initial fragment request rate should be high, to ensure that the all fragments are received to begin with, whatever the media type. For example, if a client STB requests fragments but does not know what type of media to expect, it must request fragments at a sufficiently high rate that it will receive all of them even if a media injector is inserting many fragments (e.g. HDTV media). If the media source turns out to be a low-resolution webcam, the fragment request rate can quickly be adjusted to take account of the low insertion rate. The insertion rate should then be re-calculated at periodic intervals to ensure that it remains correct.
Figure 8 illustrates an alternative set-top box 31 to that described in the first embodiment, 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 a buffer 70 for storing fragments 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 buffer 70, for communicating with media injectors and 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 buffer 70. In particular, the control unit is able to identify time stamps and counters on data fragments stored in the buffer, and determine the rate of insertion of fragments into the network by using the timestamps and counters of fragments in the buffer. Requests for further fragments can then be sent at an appropriate rate.
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 carried out by the media injector 8 in the IPTV server 6 shown in Figure 7. The following numbering refers to the numbering of Figure 10.
S5: Media frames are received from the video encoder or database 7. S6: The frames are encoded into data fragments.
S7: Each data fragment is tagged with a counter.
S8: Each data fragment is tagged with a timestamp, the timestamp reflecting the time, relative to a reference epoch time that a frame, of which at least a part is encoded into that fragment, was received by the media injector.
S9: The tagged data fragments are transmitted into the network.
Figure 1 1 is a flow chart illustrating the actions carried out by the P2P network interface 13 in the STB2.
S10: Data fragments are received from the network.
S11 : The fragments are saved in the buffer.
S12: The rate at which fragments were inserted into the network is calculated from the timestamp and counters of two fragments.
S13: The rate at which fragments are requested from other peers in the network is modified to match the calculated rate of insertion.
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.
It will also be appreciated that the above described embodiments have been described with reference to P2P IPTV networks, but the invention may also be used in other nonlinear network environments.
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.

Claims

CLAIMS:
1. A node for use in a non-linear network delivering streaming media, the node comprising: a receiver arranged to receive data fragments from the network, each data fragment tagged with a timestamp providing a time interval relative to an epoch time reference point; a buffer arranged to store the received data fragments; a processor arranged to calculate, on the basis of a timestamp of a data fragment stored in the buffer and a further criterion, a schedule for requesting further fragments; and a transmitter arranged to send fragment requests at times determined by the processor as a result of the calculation.
2. The node according to claim 1 , wherein the further criterion is a time of streaming media that is required to fill the buffer.
3. The node according to claim 2, wherein the calculation is based on the difference between a timestamp of a topmost data fragment stored in the buffer and the time of streaming media required to fill the buffer
4. The node according to claim 2 or 3, wherein the time of streaming media required to fill the buffer is determined dynamically by the processor.
5. The node according to any one of claims 1 to 4, wherein the processor is arranged to either sleep or devote processing resources to other processing tasks during times when fragments need not be requested.
6. The node according to claim 1 , wherein each data fragment is further tagged with a fragment counter, the further criterion is the fragment counters of at least two data fragments, and the processor is arranged to calculate an insertion rate at which the fragments have been inserted into the network from which the schedule is determined.
7. The node of claim 6, wherein the processor is arranged to calculate the insertion rate by: calculating a fragment number difference between a first and a second fragment by subtracting the fragment counter of the second fragment from the fragment counter of the first fragment; calculating an insertion time difference between the first and the second fragment by subtracting the timestamp of the second fragment from the timestamp of the first fragment; and obtaining the insertion rate by dividing the fragment number difference by the insertion time difference.
8. The node of claim 6 or 7, wherein the fragment request rate is the same as the calculated insertion rate.
9. The node of claim 7 or 8, wherein the insertion rate is calculated periodically and the fragment request rate is adapted over time on the basis of the periodically calculated insertion rate.
10. The node of any one of claims 8 to 9, wherein an initial fragment request rate is high.
1 1. The node according to any one of claims 1 to 10, wherein the receiver is arranged to receive data fragments from more than one source.
12. The node according to any one of claims 1 to 11 , wherein the timestamp is included in a metadata portion of each data fragment.
13. The node according to any one of claims 1 to 12, wherein the network is a Peer-to-Peer IP Television network.
14. The node according to any one of claims 1 to 13, wherein the network is a top down or store and forward network.
15. A node for use in a non-linear network delivering streaming media, comprising: a receiver arranged to receive data fragments from the network, each data fragment tagged with a timestamp providing a time interval relative to an epoch time reference point; a buffer arranged to store the received data fragments; a processor arranged to calculate, on the basis of a timestamp of the topmost data fragment stored in the buffer and a strategy to fill the buffer with sufficient fragments to provide a predetermined amount of time of streaming media, a time at which further fragments should be requested; and a transmitter arranged to request fragments from another node in the network after the calculated time has elapsed.
16. A node for use in a non-linear network delivering streaming media, the node comprising: a receiver arranged to receive data fragments from the network, each data fragment tagged with a fragment counter and a timestamp providing a time interval relative to an epoch time reference point; a buffer arranged to store the received data fragments; a processor arranged to calculate, from the timestamps and fragment counters of at least two data fragments, an insertion rate at which the fragments have been inserted into the network; and a transmitter arranged to request fragments from another node in the network at a fragment request rate determined from the calculated insertion rate.
17. A method for obtaining media data in a non-linear network delivering streaming media, the method comprising: at a network node, receiving data fragments from the network, each data fragment tagged with a timestamp providing a time interval relative to an epoch time reference point; storing the received data fragments in a buffer; calculating, on the basis of a timestamp of a data fragment stored in the buffer and a further criterion, a schedule for requesting further fragments; and requesting fragments at times determined by the processor as a result of the calculation.
18. The method according to claim 17, wherein the further criterion is a time of streaming media that is required to fill the buffer.
19. The method according to claim 18, further comprising calculating the schedule for requesting further fragments based on the difference between a timestamp of a topmost data fragment stored in the buffer and the time of streaming media required to fill the buffer.
20. The method according to claim 18 or 19, further comprising dynamically determining the time of streaming media required to fill the buffer.
21. The method according to claim 17, wherein each data fragment is further tagged with a fragment counter, the further criterion is the fragment counters of at least two data fragments, and the method comprising calculating an insertion rate at which the fragments have been inserted into the network from which the schedule is determined.
22. The method of claim 21 , the method comprising calculating the insertion rate by: calculating a fragment number difference between a first and a second fragment by subtracting the fragment counter of the second fragment from the fragment counter of the first fragment; calculating an insertion time difference between the first and the second fragment by subtracting the timestamp of the second fragment from the timestamp of the first fragment; and obtaining the insertion rate by dividing the fragment number difference by the insertion time difference.
23. The method according to any one of claims 17 to 22, further comprising receiving data fragments from a plurality of sources.
24. A method of controlling delivery of streaming media in a non-linear network, comprising: encoding the media into data fragments, each data fragment containing all or part of a media frame; at a media injector connected to the network, determining an internal time relative to an epoch time reference point; at the media injector, tagging each data fragment with a timestamp corresponding to the internal time at the moment the data is encoded; transmitting the data fragments from the media injector into the network; receiving the data fragments at a node connected to the network; storing the data fragments in a buffer of the node; at the node, calculating, on the basis of a timestamp of a data fragment stored in the buffer and a further criterion, a schedule for requesting further fragments; and at the node, requesting fragments at times determined by the processor as a result of the calculation.
PCT/EP2008/054590 2008-02-22 2008-04-16 Method and apparatus for obtaining media over a communications network WO2009103351A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB1009929A GB2471190A (en) 2008-02-22 2008-04-16 Method and apparatus for obtaining media over a communications network

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
EPPCT/EP2008/052183 2008-02-22
PCT/EP2008/052183 WO2009103343A1 (en) 2008-02-22 2008-02-22 Method and apparatus for distributing media over a communications network
GB0804192.3 2008-03-07
GBGB0804192.3A GB0804192D0 (en) 2008-02-22 2008-03-07 Method and apparatus for obtaining media over a communications network

Publications (1)

Publication Number Publication Date
WO2009103351A1 true WO2009103351A1 (en) 2009-08-27

Family

ID=39929766

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/EP2008/052183 WO2009103343A1 (en) 2008-02-22 2008-02-22 Method and apparatus for distributing media over a communications network
PCT/EP2008/054590 WO2009103351A1 (en) 2008-02-22 2008-04-16 Method and apparatus for obtaining media over a communications network

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PCT/EP2008/052183 WO2009103343A1 (en) 2008-02-22 2008-02-22 Method and apparatus for distributing media over a communications network

Country Status (1)

Country Link
WO (2) WO2009103343A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011119132A3 (en) * 2010-03-24 2012-04-12 Thomson Licensing Variable bit rate video streaming over peer-to-peer networks
CN103714142A (en) * 2013-12-25 2014-04-09 乐视网信息技术(北京)股份有限公司 Data search method and device
CN110213604A (en) * 2019-05-27 2019-09-06 北京奇艺世纪科技有限公司 Sharing method, system and the device and computer readable storage medium of live video

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140101330A1 (en) * 2011-05-31 2014-04-10 Yan Xu Method and apparatus for streaming multimedia contents
CN110048906B (en) * 2019-03-27 2021-04-02 网宿科技股份有限公司 Method, system, device and server for judging node transmission quality
US10917497B2 (en) 2019-03-27 2021-02-09 Wangsu Science & Technology Co., Ltd. Method, system, device and server for determining transmission quality of node
CN118786744A (en) * 2022-02-07 2024-10-15 Oppo广东移动通信有限公司 Communication method, access network equipment, core network element and terminal equipment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1643716A1 (en) * 2004-09-03 2006-04-05 Microsoft Corporation A system and method for receiver driven streaming in a peer-to-peer network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1643716A1 (en) * 2004-09-03 2006-04-05 Microsoft Corporation A system and method for receiver driven streaming in a peer-to-peer network

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MENG ZHANG ET AL: "Understanding the Power of Pull-Based Streaming Protocol: Can We Do Better?", IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, IEEE SERVICE CENTER, PISCATAWAY, US, vol. 25, no. 9, 1 December 2007 (2007-12-01), pages 1678 - 1694, XP011198311, ISSN: 0733-8716 *
SASABE M ET AL: "Scalable and continuous media streaming on peer-to-peer networks", PEER-TO-PEER COMPUTING, 2003. (P2P 2003). PROCEEDINGS. THIRD INTERNATI ONAL CONFERENCE ON 1-3 SEPT 2003, PISCATAWAY, NJ, USA,IEEE, 1 September 2003 (2003-09-01), pages 92 - 99, XP010657528, ISBN: 978-0-7695-2023-0 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011119132A3 (en) * 2010-03-24 2012-04-12 Thomson Licensing Variable bit rate video streaming over peer-to-peer networks
CN103714142A (en) * 2013-12-25 2014-04-09 乐视网信息技术(北京)股份有限公司 Data search method and device
CN110213604A (en) * 2019-05-27 2019-09-06 北京奇艺世纪科技有限公司 Sharing method, system and the device and computer readable storage medium of live video
CN110213604B (en) * 2019-05-27 2021-08-20 北京奇艺世纪科技有限公司 Live video sharing method, system and device and computer readable storage medium

Also Published As

Publication number Publication date
WO2009103343A1 (en) 2009-08-27

Similar Documents

Publication Publication Date Title
US11134115B2 (en) Systems and methods for frame duplication and frame extension in live video encoding and streaming
KR100711635B1 (en) Picture coding method
JP5788101B2 (en) Network streaming of media data
US10757481B2 (en) Class-based intelligent multiplexing over unmanaged networks
US20070121629A1 (en) Accelerated channel change
EP2360924A1 (en) A digital multimedia data transmission device and method
US20070280298A1 (en) Reducing channel change delays
EP3192267A1 (en) Calculating and signaling segment availability times for segments of media data
CN101795264A (en) Video data transmission method and system
KR20090015051A (en) Method for fast zapping between tv channels
US8286217B2 (en) Method and system for fast channel change
KR20140064890A (en) Statistical multiplexing of streaming media
EP2615790A1 (en) Method, system and devices for improved adaptive streaming of media content
WO2009103351A1 (en) Method and apparatus for obtaining media over a communications network
Fuchs et al. Optimizing channel change time in IPTV applications
WO2009095080A1 (en) Method and apparatus for obtaining media over a communications network
WO2009095078A1 (en) Method and apparatus for obtaining media over a communications network
WO2009095081A1 (en) Method and apparatus for obtaining media over a communications network
WO2009080114A1 (en) Method and apparatus for distributing media over a communications network
WO2009109232A1 (en) Method and apparatus for distributing media over a communications network
US8401086B1 (en) System and method for increasing responsiveness to requests for streaming media
CN115883855B (en) Playing data processing method, device, computer equipment and storage medium
WO2017080603A1 (en) Frame alignment technique for live stream television
Poon et al. Interactive broadcasting system for VBR encoded videos
WO2009080113A1 (en) Method and apparatus for distributing media over a communications network

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08749575

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
ENP Entry into the national phase

Ref document number: 1009929

Country of ref document: GB

Kind code of ref document: A

Free format text: PCT FILING DATE = 20080416

WWE Wipo information: entry into national phase

Ref document number: 1009929.9

Country of ref document: GB

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 08749575

Country of ref document: EP

Kind code of ref document: A1