WO2013160042A1 - System for packet loss recovery - Google Patents
System for packet loss recovery Download PDFInfo
- Publication number
- WO2013160042A1 WO2013160042A1 PCT/EP2013/056206 EP2013056206W WO2013160042A1 WO 2013160042 A1 WO2013160042 A1 WO 2013160042A1 EP 2013056206 W EP2013056206 W EP 2013056206W WO 2013160042 A1 WO2013160042 A1 WO 2013160042A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- local
- retransmission
- module
- client
- receiver
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/1874—Buffer management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1059—End-user terminal functionalities specially adapted for real-time communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/764—Media network packet handling at the destination
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/765—Media network packet handling intermediate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5681—Pre-fetching or pre-delivering data based on network characteristics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/222—Secondary servers, e.g. proxy server, cable television Head-end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
- H04N21/42607—Internal components of the client ; Characteristics thereof for processing the incoming bitstream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/438—Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving MPEG packets from an IP network
- H04N21/4383—Accessing a communication channel
- H04N21/4384—Accessing a communication channel involving operations to reduce the access time, e.g. fast-tuning for reducing channel switching latency
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management 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/462—Content 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/4622—Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/63—Control 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/64—Addressing
- H04N21/6405—Multicasting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/63—Control 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/643—Communication protocols
- H04N21/6437—Real-time Transport Protocol [RTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1863—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
- H04L12/1868—Measures taken after transmission, e.g. acknowledgments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/418—External card to be used in combination with the client device, e.g. for conditional access
Definitions
- the present invention is directed at a system and method for packet loss recovery in a streaming media connection between a sender and receiver, as described in the preamble of the independent patent claims enclosed herewith.
- the tolerable latency of the application has to be taken into account.
- the end-to-end delay has to be at most a few hundred milliseconds in order to guarantee interactivity, which usually excludes the use of retransmission.
- the efficiency of the repair scheme can be increased.
- the sender may use the receiver feedback in order to react to losses before their play out time at the receiver.
- sequence number preservation In order to support the largest variety of payload formats, a receiver must be able to derive how many and which packets were lost as a result of a gap in received sequence numbers. This requirement is referred to as sequence number preservation.
- Another approach may be to multiplex original packets and retransmission packets in the same stream using different payload type values. With such an approach, the original packets and the retransmission packets would share the same sequence number space. As a result, the receiver would not be able to infer how many and which original packets and which sequence numbers were lost.
- the original and retransmission packets may be sent in two separate streams. These two streams may be multiplexed either by sending them in two different sessions, i.e. session-multiplexing, or in the same session using different Synchronization Source (SSRC) values, i.e., SSRC-multiplexing.
- SSRC Synchronization Source
- Whether or not a receiver chooses to request a packet is an implementation issue.
- An actual receiver implementation must take into account such factors as the tolerable application delay, the network environment, and the media type.
- the receiver should generally assess whether the retransmitted packet would still be useful at the time it is received.
- the timestamp of the missing packet can be estimated from the timestamps of packets preceding and/or following the sequence number gap caused by the missing packet in the original stream. In most cases, some form of linear estimate of the timestamp is used.
- a receiver should compute an estimate of the round-trip time (RTT) to the sender. This can be done, for example, by measuring the retransmission delay to receive a retransmission packet after a request has been sent for that packet. This estimate may also be obtained from past observations.
- RTT round-trip time
- the receiver should not send a retransmission request as soon as it detects a missing sequence number but should add some extra delay to compensate for packet reordering. This extra delay may, for example, be based on past observations of the experienced packet reordering.
- the receiver may add extra delay to group the packet retransmission requests, thus request retransmission of multiple lost packets with a single command. It helps to reduce communication overheads, especially in environments with a "stable" packet loss.
- a possible implementation of a system and method for packet loss recovery in a streaming media connection between a sender and receiver is a minimal receiver implementation. With this implementation, it is possible to retransmit lost packets, detect efficiently the loss of retransmissions, and perform multiple retransmissions, if need be. With such a minimal receiver implementation most of the necessary processing is done at the server.
- the required receiver processing to handle retransmission is kept to a minimum.
- the receiver detects packet loss from the gaps observed in the received sequence numbers. It signals lost packets to the sender, while taking into account the signaled sender retransmission buffer length in order to dimension its own reception buffer. It also derives from the buffer length the maximum number of times the retransmission of a packet can be requested.
- the sender then retransmits the packets selectively. It chooses whether to retransmit a requested packet depending on the packet importance, the observed Quality of Service (QoS), and congestion state of the network connection to the receiver.
- QoS Quality of Service
- a system and method for packet loss recovery in a streaming media connection between aa sender and receiver including a Retransmission Server is proposed, wherein a Local Retransmission Module is provided at the receiver side, which can be either a software package that runs in the Set Top Box or a hardwired device to which the Set Top Box, or any other client application, may be connected.
- the Local Retransmission Agent or Module is an autonomous module that can be implemented and embedded into the client device as a software or hardware.
- the Retransmission Server is a software/hardware implementation of a packet cache that can be used by the client for streaming data pre fetch and lost packet recovery.
- the communication between the client may be accomplished by a connection oriented protocol, such as TCP, or by other protocols, such as UDP, IP, etc.
- the communication between the client Application and Local Retransmission Module may be done in many ways.
- a HTTP protocol and the TCP based custom text protocol is used.
- any other protocols and IPC (inter-process communications) techniques may be used for this purpose.
- Such communication may even be implemented without an explicit protocol, with the Local Retransmission Module tracing (on OS or IGMP level) multicast join/leave requests from a client application and consider them as implicit commands, thus providing a 100% transparent system.
- the Local Retransmission Module or Agent is a transparent service, handling packet loss recovery and data prefetch for fast channel change, and sends a UDP stream to the local network/loopback interface of the Set Top Box.
- the Local network/loopback interface is a local network interface (real or simulated) that resides on the STB and can be accessed by the Client Application (for example: lo, ethO, ethl ). Because the interface is local, there is practically no packet loss, and the stream can be reliably passed from the Local Retransmission Module to the Client Application.
- the Client Application running on the Set Top Box will be able to receive and play streams without any need to integrate an external library for packet loss recovery into the application itself, as all packet loss recovery tasks are being taken over by the Local Retransmission Agent.
- this new “Transparent” technology enables integration of Fast Channel Change into existing IPTV ecosystems without the problems, connected with involving vendors of existing IPTV components. It means no software modification is needed because the transparent FCC is invisible for existing software components that run on STB - they just think they are working the usual way by joining network multicasts etc.
- the client software on the Set Top Box communicates with the Local Retransmission Module for example via a TCP connection using custom text based protocol, or standard HTTP protocol, which could be simply accomplished for example using JavaScript.
- the client can send various stream related or configuration commands to the Local Retransmission Module, such as: tune, stop etc.
- the Local Retransmission Module works with the Retransmission Server, establishing a reliable TCP connection to handle lost packet recovery, and data prefetch for fast channel change.
- the typical channel change time is about 0.4 - 0.6 seconds, wherein the actual time depends on stream bitrate and encoding options, player video decoder settings, and line bandwidth.
- the client application or Set Top Box simply receives the UDP stream from the Local Retransmission Module, with no need to interact with the UDP Retransmission Server directly.
- FIG. 1 a schematic diagram of a system according to the invention
- Fig. 2 a schematic flow diagram of the method steps on the side of the client module of the system according to Fig. 1, and
- Fig. 3 a schematic flow diagram of the method steps on the side of the Local Retransmission Module of the system according to Fig. 1.
- Fig. 1 shows a schematic view of a preferred embodiment of the proposed system according to the present invention.
- RRLA RTP/UDP Local Retransmission Agent
- STB set top box
- RTP/UDP Retransmission Server 8 which is a software/hardware implementation of a packet cache, that can be used by the client device 4 and more particularly the Local Retransmission Agent 2 for stream data prefetch and lost packet recovery.
- the communication between the Local Retransmission Agent 2 and the Server 8 is accomplished by a connection oriented protocol (such as TCP) or by other protocols (UDP, IP, etc.)
- the client module 6 in the embodiment as shown, is an application that plays a RTP/UDP stream.
- the RTP/UDP in this embodiment is not received from the RTP/UDP Server 8 directly, however, but from the Local Retransmission Agent (RRLA) 2, which adds the capability of fast channel change and lost packet recovery to the Client module 6 in a transparent manner.
- RRLA Local Retransmission Agent
- the RTP/UDP Local Retransmission Agent (RRLA) 2 of the embodiment as shown is a transparent service, designed to run on client side, as for example a set top box device. It handles RTP packet loss recovery and data prefetch for fast channel change, and sends the UDP stream to the local network/loopback interface of the client module 6.
- the client module 6 will be able to receive and play RTP/UDP streams without any need to integrate an external library into the client application.
- the client software of the module 6 communicates with the RRLA module 2 via a TCP connection using custom text based protocol, or standard HTTP protocol, which can be simply accomplished even with a high level language such as JavaScript.
- the client module 6 can send various stream related or configuration commands to the RRLA module 2, such as tune, stop etc.
- the RRLA module 2 works with RTP/UDP Retransmission Server 8. It establishes a reliable TCP connection to handle lost RTP/UDP packet recovery, and data prefetch for fast channel change. Channel change time is dramatically reduced by using data prefetch and video stream key-frame indexing (MPEG2/MPEG4-H264) implemented in the RTP/UDP Retransmission Server 8.
- the typical channel change time is about 0.4 - 0.6 seconds, while the actual time depends on the stream bitrate and encoding options, player video decoder settings, and line bandwidth.
- Fig. 2 shows a flow diagram of the method steps as performed by the client module 6 of the set top box 4, when a user requests a channel change in Step 10, the client module 6 sends a command to the RRLA 2 in step 12, so that in step 14 the client module 6 receives and plays a UDP stream from the RRLA module 2 on a loopback interface or local network interface.
- step 16 the Local Retransmission Module 2 establishes a connection with the RTP/UDP Retransmission Server 8 (if applicable).
- step 20 the Local Retransmission Module 2 listen for the commands issued by the Client module 6.
- step 22 when a tune command is received from the client module, the media stream data prefetch/multicast receiving/lost packet recovery (in conjunction with the RTP/UDP Retransmission Server 8) is performed.
- step 26 the processed/corrected stream is send to the loopback interface or local network interface of the client module 6, thus making it available for the client module 6.
Abstract
The application discloses a system for packet loss recovery in a streaming media connection between aa sender and receiver, including a Retransmission Server, wherein a Local Retransmission Module, being adapted to handle packet loss recovery and data prefetch for fast channel change, is provided at the receiver side, communicating with the Retransmission Server, to which a client application, running on the receiver side, is connectable to receive a corrected stream.
Description
Description
Title: System for packet loss recovery
[0001] The present invention is directed at a system and method for packet loss recovery in a streaming media connection between a sender and receiver, as described in the preamble of the independent patent claims enclosed herewith.
[0002] It is a known problem that packet loss in a streaming media connection between a sender and receiver may significantly degrade the quality of the media received at the client, where the streamed media is being consumed. Several techniques, such as Forward Error Correction (FEC), retransmissions, or interleaving, have been considered to increase packet loss resiliency.
[0003] When choosing a repair technique for a particular application, the tolerable latency of the application has to be taken into account. In the case of multimedia conferencing, the end-to-end delay has to be at most a few hundred milliseconds in order to guarantee interactivity, which usually excludes the use of retransmission. With sufficient latency, the efficiency of the repair scheme can be increased. The sender may use the receiver feedback in order to react to losses before their play out time at the receiver.
[0004] On the other hand, in the case of multimedia streaming, the user might tolerate an initial latency as part of the session set-up and thus an end-to-end delay. However, with an increasing number of customers consuming TV or other Multimedia over networks such as the Internet, even in this area, and in particular with respect to switching channels, there is a strong desire to reduce the initial latency during session set-up and the end-to-end delay, in particular, when customers expect a Fast Channel Change (FCC), as is the usual case these days.
[0005] In order to support the largest variety of payload formats, a receiver must be able to derive how many and which packets were lost as a result of a gap in received sequence numbers. This requirement is referred to as sequence number preservation.
[0006] Without such a requirement, it would be impossible to use retransmission with payload formats, such as conversational text or most audio/video streaming applications, that use the sequence number to detect lost packets.
[0007] When designing a solution for retransmission, several approaches may be considered for the multiplexing of the original packet and the retransmitted packets. One approach may be to retransmit the packet with its original sequence number and send original and retransmission packets in the same stream. The retransmission packet would then be identical to the original packet, with the same header, the same sequence number, and the same payload. Such an approach could corrupt the statistics, however, which, for example in the case of Real Time Transport Control Protocol (RTCP), require that for every RTP packet within the RTP stream, the sequence number be increased by one.
[0008] Another approach may be to multiplex original packets and retransmission packets in the same stream using different payload type values. With such an approach, the original packets and the retransmission packets would share the same sequence number space. As a result, the receiver would not be able to infer how many and which original packets and which sequence numbers were lost.
[0009] Furthermore, the original and retransmission packets may be sent in two separate streams. These two streams may be multiplexed either by sending them in two different sessions, i.e. session-multiplexing, or in the same session using different Synchronization Source (SSRC) values, i.e., SSRC-multiplexing.
[0010] Whether or not a receiver chooses to request a packet is an implementation issue. An actual receiver implementation must take into account such factors as the tolerable application delay, the network environment, and the media type. The receiver should generally assess whether the retransmitted packet would still be useful at the time it is received. The timestamp of the missing packet can be estimated from the timestamps of packets preceding and/or following the sequence number gap caused by the missing packet in the original stream. In most cases, some form of linear estimate of the timestamp is used.
[0011] Furthermore, a receiver should compute an estimate of the round-trip time (RTT) to the sender. This can be done, for example, by measuring the retransmission delay to receive a retransmission packet after a request has been sent for that packet. This estimate may also be obtained from past observations.
[0012] The receiver should not send a retransmission request as soon as it detects a missing sequence number but should add some extra delay to compensate for
packet reordering. This extra delay may, for example, be based on past observations of the experienced packet reordering.
[0013] It should be noted that, in environments where packet reordering is rare or does not take place, e.g., if the underlying data link layer affords ordered delivery, the delay may be extremely low or even take the value zero. In such cases, an appropriate "reorder delay" algorithm may not actually be timer based, but packet based. For example, if a number of packets are received after a gap is detected, then it may be assumed that the packet was truly lost rather than out of order.
[0014] Furthermore, the receiver may add extra delay to group the packet retransmission requests, thus request retransmission of multiple lost packets with a single command. It helps to reduce communication overheads, especially in environments with a "stable" packet loss.
[0015] A possible implementation of a system and method for packet loss recovery in a streaming media connection between a sender and receiver is a minimal receiver implementation. With this implementation, it is possible to retransmit lost packets, detect efficiently the loss of retransmissions, and perform multiple retransmissions, if need be. With such a minimal receiver implementation most of the necessary processing is done at the server.
[0016] In this implementation example, the required receiver processing to handle retransmission is kept to a minimum. The receiver detects packet loss from the gaps observed in the received sequence numbers. It signals lost packets to the sender, while taking into account the signaled sender retransmission buffer length in order to dimension its own reception buffer. It also derives from the buffer length the maximum number of times the retransmission of a packet can be requested.
[0017] The sender then retransmits the packets selectively. It chooses whether to retransmit a requested packet depending on the packet importance, the observed Quality of Service (QoS), and congestion state of the network connection to the receiver.
[0018] Obviously, the sender processing increases with the number of receivers as information and processing load must be allocated to each receiver.
[0019] The main problem with such a monolithic solution is that multimedia streaming environments, such as IPTV ecosystems, are rarely monolithic but evolve over time with different evolution speeds in different sectors.
[0020] The reality is that at some moment the decision is taken for example by a telecom operator to introduce/integrate Fast Channel Change (FCC) technology into an existing IPTV ecosystem, such as a telecom operator's ecosystem of interconnected and integrated components that form the IPTV service.
[0021] In this case the need arises to integrate set top box (STB) software, Middeware, etc. with the FCC Solution, which requires participation of the vendors of corresponding components, and software modifications, bringing with it all kinds of requirements for resources, time and cost, as everything is integrated at the lower level FCC API (library).
[0022] This does not post a problem, when IPTV is introduced into the entire network of a provider for the first time, with all the necessary integrations that take place anyway. It is much harder to achieve at a later phase, however, when some time has passed already, and a "legacy" system is in place already. In this kind of situation it is impossible sometimes to integrate Fast Channel Change at all.
[0023] Furthermore, in some cases, when the Set Top Box or the client chip is hardwired to do all the work, i.e. joining multicast, rerouting traffic from network to decoder, decoding, etc., no software modification is possible by any software developer other than the chipmaker itself, which would make any modifications, and thus any improvements regarding packet loss recovery, virtually impossible.
[0024] Accordingly, there is a need for a system and method for packet loss recovery in a streaming media connection between a sender and receiver that overcomes the above mentioned problems, which can be introduced even in legacy IPTV environments with as little effort and software modification during installation and operation as possible.
[0025] To solve the above mentioned problems, a system and method for packet loss recovery in a streaming media connection between aa sender and receiver including a Retransmission Server is proposed, wherein a Local Retransmission Module is provided at the receiver side, which can be either a software package that
runs in the Set Top Box or a hardwired device to which the Set Top Box, or any other client application, may be connected.
[0026] The Local Retransmission Agent or Module according to the invention is an autonomous module that can be implemented and embedded into the client device as a software or hardware.
[0027] The Retransmission Server is a software/hardware implementation of a packet cache that can be used by the client for streaming data pre fetch and lost packet recovery. In an actual implementation, the communication between the client may be accomplished by a connection oriented protocol, such as TCP, or by other protocols, such as UDP, IP, etc.
[0028] The communication between the client Application and Local Retransmission Module may be done in many ways. In a preferred implementation a HTTP protocol and the TCP based custom text protocol is used. However, any other protocols and IPC (inter-process communications) techniques may be used for this purpose. Such communication may even be implemented without an explicit protocol, with the Local Retransmission Module tracing (on OS or IGMP level) multicast join/leave requests from a client application and consider them as implicit commands, thus providing a 100% transparent system.
[0029] The Local Retransmission Module or Agent is a transparent service, handling packet loss recovery and data prefetch for fast channel change, and sends a UDP stream to the local network/loopback interface of the Set Top Box.
[0030] The Local network/loopback interface is a local network interface (real or simulated) that resides on the STB and can be accessed by the Client Application (for example: lo, ethO, ethl ...). Because the interface is local, there is practically no packet loss, and the stream can be reliably passed from the Local Retransmission Module to the Client Application.
[0031] Accordingly, the Client Application running on the Set Top Box will be able to receive and play streams without any need to integrate an external library for packet loss recovery into the application itself, as all packet loss recovery tasks are being taken over by the Local Retransmission Agent.
[0032] Now, this new "Transparent" technology enables integration of Fast Channel Change into existing IPTV ecosystems without the problems, connected
with involving vendors of existing IPTV components. It means no software modification is needed because the transparent FCC is invisible for existing software components that run on STB - they just think they are working the usual way by joining network multicasts etc.
[0033] The client software on the Set Top Box communicates with the Local Retransmission Module for example via a TCP connection using custom text based protocol, or standard HTTP protocol, which could be simply accomplished for example using JavaScript. The client can send various stream related or configuration commands to the Local Retransmission Module, such as: tune, stop etc.
[0034] The Local Retransmission Module works with the Retransmission Server, establishing a reliable TCP connection to handle lost packet recovery, and data prefetch for fast channel change.
[0035] Providing the Local Retransmission Module on the side of the receiver dramatically reduces channel change time, if data prefetch and video stream keyframe indexing (MPEG2/MPEG4-H264) implemented in the Retransmission Server is used.
[0036] The typical channel change time is about 0.4 - 0.6 seconds, wherein the actual time depends on stream bitrate and encoding options, player video decoder settings, and line bandwidth.
[0037] Summing up, the advantages of using an approach as disclosed herein are:
• Transparency. The client application or Set Top Box simply receives the UDP stream from the Local Retransmission Module, with no need to interact with the UDP Retransmission Server directly.
• Easy integration. There is no need to link the client application running on a set top box with an external library.
• Simple command interface. Standard HTTP protocol, or custom TCP text based protocol may be used for the client application to communicate with the Local Retransmission Module.
[0038] Further features and advantages may be taken from the following description of a preferred embodiment of the invention with reference to the figures enclosed herewith, showing in:
[0039] Fig. 1 a schematic diagram of a system according to the invention,
[0040] Fig. 2 a schematic flow diagram of the method steps on the side of the client module of the system according to Fig. 1, and
[0041] Fig. 3 a schematic flow diagram of the method steps on the side of the Local Retransmission Module of the system according to Fig. 1.
[0042] Fig. 1 shows a schematic view of a preferred embodiment of the proposed system according to the present invention.
[0043] What can be seen in Fig. 1 more specifically is a RTP/UDP Local Retransmission Agent (RRLA) 2, which is an autonomous module, that can be implemented and embedded into the client device 4 as a software or, as in the embodiment shown, hardware component in the form of a set top box (STB), which comprises the client module 6 as such.
[0044] What can be taken from Fig. 1 as well is RTP/UDP Retransmission Server 8, which is a software/hardware implementation of a packet cache, that can be used by the client device 4 and more particularly the Local Retransmission Agent 2 for stream data prefetch and lost packet recovery. In the actual implementation as shown in Fig. 1, the communication between the Local Retransmission Agent 2 and the Server 8 is accomplished by a connection oriented protocol (such as TCP) or by other protocols (UDP, IP, etc.)
[0045] The client module 6 in the embodiment as shown, is an application that plays a RTP/UDP stream. The RTP/UDP in this embodiment is not received from the RTP/UDP Server 8 directly, however, but from the Local Retransmission Agent (RRLA) 2, which adds the capability of fast channel change and lost packet recovery to the Client module 6 in a transparent manner.
[0046] The RTP/UDP Local Retransmission Agent (RRLA) 2 of the embodiment as shown is a transparent service, designed to run on client side, as for example a set top box device. It handles RTP packet loss recovery and data prefetch for fast channel change, and sends the UDP stream to the local network/loopback interface of the client module 6. Thus the client module 6 will be able to receive and play RTP/UDP streams without any need to integrate an external library into the client application. The client software of the module 6 communicates with the RRLA module 2 via a TCP connection using custom text based protocol, or standard
HTTP protocol, which can be simply accomplished even with a high level language such as JavaScript. The client module 6 can send various stream related or configuration commands to the RRLA module 2, such as tune, stop etc. The RRLA module 2 works with RTP/UDP Retransmission Server 8. It establishes a reliable TCP connection to handle lost RTP/UDP packet recovery, and data prefetch for fast channel change. Channel change time is dramatically reduced by using data prefetch and video stream key-frame indexing (MPEG2/MPEG4-H264) implemented in the RTP/UDP Retransmission Server 8. The typical channel change time is about 0.4 - 0.6 seconds, while the actual time depends on the stream bitrate and encoding options, player video decoder settings, and line bandwidth.
[0047] As can be taken from Fig. 2, which shows a flow diagram of the method steps as performed by the client module 6 of the set top box 4, when a user requests a channel change in Step 10, the client module 6 sends a command to the RRLA 2 in step 12, so that in step 14 the client module 6 receives and plays a UDP stream from the RRLA module 2 on a loopback interface or local network interface.
[0048] In Fig. 3 the method steps as performed by the Local Retransmission Module 2 are described. In step 16 the Local Retransmission Module 2 establishes a connection with the RTP/UDP Retransmission Server 8 (if applicable). In step 20 the Local Retransmission Module 2 listen for the commands issued by the Client module 6. In step 22, when a tune command is received from the client module, the media stream data prefetch/multicast receiving/lost packet recovery (in conjunction with the RTP/UDP Retransmission Server 8) is performed. In step 26 the processed/corrected stream is send to the loopback interface or local network interface of the client module 6, thus making it available for the client module 6.
Claims
1. System for packet loss recovery in a streaming media connection between a sender and receiver, including a Retransmission Server, wherein a Local Retransmission Module, being adapted to handle packet loss recovery and data prefetch for fast channel change, is provided at the receiver side, communicating with the Retransmission Server, to which a client application, running on the receiver side, is connectable to receive a corrected stream.
2. System according to claim 1, wherein the Local Retransmission Module is a software package.
3. System according to claim 1, wherein the Local Retransmission Module is a hardwired device.
4. System according to any of claims 1 to 3, wherein the Local Retransmission Module is an autonomous module.
5. System according to claim 4, wherein the Local Retransmission Module is implemented and embedded into the client device.
6. System according to claim 5, wherein the Local Retransmission Module is implemented as a software or hardware.
7. System according to any of the preceding claims, wherein the communication between the client and the Local Retransmission Module is accomplished by a connection oriented protocol.
8. System according to any of the preceding claims, wherein the Local Retransmission Module is adapted to send a stream to a local network/loopback interface of the client application.
9. System according to any of the preceding claims, wherein the client application runs on a Set Top Box.
10. System according to claim 8, wherein the local network/loopback interface is a local network interface, residing on a Set Top Box, being accessible by the Client Application.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1207046.2 | 2012-04-23 | ||
GB1207046.2A GB2501474A (en) | 2012-04-23 | 2012-04-23 | Supporting Fast-Channel Changing (FCC) at a client receiver |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2013160042A1 true WO2013160042A1 (en) | 2013-10-31 |
Family
ID=46261684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2013/056206 WO2013160042A1 (en) | 2012-04-23 | 2013-03-25 | System for packet loss recovery |
Country Status (2)
Country | Link |
---|---|
GB (1) | GB2501474A (en) |
WO (1) | WO2013160042A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9847852B2 (en) | 2015-12-15 | 2017-12-19 | At&T Intellectual Property I, L.P. | System and method to request a portion of a media content item |
CN112511277A (en) * | 2020-11-24 | 2021-03-16 | 广州技象科技有限公司 | Data processing method and device |
CN114095796A (en) * | 2020-07-30 | 2022-02-25 | 中国移动通信集团终端有限公司 | Invalid retransmission packet reduction method, device, equipment and computer storage medium |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1811780A1 (en) * | 2006-01-24 | 2007-07-25 | Alcatel Lucent | Access node with caching function for video channels |
WO2009095078A1 (en) * | 2008-01-31 | 2009-08-06 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for obtaining media over a communications network |
US20100083328A1 (en) * | 2008-09-24 | 2010-04-01 | Alcatel-Lucent | Client configuration and management for fast channel change of multimedia services |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7142255B2 (en) * | 2003-10-08 | 2006-11-28 | Silicon Laboratories Inc. | Transport stream and channel selection system for digital video receiver systems and associated method |
US7562375B2 (en) * | 2003-10-10 | 2009-07-14 | Microsoft Corporation | Fast channel change |
CA2679951A1 (en) * | 2007-03-12 | 2008-09-18 | Citrix Systems, Inc. | Systems and methods for dynamic bandwidth control by proxy |
EP2169954A1 (en) * | 2008-09-24 | 2010-03-31 | Alcatel Lucent | Service configuration and management for fast channel change and reliable delivery of multimedia services |
US8806551B2 (en) * | 2008-12-03 | 2014-08-12 | Alcatel Lucent | Prioritized retransmission of internet protocol television (IPTV) packets |
US8286217B2 (en) * | 2009-09-18 | 2012-10-09 | Espial Group Inc. | Method and system for fast channel change |
KR20120082416A (en) * | 2009-10-07 | 2012-07-23 | 톰슨 라이센싱 | An efficient application-layer automatic repeat request retransmission method for reliable real-time data streaming in networks |
-
2012
- 2012-04-23 GB GB1207046.2A patent/GB2501474A/en not_active Withdrawn
-
2013
- 2013-03-25 WO PCT/EP2013/056206 patent/WO2013160042A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1811780A1 (en) * | 2006-01-24 | 2007-07-25 | Alcatel Lucent | Access node with caching function for video channels |
WO2009095078A1 (en) * | 2008-01-31 | 2009-08-06 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for obtaining media over a communications network |
US20100083328A1 (en) * | 2008-09-24 | 2010-04-01 | Alcatel-Lucent | Client configuration and management for fast channel change of multimedia services |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9847852B2 (en) | 2015-12-15 | 2017-12-19 | At&T Intellectual Property I, L.P. | System and method to request a portion of a media content item |
US10284341B2 (en) | 2015-12-15 | 2019-05-07 | At&T Intellectual Property I, L.P. | System and method to request a portion of a media content item |
CN114095796A (en) * | 2020-07-30 | 2022-02-25 | 中国移动通信集团终端有限公司 | Invalid retransmission packet reduction method, device, equipment and computer storage medium |
CN112511277A (en) * | 2020-11-24 | 2021-03-16 | 广州技象科技有限公司 | Data processing method and device |
Also Published As
Publication number | Publication date |
---|---|
GB2501474A (en) | 2013-10-30 |
GB201207046D0 (en) | 2012-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2719144B1 (en) | On-demand adaptive bitrate management for streaming media over packet networks | |
US8718094B2 (en) | Network optimized distribution | |
US8935736B2 (en) | Channel switching method, channel switching device, and channel switching system | |
US8588077B2 (en) | Retransmission-based stream repair and stream join | |
US20050254508A1 (en) | Cooperation between packetized data bit-rate adaptation and data packet re-transmission | |
US8612620B2 (en) | Client capability adjustment | |
EP2521298B1 (en) | Method and apparatus for ensuring quality of service of internet protocol television live broadcast service | |
US8990407B2 (en) | Fast setup response prediction | |
US9003050B2 (en) | Distributed and scalable content streaming architecture | |
US8966559B2 (en) | Method and device for ensuring reliability during transmission of television data in a television system based on internet protocol | |
US9647951B2 (en) | Media stream rate reconstruction system and method | |
WO2013160042A1 (en) | System for packet loss recovery | |
Begen et al. | Reducing channel-change times with the real-time transport protocol | |
US20090257447A1 (en) | Bit rate control | |
CN106792216B (en) | Streaming media reading method in distributed file system and server | |
CN117041226A (en) | Streaming media multi-channel transmission method based on multicast and QUIC protocol | |
GB2500406A (en) | Providing rapid channel changes, with client itself assessing technical environment and network connection parameters |
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: 13712536 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 13712536 Country of ref document: EP Kind code of ref document: A1 |