A method of protecting data with application layer forward error correction in a communication system, wherein the communication system includes first devices with legacy receivers and second devices with fec-enabled receivers, operation of the legacy receivers is not affected by the application layer forward error correction, and the method includes: determining a duration period; assembling packets of source data into source blocks corresponding to the duration period, each source block comprising a number of packets of source data; encoding the source blocks to generate encoded blocks, each encoded block comprising a number of packets of repair data; and transmitting the packets of repair data.
|
22. An apparatus configured to receive data protected with application layer forward error correction (“FEC”) in a communication system, the apparatus comprising:
a receiver configured to receive packets of source data of a desired service and packets of repair data for the desired service, wherein the repair data is application layer fec data and the repair data is for correcting errors in the source data of the desired service, thereby protecting the source data with application layer fec;
a processor communicatively coupled to the receiver and configured to determine that a first identifier associated with the source data corresponds with the desired service, determine that a second identifier associated with the repair data does not correspond with the desired service, and discard the packets of repair data; and
an assembly module communicatively coupled to the processor and configured to assemble the packets of source data to reproduce a transmitted data stream of the desired service.
17. An apparatus configured to receive data protected with application layer forward error correction (“FEC”) in a communication system, the communication system including devices with legacy receivers, wherein operation of the legacy receivers is not affected by the application layer fec, the apparatus comprising:
a receiver configured to receive packets of repair data, wherein packets are received with indications of an associated elementary stream, at least one elementary stream being associated with source packets to be processed by legacy receivers and fec-enabled receivers and at least one elementary stream being indicated as an elementary stream processed by fec-enabled receivers and skipped by legacy receivers, to carry the packets of repair data;
an assembly module communicatively coupled to the receiver and configured to assemble the received packets of repair data into encoded blocks, each encoded block comprising a number of packets of repair data; and
a decoder communicatively coupled to the assembly module and configured to decode the encoded blocks to generate source blocks, each source block corresponding to a predetermined duration period and comprising a number of packets of source data, wherein
the assembly module is further configured to assemble the packets of source data to reproduce a transmitted data stream.
30. A non-transitory computer program product for receiving data protected with application layer forward error correction (“FEC”) in a communication system, the communication system including first devices with legacy receivers and second devices with fec-enabled receivers, wherein operation of the legacy receivers is not affected by the application layer fec, the non-transitory computer program product comprising:
a non-transitory processor-readable medium storing non-transitory processor-readable instructions configured to cause a processor to:
receive packets of repair data, wherein packets are received with indications of an associated elementary stream, at least one elementary stream being associated with source packets to be processed by legacy receivers and fec-enabled receivers and at least one elementary stream being indicated as an elementary stream processed by fec-enabled receivers and skipped by legacy receivers, to carry the packets of repair data;
assemble the received packets of repair data into encoded blocks, each encoded block comprising a number of packets of repair data;
decode the encoded blocks to generate source blocks, each source block corresponding to a predetermined duration period and comprising a number of packets of source data; and
assemble the packets of source data to reproduce a transmitted data stream.
1. A method of protecting data, to be transmitted from a transmitter configured for outputting electronic signals, with application layer forward error correction (“FEC”) in a communication system, the communication system including first devices with legacy receivers and second devices with fec-enabled receivers, wherein operation of the legacy receivers is not affected by the application layer fec, the method comprising:
determining a duration period;
assembling packets of source data into source blocks corresponding to the duration period, each source block comprising a number of packets of source data;
encoding the source blocks, using an encoder, to generate encoded blocks, each encoded block comprising a number of packets of repair data forming application layer fec data;
parsing the source blocks into a first set of elementary streams comprising one or more elementary streams having associated elementary stream indicators:
parsing the encoded blocks into a second set of elementary streams comprising one or more elementary streams having associated elementary stream indicators: and
transmitting the packets of repair data, using the transmitter, with elementary stream indicators, including indicators that an fec-enabled receiver recognizes as an fec stream and a legacy receiver recognizes as a stream to be ignored, thereby allowing for a transmission directed at both fec-enabled receivers and legacy receivers to be handled such that operation of the legacy receivers is not affected by the application layer fec.
24. A non-transitory computer program product for protecting data with application layer forward error correction (“FEC”) in a communication system, the communication system including first devices with legacy receivers and second devices with fec-enabled receivers, wherein operation of the legacy receivers is not affected by the application layer fec, the non-transitory computer program product comprising:
a non-transitory processor-readable medium storing non-transitory processor-readable instructions configured to cause a processor to:
determine a duration period;
assemble packets of source data into source blocks corresponding to the duration period, each source block comprising a number of packets of source data;
encode the source blocks to generate encoded blocks, each encoded block comprising a number of packets of repair data;
parse the source blocks into a first set of elementary streams comprising one or more elementary streams having associated elementary stream indicators;
parse the encoded blocks into a second set of elementary streams comprising one or more elementary streams having associated elementary stream indicators; and
transmit the packets of repair data, with elementary stream indicators, including indicators that an fec-enabled receiver recognizes as an fec stream and a legacy receiver recognizes as a stream to be ignored, thereby allowing for a transmission directed at both fec-enabled receivers and legacy receivers would be handled such that operation of the legacy receivers is not affected by the application layer fec.
11. An apparatus configured to protect data with application layer forward error correction (“FEC”) in a communication system, the communication system including first devices with legacy receivers and second devices with fec-enabled receivers, wherein operation of the legacy receivers is not affected by the application layer fec, the apparatus comprising:
a processor configured to determine a duration period, and assemble packets of source data into source blocks corresponding to the duration period, each source block comprising a number of packets of source data;
an encoder communicatively coupled to the processor and configured to encode the source blocks to generate encoded blocks, each encoded block comprising a number of packets of application layer fec repair data;
a parser for parsing the source blocks into a first set of elementary streams comprising one or more elementary streams having associated elementary stream indicators and for parsing the encoded blocks into a second set of elementary streams comprising one or more elementary streams having associated elementary stream indicators; and
a transmitter communicatively coupled to the encoder and configured to transmit the packets of repair data, with elementary stream indicators, including indicators that an fec enabled receiver recognizes as an fec stream and a legacy receiver recognizes as a stream to be ignored, thereby allowing for a transmission directed at both fec-enabled receivers and legacy receivers would be handled such that operation of the legacy receivers is not affected by the application layer fec.
7. A method of receiving data, with a receiver configured for receiving and processing electronic signals, protected with application layer forward error correction (“FEC”) in a communication system, the communication system including first devices with legacy receivers and second devices with fec-enabled receivers, wherein operation of the legacy receivers is not affected by the application layer fec, the method comprising:
receiving packets of repair data using the receiver;
if packets are received and determined to be associated with an elementary stream not handled by the receiver, skipping such packets;
if packets are received and determined to be associated with an elementary stream indicated as containing packets of repair data providing application layer fec data and the receiver is configured as an fec-enabled receiver, processing the packets determined to be fec data;
parsing packets from an elementary stream when packets are determined to be associated with the elementary stream and the elementary stream is indicated as containing source blocks, to form encoded blocks;
if the receiver is configured as an fec-enabled receiver, assembling the received packets of repair data into additional encoded blocks, each additional encoded block comprising a number of packets of repair data;
decoding the encoded blocks using a decoder to generate source blocks, each source block corresponding to a predetermined duration period and comprising a number of packets of source data;
if the receiver is configured as an fec-enabled receiver and not all source data is decoded, using the additional encoded blocks to generate additional source data; and
assembling the packets of source data, and the additional source data, if available, to reproduce a transmitted data stream.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
8. The method of
9. The method of
10. The method of
12. The apparatus of
13. The apparatus of
14. The apparatus of
15. The apparatus of
16. The apparatus of
the processor is further configured to determine a protection amount for the source blocks; and
the encoder is configured to encode the source blocks based on the protection amount.
18. The apparatus of
19. The apparatus of
the receiver is configured to receive the packets of repair data as part of a received data stream comprising the packets of repair data, packets of source data of the desired service, and packets of data of other services; and
the apparatus further comprises a de-multiplexer communicatively coupled to the receiver and configured to de-multiplex the packets of repair data and the packets of source data of the desired service from the received data stream.
20. The apparatus of
21. The apparatus of
23. The apparatus of
25. The non-transitory computer program product of
26. The non-transitory computer program product of
27. The non-transitory computer program product of
28. The non-transitory computer program product of
29. The non-transitory computer program product of
31. The non-transitory computer program product of
32. The non-transitory computer program product of
33. The non-transitory computer program product of
|
This application claims the benefit of U.S. Provisional Application No. 61/156,431, entitled “Mobile Reception of DVB-T Services,” filed Feb. 27, 2009, and U.S. Provisional Application No. 61/156,828, entitled “Mobile Reception of DVB-T Services,” filed Mar. 2, 2009, both of which are assigned to the assignee hereof and are hereby expressly incorporated by reference herein for all purposes.
The following references are included here and are incorporated by reference for all purposes:
U.S. Pat. No. 7,068,729 entitled “Multi-Stage Code Generator and Decoder for Communication Systems” issued to Shokrollahi, et al. (hereinafter “Shokrollahi”).
U.S. Non-Provisional patent application Ser. No. 12/210,024, entitled “Generating and Communicating Source Identification Information to Enable Reliable Communications” by Chen, et al. (hereinafter “Chen”), filed Sep. 12, 2008.
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 characterizes most physically realizable systems, one concern is how to deal with data that is lost or corrupted in transmission. Lost data (erasures) are often easier to deal with than corrupted data (errors) because the recipient cannot always recognize when the transmitted data has been corrupted.
Many error-correcting codes have been developed to correct erasures and/or errors. Typically, the particular code used is chosen based on some information about the infidelities of the channel through which the data is being transmitted, and the nature of the data being transmitted. For example, where the channel is known to have long periods of infidelity, a burst error code might be best suited for that application. Where only short, infrequent errors are expected, a simple parity code might be best.
“Communication,” as used herein, refers to data transmission, through space and/or time, such as data transmitted from one location to another or data stored at one time and used at another. The channel is that which separates the sender and receiver. Channels in space can be wires, networks, fibers, wireless media, etc. between a sender and receiver. Channels in time can be data storage devices. In realizable channels, there is often a nonzero chance that the data sent or stored by the sender is different when it is received or read by the recipient and those differences might be due to errors introduced in the channel.
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 reliable enough to allow for relatively error-free communications. Data transmission becomes more difficult when the channel is in an adverse environment, or the transmitter and/or receiver has limited capability. In certain applications, uninterrupted error-free communication is required over long periods of time. For example, in digital television systems it is expected that transmissions will be received error-free for periods of many hours at a time. In these cases, the problem of data transmission is difficult even in conditions of relatively low levels of errors.
Another scenario in which data communication is difficult is where a single transmission is directed to multiple receivers that may experience widely different data loss conditions. Furthermore, the conditions experienced by one given receiver may vary widely or may be relatively constant over time.
One solution to dealing with data loss (errors and/or erasures) is the use of forward error correcting (FEC) techniques, wherein data is coded at the transmitter in such a way that a receiver can correct transmission erasures and errors. Where feasible, a reverse channel from the receiver to the transmitter enables the receiver to relay information about these 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, in cases in which the transmitter is transmitting to a large number of receivers, the transmitter might not be able to maintain reverse channels from all the receivers. In another example, the communication channel may be a storage medium.
For example, data may be transmitted chronologically forward through time, and causality precludes a reverse channel that can fix errors before they happen. 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 prior knowledge of those channel conditions. One example is a broadcast or multicast channel, where reverse communication is not provided, or if provided is very limited or expensive. Another example where such a situation is relevant is a storage application, where the data is stored encoded using FEC, and then at a later point of time, the data is recovered, possibly using FEC decoding.
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 source symbols (that may all be of equal size or that may vary in size depending on the block size or on other factors). Encoding symbols are generated from the source 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 enables the intended recipient to recover an exact copy of the original file despite erasures and/or other corruption of the data transmitted over a network. A stream transmission is called reliable if it enables the intended recipient to recover an exact copy of each part of the stream in a timely manner despite erasures and/or corruption within the network. Both file transmission and stream transmission can instead be not entirely reliable, but somewhat reliable, in the sense that some parts of the file or stream are not recoverable or, for streaming, some parts of the stream might be recoverable but not in a timely fashion. It is often a goal to provide as high reliability as possible depending on some constraining conditions, where examples of constraints might be timely delivery for streaming applications, or the type of network conditions over which a solution is expected to operate.
Packet loss often occurs because sporadic congestion causes the buffering mechanism in a router to reach its capacity, forcing it to drop incoming packets. Other causes of packet loss include weak signal, intermittent signal, and noise interference wherein corrupted packets are discarded. Protection against erasures during transport has been the subject of much study.
In a system in which a single transmission is directed to more than one receiver, and in which different receivers experience widely different conditions, transmissions are often configured for some set of conditions between the transmitter and any receiver, and any receivers that are in worse conditions may not receive the transmission reliably.
Erasure codes are known which provide excellent recovery of lost packets in such scenarios. For example, Reed-Solomon codes are well known and can be adapted to this purpose. However, a known disadvantage of Reed-Solomon codes is their relatively high computational complexity. Chain reaction codes, including LT™ chain reaction codes and Raptor™ multi-stage chain reaction (“MSCR”) codes, provide excellent recovery of lost packets, and are highly adaptable to varying channel conditions. For example, Shokrollahi describes aspects of multi-stage chain reaction codes. Herein, the term “chain reaction code” should be understood to include chain reaction codes or multi-stage chain reaction codes, unless otherwise indicated.
In some cases, it may be necessary or desirable to increase the reliability of a communications system after deployment. However, while an improvement in network reliability may be needed, it is typically not feasible to replace or upgrade all receiving devices in the network at once or at all. For example, it might turn out that actual network packet loss is higher than initially planned, due to degradations in network reliability, increased traffic load, expansions and/or changes in the network, etc., or the quality of service requirements may need to increase to match competitive services, but it might be impractical to get new receivers out to all nodes of the communications system at once or to distribute them over time and have some receiving stations out of commission until the new receivers arrive.
In order to deliver the best possible service at the lowest cost, communications systems must simultaneously balance conflicting resource constraints. Network bandwidth is a critical resource constraint. Transmitting and receiving devices need to enable efficient use of network bandwidth in supporting a reliable service. The available CPU processing on receiving devices is typically a severe limitation, meaning that any transport reliability enhancement method must require only a modest amount of computing effort. In addition, it is also often necessary, particularly with streaming media, to limit the incremental latency associated with reliable transport methods so that the end-user does not perceive a reduction in system responsiveness.
An exemplary method of protecting data with application layer forward error correction in a communication system, wherein the communication system includes first devices with legacy receivers and second devices with FEC-enabled receivers, and operation of the legacy receivers is not affected by the application layer forward error correction, according to the disclosure includes: determining a duration period; assembling packets of source data into source blocks corresponding to the duration period, each source block including a number of packets of source data; encoding the source blocks to generate encoded blocks, each encoded block including a number of packets of repair data; and transmitting the packets of repair data.
Embodiments of such a method may include one or more of the following features. The data includes Digital Video Broadcasting—Terrestrial data. The method further includes separating or partitioning the packets of source data from a data stream. The number of packets of repair data of an encoded block is greater than the number of packets of source data of a source block. The method further includes determining which packets of source data from a data stream to assemble into source blocks, wherein at least some of the packets of source data from the data stream are not assembled into source blocks. The method further includes determining a protection amount for the source blocks, wherein the source blocks are encoded based on the protection amount.
An exemplary method of receiving data protected with application layer forward error correction in a communication system, wherein the communication system includes first devices with legacy receivers and second devices with FEC-enabled receivers, and operation of the legacy receivers is not affected by the application layer forward error correction, includes: receiving packets of repair data; assembling the received packets of repair data into encoded blocks, each encoded block including a number of packets of repair data; decoding the encoded blocks to generate source blocks, each source block corresponding to a predetermined duration period and including a number of packets of source data; and assembling the packets of source data to reproduce a transmitted data stream.
Embodiments of such a method may include one or more of the following features. The transmitted data stream includes Digital Video Broadcasting—Terrestrial data. The method further includes separating or partitioning the packets of repair data from a received data stream. The encoded blocks are decoded based on a predetermined protection amount.
An apparatus configured to protect data with application layer forward error correction in a communication system, wherein the communication system includes first devices with legacy receivers and second devices with FEC-enabled receivers, and operation of the legacy receivers is not affected by the application layer forward error correction, includes: a processor configured to determine a duration period, and assemble packets of source data into source blocks corresponding to the duration period, each source block including a number of packets of source data; an encoder communicatively coupled to the processor and configured to encode the source blocks to generate encoded blocks, each encoded block including a number of packets of repair data; and a transmitter communicatively coupled to the encoder and configured to transmit the packets of repair data.
Embodiments of such an apparatus may include one or more of the following features. The data includes Digital Video Broadcasting—Terrestrial data. The processor is further configured to separate or partition the packets of source data from a data stream. The number of packets of repair data of an encoded block is greater than the number of packets of source data of a source block. The processor is further configured to determine which packets of source data from a data stream to assemble into source blocks, wherein at least some of the packets of source data from the data stream are not assembled into source blocks. The processor is further configured to determine a protection amount for the source blocks; and the encoder is configured to encode the source blocks based on the protection amount.
An apparatus configured to receive data protected with application layer forward error correction in a communication system, wherein the communication system includes first devices with legacy receivers and second devices with FEC-enabled receivers, and operation of the legacy receivers is not affected by the application layer forward error correction, includes: a receiver configured to receive packets of repair data; an assembly module communicatively coupled to the receiver and configured to assemble the received packets of repair data into encoded blocks, each encoded block including a number of packets of repair data; and a decoder communicatively coupled to the assembly module and configured to decode the encoded blocks to generate source blocks, each source block corresponding to a predetermined duration period and including a number of packets of source data, wherein the assembly module is further configured to assemble the packets of source data to reproduce a transmitted data stream.
Embodiments of such an apparatus may include one or more of the following features. The apparatus further includes a processor communicatively coupled to the receiver and configured to determine that an identifier associated with the repair data corresponds with a desired service. The receiver is configured to receive the packets of repair data as part of a received data stream including the packets of repair data, packets of source data of the desired service, and packets of data of other services; and the apparatus further includes a de-multiplexer communicatively coupled to the receiver and configured to de-multiplex the packets of repair data and the packets of source data of the desired service from the received data stream. The transmitted data stream includes Digital Video Broadcasting—Terrestrial data. The decoder is configured to decode the encoded blocks based on a predetermined protection amount.
An apparatus configured to receive data protected with application layer forward error correction in a communication system includes: a receiver configured to receive packets of source data of a desired service and packets of repair data for the desired service, wherein the repair data is for correcting errors in the source data of the desired service; a processor communicatively coupled to the receiver and configured to determine that a first identifier associated with the source data corresponds with the desired service, determine that a second identifier associated with the repair data does not correspond with the desired service, and discard the packets of repair data; and an assembly module communicatively coupled to the processor and configured to assemble the packets of source data to reproduce a transmitted data stream of the desired service.
Embodiments of such an apparatus may include the feature wherein the transmitted data stream includes Digital Video Broadcasting—Terrestrial data.
A computer program product for protecting data with application layer forward error correction in a communication system, wherein the communication system includes first devices with legacy receivers and second devices with FEC-enabled receivers, and operation of the legacy receivers is not affected by the application layer forward error correction, includes a processor-readable medium storing processor-readable instructions configured to cause a processor to: determine a duration period; assemble packets of source data into source blocks corresponding to the duration period, each source block including a number of packets of source data; encode the source blocks to generate encoded blocks, each encoded block including a number of packets of repair data; and transmit the packets of repair data.
Embodiments of such a product may include one or more of the following features. The data includes Digital Video Broadcasting—Terrestrial data. The processor-readable medium is further configured to cause the processor to separate or partition the packets of source data from a data stream. The number of packets of repair data of an encoded block is greater than the number of packets of source data of a source block. The processor-readable medium is further configured to cause the processor to determine which packets of source data from a data stream to assemble into source blocks, wherein at least some of the packets of source data from the data stream are not assembled into source blocks. The processor-readable medium is further configured to cause the processor to determine a protection amount for the source blocks, wherein the source blocks are encoded based on the protection amount.
A computer program product for receiving data protected with application layer forward error correction in a communication system, wherein the communication system includes first devices with legacy receivers and second devices with FEC-enabled receivers, and operation of the legacy receivers is not affected by the application layer forward error correction, includes a processor-readable medium storing processor-readable instructions configured to cause a processor to: receive packets of repair data; assemble the received packets of repair data into encoded blocks, each encoded block including a number of packets of repair data; decode the encoded blocks to generate source blocks, each source block corresponding to a predetermined duration period and including a number of packets of source data; and assemble the packets of source data to reproduce a transmitted data stream.
Embodiments of such a product may include one or more of the following features. The transmitted data stream includes Digital Video Broadcasting—Terrestrial data. The processor-readable medium is further configured to cause the processor to separate or partition the packets of repair data from a received data stream. The encoded blocks are decoded based on a predetermined protection amount.
A system configured to protect data with application layer forward error correction in a communication system, wherein the communication system includes first devices with legacy receivers and second devices with FEC-enabled receivers, and operation of the legacy receivers is not affected by the application layer forward error correction, includes: means for determining a duration period; means for assembling packets of source data into source blocks corresponding to the duration period, each source block including a number of packets of source data; means for encoding the source blocks to generate encoded blocks, each encoded block including a number of packets of repair data; and means for transmitting the packets of repair data.
Embodiments of such a system may include one or more of the following features. The data includes Digital Video Broadcasting—Terrestrial data. The system further includes means for separating or partitioning the packets of source data from a data stream. The number of packets of repair data of an encoded block is greater than the number of packets of source data of a source block. The system further includes means for determining which packets of source data from a data stream to assemble into source blocks, wherein at least some of the packets of source data from the data stream are not assembled into source blocks. The system further includes means for determining a protection amount for the source blocks, wherein the source blocks are encoded based on the protection amount.
A system configured to receive data protected with application layer forward error correction in a communication system, wherein the communication system includes first devices with legacy receivers and second devices with FEC-enabled receivers, and operation of the legacy receivers is not affected by the application layer forward error correction, includes: means for receiving packets of repair data; means for assembling the received packets of repair data into encoded blocks, each encoded block including a number of packets of repair data; means for decoding the encoded blocks to generate source blocks, each source block corresponding to a predetermined duration period and including a number of packets of source data; and means for assembling the packets of source data to reproduce a transmitted data stream.
Embodiments of such a system may include one or more of the following features. The transmitted data stream includes Digital Video Broadcasting—Terrestrial data. The system further includes means for separating or partitioning the packets of repair data from a received data stream. The encoded blocks are decoded based on a predetermined protection amount.
Items and/or techniques described herein may provide one or more of the following capabilities. Application Layer Forward Error Correction (AL-FEC) protection in a Digital Video Broadcasting—Terrestrial (DVB-T) network increases the robustness of the transmitted information and provides reception in mobile channels. The described mechanisms allow the transmission of additional parity needed for error correction in a fully backwards-compatible way, i.e., in such a way that legacy DVB-T receivers are not impacted by the additional FEC. Providing AL-FEC protection for DVB-T services using raptor codes, which are efficient and lightweight in terms of decoding complexity, allows the FEC decoding to be done in generic software processors even on low-complexity devices. Thus, hardware upgrades can be eliminated or reduced. AL-FEC can be used in existing networks and services to extend the mobile reception of DVB-T services to provide partial coverage of the service area. AL-FEC protection can be used in conjunction with other technical solutions (e.g., antenna diversity techniques and hierarchical modulation) to further enhance the mobile reception of DVB-T services in existing networks. While item/technique-effect pairs have been described, it may be possible for a noted effect to be achieved by means other than those noted, and a noted item/technique may not necessarily yield the noted effect.
In the figures, components with similar relevant characteristics and/or features may have the same reference label.
Techniques described herein provide mechanisms for protecting data with AL-FEC in a communication system. The communication system includes first devices with legacy receivers and second devices with FEC-enabled receivers, where operation of the legacy receivers is not affected by the application layer forward error correction. A duration period can be determined, and packets of source data are assembled into source blocks corresponding to the duration period. The source blocks are then encoded to generate encoded blocks, which each include a number of packets of repair data. The packets of repair data are transmitted. Mechanisms for receiving data protected with AL-FEC in a communication system are also provided. Packets of repair data are received and assembled into encoded blocks. The encoded blocks are decoded to generate source blocks, which each correspond to a predetermined duration period and include a number of packets of source data. The packets of source data are assembled to reproduce a transmitted data stream. The protected data can include DVB-T data. A protection amount for the source blocks can be determined, where the encoding and decoding is based on the protection amount. Other embodiments are within the scope of the disclosure and claims.
Although the focus in this disclosure is on DVB-T, the described techniques are not limited to application in DVB-T. The described techniques can apply, for example, to Digital Video Broadcasting (DVB-S) and Digital Video Broadcasting—Cable (DVB-C) as well as other wireless or fixed network distribution systems, such as Advanced Television Systems Committee (ATSC) or Integrated Services Digital Broadcasting—Terrestrial (ISDB-T).
Digital Video Broadcasting—Terrestrial (DVB-T)
Digital Terrestrial Television (DTT) networks are being deployed worldwide, and it is planned that DTT services completely replace analog TV in many European countries by 2012 at the latest. DVB-T is the European standard of DTT and has been adopted by many countries all over the world to provide DTT services. DVB-T was designed for fixed and portable reception, but DVB-T does not generally provide enough robustness in mobile environments. Mobile reception, as described in more detail below, is characterized by fluctuations of the received signal caused by fast fading and shadowing. These fluctuations cause the loss of portions of information over time and challenge the reception of DVB-T services in mobile environments. A main reason for this is the short time interleaving, up to approximately 1 ms, performed in the physical layer.
Digital Video Broadcasting—Transmission System for Handheld Terminals (DVB-H), a European digital mobile TV standard, is a technological evolution of DVB-T and was developed specifically for the provision of mobile TV services. DVB-H reutilizes the physical layer of DVB-T and introduces a set of enhancements in the link layer in order to adapt the transmission to mobile reception. These enhancements are aimed to reduce the terminal power consumption and to counteract the fast fading. A link layer protection mechanism called Multi Protocol Encapsulation—Forward Error Correction (MPE-FEC) increases the robustness in mobile environments, whereas a bursty transmission technique referred to as time slicing reduces the power consumption in receivers by up to 90%. Simulations for DVB-H have shown that by means of MPE-FEC, it is possible to obtain gains between 4 and 9 dB for mobile users when compared to DVB-T. Furthermore, the maximum Doppler tolerance increases by about 50% for mobile channels while reutilizing the physical layer of DVB-T.
AL-FEC has been standardized in DVB-H for file delivery services. An advantage of AL-FEC is that it can spread the protection over large portions of information. AL-FEC takes advantage of the spatial diversity derived from user mobility by the use of extensive time interleaving (e.g., up to minutes or even hours) and increases the robustness of the transmitted information in the presence of shadowing. AL-FEC has also been proposed for DVB-H streaming services in the form of multi-burst protection. Despite excellent performance, the main drawback of this approach is an increase in the channel switching times, which is considered a critical parameter in mobile TV usability.
Despite the fact that the physical layer of DVB-H is compatible with DVB-T, DVB-H encapsulates all the audio-visual information in IP (Internet Protocol) datagrams and generally simulcasts the services with lower quality than the MPEG-2 Transport Stream (MPEG-2 TS) signal in DVB-T. Therefore, DVB-H requires the allocation of specific bandwidth for the transmission of the mobile TV content. On the other hand, in some studies as well as even deployments, mobile reception of DVB-T has been verified. In order to enable mobile reception of current DVB-T services, antenna diversity techniques have been proposed. It is claimed that the reception by means of two antennas and Maximum Ratio Combining (MRC) results in a link margin gain from 3 to 9 dB depending on the reception conditions. However, for handset-based reception, multiple receive antennas are generally impractical as the correlation distance of the antennas is far beyond the dimensions of typical handsets.
Mobile Reception of DVB-T
Mobile channels are characterized by rapid variations of the received signal over time referred to as fast fading. Fast fading is caused by the Doppler shift of multiple propagation paths, which originates from the movement of the receiver with respect to the transmitter. Fast fading results in corruption of small portions of the data stream in a bursty manner. Higher velocities involve higher values of Doppler shift and thus, a greater degradation of the received information. If the user velocity is too high, the Doppler shift may increase above the values supported by the physical layer, corrupting great portions of the received information. The Carrier to Noise (C/N) sensitivity required for the proper reception of DVB-T tends to increase proportionally with the Doppler shift due to inter-carrier interference (ICI) up to a maximum Doppler value, from which reception is no longer possible. The protection applied by the physical layer of DVB-T extends only to the duration of one Orthogonal Frequency Division Multiplexing (OFDM) symbol (i.e., approximately 1 ms), and it is not able to cope with the error bursts resulting from fast fading.
DVB-H reutilizes the physical layer of DVB-T, but integrated MPE-FEC at the link layer to repair the errors caused by mobile reception. MPE-FEC is an intra burst mechanism for which the protection is performed on a per burst basis. MPE-FEC protection spreads over the duration of one burst, of length 0.1 to 0.4 s, and it is capable of counteracting the effects of fast fading. By means of MPE-FEC, it is possible to achieve a performance that is almost independent of the Doppler and in addition, the maximum Doppler supported by the system can be increased.
In order to cope with mobile reception impairments in DVB-T systems, antenna diversity techniques have been proposed. It has been claimed that, by means of two antennas, it is possible to improve the reception of DVB-T services in the presence of fast fading by up to 9 dB and to increase the maximum Doppler by more than a factor of three. Although antenna diversity can be implemented in vehicles, it is not suited for the handheld reception of DVB-T services. In antenna diversity scenarios, the separation between antennas is proportional to the frequency of operation, and the separation required in the ultra high frequency (UHF) band generally exceeds the size of handheld terminals.
The received signal in mobile channels is also characterized by slow variations known as shadowing. Shadowing results from the presence of large obstacles, such as buildings or hills that may block the line-of-sight between the receiver and the transmitter. Shadowing can be modeled as a log-normal distributed variation of the received signal over the area of coverage. When a user is moving in the presence of shadowing, the received signal may experience outages that corrupt longer periods of the data stream.
However, mobile users can take advantage of the spatial diversity resulting from shadowing in order to increase the temporal diversity of the received signal. Signal outages can be corrected if the protection of the physical or upper layers is spread over time. This can be achieved by encoding a large amount of information jointly. Such link layer protection has been standardized for use in DVB systems.
System Architecture for AL-FEC Protection of DVB-T Services
Referring to
Packetized elementary streams (PESs) of a program to be protected are processed by an FEC transmitter 110. In one example, a television program can include a video PES and an audio PES. The FEC transmitter 110 generates an FEC elementary stream that is multiplexed by the multiplexer 120 with the video PES, the audio PES, and other elementary streams (e.g., captioning, Teletext or data information) into a Moving Picture Experts Group-2 Transport Stream (MPEG-2 TS), which is distributed over the DVB-T network. In DVB-T services, several television programs, each composed of several elementary streams, can be multiplexed in the same MPEG-2 TS. Preferably, the FEC elementary stream is sent with as low overhead as possible, as bit rate is generally scarce and expensive in digital terrestrial systems.
The FEC elementary stream is multiplexed in a fully backwards-compatible way such that legacy receivers discard the FEC elementary stream without affecting their operations. That is, although the MPEG-2 TS will be transmitted with a new FEC elementary stream not used in existing DVB-T services, existing legacy receivers will not need any changes to be able to extract a desired service from the received MPEG-2 TS with the multiplexed FEC elementary stream. A legacy receiver 130, e.g., a receiver of an existing high definition television, includes a DVB-T receiver 132 and a de-multiplexer 134. The DVB-T receiver 132 receives the MPEG-2 TS. The de-multiplexer 134 de-multiplexes the received MPEG-2 TS into separate elementary streams, including the FEC elementary stream, and drops the FEC elementary stream while retaining the video PES, the audio PES, control, and the other streams needed to display the desired service.
An FEC-enabled receiver 140, e.g., a receiver of a new DVB-T capable mobile device, includes a DVB-T receiver 142, a de-multiplexer 144, and an FEC receiver 146. The DVB-T receiver 142 receives the MPEG-2 TS, and the de-multiplexer 144 de-multiplexes the received MPEG-2 TS into separate elementary streams. The video PES, the audio PES, and the FEC elementary stream are processed by the FEC receiver 146 to reconstruct lost audio and video data of the audio PES and the video PES, respectively, such that the original program can be reconstructed. Preferably, the FEC-enabled receivers are able to reconstruct as much data as possible using the FEC elementary stream.
The FEC stream generated by the FEC encoder consumes part of the bit rate capacity at the physical layer and thus, the number of services carried per MPEG-2 TS may have to be reduced in order to accommodate the FEC data. Unlike DVB-H, AL-FEC protection of DVB-T services allows the same multimedia content transmitted to fixed receivers to be protected for its use by mobile users. Therefore, no additional content is needed for transmission of mobile services, and only the capacity required for carrying the FEC data need be taken into account to support mobile reception.
MPEG-2 TS Protocol of DVB-T Services
In DVB-T, all the content is multiplexed in a MPEG-2 TS and transmitted as a sequence of TS packets. Each TS packet carries a header of 4 bytes and a payload of 184 bytes. The MPEG-2 TS contains all the data from the services multiplexed in the MPEG-2 TS along with signaling information, which is carried in the form of Program Specific Information/Service Information (PSI/SI) tables. Generally, several services (e.g., television programs, radio programs, and data channels) are multiplexed in the one MPEG-2 TS as elementary streams. The header of each TS packet contains a 13-bit Packet IDentifier (PID) that uniquely identifies the elementary stream that is carried inside the TS packet. The header of the TS packets also contains a Transport Error Indicator (TEI) bit and a Continuity Counter (CC) field that can be used for the detection of erroneous and missing packets.
Each elementary stream is assigned a unique PID value inside the MPEG-2 TS. The associations between elementary streams and PID values are transmitted in the PSI/SI tables. The DVB-T receivers 132, 142 parse the PSI/SI tables in order to identify the PID values of the elementary streams that correspond to the desired service. The MPEG-2 TS packets carrying the video, audio, or data information of the desired service are de-multiplexed by reading the PID value of every MPEG-2 TS packet.
Forward Error Correction
FEC mechanisms are designed to cope with the loss of information by transmitting additional repair data. Erasure codes are often used in FEC mechanisms as they can regenerate lost portions of information transmitted over an erasure channel. The information to be protected is partitioned into source blocks, each of them including k different source symbols. An erasure encoder is used in the transmitter to encode the source blocks and generate a total amount of n symbols per source block where n>k. If a systematic code is used, the original k source symbols are among the total n symbols generated by the encoding algorithm. The k original source symbols are transmitted along with n−k repair symbols. Assuming an erasure channel, some of the n transmitted symbols are erased and are not available at the receiver. An erasure decoder is capable of recovering the erased symbols if a sufficient number of source and repair symbols is received. An ideal erasure code is capable of recovering the k original source symbols if at least any k symbols among the n transmitted symbols are received. A practical low-complexity erasure code generally requires a small additional number of symbols in order to recover all original transmitted source symbols.
The level of protection provided by FEC mechanisms depends on the code rate and the protection period. The code rate is the proportion of source data with respect to the total amount of information transmitted, accounting for both source and repair data. The protection period is the duration of the information encoded in a source block. Long protection periods take advantage of temporal diversity derived from user mobility and achieve better protection in the presence of shadowing.
The protection period affects not only the level of protection provided by the FEC mechanism but also network latency and, more importantly, receiver latency or channel switching time. The network latency is the amount of time that passes from the instant the information enters the transmitter until the instant it is delivered to media decoders in the receiver. The channel switching time is the amount of time between the instant when a user switches to a new channel and the instant when the new content is displayed to the user. Although network latency is not critical for the majority of services, the channel switching time is considered a critical criterion in mobile television user experience and should not increase beyond certain values. A tradeoff exists between the level of protection that can be offered in mobile reception and the channel switching time that the user experiences as disturbing. Increasing the protection period also affects the memory needed in the receiver, as at least the size of the source data contained in one protection period needs to be stored in order to perform the decoding. However, the use of computationally efficient decoding techniques can reduce the memory problems, and fast channel switching techniques may decrease the channel switching time perceived by the user when long protection periods are used.
AL-FEC Protection of DVB-T Services
The addition of AL-FEC to DVB-T services incorporates FEC protection by making use of erasure codes in a fully backwards-compatible way. In order to achieve this, the video and audio elementary streams should not be altered to allow legacy receivers to continue to extract the video and audio elementary streams of desired services from the received MPEG-2 TS without the need for changes in the legacy receivers. Apart from the repair symbols, some additional information, such as a Source FEC Payload Identifier (ID), is necessary for the decoding process and needs to be passed to the receiver. For associating the source and repair data, a hash sequence of the source data is sent along with the repair data to provide this Source FEC Payload Identifier, such that the source data is unmodified without adding sequence numbering, while FEC-enabled receivers (e.g., the FEC-enabled receiver 140 of
The MPEG-2 TS specification allows AL-FEC to be incorporated into the protocol stack of DVB-T in a transparent manner above the TS layer. As discussed above, the repair packets can be multiplexed into the MPEG-2 TS as another elementary stream associated with the particular program, and will be discarded by the receivers that do not incorporate AL-FEC. As an example technique to accomplish this, a specific new PID can be assigned to the FEC elementary stream, where the specific new PID is not recognized by legacy receivers. Thus, the new PID assigned to the FEC elementary stream is not recognized by legacy receivers as being associated with an elementary stream of any desired service. As a result, the legacy receivers would discard the FEC elementary stream as if it was a PES of an undesired service. By means of the TEI bit and the CC fields in the TS packet header, it is possible to determine and discard erroneous MPEG-2 TS packets. As the source and repair packets are encapsulated in the MPEG-2 TS packets, the erasure of MPEG-2 TS packets results in a symbol erasure channel. A source or repair symbol is considered erased if at least one of the TS packets carrying information of that particular source or repair symbol is lost. Longer source and repair packets are generally fragmented and encapsulated into multiple TS packets. As one erroneous or lost TS packet is sufficient to erase the entire source or repair packet, this tends to achieve a lower performance, especially in the presence of uncorrelated MPEG-2 TS packet errors.
In this disclosure, systematic raptor codes are considered for AL-FEC in DVB-T services. Raptor codes, described in Shokrollahi, have been previously standardized in DVB systems for the provision of link layer FEC protection. Raptor codes are a computationally efficient implementation of fountain codes that achieve very close to ideal performance (i.e., no additional repair data is required to decode the lost symbols). Fountain codes are a class of erasure codes that can generate a very large amount of parity data from a given source block and thus, are considered rate less (i.e., any amount of FEC overhead can be delivered for any source block size or protection period). Raptor decoding can be implemented in complexity and memory constrained receivers, such as handset receivers, without the need for dedicated hardware due to the code's low computational complexity and efficient memory management. Alternatively, other block-based FEC codes, such as Reed-Solomon or low-density parity-check (LDPC) codes, can be used for protecting the PES packets of the programs being transmitted in a MPEG-2 TS.
Referring to
Another limitation of MPE-FEC that can be overcome by AL-FEC is the dependency between the code rate and the protection period. Due to the nature of Reed Solomon encoding, in order to achieve different code rates other than the mother code rate (e.g., ¾), it is necessary to perform a padding/puncturing mechanism that shortens the burst duration. This is especially important for code rates of ⅔ and ½, for which the burst duration is, respectively, 25% and 50% shorter than in the case of a code rate of ¾. On the contrary, the flexibility of raptor codes allows the proposed AL-FEC implementation to deliver virtually any code rate for a given protection period.
FEC Transmitter
Referring to
The TS packets carrying the source data, e.g., video and audio information of a particular program, are de-multiplexed from an incoming MPEG-2 TS by the FEC transmitter and assembled into source packets in the same order as the order in which the source data were originally multiplexed. The FEC transmitter sends the source packets to the transmitter 410 and retrieves the source and repair packets. In some implementations, the source packet size is set to 1316 bytes, which corresponds exactly to seven TS packets, each of 188 bytes. Both the header and the payload of the TS packets are FEC protected. To signal a beginning of a source packet to the FEC receiver, a transport priority bit in the MPEG-2 TS packet header can be used. The function of the transport priority bit is to signal the TS packets that need to be processed in the receiver with higher priority. However, as this bit is generally not used in DVB-T transmissions, the bit can be used to signal the beginning of the source packets. For example, an MPEG-2 TS packet can have the transport priority bit set to 1 for each MPEG-2 TS packet that carries the start of a source packet as delivered to the transmitter 410.
In some implementations, the repair packets generated by the transmitter 410 have a variable size ranging from 1320 bytes to 1472 bytes, optimized for operation in Ethernet networks, which corresponds to the payload of 8 TS packets. When the size of the repair packets is not fixed, the size needs to be signaled to the receiver. Two bytes can be inserted at the beginning of the repair packets before encapsulating them into the MPEG-2 TS to signal the repair packet size. If the last MPEG-2 TS packet carrying information of a repair packet is not completely filled with repair data, the rest of the TS packet can be filled with padding.
The FEC transmitter stores the repair packets generated by the transmitter 410 in a circular FIFO during a protection period. The repair packets are then multiplexed in a generally uniform manner over the protection period. The FEC transmitter automatically computes the rate at which the repair packets are encapsulated based on the original service bit-rate and the FEC overhead.
To signal that a null MPEG-2 TS packet is carrying information from a repair packet, the transport priority bit in the MPEG-2 TS packet header can be set to 1. A payload unit start indicator bit in the MPEG-2 TS packet header can be used to signal a beginning of a repair packet to the FEC receiver. Thus, a TS null packet containing repair data would have the payload unit start indicator bit set to 1 if it is the first TS null packet of a repair packet generated by the transmitter 410. The transport priority bit and the payload unit start indicator bit are used by the FEC receiver to assemble the source and repair packets as they were originally assembled in the FEC transmitter. Although the transport priority bit and payload unit start indicator bit are described above for signaling source and repair packets to the FEC receiver, other bit fields in the MPEG-2 TS packet header or other techniques for signaling source or repair packets in MPEG-2 TS packets can also be used.
Alternatively, the FEC transmitter can use a dedicated PID value to signal the transport of repair packets. In this case, the packets carrying the beginning of a repair packet would have their transport priority bit set to 1, as in the case of the source packets. The dedicated PID needs to be set to a value not used in the MPEG-2 TS for carrying an elementary stream or a PSI/SI table, such that legacy receivers would not recognized the dedicated PID and would thus discard the MPEG-2 TS packets that carry repair data. The CC field of the TS packets carrying repair data is increased by 1 with respect to the previous MPEG-2 TS packet carrying repair data. This allows the FEC receiver to identify missing packets that were lost during the transmission of the MPEG-2 TS. The combination of the TEI bit and the CC field can provide reliable detection of lost source and repair packets.
A different option to transport the FEC parity (i.e., repair) data is the generation of a separate FEC MPEG-2 TS stream that could include the FEC data of all programs. Alternatively, the FEC parity data could be distributed over other means, such as another point-to-point network, e.g., Long Term Evolution (LTE) or High Speed Packet Access (HSPA), or another broadcast network, e.g., DVB-H, Digital Video Broadcasting—Satellite services to Handhelds (DVB-SH), MediaFLO, or Multimedia Broadcast and Multicast Services (MBMS).
FEC Receiver
Referring to
The source and repair packets are assembled from the received MPEG-2 TS in the same order as they are received. The transport priority bit indicates to the FEC receiver the beginning of a new source or repair packet. The TEI bit and the CC field in the header of the TS packets are used to identify erroneous or missing packets. One missing or erroneous MPEG-2 TS packet invalidates the source or repair packet to which the TS packet belongs. Erroneous, and possibly incomplete, source or repair packets can be automatically discarded and not passed to a receiver 510. The FEC receiver overwrites the erroneously received TS packets as null TS packets to free bandwidth for the decoded packets that will be multiplexed.
The FEC receiver sends the correctly received source and repair packets to the receiver 510 and retrieves the decoded source packets. The decoded source packets retrieved from the receiver 510 are stored in a circular FIFO during the protection period before being multiplexed into the outgoing MPEG-2 TS. The decoded packets are multiplexed into the outgoing MPEG-2 TS in the locations that are occupied by null TS packets in the received stream.
The instantaneous bit rate of the decoded service needs to be maintained to achieve the strict timing model of MPEG-2 TS. The correctly received TS packets pertaining to the FEC-enabled service can be used to synchronize the multiplexing of the decoded packets. The decoded packets are multiplexed by filling gaps between correctly received TS packets, which maintains the original bit rate at which the packets were originally multiplexed. As only the erroneously received TS packets are erased, there is no loss in the service quality when the source blocks cannot be decoded.
Configuration of Protection Amount and Protection Period
In AL-FEC, the protection amount (i.e., the FEC overhead) is the percentage of repair data transmitted relative to the original data. The protection period (i.e., the duration period) applied by AL-FEC is determined by the duration of the information contained in one source block. The channel switching time and memory constraints directly depend on the size of the protection period, as all the information of one source block needs to be stored before being decoded. For AL-FEC protection of DVB-T Services, both the protection amount and the protection period are configurable.
As the FEC repair data generated from encoding is transmitted in the same MPEG-2 TS as the video and audio information, the efficiency of the FEC protection (low overhead) is of very important. Preferably, the lowest overhead FEC codes that achieve the desired performance are used. The bandwidth to deliver this additional FEC data within an MPEG-2 TS can be obtained, for example, by protecting the perceptually most important data or the most important programs only, using non-occupied capacity in DVB-T, replacement of null packets in the MPEG-2 TS with FEC data, reducing the video and/or audio bit rate by improved video encoding schemes, or increasing the coding rate and bandwidth efficiency on the physical layer and, therefore, changing the available bit rate.
The information to be protected can be selected on an elementary stream basis or on a per service basis, such that the configuration can be adapted to the characteristics and constraints of each transmitted service. Information such as Teletext, captioning, or supplementary data can be left without protection to maximize the efficiency of the FEC protection for the more important data. For a protected service, not all the PESs corresponding to that service need be protected by FEC. In one example, to improve the efficiency of FEC protection of a television program, only the most important information, e.g. the video information and only one audio track, can be encoded.
As another example, consider a video stream encoded according to the MPEG standard, with three types of frames: Intra (I) frames or key-frames, which do not reference any other frames; Predictive (P) frames, which can reference I- and P-frames presented in the past; and Bidirectional (B) frames, which can reference the I- and P-frames presented both in the past and in the future. FEC protection can be limited to the I- and P-frames, but not the B-frames, to maximize the use of available bandwidth for the highest priority data elements.
In addition to protection amount, i.e., FEC overhead, the protection period is also configurable with AL-FEC protection of DVB-T services. Unlike MPE-FEC, the protection period of AL-FEC in DVB-T is only constrained by memory, delay, and channel switching time considerations. Therefore, AL-FEC can be applied to cope with shadowing as well as fast fading. Moreover, the continuous transmission and the higher bit rate of DVB-T services compared to DVB-H allow AL-FEC to achieve an effectively longer protection period than MPE-FEC for the same channel switching time.
In DVB-H, due to the time slicing, a user needs to wait until the reception of the next burst when switching to a new channel. Assuming no other delays, the channel switching time in DVB-H is equal to half a cycle time (i.e., the time between bursts) on average, and equal to one cycle time in the worst-case scenario. On the other hand, the continuous transmission of DVB-T enables almost instantaneous channel switching. If AL-FEC is used in DVB-T, the channel switching time is equal to the protection period. As an example, if the cycle time is 2 seconds in DVB-H and the protection period of AL-FEC is configured to 1 second in DVB-T, the average channel switching time is similar in both systems, whereas the protection period in the case of DVB-T is several times longer (i.e., 1 s for DVB-T versus 100-200 ms for DVB-H). As described above in reference to
Process of Protecting Data with AL-FEC
Referring to
At stage 602, a processor (e.g., a processor on a source transmitter side of a communication link) determines a duration period. For example, the duration period can be determined to simultaneously achieve a desired level of protection for mobile reception and reduce the channel switching time experienced by a user.
At stage 604, the processor separates or partitions packets of source data from a data stream. For example, a processor of the FEC transmitter 110 of
At stage 606, the processor assembles the packets of source data into source blocks corresponding to the duration period, where each source block includes a number of packets of source data. In one example, each source block is a source packet that includes seven MPEG-2 TS packets of source data.
At stage 608, an encoder (e.g., an encoder on the source transmitter side of the communication link) encodes the source blocks to generate encoded blocks, where each encoded block includes a number of packets of repair data. The encoder can be part of the transmitter 410 of
At stage 610, a transmitter transmits the packets of repair data. For example, the packets of repair data can be encapsulated in an FEC elementary stream and multiplexed with other elementary streams by the multiplexer 120 of
In some implementations, which packets of source data from the data stream to assemble into source blocks is determined, where at least some of the packets of source data from the data stream are not assembled into source blocks. For example, a processor can determine that only the most important packets of source data are to be assembled into source blocks for encoding. In some implementations, the processor determines a protection amount for the source blocks, where the encoding of source blocks is based on the protection amount. For example, the protection amount can be determined to simultaneously achieve a desired level of protection for mobile reception and reduce the bandwidth needed to transmit the repair data.
Process of Receiving Data Protected with AL-FEC
Referring to
At stage 702, a receiver receives packets of repair data. For example, the DVB-T receiver 142 of the FEC-enabled receiver 140 of
At stage 704, a processor (e.g., a processor on a receiver side of a communication link) separates or partitions the packets of repair data from a received data stream. For example, the packets of repair data can be de-multiplexed from a received MPEG-2 TS by the de-multiplexer 144 of the FEC-enabled receiver 140 of
At stage 706, the processor assembles the received packets of repair data into encoded blocks, where each encoded block includes a number of packets of repair data. In one example, each encoded block is a repair packet assembled from eight received MPEG-2 TS packets of repair data.
At stage 708, a decoder (e.g., a decoder on the receiver side of the communication link) decodes the encoded blocks to generate source blocks, where each source block corresponds to a predetermined duration period and includes a number of packets of source data. The decoder can be part of the receiver 510 of
At stage 710, the processor assembles the packets of source data to reproduce a transmitted data stream. For example, a processor of the FEC receiver 146 of
Performance Evaluation of AL-FEC Protection of DVB-T Services
Simulations were performed assuming a DVB-T physical layer configuration of fast Fourier transform (FFT) equal to 8K, a guard interval equal to ¼, 16 quadrature amplitude modulation (QAM), and a coding rate equal to ½. The transmission mode employed gives a total bit rate of approximately 9.95 Mbps. For the evaluation of AL-FEC in DVB-T services, a service of 2.5 Mbps is protected by an ideal FEC implementation. The size of the source and repair symbol is configured to 184 bytes, which corresponds to the payload of one TS packet, and therefore, each symbol was directly mapped to one MPEG-2 TS packet. For simplicity, it was assumed that no signaling overhead (e.g., hash sequences) is needed to perform the decoding, i.e., all the FEC overhead was dedicated to transmission of repair data. These assumptions correspond to an upper limit on the performance, but the expected deviation from real implementations was marginal. An ideal erasure code was also assumed for encoding/decoding, i.e., the source blocks could be decoded successfully without any additional FEC symbol overhead.
The mobile performance was evaluated by means of TU6 laboratory measurements. The laboratory measurement setup consisted of a DVB-T modulator, a signal generator for emulating the TU6 channel model, and a DVB-T measurement system capable of recording the error data at the TS layer. By recording the error data at the TS layer, it was possible to emulate the performance of upper layers by means of link layer simulations. The measurements were obtained for a transmission mode configured as above in a range of carrier-to-noise ratio (CNR) values from 0 to 30 dB and for Doppler values of 10 Hz and 80 Hz.
Packet Error Ratio (PER) was used as the metric to measure the performance of AL-FEC. The PER is the percentage of packets in which there is at least one error. In the case of AL-FEC simulated, a packet corresponded to a source packet. A PER value of 1% was the quality of service criterion.
Referring to
Referring to
In
Additional simulation results showing AL-FEC protection of DVB-T services in the presence of shadowing and comparing AL-FEC protection of DVB-T services with MPE-FEC protection of DVB-H services are described in “Mobile Reception of DVB-T Services by Means of AL-FEC Protection,” by David Gozálvez, et al., published May 13-15, 2009 in the proceedings of the IEEE International Symposium on Broadband Multimedia Systems and Broadcasting, 2009.
Network Planning
Network planning issues arise with the addition of AL-FEC protection of DVB-T services. While fixed reception is generally performed with high gain antennas located on the roof of buildings, mobile reception is characterized by reception at ground level and use of low gain antennas. The degradation in performance due to the height loss and the use of mobile antennas can affect the link budget of DVB-T systems, especially in urban scenarios. For DVB-T networks planned for fixed reception, the AL-FEC protection of DVB-T services or the use of antenna diversity techniques can generally provide mobile reception in areas with the best coverage conditions but cannot provide mobile reception with coverage levels comparable to those of fixed DTT services. On the other hand, DVB-T networks planned for portable reception take into account the penalization due to height loss and lower gain antennas. The combined gain of AL-FEC and antenna diversity techniques (for use at the transmitter and/or the receiver) can be used in DVB-T networks deployed for portable reception to provide mobile DVB-T services with similar coverage area to that of fixed DVB-T services.
One possibility to partially counteract the more demanding reception of mobile services in terrestrial networks is by means of hierarchical modulation and the new scalable video coding (SVC) video codec. The combined use of hierarchical modes and SVC of H.264/Advanced Video Coding (AVC) presents a high potential for the simultaneous provision of fixed and mobile DVB-T services. The use of the new SVC extension can enhance mobile services by transmitting a base layer and an enhancement layer through two hierarchical streams. Fixed terminals would need to receive both the base and the enhancement layer in order to retrieve the high quality service, whereas mobile terminals only need to receive the base layer. The base layer would not only be transmitted through the more robust stream but also be protected by AL-FEC to ensure its reception by mobile users.
Considerations Regarding the Description
The various illustrative logical blocks, modules, and circuits described in connection with the disclosure herein may be implemented or performed with a general-purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
The blocks of a method or algorithm described in connection with the disclosure herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a user terminal.
In one or more exemplary designs, the functions described may be implemented in hardware, software executed by a processor, firmware, or any combination thereof. If implemented in software executed by a processor, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A storage medium may be any available medium that can be accessed by a general purpose or special purpose computer. By way of example, and not limitation, computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code means in the form of instructions or data structures and that can be accessed by a general-purpose or special-purpose computer, or a general-purpose or special-purpose processor. Also, any connection is properly termed a computer-readable medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above are also included within the scope of computer-readable media.
The previous description is provided to enable any person skilled in the art to make and/or use the apparatus, systems, and methods described. Various modifications to the disclosure will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other variations without departing from the spirit or scope of the disclosure. Thus, the disclosure is not to be limited to the examples and designs described herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
Stockhammer, Thomas, Gómez-Barquero, David, Gozalvez Serrano, David
Patent | Priority | Assignee | Title |
10277660, | Sep 06 2010 | HELIOS STREAMING, LLC | Apparatus and method for providing streaming content |
10362130, | Jul 20 2010 | HELIOS STREAMING, LLC | Apparatus and method for providing streaming contents |
10419163, | Oct 12 2015 | International Business Machines Corporation | Adaptive network communication protocols |
10645136, | Mar 16 2011 | HELIOS STREAMING, LLC | Apparatus and method for providing streaming content using representations |
10743082, | Apr 11 2014 | Sony Corporation | Reception apparatus, reception method, transmission apparatus, and transmission method |
10790931, | Aug 30 2016 | Fraunhofer-Gesellschaft zur Foerderung der Angewandten Forschung E V | Regenerative payload using end-to-end FEC protection |
10819815, | Jul 20 2010 | HELIOS STREAMING, LLC | Apparatus and method for providing streaming content |
11082470, | Mar 16 2011 | HELIOS STREAMING, LLC | Apparatus and method for providing streaming content using representations |
9986009, | Oct 06 2010 | HELIOS STREAMING, LLC | Apparatus and method for providing streaming content |
Patent | Priority | Assignee | Title |
3909721, | |||
4365338, | Jun 27 1980 | Harris Corporation | Technique for high rate digital transmission over a dynamic dispersive channel |
4589112, | Jan 26 1984 | International Business Machines Corporation | System for multiple error detection with single and double bit error correction |
4901319, | Mar 18 1988 | Lockheed Martin Corporation | Transmission system with adaptive interleaving |
5136592, | Jun 28 1989 | Quantum Corporation | Error detection and correction system for long burst errors |
5153591, | Jul 05 1988 | British Telecommunications public limited company | Method and apparatus for encoding, decoding and transmitting data in compressed form |
5331320, | Nov 21 1991 | International Business Machines Corporation | Coding method and apparatus using quaternary codes |
5371532, | May 15 1992 | TTI Inventions A LLC | Communications architecture and method for distributing information services |
5372532, | Jan 26 1993 | Swivel head cap connector | |
5379297, | Apr 09 1992 | Network Equipment Technologies, Inc | Concurrent multi-channel segmentation and reassembly processors for asynchronous transfer mode |
5421031, | Aug 23 1989 | DETA TECHNOLOGY DEVELOPMENT LLC | Program transmission optimisation |
5425050, | Oct 23 1992 | Massachusetts Institute of Technology | Television transmission system using spread spectrum and orthogonal frequency-division multiplex |
5432787, | Mar 24 1994 | Lockheed Martin Corporation | Packet data transmission system with adaptive data recovery method |
5455823, | Nov 05 1990 | VIATECH COMMUNICATIONS, LLC | Integrated communications terminal |
5465318, | Mar 28 1991 | Nuance Communications, Inc | Method for generating a speech recognition model for a non-vocabulary utterance |
5517508, | Jan 26 1994 | Sony Corporation; SONY TRANS COM, INC | Method and apparatus for detection and error correction of packetized digital data |
5524025, | Nov 07 1990 | THE CHASE MANHATTAN BANK, AS COLLATERAL AGENT | Coding for digital transmission |
5566208, | Mar 17 1994 | VIDEO STREAMING SOLUTIONS LLC | Encoder buffer having an effective size which varies automatically with the channel bit-rate |
5568614, | Jul 29 1994 | International Business Machines Corporation; International Business Machines | Data streaming between peer subsystems of a computer system |
5583784, | May 14 1993 | FRAUNHOFER-GESELLSCHAFT ZUR FORDERUNG DER ANGEWANDTEN FORSCHUNG E V | Frequency analysis method |
5608738, | Nov 10 1993 | Juniper Networks, Inc | Packet transmission method and apparatus |
5617541, | Dec 21 1994 | 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 |
5642365, | Jul 05 1993 | Mitsubishi Denki Kabushiki Kaisha | Transmitter for encoding error correction codes and a receiver for decoding error correction codes on a transmission frame |
5659614, | Nov 28 1994 | DOMINION VENTURE FINANCE L L C | Method and system for creating and storing a backup copy of file data stored on a computer |
5699473, | Oct 10 1995 | Samsung Electronics Co., Ltd. | Method for recording and reproducing intercoded data using two levels of error correction |
5701582, | Aug 23 1989 | DETA TECHNOLOGY DEVELOPMENT LLC | Method and apparatus for efficient transmissions of programs |
5751336, | Oct 12 1995 | Cisco Technology, Inc | Permutation based pyramid block transmission scheme for broadcasting in video-on-demand storage systems |
5754563, | Sep 11 1995 | ECC Technologies, Inc. | Byte-parallel system for implementing reed-solomon error-correcting codes |
5757415, | May 26 1994 | 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 |
5802394, | Jun 06 1994 | Starlight Networks | Method for accessing one or more streams in a video storage system using multiple queues and maintaining continuity thereof |
5805825, | Jul 26 1995 | Intel Corporation | Method for semi-reliable, unidirectional broadcast information services |
5835165, | Jun 07 1995 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | Reduction of false locking code words in concatenated decoders |
5844636, | May 13 1997 | Hughes Electronics Corporation | Method and apparatus for receiving and recording digital packet data |
5870412, | Dec 12 1997 | Hewlett Packard Enterprise Development LP | Forward error correction system for packet based real time media |
5903775, | Jun 06 1996 | International Business Machines Corporation | Method for the sequential transmission of compressed video information at varying data rates |
5917852, | Jun 11 1997 | L-3 Communications Corporation | Data scrambling system and method and communications system incorporating same |
5926205, | Oct 19 1994 | Google Technology Holdings LLC | Method and apparatus for encoding and formatting data representing a video program to provide multiple overlapping presentations of the video program |
5933056, | Jul 15 1997 | Exar Corporation | Single pole current mode common-mode feedback circuit |
5936659, | Jan 31 1996 | HANGER SOLUTIONS, LLC | Method for video delivery using pyramid broadcasting |
5936949, | Sep 05 1996 | QUARTERHILL INC ; WI-LAN INC | Wireless ATM metropolitan area network |
5953537, | Feb 12 1993 | ALTERA CORPORATION, A DE CORP | Method and apparatus for reducing the number of programmable architecture elements required for implementing a look-up table in a programmable logic device |
5970098, | May 02 1997 | Ikanos Communications, Inc | Multilevel encoder |
5983383, | Jan 17 1997 | Qualcom Incorporated | Method and apparatus for transmitting and receiving concatenated code data |
5993056, | Apr 27 1995 | CONGREVE ATMOSPHERIC LLC | High integrity transport for time critical multimedia networking applications |
6005477, | Apr 17 1997 | ABB Research LTD | Method and apparatus for information transmission via power supply lines |
6011590, | Jan 03 1997 | TERADATA US, INC | Method of transmitting compressed information to minimize buffer space |
6012159, | Jan 17 1996 | KENCAST, INC | Method and system for error-free data transfer |
6014706, | Jan 30 1997 | Microsoft Technology Licensing, LLC | Methods and apparatus for implementing control functions in a streamed video display system |
6018359, | Apr 24 1998 | Massachusetts Institute of Technology | System and method for multicast video-on-demand delivery system |
6041001, | Feb 25 1999 | U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT | Method of increasing data reliability of a flash memory device without compromising compatibility |
6044485, | Jan 03 1997 | Ericsson Inc.; Ericsson Inc | Transmitter method and transmission system using adaptive coding based on channel characteristics |
6061820, | Dec 28 1994 | Kabushiki Kaisha Toshiba | Scheme for error control on ATM adaptation layer in ATM networks |
6073250, | Nov 06 1997 | Qualcomm Incorporated | Loss resilient decoding technique |
6079041, | Aug 04 1995 | SANYO ELECTRIC CO , LTD | Digital modulation circuit and digital demodulation circuit |
6079042, | Apr 27 1995 | ZARBAÑA DIGITAL FUND LLC | High integrity transport for time critical multimedia networking applications |
6081907, | Jun 09 1997 | Microsoft Technology Licensing, LLC | Data delivery system and method for delivering data and redundant information over a unidirectional network |
6081909, | Nov 06 1997 | Qualcomm Incorporated | Irregularly graphed encoding technique |
6081918, | Nov 06 1997 | Loss resilient code with cascading series of redundant layers | |
6088330, | Sep 09 1997 | California Institute of Technology | Reliable array of distributed computing nodes |
6097320, | Jan 20 1998 | Silicon Systems, Inc. | Encoder/decoder system with suppressed error propagation |
6134596, | Sep 18 1997 | Microsoft Technology Licensing, LLC | Continuous media file server system and method for scheduling network resources to play multiple files having different data transmission rates |
6141053, | Jan 03 1997 | TERADATA US, INC | Method of optimizing bandwidth for transmitting compressed video data streams |
6141787, | Jan 15 1999 | Sanyo Electric Co., Ltd. | Digital modulation and demodulation |
6141788, | Mar 13 1998 | THE CHASE MANHATTAN BANK, AS COLLATERAL AGENT | Method and apparatus for forward error correction in packet networks |
6154452, | May 26 1999 | SIRIUS XM RADIO INC | Method and apparatus for continuous cross-channel interleaving |
6163870, | Nov 06 1997 | Qualcomm Incorporated | Message encoding with irregular graphing |
6166544, | Nov 25 1998 | General Electric Company | MR imaging system with interactive image contrast control |
6175944, | Jul 15 1997 | WSOU Investments, LLC | Methods and apparatus for packetizing data for transmission through an erasure broadcast channel |
6178536, | Aug 14 1997 | TREND MICRO INCORPORATED | Coding scheme for file backup and systems based thereon |
6185265, | Apr 07 1998 | Worldspace Corporation | 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 |
6195777, | Nov 06 1997 | Hewlett Packard Enterprise Development LP | Loss resilient code with double heavy tailed series of redundant layers |
6223324, | Jan 05 1999 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Multiple program unequal error protection for digital audio broadcasting and other applications |
6226259, | Apr 29 1997 | Canon Kabushiki Kaisha | Device and method for transmitting information device and method for processing information |
6226301, | Feb 19 1998 | Nokia Mobile Phones Limited | Method and apparatus for segmentation and assembly of data frames for retransmission in a telecommunications system |
6229824, | May 26 1999 | SIRIUS XM RADIO INC | Method and apparatus for concatenated convolutional endcoding and interleaving |
6243846, | Dec 12 1997 | Hewlett Packard Enterprise Development LP | Forward error correction system for packet based data and real time media, using cross-wise parity calculation |
6272658, | Oct 27 1997 | Kencast, Inc. | Method and system for reliable broadcasting of data files and streams |
6278716, | Mar 23 1998 | MASSACHUSETTS, UNIVERSITY OF | Multicast with proactive forward error correction |
6298462, | Jun 25 1997 | SAMSUNG ELECTRONICS CO , LTD | Data transmission method for dual diversity systems |
6307487, | Sep 23 1998 | Qualcomm Incorporated | Information additive code generator and decoder for communication systems |
6314289, | Dec 03 1998 | Fraunhofer-Gesellschaft zur Forderung der Angewandten Forschung E.V. | Apparatus and method for transmitting information and apparatus and method for receiving information |
6320520, | Feb 05 1999 | Qualcomm Incorporated | Information additive group code generator and decoder for communications systems |
6332163, | Sep 01 1999 | Accenture Global Services Limited | Method for providing communication services over a computer network system |
6333926, | Aug 11 1998 | Ericsson AB | Multiple user CDMA basestation modem |
6373406, | Sep 23 1998 | Qualcomm Incorporated | Information additive code generator and decoder for communication systems |
6393065, | Aug 29 1997 | Canon Kabushiki Kaisha | Coding and decoding methods and devices and equipment using them |
6411223, | Oct 18 2000 | Qualcomm Incorporated | Generating high weight encoding symbols using a basis |
6415326, | Sep 15 1998 | Microsoft Technology Licensing, LLC | Timeline correlation between multiple timeline-altered media streams |
6420982, | Mar 23 2000 | CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC | Multi-stage lookup for translating between signals of different bit lengths |
6421387, | May 15 1998 | North Carolina State University | Methods and systems for forward error correction based loss recovery for interactive video transmission |
6430233, | Aug 30 1999 | Hughes Electronics Corporation | Single-LNB satellite data receiver |
6445717, | May 01 1998 | Niwot Networks, Inc.; NIWOT NETWORKS, INC | System for recovering lost information in a data stream |
6459811, | Apr 02 1998 | Akikaze Technologies, LLC | Bursty data transmission of compressed video data |
6466698, | Mar 25 1999 | The United States of America as represented by the Secretary of the Navy | Efficient embedded image and video compression system using lifted wavelets |
6473010, | Apr 04 2000 | CAVIUM INTERNATIONAL; MARVELL ASIA PTE, LTD | Method and apparatus for determining error correction code failure rate for iterative decoding algorithms |
6486803, | Sep 22 2000 | Qualcomm Incorporated | On demand encoding with a window |
6487692, | Dec 21 1999 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Reed-Solomon decoder |
6496980, | Dec 07 1998 | Intel Corporation | Method of providing replay on demand for streaming digital multimedia |
6497479, | Apr 27 2001 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Higher organic inks with good reliability and drytime |
6510177, | Mar 24 2000 | Microsoft Technology Licensing, LLC | System and method for layered video coding enhancement |
6523147, | Nov 11 1999 | iBiquity Digital Corporation | Method and apparatus for forward error correction coding for an AM in-band on-channel digital audio broadcasting system |
6535920, | Apr 06 1999 | Microsoft Technology Licensing, LLC | Analyzing, indexing and seeking of streaming information |
6577599, | Jun 30 1999 | Oracle America, Inc | Small-scale reliable multicasting |
6584543, | Jul 22 1999 | Round Rock Research, LLC | Reconfigurable memory with selectable error correction storage |
6609223, | Apr 06 1999 | 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 |
6614366, | Sep 23 1998 | Qualcomm Incorporated | Information additive code generator and decoder for communication systems |
6618451, | Feb 13 1999 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Efficient reduced state maximum likelihood sequence estimator |
6631172, | May 01 2000 | WSOU Investments, LLC | Efficient list decoding of Reed-Solomon codes for message recovery in the presence of high noise levels |
6633856, | Jun 15 2001 | Qualcomm Incorporated | Methods and apparatus for decoding LDPC codes |
6641366, | Jan 26 2001 | Wind power generating system with an obstruction lighting or night marking device | |
6643332, | Jul 09 1999 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Method and apparatus for multi-level coding of digital signals |
6677864, | Apr 18 2002 | Telefonaktiebolaget L.M. Ericsson | Method for multicast over wireless networks |
6678855, | Dec 02 1999 | Microsoft Technology Licensing, LLC | Selecting K in a data transmission carousel using (N,K) forward error correction |
6694476, | Jun 02 2000 | MICROSEMI STORAGE SOLUTIONS, INC | Reed-solomon encoder and decoder |
6704370, | Oct 09 1998 | Apple Inc | Interleaving methodology and apparatus for CDMA |
6732325, | Nov 08 2000 | ARRIS ENTERPRISES LLC | Error-correction with limited working storage |
6742154, | May 25 2000 | Ciena Corporation | Forward error correction codes for digital optical network optimization |
6748441, | Dec 02 1999 | Microsoft Technology Licensing, LLC | Data carousel receiving and caching |
6751772, | Jul 06 1999 | Samsung Electronics Co., Ltd.; SAMSUNG ELECTRONICS CO , LTD | Rate matching device and method for a data communication system |
6765866, | Feb 29 2000 | CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC | Link aggregation |
6804202, | Apr 08 1999 | LG Electronics Inc | Radio protocol for mobile communication system and method |
6810499, | Jun 02 2000 | MICROSEMI COMMUNICATIONS, INC | Product code based forward error correction system |
6820221, | Apr 13 2001 | Hewlett Packard Enterprise Development LP | System and method for detecting process and network failures in a distributed system |
6831172, | Nov 11 1998 | SIGMA ITALIA SPA | Cross-linked hyaluronic acids and medical uses thereof |
6849803, | Jan 15 1998 | Arlington Industries, Inc. | Electrical connector |
6850736, | Dec 21 2000 | MATSUSHITA ELECTRIC INDUSTRIAL CO , LTD | Method and apparatus for reception quality indication in wireless communication |
6856263, | Jun 11 2002 | Qualcomm Incorporated | Systems and processes for decoding chain reaction codes through inactivation |
6868083, | Feb 16 2001 | VALTRUS INNOVATIONS LIMITED | Method and system for packet communication employing path diversity |
6876623, | Dec 02 1998 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Tuning scheme for code division multiplex broadcasting system |
6882618, | Sep 07 1999 | Redwood Technologies, LLC | Transmitting apparatus, receiving apparatus, communication system, transmission method, reception method, and communication method |
6895547, | Jul 11 2001 | GLOBALFOUNDRIES U S INC | Method and apparatus for low density parity check encoding of data |
6909383, | Oct 05 2002 | Qualcomm Incorporated | Systematic encoding and decoding of chain reaction codes |
6928603, | Jul 19 2001 | NETGEAR, Inc | System and method for interference mitigation using adaptive forward error correction in a wireless RF data transmission system |
6937618, | May 20 1998 | Sony Corporation | Separating device and method and signal receiving device and method |
6956875, | Jun 19 2002 | MAGNOLIA LICENSING LLC | Technique for communicating variable bit rate data over a constant bit rate link |
6965636, | Feb 01 2000 | ARRIS SOLUTIONS, INC | System and method for block error correction in packet-based digital communications |
6985459, | Aug 21 2002 | QUALCOMM INCORPORATED A DELAWARE CORPORATION | Early transmission and playout of packets in wireless communication systems |
6995692, | Oct 14 2003 | Panasonic Corporation | Data converter and method thereof |
7010052, | Apr 16 2001 | The Ohio University | Apparatus and method of CTCM encoding and decoding for a digital communication system |
7030785, | Jun 11 2002 | Qualcomm Incorporated | Systems and processes for decoding a chain reaction code through inactivation |
7031257, | Sep 22 2000 | WSOU Investments, LLC | 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 |
7057534, | Sep 23 1998 | Qualcomm Incorporated | Information additive code generator and decoder for communication systems |
7068681, | May 10 1999 | Samsung Electronics Co., Ltd. | Apparatus and method for exchanging variable-length data according to radio link protocol in mobile communication system |
7068729, | Dec 21 2001 | Qualcomm Incorporated | Multi-stage code generator and decoder for communication systems |
7072971, | Nov 13 2000 | Qualcomm Incorporated | Scheduling of multiple files for serving on a server |
7073191, | Apr 08 2000 | Oracle America, Inc | Streaming a single media track to multiple clients |
7100188, | May 26 1999 | Virentem Ventures, LLC | Method and apparatus for controlling time-scale modification during multi-media broadcasts |
7110412, | Sep 18 2001 | SBC Technology Resources, INC | Method and system to transport high-quality video signals |
7113773, | May 16 2003 | Qualcomm Incorporated | Reliable reception of broadcast/multicast content |
7139660, | Jul 14 2004 | GM Global Technology Operations LLC | System and method for changing motor vehicle personalization settings |
7139960, | Oct 06 2003 | Qualcomm Incorporated | Error-correcting multi-stage code generator and decoder for communication systems having single transmitters or multiple transmitters |
7143433, | Dec 27 2000 | InfoValve Computing Inc. | Video distribution system using dynamic segmenting of video data files |
7151754, | Sep 22 2000 | Alcatel-Lucent USA Inc | Complete user datagram protocol (CUDP) for wireless multimedia packet networks using improved packet level forward error correction (FEC) coding |
7154951, | Mar 14 1997 | Microsoft Technology Licensing, LLC | Motion video signal encoder and encoding method |
7164370, | Oct 06 2005 | Analog Devices, Inc.; ANALOG DEVICES INC | System and method for decoding data compressed in accordance with dictionary-based compression schemes |
7164882, | Dec 24 2002 | POLTORAK MEDIA LLC | Apparatus and method for facilitating a purchase using information provided on a media playing device |
7168030, | Oct 17 2003 | TELEFONAKTIEBOLAGET LM ERICSSON PUBL | Turbo code decoder with parity information update |
7219289, | Mar 15 2005 | Tandberg Data Corporation | Multiply redundant raid system and XOR-efficient method and apparatus for implementing the same |
7233264, | Sep 23 1998 | Qualcomm Incorporated | Information additive code generator and decoder for communication systems |
7240236, | Mar 23 2004 | Hitachi Vantara Corporation | Fixed content distributed data storage using permutation ring encoding |
7240358, | Dec 08 2000 | Qualcomm Incorporated | Methods and apparatus for scheduling, serving, receiving media-on demand for clients, servers arranged according to constraints on resources |
7243285, | Feb 05 1999 | Qualcomm Incorporated | Systems and methods for broadcasting information additive codes |
7249291, | Feb 15 2002 | Qualcomm Incorporated | System and method for reliably communicating the content of a live data stream |
7254754, | Jul 14 2003 | CAVIUM INTERNATIONAL; MARVELL ASIA PTE, LTD | Raid 3+3 |
7257764, | Nov 03 2003 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | FEC (Forward Error Correction) decoder with dynamic parameters |
7265688, | Jun 11 2002 | Qualcomm Incorporated | Systems and processes for decoding a chain reaction code through inactivation |
7293222, | Jan 29 2003 | Qualcomm Incorporated | Systems and processes for fast encoding of hamming codes |
7295573, | Aug 19 2000 | LG Electronics Inc | Method for inserting length indicator in protocol data unit of radio link control |
7304990, | Feb 03 2000 | BANDWIZ INC | Method of encoding and transmitting data over a communication medium through division and segmentation |
7318180, | Apr 17 1998 | AT&T INTELLECTUAL PROPERTY 1, L P | Method and system for adaptive interleaving |
7320099, | Aug 25 2004 | Fujitsu Limited | Method and apparatus for generating error correction data, and a computer-readable recording medium recording an error correction data generating program thereon |
7363048, | Apr 15 2002 | Nokia Technologies Oy | Apparatus, and associated method, for operating upon data at RLP logical layer of a communication station |
7391717, | Jun 30 2003 | Microsoft Technology Licensing, LLC | Streaming of variable bit rate multimedia content |
7394407, | Oct 05 2002 | Qualcomm Incorporated | Systematic encoding and decoding of chain reaction codes |
7398454, | Dec 21 2004 | Tyco Electronics Subsea Communications LLC | System and method for forward error correction decoding using soft information |
7409626, | Jul 28 2004 | Ikanos Communications, Inc | Method and apparatus for determining codeword interleaver parameters |
7412641, | Dec 01 2003 | Qualcomm Incorporated | Protection of data from erasures using subsymbol based codes |
7418651, | May 07 2004 | Qualcomm Incorporated | File download and streaming system |
7451377, | Oct 06 2003 | Qualcomm Incorporated | Error-correcting multi-stage code generator and decoder for communication systems having single transmitters or multiple transmitters |
7483447, | May 10 1999 | Samsung Electronics Co., Ltd | Apparatus and method for exchanging variable-length data according to radio link protocol in mobile communication system |
7483489, | Jan 30 2002 | III Holdings 6, LLC | Streaming multimedia data over a network having a variable bandwith |
7512697, | Nov 13 2000 | Qualcomm Incorporated | Scheduling of multiple files for serving on a server |
7525994, | Jan 30 2003 | INTELLECTUAL VENTURES ASSETS 3 LLC | Packet data flow identification for multiplexing |
7529806, | Nov 04 1999 | KONINKLIJKE PHILIPS N V | Partitioning of MP3 content file for emulating streaming |
7532132, | Oct 05 2002 | Qualcomm Incorporated | Systematic encoding and decoding of chain reaction codes |
7555006, | Sep 15 2003 | DIRECTV, LLC | Method and system for adaptive transcoding and transrating in a video network |
7559004, | Oct 01 2003 | INNOVATIVE MEMORY SYSTEMS, INC | Dynamic redundant area configuration in a non-volatile memory system |
7570665, | Jun 11 2002 | TELEFONAKTIEBOLAGET LM ERICSSON PUBL | Generation of mixed media streams |
7574706, | Dec 15 2003 | Microsoft Technology Licensing, LLC | System and method for managing and communicating software updates |
7590118, | Dec 23 2003 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Frame aggregation format |
7597423, | Nov 23 2002 | Memjet Technology Limited | Printhead chip with high nozzle areal density |
7613183, | Oct 31 2000 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | System and method for router data aggregation and delivery |
7633413, | Jun 11 2002 | Qualcomm Incorporated | Systems and processes for decoding a chain reaction code through inactivation |
7633970, | May 07 2004 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | MAC header compression for use with frame aggregation |
7644335, | Jun 10 2005 | Qualcomm Incorporated | In-place transformations with applications to encoding and decoding various classes of codes |
7650036, | Oct 16 2003 | Sharp Kabushiki Kaisha | System and method for three-dimensional video coding |
7668198, | Aug 19 2000 | LG Electronics Inc. | Method for inserting length indicator in protocol data unit of radio link control |
7676735, | Jun 10 2005 | Qualcomm Incorporated | Forward error-correcting (FEC) coding and streaming |
7711068, | Dec 21 2001 | Qualcomm Incorporated | Multi-stage code generator and decoder for communication systems |
7720096, | Oct 13 2005 | Microsoft Technology Licensing, LLC | RTP payload format for VC-1 |
7720174, | Dec 21 2001 | Qualcomm Incorporated | Multi-stage code generator and decoder for communication systems |
7721184, | Aug 11 2004 | Qualcomm Incorporated | Method and apparatus for fast encoding of data symbols according to half-weight codes |
7812743, | Sep 23 1998 | Qualcomm Incorporated | Information additive code generator and decoder for communication systems |
7831896, | Sep 11 2003 | Runcom Technologies Ltd | Iterative forward error correction |
7853856, | Oct 06 2004 | Intellectual Ventures I LLC | Forming of error correction data |
7924913, | Sep 15 2005 | Microsoft Technology Licensing, LLC | Non-realtime data transcoding of multimedia content |
7956772, | Aug 20 2007 | Qualcomm Incorporated | Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes |
7961700, | Apr 28 2005 | QUALCOMM INCORPORATED, A DELAWARE CORPORATION | Multi-carrier operation in data transmission systems |
7971129, | May 10 2006 | Qualcomm Incorporated | Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems |
7979769, | Apr 14 2008 | Amazon Technologies, Inc | Method and apparatus for performing random access procedures |
8027328, | Dec 26 2006 | Alcatel Lucent | Header compression in a wireless communication network |
8028322, | Mar 14 2005 | Time Warner Cable Enterprises LLC | Method and apparatus for network content download and recording |
8081716, | Jan 25 2006 | LG Electronics Inc | Digital broadcasting receiving system and method of processing data |
8135073, | Dec 20 2002 | DYNAMIC DATA TECHNOLOGIES LLC | Enhancing video images depending on prior image enhancements |
8185794, | Jan 04 2007 | TELEFONAKTIEBOLAGET LM ERICSSON PUBL | Media container file management |
8185809, | Mar 09 2001 | Qualcomm Incorporated | Multi-output packet server with independent streams |
8239727, | Feb 08 2006 | MAGNOLIA LICENSING LLC | Decoding of raptor codes |
8301725, | Dec 31 2008 | Apple Inc. | Variant streams for real-time or near real-time streaming |
8327403, | Sep 07 2007 | ADEIA GUIDES INC | Systems and methods for providing remote program ordering on a user device via a web server |
8331445, | Jun 01 2004 | Qualcomm Incorporated | Method, apparatus, and system for enhancing robustness of predictive video codecs using a side-channel based on distributed source coding techniques |
8340133, | Oct 05 2005 | LG Electronics Inc. | Method of processing traffic information and digital broadcast system |
8422474, | Mar 11 2010 | Electronics & Telecommunications Research Institute | Method and apparatus for transceiving data in a MIMO system |
8462643, | Oct 25 2002 | Qualcomm Incorporated | MIMO WLAN system |
8544043, | Jul 21 2004 | Qualcomm Incorporated | Methods and apparatus for providing content information to content servers |
8572646, | Apr 07 2000 | TIVO CORPORATION | System and method for simultaneous broadcast for personalized messages |
8615023, | Oct 27 2010 | Electronics and Telecommunications Research Institute | Apparatus and method for transmitting/receiving data in communication system |
8638796, | Aug 22 2008 | Cisco Technology, Inc. | Re-ordering segments of a large number of segmented service flows |
8713624, | Nov 03 1981 | PERSONALIZED MEDIA COMMUNICATIONS, L L C | Signal processing apparatus and methods |
8737421, | Sep 04 2008 | Apple Inc | MAC packet data unit construction for wireless systems |
8812735, | Oct 15 2009 | Sony Corporation | Content reproduction system, content reproduction apparatus, program, content reproduction method, and providing content server |
20010015944, | |||
20010033586, | |||
20020009137, | |||
20020053062, | |||
20020083345, | |||
20020085013, | |||
20020133247, | |||
20020141433, | |||
20020143953, | |||
20020191116, | |||
20030005386, | |||
20030037299, | |||
20030086515, | |||
20030101408, | |||
20030106014, | |||
20030138043, | |||
20030194211, | |||
20030207696, | |||
20030224773, | |||
20040015768, | |||
20040031054, | |||
20040049793, | |||
20040081106, | |||
20040096110, | |||
20040117716, | |||
20040151109, | |||
20040153468, | |||
20040162071, | |||
20040207548, | |||
20040240382, | |||
20040255328, | |||
20050018635, | |||
20050028067, | |||
20050071491, | |||
20050091697, | |||
20050097213, | |||
20050105371, | |||
20050123058, | |||
20050138286, | |||
20050160272, | |||
20050163468, | |||
20050180415, | |||
20050193309, | |||
20050195752, | |||
20050207392, | |||
20050216472, | |||
20050216951, | |||
20050254575, | |||
20060015568, | |||
20060020796, | |||
20060031738, | |||
20060037057, | |||
20060093634, | |||
20060107174, | |||
20060109805, | |||
20060120464, | |||
20060212444, | |||
20060212782, | |||
20060229075, | |||
20060244824, | |||
20060244865, | |||
20060248195, | |||
20060256851, | |||
20070002953, | |||
20070006274, | |||
20070016594, | |||
20070022215, | |||
20070028099, | |||
20070078876, | |||
20070081562, | |||
20070110074, | |||
20070140369, | |||
20070162568, | |||
20070162611, | |||
20070176800, | |||
20070177811, | |||
20070185973, | |||
20070195894, | |||
20070200949, | |||
20070201549, | |||
20070204196, | |||
20070230568, | |||
20070233784, | |||
20070255844, | |||
20070277209, | |||
20080010153, | |||
20080034273, | |||
20080052753, | |||
20080058958, | |||
20080059532, | |||
20080066136, | |||
20080075172, | |||
20080086751, | |||
20080101478, | |||
20080134005, | |||
20080170564, | |||
20080170806, | |||
20080172430, | |||
20080172712, | |||
20080181296, | |||
20080189419, | |||
20080192818, | |||
20080215317, | |||
20080232357, | |||
20080243918, | |||
20080256418, | |||
20080281943, | |||
20080285556, | |||
20080303893, | |||
20080313191, | |||
20090003439, | |||
20090019229, | |||
20090031199, | |||
20090043906, | |||
20090055705, | |||
20090067551, | |||
20090083806, | |||
20090089445, | |||
20090092138, | |||
20090100496, | |||
20090103523, | |||
20090106356, | |||
20090125636, | |||
20090150557, | |||
20090158114, | |||
20090164653, | |||
20090189792, | |||
20090201990, | |||
20090204877, | |||
20090210547, | |||
20090222873, | |||
20090248697, | |||
20090257508, | |||
20090287841, | |||
20090297123, | |||
20090300203, | |||
20090300204, | |||
20090307565, | |||
20090319563, | |||
20090328228, | |||
20100011061, | |||
20100011117, | |||
20100011274, | |||
20100020871, | |||
20100023525, | |||
20100049865, | |||
20100061444, | |||
20100067495, | |||
20100131671, | |||
20100153578, | |||
20100174823, | |||
20100189131, | |||
20100198982, | |||
20100211690, | |||
20100235472, | |||
20100235528, | |||
20100257051, | |||
20100318632, | |||
20110019769, | |||
20110055881, | |||
20110083144, | |||
20110096828, | |||
20110103519, | |||
20110119394, | |||
20110119396, | |||
20110216541, | |||
20110231519, | |||
20110231569, | |||
20110238789, | |||
20110239078, | |||
20110258510, | |||
20110268178, | |||
20110280311, | |||
20110280316, | |||
20110299629, | |||
20110307545, | |||
20110307581, | |||
20120013746, | |||
20120016965, | |||
20120020413, | |||
20120023249, | |||
20120023254, | |||
20120033730, | |||
20120042050, | |||
20120042089, | |||
20120042090, | |||
20120047280, | |||
20120099593, | |||
20120151302, | |||
20120185530, | |||
20120202535, | |||
20120207068, | |||
20120208580, | |||
20120210190, | |||
20120317305, | |||
20130002483, | |||
20130007223, | |||
20130067295, | |||
20130091251, | |||
20130246643, | |||
20130254634, | |||
20130287023, | |||
20140009578, | |||
20140380113, | |||
CN101390399, | |||
CN101729857, | |||
CN1338839, | |||
CN1425228, | |||
CN1481643, | |||
CN1708934, | |||
CN1714577, | |||
CN1806392, | |||
CN1819661, | |||
EP669587, | |||
EP701371, | |||
EP784401, | |||
EP853433, | |||
EP854650, | |||
EP903955, | |||
EP986908, | |||
EP1051027, | |||
EP1124344, | |||
EP1241795, | |||
EP1298931, | |||
EP1406452, | |||
EP1455504, | |||
EP1665539, | |||
EP1670256, | |||
EP1700410, | |||
EP1755248, | |||
EP2071827, | |||
JP11041211, | |||
JP11112479, | |||
JP11164270, | |||
JP2000151426, | |||
JP2000216835, | |||
JP2000307435, | |||
JP2000353969, | |||
JP2000513164, | |||
JP2001036417, | |||
JP2001094625, | |||
JP2001223655, | |||
JP2001251287, | |||
JP2001274776, | |||
JP2001274855, | |||
JP2002073625, | |||
JP2002204219, | |||
JP2002543705, | |||
JP2003092564, | |||
JP2003174489, | |||
JP2003256321, | |||
JP2003318975, | |||
JP2003319012, | |||
JP2003333577, | |||
JP2003507985, | |||
JP2003510734, | |||
JP2004048704, | |||
JP2004070712, | |||
JP2004135013, | |||
JP2004165922, | |||
JP2004192140, | |||
JP2004193992, | |||
JP2004289621, | |||
JP2004343701, | |||
JP2004348824, | |||
JP2004362099, | |||
JP2004516717, | |||
JP2004529533, | |||
JP2005094140, | |||
JP2005136546, | |||
JP2005204170, | |||
JP2005223433, | |||
JP2005277950, | |||
JP2006074335, | |||
JP2006074421, | |||
JP2006115104, | |||
JP2006174032, | |||
JP2006174045, | |||
JP2006186419, | |||
JP2006287422, | |||
JP2006319743, | |||
JP2006503463, | |||
JP2006505177, | |||
JP2006506926, | |||
JP2006519517, | |||
JP2007013675, | |||
JP2007089137, | |||
JP2007158592, | |||
JP2007174170, | |||
JP2007228205, | |||
JP2007520961, | |||
JP2008011404, | |||
JP2008016907, | |||
JP2008283232, | |||
JP2008283571, | |||
JP2008508761, | |||
JP2008508762, | |||
JP2008543142, | |||
JP2009027598, | |||
JP2009171558, | |||
JP2009277182, | |||
JP2009522921, | |||
JP2009522922, | |||
JP2009527949, | |||
JP2009544991, | |||
JP2010539832, | |||
JP2011087103, | |||
JP7183873, | |||
JP8186570, | |||
JP8289255, | |||
JP9252253, | |||
KR100809086, | |||
KR1020030071815, | |||
KR1020030074386, | |||
KR20040107152, | |||
KR20040107401, | |||
KR20050009376, | |||
KR20080083299, | |||
KR20090098919, | |||
RE43741, | Oct 05 2002 | Qualcomm Incorporated | Systematic encoding and decoding of chain reaction codes |
RU2189629, | |||
RU2265960, | |||
RU2290768, | |||
RU2297663, | |||
RU2312390, | |||
RU2357279, | |||
RU99117925, | |||
TW246841, | |||
TW354908, | |||
TW355168, | |||
WO14921, | |||
WO52600, | |||
WO157667, | |||
WO158130, | |||
WO158131, | |||
WO2063461, | |||
WO227988, | |||
WO2004015948, | |||
WO2004019521, | |||
WO2004030273, | |||
WO2004040831, | |||
WO2004047455, | |||
WO2005041421, | |||
WO2005078982, | |||
WO2006060036, | |||
WO2007078253, | |||
WO2007090834, | |||
WO2008011549, | |||
WO2008054100, | |||
WO2008086313, | |||
WO2008144004, | |||
WO2009143741, | |||
WO2011059286, | |||
WO2011102792, | |||
WO3046742, | |||
WO3105484, | |||
WO2004036824, | |||
WO2004047019, | |||
WO2004088988, | |||
WO2004109538, | |||
WO2005107123, | |||
WO2006013459, | |||
WO2006036276, | |||
WO2006057938, | |||
WO2006084503, | |||
WO2006116102, | |||
WO2006135878, | |||
WO2007098397, | |||
WO2007098480, | |||
WO2008023328, | |||
WO2008085013, | |||
WO2008131023, | |||
WO2009065526, | |||
WO2009137705, | |||
WO2010085361, | |||
WO2011038013, | |||
WO2011038034, | |||
WO2011070552, | |||
WO2012021540, | |||
WO2012109614, | |||
WO9634463, | |||
WO9750183, | |||
WO9804973, | |||
WO9832256, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Feb 26 2010 | Qualcomm Incorporated | (assignment on the face of the patent) | / | |||
Mar 12 2010 | GOMEZ-BARQUERO, DAVID | DIGITAL FOUNTAIN, INC | CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY TO DIGITAL FOUNTAIN, INC PREVIOUSLY RECORDED ON REEL 024136 FRAME 0030 ASSIGNOR S HEREBY CONFIRMS THE ASSIGNEE IS DIGITAL FOUNTAIN, INC | 028383 | /0702 | |
Mar 12 2010 | SERRANO, DAVID GOZALVEZ | DIGITAL FOUNTAIN, INC | CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY TO DIGITAL FOUNTAIN, INC PREVIOUSLY RECORDED ON REEL 024136 FRAME 0030 ASSIGNOR S HEREBY CONFIRMS THE ASSIGNEE IS DIGITAL FOUNTAIN, INC | 028383 | /0702 | |
Mar 12 2010 | GOMEZ-BARQUERO, DAVID | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 024136 | /0030 | |
Mar 12 2010 | SERRANO, DAVIS GOZALVEZ | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 024136 | /0030 | |
Mar 16 2010 | STOCKHAMMER, THOMAS | DIGITAL FOUNTAIN, INC | CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY TO DIGITAL FOUNTAIN, INC PREVIOUSLY RECORDED ON REEL 024136 FRAME 0030 ASSIGNOR S HEREBY CONFIRMS THE ASSIGNEE IS DIGITAL FOUNTAIN, INC | 028383 | /0702 | |
Mar 16 2010 | STOCKHAMMER, THOMAS | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 024136 | /0030 | |
Apr 24 2018 | DIGITAL FOUNTAIN, INC | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 045635 | /0325 |
Date | Maintenance Fee Events |
Oct 28 2019 | REM: Maintenance Fee Reminder Mailed. |
Apr 13 2020 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Mar 08 2019 | 4 years fee payment window open |
Sep 08 2019 | 6 months grace period start (w surcharge) |
Mar 08 2020 | patent expiry (for year 4) |
Mar 08 2022 | 2 years to revive unintentionally abandoned end. (for year 4) |
Mar 08 2023 | 8 years fee payment window open |
Sep 08 2023 | 6 months grace period start (w surcharge) |
Mar 08 2024 | patent expiry (for year 8) |
Mar 08 2026 | 2 years to revive unintentionally abandoned end. (for year 8) |
Mar 08 2027 | 12 years fee payment window open |
Sep 08 2027 | 6 months grace period start (w surcharge) |
Mar 08 2028 | patent expiry (for year 12) |
Mar 08 2030 | 2 years to revive unintentionally abandoned end. (for year 12) |