WO2007095550A2 - Streaming and buffering using variable fec overhead and protection periods - Google Patents

Streaming and buffering using variable fec overhead and protection periods Download PDF

Info

Publication number
WO2007095550A2
WO2007095550A2 PCT/US2007/062086 US2007062086W WO2007095550A2 WO 2007095550 A2 WO2007095550 A2 WO 2007095550A2 US 2007062086 W US2007062086 W US 2007062086W WO 2007095550 A2 WO2007095550 A2 WO 2007095550A2
Authority
WO
WIPO (PCT)
Prior art keywords
fec
source
data
packet
receiver
Prior art date
Application number
PCT/US2007/062086
Other languages
French (fr)
Other versions
WO2007095550A3 (en
Inventor
Mark Watson
Michael G. Luby
Original Assignee
Digital Fountain, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Digital Fountain, Inc. filed Critical Digital Fountain, Inc.
Priority to JP2008554547A priority Critical patent/JP5550834B2/en
Priority to KR1020087022279A priority patent/KR101292851B1/en
Priority to EP07756943.2A priority patent/EP1985021A4/en
Publication of WO2007095550A2 publication Critical patent/WO2007095550A2/en
Publication of WO2007095550A3 publication Critical patent/WO2007095550A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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/1607Details of the supervisory signal
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0083Formatting with frames or packets; Protocol or part of protocol for error control
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3761Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0009Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding

Definitions

  • the present invention relates to encoding and decoding data in communications systems and more specifically to communication systems that encode and decode data to account for errors and gaps in communicated data while dealing with the needs of receivers to quickly provide data as it is received.
  • BACKGROUND OF THE INVENTION [0006] Transmission of files and streams between a sender and a recipient over a communications channel has been the subject of much literature.
  • a recipient desires to receive an exact copy of data transmitted over a channel by a sender with some level of certainty. Where the channel does not have perfect fidelity (which covers most all physically realizable systems), one concern is how to deal with data lost or garbled in transmission. Lost data (erasures) are often easier to deal with than corrupted data (errors) because the recipient cannot always tell when corrupted data is data received in error. Many error-correcting codes have been developed to correct for erasures and/or for errors.
  • FEC forward error correcting
  • a file, stream or other block of data to be transmitted over a packet network is partitioned into equal size input symbols, encoding symbols the same size as the input symbols are generated from the input symbols using an FEC code, and the encoding symbols are placed and sent in packets.
  • the "size" of a symbol can be measured in bits, whether or not the symbol is actually broken into a bit stream, where a symbol has a size of M bits when the symbol is selected from an alphabet of 2 M symbols.
  • a packet oriented erasure FEC coding scheme might be suitable.
  • a file transmission is called reliable if it allows the intended recipient to recover an exact copy of the original file even in the face of erasures in the network.
  • a stream transmission is called reliable if it allows the intended recipient to recover an exact copy of each part of the stream in a timely manner even in the face of erasures in the network.
  • Both file transmission and stream transmission can also be somewhat reliable, in the sense that some parts of the file or stream are not recoverable or for streaming if some parts of the stream are not recoverable in a timely fashion. Packet loss often occurs because sporadic congestion causes the buffering mechanism in a router to reach its capacity, forcing it to drop incoming packets. Protection against erasures during transport has been the subject of much study.
  • a block of data to be transmitted over a data transmission channel is partitioned into equal size input symbols, encoding symbols of the same size are generated from the input symbols and the encoding symbols are sent over the channel.
  • the size of a symbol is typically one bit or a few bits, whether or not a symbol is actually broken into a bit stream.
  • a bit-stream oriented error- correction FEC coding scheme might be suitable.
  • a data transmission is called reliable if it allows the intended recipient to recover an exact copy of the original block even in the face of errors (symbol corruption, either detected or undetected in the channel).
  • the transmission can also be somewhat reliable, in the sense that some parts of the block may remain corrupted after recovery. Symbols are often corrupted by sporadic noise, periodic noise, interference, weak signal, blockages in the channel, and a variety of other causes.
  • FEC codes require excessive computing power or memory to operate.
  • Another problem is that the number of output symbols must be determined in advance of the coding process. This can lead to inefficiencies if the loss rate of packets is overestimated, and can lead to failure if the loss rate of packets is underestimated.
  • Chain reaction codes are FEC codes that allow for generation of an arbitrary number of output symbols from the fixed input symbols of a file or stream. Sometimes, they are referred to as fountain or rateless FEC codes, since the code does not have an a-priori fixed transmission rate and the number of possible output symbols can be independent of the number of input symbols. Novel techniques for generating, using and operating chain reaction codes are shown, for example, in Luby and Shokrollahi.
  • Multi-stage chain reaction codes such as those described in Shokrollahi and developed by Digital Fountain, Inc. under the trade name "Raptor” codes.
  • Multi-stage chain reaction codes are used, for example, in an encoder that receives input symbols from a source file or source stream, generates intermediate symbols from the input symbols and the intermediate symbols are the source symbols for a chain reaction encoder.
  • input symbols refer to the data received from a file or stream and source symbols refer to the symbols that are used to generate output symbols.
  • the source symbols include the input symbols and in some cases, the source symbols are the input symbols.
  • input symbols comprise information known to the sender which is to be communicated to the receiver
  • source symbols are the symbols used by at least one stage of an encoder and are derived from the input symbols
  • output symbols comprise symbols that are transmitted by the sender to the receiver.
  • the receiver may begin to use the data before the transmission is complete. For example, with a video-on-demand system, the receiver might start playing out a video after only a small portion of the video data is received and assume that the rest of the video data will be received before it is needed. In such systems, encoding should not be done over the entire transmission, because then some output symbols at the end of the transmission might encode for input symbols needed at the beginning of the video, in which case those output symbols are wasteful since their information is needed when it is not available and is not needed when it is available. To avoid this, the data stream is typically divided into blocks wherein the input data of the block is encoded and sent before the next block is prepared and blocks normally do not depend on input symbols outside those blocks.
  • data is streamed from a transmitter to a receiver, wherein streaming is transferring data with an assumption that the receiver will begin using the data before it is all transmitted and received.
  • the streamed data includes forward error correction ("FEC") and the rates of data consumption can vary.
  • the transmitter has an input rate at which it uses up its input data and a transmit rate at which it sends that data (and FEC data as needed) and the two rates can be different and can change when FEC is involved, as there is some overhead involved with FEC coding.
  • reception rate at which the receiver receives data
  • a consumption rate at which the receiver uses up data for its output.
  • the transmitter transmits using a transmit rate higher than the consumption rate and the extra bandwidth is usable for FEC protection and buffering.
  • the excess rate varies over a transmission period.
  • Fig. 1 is a block diagram of a communications system that can use the variable FEC overhead techniques described herein.
  • FIG. 2 is a diagram of an FEC streaming framework architecture.
  • Fig. 3 is a diagram of an FEC source packet.
  • Fig. 4 is a diagram of an FEC repair packet.
  • Fig. 5 is a diagram of an FEC object information block.
  • Fig. 6 is a diagram of a source FEC payload ED format.
  • Fig. 7 is a diagram of a repair FEC payload ED format.
  • Fig. 8 is a diagram of an alternative repair FEC payload ED format.
  • Fig. 9 is a diagram of an FEC feedback protocol message format.
  • Fig. 10 is a diagram of a payload format for success report messages.
  • data is streamed from a transmitter to a receiver, wherein streaming is transferring data with an assumption that the receiver will begin using the data before it is all transmitted and received.
  • the streamed data includes forward error correction ("FEC"), which provides improvements over a retransmission- request scheme wherein retransmission of lost packets is requested by a receiver if packet loss is detected.
  • FEC forward error correction
  • the streamed data includes forward error correction ("FEC") and the rates of data consumption can vary.
  • the transmitter has an input rate at which it uses up its input data and a transmit rate at which it sends that data (and FEC data as needed) and the two rates can be different and can change when FEC is involved, as there is some overhead involved with FEC coding.
  • FEC forward error correction
  • the receiver At the receiver, there is a reception rate (at which the receiver receives data) and a consumption rate (at which the receiver uses up data for its output). In the absence of data loss over the channel, the reception rate is the same as the transmission rate.
  • There is a raw reception rate which is the rate at which data is received not counting overhead due to FEC.
  • the consumption rate is 11 MBS.
  • the consumption rate might be referred to as the "playout" rate.
  • the consumption be continuous such that the presentation of streamed data is not stalled or blocky, which would occur if all the data at the receiver is consumed and the reception rate is less than the consumption rate.
  • receivers typically have buffers so that the reception rate can temporarily drop below the consumption rate (due to packet loss, congestion, etc.) without running out of data to consume.
  • reception rate is exactly the consumption rate
  • a streaming system might be set up such that the transmission rate is higher than the consumption rate, or the transmission starts before the play-out begins. In either case, there is sufficient reception to at least partially fill the receiver buffer.
  • the transmitter transmits using a transmit rate higher than the consumption rate and the extra bandwidth is used in part for FEC protection and in part for buffer filling to allow for features such as a "quick start", where playout can begin soon after reception starts with sufficient buffer fill to reduce the risk of stalling the playout.
  • the bandwidth used for FEC protection and the amount of overhead used for buffer filling varies over time.
  • the overall transmission bit- rate might be a constant value, somewhat higher than the consumption rate, with more of the excess devoted to buffer filling at the start of the transmission and less devoted to buffer filling at later times.
  • the FEC protection would be less at the start of the transmission and higher at later times.
  • a constant bit rate is not required and a constant FEC overhead rate might be used.
  • MSCR multi-stage chain reaction
  • the multi-stage codes could be used for FEC protection of DVB-EP I real-time applications (multicast and unicast video with both MPEG-2 Transport Stream encapsulation and direct transport of audio and video over RTP).
  • the FEC Building Block [3] defined by the IETF Reliable Multicast working group describes an approach to specification of protocols using FEC which separates the definition of the protocol from the specification of the FEC code itself. This allows issues of protocol design to be addressed independently from the very different issues of FEC code selection.
  • separate specifications are provided for "Content Delivery Protocols” and for "FEC Schemes", the former defining the protocols and the latter defining the actual FEC codes.
  • the FEC Building Block describes rules that both kinds of specification must follow so that they can be used together and so it provides the "glue" between Content Delivery Protocols and FEC Schemes.
  • this specification is organized as a number of modular components. These are then combined to form complete protocols suitable for the DVB-IPI applications. These components include (1) an FEC Streaming Framework, which provides an overall protocol framework for the application of FEC to media streams and is described in Section 2; (2) a number of FEC Schemes, which define protocol components suitable for various classes of application and which define how core MSCR codes are applied to streaming applications, defined in Section 3; (3) modular protocol components that can be used to support applications based on the FEC Streaming Framework and FEC Schemes defined herein, shown in Section 4; and (4) protocol specifications for multicast and unicast video with both MPEG-2 Transport Stream encapsulation and direct transport of audio and video over RTP, constructed using the building blocks described above (Section 5).
  • FEC Streaming Framework which provides an overall protocol framework for the application of FEC to media streams and is described in Section 2
  • FEC Schemes which define protocol components suitable for various classes of application and which define how core MSCR codes are applied to streaming applications, defined in Section 3
  • FIG. 1 is a block diagram of a communications system 100 that uses multi-stage coding and can use the variable FEC overhead techniques described herein.
  • an input file 101 is provided to an input symbol generator 110.
  • Input symbol generator 110 generates a sequence of one or more input symbols (IS(O), IS(I), IS(2), ...) from the input file or stream, with each input symbol having a value and a position (denoted in Fig. 1 as a parenthesized integer).
  • the possible values for input symbols i.e., its alphabet, is typically an alphabet of 2 M symbols, so that each input symbol codes for M bits of the input file.
  • the value of M is generally determined by the use of communication system 100, but a general purpose system might include a symbol size input for input symbol generator 110 so that M can be varied from use to use.
  • the output of input symbol generator 110 is provided to an encoder 115.
  • Static key generator 130 produces a stream of static keys S 0 , Si, ....
  • the number of the static keys generated is generally limited and depends on the specific embodiment of encoder 115. The generation of static keys will be subsequently described in more detail.
  • Dynamic key generator 120 generates a dynamic key for each output symbol to be generated by the encoder 115. Each dynamic key is generated so that a large fraction of the dynamic keys for the same input file are unique. For example, Luby I describes embodiments of key generators that can be used.
  • the outputs of dynamic key generator 120 and the static key generator 130 are provided to encoder 115.
  • the number K of input symbols is used by the encoder 115 to select the associates. IfK is not known in advance, such as where the input is a streaming file, K can be just an estimate. The value K might also be used by encoder 115 to allocate storage for input symbols and any intermediate symbols generated by encoder 115.
  • Encoder 115 provides output symbols to a transmit module 140. Transmit module 140 is also provided the key of each such output symbol from the dynamic key generator 120. Transmit module 140 transmits the output symbols, and depending on the keying method used, transmit module 140 might also transmit some data about the keys of the transmitted output symbols, over a channel 145 to a receive module 150.
  • Channel 145 is assumed to be an erasure channel, but that is not a requirement for proper operation of communication system 100.
  • Modules 140, 145 and 150 can be any suitable hardware components, software components, physical media, or any combination thereof, so long as transmit module 140 is adapted to transmit output symbols and any needed data about their keys to channel 145 and receive module 150 is adapted to receive symbols and potentially some data about their keys from channel 145.
  • the value of K if used to determine the associates, can be sent over channel 145, or it may be set ahead of time by agreement of encoder 115 and decoder 155.
  • channel 145 can be a real-time channel, such as a path through the Internet or a broadcast link from a television transmitter to a television recipient or a telephone connection from one point to another, or channel 145 can be a storage channel, such as a CD-ROM, disk drive, Web site, or the like.
  • Channel 145 might even be a combination of a real-time channel and a storage channel, such as a channel formed when one person transmits an input file from a personal computer to an Internet Service Provider (ISP) over a telephone line, the input file is stored on a Web server and is subsequently transmitted to a recipient over the Internet.
  • ISP Internet Service Provider
  • channel 145 is assumed to be an erasure channel, communications system 100 does not assume a one-to-one correspondence between the output symbols that exit receive module 150 and the output symbols that go into transmit module 140.
  • channel 145 comprises a packet network
  • communications system 100 might not even be able to assume that the relative order of any two or more packets is preserved in transit through channel 145. Therefore, the key of the output symbols is determined using one or more of the keying schemes described above, and not necessarily determined by the order in which the output symbols exit receive module 150.
  • Receive module 150 provides the output symbols to a decoder 155, and any data receive module 150 receives about the keys of these output symbols is provided to a dynamic key regenerator 160.
  • Dynamic key regenerator 160 regenerates the dynamic keys for the received output symbols and provides these dynamic keys to decoder 155.
  • Static key generator 163 regenerates the static keys So, S 1 , ... and provides them to decoder 155.
  • the static key generator has access to random number generator 135 used both during the encoding and the decoding process. This can be in the form of access to the same physical device if the random numbers are generated on such device, or in the form of access to the same algorithm for the generation of random numbers to achieve identical behavior.
  • Encoder 115 can encode data using techniques shown herein so that the FEC encoding has variable overhead.
  • This section defines a framework for the definition of CDPs, in the sense of the FEC Building Block, which provides for FEC protection of streamed data flows over UDP.
  • This section does not define a complete Content Delivery Protocol, but rather defines only those aspects that are expected to be common to all Content Delivery Protocols that support streaming data over UDP.
  • the framework defined in this section is not specific to a single streaming application protocol.
  • the framework provides FEC protection for application protocol flows over UDP and for combined protection of multiple such flows. For example, multiple RTP flows may be protected together with the associated RTCP flows and potentially also other related flows such as MIKEY packets.
  • FEC Schemes in many loss conditions, the improvement in reliability achievable through the use of FEC with a given FEC overhead increases as the amount of data protected as a single block increases. Thus there is considerable advantage in the ability to protect multiple streams together, particularly in cases where the receiver requires all the streams in order to offer a useful service to the user.
  • This framework does not define how the flows to be protected are determined, nor how the details of the protected flows and the FEC streams which protect them are communicated from sender to receiver.
  • Complete Content Delivery Protocol specifications such as those presented in Section 5 - address these signalling requirements.
  • this section does specify the information which is required by the FEC Streaming Framework at sender and receiver - for example details of the flows to be FEC protected and the flow(s) that will carry the FEC protection data.
  • SDP attributes which the Content Delivery Protocols use to communicate this information.
  • the mechanism defined in this section comprises three components:
  • the UDP flows may include, for example, RTP, RTCP and SRTP packets and also other protocols related to the stream.
  • the mechanism does not place any restrictions on the source data which can be protected together, except that the source data is carried over UDP.
  • the data may be from several different UDP flows that are protected jointly.
  • multiple source blocks will be constructed for a stream each constructed from different sets of source packets. For example, each source block may be constructed from those source packets related to a particular segment of the stream in time.
  • a receiver supporting this streaming framework should support the packet format for FEC Source packets and should also support the packet format for FEC Repair packets.
  • This section does not define how the sender determines which source packets are included in which source blocks.
  • a specific Content Delivery Protocol may define this mapping or it may be left as implementation dependent at the sender.
  • a CDP specification should define how a receiver determines the length of time it should wait to receive FEC repair packets for any given source block.
  • the source block is a logical block of data to which the FEC code will subsequently be applied. It is constructed by concatenating 'Source Packet Information' (SPI) for each source packet.
  • SPI 'Source Packet Information'
  • the SPI for a packet contains a short identifier for the flow the packet belongs to, the length of the packet, the UDP payload and possible padding bytes.
  • the FEC Streaming Framework uses the FEC encoder specified by the FEC Scheme in use to generate the desired quantity of repair symbols from a source block. These repair symbols are then sent using the FEC repair packet format to the receiver.
  • the FEC Repair packets are sent to a UDP destination port different from any of the original UDP packets' destination port(s) as indicated by the FEC Streaming Configuration Information.
  • the receiver recovers original source packets directly from any FEC Source packets received.
  • the receiver also uses the received FEC Source Packets to construct a stored copy of the original packets in the same source block format as constructed at the sender.
  • the FEC Framework may use the FEC decoding algorithm defined by the FEC Scheme to recover a (hopefully, but not necessarily, complete) copy of the source block.
  • the SPI for the missing source packets can then be extracted from the completed parts of the source block and used to reconstruct the source packets to be passed to the application.
  • the receiver may need to buffer received source packets to allow time for the FEC Repair packets to arrive and FEC decoding to be performed before some or all of the received or recovered packets are passed to the application. If such a buffer is not provided, then the application must be able to deal with the severe re-ordering of packets that will be required. However, such buffering is Content Delivery Protocol and/or implementation- specific and is not specified here.
  • the receiver of FEC Source packets identifies the source block and the position within the source block occupied by the SPI derived from each packet. This information is known as FEC Source Packet Identification Information and may be communicated in several ways.
  • the FEC Source Packet Identification Information may be encoded into a specific field within the FEC Source packet format defined in this specification, called the Source FEC Payload ID field.
  • the exact contents and format of the Source FEC Payload ID field are defined by the FEC Scheme.
  • the FEC Scheme or CDP may define how the FEC Source Packet Identification Information is derived from other fields within the source packets. This document defines the way that the Source FEC Payload ID field, if used, is appended to source packets to form FEC Source packets.
  • the receiver of FEC Repair packets should also be able to identify the source block and the relationship between the contained repair data and the original source block. This information is known as FEC Repair Packet Identification information. This information should be encoded into a specific field, the Repair FEC Payload BD field, the contents and format of which are defined by the FEC Scheme. [0069) Any FEC Schemes to be used in conjunction with this specification should be a systematic FEC Scheme and should be based on source blocks. The FEC Scheme may define different FEC Payload ID field formats for FEC Source packets and FEC Repair packets.
  • a source block is constructed as specified in Section 2.3.2, by concatenating the SPI for each original source packet, hi doing so, the Source FEC Packet Identification
  • the FEC Source packet can be determined and included in the Source FEC Payload ID field, if used.
  • the identity of the packet's UDP flow is marked using a short 'UDP flow ID', defined in this specification.
  • the association of UDP flow specifications to UDP flow IDs is defined by the FEC Streaming Configuration Information.
  • the FEC Source packet is constructed according to Section 2.3.3.
  • the identity of the original flow is maintained by the source packet through the use of the same UDP ports and IP addresses which have been advertised by the Content Delivery Protocol (for example using DVB Service Discovery), as carrying FEC Source packets generated from an original stream of a particular protocol (e.g. RTP, RTCP,
  • the FEC Source packet generated is sent according to normal UDP procedures.
  • the FEC encoder generates repair symbols from a source block and the FEC Streaming Framework places these symbols into FEC Repair packets, to be conveyed to the receiver(s). These repair packets are sent using normal UDP procedures to a unique destination port to separate them from any of the source packet flows.
  • the ports to be used for FEC Repair packets are defined in the FEC Streaming Configuration Information.
  • the original source packet is reconstructed by removing the Source FEC Payload ID, if used.
  • the resulting packet may be buffered to allow time for the FEC repair.
  • the Source FEC Packet Identification Information is determined from the Source FEC Payload ID, if used, or by other means.
  • the SPI for the resulting packet is placed into the source block according to the Source FEC Packet Identification Information and the source block format described in Section 2.3.2.
  • the IP addresses and UDP ports the packet was received on/sent from are used to determine the UDP flow ID within the SPI.
  • repair symbols are associated with a source block according to the Repair FEC Payload ED.
  • FEC decoding may be desirable.
  • the FEC decoder determines if the source block constructed in step 1 plus the associated repair symbols received in step 2 contain enough symbols for decoding of any or all of the missing source symbols in the source block and, if so, performs a decoding operation.
  • Source packets which are correctly received and those which are reconstructed may be delivered to the application out of order and in a different order from the order of arrival at the receiver.
  • buffering and packet re-ordering may be required to re-order received and reconstructed source packets into the order they were placed into the source block, if that is necessary according to the application.
  • This section specifies the protocol elements for the FEC Streaming Framework.
  • the protocol comprises three components which are described in the following sections:
  • FEC Streaming Framework The operation of the FEC Streaming Framework is governed by certain FEC Streaming Configuration Information. This configuration information is also defined in this section. A complete protocol specification that uses this framework should specify the means to determine and communicate this information between sender and receiver.
  • the source block comprises a concatenation of SPI for at least one original source UDP packet.
  • n be the number of UDP packets in the source block, n may be determined dynamically during the source block construction process.
  • T the source symbol size in bytes. Note: this information is provided by the FEC Scheme as defined in Section 2.3.6
  • L[i] denote two octets representing the value of l[i] in network byte order (high order octet first)
  • f[i] denote an integer 'UDP flow ID' identifying the UDP flow from which the i-th packet was taken
  • FfiJ denote a single octet representing the value of f[i]
  • PfiJ denote s[i]*T-(l[i]+3) zero octets. Note: P[i] are padding octets to align the start of each UDP packet with the start of a symbol.
  • SPIfiJ be the concatenation of F[i] ,L[i], R[i] and P[i].
  • Source blocks are identified by integer Source Block Numbers and symbols within a source block by integer Encoding Symbol IDs. This section does not specify how Source Block Numbers are allocated to source blocks. Symbols are numbered consecutively starting from zero within the source block. Each source packet is associated with the Encoding Symbol ID of the first symbol containing SPI for that packet. Thus, the Encoding Symbol ID value associated with the j-th source packet, ESI[J], is given by
  • the Source FEC Packet Identification Information comprises the identity of the source block and the Encoding Symbol ID associated with the packet.
  • a UDP flow is uniquely defined by an IP source and destination address and UDP source and destination port values.
  • the assignment of UDP flow ID values to UDP flows is part of the FEC Streaming Configuration Information.
  • the packet format for FEC Source packets should be used to transport the payload of an original source UDP packet. As depicted in Fig. 3, it comprises the original UDP packet, followed, optionally, by the Source FEC Payload ED field, if used.
  • the IP and UDP header fields should be identical to those of the original source packet.
  • the Original UDP Payload field should be identical to the UDP payload of the original source packet.
  • the UDP payload of the FEC Source packet should consist of the Original UDP Payload followed by the Source FEC Payload ID field.
  • the Source FEC Payload ID field contains information required for the operation of the FEC algorithm, in particular for the derivation of the Source FEC Packet Identification Information.
  • the format of the Source FEC Payload ID and the derivation of the Source FEC Packet Identification Information are defined by the FEC Scheme. Note that the FEC Scheme or CDP may define a means to derive the Source FEC Packet Identification Information from other information in the source packet (for example the RTP Sequence number). In this case the Source FEC Payload ID field described here is not appended to the packet and the Source FEC packet is identical in every way to the original Source packet.
  • the packet format for FEC Repair packets is shown in Fig. 4.
  • the UDP payload comprises a Repair FEC Payload ED field and one or more repair symbols generated by the FEC encoding process.
  • the Repair FEC Payload ID field contains information required for the operation of the FEC algorithm. This information is defined by the FEC Scheme.
  • the format of the Repair FEC Payload ID field is defined by the FEC Scheme.
  • Any number of whole repair symbols may be contained within an FEC Repair packet, subject to packet size restrictions or other restrictions defined by the FEC Scheme.
  • the number of repair symbols within a packet can be determined from the symbol length and the packet length. Partial repair symbols should not be included in FEC repair packets.
  • the FEC Streaming Configuration Information is information that the FEC Streaming Framework needs in order to apply FEC protection to the UDP flows.
  • a complete Content Delivery Protocol specification for streaming that uses the framework specified here should include details of how this information is derived and communicated between sender and receiver.
  • the FEC Streaming Configuration Information includes identification of a number of UDP packet flows. Each UDP packet flow is uniquely identified by a tuple ⁇ Source D? Address, Destination E? Address, Source UDP port, Destination UDP port ⁇ . [0088] A single instance of the FEC-SF provides FEC protection for all packets of a specified set of source UDP packet flows, by means of one or more UDP packet flows containing repair packets.
  • the FEC Streaming Configuration Information includes, for each instance of the FEC-SF:
  • Item (3) above is included in the FEC Object Transmission Information.
  • FEC-SF Multiple instances of the FEC-SF, with separate and independent FEC Streaming Configuration Information, may be present at a sender or receiver.
  • a single instance of the FEC-SF protects all packets of all the source UDP packet flows identified in (2) above i.e. all packets on those flows should be FEC Source packets as defined in Section 2.3.3.
  • a single source UDP packet flow should not be protected by more than one FEC-SF instance.
  • a single FEC repair flow provides repair packets for a single instance of the FEC- SF. Other packets should not be sent within this flow i.e. all packets in the FEC repair flow should be FEC repair packets as defined in Section 2.3.4and should relate to the same FEC- SF instance.
  • the FEC-SF requires to be informed of the symbol size to be used for each source block. This information may be included in the FEC Streaming Configuration Information or it may be communicated by other means, for example within the FEC Repair Payload ED field. A complete Content Delivery Protocol specification should specify how this information is communicated between sender and receiver. 2.3.6 FEC Scheme requirements
  • This clause defines a FEC Scheme for MSCR protection of arbitrary packet flows over UDP.
  • the FEC Object Transmission Element, FEC Encoding ID is set to a predetermined value.
  • This Common FEC Object Transmission Information elements and their value ranges for this scheme are such that the Maximum Source Block Length is a non-negative integer less than 2 1 , in units of symbols, and the Encoding Symbol Size is a non-negative integer less than 2 16 , in units of bytes.
  • the format for the encoded Common FEC Object Transmission Information elements can be a four-octet field defined in Fig. 5.
  • the Source FEC payload ID might be as shown in Fig. 6.
  • SBN Source Block Number
  • ESI Encoding Symbol ID
  • the interpretation of the Encoding Symbol Identifier is defined by the FEC Streaming Framework (See Section 2). 3.1.1.2.2 Repair FEC Payload ID
  • the structure of the Repair FEC Payload ID is defined in Fig. 7, where the Source Block Number (SBN) (16 bits) is an integer identifier for the source block that the repair symbols within the packet relate to, the Encoding Symbol ID (ESI) (16 bits) is an integer identifier for the encoding symbols within the packet, and the Source Block Length (SBL) (16 bits) is the number of source symbols in the source block.
  • SBN Source Block Number
  • EI Encoding Symbol ID
  • SBL Source Block Length
  • This FEC Scheme uses the procedures of the framework defined in Section 2 to construct a source block to which the FEC code can be applied.
  • the sender should allocate Source Block Numbers to source blocks sequentially, wrapping around to zero after Source Block Number 216-1.
  • the sender should not construct source blocks which are larger than the Maximum Source Block Length signaled within the FEC Object Transmission Information.
  • the source block passed to the MSCR FEC encoder comprises the Source Block constructed according to Section 3.1.2 extended with zero or more padding symbols such that the total number of symbols in the source block is equal to the Maximum Source Block Length signaled in the FEC Object Transmission Information (see Section 3.1.1.1.2).
  • K used by the FEC encoded is equal to the Maximum Source Block Length.
  • Padding symbols can be bytes set to the value zero.
  • the symbol size, T, to be used for source block construction and the repair symbol construction are is equal to the Encoding Symbol Size signaled in the FEC Object Transmission Information (see Section 3.1.1.1.2).
  • each repair packet contains the the Source Block Number (SBN), the Encoding Symbol ID (ESI), the Source Block Length (SBL), and the repair symbol(s).
  • the number of repair symbols contained within a repair packet is computed from the packet length.
  • the ESI values placed into the repair packets and the repair symbol triples used to generate the repair symbols are computed as described in sub-clause C.3.2.2 of [2].
  • the Source Block Length field of the Repair FEC Payload ID field is set to the number of symbols included in the Source Packet Information of packets associated with the source block, i.e., before padding to the Maximum Source Block Length.
  • This sub-clause describes the information exchange between the MSCR encoder/decoder and any transport protocol making use of MSCR FEC for streaming.
  • the MSCR encoder for streaming uses the following information from the transport protocol for each source block:
  • the source symbols to be encoded K-T bytes
  • the MSCR encoder supplies the transport protocol with encoding packet information comprising, for each repair packet:
  • SBL Source Block Length
  • the transport protocol communicates this information transparently to the MSCR decoder.
  • a suitable transport protocol is defined in this specification.
  • This section provides recommendations for the derivation of the transport parameter T. This recommendation is based on the following input parameters:
  • Payload ED in bytes, which should be multiple of A
  • KMAX 8192.
  • This section defines an alternative FEC Scheme for FEC protection of a single packet flow in which source packets each carry a unique sequence number. We call such a packet flow a "sequenced flow".
  • a primary example would be FEC protection of an RTP flow containing an MPEG-2 Transport Stream within which all data for the service is multiplexed. In this case the RTP Sequence Numbers can be used to derive the Source FEC Packet Identification Information.
  • the size of the Source Packet Information within a given Source Block for each packet within a given sequenced flow should be the same and is derived from the size of the FEC Repair packets, which should also all be the same size for a given source block.
  • This FEC Scheme is identified by a predetermined FEC Encoding ID.
  • Source FEC Payload ID field is not used by this FEC Scheme. Source packets are not modified in any way by this FEC Scheme.
  • the Repair FEC Payload ID format for this FEC Scheme is shown in Fig. 8.
  • the Initial Sequence Number (Flow i ISN) is a 16-bit field that specifies the lowest 16 bits of the sequence number of the first packet to be included in this sub-block. If the sequence numbers are shorter than 16 bits then the received Sequence Number is logically padded with zero bits to become 16 bits in length respectively.
  • the Encoding Symbol ID (ESI) is a 16-bit field that indicates which repair symbols are contained within this repair packet. The ESI provided is the ESI of the first repair symbol in the packet.
  • the Source Block Length (SBL) is a 16-bit field that the length of the source block in symbols.
  • This FEC Scheme uses the procedures of the framework defined in Section 2 to construct a source block to which the FEC code can be applied. In addition to the procedures defined there, the following procedures apply.
  • the Source FEC Packet Identification Information for a source packet is derived from the sequence number of the packet and information received in the Repair FEC packets.
  • Source blocks are identified by the sequence number of the first source packet in the block. This information is signaled in all Repair FEC packets associated with the source block in the Initial Sequence Number field.
  • the length of the Source Packet Information (in bytes) for source packets within a source block is equal to length of the payload containing encoding symbols of the repair packets (i.e. not including the Repair FEC Payload ID) for that block, which should all be the same.
  • the Source Packet Information Length (SPIL) in symbols is equal to this length divided by the Encoding Symbol Size (which is signaled in the Common FEC Object Transmission Information).
  • the set of source packets which are included in the source block is determined from the Initial Sequence Number (ISN) and Source Block Length (SBL) as follows:
  • source packets with sequence numbers from /to I +L B IL P -I inclusive are included in the source block.
  • the Encoding Symbol ID for a packet is derived from the following information:
  • the Encoding Symbol ID for a repair packet indicates which repair symbols the packet contains. This is given directly by the Encoding Symbol ID field of the Repair FEC Payload ED.
  • RTP Sequence Number field is used as the sequence number in the procedures described above.
  • n is the nominal number of 188 byte TS packets per D? Source packet.
  • the maximum source block size is determined by application configuration at the sender.
  • This section defines a number of common protocol elements which can be used in conjunction with the framework defined in Section 2 and the FEC Schemes defined in Section 3 to construct complete protocols for FEC protection of streaming media.
  • This section specifies a simple, optional, protocol for receivers to provide feedback about the reception of FEC data in the case of unicast streams. This feedback maybe used by senders to adapt the FEC parameters. Feedback is provided about the reception and decoding success or failure for groups of source blocks, known as 'feedback groups'.
  • Feedback is provided on a "best-effort" basis - senders should not rely on receiving feedback messages.
  • FEC Feedback Protocol messages are sent over UDP with the UDP payload formatted according to Fig. 9.
  • the Version field is set to zero (0) in this version of the protocol
  • the contents of the payload field depend on the message type and are defined below.
  • Number of "Error Free” Blocks indicates the number of source blocks from the feedback group for which decoding was not required because all source packets were received without error.
  • Number of "Decoding Successful” blocks indicates the number of source blocks from the feedback group for which decoding was required and was completed successfully.
  • Number of "Decoding Unsuccessful” blocks indicates the number of source blocks from the feedback group for which decoding was required but could not be completed successfully due to insufficient information being received.
  • Max Packets Received indicates the maximum number of packets (source and repair) that were received for any source block in the feedback group.
  • Min Packets Received indicates the minimum number of packets (source and repair) that were received for any source block in the feedback group.
  • Total packets received indicates the total number of packets (source and repair) that were received for all source blocks in the feedback group.
  • This section defines the procedures at the device which is sending FEC protected data and receiving FEC Feedback Protocol data.
  • the support of the FEC Feedback Protocol at senders is optional. Senders advertise support of the FEC Feedback Protocol, the highest version supported, the IP destination address and UDP destination port that messages should be sent to and the requested size of feedback groups in the FEC Streaming Configuration Information.
  • the mechanism used to communicate the FEC Streaming Configuration Information is Content Delivery Protocol specific.
  • the FEC Sender can ignore FEC Feedback Protocol packets received with an unrecognized version number and FEC Feedback Protocol packets received with a reserved message type.
  • the FEC Sender may adapt the FEC parameters (source block size, sending rate and arrangement etc.) for subsequent source blocks based on the information received in the Feedback Report Message.
  • the FEC Sender should stop sending FEC repair packets for the source block.
  • This section defines the procedures at the device which is receiving FEC protected data and sending FEC Feedback Protocol data.
  • the FEC Receiver can use the information in the FEC Streaming Configuration Information to determine the highest version supported by the FEC Sender, the EP destination address and UDP destination port that messages should be sent to and the size of the feedback groups.
  • the FEC Receiver should not send FEC Feedback Protocol messages with a version number which is higher than the highest version supported by the FEC Sender.
  • the FEC Receiver should determine on a per FEC Streaming Framework instance basis whether the FEC Feedback Protocol will be used.
  • a feedback group should comprise a consecutive sequence of Source Blocks except that Source Blocks for which no repair packets have been received should not be included in any feedback group.
  • the number of source blocks in a feedback group should be equal to the requested feedback group size indicated in the FEC Streaming Configuration Information.
  • Each Source Block in the feedback group should be categorised either "Error Free", “Decoding Successful” or “Decoding Unsuccessful” as described in the following sections.
  • the FEC receiver should send a Feedback Report message immediately that the category of all Source Blocks in the feedback group is determined.
  • a Source Block can be considered "Error free" immediately that the FEC Receiver determines that FEC decoding will not be necessary for a source block.
  • a Source Block can be considered as "Decoding Successful" immediately on successful decoding of the Source Block.
  • a Source Block can be considered as "Decoding Unsuccessful" immediately that the FEC Receiver determines that FEC decoding for the source block is necessary but is not possible.
  • the FEC Receiver can determine that FEC decoding for a source block is necessary but is not possible at the point when:
  • source symbols are required by the application (e.g. media player).
  • the FEC Receiver may determine that FEC decoding for a source block is necessary but is not possible at other times, for example if no further repair symbols have been received for the source block for some time period determined by the FEC Receiver.
  • the FEC Streaming Framework defined in Section 2 does not prescribe any arrangement of transmitted packets. This section described approaches that may be used by the sender to determine the sending arrangement for the FEC Source and FEC Repair packets of the stream. 4.2.1 Simple constant rate FEC sending
  • This section describes a simple sending arrangement in which the sending rate of FEC Source Packets and FEC Repair Packets is kept constant within each source block.
  • source packets are sent first, followed by repair packets. All packets of one source block are sent before any packets of the subsequent block.
  • R S end is the sending rate
  • Rsource is the source data rate
  • D repa i r is the amount of repair data (bytes, including packetisation overhead)
  • D so urc e is the amount of source data (bytes, including packetisation overhead)
  • Source Blocks are constructed based on a time period, known as a "protection period".
  • the protection period is the same for every source block of a stream. However, it may be varied on a block by block basis.
  • the source packets of a source block are exactly those that arrive within a period of time equal to the protection period.
  • the source packets of a source block are exactly those that would be sent within a period of time equal to the protection period in the normal sending arrangement for a non-FEC protected stream generated from that content.
  • the sending arrangements of Sections 4.2.1 and elsewhere packets are buffered at the receiver for a time at least equal to the longest playout time of any source block.
  • This section defines a Content Delivery Protocol for FEC protected multicast delivery of MPEG-2 Transport Streams.
  • Session information include:
  • the Flow ID for the MPEG-2 TS flow is zero.
  • FEC protection of the MPEG-2 Transport Stream may be provided using
  • Each MPEG-2 Transport Stream should be protected independently.
  • This section defines a Content Delivery Protocol for FEC protected unicast delivery of MPEG-2 Transport Streams.
  • Session information can include:
  • the Repair FEC flow associated with a unicast RTP flow can be sent to the destination UDP port number two higher than the destination UDP port to which the RTP flow is sent.
  • FEC Feedback messages can be sent to the address/UDP port which are used as the source address/port for the FEC repair stream from server to receiver.
  • FEC protection of the MPEG-2 Transport Stream may be provided using
  • Each MPEG-2 Transport Stream can be protected independently.
  • This section defines a Content Delivery Protocol for FEC protected multicast delivery of arbitrary audio/video streams (for example H.264 encapsulated in RTP). This section is provided to describe how FEC can be applied to future extensions to the DVB IPI Handbook which address direct encapsulation of audio/video streams in RTP.
  • Session information includes:
  • the audio/video stream is assumed to be carried by one or more UDP flows (probably RTP flows).
  • This section defines a Content Delivery Protocol for FEC protected unicast delivery of arbitrary audio/video streams (for example H.264 encapsulated in RTP). This section is provided to describe how FEC can be applied to future extensions to the DVB EPI Handbook which address direct encapsulation of audio/video streams in RTP. 5.4.1 Control protocols
  • Session information includes:
  • the UDP destination port numbers and Flow IDs of the protected UDP flows (for example audio and video flow).
  • FEC Feedback messages can be sent to the address/UDP port which are used as the source address/port for the FEC repair stream from server to receiver.
  • the audio/video stream is assumed to be carried by one or more UDP flows (probably RTP flows).
  • Senders may advertise more than on IP multicast address for repair packets associated with a single source stream. Senders should send distinct repair packets on each multicast group.
  • Receivers may join any number of such multicast groups in order to adapt the rate of received repair packets according to the local error rates.
  • Source Block boundaries should be identified using the protection period algorithm defined in Section 4.4.1.
  • the following algorithm is recommended for determining the protection periods, FEC overhead and sending rate to be used at any point at which a new stream is to be played out (e.g. start of stream or when using trick-modes).
  • This algorithm allocates the initial available bandwidth above the source rate evenly between FEC repair data and fast buffer fill data.
  • the initial available bandwidth may be greater than the nominal (long term) bandwidth or it may be the same, but should not be less.
  • Bmax be the initial bandwidth available to the stream (source and FEC)
  • Bnom be the nominal bandwidth for the stream (source and FEC)
  • the source sending rate should be Sinit and the repair sending rate Rinit. After this, the source sending rate should be reduced to Bsrc. This arrangement means that during the initial period the source sending rate is higher than the actual source data rate and thus each protection period contains data which will take longer to play out than it took to send. As a result the subsequent protection period can be made longer, according to the algorithm above, without starving the receiver.
  • the minimum buffering time at the receiver advertised in the Service Discovery information should be Pinit.
  • FEC Feedback may be used on a long term basis to adjust the FEC Overhead which is provided to an individual user.
  • FEC Overhead which is provided to an individual user.
  • sufficient overhead must be provided to overcome even relatively rare error events and thus feedback data gathered over a short period of time is not sufficient to determine the long-term overhead required.
  • FEC Feedback may be requested for feedback groups of a single source block.
  • feedback reports may be used to abandon sending of FEC repair packets for a source block in a report is received indicating that this source block has been successfully received/decoded.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

Data is streamed from a transmitter to a receiver, wherein streaming is transferring data with an assumption that the receiver will begin using the data before it is all transmitted and received and the streamed data includes forward error correction ('FEC') and the rates of data consumption can vary. The transmitter has an input rate and a transmit rate and the two rates can be different and can change. At the receiver, there is a reception rate (at which the receiver receives data) and a consumption rate (at which the receiver uses up data for its output). The transmitter transmits using a transmit rate higher than the consumption rate and the extra bandwidth is usable for FEC protection and buffering. In some embodiments, the excess rate varies over a transmission period.

Description

STREAMINGAND BUFFERING USING VARIABLE FEC OVERHEAD
AND PROTECTION PERIODS
CROSS REFERENCE
[0001] This application claims priority from and is a non-provisional of U.S. Provisional Patent Application No. 60/773,185 filed February 13, 2006 and U.S. Provisional Patent Application No. 60/773,501 filed February 14, 2006.
[0002] The following references are include here and are incorporated by reference for all purposes:
[0003] U.S. Patent No. 6,307,487 entitled "Information Additive Code Generator and Decoder for Communication Systems" issued to Luby (hereinafter "Luby"); and
[0004] U.S. Patent No. 7,068,729 issued to Shokrollahi et al. entitled "Multi-Stage Code Generator and Decoder for Communication Systems" (hereinafter "Shokxollahi").
FIELD OF THE INVENTION
[0005] The present invention relates to encoding and decoding data in communications systems and more specifically to communication systems that encode and decode data to account for errors and gaps in communicated data while dealing with the needs of receivers to quickly provide data as it is received.
BACKGROUND OF THE INVENTION [0006] Transmission of files and streams between a sender and a recipient over a communications channel has been the subject of much literature. Preferably, a recipient desires to receive an exact copy of data transmitted over a channel by a sender with some level of certainty. Where the channel does not have perfect fidelity (which covers most all physically realizable systems), one concern is how to deal with data lost or garbled in transmission. Lost data (erasures) are often easier to deal with than corrupted data (errors) because the recipient cannot always tell when corrupted data is data received in error. Many error-correcting codes have been developed to correct for erasures and/or for errors.
[0007] Data transmission is straightforward when a transmitter and a receiver have all of the computing power and electrical power needed for communications and the channel between the transmitter and receiver is clean enough to allow for relatively error- free communications. The problem of data transmission becomes more difficult when the channel is in an adverse environment or the transmitter and/or receiver has limited capability.
[0008] One solution is the use of forward error correcting (FEC) techniques, wherein data is coded at the transmitter such that a receiver can recover from transmission erasures and errors. Where feasible, a reverse channel from the receiver to the transmitter allows for the receiver to communicate about errors to the transmitter, which can then adjust its transmission process accordingly. Often, however, a reverse channel is not available or feasible or is available only with limited capacity. For example, where the transmitter is transmitting to a large number of receivers, the transmitter might not be able to handle reverse channels from all those receivers. As a result, communication protocols often need to be designed without a reverse channel or with a limited capacity reverse channel and, as such, the transmitter may have to deal with widely varying channel conditions without a full view of those channel conditions.
[0009] In the case of a packet protocol used for data transport over a channel that can lose packets, a file, stream or other block of data to be transmitted over a packet network is partitioned into equal size input symbols, encoding symbols the same size as the input symbols are generated from the input symbols using an FEC code, and the encoding symbols are placed and sent in packets. The "size" of a symbol can be measured in bits, whether or not the symbol is actually broken into a bit stream, where a symbol has a size of M bits when the symbol is selected from an alphabet of 2M symbols. In such a packet-based communication system, a packet oriented erasure FEC coding scheme might be suitable. A file transmission is called reliable if it allows the intended recipient to recover an exact copy of the original file even in the face of erasures in the network. A stream transmission is called reliable if it allows the intended recipient to recover an exact copy of each part of the stream in a timely manner even in the face of erasures in the network. Both file transmission and stream transmission can also be somewhat reliable, in the sense that some parts of the file or stream are not recoverable or for streaming if some parts of the stream are not recoverable in a timely fashion. Packet loss often occurs because sporadic congestion causes the buffering mechanism in a router to reach its capacity, forcing it to drop incoming packets. Protection against erasures during transport has been the subject of much study.
[0010] In the case of a protocol used for data transmission over a noisy channel that can corrupt bits, a block of data to be transmitted over a data transmission channel is partitioned into equal size input symbols, encoding symbols of the same size are generated from the input symbols and the encoding symbols are sent over the channel. For such a noisy channel the size of a symbol is typically one bit or a few bits, whether or not a symbol is actually broken into a bit stream. In such a communication system, a bit-stream oriented error- correction FEC coding scheme might be suitable. A data transmission is called reliable if it allows the intended recipient to recover an exact copy of the original block even in the face of errors (symbol corruption, either detected or undetected in the channel). The transmission can also be somewhat reliable, in the sense that some parts of the block may remain corrupted after recovery. Symbols are often corrupted by sporadic noise, periodic noise, interference, weak signal, blockages in the channel, and a variety of other causes.
[0011] One problem with some FEC codes is that they require excessive computing power or memory to operate. Another problem is that the number of output symbols must be determined in advance of the coding process. This can lead to inefficiencies if the loss rate of packets is overestimated, and can lead to failure if the loss rate of packets is underestimated.
[0012] Chain reaction codes are FEC codes that allow for generation of an arbitrary number of output symbols from the fixed input symbols of a file or stream. Sometimes, they are referred to as fountain or rateless FEC codes, since the code does not have an a-priori fixed transmission rate and the number of possible output symbols can be independent of the number of input symbols. Novel techniques for generating, using and operating chain reaction codes are shown, for example, in Luby and Shokrollahi.
[0013] It is also known to use multi-stage chain reaction ("MSCR") codes, such as those described in Shokrollahi and developed by Digital Fountain, Inc. under the trade name "Raptor" codes. Multi-stage chain reaction codes are used, for example, in an encoder that receives input symbols from a source file or source stream, generates intermediate symbols from the input symbols and the intermediate symbols are the source symbols for a chain reaction encoder.
[0014] For some applications, other variations of codes might be more suitable or otherwise preferred. As used herein, input symbols refer to the data received from a file or stream and source symbols refer to the symbols that are used to generate output symbols. In some cases, the source symbols include the input symbols and in some cases, the source symbols are the input symbols. However, there are cases where the input symbols are encoded and/or transformed into an intermediate set of symbols and that intermediate set is used to generate the output symbols without reference to the input symbols (directly). Thus, input symbols comprise information known to the sender which is to be communicated to the receiver, source symbols are the symbols used by at least one stage of an encoder and are derived from the input symbols, and output symbols comprise symbols that are transmitted by the sender to the receiver.
[0015] In some applications, the receiver may begin to use the data before the transmission is complete. For example, with a video-on-demand system, the receiver might start playing out a video after only a small portion of the video data is received and assume that the rest of the video data will be received before it is needed. In such systems, encoding should not be done over the entire transmission, because then some output symbols at the end of the transmission might encode for input symbols needed at the beginning of the video, in which case those output symbols are wasteful since their information is needed when it is not available and is not needed when it is available. To avoid this, the data stream is typically divided into blocks wherein the input data of the block is encoded and sent before the next block is prepared and blocks normally do not depend on input symbols outside those blocks.
[0016] For such applications, there is often a trade-off between reliability and lag time between when the transmission starts and when the data can start to be used. For example, if an entire feature length movie were encoded such that errors at the start of the transmission can be corrected using data at the end of the transmission, the receiver might wait until it receives all of the movie data before indicating to the application (or the user of the application) that the movie is available for playback. However, where the total transmission time is long, that can be an unacceptable lag time.
[0017] One solution is to encode a stream of data such that the receiver has enough information to begin playback of the movie after some smaller lag time and the receiver can expect to receive further information in time to continue the playback. Naturally, if the data near the end of the transmission provides redundancy for the data at the start of the transmission, that capability is wasted since the first part of the movie will have played back long before that later information is received. Thus, it is efficient to have the redundancy available when it is needed, typically close in time with the decoding of the data. However, if the constraints are too strict, playback might have to begin too early and raise the probability that the receiver hits a playback point in the movie where it does not yet have enough data to decode and would cause a skip or pause. [0018] There are tradeoffs with the use of blocks: too small a block size and not enough error protection is provided, whereas too large a block size and too much delay is seen at the receiver as it waits for blocks to be completely recovered.
SUMMARY OF THE INVENTION [0019] In embodiments of the present invention, data is streamed from a transmitter to a receiver, wherein streaming is transferring data with an assumption that the receiver will begin using the data before it is all transmitted and received. The streamed data includes forward error correction ("FEC") and the rates of data consumption can vary. The transmitter has an input rate at which it uses up its input data and a transmit rate at which it sends that data (and FEC data as needed) and the two rates can be different and can change when FEC is involved, as there is some overhead involved with FEC coding. At the receiver, there is a reception rate (at which the receiver receives data) and a consumption rate (at which the receiver uses up data for its output). The transmitter transmits using a transmit rate higher than the consumption rate and the extra bandwidth is usable for FEC protection and buffering.
[0020] In some embodiments, the excess rate varies over a transmission period.
[0021] A further understanding of the nature and the advantages of the inventions disclosed herein may be realized by reference to the remaining portions of the specification and the attached drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
[0022] Fig. 1 is a block diagram of a communications system that can use the variable FEC overhead techniques described herein.
[0023] Fig. 2 is a diagram of an FEC streaming framework architecture.
[0024] Fig. 3 is a diagram of an FEC source packet.
[0025] Fig. 4 is a diagram of an FEC repair packet.
[0026] Fig. 5 is a diagram of an FEC object information block.
[0027] Fig. 6 is a diagram of a source FEC payload ED format.
[0028] Fig. 7 is a diagram of a repair FEC payload ED format.
[0029] Fig. 8 is a diagram of an alternative repair FEC payload ED format. [0030] Fig. 9 is a diagram of an FEC feedback protocol message format.
[0031] Fig. 10 is a diagram of a payload format for success report messages.
DETAILED DESCRIPTION OF THE INVENTION
[0032] In embodiments of the present invention, data is streamed from a transmitter to a receiver, wherein streaming is transferring data with an assumption that the receiver will begin using the data before it is all transmitted and received. The streamed data includes forward error correction ("FEC"), which provides improvements over a retransmission- request scheme wherein retransmission of lost packets is requested by a receiver if packet loss is detected.
[0033] There are various rates involved in a streaming process. The streamed data includes forward error correction ("FEC") and the rates of data consumption can vary. The transmitter has an input rate at which it uses up its input data and a transmit rate at which it sends that data (and FEC data as needed) and the two rates can be different and can change when FEC is involved, as there is some overhead involved with FEC coding. At the receiver, there is a reception rate (at which the receiver receives data) and a consumption rate (at which the receiver uses up data for its output). In the absence of data loss over the channel, the reception rate is the same as the transmission rate. There is a raw reception rate, which is the rate at which data is received not counting overhead due to FEC. For example, if the receiver is a video player that outputs an 11 megabits/second (MBS) video stream to a display device, the consumption rate is 11 MBS. Where the consumed data is played out, on a display, audio, processor or other player of data, the consumption rate might be referred to as the "playout" rate.
[0034] With many streams, it is desirable that the consumption be continuous such that the presentation of streamed data is not stalled or blocky, which would occur if all the data at the receiver is consumed and the reception rate is less than the consumption rate. To avoid this, receivers typically have buffers so that the reception rate can temporarily drop below the consumption rate (due to packet loss, congestion, etc.) without running out of data to consume.
[0035] Where the reception rate is exactly the consumption rate, there is no extra to be buffered. To fill the receiver buffer, a streaming system might be set up such that the transmission rate is higher than the consumption rate, or the transmission starts before the play-out begins. In either case, there is sufficient reception to at least partially fill the receiver buffer.
[0036] In any case, using FEC rather than retransmission is often the better approach. With retransmission, there needs to be enough of a receiver buffer to continue to play out data while the receiver sends a retransmission request and receives a response, otherwise the player will stall when it reaches the missing data that has yet to be replaced.
[0037] In specific embodiments, the transmitter transmits using a transmit rate higher than the consumption rate and the extra bandwidth is used in part for FEC protection and in part for buffer filling to allow for features such as a "quick start", where playout can begin soon after reception starts with sufficient buffer fill to reduce the risk of stalling the playout.
[0038] In some embodiments, the bandwidth used for FEC protection and the amount of overhead used for buffer filling varies over time. For example, the overall transmission bit- rate might be a constant value, somewhat higher than the consumption rate, with more of the excess devoted to buffer filling at the start of the transmission and less devoted to buffer filling at later times. With a constant bit rate, the FEC protection would be less at the start of the transmission and higher at later times. A constant bit rate is not required and a constant FEC overhead rate might be used.
Overview
[0039] Protocols for FEC protection of streaming media using multi-stage chain reaction (MSCR) codes, such as those used by DF Raptor™ encoders and decoders are described below for applications including DVB-IPI applications. Examples of such multi-stage codes are described in Shokrollahi. It should be understood for the purposes of this disclosure that MSCR codes are used as just examples of multi-stage codes and the teachings of this disclosure could be used with multi-stage codes other than the those described in Shokrollahi.
[0040] The multi-stage codes could be used for FEC protection of DVB-EP I real-time applications (multicast and unicast video with both MPEG-2 Transport Stream encapsulation and direct transport of audio and video over RTP).
[0041] The FEC Building Block [3] defined by the IETF Reliable Multicast working group describes an approach to specification of protocols using FEC which separates the definition of the protocol from the specification of the FEC code itself. This allows issues of protocol design to be addressed independently from the very different issues of FEC code selection. In the language of the FEC Building Block, separate specifications are provided for "Content Delivery Protocols" and for "FEC Schemes", the former defining the protocols and the latter defining the actual FEC codes. The FEC Building Block describes rules that both kinds of specification must follow so that they can be used together and so it provides the "glue" between Content Delivery Protocols and FEC Schemes.
[0042] Following this approach, this specification is organized as a number of modular components. These are then combined to form complete protocols suitable for the DVB-IPI applications. These components include (1) an FEC Streaming Framework, which provides an overall protocol framework for the application of FEC to media streams and is described in Section 2; (2) a number of FEC Schemes, which define protocol components suitable for various classes of application and which define how core MSCR codes are applied to streaming applications, defined in Section 3; (3) modular protocol components that can be used to support applications based on the FEC Streaming Framework and FEC Schemes defined herein, shown in Section 4; and (4) protocol specifications for multicast and unicast video with both MPEG-2 Transport Stream encapsulation and direct transport of audio and video over RTP, constructed using the building blocks described above (Section 5).
[0043] Terms and Acronyms
Figure imgf000009_0001
Figure imgf000010_0001
Table 2 - Terms and Acronyms
Encoders and Decoders
[0044] Fig. 1 is a block diagram of a communications system 100 that uses multi-stage coding and can use the variable FEC overhead techniques described herein.
[0045] In communications system 100, an input file 101, or an input stream 105, is provided to an input symbol generator 110. Input symbol generator 110 generates a sequence of one or more input symbols (IS(O), IS(I), IS(2), ...) from the input file or stream, with each input symbol having a value and a position (denoted in Fig. 1 as a parenthesized integer). As explained above, the possible values for input symbols, i.e., its alphabet, is typically an alphabet of 2M symbols, so that each input symbol codes for M bits of the input file. The value of M is generally determined by the use of communication system 100, but a general purpose system might include a symbol size input for input symbol generator 110 so that M can be varied from use to use. The output of input symbol generator 110 is provided to an encoder 115.
[0046] Static key generator 130 produces a stream of static keys S0, Si, .... The number of the static keys generated is generally limited and depends on the specific embodiment of encoder 115. The generation of static keys will be subsequently described in more detail. Dynamic key generator 120 generates a dynamic key for each output symbol to be generated by the encoder 115. Each dynamic key is generated so that a large fraction of the dynamic keys for the same input file are unique. For example, Luby I describes embodiments of key generators that can be used. The outputs of dynamic key generator 120 and the static key generator 130 are provided to encoder 115.
[0047] From each key I provided by dynamic key generator 120, encoder 115 generates an output symbol, with a value B(I), from the input symbols provided by the input symbol generator. The operation of encoder 115 will be described in more detail below. The value of each output symbol is generated based on its key, on some function of one or more of the input symbols, and possibly on or more redundant symbols that had been computed from the input symbols. The collection of input symbols and redundant symbols that give rise to a specific output symbol is referred to herein as the output symbol's "associated symbols" or just its "associates". The selection of the function (the "value function") and the associates is done according to a process described in more detail below. Typically, but not always, M is the same for input symbols and output symbols, i.e., they both code for the same number of bits.
[0048] In some embodiments, the number K of input symbols is used by the encoder 115 to select the associates. IfK is not known in advance, such as where the input is a streaming file, K can be just an estimate. The value K might also be used by encoder 115 to allocate storage for input symbols and any intermediate symbols generated by encoder 115.
[0049] Encoder 115 provides output symbols to a transmit module 140. Transmit module 140 is also provided the key of each such output symbol from the dynamic key generator 120. Transmit module 140 transmits the output symbols, and depending on the keying method used, transmit module 140 might also transmit some data about the keys of the transmitted output symbols, over a channel 145 to a receive module 150. Channel 145 is assumed to be an erasure channel, but that is not a requirement for proper operation of communication system 100. Modules 140, 145 and 150 can be any suitable hardware components, software components, physical media, or any combination thereof, so long as transmit module 140 is adapted to transmit output symbols and any needed data about their keys to channel 145 and receive module 150 is adapted to receive symbols and potentially some data about their keys from channel 145. The value of K, if used to determine the associates, can be sent over channel 145, or it may be set ahead of time by agreement of encoder 115 and decoder 155.
[0050] As explained above, channel 145 can be a real-time channel, such as a path through the Internet or a broadcast link from a television transmitter to a television recipient or a telephone connection from one point to another, or channel 145 can be a storage channel, such as a CD-ROM, disk drive, Web site, or the like. Channel 145 might even be a combination of a real-time channel and a storage channel, such as a channel formed when one person transmits an input file from a personal computer to an Internet Service Provider (ISP) over a telephone line, the input file is stored on a Web server and is subsequently transmitted to a recipient over the Internet.
[0051] Because channel 145 is assumed to be an erasure channel, communications system 100 does not assume a one-to-one correspondence between the output symbols that exit receive module 150 and the output symbols that go into transmit module 140. In fact, where channel 145 comprises a packet network, communications system 100 might not even be able to assume that the relative order of any two or more packets is preserved in transit through channel 145. Therefore, the key of the output symbols is determined using one or more of the keying schemes described above, and not necessarily determined by the order in which the output symbols exit receive module 150.
[0052] Receive module 150 provides the output symbols to a decoder 155, and any data receive module 150 receives about the keys of these output symbols is provided to a dynamic key regenerator 160. Dynamic key regenerator 160 regenerates the dynamic keys for the received output symbols and provides these dynamic keys to decoder 155. Static key generator 163 regenerates the static keys So, S1, ... and provides them to decoder 155. The static key generator has access to random number generator 135 used both during the encoding and the decoding process. This can be in the form of access to the same physical device if the random numbers are generated on such device, or in the form of access to the same algorithm for the generation of random numbers to achieve identical behavior. Decoder 155 uses the keys provided by dynamic key regenerator 160 and static key generator 163 together with the corresponding output symbols, to recover the input symbols (again IS(O), IS(I), IS(2), ...). Decoder 155 provides the recovered input symbols to an input file reassembler 165, which generates a copy 170 of input file 101 or input stream 105.
[0053] Encoder 115 can encode data using techniques shown herein so that the FEC encoding has variable overhead.
2 FEC Streaming Framework 2.1 Introduction
[0054] This section defines a framework for the definition of CDPs, in the sense of the FEC Building Block, which provides for FEC protection of streamed data flows over UDP. This section does not define a complete Content Delivery Protocol, but rather defines only those aspects that are expected to be common to all Content Delivery Protocols that support streaming data over UDP.
[0055] The framework defined in this section is not specific to a single streaming application protocol. The framework provides FEC protection for application protocol flows over UDP and for combined protection of multiple such flows. For example, multiple RTP flows may be protected together with the associated RTCP flows and potentially also other related flows such as MIKEY packets. For many FEC Schemes in many loss conditions, the improvement in reliability achievable through the use of FEC with a given FEC overhead increases as the amount of data protected as a single block increases. Thus there is considerable advantage in the ability to protect multiple streams together, particularly in cases where the receiver requires all the streams in order to offer a useful service to the user.
[0056] This framework does not define how the flows to be protected are determined, nor how the details of the protected flows and the FEC streams which protect them are communicated from sender to receiver. Complete Content Delivery Protocol specifications - such as those presented in Section 5 - address these signalling requirements. However, this section does specify the information which is required by the FEC Streaming Framework at sender and receiver - for example details of the flows to be FEC protected and the flow(s) that will carry the FEC protection data. We also specify SDP attributes which the Content Delivery Protocols use to communicate this information.
[0057] The architecture outlined above is illustrated in Fig. 2.
2.2 Procedural overview 2.2.1 General
[0058] The mechanism defined in this section comprises three components:
(i) construction of a 'source block' from source media packets belonging to one or several UDP packet flows. The UDP flows may include, for example, RTP, RTCP and SRTP packets and also other protocols related to the stream.
(ii) optional extension of source packets to indicate the source block and the position within the source block occupied by the data from and related to the source packet. (iii) definition of repair packets, sent over UDP, which can be used by the FEC decoder to reconstruct missing portions of the source block.
[0059] The mechanism does not place any restrictions on the source data which can be protected together, except that the source data is carried over UDP. The data may be from several different UDP flows that are protected jointly. In general, multiple source blocks will be constructed for a stream each constructed from different sets of source packets. For example, each source block may be constructed from those source packets related to a particular segment of the stream in time.
[0060] A receiver supporting this streaming framework should support the packet format for FEC Source packets and should also support the packet format for FEC Repair packets.
[0061] This section does not define how the sender determines which source packets are included in which source blocks. A specific Content Delivery Protocol may define this mapping or it may be left as implementation dependent at the sender. However, a CDP specification should define how a receiver determines the length of time it should wait to receive FEC repair packets for any given source block.
[0062] At the sender, the mechanism processes original UDP packets to create:
(i) a stored copy of the original packets in the form of one or more 'source block(s)'. The source block is a logical block of data to which the FEC code will subsequently be applied. It is constructed by concatenating 'Source Packet Information' (SPI) for each source packet. Generally, the SPI for a packet contains a short identifier for the flow the packet belongs to, the length of the packet, the UDP payload and possible padding bytes.
(ii) FEC Source packets for transmission to the receiver.
[0063] The FEC Streaming Framework uses the FEC encoder specified by the FEC Scheme in use to generate the desired quantity of repair symbols from a source block. These repair symbols are then sent using the FEC repair packet format to the receiver. The FEC Repair packets are sent to a UDP destination port different from any of the original UDP packets' destination port(s) as indicated by the FEC Streaming Configuration Information. [0064] The receiver recovers original source packets directly from any FEC Source packets received. The receiver also uses the received FEC Source Packets to construct a stored copy of the original packets in the same source block format as constructed at the sender.
[0065] If any FEC Source packets related to a given source block have been lost, then this copy of the source block at the receiver will be incomplete. If sufficient FEC source and FEC Repair packets related to that source block have been received, the FEC Framework may use the FEC decoding algorithm defined by the FEC Scheme to recover a (hopefully, but not necessarily, complete) copy of the source block. The SPI for the missing source packets can then be extracted from the completed parts of the source block and used to reconstruct the source packets to be passed to the application.
[0066] Note that the receiver may need to buffer received source packets to allow time for the FEC Repair packets to arrive and FEC decoding to be performed before some or all of the received or recovered packets are passed to the application. If such a buffer is not provided, then the application must be able to deal with the severe re-ordering of packets that will be required. However, such buffering is Content Delivery Protocol and/or implementation- specific and is not specified here.
[0067] The receiver of FEC Source packets identifies the source block and the position within the source block occupied by the SPI derived from each packet. This information is known as FEC Source Packet Identification Information and may be communicated in several ways. The FEC Source Packet Identification Information may be encoded into a specific field within the FEC Source packet format defined in this specification, called the Source FEC Payload ID field. The exact contents and format of the Source FEC Payload ID field are defined by the FEC Scheme. Alternatively, the FEC Scheme or CDP may define how the FEC Source Packet Identification Information is derived from other fields within the source packets. This document defines the way that the Source FEC Payload ID field, if used, is appended to source packets to form FEC Source packets.
[0068] The receiver of FEC Repair packets should also be able to identify the source block and the relationship between the contained repair data and the original source block. This information is known as FEC Repair Packet Identification information. This information should be encoded into a specific field, the Repair FEC Payload BD field, the contents and format of which are defined by the FEC Scheme. [0069) Any FEC Schemes to be used in conjunction with this specification should be a systematic FEC Scheme and should be based on source blocks. The FEC Scheme may define different FEC Payload ID field formats for FEC Source packets and FEC Repair packets.
2.2.2 Sender Operation [0070] It is assumed that the sender has constructed or received original data packets for the session. These may be RTP, RTCP, MIKEY or other UDP packets. The following operations describe a possible way to generate compliant FEC Source packet and FEC repair packet streams:
1. A source block is constructed as specified in Section 2.3.2, by concatenating the SPI for each original source packet, hi doing so, the Source FEC Packet Identification
Information of the FEC Source packet can be determined and included in the Source FEC Payload ID field, if used. In the SPI the identity of the packet's UDP flow is marked using a short 'UDP flow ID', defined in this specification. The association of UDP flow specifications to UDP flow IDs is defined by the FEC Streaming Configuration Information.
2. The FEC Source packet is constructed according to Section 2.3.3. The identity of the original flow is maintained by the source packet through the use of the same UDP ports and IP addresses which have been advertised by the Content Delivery Protocol (for example using DVB Service Discovery), as carrying FEC Source packets generated from an original stream of a particular protocol (e.g. RTP, RTCP,
SRTP, MIKEY etc.). The FEC Source packet generated is sent according to normal UDP procedures.
3. The FEC encoder generates repair symbols from a source block and the FEC Streaming Framework places these symbols into FEC Repair packets, to be conveyed to the receiver(s). These repair packets are sent using normal UDP procedures to a unique destination port to separate them from any of the source packet flows. The ports to be used for FEC Repair packets are defined in the FEC Streaming Configuration Information. 2.2.3 Receiver Operation
[0071] The following describes a possible receiver algorithm, when receiving an FEC source or repair packet:
1. If an FEC Source packet is received (as indicated by the UDP flow on which was received):
a. The original source packet is reconstructed by removing the Source FEC Payload ID, if used. The resulting packet may be buffered to allow time for the FEC repair.
b. The Source FEC Packet Identification Information is determined from the Source FEC Payload ID, if used, or by other means.
c. The SPI for the resulting packet is placed into the source block according to the Source FEC Packet Identification Information and the source block format described in Section 2.3.2. The IP addresses and UDP ports the packet was received on/sent from are used to determine the UDP flow ID within the SPI.
2. If an FEC repair packet is received (as indicated by the UDP flow on which it was received), the contained repair symbols are associated with a source block according to the Repair FEC Payload ED.
3. If at least one source packet is missing and at least one repair packet has been received for a source block then FEC decoding may be desirable. The FEC decoder determines if the source block constructed in step 1 plus the associated repair symbols received in step 2 contain enough symbols for decoding of any or all of the missing source symbols in the source block and, if so, performs a decoding operation.
4. Any SPI that was reconstructed during the decoding operation is then used to reconstruct the missing source packets and these are buffered as normal received source packets (see step Ia above).
[0072] Note that the above procedure may result in a situation in which not all original source packets are recovered.
[0073] Source packets which are correctly received and those which are reconstructed may be delivered to the application out of order and in a different order from the order of arrival at the receiver. Alternatively, buffering and packet re-ordering may be required to re-order received and reconstructed source packets into the order they were placed into the source block, if that is necessary according to the application.
2.3 Protocol Specification 2.3.1 General
[0074] This section specifies the protocol elements for the FEC Streaming Framework. The protocol comprises three components which are described in the following sections:
1. Construction of a source block from source packets. The FEC code will be applied to this source block to produce the repair data.
2. A format for packets containing source data.
3. A format for packets containing repair data.
[0075] The operation of the FEC Streaming Framework is governed by certain FEC Streaming Configuration Information. This configuration information is also defined in this section. A complete protocol specification that uses this framework should specify the means to determine and communicate this information between sender and receiver.
2.3.2 Structure of the source block
[0076] This clause defines the layout of the source block. The source block comprises a concatenation of SPI for at least one original source UDP packet.
Let
n be the number of UDP packets in the source block, n may be determined dynamically during the source block construction process.
T be the source symbol size in bytes. Note: this information is provided by the FEC Scheme as defined in Section 2.3.6
R[i] denote the octets of the UDP payload of the i-th UDP packet to be added to the source block, 0 <= i < n.
l[i] be the length of R[i] in octets
L[i] denote two octets representing the value of l[i] in network byte order (high order octet first) f[i] denote an integer 'UDP flow ID' identifying the UDP flow from which the i-th packet was taken
FfiJ denote a single octet representing the value of f[i]
sfij be the smallest integer such that s[i]*T >= (l[i]+3). Note s[i] is the length of SPI[i] in units of symbols.
PfiJ denote s[i]*T-(l[i]+3) zero octets. Note: P[i] are padding octets to align the start of each UDP packet with the start of a symbol.
SPIfiJ be the concatenation of F[i] ,L[i], R[i] and P[i].
[0077] Then, the source block is constructed by concatenating SPI[i] for i = 0, 2, ... n-1. The source block size, S, is then given by sum {s[i]*T, i=0, ..., n-1}.
[0078] Source blocks are identified by integer Source Block Numbers and symbols within a source block by integer Encoding Symbol IDs. This section does not specify how Source Block Numbers are allocated to source blocks. Symbols are numbered consecutively starting from zero within the source block. Each source packet is associated with the Encoding Symbol ID of the first symbol containing SPI for that packet. Thus, the Encoding Symbol ID value associated with the j-th source packet, ESI[J], is given by
ESI[J] = O, for j=0
ESI[J] = sum{s[i], i=0,...,(/-l)}, for 0 <j < n
[0079] The Source FEC Packet Identification Information comprises the identity of the source block and the Encoding Symbol ID associated with the packet.
[0080] A UDP flow is uniquely defined by an IP source and destination address and UDP source and destination port values. The assignment of UDP flow ID values to UDP flows is part of the FEC Streaming Configuration Information.
2.3.3 Packet format for FEC Source packets
[0081] The packet format for FEC Source packets should be used to transport the payload of an original source UDP packet. As depicted in Fig. 3, it comprises the original UDP packet, followed, optionally, by the Source FEC Payload ED field, if used.
[0082] The IP and UDP header fields should be identical to those of the original source packet. The Original UDP Payload field should be identical to the UDP payload of the original source packet. The UDP payload of the FEC Source packet should consist of the Original UDP Payload followed by the Source FEC Payload ID field.
[0083] The Source FEC Payload ID field, if present, contains information required for the operation of the FEC algorithm, in particular for the derivation of the Source FEC Packet Identification Information. The format of the Source FEC Payload ID and the derivation of the Source FEC Packet Identification Information are defined by the FEC Scheme. Note that the FEC Scheme or CDP may define a means to derive the Source FEC Packet Identification Information from other information in the source packet (for example the RTP Sequence number). In this case the Source FEC Payload ID field described here is not appended to the packet and the Source FEC packet is identical in every way to the original Source packet.
2.3.4 Packet Format for FEC Repair packets
[0084] The packet format for FEC Repair packets is shown in Fig. 4. The UDP payload comprises a Repair FEC Payload ED field and one or more repair symbols generated by the FEC encoding process. The Repair FEC Payload ID field contains information required for the operation of the FEC algorithm. This information is defined by the FEC Scheme. The format of the Repair FEC Payload ID field is defined by the FEC Scheme.
[0085] Any number of whole repair symbols may be contained within an FEC Repair packet, subject to packet size restrictions or other restrictions defined by the FEC Scheme. The number of repair symbols within a packet can be determined from the symbol length and the packet length. Partial repair symbols should not be included in FEC repair packets.
2.3.5 FEC Streaming Configuration Information
[0086] The FEC Streaming Configuration Information is information that the FEC Streaming Framework needs in order to apply FEC protection to the UDP flows. A complete Content Delivery Protocol specification for streaming that uses the framework specified here should include details of how this information is derived and communicated between sender and receiver.
[0087] The FEC Streaming Configuration Information includes identification of a number of UDP packet flows. Each UDP packet flow is uniquely identified by a tuple { Source D? Address, Destination E? Address, Source UDP port, Destination UDP port } . [0088] A single instance of the FEC-SF provides FEC protection for all packets of a specified set of source UDP packet flows, by means of one or more UDP packet flows containing repair packets. The FEC Streaming Configuration Information includes, for each instance of the FEC-SF:
1. Identification of the UDP packet flow(s) carrying FEC Repair packets, known as the FEC repair flow(s).
2. For each source UDP packet flow protected by the FEC repair flow(s):
a. Identification of the UDP packet flow carrying source packets.
b. An integer identifier, between 0 and 255, for this flow. This identifier should be unique amongst all source UDP packet flows which are protected by the same FEC repair flow.
3. The FEC Encoding ID, FEC Instance ED (if applicable) and, optionally, the symbol size.
[0089] Item (3) above is included in the FEC Object Transmission Information.
[0090] Multiple instances of the FEC-SF, with separate and independent FEC Streaming Configuration Information, may be present at a sender or receiver. A single instance of the FEC-SF protects all packets of all the source UDP packet flows identified in (2) above i.e. all packets on those flows should be FEC Source packets as defined in Section 2.3.3. A single source UDP packet flow should not be protected by more than one FEC-SF instance.
[0091] A single FEC repair flow provides repair packets for a single instance of the FEC- SF. Other packets should not be sent within this flow i.e. all packets in the FEC repair flow should be FEC repair packets as defined in Section 2.3.4and should relate to the same FEC- SF instance.
[0092] The FEC-SF requires to be informed of the symbol size to be used for each source block. This information may be included in the FEC Streaming Configuration Information or it may be communicated by other means, for example within the FEC Repair Payload ED field. A complete Content Delivery Protocol specification should specify how this information is communicated between sender and receiver. 2.3.6 FEC Scheme requirements
[0093] The preferred FEC scheme is systematic, is based on discrete source blocks, specifies how the Source Block Number and Encoding Symbol ID associated with a source packet are derived or communicated from sender to receiver (for example, within the Source FEC Payload ID field), and specifies how the symbol length is derived or communicated from sender to receiver (for example, as part of the FEC Object Transmission Information).
3. FEC Schemes for streaming
3.1 MSCR FEC Scheme for arbitrary packet flows
This clause defines a FEC Scheme for MSCR protection of arbitrary packet flows over UDP.
3.1.1 Formats and Codes
3.1.1.1 FEC Object Transmission Information
3.1.1.1.1 FEC Object Transmission Element
The FEC Object Transmission Element, FEC Encoding ID is set to a predetermined value.
3.1.1.1.2 Common
[0094] This Common FEC Object Transmission Information elements and their value ranges for this scheme are such that the Maximum Source Block Length is a non-negative integer less than 21 , in units of symbols, and the Encoding Symbol Size is a non-negative integer less than 216, in units of bytes. The format for the encoded Common FEC Object Transmission Information elements can be a four-octet field defined in Fig. 5.
3.1.1.2 FEC Payload ID
3.1.1.2.1 Source FEC Payload ID
[0095] The Source FEC payload ID might be as shown in Fig. 6. There, the Source Block Number (SBN) (16 bits) is an integer identifier for the source block that the source data within the packet relates to, and the Encoding Symbol ID (ESI) (16 bits) is the starting symbol index of the source packet in the source block. The interpretation of the Encoding Symbol Identifier is defined by the FEC Streaming Framework (See Section 2). 3.1.1.2.2 Repair FEC Payload ID
[0096] The structure of the Repair FEC Payload ID is defined in Fig. 7, where the Source Block Number (SBN) (16 bits) is an integer identifier for the source block that the repair symbols within the packet relate to, the Encoding Symbol ID (ESI) (16 bits) is an integer identifier for the encoding symbols within the packet, and the Source Block Length (SBL) (16 bits) is the number of source symbols in the source block. The interpretation of the Source Block Number, Encoding Symbol Identifier and Source Block Length can be as defined by the FEC Code Specification.
3.1.2 Procedures
[0097] This FEC Scheme uses the procedures of the framework defined in Section 2 to construct a source block to which the FEC code can be applied. The sender should allocate Source Block Numbers to source blocks sequentially, wrapping around to zero after Source Block Number 216-1. The sender should not construct source blocks which are larger than the Maximum Source Block Length signaled within the FEC Object Transmission Information.
3.1.3 FEC Code specification
[0098] The source block passed to the MSCR FEC encoder comprises the Source Block constructed according to Section 3.1.2 extended with zero or more padding symbols such that the total number of symbols in the source block is equal to the Maximum Source Block Length signaled in the FEC Object Transmission Information (see Section 3.1.1.1.2). Thus the value of K used by the FEC encoded is equal to the Maximum Source Block Length. Padding symbols can be bytes set to the value zero.
[0099] The symbol size, T, to be used for source block construction and the repair symbol construction are is equal to the Encoding Symbol Size signaled in the FEC Object Transmission Information (see Section 3.1.1.1.2). The parameter T is set such that the number of source symbols in any source block is at most KMAX = 8192.
[0100] Recommended parameters are presented in section 3.1.3.3. 3.1.3.1 Encoding packet construction
[0101] As described in section 2.3.4, each repair packet contains the the Source Block Number (SBN), the Encoding Symbol ID (ESI), the Source Block Length (SBL), and the repair symbol(s).
[0102] The number of repair symbols contained within a repair packet is computed from the packet length. The ESI values placed into the repair packets and the repair symbol triples used to generate the repair symbols are computed as described in sub-clause C.3.2.2 of [2].
[0103] The Source Block Length field of the Repair FEC Payload ID field is set to the number of symbols included in the Source Packet Information of packets associated with the source block, i.e., before padding to the Maximum Source Block Length.
3.1.3.2 Transport
[0104] This sub-clause describes the information exchange between the MSCR encoder/decoder and any transport protocol making use of MSCR FEC for streaming.
[0105] The MSCR encoder for streaming uses the following information from the transport protocol for each source block:
The symbol size, T, in bytes
The number of symbols in the source block, K
The Source Block Number (SBN)
The source symbols to be encoded, K-T bytes
[0106] The MSCR encoder supplies the transport protocol with encoding packet information comprising, for each repair packet:
Source Block Number (SBN)
Encoding Symbol ID (ESI)
Source Block Length (SBL)
- repair symbol(s)
[0107] The transport protocol communicates this information transparently to the MSCR decoder. [0108] A suitable transport protocol is defined in this specification.
3.1.3.3 Example parameters
3.1.3.3.1 Parameter derivation algorithm
[0109] This section provides recommendations for the derivation of the transport parameter T. This recommendation is based on the following input parameters:
B the maximum source block size, in bytes
P the maximum repair packet payload size (not including Repair FEC
Payload ED), in bytes, which should be multiple of A
A the symbol alignment factor, in bytes
- KMAX the maximum number of source symbols per source block. As defined in [2], KMAX = 8192.
K-MiN a minimum target on the number of symbols per source block
GMAX a maximum target number of symbols per repair packet
[0110] A requirement on these inputs is that cύ\{BIP) ≤KMAX- Based on the above inputs, the transport parameter T is calculated as follows:
Let,
G
Figure imgf000025_0001
PIA, GMAX) - the approximate number of symbols per packet
T= flooτ(P/(A'G))'A
[0111] The value of T derived above should be considered as a guide to the actual value of Tused. It may be advantageous to ensure that T divides into P, or it may be advantageous to set the value of T smaller to minimize wastage when full size repair symbols are used to recover partial source symbols at the end of lost source packets (as long as the maximum number of source symbols in a source block does not exceed KMAX)- Furthermore, the choice of T may depend on the source packet size distribution, e.g., if all source packets are the same size then it is advantageous to choose T so that the actual payload size of a repair packet P\ where P' is a multiple of T, is equal to (or as few bytes as possible larger than) the number of bytes each source packet occupies in the source block. [0112] Recommended settings for the input parameters, A, KMIN and GMAX are A = 16, KMIN = 640, (W= IO.
3.1.3.3.2 Examples
[0113] The above algorithm leads to transport parameters as shown in Table 3 below, assuming the recommended values for A, KMIN and GMAX and P = 1424:
Max source block size B G Symbol size T G-T
16KB 10 128 1280
32KB 10 128 1280
128KB 7 192 1344
256KB 4 352 1408
Table 3: Example parameters settings
3.2 MSCR FEC Scheme for a single sequenced packet flow
[0114] This section defines an alternative FEC Scheme for FEC protection of a single packet flow in which source packets each carry a unique sequence number. We call such a packet flow a "sequenced flow". A primary example would be FEC protection of an RTP flow containing an MPEG-2 Transport Stream within which all data for the service is multiplexed. In this case the RTP Sequence Numbers can be used to derive the Source FEC Packet Identification Information.
[0115] Compared to the FEC Scheme defined in Section 3.1, the primary advantage of this scheme is that it does not modify source packets in any way. As a result this FEC scheme can be used in the presence of legacy equipment which would not recognize source packets which had been modified according to the schemes defined in Section 3.1.
[0116] In this FEC Scheme, the role played by the Source FEC Payload E) in the scheme of Section 3.1 is replaced by the sequence number. The sequence numbers of packets within each flow to be protected should be incremented by one for each packet in the stream.
[0117] The size of the Source Packet Information within a given Source Block for each packet within a given sequenced flow should be the same and is derived from the size of the FEC Repair packets, which should also all be the same size for a given source block.
3.2.1 Formats and Codes
3.2.1.1 FEC Object Transmission Information 3.2.1.1.1 Mandatory
This FEC Scheme is identified by a predetermined FEC Encoding ID.
3.2.1.1.2 Common
See Section 3.1.1.1.2
3.2.1.1.3 Scheme Specific
No Scheme-specific FEC Object Transmission Information is defined by this FEC Scheme.
3.2.1.2 FEC Payload ID
3.2.1.2.1 Source FEC Payload ID
[0118] The Source FEC Payload ID field is not used by this FEC Scheme. Source packets are not modified in any way by this FEC Scheme.
3.2.1.2.2 Repair FEC Payload ID
[0119] The Repair FEC Payload ID format for this FEC Scheme is shown in Fig. 8. There, the Initial Sequence Number (Flow i ISN) is a 16-bit field that specifies the lowest 16 bits of the sequence number of the first packet to be included in this sub-block. If the sequence numbers are shorter than 16 bits then the received Sequence Number is logically padded with zero bits to become 16 bits in length respectively. The Encoding Symbol ID (ESI) is a 16-bit field that indicates which repair symbols are contained within this repair packet. The ESI provided is the ESI of the first repair symbol in the packet. The Source Block Length (SBL) is a 16-bit field that the length of the source block in symbols.
3.2.2 Procedures
[0120] This FEC Scheme uses the procedures of the framework defined in Section 2 to construct a source block to which the FEC code can be applied. In addition to the procedures defined there, the following procedures apply.
3.2.2.1 Derivation of Source FEC Packet Identification Information
[0121] The Source FEC Packet Identification Information for a source packet is derived from the sequence number of the packet and information received in the Repair FEC packets. Source blocks are identified by the sequence number of the first source packet in the block. This information is signaled in all Repair FEC packets associated with the source block in the Initial Sequence Number field.
[0122] The length of the Source Packet Information (in bytes) for source packets within a source block is equal to length of the payload containing encoding symbols of the repair packets (i.e. not including the Repair FEC Payload ID) for that block, which should all be the same. The Source Packet Information Length (SPIL) in symbols is equal to this length divided by the Encoding Symbol Size (which is signaled in the Common FEC Object Transmission Information).
[0123] The set of source packets which are included in the source block is determined from the Initial Sequence Number (ISN) and Source Block Length (SBL) as follows:
Let,
/be the Initial Sequence Number of the source block
Lp be the Source Packet Information Length in symbols
LB be the Source Block Length in symbols
Then, source packets with sequence numbers from /to I +LBILP-I inclusive are included in the source block.
[0124] Note that if no FEC Repair packets are received, then no FEC decoding is possible and it is unnecessary for the receiver to identify the Source FEC Packet Identification Information for the source packets.
[0125] The Encoding Symbol ID for a packet is derived from the following information:
The sequence number, Ns, of the packet
The Source Packeting Information Length for the source block, LP
The Initial Sequence Number of the source block, I
[0126] Then the Encoding Symbol ID for packet with sequence number Ns is determined by the following formula:
ESI = (Ns - I) - Lp [0127] Note that all repair packet associated to a given Source Block should contain the same Source Block Length, Source Packet Information Length and Initial Sequence Number.
3.2.2.2 Derivation of repair packet Encoding Symbol IDs
[0128] The Encoding Symbol ID for a repair packet indicates which repair symbols the packet contains. This is given directly by the Encoding Symbol ID field of the Repair FEC Payload ED.
3.2.2.3 Procedures for RTP flows
I[0129] n the specific case of RTP packet flows, then the RTP Sequence Number field is used as the sequence number in the procedures described above.
3.2.3 FEC Code specification
The requirements of section 3.1.3 apply.
3.2.3.1 Example parameters
3.2.3.1.1 Parameter derivation algorithm
[0130] It is recommended that the algorithm of Section 3.1.3.3.1 is used.
[0131] In the case of RTP streams carrying MPEG-2 Transport Streams, then the maximum repair packet size should be set to
P = ceil((«'188 + 15)/Λ)«Λ
[0132] Where n is the nominal number of 188 byte TS packets per D? Source packet.
[0133] The maximum source block size is determined by application configuration at the sender.
3.2.3.1.2 Examples
[0134] The above algorithm leads to transport parameters for MPEG-2 Transport Streams as shown in Table 4 below, assuming the recommended values for A, KMIN and G MAX-
Figure imgf000030_0001
4 Common protocol elements
[0135] This section defines a number of common protocol elements which can be used in conjunction with the framework defined in Section 2 and the FEC Schemes defined in Section 3 to construct complete protocols for FEC protection of streaming media.
4.1 FEC Feedback protocol
4.1.1 General
[0136] This section specifies a simple, optional, protocol for receivers to provide feedback about the reception of FEC data in the case of unicast streams. This feedback maybe used by senders to adapt the FEC parameters. Feedback is provided about the reception and decoding success or failure for groups of source blocks, known as 'feedback groups'.
[0137] The capability to accept feedback must be advertised by the sender to the receiver, along with the IP address and destination UDP port to which the feedback should be sent and the requested size of the feedback groups on which feedback is requested.
[0138] Feedback is provided on a "best-effort" basis - senders should not rely on receiving feedback messages.
[0139] In this version of the protocol, a single Feedback Report message is provided which provides feedback on a single feedback group.
• The following information is provided in each feedback report:
• The number of source blocks in the feedback group
• The number of source blocks in the feedback group received without error
• The number of successfully decoded source blocks in the feedback group
• The number of source blocks which could not be decoded in the feedback group • The maximum number of packets received for any source block in the feedback group
• The minimum number of packets received for any source block in the feedback group
• The total number of received packets for the feedback
4.1.2 Formats and codes
4.1.2.1 General message format
[0140] FEC Feedback Protocol messages are sent over UDP with the UDP payload formatted according to Fig. 9. In such messages, the Version field is set to zero (0) in this version of the protocol
Message type:
0x00 Feedback report
0x01 - Oxff Reserved
Source Block Identifier:
Identifies the first source block in the group this report refers to. If the FEC Scheme defines a Source Block Number, then this is used as the Source Block Identifier.
Number of source blocks:
The number of source blocks to which this report refers
Payload:
The contents of the payload field depend on the message type and are defined below.
4.1.2.2 Message payload format
[0141] The format of the Payload field for the Feedback report is defined in Fig. 10.
Number of "Error Free" Blocks: indicates the number of source blocks from the feedback group for which decoding was not required because all source packets were received without error. Number of "Decoding Successful" blocks: indicates the number of source blocks from the feedback group for which decoding was required and was completed successfully.
Number of "Decoding Unsuccessful" blocks: indicates the number of source blocks from the feedback group for which decoding was required but could not be completed successfully due to insufficient information being received.
Max Packets Received: indicates the maximum number of packets (source and repair) that were received for any source block in the feedback group.
Min Packets Received: indicates the minimum number of packets (source and repair) that were received for any source block in the feedback group.
Total packets received: indicates the total number of packets (source and repair) that were received for all source blocks in the feedback group.
4.1.3 Procedures
4.1.3.1 FEC Sender procedures
[0142] This section defines the procedures at the device which is sending FEC protected data and receiving FEC Feedback Protocol data.
4.1.3.1.1 General
[0143] The support of the FEC Feedback Protocol at senders is optional. Senders advertise support of the FEC Feedback Protocol, the highest version supported, the IP destination address and UDP destination port that messages should be sent to and the requested size of feedback groups in the FEC Streaming Configuration Information. The mechanism used to communicate the FEC Streaming Configuration Information is Content Delivery Protocol specific.
[0144] The FEC Sender can ignore FEC Feedback Protocol packets received with an unrecognized version number and FEC Feedback Protocol packets received with a reserved message type.
[0145] In the case the FEC Feedback Protocol messages are received which are longer than expected, the Sender should discard the additional bytes and process the message as normal. 4.1.3.1.2 Receipt of Feedback Report messages
[0146] On receipt of a Feedback Report message, the FEC Sender may adapt the FEC parameters (source block size, sending rate and arrangement etc.) for subsequent source blocks based on the information received in the Feedback Report Message.
[0147] In the case that the feedback group size is a single source block, and if
• the Feedback Report indicates that the source block was received successfully or was successfully decoded, and
• the FEC Sender is still sending FEC repair packets for the source blocks,
then the FEC Sender should stop sending FEC repair packets for the source block.
4.1.3.2 FEC receiver procedures
[0148] This section defines the procedures at the device which is receiving FEC protected data and sending FEC Feedback Protocol data.
4.1.3.2.1 General
[0149] The support of the FEC Feedback Protocol at receivers is optional.
[0150] If support of the FEC Feedback Protocol has not been advertised by the FEC Sender, then the FEC Receiver should not send FEC Feedback Protocol messages.
[0151] If support of the FEC Feedback Protocol has been advertised by the FEC Sender, then the FEC Receiver can use the information in the FEC Streaming Configuration Information to determine the highest version supported by the FEC Sender, the EP destination address and UDP destination port that messages should be sent to and the size of the feedback groups.
[0152] The FEC Receiver should not send FEC Feedback Protocol messages with a version number which is higher than the highest version supported by the FEC Sender.
[0153] The FEC Receiver should determine on a per FEC Streaming Framework instance basis whether the FEC Feedback Protocol will be used. A feedback group should comprise a consecutive sequence of Source Blocks except that Source Blocks for which no repair packets have been received should not be included in any feedback group. The number of source blocks in a feedback group should be equal to the requested feedback group size indicated in the FEC Streaming Configuration Information.
[0154] Each Source Block in the feedback group should be categorised either "Error Free", "Decoding Successful" or "Decoding Unsuccessful" as described in the following sections.
[0155] The FEC receiver should send a Feedback Report message immediately that the category of all Source Blocks in the feedback group is determined.
4.1.3.2.2 "Error Free" Source Blocks
[0156] A Source Block can be considered "Error free" immediately that the FEC Receiver determines that FEC decoding will not be necessary for a source block.
4.1.3.2.3 "Decoding Successful" Source Blocks
[0157] A Source Block can be considered as "Decoding Successful" immediately on successful decoding of the Source Block.
4.1.3.2.4 "Decoding Unsuccessful" Source Blocks
[0158] A Source Block can be considered as "Decoding Unsuccessful" immediately that the FEC Receiver determines that FEC decoding for the source block is necessary but is not possible. The FEC Receiver can determine that FEC decoding for a source block is necessary but is not possible at the point when:
• at least one source symbol for the source block is unknown,
• insufficient repair symbols have been received to decode the source block, and
• source symbols are required by the application (e.g. media player).
[0159] The FEC Receiver may determine that FEC decoding for a source block is necessary but is not possible at other times, for example if no further repair symbols have been received for the source block for some time period determined by the FEC Receiver.
4.2 FEC Sending arrangements
[0160] The FEC Streaming Framework defined in Section 2 does not prescribe any arrangement of transmitted packets. This section described approaches that may be used by the sender to determine the sending arrangement for the FEC Source and FEC Repair packets of the stream. 4.2.1 Simple constant rate FEC sending
[0161] This section describes a simple sending arrangement in which the sending rate of FEC Source Packets and FEC Repair Packets is kept constant within each source block.
[0162] For each source block, source packets are sent first, followed by repair packets. All packets of one source block are sent before any packets of the subsequent block.
[0163] The sending data rate of all data (source and repair) is constant within the source block and given by the following formula:
R .J repair send = R. source
Where:
RSend is the sending rate
Rsource is the source data rate
Drepair is the amount of repair data (bytes, including packetisation overhead)
Dsource is the amount of source data (bytes, including packetisation overhead)
4.3 Determining FEC Source Block boundaries
[0164] This sections presents a number of algorithms that may be used by the sender to determine FEC Source Block boundaries.
4.3.1 Protection period based
[0165] In this approach, Source Blocks are constructed based on a time period, known as a "protection period". In general, the protection period is the same for every source block of a stream. However, it may be varied on a block by block basis.
[0166] In the case of a real-time stream, the source packets of a source block are exactly those that arrive within a period of time equal to the protection period.
[0167] In the case of pre-encoded content, the source packets of a source block are exactly those that would be sent within a period of time equal to the protection period in the normal sending arrangement for a non-FEC protected stream generated from that content. [0168] In this approach, using the sending arrangements of Sections 4.2.1 and elsewhere packets are buffered at the receiver for a time at least equal to the longest playout time of any source block.
5 Content Delivery Protocols
[0169] This section defines several complete Content Delivery Protocols, making use of the components defined in Sections 2-4.
5.1 Multicast MPEG-2 Transport Stream
[0170] This section defines a Content Delivery Protocol for FEC protected multicast delivery of MPEG-2 Transport Streams.
5.1.1 Control protocols
[0171] Session information include:
• The destination UDP port for each repair flow
• The IP multicast address of each repair flow, if multiple repair flow layers are provided
• The joining order of repair flows, if multiple repair flow layers are provided
• The FEC Object Transmission Information (Maximum Source Block Size and Encoding Symbol Size)
• The minimum buffering time required at the receiver
The Flow ID for the MPEG-2 TS flow is zero.
5.1.2 Transport protocol
[0172] FEC protection of the MPEG-2 Transport Stream may be provided using
• the FEC Streaming Framework described in Section 2
• the FEC Scheme defined in Section 3.3
• the FEC sending arrangement described in 4.2.1
• the FEC source block boundary identification mechanism described in 4.3.1
[0173] Each MPEG-2 Transport Stream should be protected independently. 5.2 Unicast MPEG-2 Transport Stream
[0174] This section defines a Content Delivery Protocol for FEC protected unicast delivery of MPEG-2 Transport Streams.
5.2.1 Control protocols
[0175] Session information can include:
• The FEC Object Transmission Information (Maximum Source Block Size and Encoding Symbol Size)
• The minimum buffering time required at the receiver
• Requested FEC Feedback Group size (or zero if feedback not requested)
[0176] The Repair FEC flow associated with a unicast RTP flow can be sent to the destination UDP port number two higher than the destination UDP port to which the RTP flow is sent.
[0177] The Flow ED for the MPEG-2 TS flow is zero.
[0178] IfFEC Feedback is requested by the sender and supported by the receiver, then FEC Feedback messages can be sent to the address/UDP port which are used as the source address/port for the FEC repair stream from server to receiver.
5.2.2 Transport protocol
[0179] FEC protection of the MPEG-2 Transport Stream may be provided using
• the FEC Streaming Framework described in Section 2
• the FEC Scheme defined in Section 3.3
• the FEC sending arrangement described in 4.2.1
• the FEC source block boundary identification mechanism described in 4.3.1
[0180] Each MPEG-2 Transport Stream can be protected independently.
5.3 Generic multicast video
[0181] This section defines a Content Delivery Protocol for FEC protected multicast delivery of arbitrary audio/video streams (for example H.264 encapsulated in RTP). This section is provided to describe how FEC can be applied to future extensions to the DVB IPI Handbook which address direct encapsulation of audio/video streams in RTP.
5.3.1 Control protocols
[0182] Session information includes:
• The destination UDP port for each repair flow
• The IP multicast address of each repair flow, if multiple repair flow layers are provided
• The joining order of repair flows, if multiple repair flow layers are provided
• The FEC Object Transmission Information (Maximum Source Block Size and Encoding Symbol Size)
• The IP Multicast addresses, UDP destination port numbers and Flow IDs of the protected UDP flows (for example audio and video flow).
• The minimum buffering time required at the receiver
5.3.2 Transport protocols
[0183] The audio/video stream is assumed to be carried by one or more UDP flows (probably RTP flows).
[0184] FEC protection of these UDP flows may be provided using
• the FEC Streaming Framework described in Section 2
• the FEC Scheme defined in Section 3.1
• the FEC sending arrangement described in 4.2.1
• the FEC source block boundary identification mechanism described in 4.3.1
5.4 Generic unicast video
[0185] This section defines a Content Delivery Protocol for FEC protected unicast delivery of arbitrary audio/video streams (for example H.264 encapsulated in RTP). This section is provided to describe how FEC can be applied to future extensions to the DVB EPI Handbook which address direct encapsulation of audio/video streams in RTP. 5.4.1 Control protocols
[0186] Session information includes:
• The destination UDP port for the repair flow
• The FEC Object Transmission Information (Maximum Source Block Size and Encoding Symbol Size)
• The UDP destination port numbers and Flow IDs of the protected UDP flows (for example audio and video flow).
• The minimum buffering time required at the receiver
• The FEC Feedback group size (or zero if FEC Feedback is not requested)
[0187] IfFEC Feedback is requested by the sender and supported by the receiver, then FEC Feedback messages can be sent to the address/UDP port which are used as the source address/port for the FEC repair stream from server to receiver.
5.4.2 Transport protocols
[0188] The audio/video stream is assumed to be carried by one or more UDP flows (probably RTP flows).
[0189] FEC protection of these UDP flows may be provided using
• the FEC Streaming Framework described in Section 2
• the FEC Scheme defined in Section 3.1
• the FEC sending arrangement described in 4.2.1
• the FEC source block boundary identification mechanism described in 4.3.1
6. FEC Streaming Recommendations
[0190] This section provides some further optional recommendations for the use of the above FEC streaming protocols in the DVB environment.
6.1 Multicast 6.1.1 Layered FEC sending (optional)
[0191] Senders may advertise more than on IP multicast address for repair packets associated with a single source stream. Senders should send distinct repair packets on each multicast group.
[0192] Receivers may join any number of such multicast groups in order to adapt the rate of received repair packets according to the local error rates.
[0193] However, it should be noted that in order to meet IPTV quality targets, sufficient overhead must be received to overcome even relatively rare error events and thus receivers should measure error rates over a sufficiently long period in order to determine the amount of repair data required.
6.2 Unicast
6.2.1 Source Block Construction at stream start (optional)
[0194] Source Block boundaries should be identified using the protection period algorithm defined in Section 4.4.1. The following algorithm is recommended for determining the protection periods, FEC overhead and sending rate to be used at any point at which a new stream is to be played out (e.g. start of stream or when using trick-modes). This algorithm allocates the initial available bandwidth above the source rate evenly between FEC repair data and fast buffer fill data. The initial available bandwidth may be greater than the nominal (long term) bandwidth or it may be the same, but should not be less.
Let,
Bmax be the initial bandwidth available to the stream (source and FEC)
Bnom be the nominal bandwidth for the stream (source and FEC)
Bsrc be the source bandwidth
Pinit be the initial buffering delay
Pfinai be the target protection period
P be the ith protection period for i=0, 1 , ...
Shit be the initial source sending rate
Pvjnit be the initial repair sending rate Then,
Figure imgf000041_0001
C p _ p mil
B.
Figure imgf000041_0002
and, for all i such that Pt < Pβnaι, then S1.,
P , , = P.
B,
And for all / such that P1 >- Pβπat P - P
[0195] For protection periods of duration less that Pfinal, the source sending rate should be Sinit and the repair sending rate Rinit. After this, the source sending rate should be reduced to Bsrc. This arrangement means that during the initial period the source sending rate is higher than the actual source data rate and thus each protection period contains data which will take longer to play out than it took to send. As a result the subsequent protection period can be made longer, according to the algorithm above, without starving the receiver.
[0196] The minimum buffering time at the receiver advertised in the Service Discovery information should be Pinit.
6.2.2 Use of FEC Feedback (optional)
[0197] FEC Feedback may be used on a long term basis to adjust the FEC Overhead which is provided to an individual user. However, it should be noted that in order to meet IPTV quality targets, sufficient overhead must be provided to overcome even relatively rare error events and thus feedback data gathered over a short period of time is not sufficient to determine the long-term overhead required.
[0198] In the case that the protection period is significantly longer than the IP round trip time between sender and receiver, then FEC Feedback may be requested for feedback groups of a single source block. In this case, feedback reports may be used to abandon sending of FEC repair packets for a source block in a report is received indicating that this source block has been successfully received/decoded. [0199] While the invention has been described with respect to exemplary embodiments, one skilled in the art will recognize that numerous modifications are possible. For example, the methods and processes described herein may be implemented using hardware components, software components, and/or any combination thereof. Thus, although the invention has been described with respect to exemplary embodiments, it will be appreciated that the invention is intended to cover all modifications and equivalents within the scope of the following claims.

Claims

WHAT IS CLAIMED IS:
1. A communication system for streaming data, wherein data is streamed from a transmitter to a receiver such that the receiver can begin to use the streamed data before it is all received or transmitted, the transmitter comprising: logic for encoding forward error correction ("FEC") for the data to be transmitted, whereby a transmitted stream includes data and FEC information and the data is transmitted using a transmit rate that is greater than a consumption rate of the receiver.
2. A communication system for streaming data, wherein data is streamed from a transmitter to a receiver such that the receiver can begin to use the streamed data before it is all received or transmitted, the transmitter comprising: logic for encoding forward error correction ("FEC") for the data to be transmitted, whereby a transmitted stream includes data and FEC information; logic for timing transmission such that, at least for part of the transmission, the input rate of the transmitter is greater than a consumption rate of the receiver; and logic to vary the amount of FEC and/or input rate excess over the time of streaming transmission.
PCT/US2007/062086 2006-02-13 2007-02-13 Streaming and buffering using variable fec overhead and protection periods WO2007095550A2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008554547A JP5550834B2 (en) 2006-02-13 2007-02-13 Streaming and buffering using variable FEC overhead and protection period
KR1020087022279A KR101292851B1 (en) 2006-02-13 2007-02-13 Streaming and buffering using variable fec overhead and protection periods
EP07756943.2A EP1985021A4 (en) 2006-02-13 2007-02-13 Streaming and buffering using variable fec overhead and protection periods

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US77318506P 2006-02-13 2006-02-13
US60/773,185 2006-02-13
US77350106P 2006-02-14 2006-02-14
US60/773,501 2006-02-14

Publications (2)

Publication Number Publication Date
WO2007095550A2 true WO2007095550A2 (en) 2007-08-23
WO2007095550A3 WO2007095550A3 (en) 2008-01-10

Family

ID=38372223

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2007/062086 WO2007095550A2 (en) 2006-02-13 2007-02-13 Streaming and buffering using variable fec overhead and protection periods

Country Status (7)

Country Link
US (1) US9136983B2 (en)
EP (1) EP1985021A4 (en)
JP (2) JP5550834B2 (en)
KR (1) KR101292851B1 (en)
CN (1) CN101686107B (en)
HK (1) HK1141172A1 (en)
WO (1) WO2007095550A2 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2207354A1 (en) 2009-01-13 2010-07-14 Alcatel-Lucent España, S.A. Method and device for ensuring reliability during transmission of television data in a television system based on internet protocol
WO2013078558A1 (en) * 2011-11-28 2013-06-06 Jigsee Inc. Method of determining transport parameters for efficient data transport across a network
CN103957222A (en) * 2014-05-20 2014-07-30 艾诺通信系统(苏州)有限责任公司 Video transmission self-adaption method based on FEC algorithm
EP2820785A4 (en) * 2012-02-27 2015-09-30 Samsung Electronics Co Ltd Packet transmission/reception apparatus and method using forward error correction scheme
US9485546B2 (en) 2010-06-29 2016-11-01 Qualcomm Incorporated Signaling video samples for trick mode video representations
US9628536B2 (en) 2006-06-09 2017-04-18 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9660763B2 (en) 2009-08-19 2017-05-23 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US10855736B2 (en) 2009-09-22 2020-12-01 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US11477253B2 (en) 2006-06-09 2022-10-18 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US7068729B2 (en) 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
WO2004034589A2 (en) 2002-10-05 2004-04-22 Digital Fountain, Inc. Systematic encoding and decoding of chain reaction codes
US8625455B2 (en) * 2006-10-17 2014-01-07 Ineoquest Technologies, Inc. System and method for handling streaming media
US20150341812A1 (en) 2003-08-29 2015-11-26 Ineoquest Technologies, Inc. Video quality monitoring
CN101834610B (en) 2003-10-06 2013-01-30 数字方敦股份有限公司 Method and device for receiving data transmitted from source through communication channel
KR101161193B1 (en) 2004-05-07 2012-07-02 디지털 파운튼, 인크. File download and streaming system
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
WO2007134196A2 (en) 2006-05-10 2007-11-22 Digital Fountain, Inc. Code generator and decoder using hybrid codes
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9237101B2 (en) 2007-09-12 2016-01-12 Digital Fountain, Inc. Generating and communicating source identification information to enable reliable communications
US8091011B2 (en) * 2007-10-09 2012-01-03 Broadcom Corporation Method and system for dynamically adjusting forward error correction (FEC) rate to adapt for time varying network impairments in video streaming applications over IP networks
US8645801B2 (en) * 2008-08-21 2014-02-04 Alcatel Lucent Delivery method for internet protocol television (IPTV)
US8370721B2 (en) * 2008-11-11 2013-02-05 Celtro Ltd Method and system for sensing available bandwidth over a best effort connection
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US9288010B2 (en) * 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US9225961B2 (en) 2010-05-13 2015-12-29 Qualcomm Incorporated Frame packing for asymmetric stereo video
CN101902297B (en) * 2010-06-28 2014-07-16 中兴通讯股份有限公司 Method and system for realizing forward error correction function in interactive internet protocol television system
US8918533B2 (en) 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US9456015B2 (en) 2010-08-10 2016-09-27 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US8958375B2 (en) * 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US9860293B2 (en) 2011-03-16 2018-01-02 Electronics And Telecommunications Research Institute Apparatus and method for providing streaming content using representations
CN103380581B (en) * 2011-06-03 2017-12-05 Sk电信有限公司 The operating method of R-T unit and R-T unit
WO2013009048A1 (en) * 2011-07-08 2013-01-17 Samsung Electronics Co., Ltd. Method for generating forward error correction packet in multimedia system and method and apparatus for transmitting and receiving forward error correction packet
CN103858457B (en) * 2011-08-01 2018-11-13 英特尔公司 Multi-hop single-sign-on (SSO) for identity provider (IdP) roaming/agency
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
KR101970684B1 (en) 2012-02-28 2019-04-19 삼성전자주식회사 Apparatus and method for transmitting feedback information in wireless communication system
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
JP2014093584A (en) * 2012-11-01 2014-05-19 Sony Corp Transmission device, transmission method, receiving device, reception method and computer program
CN108924593B (en) * 2013-01-18 2021-07-06 弗劳恩霍夫应用研究促进协会 Forward error correction data generator, forward error correction decoder, forward error correction data generation method, forward error correction decoding method, and storage medium
US9900166B2 (en) * 2013-04-12 2018-02-20 Qualcomm Incorporated Methods for delivery of flows of objects over broadcast/multicast enabled networks
KR102127685B1 (en) * 2013-04-17 2020-06-29 삼성전자주식회사 Apparatus and method for transmitting and receiving forward error correction packet
KR102148158B1 (en) 2013-04-23 2020-08-28 삼성전자주식회사 Method and apparatus for transmitting/receiving packet in a communication system
JP6530748B2 (en) 2013-07-18 2019-06-12 サムスン エレクトロニクス カンパニー リミテッド Packet transmission and reception method in multimedia communication system
KR20150050133A (en) * 2013-10-31 2015-05-08 삼성전자주식회사 Method and apparatus for transmitting and receiving packet in a communication system
KR20150084632A (en) * 2014-01-13 2015-07-22 삼성전자주식회사 Method and apparatus for transmitting/receiving packet in a communication system
CN106576110A (en) * 2014-04-04 2017-04-19 Vid拓展公司 Network-based early packet loss detection
JP6706784B2 (en) * 2014-09-12 2020-06-10 パナソニックIpマネジメント株式会社 Transmitting device, receiving device, transmitting method and receiving method
JP6558562B2 (en) * 2015-01-26 2019-08-14 パナソニックIpマネジメント株式会社 COMMUNICATION SYSTEM, TRANSMISSION DEVICE, AND RECEPTION DEVICE
JP6558563B2 (en) * 2015-01-26 2019-08-14 パナソニックIpマネジメント株式会社 COMMUNICATION SYSTEM, TRANSMISSION DEVICE, AND RECEPTION DEVICE
US10425307B2 (en) * 2015-01-26 2019-09-24 Sun Patent Trust Communication system, transmitting device and receiving device
US20160323063A1 (en) * 2015-05-01 2016-11-03 Qualcomm Incorporated Bundled Forward Error Correction (FEC) for Multiple Sequenced Flows
US10230405B2 (en) * 2015-08-26 2019-03-12 Nvidia Corporation System and method of forward error correction for streaming media
US10833710B2 (en) * 2017-06-29 2020-11-10 Cisco Technology, Inc. Bandwidth efficient FEC scheme supporting uneven levels of protection
RU2669069C1 (en) * 2018-02-02 2018-10-08 Акционерное общество "Калужский научно-исследовательский институт телемеханических устройств" Method of transmission of multilateral messages in complexes of data-transmission communication
US11083961B2 (en) * 2018-12-21 2021-08-10 Universal City Studios Llc Scalable interactive video systems and methods
RU2710911C1 (en) * 2019-03-04 2020-01-14 Акционерное общество "Калужский научно-исследовательский институт телемеханических устройств" Method of transmitting multi-unit messages in telecode communication systems

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050257106A1 (en) 2004-05-07 2005-11-17 Digital Fountain, Inc. File download and streaming system
US20060031738A1 (en) 2002-10-30 2006-02-09 Koninklijke Philips Electronics, N.V. Adaptative forward error control scheme

Family Cites Families (533)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3909721A (en) 1972-01-31 1975-09-30 Signatron Signal processing system
US4365338A (en) 1980-06-27 1982-12-21 Harris Corporation Technique for high rate digital transmission over a dynamic dispersive channel
US4965825A (en) 1981-11-03 1990-10-23 The Personalized Mass Media Corporation Signal processing apparatus and methods
US4589112A (en) 1984-01-26 1986-05-13 International Business Machines Corporation System for multiple error detection with single and double bit error correction
US4901319A (en) 1988-03-18 1990-02-13 General Electric Company Transmission system with adaptive interleaving
GB8815978D0 (en) 1988-07-05 1988-08-10 British Telecomm Method & apparatus for encoding decoding & transmitting data in compressed form
US5136592A (en) 1989-06-28 1992-08-04 Digital Equipment Corporation Error detection and correction system for long burst errors
US7594250B2 (en) * 1992-04-02 2009-09-22 Debey Henry C Method and system of program transmission optimization using a redundant transmission sequence
US5701582A (en) 1989-08-23 1997-12-23 Delta Beta Pty. Ltd. Method and apparatus for efficient transmissions of programs
US5421031A (en) 1989-08-23 1995-05-30 Delta Beta Pty. Ltd. Program transmission optimisation
US5329369A (en) 1990-06-01 1994-07-12 Thomson Consumer Electronics, Inc. Asymmetric picture compression
US5455823A (en) 1990-11-06 1995-10-03 Radio Satellite Corporation Integrated communications terminal
US5164963A (en) 1990-11-07 1992-11-17 At&T Bell Laboratories Coding for digital transmission
US5465318A (en) 1991-03-28 1995-11-07 Kurzweil Applied Intelligence, Inc. Method for generating a speech recognition model for a non-vocabulary utterance
US5379297A (en) 1992-04-09 1995-01-03 Network Equipment Technologies, Inc. Concurrent multi-channel segmentation and reassembly processors for asynchronous transfer mode
EP0543070A1 (en) 1991-11-21 1993-05-26 International Business Machines Corporation Coding system and method using quaternary codes
US5371532A (en) 1992-05-15 1994-12-06 Bell Communications Research, Inc. Communications architecture and method for distributing information services
US5425050A (en) 1992-10-23 1995-06-13 Massachusetts Institute Of Technology Television transmission system using spread spectrum and orthogonal frequency-division multiplex
US5372532A (en) 1993-01-26 1994-12-13 Robertson, Jr.; George W. Swivel head cap connector
EP0613249A1 (en) 1993-02-12 1994-08-31 Altera Corporation Custom look-up table with reduced number of architecture bits
DE4316297C1 (en) 1993-05-14 1994-04-07 Fraunhofer Ges Forschung Audio signal frequency analysis method - using window functions to provide sample signal blocks subjected to Fourier analysis to obtain respective coefficients.
AU665716B2 (en) 1993-07-05 1996-01-11 Mitsubishi Denki Kabushiki Kaisha A transmitter for encoding error correction codes and a receiver for decoding error correction codes on a transmission frame
US5590405A (en) * 1993-10-29 1996-12-31 Lucent Technologies Inc. Communication technique employing variable information transmission
JP2576776B2 (en) 1993-11-10 1997-01-29 日本電気株式会社 Packet transmission method and packet transmission device
US5517508A (en) 1994-01-26 1996-05-14 Sony Corporation Method and apparatus for detection and error correction of packetized digital data
CA2140850C (en) 1994-02-24 1999-09-21 Howard Paul Katseff Networked system for display of multimedia presentations
US5566208A (en) * 1994-03-17 1996-10-15 Philips Electronics North America Corp. Encoder buffer having an effective size which varies automatically with the channel bit-rate
US5432787A (en) 1994-03-24 1995-07-11 Loral Aerospace Corporation Packet data transmission system with adaptive data recovery method
US5757415A (en) 1994-05-26 1998-05-26 Sony Corporation On-demand data transmission by dividing input data into blocks and each block into sub-blocks such that the sub-blocks are re-arranged for storage to data storage means
US5802394A (en) * 1994-06-06 1998-09-01 Starlight Networks, Inc. Method for accessing one or more streams in a video storage system using multiple queues and maintaining continuity thereof
US5739864A (en) 1994-08-24 1998-04-14 Macrovision Corporation Apparatus for inserting blanked formatted fingerprint data (source ID, time/date) in to a video signal
US5568614A (en) 1994-07-29 1996-10-22 International Business Machines Corporation Data streaming between peer subsystems of a computer system
US5668948A (en) 1994-09-08 1997-09-16 International Business Machines Corporation Media streamer with control node enabling same isochronous streams to appear simultaneously at output ports or different streams to appear simultaneously at output ports
US5926205A (en) 1994-10-19 1999-07-20 Imedia Corporation Method and apparatus for encoding and formatting data representing a video program to provide multiple overlapping presentations of the video program
US5659614A (en) 1994-11-28 1997-08-19 Bailey, Iii; John E. Method and system for creating and storing a backup copy of file data stored on a computer
US5617541A (en) 1994-12-21 1997-04-01 International Computer Science Institute System for packetizing data encoded corresponding to priority levels where reconstructed data corresponds to fractionalized priority level and received fractionalized packets
JP3614907B2 (en) 1994-12-28 2005-01-26 株式会社東芝 Data retransmission control method and data retransmission control system
JPH11505685A (en) 1995-04-27 1999-05-21 トラスティーズ・オブ・ザ・スティーブンス・インスティテュート・オブ・テクノロジー High integrity transmission for time-limited multimedia network applications
US5835165A (en) 1995-06-07 1998-11-10 Lsi Logic Corporation Reduction of false locking code words in concatenated decoders
US5805825A (en) 1995-07-26 1998-09-08 Intel Corporation Method for semi-reliable, unidirectional broadcast information services
US6079041A (en) * 1995-08-04 2000-06-20 Sanyo Electric Co., Ltd. Digital modulation circuit and digital demodulation circuit
US5754563A (en) 1995-09-11 1998-05-19 Ecc Technologies, Inc. Byte-parallel system for implementing reed-solomon error-correcting codes
KR0170298B1 (en) 1995-10-10 1999-04-15 김광호 A recording method of digital video tape
US5751336A (en) 1995-10-12 1998-05-12 International Business Machines Corporation Permutation based pyramid block transmission scheme for broadcasting in video-on-demand storage systems
JP3305183B2 (en) 1996-01-12 2002-07-22 株式会社東芝 Digital broadcast receiving terminal
US6012159A (en) 1996-01-17 2000-01-04 Kencast, Inc. Method and system for error-free data transfer
US5852565A (en) 1996-01-30 1998-12-22 Demografx Temporal and resolution layering in advanced television
US5936659A (en) 1996-01-31 1999-08-10 Telcordia Technologies, Inc. Method for video delivery using pyramid broadcasting
US5903775A (en) 1996-06-06 1999-05-11 International Business Machines Corporation Method for the sequential transmission of compressed video information at varying data rates
US5745504A (en) 1996-06-25 1998-04-28 Telefonaktiebolaget Lm Ericsson Bit error resilient variable length code
US5940863A (en) 1996-07-26 1999-08-17 Zenith Electronics Corporation Apparatus for de-rotating and de-interleaving data including plural memory devices and plural modulo memory address generators
US5936949A (en) 1996-09-05 1999-08-10 Netro Corporation Wireless ATM metropolitan area network
KR100261706B1 (en) 1996-12-17 2000-07-15 가나이 쓰도무 Digital broadcasting signal receiving device and, receiving and recording/reproducing apparatus
US6141053A (en) 1997-01-03 2000-10-31 Saukkonen; Jukka I. Method of optimizing bandwidth for transmitting compressed video data streams
US6011590A (en) 1997-01-03 2000-01-04 Ncr Corporation Method of transmitting compressed information to minimize buffer space
US6044485A (en) 1997-01-03 2000-03-28 Ericsson Inc. Transmitter method and transmission system using adaptive coding based on channel characteristics
US5983383A (en) 1997-01-17 1999-11-09 Qualcom Incorporated Method and apparatus for transmitting and receiving concatenated code data
EP0854650A3 (en) 1997-01-17 2001-05-02 NOKIA TECHNOLOGY GmbH Method for addressing a service in digital video broadcasting
US5946357A (en) 1997-01-17 1999-08-31 Telefonaktiebolaget L M Ericsson Apparatus, and associated method, for transmitting and receiving a multi-stage, encoded and interleaved digital communication signal
US6014706A (en) 1997-01-30 2000-01-11 Microsoft Corporation Methods and apparatus for implementing control functions in a streamed video display system
EP1024672A1 (en) 1997-03-07 2000-08-02 Sanyo Electric Co., Ltd. Digital broadcast receiver and display
US6115420A (en) 1997-03-14 2000-09-05 Microsoft Corporation Digital video signal encoder and encoding method
DE19716011A1 (en) 1997-04-17 1998-10-22 Abb Research Ltd Method and device for transmitting information via power supply lines
US6226259B1 (en) * 1997-04-29 2001-05-01 Canon Kabushiki Kaisha Device and method for transmitting information device and method for processing information
US5970098A (en) 1997-05-02 1999-10-19 Globespan Technologies, Inc. Multilevel encoder
US5844636A (en) 1997-05-13 1998-12-01 Hughes Electronics Corporation Method and apparatus for receiving and recording digital packet data
JPH1141211A (en) 1997-05-19 1999-02-12 Sanyo Electric Co Ltd Digital modulatin circuit and its method, and digital demodulation circuit and its method
JP4110593B2 (en) 1997-05-19 2008-07-02 ソニー株式会社 Signal recording method and signal recording apparatus
WO1998053454A1 (en) * 1997-05-19 1998-11-26 Sanyo Electric Co., Ltd. Digital modulation and digital demodulation
US6128649A (en) 1997-06-02 2000-10-03 Nortel Networks Limited Dynamic selection of media streams for display
US6081907A (en) 1997-06-09 2000-06-27 Microsoft Corporation Data delivery system and method for delivering data and redundant information over a unidirectional network
US5917852A (en) 1997-06-11 1999-06-29 L-3 Communications Corporation Data scrambling system and method and communications system incorporating same
KR100240869B1 (en) 1997-06-25 2000-01-15 윤종용 Data transmission method for dual diversity system
US6175944B1 (en) 1997-07-15 2001-01-16 Lucent Technologies Inc. Methods and apparatus for packetizing data for transmission through an erasure broadcast channel
US5933056A (en) 1997-07-15 1999-08-03 Exar Corporation Single pole current mode common-mode feedback circuit
US6047069A (en) 1997-07-17 2000-04-04 Hewlett-Packard Company Method and apparatus for preserving error correction capabilities during data encryption/decryption
US6904110B2 (en) 1997-07-31 2005-06-07 Francois Trans Channel equalization system and method
US6178536B1 (en) 1997-08-14 2001-01-23 International Business Machines Corporation Coding scheme for file backup and systems based thereon
FR2767940A1 (en) 1997-08-29 1999-02-26 Canon Kk CODING AND DECODING METHODS AND DEVICES AND APPARATUSES IMPLEMENTING THE SAME
EP0903955A1 (en) 1997-09-04 1999-03-24 STMicroelectronics S.r.l. Modular architecture PET decoder for ATM networks
US6088330A (en) 1997-09-09 2000-07-11 Bruck; Joshua Reliable array of distributed computing nodes
US6134596A (en) 1997-09-18 2000-10-17 Microsoft Corporation Continuous media file server system and method for scheduling network resources to play multiple files having different data transmission rates
US6272658B1 (en) 1997-10-27 2001-08-07 Kencast, Inc. Method and system for reliable broadcasting of data files and streams
US6081918A (en) 1997-11-06 2000-06-27 Spielman; Daniel A. Loss resilient code with cascading series of redundant layers
US6163870A (en) 1997-11-06 2000-12-19 Compaq Computer Corporation Message encoding with irregular graphing
US6195777B1 (en) 1997-11-06 2001-02-27 Compaq Computer Corporation Loss resilient code with double heavy tailed series of redundant layers
US6073250A (en) 1997-11-06 2000-06-06 Luby; Michael G. Loss resilient decoding technique
US6081909A (en) 1997-11-06 2000-06-27 Digital Equipment Corporation Irregularly graphed encoding technique
JP3472115B2 (en) 1997-11-25 2003-12-02 Kddi株式会社 Video data transmission method and apparatus using multi-channel
US5870412A (en) 1997-12-12 1999-02-09 3Com Corporation Forward error correction system for packet based real time media
US6243846B1 (en) 1997-12-12 2001-06-05 3Com Corporation Forward error correction system for packet based data and real time media, using cross-wise parity calculation
US6849803B1 (en) 1998-01-15 2005-02-01 Arlington Industries, Inc. Electrical connector
US6097320A (en) 1998-01-20 2000-08-01 Silicon Systems, Inc. Encoder/decoder system with suppressed error propagation
US6226301B1 (en) 1998-02-19 2001-05-01 Nokia Mobile Phones Ltd Method and apparatus for segmentation and assembly of data frames for retransmission in a telecommunications system
US6141788A (en) 1998-03-13 2000-10-31 Lucent Technologies Inc. Method and apparatus for forward error correction in packet networks
US6278716B1 (en) 1998-03-23 2001-08-21 University Of Massachusetts Multicast with proactive forward error correction
EP1075762A1 (en) 1998-04-02 2001-02-14 Sarnoff Corporation Bursty data transmission of compressed video data
US6185265B1 (en) 1998-04-07 2001-02-06 Worldspace Management Corp. System for time division multiplexing broadcast channels with R-1/2 or R-3/4 convolutional coding for satellite transmission via on-board baseband processing payload or transparent payload
US6067646A (en) 1998-04-17 2000-05-23 Ameritech Corporation Method and system for adaptive interleaving
US6018359A (en) 1998-04-24 2000-01-25 Massachusetts Institute Of Technology System and method for multicast video-on-demand delivery system
US6445717B1 (en) 1998-05-01 2002-09-03 Niwot Networks, Inc. System for recovering lost information in a data stream
US6421387B1 (en) 1998-05-15 2002-07-16 North Carolina State University Methods and systems for forward error correction based loss recovery for interactive video transmission
US6937618B1 (en) 1998-05-20 2005-08-30 Sony Corporation Separating device and method and signal receiving device and method
US6333926B1 (en) 1998-08-11 2001-12-25 Nortel Networks Limited Multiple user CDMA basestation modem
WO2000014921A1 (en) 1998-09-04 2000-03-16 At & T Corp. Combined channel coding and space-block coding in a multi-antenna arrangement
US6415326B1 (en) 1998-09-15 2002-07-02 Microsoft Corporation Timeline correlation between multiple timeline-altered media streams
US7068729B2 (en) 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US6320520B1 (en) 1998-09-23 2001-11-20 Digital Fountain Information additive group code generator and decoder for communications systems
US7243285B2 (en) 1998-09-23 2007-07-10 Digital Fountain, Inc. Systems and methods for broadcasting information additive codes
US6704370B1 (en) 1998-10-09 2004-03-09 Nortel Networks Limited Interleaving methodology and apparatus for CDMA
IT1303735B1 (en) 1998-11-11 2001-02-23 Falorni Italia Farmaceutici S CROSS-LINKED HYALURONIC ACIDS AND THEIR MEDICAL USES.
US6408128B1 (en) * 1998-11-12 2002-06-18 Max Abecassis Replaying with supplementary information a segment of a video
US7157314B2 (en) 1998-11-16 2007-01-02 Sandisk Corporation Vertically stacked field programmable nonvolatile memory and method of fabrication
JP2000151426A (en) 1998-11-17 2000-05-30 Toshiba Corp Interleave and de-interleave circuit
US6166544A (en) 1998-11-25 2000-12-26 General Electric Company MR imaging system with interactive image contrast control
US6876623B1 (en) * 1998-12-02 2005-04-05 Agere Systems Inc. Tuning scheme for code division multiplex broadcasting system
US6314289B1 (en) 1998-12-03 2001-11-06 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for transmitting information and apparatus and method for receiving information
US6637031B1 (en) * 1998-12-04 2003-10-21 Microsoft Corporation Multimedia presentation latency minimization
US6496980B1 (en) 1998-12-07 2002-12-17 Intel Corporation Method of providing replay on demand for streaming digital multimedia
US6223324B1 (en) 1999-01-05 2001-04-24 Agere Systems Guardian Corp. Multiple program unequal error protection for digital audio broadcasting and other applications
JP3926499B2 (en) 1999-01-22 2007-06-06 株式会社日立国際電気 Convolutional code soft decision decoding receiver
US6618451B1 (en) 1999-02-13 2003-09-09 Altocom Inc Efficient reduced state maximum likelihood sequence estimator
US6041001A (en) 1999-02-25 2000-03-21 Lexar Media, Inc. Method of increasing data reliability of a flash memory device without compromising compatibility
KR20010043284A (en) 1999-03-03 2001-05-25 이데이 노부유끼 Transmitter, receiver, transmitter/receiver system, transmission method, and reception method
US6785323B1 (en) * 1999-11-22 2004-08-31 Ipr Licensing, Inc. Variable rate coding for forward link
US6466698B1 (en) 1999-03-25 2002-10-15 The United States Of America As Represented By The Secretary Of The Navy Efficient embedded image and video compression system using lifted wavelets
JP3256517B2 (en) 1999-04-06 2002-02-12 インターナショナル・ビジネス・マシーンズ・コーポレーション Encoding circuit, circuit, parity generation method, and storage medium
US6609223B1 (en) * 1999-04-06 2003-08-19 Kencast, Inc. Method for packet-level fec encoding, in which on a source packet-by-source packet basis, the error correction contributions of a source packet to a plurality of wildcard packets are computed, and the source packet is transmitted thereafter
US6535920B1 (en) 1999-04-06 2003-03-18 Microsoft Corporation Analyzing, indexing and seeking of streaming information
US6804202B1 (en) * 1999-04-08 2004-10-12 Lg Information And Communications, Ltd. Radio protocol for mobile communication system and method
US7885340B2 (en) 1999-04-27 2011-02-08 Realnetworks, Inc. System and method for generating multiple synchronized encoded representations of media data
FI113124B (en) 1999-04-29 2004-02-27 Nokia Corp Communication
MY130203A (en) 1999-05-06 2007-06-29 Sony Corp Methods and apparatus for data processing, methods and apparatus for data reproducing and recording media
KR100416996B1 (en) * 1999-05-10 2004-02-05 삼성전자주식회사 Variable-length data transmitting and receiving apparatus in accordance with radio link protocol for a mobile telecommunication system and method thereof
US6154452A (en) 1999-05-26 2000-11-28 Xm Satellite Radio Inc. Method and apparatus for continuous cross-channel interleaving
US6229824B1 (en) 1999-05-26 2001-05-08 Xm Satellite Radio Inc. Method and apparatus for concatenated convolutional endcoding and interleaving
AU5140200A (en) 1999-05-26 2000-12-18 Enounce, Incorporated Method and apparatus for controlling time-scale modification during multi-media broadcasts
JP2000353969A (en) 1999-06-11 2000-12-19 Sony Corp Receiver for digital voice broadcasting
US6577599B1 (en) 1999-06-30 2003-06-10 Sun Microsystems, Inc. Small-scale reliable multicasting
IL141800A0 (en) 1999-07-06 2002-03-10 Samsung Electronics Co Ltd Rate matching device and method for a data communication system
US6643332B1 (en) 1999-07-09 2003-11-04 Lsi Logic Corporation Method and apparatus for multi-level coding of digital signals
JP3451221B2 (en) 1999-07-22 2003-09-29 日本無線株式会社 Error correction coding apparatus, method and medium, and error correction code decoding apparatus, method and medium
US6279072B1 (en) 1999-07-22 2001-08-21 Micron Technology, Inc. Reconfigurable memory with selectable error correction storage
US6453440B1 (en) 1999-08-04 2002-09-17 Sun Microsystems, Inc. System and method for detecting double-bit errors and for correcting errors due to component failures
JP2001060934A (en) 1999-08-20 2001-03-06 Matsushita Electric Ind Co Ltd Ofdm communication equipment
US6430233B1 (en) 1999-08-30 2002-08-06 Hughes Electronics Corporation Single-LNB satellite data receiver
US6332163B1 (en) 1999-09-01 2001-12-18 Accenture, Llp Method for providing communication services over a computer network system
JP4284774B2 (en) 1999-09-07 2009-06-24 ソニー株式会社 Transmission device, reception device, communication system, transmission method, and communication method
JP2001094625A (en) * 1999-09-27 2001-04-06 Canon Inc Data communication unit, data communication method and storage medium
DE60033011T2 (en) 1999-09-27 2007-08-09 Koninklijke Philips Electronics N.V. DISTRIBUTION OF A FILE FOR THE EMULATION OF A DATA STREAM
US7529806B1 (en) * 1999-11-04 2009-05-05 Koninklijke Philips Electronics N.V. Partitioning of MP3 content file for emulating streaming
US20050160272A1 (en) 1999-10-28 2005-07-21 Timecertain, Llc System and method for providing trusted time in content of digital data files
US6523147B1 (en) 1999-11-11 2003-02-18 Ibiquity Digital Corporation Method and apparatus for forward error correction coding for an AM in-band on-channel digital audio broadcasting system
US6678855B1 (en) 1999-12-02 2004-01-13 Microsoft Corporation Selecting K in a data transmission carousel using (N,K) forward error correction
US6748441B1 (en) 1999-12-02 2004-06-08 Microsoft Corporation Data carousel receiving and caching
US6798791B1 (en) 1999-12-16 2004-09-28 Agere Systems Inc Cluster frame synchronization scheme for a satellite digital audio radio system
US6487692B1 (en) 1999-12-21 2002-11-26 Lsi Logic Corporation Reed-Solomon decoder
US6965636B1 (en) 2000-02-01 2005-11-15 2Wire, Inc. System and method for block error correction in packet-based digital communications
US20020009137A1 (en) 2000-02-01 2002-01-24 Nelson John E. Three-dimensional video broadcasting system
WO2001057667A1 (en) 2000-02-03 2001-08-09 Bandwiz, Inc. Data streaming
US7304990B2 (en) 2000-02-03 2007-12-04 Bandwiz Inc. Method of encoding and transmitting data over a communication medium through division and segmentation
IL140504A0 (en) 2000-02-03 2002-02-10 Bandwiz Inc Broadcast system
JP2001251287A (en) 2000-02-24 2001-09-14 Geneticware Corp Ltd Confidential transmitting method using hardware protection inside secret key and variable pass code
US6765866B1 (en) 2000-02-29 2004-07-20 Mosaid Technologies, Inc. Link aggregation
DE10009443A1 (en) 2000-02-29 2001-08-30 Philips Corp Intellectual Pty Receiver and method for detecting and decoding a DQPSK-modulated and channel-coded received signal
US6384750B1 (en) 2000-03-23 2002-05-07 Mosaid Technologies, Inc. Multi-stage lookup for translating between signals of different bit lengths
JP2001274776A (en) 2000-03-24 2001-10-05 Toshiba Corp Information data transmission system and its transmitter and receiver
US6510177B1 (en) 2000-03-24 2003-01-21 Microsoft Corporation System and method for layered video coding enhancement
AU2001244007A1 (en) * 2000-03-31 2001-10-15 Ted Szymanski Transmitter, receiver, and coding scheme to increase data rate and decrease bit error rate of an optical data link
US6473010B1 (en) 2000-04-04 2002-10-29 Marvell International, Ltd. Method and apparatus for determining error correction code failure rate for iterative decoding algorithms
US8572646B2 (en) 2000-04-07 2013-10-29 Visible World Inc. System and method for simultaneous broadcast for personalized messages
AU2001251353A1 (en) 2000-04-08 2001-10-23 Sun Microsystems, Inc. Streaming a single media track to multiple clients
US6631172B1 (en) 2000-05-01 2003-10-07 Lucent Technologies Inc. Efficient list decoding of Reed-Solomon codes for message recovery in the presence of high noise levels
US6742154B1 (en) 2000-05-25 2004-05-25 Ciena Corporation Forward error correction codes for digital optical network optimization
US6694476B1 (en) 2000-06-02 2004-02-17 Vitesse Semiconductor Corporation Reed-solomon encoder and decoder
US6738942B1 (en) 2000-06-02 2004-05-18 Vitesse Semiconductor Corporation Product code based forward error correction system
GB2366159B (en) 2000-08-10 2003-10-08 Mitel Corp Combination reed-solomon and turbo coding
US6834342B2 (en) 2000-08-16 2004-12-21 Eecad, Inc. Method and system for secure communication over unstable public connections
KR100447162B1 (en) 2000-08-19 2004-09-04 엘지전자 주식회사 Method for length indicator inserting in protocol data unit of radio link control
JP2002073625A (en) 2000-08-24 2002-03-12 Nippon Hoso Kyokai <Nhk> Method server and medium for providing information synchronously with broadcast program
US7340664B2 (en) 2000-09-20 2008-03-04 Lsi Logic Corporation Single engine turbo decoder with single frame size buffer for interleaving/deinterleaving
US7151754B1 (en) * 2000-09-22 2006-12-19 Lucent Technologies Inc. Complete user datagram protocol (CUDP) for wireless multimedia packet networks using improved packet level forward error correction (FEC) coding
US7031257B1 (en) 2000-09-22 2006-04-18 Lucent Technologies Inc. Radio link protocol (RLP)/point-to-point protocol (PPP) design that passes corrupted data and error location information among layers in a wireless data transmission protocol
US6486803B1 (en) 2000-09-22 2002-11-26 Digital Fountain, Inc. On demand encoding with a window
US7490344B2 (en) 2000-09-29 2009-02-10 Visible World, Inc. System and method for seamless switching
US6411223B1 (en) 2000-10-18 2002-06-25 Digital Fountain, Inc. Generating high weight encoding symbols using a basis
US7613183B1 (en) 2000-10-31 2009-11-03 Foundry Networks, Inc. System and method for router data aggregation and delivery
US6694478B1 (en) 2000-11-07 2004-02-17 Agere Systems Inc. Low delay channel codes for correcting bursts of lost packets
US6732325B1 (en) 2000-11-08 2004-05-04 Digeo, Inc. Error-correction with limited working storage
US20020133247A1 (en) 2000-11-11 2002-09-19 Smith Robert D. System and method for seamlessly switching between media streams
US7072971B2 (en) 2000-11-13 2006-07-04 Digital Foundation, Inc. Scheduling of multiple files for serving on a server
US7240358B2 (en) 2000-12-08 2007-07-03 Digital Fountain, Inc. Methods and apparatus for scheduling, serving, receiving media-on demand for clients, servers arranged according to constraints on resources
WO2002049343A1 (en) 2000-12-15 2002-06-20 British Telecommunications Public Limited Company Transmission and reception of audio and/or video material
KR100908954B1 (en) 2000-12-15 2009-07-22 브리티쉬 텔리커뮤니케이션즈 파블릭 리미티드 캄퍼니 Method and apparatus for transmitting audio or video material
US6850736B2 (en) 2000-12-21 2005-02-01 Tropian, Inc. Method and apparatus for reception quality indication in wireless communication
US6307478B1 (en) * 2000-12-23 2001-10-23 Nat Thompson Multi-zone gas detection system
US7143433B1 (en) * 2000-12-27 2006-11-28 Infovalve Computing Inc. Video distribution system using dynamic segmenting of video data files
US20020085013A1 (en) 2000-12-29 2002-07-04 Lippincott Louis A. Scan synchronized dual frame buffer graphics subsystem
NO315887B1 (en) 2001-01-04 2003-11-03 Fast Search & Transfer As Procedures for transmitting and socking video information
US20080059532A1 (en) 2001-01-18 2008-03-06 Kazmi Syed N Method and system for managing digital content, including streaming media
DE10103387A1 (en) 2001-01-26 2002-08-01 Thorsten Nordhoff Wind power plant with a device for obstacle lighting or night marking
FI118830B (en) 2001-02-08 2008-03-31 Nokia Corp Streaming playback
US6868083B2 (en) 2001-02-16 2005-03-15 Hewlett-Packard Development Company, L.P. Method and system for packet communication employing path diversity
US20020129159A1 (en) 2001-03-09 2002-09-12 Michael Luby Multi-output packet server with independent streams
KR100464360B1 (en) 2001-03-30 2005-01-03 삼성전자주식회사 Apparatus and method for efficiently energy distributing over packet data channel in mobile communication system for high rate packet transmission
US20020143953A1 (en) 2001-04-03 2002-10-03 International Business Machines Corporation Automatic affinity within networks performing workload balancing
US6785836B2 (en) 2001-04-11 2004-08-31 Broadcom Corporation In-place data transformation for fault-tolerant disk storage systems
US6820221B2 (en) 2001-04-13 2004-11-16 Hewlett-Packard Development Company, L.P. System and method for detecting process and network failures in a distributed system
US7010052B2 (en) 2001-04-16 2006-03-07 The Ohio University Apparatus and method of CTCM encoding and decoding for a digital communication system
US7035468B2 (en) * 2001-04-20 2006-04-25 Front Porch Digital Inc. Methods and apparatus for archiving, indexing and accessing audio and video data
TWI246841B (en) 2001-04-22 2006-01-01 Koninkl Philips Electronics Nv Digital transmission system and method for transmitting digital signals
US20020191116A1 (en) 2001-04-24 2002-12-19 Damien Kessler System and data format for providing seamless stream switching in a digital video recorder
US6497479B1 (en) 2001-04-27 2002-12-24 Hewlett-Packard Company Higher organic inks with good reliability and drytime
US7962482B2 (en) 2001-05-16 2011-06-14 Pandora Media, Inc. Methods and systems for utilizing contextual feedback to generate and modify playlists
US6633856B2 (en) 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
US7076478B2 (en) 2001-06-26 2006-07-11 Microsoft Corporation Wrapper playlists on streaming media services
US6745364B2 (en) * 2001-06-28 2004-06-01 Microsoft Corporation Negotiated/dynamic error correction for streamed media
US6895547B2 (en) 2001-07-11 2005-05-17 International Business Machines Corporation Method and apparatus for low density parity check encoding of data
US6928603B1 (en) * 2001-07-19 2005-08-09 Adaptix, Inc. System and method for interference mitigation using adaptive forward error correction in a wireless RF data transmission system
US6961890B2 (en) 2001-08-16 2005-11-01 Hewlett-Packard Development Company, L.P. Dynamic variable-length error correction code
US7110412B2 (en) 2001-09-18 2006-09-19 Sbc Technology Resources, Inc. Method and system to transport high-quality video signals
FI115418B (en) 2001-09-20 2005-04-29 Oplayo Oy Adaptive media stream
US6990624B2 (en) * 2001-10-12 2006-01-24 Agere Systems Inc. High speed syndrome-based FEC encoder and decoder and system using same
US7480703B2 (en) 2001-11-09 2009-01-20 Sony Corporation System, method, and computer program product for remotely determining the configuration of a multi-media content user based on response of the user
US7363354B2 (en) 2001-11-29 2008-04-22 Nokia Corporation System and method for identifying and accessing network services
US7003712B2 (en) 2001-11-29 2006-02-21 Emin Martinian Apparatus and method for adaptive, multimode decoding
JP2003174489A (en) * 2001-12-05 2003-06-20 Ntt Docomo Inc Streaming distribution device and streaming distribution method
FI114527B (en) 2002-01-23 2004-10-29 Nokia Corp Grouping of picture frames in video encoding
MXPA04007020A (en) 2002-01-23 2004-10-11 Nokia Corp Grouping of image frames in video coding.
KR100989222B1 (en) 2002-01-30 2010-10-20 엔엑스피 비 브이 Streaming multimedea data over a network having variable bandwidth
US7249291B2 (en) 2002-02-15 2007-07-24 Digital Fountain, Inc. System and method for reliably communicating the content of a live data stream
JP4126928B2 (en) 2002-02-28 2008-07-30 日本電気株式会社 Proxy server and proxy control program
JP4116470B2 (en) * 2002-03-06 2008-07-09 ヒューレット・パッカード・カンパニー Media streaming distribution system
FR2837332A1 (en) 2002-03-15 2003-09-19 Thomson Licensing Sa DEVICE AND METHOD FOR INSERTING ERROR CORRECTION AND RECONSTITUTION CODES OF DATA STREAMS, AND CORRESPONDING PRODUCTS
WO2003090391A1 (en) * 2002-04-15 2003-10-30 Nokia Corporation Rlp logical layer of a communication station
US6677864B2 (en) 2002-04-18 2004-01-13 Telefonaktiebolaget L.M. Ericsson Method for multicast over wireless networks
JP3629008B2 (en) 2002-04-19 2005-03-16 松下電器産業株式会社 Data receiving apparatus and data distribution system
JP3689063B2 (en) 2002-04-19 2005-08-31 松下電器産業株式会社 Data receiving apparatus and data distribution system
WO2003092305A1 (en) 2002-04-25 2003-11-06 Sharp Kabushiki Kaisha Image encodder, image decoder, record medium, and image recorder
US20030204602A1 (en) 2002-04-26 2003-10-30 Hudson Michael D. Mediated multi-source peer content delivery network architecture
US7177658B2 (en) 2002-05-06 2007-02-13 Qualcomm, Incorporated Multi-media broadcast and multicast service (MBMS) in a wireless communications system
US7200388B2 (en) * 2002-05-31 2007-04-03 Nokia Corporation Fragmented delivery of multimedia
EP1550315B1 (en) 2002-06-11 2015-10-21 Telefonaktiebolaget L M Ericsson (publ) Generation of mixed media streams
EP2278719B1 (en) 2002-06-11 2013-12-18 Digital Fountain, Inc. Decoding of chain reaction codes through inactivation
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
US6956875B2 (en) * 2002-06-19 2005-10-18 Atlinks Usa, Inc. Technique for communicating variable bit rate data over a constant bit rate link
JP4154569B2 (en) 2002-07-10 2008-09-24 日本電気株式会社 Image compression / decompression device
JP4120461B2 (en) 2002-07-12 2008-07-16 住友電気工業株式会社 Transmission data generation method and transmission data generation apparatus
JPWO2004019521A1 (en) 2002-07-31 2005-12-15 シャープ株式会社 Data communication device, intermittent communication method thereof, program describing the method, and recording medium recording the program
JP2004070712A (en) 2002-08-07 2004-03-04 Nippon Telegr & Teleph Corp <Ntt> Data delivery method, data delivery system, split delivery data receiving method, split delivery data receiving device and split delivery data receiving program
AU2002319335B2 (en) 2002-08-13 2008-12-04 Nokia Corporation Symbol interleaving
US6985459B2 (en) * 2002-08-21 2006-01-10 Qualcomm Incorporated Early transmission and playout of packets in wireless communication systems
WO2004030273A1 (en) 2002-09-27 2004-04-08 Fujitsu Limited Data delivery method, system, transfer method, and program
JP3534742B1 (en) 2002-10-03 2004-06-07 株式会社エヌ・ティ・ティ・ドコモ Moving picture decoding method, moving picture decoding apparatus, and moving picture decoding program
WO2004034589A2 (en) 2002-10-05 2004-04-22 Digital Fountain, Inc. Systematic encoding and decoding of chain reaction codes
JP2004135013A (en) 2002-10-10 2004-04-30 Matsushita Electric Ind Co Ltd Device and method for transmission
FI116816B (en) 2002-10-14 2006-02-28 Nokia Corp Streaming media
US8320301B2 (en) * 2002-10-25 2012-11-27 Qualcomm Incorporated MIMO WLAN system
US7289451B2 (en) * 2002-10-25 2007-10-30 Telefonaktiebolaget Lm Ericsson (Publ) Delay trading between communication links
JP2004165922A (en) 2002-11-12 2004-06-10 Sony Corp Apparatus, method, and program for information processing
CA2505853A1 (en) 2002-11-18 2004-06-03 British Telecommunications Public Limited Company Transmission of video
GB0226872D0 (en) 2002-11-18 2002-12-24 British Telecomm Video transmission
KR100502609B1 (en) 2002-11-21 2005-07-20 한국전자통신연구원 Encoder using low density parity check code and encoding method thereof
US7086718B2 (en) 2002-11-23 2006-08-08 Silverbrook Research Pty Ltd Thermal ink jet printhead with high nozzle areal density
JP2004192140A (en) 2002-12-09 2004-07-08 Sony Corp Data communication system, data transmitting device, data receiving device and method, and computer program
JP2004193992A (en) 2002-12-11 2004-07-08 Sony Corp Information processing system, information processor, information processing method, recording medium and program
US8135073B2 (en) * 2002-12-19 2012-03-13 Trident Microsystems (Far East) Ltd Enhancing video images depending on prior image enhancements
US7164882B2 (en) * 2002-12-24 2007-01-16 Poltorak Alexander I Apparatus and method for facilitating a purchase using information provided on a media playing device
US7293222B2 (en) 2003-01-29 2007-11-06 Digital Fountain, Inc. Systems and processes for fast encoding of hamming codes
US7525994B2 (en) 2003-01-30 2009-04-28 Avaya Inc. Packet data flow identification for multiplexing
US7756002B2 (en) * 2003-01-30 2010-07-13 Texas Instruments Incorporated Time-frequency interleaved orthogonal frequency division multiplexing ultra wide band physical layer
US7231404B2 (en) 2003-01-31 2007-06-12 Nokia Corporation Datacast file transmission with meta-data retention
US7062272B2 (en) 2003-02-18 2006-06-13 Qualcomm Incorporated Method and apparatus to track count of broadcast content recipients in a wireless telephone network
EP1455504B1 (en) 2003-03-07 2014-11-12 Samsung Electronics Co., Ltd. Apparatus and method for processing audio signal and computer readable recording medium storing computer program for the method
JP4173755B2 (en) * 2003-03-24 2008-10-29 富士通株式会社 Data transmission server
US7610487B2 (en) 2003-03-27 2009-10-27 Microsoft Corporation Human input security codes
US7266147B2 (en) 2003-03-31 2007-09-04 Sharp Laboratories Of America, Inc. Hypothetical reference decoder
JP2004343701A (en) 2003-04-21 2004-12-02 Matsushita Electric Ind Co Ltd Data receiving reproduction apparatus, data receiving reproduction method, and data receiving reproduction processing program
US7408486B2 (en) 2003-04-21 2008-08-05 Qbit Corporation System and method for using a microlet-based modem
US20050041736A1 (en) 2003-05-07 2005-02-24 Bernie Butler-Smith Stereoscopic television signal processing method, transmission system and viewer enhancements
US7113773B2 (en) 2003-05-16 2006-09-26 Qualcomm Incorporated Reliable reception of broadcast/multicast content
JP2004348824A (en) 2003-05-21 2004-12-09 Toshiba Corp Ecc encoding method and ecc encoding device
WO2004112368A2 (en) 2003-05-23 2004-12-23 Heyanita, Inc. Transmission of a data file by notification of a reference to the intended recipient and teleconference establishment using a unique reference
JP2004362099A (en) 2003-06-03 2004-12-24 Sony Corp Server device, information processor, information processing method, and computer program
WO2004109538A1 (en) 2003-06-07 2004-12-16 Samsung Electronics Co. Ltd. Apparatus and method for organization and interpretation of multimedia data on a recording medium
KR101003413B1 (en) 2003-06-12 2010-12-23 엘지전자 주식회사 Method for compression/decompression the transferring data of mobile phone
US7603689B2 (en) 2003-06-13 2009-10-13 Microsoft Corporation Fast start-up for digital video streams
RU2265960C2 (en) 2003-06-16 2005-12-10 Федеральное государственное унитарное предприятие "Калужский научно-исследовательский институт телемеханических устройств" Method for transferring information with use of adaptive alternation
US7391717B2 (en) 2003-06-30 2008-06-24 Microsoft Corporation Streaming of variable bit rate multimedia content
US20050004997A1 (en) 2003-07-01 2005-01-06 Nokia Corporation Progressive downloading of timed multimedia content
US8149939B2 (en) * 2003-07-07 2012-04-03 Samsung Electronics Co., Ltd. System of robust DTV signal transmissions that legacy DTV receivers will disregard
US7254754B2 (en) 2003-07-14 2007-08-07 International Business Machines Corporation Raid 3+3
KR100532450B1 (en) 2003-07-16 2005-11-30 삼성전자주식회사 Data recording method with robustness for errors, data reproducing method therefore, and apparatuses therefore
US20050028067A1 (en) 2003-07-31 2005-02-03 Weirauch Charles R. Data with multiple sets of error correction codes
US8694869B2 (en) 2003-08-21 2014-04-08 QUALCIMM Incorporated Methods for forward error correction coding above a radio link control layer and related apparatus
IL157885A0 (en) 2003-09-11 2004-03-28 Bamboo Mediacasting Ltd Iterative forward error correction
IL157886A0 (en) 2003-09-11 2009-02-11 Bamboo Mediacasting Ltd Secure multicast transmission
JP4183586B2 (en) 2003-09-12 2008-11-19 三洋電機株式会社 Video display device
US7555006B2 (en) 2003-09-15 2009-06-30 The Directv Group, Inc. Method and system for adaptive transcoding and transrating in a video network
KR100608715B1 (en) 2003-09-27 2006-08-04 엘지전자 주식회사 SYSTEM AND METHOD FOR QoS-QUARANTED MULTIMEDIA STREAMING SERVICE
ATE337643T1 (en) 2003-09-30 2006-09-15 Ericsson Telefon Ab L M IN-PLACE DENTELNESS OF DATA
US7559004B1 (en) 2003-10-01 2009-07-07 Sandisk Corporation Dynamic redundant area configuration in a non-volatile memory system
CN101834610B (en) 2003-10-06 2013-01-30 数字方敦股份有限公司 Method and device for receiving data transmitted from source through communication channel
US7516232B2 (en) * 2003-10-10 2009-04-07 Microsoft Corporation Media organization for distributed sending of media data
US7614071B2 (en) * 2003-10-10 2009-11-03 Microsoft Corporation Architecture for distributed sending of media data
CN100555213C (en) 2003-10-14 2009-10-28 松下电器产业株式会社 Data converter
US7650036B2 (en) 2003-10-16 2010-01-19 Sharp Laboratories Of America, Inc. System and method for three-dimensional video coding
US7168030B2 (en) 2003-10-17 2007-01-23 Telefonaktiebolaget Lm Ericsson (Publ) Turbo code decoder with parity information update
EP1528808A3 (en) 2003-10-27 2008-03-26 Matsushita Electric Industrial Co., Ltd. Apparatus for receiving a broadcast signal
JP2005136546A (en) 2003-10-29 2005-05-26 Sony Corp Transmission apparatus and method, recording medium, and program
DE602004011445T2 (en) 2003-11-03 2009-01-15 Broadcom Corp., Irvine FEC decoding with dynamic parameters
US7412641B2 (en) 2003-12-01 2008-08-12 Digital Fountain, Inc. Protection of data from erasures using subsymbol based codes
US7428669B2 (en) 2003-12-07 2008-09-23 Adaptive Spectrum And Signal Alignment, Inc. Adaptive FEC codeword management
US7574706B2 (en) 2003-12-15 2009-08-11 Microsoft Corporation System and method for managing and communicating software updates
US7590118B2 (en) 2003-12-23 2009-09-15 Agere Systems Inc. Frame aggregation format
JP4536383B2 (en) 2004-01-16 2010-09-01 株式会社エヌ・ティ・ティ・ドコモ Data receiving apparatus and data receiving method
KR100770902B1 (en) 2004-01-20 2007-10-26 삼성전자주식회사 Apparatus and method for generating and decoding forward error correction codes of variable rate by using high rate data wireless communication
JP4321284B2 (en) * 2004-02-03 2009-08-26 株式会社デンソー Streaming data transmission apparatus and information distribution system
US7599294B2 (en) 2004-02-13 2009-10-06 Nokia Corporation Identification and re-transmission of missing parts
KR100586883B1 (en) 2004-03-04 2006-06-08 삼성전자주식회사 Method and apparatus for video coding, pre-decoding, video decoding for vidoe streaming service, and method for image filtering
KR100596705B1 (en) 2004-03-04 2006-07-04 삼성전자주식회사 Method and system for video coding for video streaming service, and method and system for video decoding
US7609653B2 (en) 2004-03-08 2009-10-27 Microsoft Corporation Resolving partial media topologies
WO2005094020A1 (en) 2004-03-19 2005-10-06 Telefonaktiebolaget Lm Ericsson (Publ) Higher layer packet framing using rlp
US7240236B2 (en) 2004-03-23 2007-07-03 Archivas, Inc. Fixed content distributed data storage using permutation ring encoding
JP4433287B2 (en) 2004-03-25 2010-03-17 ソニー株式会社 Receiving apparatus and method, and program
US8842175B2 (en) 2004-03-26 2014-09-23 Broadcom Corporation Anticipatory video signal reception and processing
US20050216472A1 (en) * 2004-03-29 2005-09-29 David Leon Efficient multicast/broadcast distribution of formatted data
EP1733394A1 (en) * 2004-03-30 2006-12-20 Koninklijke Philips Electronics N.V. System and method for supporting improved trick mode performance for disc-based multimedia content
TW200534875A (en) 2004-04-23 2005-11-01 Lonza Ag Personal care compositions and concentrates for making the same
FR2869744A1 (en) 2004-04-29 2005-11-04 Thomson Licensing Sa METHOD FOR TRANSMITTING DIGITAL DATA PACKETS AND APPARATUS IMPLEMENTING THE METHOD
US7633970B2 (en) 2004-05-07 2009-12-15 Agere Systems Inc. MAC header compression for use with frame aggregation
US20050254575A1 (en) 2004-05-12 2005-11-17 Nokia Corporation Multiple interoperability points for scalable media coding and transmission
US20060037057A1 (en) 2004-05-24 2006-02-16 Sharp Laboratories Of America, Inc. Method and system of enabling trick play modes using HTTP GET
US8331445B2 (en) 2004-06-01 2012-12-11 Qualcomm Incorporated Method, apparatus, and system for enhancing robustness of predictive video codecs using a side-channel based on distributed source coding techniques
US20070110074A1 (en) * 2004-06-04 2007-05-17 Bob Bradley System and Method for Synchronizing Media Presentation at Multiple Recipients
US7139660B2 (en) 2004-07-14 2006-11-21 General Motors Corporation System and method for changing motor vehicle personalization settings
US8112531B2 (en) 2004-07-14 2012-02-07 Nokia Corporation Grouping of session objects
US8544043B2 (en) 2004-07-21 2013-09-24 Qualcomm Incorporated Methods and apparatus for providing content information to content servers
US7409626B1 (en) 2004-07-28 2008-08-05 Ikanos Communications Inc Method and apparatus for determining codeword interleaver parameters
US7590922B2 (en) 2004-07-30 2009-09-15 Nokia Corporation Point-to-point repair request mechanism for point-to-multipoint transmission systems
US7376150B2 (en) 2004-07-30 2008-05-20 Nokia Corporation Point-to-point repair response mechanism for point-to-multipoint transmission systems
US7930184B2 (en) * 2004-08-04 2011-04-19 Dts, Inc. Multi-channel audio coding/decoding of random access points and transients
WO2006020826A2 (en) 2004-08-11 2006-02-23 Digital Fountain, Inc. Method and apparatus for fast encoding of data symbols according to half-weight codes
JP4405875B2 (en) * 2004-08-25 2010-01-27 富士通株式会社 Method and apparatus for generating data for error correction, generation program, and computer-readable recording medium storing the program
JP2006074335A (en) 2004-09-01 2006-03-16 Nippon Telegr & Teleph Corp <Ntt> Transmission method, transmission system, and transmitter
JP4576936B2 (en) 2004-09-02 2010-11-10 ソニー株式会社 Information processing apparatus, information recording medium, content management system, data processing method, and computer program
JP2006115104A (en) 2004-10-13 2006-04-27 Daiichikosho Co Ltd Method and device for packetizing time-series information encoded with high efficiency, and performing real-time streaming transmission, and for reception and reproduction
US7529984B2 (en) * 2004-11-16 2009-05-05 Infineon Technologies Ag Seamless change of depth of a general convolutional interleaver during transmission without loss of data
US7751324B2 (en) * 2004-11-19 2010-07-06 Nokia Corporation Packet stream arrangement in multimedia transmission
EP1815684B1 (en) 2004-11-22 2014-12-31 Thomson Research Funding Corporation Method and apparatus for channel change in dsl system
WO2006060036A1 (en) 2004-12-02 2006-06-08 Thomson Licensing Adaptive forward error correction
KR20060065482A (en) 2004-12-10 2006-06-14 마이크로소프트 코포레이션 A system and process for controlling the coding bit rate of streaming media data
JP2006174032A (en) 2004-12-15 2006-06-29 Sanyo Electric Co Ltd Image data transmission system, image data receiver and image data transmitter
JP2006174045A (en) 2004-12-15 2006-06-29 Ntt Communications Kk Image distribution device, program, and method therefor
US7398454B2 (en) * 2004-12-21 2008-07-08 Tyco Telecommunications (Us) Inc. System and method for forward error correction decoding using soft information
JP4391409B2 (en) 2004-12-24 2009-12-24 株式会社第一興商 High-efficiency-encoded time-series information transmission method and apparatus for real-time streaming transmission and reception
EP1847087A1 (en) 2005-02-08 2007-10-24 Telefonaktiebolaget LM Ericsson (publ) On-demand multi-channel streaming session over packet-switched networks
US7925097B2 (en) 2005-02-18 2011-04-12 Sanyo Electric Co., Ltd. Image display method, image coding apparatus, and image decoding apparatus
US7822139B2 (en) * 2005-03-02 2010-10-26 Rohde & Schwarz Gmbh & Co. Kg Apparatus, systems, methods and computer products for providing a virtual enhanced training sequence
US20090222873A1 (en) 2005-03-07 2009-09-03 Einarsson Torbjoern Multimedia Channel Switching
US8028322B2 (en) 2005-03-14 2011-09-27 Time Warner Cable Inc. Method and apparatus for network content download and recording
US7418649B2 (en) 2005-03-15 2008-08-26 Microsoft Corporation Efficient implementation of reed-solomon erasure resilient codes in high-rate applications
US7219289B2 (en) 2005-03-15 2007-05-15 Tandberg Data Corporation Multiply redundant raid system and XOR-efficient method and apparatus for implementing the same
US7450064B2 (en) 2005-03-22 2008-11-11 Qualcomm, Incorporated Methods and systems for deriving seed position of a subscriber station in support of unassisted GPS-type position determination in a wireless communication system
JP4487028B2 (en) 2005-03-31 2010-06-23 ブラザー工業株式会社 Delivery speed control device, delivery system, delivery speed control method, and delivery speed control program
US7715842B2 (en) 2005-04-09 2010-05-11 Lg Electronics Inc. Supporting handover of mobile terminal
CN101120593A (en) * 2005-04-13 2008-02-06 诺基亚公司 Coding, storage and signalling of scalability information
JP4515319B2 (en) 2005-04-27 2010-07-28 株式会社日立製作所 Computer system
US7961700B2 (en) 2005-04-28 2011-06-14 Qualcomm Incorporated Multi-carrier operation in data transmission systems
US8683066B2 (en) 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
JP2006319743A (en) 2005-05-13 2006-11-24 Toshiba Corp Receiving device
WO2006125850A1 (en) 2005-05-24 2006-11-30 Nokia Corporation Method and apparatuses for hierarchical transmission/reception in digital broadcast
US7644335B2 (en) 2005-06-10 2010-01-05 Qualcomm Incorporated In-place transformations with applications to encoding and decoding various classes of codes
US7676735B2 (en) 2005-06-10 2010-03-09 Digital Fountain Inc. Forward error-correcting (FEC) coding and streaming
JP2007013436A (en) * 2005-06-29 2007-01-18 Toshiba Corp Coding stream reproducing apparatus
JP2007013675A (en) 2005-06-30 2007-01-18 Sanyo Electric Co Ltd Streaming distribution system and server
US20070006274A1 (en) 2005-06-30 2007-01-04 Toni Paila Transmission and reception of session packets
US7725593B2 (en) * 2005-07-15 2010-05-25 Sony Corporation Scalable video coding (SVC) file format
US20070022215A1 (en) * 2005-07-19 2007-01-25 Singer David W Method and apparatus for media data transmission
ATE514246T1 (en) 2005-08-19 2011-07-15 Hewlett Packard Development Co SUGGESTION OF LOST SEGMENTS ACROSS LAYER BOUNDARIES
JP3996631B2 (en) 2005-09-09 2007-10-24 松下電器産業株式会社 Image processing method, image recording method, image processing apparatus, and image file format
US7924913B2 (en) 2005-09-15 2011-04-12 Microsoft Corporation Non-realtime data transcoding of multimedia content
US20070067480A1 (en) 2005-09-19 2007-03-22 Sharp Laboratories Of America, Inc. Adaptive media playout by server media processing for robust streaming
US20070078876A1 (en) 2005-09-30 2007-04-05 Yahoo! Inc. Generating a stream of media data containing portions of media files using location tags
US7720062B2 (en) * 2005-10-05 2010-05-18 Lg Electronics Inc. Method of processing traffic information and digital broadcasting system
US7164370B1 (en) 2005-10-06 2007-01-16 Analog Devices, Inc. System and method for decoding data compressed in accordance with dictionary-based compression schemes
CN100442858C (en) 2005-10-11 2008-12-10 华为技术有限公司 Lip synchronous method for multimedia real-time transmission in packet network and apparatus thereof
US7720096B2 (en) * 2005-10-13 2010-05-18 Microsoft Corporation RTP payload format for VC-1
MY159176A (en) 2005-10-19 2016-12-30 Thomson Licensing Multi-view video coding using scalable video coding
JP4727401B2 (en) 2005-12-02 2011-07-20 日本電信電話株式会社 Wireless multicast transmission system, wireless transmission device, and wireless multicast transmission method
JP4456064B2 (en) 2005-12-21 2010-04-28 日本電信電話株式会社 Packet transmission device, reception device, system, and program
US8185794B2 (en) 2006-01-05 2012-05-22 Telefonaktiebolaget L M Ericsson (Publ) Media container file management
US8214516B2 (en) * 2006-01-06 2012-07-03 Google Inc. Dynamic media serving infrastructure
JP4874343B2 (en) 2006-01-11 2012-02-15 ノキア コーポレイション Aggregation of backward-compatible pictures in scalable video coding
WO2007081176A1 (en) 2006-01-12 2007-07-19 Lg Electronics Inc. Processing multiview video
WO2007086654A1 (en) * 2006-01-25 2007-08-02 Lg Electronics Inc. Digital broadcasting system and method of processing data
US7262719B2 (en) 2006-01-30 2007-08-28 International Business Machines Corporation Fast data stream decoding using apriori information
RU2290768C1 (en) 2006-01-30 2006-12-27 Общество с ограниченной ответственностью "Трафиклэнд" Media broadcast system in infrastructure of mobile communications operator
GB0602314D0 (en) 2006-02-06 2006-03-15 Ericsson Telefon Ab L M Transporting packets
US20110087792A2 (en) 2006-02-07 2011-04-14 Dot Hill Systems Corporation Data replication method and apparatus
US8239727B2 (en) * 2006-02-08 2012-08-07 Thomson Licensing Decoding of raptor codes
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
US20070200949A1 (en) 2006-02-21 2007-08-30 Qualcomm Incorporated Rapid tuning in multimedia applications
JP2007228205A (en) 2006-02-23 2007-09-06 Funai Electric Co Ltd Network server
US8320450B2 (en) 2006-03-29 2012-11-27 Vidyo, Inc. System and method for transcoding between scalable and non-scalable video codecs
US20090100496A1 (en) * 2006-04-24 2009-04-16 Andreas Bechtolsheim Media server system
US20080010153A1 (en) 2006-04-24 2008-01-10 Pugh-O'connor Archie Computer network provided digital content under an advertising and revenue sharing basis, such as music provided via the internet with time-shifted advertisements presented by a client resident application
US7640353B2 (en) 2006-04-27 2009-12-29 Microsoft Corporation Guided random seek support for media streaming
WO2007134196A2 (en) 2006-05-10 2007-11-22 Digital Fountain, Inc. Code generator and decoder using hybrid codes
US7525993B2 (en) * 2006-05-24 2009-04-28 Newport Media, Inc. Robust transmission system and method for mobile television applications
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
TWM302355U (en) * 2006-06-09 2006-12-11 Jia-Bau Jeng Fixation and cushion structure of knee joint
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9380096B2 (en) * 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US20100211690A1 (en) 2009-02-13 2010-08-19 Digital Fountain, Inc. Block partitioning for a data stream
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
JP2008011404A (en) 2006-06-30 2008-01-17 Toshiba Corp Content processing apparatus and method
JP4392004B2 (en) 2006-07-03 2009-12-24 インターナショナル・ビジネス・マシーンズ・コーポレーション Encoding and decoding techniques for packet recovery
JP4982563B2 (en) 2006-07-20 2012-07-25 サンディスク コーポレイション Improved AV player apparatus and content distribution system and method using the same
US7711797B1 (en) 2006-07-31 2010-05-04 Juniper Networks, Inc. Optimizing batch size for prefetching data over wide area networks
US8209736B2 (en) 2006-08-23 2012-06-26 Mediatek Inc. Systems and methods for managing television (TV) signals
AU2007287222A1 (en) 2006-08-24 2008-02-28 Nokia Corporation System and method for indicating track relationships in media files
US20080066136A1 (en) 2006-08-24 2008-03-13 International Business Machines Corporation System and method for detecting topic shift boundaries in multimedia streams using joint audio, visual and text cues
JP2008109637A (en) * 2006-09-25 2008-05-08 Toshiba Corp Motion picture encoding apparatus and method
WO2008054112A2 (en) 2006-10-30 2008-05-08 Lg Electronics Inc. Methods of performing random access in a wireless communication system
JP2008118221A (en) * 2006-10-31 2008-05-22 Toshiba Corp Decoder and decoding method
WO2008054100A1 (en) 2006-11-01 2008-05-08 Electronics And Telecommunications Research Institute Method and apparatus for decoding metadata used for playing stereoscopic contents
JP5378227B2 (en) * 2006-11-14 2013-12-25 クゥアルコム・インコーポレイテッド System and method for channel switching
US8027328B2 (en) * 2006-12-26 2011-09-27 Alcatel Lucent Header compression in a wireless communication network
EP4184341A1 (en) 2007-01-05 2023-05-24 DivX, LLC Video distribution system including progressive playback
CA2675135A1 (en) * 2007-01-09 2008-07-17 Nokia Corporation Method for supporting file versioning in mbms file repair
US20080172430A1 (en) * 2007-01-11 2008-07-17 Andrew Thomas Thorstensen Fragmentation Compression Management
MX2009000619A (en) 2007-01-11 2009-04-16 Panasonic Corp Method for trick playing on streamed and encrypted multimedia.
KR20080066408A (en) 2007-01-12 2008-07-16 삼성전자주식회사 Device and method for generating three-dimension image and displaying thereof
CN101543018B (en) 2007-01-12 2012-12-26 庆熙大学校产学协力团 Packet format of network abstraction layer unit, and algorithm and apparatus for video encoding and decoding using the format, qos control algorithm and apparatus for ipv6 label switching using the fo
US8126062B2 (en) * 2007-01-16 2012-02-28 Cisco Technology, Inc. Per multi-block partition breakpoint determining for hybrid variable length coding
US7721003B2 (en) 2007-02-02 2010-05-18 International Business Machines Corporation System and method to synchronize OSGi bundle inventories between an OSGi bundle server and a client
US7805456B2 (en) 2007-02-05 2010-09-28 Microsoft Corporation Query pattern to enable type flow of element types
US20080192818A1 (en) 2007-02-09 2008-08-14 Dipietro Donald Vincent Systems and methods for securing media
US20080232357A1 (en) 2007-03-19 2008-09-25 Legend Silicon Corp. Ls digital fountain code
JP4838191B2 (en) 2007-05-08 2011-12-14 シャープ株式会社 File reproduction device, file reproduction method, program for executing file reproduction, and recording medium recording the program
JP2008283571A (en) 2007-05-11 2008-11-20 Ntt Docomo Inc Content distribution device, system and method
WO2008140261A2 (en) 2007-05-14 2008-11-20 Samsung Electronics Co., Ltd. Broadcasting service transmitting apparatus and method and broadcasting service receiving apparatus and method for effectively accessing broadcasting service
CN101682466A (en) 2007-05-16 2010-03-24 汤姆森特许公司 Apparatus and method for encoding and decoding signals
US8487982B2 (en) 2007-06-07 2013-07-16 Reald Inc. Stereoplexing for film and video applications
WO2008153294A2 (en) 2007-06-11 2008-12-18 Samsung Electronics Co., Ltd. Method and apparatus for generating header information of stereoscopic image
KR20100030648A (en) 2007-06-26 2010-03-18 노키아 코포레이션 System and method for indicating temporal layer switching points
US7917702B2 (en) 2007-07-10 2011-03-29 Qualcomm Incorporated Data prefetch throttle
JP2009027598A (en) 2007-07-23 2009-02-05 Hitachi Ltd Video distribution server and video distribution method
US8327403B1 (en) 2007-09-07 2012-12-04 United Video Properties, Inc. Systems and methods for providing remote program ordering on a user device via a web server
US9237101B2 (en) 2007-09-12 2016-01-12 Digital Fountain, Inc. Generating and communicating source identification information to enable reliable communications
US8233532B2 (en) 2007-09-21 2012-07-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Information signal, apparatus and method for encoding an information content, and apparatus and method for error correcting an information signal
US8346959B2 (en) 2007-09-28 2013-01-01 Sharp Laboratories Of America, Inc. Client-controlled adaptive streaming
WO2009048277A2 (en) * 2007-10-09 2009-04-16 Samsung Electronics Co., Ltd. Apparatus and method for generating and parsing mac pdu in a mobile communication system
US8635360B2 (en) 2007-10-19 2014-01-21 Google Inc. Media playback point seeking using data range requests
US8706907B2 (en) 2007-10-19 2014-04-22 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US20090125636A1 (en) 2007-11-13 2009-05-14 Qiong Li Payload allocation methods for scalable multimedia servers
EP2215595B1 (en) 2007-11-23 2012-02-22 Media Patents S.L. A process for the on-line distribution of audiovisual contents with advertisements, advertisement management system, digital rights management system and audiovisual content player provided with said systems
US8543720B2 (en) 2007-12-05 2013-09-24 Google Inc. Dynamic bit rate scaling
TWI355168B (en) 2007-12-07 2011-12-21 Univ Nat Chiao Tung Application classification method in network traff
JP5385598B2 (en) 2007-12-17 2014-01-08 キヤノン株式会社 Image processing apparatus, image management server apparatus, control method thereof, and program
US9313245B2 (en) 2007-12-24 2016-04-12 Qualcomm Incorporated Adaptive streaming for on demand wireless services
KR101506217B1 (en) 2008-01-31 2015-03-26 삼성전자주식회사 Method and appratus for generating stereoscopic image data stream for temporally partial three dimensional data, and method and apparatus for displaying temporally partial three dimensional data of stereoscopic image
EP2086237B1 (en) 2008-02-04 2012-06-27 Alcatel Lucent Method and device for reordering and multiplexing multimedia packets from multimedia streams pertaining to interrelated sessions
US8151174B2 (en) 2008-02-13 2012-04-03 Sunrise IP, LLC Block modulus coding (BMC) systems and methods for block coding with non-binary modulus
US20090219985A1 (en) 2008-02-28 2009-09-03 Vasanth Swaminathan Systems and Methods for Processing Multiple Projections of Video Data in a Single Video File
US7984097B2 (en) 2008-03-18 2011-07-19 Media Patents, S.L. Methods for transmitting multimedia files and advertisements
US8606996B2 (en) * 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US20090257508A1 (en) 2008-04-10 2009-10-15 Gaurav Aggarwal Method and system for enabling video trick modes
CN103795511B (en) 2008-04-14 2018-05-01 亚马逊技术股份有限公司 A kind of method that uplink transmission is received in base station and base station
US20100049865A1 (en) * 2008-04-16 2010-02-25 Nokia Corporation Decoding Order Recovery in Session Multiplexing
US8855199B2 (en) 2008-04-21 2014-10-07 Nokia Corporation Method and device for video coding and decoding
RU2010150108A (en) 2008-05-07 2012-06-20 Диджитал Фаунтин, Инк. (Us) QUICK CHANNEL CHANGE AND HIGH QUALITY STREAM PROTECTION ON A BROADCAST CHANNEL
WO2009140208A2 (en) 2008-05-12 2009-11-19 Swarmcast, Inc. Live media delivery over a packet-based computer network
JP5022301B2 (en) 2008-05-19 2012-09-12 株式会社エヌ・ティ・ティ・ドコモ Proxy server, communication relay program, and communication relay method
CN101287107B (en) * 2008-05-29 2010-10-13 腾讯科技(深圳)有限公司 Demand method, system and device of media file
US8370887B2 (en) * 2008-05-30 2013-02-05 Microsoft Corporation Media streaming with enhanced seek operation
US20100011274A1 (en) 2008-06-12 2010-01-14 Qualcomm Incorporated Hypothetical fec decoder and signalling for decoding control
US8775566B2 (en) 2008-06-21 2014-07-08 Microsoft Corporation File format for media distribution and presentation
US8387150B2 (en) * 2008-06-27 2013-02-26 Microsoft Corporation Segmented media content rights management
US8468426B2 (en) * 2008-07-02 2013-06-18 Apple Inc. Multimedia-aware quality-of-service and error correction provisioning
US8539092B2 (en) 2008-07-09 2013-09-17 Apple Inc. Video streaming using multiple channels
US20100153578A1 (en) 2008-07-16 2010-06-17 Nokia Corporation Method and Apparatus for Peer to Peer Streaming
US8638796B2 (en) * 2008-08-22 2014-01-28 Cisco Technology, Inc. Re-ordering segments of a large number of segmented service flows
US8325796B2 (en) 2008-09-11 2012-12-04 Google Inc. System and method for video coding using adaptive segmentation
US8370520B2 (en) * 2008-11-24 2013-02-05 Juniper Networks, Inc. Adaptive network content delivery system
US20100169303A1 (en) * 2008-12-31 2010-07-01 David Biderman Playlists for real-time or near real-time streaming
US8743906B2 (en) * 2009-01-23 2014-06-03 Akamai Technologies, Inc. Scalable seamless digital video stream splicing
RU2689191C2 (en) 2009-01-26 2019-05-24 Томсон Лайсенсинг Packaging frames for encoding video
CN104780385B (en) 2009-01-29 2018-01-16 杜比实验室特许公司 Video-unit, for by the sequential coding of multi views frame be bit stream device
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US8909806B2 (en) * 2009-03-16 2014-12-09 Microsoft Corporation Delivering cacheable streaming media presentations
US8621044B2 (en) 2009-03-16 2013-12-31 Microsoft Corporation Smooth, stateless client media streaming
CN102804785A (en) 2009-04-13 2012-11-28 瑞尔D股份有限公司 Encoding, decoding, and distributing enhanced resolution stereoscopic video
US9807468B2 (en) 2009-06-16 2017-10-31 Microsoft Technology Licensing, Llc Byte range caching
WO2011009205A1 (en) 2009-07-22 2011-01-27 Jigsee Inc. Method of streaming media to heterogeneous client devices
US8355433B2 (en) * 2009-08-18 2013-01-15 Netflix, Inc. Encoding video streams for adaptive video streaming
US9288010B2 (en) * 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US20120151302A1 (en) * 2010-12-10 2012-06-14 Qualcomm Incorporated Broadcast multimedia storage and access using page maps when asymmetric memory is used
EP2474182B1 (en) * 2009-09-02 2020-12-02 Apple Inc. Mac packet data unit construction for wireless systems
US20110096828A1 (en) 2009-09-22 2011-04-28 Qualcomm Incorporated Enhanced block-request streaming using scalable encoding
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US9438861B2 (en) 2009-10-06 2016-09-06 Microsoft Technology Licensing, Llc Integrating continuous and sparse streaming data
JP2011087103A (en) 2009-10-15 2011-04-28 Sony Corp Provision of content reproduction system, content reproduction device, program, content reproduction method, and content server
EP3220281A1 (en) 2009-11-04 2017-09-20 Amotech Co., Ltd. System and method for media content streaming
KR101786051B1 (en) 2009-11-13 2017-10-16 삼성전자 주식회사 Method and apparatus for data providing and receiving
KR101786050B1 (en) 2009-11-13 2017-10-16 삼성전자 주식회사 Method and apparatus for transmitting and receiving of data
CN101729857A (en) 2009-11-24 2010-06-09 中兴通讯股份有限公司 Method for accessing video service and video playing system
WO2011070552A1 (en) 2009-12-11 2011-06-16 Nokia Corporation Apparatus and methods for describing and timing representations in streaming media files
EP3018881A1 (en) 2010-02-19 2016-05-11 Telefonaktiebolaget LM Ericsson (publ) Method and arrangement for adaptation in http streaming
KR101628432B1 (en) * 2010-02-19 2016-06-21 텔레폰악티에볼라겟엘엠에릭슨(펍) Method and arrangement for representation switching in http streaming
JP5071495B2 (en) 2010-03-04 2012-11-14 ウシオ電機株式会社 Light source device
EP3079269B1 (en) * 2010-03-11 2020-10-28 Electronics and Telecommunications Research Institute Method and apparatus for transceiving data in a mimo system
US9225961B2 (en) 2010-05-13 2015-12-29 Qualcomm Incorporated Frame packing for asymmetric stereo video
US9497290B2 (en) 2010-06-14 2016-11-15 Blackberry Limited Media presentation description delta file for HTTP streaming
US8918533B2 (en) 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
KR20120010089A (en) 2010-07-20 2012-02-02 삼성전자주식회사 Method and apparatus for improving quality of multimedia streaming service based on hypertext transfer protocol
US9131033B2 (en) 2010-07-20 2015-09-08 Qualcomm Incoporated Providing sequence data sets for streaming video data
US9596447B2 (en) * 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US8711933B2 (en) 2010-08-09 2014-04-29 Sony Computer Entertainment Inc. Random access point (RAP) formation using intra refreshing technique in video coding
US9456015B2 (en) 2010-08-10 2016-09-27 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
KR101737325B1 (en) 2010-08-19 2017-05-22 삼성전자주식회사 Method and apparatus for reducing decreasing of qualitly of experience in a multimedia system
US8615023B2 (en) * 2010-10-27 2013-12-24 Electronics And Telecommunications Research Institute Apparatus and method for transmitting/receiving data in communication system
US20120208580A1 (en) * 2011-02-11 2012-08-16 Qualcomm Incorporated Forward error correction scheduling for an improved radio link protocol
US8958375B2 (en) * 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US9270299B2 (en) * 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060031738A1 (en) 2002-10-30 2006-02-09 Koninklijke Philips Electronics, N.V. Adaptative forward error control scheme
US20050257106A1 (en) 2004-05-07 2005-11-17 Digital Fountain, Inc. File download and streaming system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; Multimedia Broadcast/Multicast Service (MBMS); Protocols and codecs (Release 6", 3GPP, 1 June 2005 (2005-06-01)
See also references of EP1985021A4

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9628536B2 (en) 2006-06-09 2017-04-18 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US11477253B2 (en) 2006-06-09 2022-10-18 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
WO2010081599A1 (en) * 2009-01-13 2010-07-22 Alcatel Lucent Method and device for ensuring reliability during transmission of television data in a television system based on internet protocol
CN102301737A (en) * 2009-01-13 2011-12-28 阿尔卡特朗讯公司 Method And Device For Ensuring Reliability During Transmission Of Television Data In A Television System Based On Internet Protocol
JP2012515458A (en) * 2009-01-13 2012-07-05 アルカテル−ルーセント Method and device for ensuring reliability during transmission of television data in a television system based on internet protocol
KR101280084B1 (en) * 2009-01-13 2013-06-28 알까뗄 루슨트 Method and device for ensuring reliability during transmission of television data in a television system based on internet protocol
CN102301737B (en) * 2009-01-13 2014-01-08 阿尔卡特朗讯公司 Method And Device For Ensuring Reliability During Transmission Of Television Data In A Television System Based On Internet Protocol
EP2207354A1 (en) 2009-01-13 2010-07-14 Alcatel-Lucent España, S.A. Method and device for ensuring reliability during transmission of television data in a television system based on internet protocol
US8966559B2 (en) 2009-01-13 2015-02-24 Alcatel Lucent Method and device for ensuring reliability during transmission of television data in a television system based on internet protocol
US9876607B2 (en) 2009-08-19 2018-01-23 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9660763B2 (en) 2009-08-19 2017-05-23 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US10855736B2 (en) 2009-09-22 2020-12-01 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US11743317B2 (en) 2009-09-22 2023-08-29 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US11770432B2 (en) 2009-09-22 2023-09-26 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9485546B2 (en) 2010-06-29 2016-11-01 Qualcomm Incorporated Signaling video samples for trick mode video representations
US9992555B2 (en) 2010-06-29 2018-06-05 Qualcomm Incorporated Signaling random access points for streaming video data
US9723063B2 (en) 2011-11-28 2017-08-01 Vuclip (Singapore) Pte. Ltd. Method of determining transport parameters for efficient data transport across a network
WO2013078558A1 (en) * 2011-11-28 2013-06-06 Jigsee Inc. Method of determining transport parameters for efficient data transport across a network
US9425920B2 (en) 2012-02-27 2016-08-23 Samsung Electronics Co., Ltd. Packet transmission/reception apparatus and method using forward error correction scheme
EP2820785A4 (en) * 2012-02-27 2015-09-30 Samsung Electronics Co Ltd Packet transmission/reception apparatus and method using forward error correction scheme
US10177784B2 (en) 2012-02-27 2019-01-08 Samsung Electronics Co., Ltd. Packet transmission/reception apparatus and method using forward error correction scheme
CN103957222A (en) * 2014-05-20 2014-07-30 艾诺通信系统(苏州)有限责任公司 Video transmission self-adaption method based on FEC algorithm

Also Published As

Publication number Publication date
JP5550834B2 (en) 2014-07-16
KR101292851B1 (en) 2013-08-02
JP2009527151A (en) 2009-07-23
EP1985021A4 (en) 2013-05-29
US20070204196A1 (en) 2007-08-30
EP1985021A2 (en) 2008-10-29
JP5442816B2 (en) 2014-03-12
KR20080106249A (en) 2008-12-04
HK1141172A1 (en) 2010-10-29
CN101686107B (en) 2014-08-13
JP2013017191A (en) 2013-01-24
WO2007095550A3 (en) 2008-01-10
US9136983B2 (en) 2015-09-15
CN101686107A (en) 2010-03-31

Similar Documents

Publication Publication Date Title
US9136983B2 (en) Streaming and buffering using variable FEC overhead and protection periods
AU2009244223B2 (en) Fast channel zapping and high quality streaming protection over a broadcast channel
US9237101B2 (en) Generating and communicating source identification information to enable reliable communications
US8279755B2 (en) FEC architecture for streaming services including symbol based operations and packet tagging
KR101995221B1 (en) Apparatus and method for transmitting and receiving packet in communication system
CN100375538C (en) Method for multimedia communication over packet channels
US8990663B2 (en) Method to support forward error correction for real-time audio and video data over internet protocol networks
US8667362B2 (en) System and method for mitigating burst noise in a communications system
US20060150055A1 (en) Adaptive information delivery system using FEC feedback
JP2010539763A (en) Method and system for transmitting data packets from a source to multiple receivers over a network
US8458571B2 (en) Data transmission method and equipment
CN101405942A (en) Streaming and buffering using variable FEC overhead and protection periods

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2008554547

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2007756943

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 4815/CHENP/2008

Country of ref document: IN

Ref document number: 1020087022279

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 200780010032.8

Country of ref document: CN