The present disclosure relates generally to networking.
Robust video delivery requires essentially loss-free delivery of video to all the receivers so the decoders can produce outputs without visible artifacts. This applies both for a single receiver in the unicast case and possibly millions of receivers in the multicast case.
Packet networks lose packets due to a number of impairment events, including congestion, link errors, and re-routing events. Individual losses or short burst losses can be adequately repaired with Forward Error Correction (FEC) or selective retransmission techniques, depending on the exact nature of the error and the delay in the network. However, for longer bursts FEC has poor engineering tradeoffs in terms of delay, bandwidth, and complexity, compared to simple stream redundancy (i.e. sending two or more copies of the same stream).
Similarly, selective retransmission is workable only where there is a very short round-trip time between the receivers and the transmitter. In addition, it is difficult and complex to limit the duration of certain outages in packet networks through techniques like MultiProtocol Label Switching (MPLS) or IP Fast ReRoute (FRR).
A number of stream redundancy techniques are possible. These include spatial techniques where copies of the packets are sent over disjoint paths. Stream redundancy can also include temporal techniques where copies of the packets are delayed in time by more than the expected outage duration.
However, each of these techniques in preexisting systems required both different algorithmic structure and different transport encapsulation and encoding, which makes the design and implementation of transmitters and receivers which want to support multiple techniques difficult.
Both temporal and/or spatial stream redundancy is provided using a retransmission scheme where the retransmission is “always on” as opposed to requested on demand. This results in a redundant media stream scheme where both transmitters and receivers can utilize the same overall transport protocol, wire encodings, transmit/receive logic, etc. independent of primary service goals that provide conventional selective retransmission-based repair, spatial redundancy, or temporal redundancy.
In addition to transmitter simplification and commonality, it is also possible for receivers to be dramatically simplified, since their reception and transport packet processing logic is nearly identical for the three cases of Negative AcKnowledge (NAK)-based retransmission, spatial redundancy, or temporal redundancy.
Referring to
The media stream receiver 26 can be any device that receives and stores or renders the multicast or unicast media stream 18. For example, the media stream receivers 26 can be Set Top Boxes (STB), Digital Video Recorders (DVR), computer terminals, Personal Computers (PCs), televisions with IP interfaces, Voice over IP (VoIP) phones, cell phones, Personal Digital Assistants (PDA), etc.
Additionally, the media stream receivers could be edge devices in the IP network which further process the video streams, or provide gateway functions to other kinds of networks. These include edge retransmission servers, Edge Quadrature Amplitude Modulators (EQAM) in a digital cable TV network, satellite up-links in a satellite TV distribution network, or media relays in mobile networks such as cellular telephony systems.
The encoder 16 also encodes and transmits a redundant media stream 22 to the media stream receivers 26 to account for packets 20 in media stream 18 that may be lost or dropped while being transported over packet switched network 12. The redundant media stream 22 is encoded as retransmission-type repair packets 24 that are normally only transmitted by explicit requests from a separate retransmission system. The redundant media stream 22, like the media stream 18, may be either multicast or unicast.
The repair packets 24 in earlier systems were only sent to replace or repair individual media stream packets 20 pursuant to a NACK request from media stream receiver 26. However, in this embodiment, the retransmission packets 24 are used to transmit an entire redundant copy of the media stream 18 without first receiving any Negative ACKnowledge (NACK) repair request from media stream receiver 26.
The Realtime Transport Protocol (RTP) Request For Comment (RFC) 3550 has a standard packet encoding for transmitting media streams on an IP network. It has been extended through RFC 4585 entitled “Extended RTP Profile for Real-time Transport Control Protocol (RTCP)-Based Feedback (RTP/AVPF)” with a set of feedback algorithms to enable retransmission-based repair of both unicast and multicast media streams.
In one embodiment, the media stream 18 is encoded as RTP packets for a normal RTP media session. The redundant media stream 22 is encoded as RTP retransmission packets as described in RFC 4588 entitled: RTP RETRANSMISSION PAYLOAD FORMAT which is incorporated by reference. Together, these specifications provide the basic means for unicast retransmission repair of unicast streams, and multicast retransmission repair of multicast streams. A retransmission scheme for unicast repair of multicast streams is described in co-pending U.S. patent application Ser. No. 11/561,237, filed Nov. 17, 2006, entitled: Retransmission-Based Stream Repair and Stream Join, which is also herein incorporated by reference.
The media stream receiver 26 receives both the native media packets 20 and the retransmit-encapsulated packets 24. This allows the receiver 26 to recover the original media stream 18 by simple selection rather than having to do duplicate detection and suppression.
Referring to
For either conventional Any-Source Multicast (ASM) or Source-Specific Multicast (SSM) the addresses in IP headers 20A and 24A specify separate multicast groups. In the SSM case, the destination group address can be common between the two streams 18 and 22 and the source address is different. In either ASM or SSM, the destination group address may be different for the two streams 18 and 22 and the source addresses are the same. In yet another embodiment, both the destination group address and the source address are different for the two streams 18 and 22.
Using separate IP addresses for the two RTP sessions as described above allows media packets 20 for media stream 18 and media transmission packets 24 for the redundant media stream 22 to travel over different disparate paths in the packet switched network 12. For example, the packets 20 for media stream 18 are shown going through an intermediate node 44 wherein the retransmission packets 24 for redundant media stream 22 are shown going through an intermediate node 46. Using different network paths can increase the likelihood packets from at least one of the two media streams 18 or 22 will successfully arrive at media stream receiver 26. If the two paths are completely disjoint, the media is protected from any single failure, of any duration, anywhere in the network.
Techniques for ensuring spatial redundancy for different media sessions include Multi-Protocol Label Switching (MPLS) Traffic Engineering (TE) tunnels or Multi-Topology Routing (MTR).
The different RTP sessions 40 and 42 can be provided even though the two media steams 18 and 22 are constructed by the same media stream source 14. The media stream source 14 may simply use a different IP source address for the two media streams 18 and 22.
The two media streams 18 and 22 can be distinguished through the difference in encoding. The native packets 20 are encoded as RTP packets using RTP headers 20B and the redundant media stream 22 is encoded as retransmission packets using RTP retransmission headers 24B.
There is an advantage to the two-stream approach shown in
Fast reroute may be used in combination with the retransmission packets as an alternative to stream redundancy. For example, Point-To-MultiPoint (P2MP) MultiProtocol Label Switching (MPLS) with MPLS Fast ReRoute (FRR), or native IP FRR can be used. These techniques can bound the outage periods to be less than the time period covered by the temporal redundancy.
Both the spatial and temporal redundancy schemes may use the Session Description Protocol (SDP) so that both the receivers 26 and the transmitters 14 know exactly how the media streams are encoded, whether one or two groups are used in the case of multicast, and how the RTP protocol types for the native and redundant streams are assigned.
The media session begins in operation 80. The native media stream is encoded into RTP packets and transmitted with the identified destination and source addresses and RTP session identifier in operation 82. The retransmission repair-type media stream is encoded into RTP packets and transmitted with the identified destination and source addresses and RTP session identifier in operation 84. If there is a delay time associated with the retransmission stream, then each packet is encoded with the media associated with the identified delay.
The spatial redundancy scheme and the temporal redundancy scheme described above can also be easily combined with existing anycast sourcing of streams to protect against feed loss.
The media stream receivers 26 may already be implemented to support the general notion of joining RTP sessions on multiple multicast groups and may already understand the RTP retransmission packet formats. These receivers may then be oblivious to whether spatial or temporal redundancy is being employed. These receivers 26 just see a different RTP packet arrival order.
An additional benefit to using retransmission as the model for stream redundancy is that all the RTP Control Protocol (RTCP) reception statistics are directly usable to assess stream quality, and can be used to measure outage characteristics by comparing the reception statistics of the native and retransmission streams. Further, this is reported back to the media stream source 14 via RTCP receiver reports so the characteristics and performance of the redundancy scheme is known to both the media stream receiver and media stream transmitter. In the case of large scale multicast using Visual Quality Experience (VQE)-like technology with quality monitoring servers in the network, the receiver reports can be summary reports in order to avoid swamping the transmitters with statistical data.
By utilizing a retransmission paradigm for stream redundancy, and the RTP retransmission framework in particular, a simpler, more flexible system can be used that provides high video robustness through stream redundancy. A common technique for NACK-based retransmission, temporal redundancy, and spatial redundancy is also provided. Existing standard packet encodings and RTP transmit and receive algorithms are also leveraged.
Significant reduction in receiver complexity is achieved over individual schemes having different redundancy/repair models. The retransmission-based repair scheme can also easily measure stream quality in a redundant stream environment.
These redundancy schemes can be used in any network-based equipment that generates real-time media streams. For example, broadcast servers, Video On Demand (VOD) servers, voice mail servers and voice and video endpoints.
Several preferred examples have been described above with reference to the accompanying drawings. Various other examples of the invention are also possible and practical. The system may be exemplified in many different forms and should not be construed as being limited to the examples set forth above.
The figures listed above illustrate preferred examples of the application and the operation of such examples. In the figures, the size of the boxes is not intended to represent the size of the various physical components. Where the same element appears in multiple figures, the same reference numeral is used to denote the element in all of the figures where it appears.
Only those parts of the various units are shown and described which are necessary to convey an understanding of the examples to those skilled in the art. Those parts and elements not shown are conventional and known in the art.
The system described above can use dedicated processor systems, micro controllers, programmable logic devices, or microprocessors that perform some or all of the operations, Some of the operations described above may be implemented in software and other operations may be implemented in hardware.
For the sake of convenience, the operations are described as various interconnected functional blocks or distinct software modules. This is not necessary, however, and there may be cases where these functional blocks or modules are equivalently aggregated into a single logic device, program or operation with unclear boundaries. In any event, the functional blocks and software modules or features of the flexible interface can be implemented by themselves, or in combination with other operations in either hardware or software.
Having described and illustrated the principles of the invention in a preferred embodiment thereof, it should be apparent that the invention may be modified in arrangement and detail without departing from such principles. We claim all modifications and variation coming within the spirit and scope of the following claims.
Number | Name | Date | Kind |
---|---|---|---|
3840862 | Ready | Oct 1974 | A |
4291196 | Spaniol et al. | Sep 1981 | A |
4426682 | Riffe et al. | Jan 1984 | A |
4802085 | Levy et al. | Jan 1989 | A |
4811203 | Hamstra | Mar 1989 | A |
5155824 | Edenfield et al. | Oct 1992 | A |
5307477 | Taylor | Apr 1994 | A |
5524235 | Larson et al. | Jun 1996 | A |
5551001 | Cohen et al. | Aug 1996 | A |
5636354 | Lear | Jun 1997 | A |
5734861 | Cohn et al. | Mar 1998 | A |
5828844 | Civanlar et al. | Oct 1998 | A |
5870763 | Lomet | Feb 1999 | A |
5926227 | Schoner et al. | Jul 1999 | A |
5933195 | Florencio | Aug 1999 | A |
5933593 | Arun et al. | Aug 1999 | A |
6003116 | Morita et al. | Dec 1999 | A |
6119205 | Wicki et al. | Sep 2000 | A |
6278716 | Rubenstein et al. | Aug 2001 | B1 |
6289054 | Rhee | Sep 2001 | B1 |
6567929 | Bhagavath et al. | May 2003 | B1 |
6608841 | Koodli | Aug 2003 | B1 |
6766418 | Alexander | Jul 2004 | B1 |
6782490 | Maxemchuk et al. | Aug 2004 | B2 |
6792047 | Bixby et al. | Sep 2004 | B1 |
6804244 | Anandakumar et al. | Oct 2004 | B1 |
6865157 | Scott et al. | Mar 2005 | B1 |
6910148 | Ho et al. | Jun 2005 | B1 |
7114002 | Okumura et al. | Sep 2006 | B1 |
7164680 | Loguinov | Jan 2007 | B2 |
7180896 | Okumura | Feb 2007 | B1 |
7224702 | Lee | May 2007 | B2 |
7234079 | Cheng et al. | Jun 2007 | B2 |
7257664 | Zhang | Aug 2007 | B2 |
7263075 | Roh et al. | Aug 2007 | B2 |
7296205 | Curcio et al. | Nov 2007 | B2 |
7324527 | Fraas et al. | Jan 2008 | B1 |
7373413 | Nguyen et al. | May 2008 | B1 |
7392424 | Ho et al. | Jun 2008 | B2 |
7397759 | Tan et al. | Jul 2008 | B2 |
7532621 | Birman et al. | May 2009 | B2 |
7562277 | Park et al. | Jul 2009 | B2 |
7707303 | Albers et al. | Apr 2010 | B2 |
20020006137 | Rabenko et al. | Jan 2002 | A1 |
20020114332 | Apostolopoulos et al. | Aug 2002 | A1 |
20020126711 | Robinett et al. | Sep 2002 | A1 |
20030101408 | Martinian et al. | May 2003 | A1 |
20030158899 | Hughes | Aug 2003 | A1 |
20030236903 | Piotrowski | Dec 2003 | A1 |
20040071128 | Jang et al. | Apr 2004 | A1 |
20040078624 | Maxemchuk et al. | Apr 2004 | A1 |
20040100937 | Chen | May 2004 | A1 |
20040114576 | Itoh et al. | Jun 2004 | A1 |
20040143672 | Padmanabham et al. | Jul 2004 | A1 |
20040196849 | Aksu et al. | Oct 2004 | A1 |
20040244058 | Carlucci et al. | Dec 2004 | A1 |
20050058131 | Samuels et al. | Mar 2005 | A1 |
20050074007 | Samuels et al. | Apr 2005 | A1 |
20050078698 | Araya et al. | Apr 2005 | A1 |
20050099499 | Braunstein | May 2005 | A1 |
20050198367 | Ettikan | Sep 2005 | A1 |
20050207406 | Reme | Sep 2005 | A1 |
20050249231 | Khan | Nov 2005 | A1 |
20050265346 | Ho et al. | Dec 2005 | A1 |
20050289623 | Midani et al. | Dec 2005 | A1 |
20060075084 | Lyon | Apr 2006 | A1 |
20060075443 | Eckert | Apr 2006 | A1 |
20060083263 | Jagadeesan et al. | Apr 2006 | A1 |
20060085551 | Xie et al. | Apr 2006 | A1 |
20060120378 | Usuki et al. | Jun 2006 | A1 |
20060126667 | Smith et al. | Jun 2006 | A1 |
20060143669 | Cohen | Jun 2006 | A1 |
20060159093 | Joo et al. | Jul 2006 | A1 |
20060187914 | Gumaste et al. | Aug 2006 | A1 |
20060188025 | Hannuksela | Aug 2006 | A1 |
20060242240 | Parker et al. | Oct 2006 | A1 |
20060242669 | Wogsberg | Oct 2006 | A1 |
20060279437 | Luby | Dec 2006 | A1 |
20070008934 | Balasubramanian et al. | Jan 2007 | A1 |
20070044130 | Skoog | Feb 2007 | A1 |
20070204320 | Wu et al. | Aug 2007 | A1 |
20070214490 | Cheng et al. | Sep 2007 | A1 |
20070268899 | Cankaya | Nov 2007 | A1 |
20070277219 | Toebes et al. | Nov 2007 | A1 |
20080062990 | Oran | Mar 2008 | A1 |
20080189489 | Mitra | Aug 2008 | A1 |
20080192839 | Gahm et al. | Aug 2008 | A1 |
20080253369 | Oran | Oct 2008 | A1 |
20080256409 | Oran et al. | Oct 2008 | A1 |
20080267078 | Farinacci et al. | Oct 2008 | A1 |
20080310435 | Cagenius et al. | Dec 2008 | A1 |
20090034627 | Rodriguez | Feb 2009 | A1 |
20090034633 | Rodirguez et al. | Feb 2009 | A1 |
20090049361 | Koren et al. | Feb 2009 | A1 |
20090055540 | Foti et al. | Feb 2009 | A1 |
20090119722 | VerSteeg et al. | May 2009 | A1 |
20090150715 | Pickens et al. | Jun 2009 | A1 |
20090201803 | Filsfils et al. | Aug 2009 | A1 |
20090201805 | Begen | Aug 2009 | A1 |
20090213726 | Asati | Aug 2009 | A1 |
20100005360 | Begen | Jan 2010 | A1 |
20100036962 | Gahm | Feb 2010 | A1 |
Number | Date | Country |
---|---|---|
1271953 | Jan 2003 | EP |
1581005 | Sep 2005 | EP |
1608116 | Dec 2005 | EP |
1670252 | Jun 2006 | EP |
2008728919 | Feb 2008 | EP |
7814245.2 | May 2009 | EP |
2007814246 | Jun 2009 | EP |
8731381.3 | Nov 2009 | EP |
9718637 | May 1997 | WO |
0035201 | Jun 2000 | WO |
WO 0076113 | Dec 2000 | WO |
2001061909 | Aug 2001 | WO |
2006031925 | Mar 2006 | WO |
2006057606 | Jun 2006 | WO |
2006107424 | Oct 2006 | WO |
WO 2008000289 | Jan 2008 | WO |
2008033644 | Mar 2008 | WO |
2008033645 | Mar 2008 | WO |
2008100725 | Aug 2008 | WO |
2008112465 | Sep 2008 | WO |
2009099847 | Aug 2009 | WO |
Number | Date | Country | |
---|---|---|---|
20080225850 A1 | Sep 2008 | US |