Patent Publication Number: US-2006005101-A1

Title: System and method for providing error recovery for streaming fgs encoded video over an ip network

Description:
The present claimed invention relates to the field of streaming media data, particularly scalably encoded data. More specifically, the present claimed invention relates to the protection of such data.  
      Video transmission or video streaming within communication networks, such as ISDN networks or the Internet has become an important application of such communications networks. In the future, packet oriented mobile networks like GPRS (General Packet Radio Service) and UMTS (Universal Mobile Telecommunications Standard/System) will be commonly used to connect mobile users to fixed communication networks like the above-mentioned ISDN networks or the Internet. It is therefore important to employ efficient and intelligent support of high quality video streaming into wireless radio networks.  
      The problem of error concealment in video communications is becoming increasingly important because of the growing interest in the delivery of compressed video over wireless channels. Several packet-oriented transmission modes have been proposed for next generation wireless standards like EGPRS (Enhanced General Packet Radio Service) or UMTS, which are mostly based on the same principle: Long message blocks, typically IP packets that enter the wireless part of the network, are split up into segments of desired length, which can be multiplexed onto link layer packets of fixed size. The packets are then transmitted sequentially over the wireless link, reassembled, and passed on to the next network element. However, compared to the rather benign channel characteristics of present day fixed or wire line networks, wireless links suffer from severe fading, noise, and interference conditions in general, thus resulting in a relatively high residual bit error rate after detection and decoding.  
      Two types of error-recovery methods are commonly used to support video streaming over both wired and wireless networks: retransmission and forward-error correction (FEC). FEC coding is a well-known technique for achieving error correction and detection in data communications. FEC has the disadvantage of increasing transmission overhead and hence reducing usable bandwidth for the payload data. Thus it is generally used judiciously in video services, since video services are very demanding in bandwidth but can tolerate a certain degree of loss. The retransmission method has the advantage of high bandwidth utilization, but suffers from long recovery delays which may not be tolerable for applications having strict delay constraints.  
      In the past, there has been a distinct line between utilizing one or the other method. An application design chooses either retransmission or FEC. However, IP based networks, are heterogeneous and evolving. It is conceivable that applications could operate in completely different network environments, making the network conditions hard to predict. This situation makes it difficult to choose the right error-recovery method for all possible operating scenarios.  
      An ideal solution for error-recovery would be to combine retransmission and FEC to thereby allow an application to dynamically choose one or the other, or rather combine them in real-time according to perceived network conditions.  
      Hybrid ARQ and adaptive FEC are two methods which combine the strengths of retransmission and FEC. In hybrid ARQ, the video data is pre-encoded by some FEC coding scheme, such as a Reed-Solomon coding scheme, and then the sender and receiver use a specially designed ARQ-like protocol to perform the protection. In adaptive FEC, FEC data is separated from original media streams, and “join”/“leave” commands are employed to achieve adaptive protection. However, adaptive FEC is limited in two ways. First, it uses Internet Group Management Protocol (IGMP) to signal the join/leave action, which may introduce a very long latency in the signaling process that eventually defeat the protection purpose, such as retransmission. Second, while it emphasizes the FEC coding algorithm, it lacks an architecture and protocols to carry out the goals of adaptive FEC.  
      It would be an advance in the art to provide a realistic architecture that specifies the protocols that are necessary for carrying out adaptive and efficient protection, thereby allowing applications to switch between different protection strategies dynamically.  
      In accordance with certain aspects of the present invention, methods and apparatuses are provided which allow a receiving device (client) to dynamically elect to receive protection data and determine the type of protection data to be received.  
      For example, in accordance with certain exemplary implementations of the present invention, a method is provided for use in a server and a corresponding receiving device in communication with the server. The method includes the acts of: a first coding act for producing an encoded base layer from the bit stream using a frame prediction coding technique; a second coding act for producing an encoded enhancement layer from the bit stream using a fine granular scalable (FGS) coding technique; a first generating act for generating at least one protection bit stream; a second generating act for generating a first base layer hinting bit stream; a third generating act for generating a first enhancement layer hinting bit stream; and a fourth generating act for generating a first protection hinting bit stream.  
      According to another aspect, the present invention is a system that includes: means for producing an encoded base layer from the bit stream using a frame prediction coding technique; means for producing an encoded enhancement layer from the bit stream using a fine granular scalable (FGS) coding technique; means for generating at least one protection bit stream; means for generating a first base layer hinting bit stream; means for generating a first enhancement layer hinting bit stream; and means for generating a first protection hinting bit stream.  
      The proposed error protection method and apparatus, referred to herein as on-demand protection, provides a number of advantages over the prior art, including: (1) The method may be advantageously fitted into an overall FGS streaming architecture; (2) The method supports both multicast and unicast applications; (3) The method takes full advantage of the MPEG-4 file format, thereby allowing a general-purpose MPEG-4 server to perform adaptive error protection to streaming applications; (4) Protection data is separated from protected data. In this manner, changing the protection data can change the protection level or strategy, but the protection procedures remain the same; (5) The method allows applications to dynamically choose between retransmission-like protection or FEC-like protection or hybrid ARQ, thereby gaining better protection performance; (6) The method uses Real-time Transport protocol (RTSP) instead of Internet Group Management protocol (IGMP) which can achieve faster protection and provide more flexibility to applications. 
    
    
      Referring now to the drawings where like reference numbers represent corresponding parts throughout:  
       FIG. 1  illustrates an exemplary network for performing end-to-end transmission of streaming media in which the present invention may be embodied; and  
       FIG. 2  illustrates, by way of example, an architecture and associated protocols for implementing the protection scheme of the invention.  
    
    
      The following terms are defined to better understand the present invention:  
      Streaming media—essentially mean real-time or near-real-time delivery of critical content (e.g., audio and/or video data) to a subscribing user&#39;s client device or devices. The client device/devices render the streamed media in a way that is appropriate for the client device and the media.  
      RTP protocol—It is used as the standard real time-based packetization-method in many environments and sits just above transport layers in a protocol stack, such as UDP (User Datagram Protocol)/IP(Internet Protocol). Generally, RTP is a transport protocol for real time data, and provides a timestamp, sequence number, data loss detection, security, content identification, and other data relevant to real time data delivery. RTP can be used in a unicast or multicast context.  
      RTSP protocol—an application-level protocol, which stands for Real Time Session Protocol, has been also developed to offer session negotiation and content description mechanism. RTSP describes how to stream the content from a server to a client. Streaming comprises breaking content into packets having sizes amenable (with respect to intermediate network characteristics) to transmission between the server and client.  
      FEC—Forward error correction is a well-known error correction technique which provides a mechanism by which a sending device provides a receiving device with additional FEC data that can be subsequently used by the receiving device to detect and correct errors in received data. Thus, to support FEC the sending device typically includes an FEC encoder and the receiving device typically includes an FEC decoder. FEC allows for different levels of encoding. The different levels of encoding can be expressed by a density ratio based on the amount of FEC data generated for a given amount of data. Thus, for example, in certain systems the FEC encoding level may be “high” when there is a ratio of one FEC packet for every data packet. In other systems, the FEC encoding level may be “lower” such that there is a ratio of on FEC packet to every four data packets.  
      In the following description, for purposes of explanation rather than limitation, specific details are set forth such as the particular architecture, interfaces, techniques, etc., in order to provide a thorough understanding of the present invention. For purposes of simplicity and clarity, detailed descriptions of well-known devices, circuits, and methods are omitted so as not to obscure the description of the present invention with unnecessary detail.  
      It is assumed herein that the Real-time Transport Protocol (RTP) and the Real Time Streaming Protocol (RTSP) underlie delivery of content to the client, since these protocols are well known. It will be appreciated by one skilled in the art that these protocols are discussed herein for exemplary purposes only due to their broad familiarity by artisans and that any protocol providing the signaling characteristics relied upon herein, may be used.  
      In one aspect, the present invention relates to a system and associated methods for providing at least one media data protection stream, independent of an associated media data stream, and further providing at least one media data hint track to facilitate the transmission of the media data stream over a network and at least one protection data stream to facilitate the transmission of the at least one media data protection stream across the network.  
      In a related aspect, the present invention is directed to a system and associated methods for allowing an application the freedom to dynamically choose an error protection scheme on demand.  
      Although the following is addressed in particular to MPEG-4 FGS, it will be clear to a person skilled in the art that the invention can be advantageously applied to any scalable coding scheme.  
      The principles and operation of method and a system for providing an error-protection scheme over an IP network may be better understood with reference to the drawings and the accompanying description.  
       FIGS. 1 and 2 , discussed below, and the various embodiments used to describe the principles of the present invention in this patent document are by way of illustration only and should not be construed in any way to limit the scope of the invention. Those skilled in the art will understand that the principles of the present invention may be implemented in any suitably arranged video encoder and decoder.  
      The present invention provides a novel architecture and specific protocols to provide a capability for providing an adaptive and efficient error protection scheme, for use in a network, such as the one shown in  FIG. 1 , thereby allowing applications to switch between different error protection strategies dynamically, as will be described.  
       FIG. 1  illustrates a simplified representation of one embodiment of a system  100  incorporating the invention. As shown, a client  130  and a server  118  are in communication over a network  120 . Exemplary system  100  is only one example of a suitable system and is not intended to suggest any limitation as to the scope of use or functionality of the improved methods and apparatuses described herein.  
      For purposes of illustration, the following description will assume that an audio or video signal has been converted into a digital data stream (a media stream) and is to be transmitted in a network from a source node  110 , via a server  118 , to a destination node (i.e., client)  130 . The description will further assume by way of example that the digital data stream, or payload, has been divided into a sequence of frames or payload packets. According to the embodiment of the present invention, the video encoder (source node)  110  includes a video frame source  112 , a video encoder including a base layer encoder  114   a  and an enhancement layer encoder  114   b  and an encoder buffer  116 . Video frame source  112  may be any device capable of generating a sequence of uncompressed video frames, including a television antenna and receiver unit, a video cassette player, a video camera, a disk storage device capable of storing a “raw” video clip, and the like. The uncompressed video frames, sourced from video frame source  112 , enter video encoder  114  at a given picture rate (or “streaming rate”) and are compressed according to any known compression algorithm or device, such as an MPEG-4 encoder. Video encoder  114  then transmits the compressed video frames to encoder buffer  116  for buffering in preparation for transmission across data network  120  via server  118 . It is noted that video encoder  110  may be executing either external to or within a general purpose server  118 .  
      Data network  120  may be any suitable network and may include portions of both public data networks, such as the Internet, and private data networks, such as an enterprise-owned local area network (LAN), metropolitan are network (MAN) or wide area network (WAN).  
      Depending on the application, destination node (client)  130 , which receives the streaming media, may be embodied in many different ways, including a computer, a handheld entertainment device, a set-top box, a television, an Application Specific Integrated Circuits (ASIC), and so forth. Destination node (client)  130  includes a decoder buffer  132 , a video decoder  134  and a video display  136 .  
       FIG. 2  illustrates, by way of example, an architecture and associated protocols for implementing the protection scheme of the invention having ACTs  1 - 5  shows as A 1 -A 5 .  
      ACT  1 :  
      An FGS encoded .mp4 file is shown at act  1  of  FIG. 2 . The .mp4 file may be encoded such as at the video encoder  112  (See  FIG. 1 ) using FGS techniques wherein a portion of the video data is first used to produce a base layer (BL)  202 . An Enhancement layer (EL)  204  is then generated using the motion compensated residual images. Motion compensated residual images are then generated from the video data and base layer (BL)  202  using a fine granular coding technique. As is well known in the art, FGS encoding represents one type of video scalability. Images coded with this type of scalability can be decoded progressively. In other words, the decoder can start decoding and displaying the image without the need for receiving all of the data used for coding that image. As more data is received, the quality of the decoded image is progressively enhanced until the complete information is received, decoded, and displayed.  
      In addition to generating the FGS base layer  202  and enhancement layer  204 , in accordance with the principles of the invention, multiple protection data streams are generated, each being dynamically selectable by the client upon demand. There is shown separate and independent protection data streams, each associated with the .mp4 file. A first protection track (EP 1 )  206  may be constructed, for example, in accordance with the principles of FEC error protection. A second protection track (EP 2 )  208  may be constructed, for example, in accordance with the principles of retransmission error protection. A third protection track (EP 3 )  210  may be constructed, for example, in accordance with a hybrid scheme that incorporates features of FEC error protection and retransmission error protection. Each of the three protection schemes are dynamically selectable by a client upon demand.  
      ACT  2 :  
      The principles of multi-track hinting are taught in co-pending U.S. patent application Ser. No. 60/451,916 filed Mar. 4, 2003, entitled “System and Method for transmitting scalable coded video over an IP network”, incorporated by reference herein in its entirety. In accordance with the principles of multi-track hinting taught therein, a pre-processing method, referred to as multi-track hinting, backward compatible with the current MPEG-4 media file format standard, makes it possible to use a general purpose MPEG-4 streaming server to efficiently stream layered video in accordance with changing channel characteristics, complexity constraints and user preferences. That is, the server, without major modification, is capable of automatically using multiple channels (i.e., RTP connections), thereby providing the streaming system the flexibility to adapt to network conditions (e.g., available bandwidth) by adjusting the number of scalable layers to be transmitted. As the available network bandwidth decreases, less hint tracks are required by the server because a smaller portion of the video stream is scalably transmitted to comply with the decreased bandwidth.  
      As shown in  FIG. 2 , a hinter module  214  generates a hint track (i.e., hint  1 )  216   a  to facilitate the transmission of the FGS encoded base layer  202  across a data network such as, for example, data network  120 . In addition, the hinter module  214  generates a plurality of hint tracks, i.e., (hint tracks  2 - 5 )  216   b - e , each being associated with enhancement layer (EL)  204 .  
      One feature of the present invention is that each of the protection tracks, i.e., EP 1 , EP 2  and EP 3 , may advantageously utilize the principles of multi-track hinting method to thereby provide error protection according to the prevailing network conditions. That is, multiple hint tracks may be used to stream the protection track via multiple RTP connections in much the same manner as is performed for the .mp4 parent data file, as described in co-pending application 60/451,916, referenced above. This flexibility in streaming the protection track across a network is illustrated by way of example in  FIG. 2  where there is shown multiple hint tracks associated with each of the protection tracks, e.g., EP 1 - 3 . Specifically, for the first protection track EP 1   206 , the hinter  214  generates hint tracks  6  and  7 , designated as  216   f  and  216   g . For protection track EP 2   208 , the hinter  214  generates hint tracks  8 ,  9  and  10 , designated respectively as  216   h ,  216   i  and  216   j . Associated with protection track EP 3   210 , the hinter  214  generates a single hint track  11 ,  216   k.    
      In the present context, the teachings of co-pending application 60/451,916, referenced above, remain true, however, in addition, hint tracks are utilized to transmit protection tracks to protect data streams being transmitted across a network. Specifically, the protection data streams may be scalably transmitted across the network in compliance with a measured network condition. However, the network condition of note in the present context is not the bandwidth, as is true of the video data stream, but rather the measured packet loss rate. As the packet loss rate is determined to be increasing there is a need or increased error protection. Accordingly, additional hint tracks above the number initially used to facilitate the transmission of the protection data streams will be utilized to compensate for the measured increase in the packet loss rate.  
      As a specific example, reference is made to exemplary protection track EP 2   208 , which has associated with it three hint tracks  8 - 10 ,  216   h - j , which were generated simultaneous with EP 2   208 . Assuming that the initially measured packet loss rate is such that only a subset of the three hint tracks are initially required to facilitate the scalable portion of protection data stream EP 2   208  necessary to satisfy a predetermined packet loss threshold, e.g., hint track  8   216   h . Assume now that the packet loss rate increases at some point. It may then be required to utilize one or more additional hint tracks associated with protection data stream EP 2   208  to compensate for the degraded network condition (i.e., increase in packet loss rate). For example, it may be required at some point to utilize all three hint tracks  8 - 10   216   h - j  to thereby provide the highest scalable portion of protection data stream EP 2   208 .  
      The above description is provided to illustrate one feature of the invention. That being, the novel protection data streams may be scalably transmitted across the network in the same manner as the parent video data stream with the distinction being the parent video stream is scalably modified in accordance with a measured change in network bandwidth while the protection data streams are scalably modified in accordance with the measured change in packet loss rate. In the former case, when the bandwidth is decreased, less hint tracks are required. Similarly, and in the latter case, when the packet loss rate is decreased, less hint tracks are required.  
      ACT  3 :  
      In accordance with the principles of the invention, the client  130  may, at any point in time, dynamically subscribe or unsubscribe to receive a protection channel. Accordingly, the client  130  needs to monitor its receiving quality and actively trigger the protection channel when it deems necessary. To initiate error protection in accordance with the method of the invention, a client must first be made aware of the type of error protection available at the server. As such, a mechanism is required to inform clients of the availability and description of the types of error protection that are available from the server. This mechanism is preferably executed by initially performing a Session Description Protocol (SDP) between the client and server.  
      Generally, SDP is a protocol intended for describing multimedia sessions for the purposes of session announcement, session invitation, and other forms of multimedia session initiation. It is also maintained by the IETF, and further information regarding SDP is located on the Internet at www.ietf.org in general, and at www.ietf.org/rfc/rfc2327.txt in particular. The present invention extends the functionality of SDP to include protocols which convey additional information to the client concerning the availability and characteristics of error protection available from the server.  
      In operation, the SDP protocol is performed between client and server prior to making a subscription request for a video data file, e.g., an .mp4 file. The SDP protocol session avails the client of various information about the session. Most importantly, the client is made aware of what options are available regarding error protection. Namely, the types of error protection available, the track numbers and so on. The client stores this information which may then be later used if the client should at some point during the transmission of the video source file, determine that error protection is warranted.  
      In the event the client makes a determination that error protection is warranted, the client requests error protection by first making a subscription request to the server using the RTSP protocol. As described above, the RTSP protocol is an application-level protocol, which offers a session negotiation and content description mechanism. That is, the RTSP protocol describes how to stream content from a server to a client. The request is transmitted across the IP network  120  using a common IP based packet switching technology such as the Transmission Control Protocol (TCP). As is well known in the art, the TCP protocol is a network protocol system that is independent of computer or network operating system and architectural differences. Assuming there is no pre-existing communication channel between the client and the server, a server receives a client subscription request. An exemplary client subscription request may have the following form:  
                                  Client → Server                             1.   SET_PARAMETER                         rtsp://130.140.67.83/sample.mp4 RTSP/1.0                             2.   CSeq: 32           3.   Session: 3453643           4.   Content-length: 35           5.   Content-type: text/bool/integer                                 6.   Track 11: 1   //the 11 th  track is set to be 1                         (ACTIVE)                                 7.   Range: 34521 - 34570   // 50 packets are required,                         (start seq. #                 - end seq. #) //                  
 
      Of particular note in the subscription request above, are lines 6 and 7. Specifically, the client has made a subscription request to activate protection track  11  for the range of packets denoted by packet identifiers 34521-34570. That is, the client has made a determination that the specific range of packets specified has been corrupted or dropped and wishes to retrieve them via protection channel  11 . Protection channel  11  may be synonymous with any number of error protection schemes provided by the server including FEC error protection, retransmission error protection, or a hybrid scheme.  
      With continued reference to  FIG. 2 , protection channel  11  may be synonymous with protection track EP 1  or EP 2  or EP 3 , for example.  
      In response to the client based subscription request, the server may respond to the client with an acknowledgment which may have the following form: 
      Server→Client 
        1. RTSP/1.0 200OK     2. CSeq: 32     3. Date: 28 Jan. 2002 15:33:10 GMT    
       

      As emphasized in line 6 of the subscription request above, it should be noted that one feature of the present invention, is the flexibility provided in allowing a client to dynamically select one protection scheme from among a plurality of error protection choices available from the server. This flexibility stands in contrast to prior art approaches which restrict a client to select only a single unchangeable method of error protection, e.g., either retransmission or FEC protection. Advantageously, by maintaining the protection channel(s) as separate distinct data streams apart from the corresponding data stream, multiple error protection options are made available to the client upon demand. Further, by separating protection data from protected data, changing the protection data can change the protection level or strategy, but the protection procedures remain the same.  
      Next, it will be described in more detail how a client selects a protection scheme from among the protection schemes made available at the server.  
      In accordance with one embodiment, a protection scheme may be selected by the client via the range parameter (See line 7 above, i.e., Range: 34521-34570). That is, whenever the end sequence number in the range, e.g., 34570, is specified to be infinity as part of the request, the server may assume that the client desires an FEC type error protection mode, for example. Alternatively, whenever the end sequence number is equal to the starting sequence number+1, it may be assumed that the client desires a retransmission type protection mode. If neither of these two options are selected, it is assumed that the client desires a hybrid transmission mode (e.g., a combination of FEC and retransmission), as indicated in the example above (i.e., end sequence number&gt;1+starting sequence number and not equal to infinity).  
      Other modes of selecting a protection scheme, not explicitly recited herein, are also within the contemplation of the invention.  
      With continued reference to  FIG. 2 , subsequent to sending the acknowledgment in response to the client subscription request, the server loads the appropriate hint tracks and creates an RTP connection for each hint track. In the example shown, RTP connection  218   a  is created for hint track  1 ,  216   a , RTP connections  218   b - e  are created for hint tracks  216   b - e , respectively. Assume, for purposes of explanation that protection track EP 1  is selected by the client  130 , in this case hint tracks  6  and  7 ,  216   f  and  216   g , respectively are loaded and RTP connections  218   f  and  218   g  are created. It is to be appreciated that additional dedicated RTP connections, e.g.,  218   f  and  218   g , are created to facilitate the transfer of protection data.  
      ACT  4 :  
      At act  4 , the client  130  creates a corresponding RTP connection to those described above at act  3  to facilitate the transfer of the video data and corresponding protection track data.  
      ACT  5 :  
      At act  5 , the transmitted FGS encoded video data streams, i.e., BL  202  and EL  204  are decoded and displayed.  
      The foregoing descriptions of specific embodiments of the present invention have been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, and obviously many modifications and variations are possible in light of the above teaching. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the claims appended hereto and their equivalents.