WO2011109653A1 - Agrégation en bloc d'objets dans un système de communication - Google Patents

Agrégation en bloc d'objets dans un système de communication Download PDF

Info

Publication number
WO2011109653A1
WO2011109653A1 PCT/US2011/027078 US2011027078W WO2011109653A1 WO 2011109653 A1 WO2011109653 A1 WO 2011109653A1 US 2011027078 W US2011027078 W US 2011027078W WO 2011109653 A1 WO2011109653 A1 WO 2011109653A1
Authority
WO
WIPO (PCT)
Prior art keywords
source
individual
symbols
data
aggregate
Prior art date
Application number
PCT/US2011/027078
Other languages
English (en)
Inventor
Michael G. Luby
Mark Watson
Original Assignee
Qualcomm Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Incorporated filed Critical Qualcomm Incorporated
Priority to EP20110709543 priority Critical patent/EP2543155B1/fr
Priority to JP2012556247A priority patent/JP5694390B2/ja
Priority to CN201180012012.0A priority patent/CN102804661B/zh
Publication of WO2011109653A1 publication Critical patent/WO2011109653A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3761Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/611Specific encoding aspects, e.g. encoding by means of decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6356Error control coding in combination with rate matching by repetition or insertion of dummy data, i.e. rate reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving

Definitions

  • 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.
  • FEC forward error correcting
  • a wireless network might be set up to deliver files or streams from a stationary transmitter to a large or indeterminate number of portable or mobile receivers either as a broadcast or as multicast where the receivers are constrained in their computing power, memory size, available electrical power, antenna size, device size, and other design constraints.
  • the design should minimize the amount of transmission time needed to deliver data to potentially a large population of receivers, where individual receivers might be turned on and off at unpredictable times, move in and out of range, incur losses due to link errors, cell changes, congestion in cells forcing lower priority file or stream packets to be temporarily dropped, etc.
  • a file, stream, or other block of data to be transmitted over a packet network is partitioned into equal size input symbols and input symbols are placed into consecutive packets.
  • the "size" of an input symbol can be measured in bits, whether or not the input symbol is actually broken into a bit stream, where an input symbol has a size of M bits when the input symbol is selected from an alphabet of 2 M symbols.
  • a packet oriented coding scheme might be suitable.
  • a file transmission is called reliable if it allows the intended recipient to recover an exact copy of the original file even in the face of erasures in the network.
  • a stream transmission is called reliable if it allows the intended recipient to recover an exact copy of each part of the stream in a timely manner even in the face of erasures in the network.
  • Both file transmission and stream transmission can also be somewhat reliable, in the sense that some parts of the file or stream are not recoverable or for streaming, if some parts of the stream are not recoverable in a timely fashion.
  • Packet loss often occurs because sporadic congestion causes the buffering mechanism in a router to reach its capacity, forcing it to drop incoming packets. Protection against erasures during transport has been the subject of much study.
  • One property of the output symbols produced by a chain reaction encoder is that a receiver is able to recover the original file or block of the original stream as soon as enough output symbols have been received. Specifically, to recover the original K input symbols with a high probability, the receiver needs approximately K+A output symbols. The ratio A/K is called the "relative reception overhead.” The relative reception overhead depends on the number K of input symbols, and on the reliability of the decoder.
  • a relative reception overhead of 5% ensures that the decoder successfully decodes the input file or block of the stream with a probability of at least 1-10 ⁇ 8 ; and where K is equal to 10,000, a relative reception overhead of 15% ensures the same success probability of the decoder.
  • the relative reception overhead of chain reaction codes can be computed as (13*sqrt(AT)+200)/AT, where sqrt(AT) is the square root of the number of input symbols K. In this embodiment, the relative reception overhead of chain reaction codes tends to be larger for small values of K.
  • Luby II, Luby III, and Shokrollahi provide teachings of systems and methods that can be employed in certain embodiments described in this disclosure. It is to be understood, however, that the Luby II, Luby III, and Shokrollahi systems and methods are not required of the apparatus, systems, and methods described in this disclosure, and many other variations, modifications, or alternatives can also be used.
  • Multi-stage chain reaction codes such as those described in Shokrollahi and developed by Digital Fountain, Inc. under the trade name "Raptor” codes.
  • Multi-stage chain reaction codes are used, for example, in an encoder that receives input symbols from a source file or source stream, generates intermediate symbols therefrom and encodes the intermediate symbols using chain reaction codes. More particularly, a plurality of redundant symbols is generated from an ordered set of input symbols to be transmitted.
  • a plurality of output symbols are generated from a combined set of symbols including the input symbols and the redundant symbols, wherein the number of possible output symbols is much larger than the number of symbols in the combined set of symbols, wherein at least one output symbol is generated from more than one symbol in the combined set of symbols and from less than all of the symbols in the combined set of symbols, and such that the ordered set of input symbols can be regenerated to a desired degree of accuracy from any predetermined number, N, of the output symbols.
  • Embodiments of such a method may include one or more of the following features.
  • Bytes of data of each individual object j are arranged consecutively within the S( ) source symbols for the individual object j, starting from source symbol 0 to source symbol S0 ' )-1 ⁇
  • the method further includes padding with zero values one or more source symbols of the m individual objects.
  • the method further includes encoding the Z source blocks of the aggregate object to generate repair symbols.
  • the method further includes mapping the source symbols to source packets and mapping the repair symbols to repair packets.
  • the method further includes transmitting one or more of the source packets and the repair packets to the receiver.
  • An exemplary method of recovering an individual object mapped to source symbols for data delivered from a transmitter to a receiver in a communication system, the individual object aggregated with other individual objects in an aggregate object, the aggregate object partitioned into one or more source blocks, the source symbols of the individual object arranged consecutively within consecutive source blocks of the aggregate object, includes: receiving one or more packets of data, each packet of data including at least one source symbol of the individual object or at least one repair symbol containing repair data for one of the source blocks of the aggregate object, the source block including at least one source symbol of the individual object; and recovering the individual object using the one or more received packets of data.
  • Embodiments of such a method may include the feature wherein recovering the individual object further includes recovering the individual object using the one or more received packets of data and one or more previously obtained source symbols of the individual object.
  • Embodiments of such an apparatus may include one or more of the following features.
  • Bytes of data of each individual object j are arranged consecutively within the S( ) source symbols for the individual object j, starting from source symbol 0 to source symbol S0 ' )-1 ⁇
  • the processor is further configured to pad with zero values one or more source symbols of the m individual objects.
  • the apparatus further includes an encoder communicatively coupled to the processor and configured to encode the Z source blocks of the aggregate object to generate repair symbols.
  • the processor is further configured to map the source symbols to source packets and map the repair symbols to repair packets.
  • the apparatus further includes a transmitter configured to transmit one or more of the source packets and the repair packets to the receiver.
  • An apparatus configured to recover an individual object mapped to source symbols for data delivered from a transmitter in a communication system, the individual object aggregated with other individual objects in an aggregate object, the aggregate object partitioned into one or more source blocks, the source symbols of the individual object arranged consecutively within consecutive source blocks of the aggregate object, includes: a receiver configured to receive one or more packets of data, each packet of data including at least one source symbol of the individual object or at least one repair symbol containing repair data for one of the source blocks of the aggregate object, the source block including at least one source symbol of the individual object; and a processor communicatively coupled to the receiver and configured to recover the individual object using the one or more received packets of data.
  • Embodiments of such an apparatus may include the feature wherein the processor is further configured to recover the individual object using the one or more received packets of data and one or more previously obtained source symbols of the individual object.
  • Embodiments of such a product may include one or more of the following features.
  • the processor-readable medium is further configured to cause the processor to consecutively arrange bytes of data of each individual object j within the S(j) source symbols for the individual object j, starting from source symbol 0 to source symbol S(j)- 1.
  • the processor-readable medium is further configured to cause the processor to pad with zero values one or more source symbols of the m individual objects.
  • the processor-readable medium is further configured to cause the processor to encode the Z source blocks of the aggregate object to generate repair symbols.
  • the processor-readable medium is further configured to cause the processor to map the source symbols to source packets and to map the repair symbols to repair packets.
  • the processor-readable medium is further configured to cause the processor to transmit one or more of the source packets and the repair packets to the receiver.
  • a computer program product for recovering an individual object mapped to source symbols for data delivered from a transmitter to a receiver in a communication system, the individual object aggregated with other individual objects in an aggregate object, the aggregate object partitioned into one or more source blocks, the source symbols of the individual object arranged consecutively within consecutive source blocks of the aggregate object includes a processor-readable medium storing processor-readable instructions configured to cause a processor to: receive one or more packets of data, each packet of data including at least one source symbol of the individual object or at least one repair symbol containing repair data for one of the source blocks of the aggregate object, the source block including at least one source symbol of the individual object; and recover the individual object using the one or more received packets of data.
  • Embodiments of such a product may include the feature wherein the
  • processor-readable medium is further configured to cause the processor to recover the individual object using the one or more received packets of data and one or more previously obtained source symbols of the individual object.
  • Embodiments of such a system may include one or more of the following features.
  • Bytes of data of each individual object j are arranged consecutively within the S( ) source symbols for the individual object j, starting from source symbol 0 to source symbol S0 ' )-1 ⁇
  • the system further includes means for padding with zero values one or more source symbols of the m individual objects.
  • the system further includes means for encoding the Z source blocks of the aggregate object to generate repair symbols.
  • the system further includes means for mapping the source symbols to source packets and mapping the repair symbols to repair packets.
  • the system further includes means for transmitting one or more of the source packets and the repair packets to the receiver.
  • a system configured to recover an individual object mapped to source symbols for data delivered from a transmitter to a receiver in a communication system, the individual object aggregated with other individual objects in an aggregate object, the aggregate object partitioned into one or more source blocks, the source symbols of the individual object arranged consecutively within consecutive source blocks of the aggregate object, includes: means for receiving one or more packets of data, each packet of data including at least one source symbol of the individual object or at least one repair symbol containing repair data for one of the source blocks of the aggregate object, the source block including at least one source symbol of the individual object; and means for recovering the individual object using the one or more received packets of data.
  • Embodiments of such a system may include the feature wherein the means for recovering the individual object further include means for recovering the individual object using the one or more received packets of data and one or more previously obtained source symbols of the individual object.
  • Items and/or techniques described herein may provide one or more of the following capabilities. Many small individual objects are aggregated into a larger aggregate object partitioned into multiple source blocks such that the network efficiency of the aggregation is obtained even with different loss or error patterns over the different transmitted FEC encodings of the source blocks. File delivery with block aggregation works efficiently when there is a mixed population of receivers that are missing different individual objects from the aggregate object and/or different amounts of the aggregate object. File delivery also works efficiently when the working memory needed for encoding and decoding is smaller than the size of the aggregate object.
  • Source blocks are processed sequentially in the receiver, reducing or minimizing the amount of data each receiver needs to receive to reconstruct the aggregate object.
  • FIG. 1 is a functional illustration of block aggregation of individual objects.
  • FIG. 2 is a block flow diagram of a process of mapping individual objects to source symbols for delivering data from a transmitter to a receiver in a communication system.
  • FIG. 3 is a block flow diagram of a process of recovering an individual object mapped to source symbols for data delivered from a transmitter to a receiver in a communication system.
  • Techniques described herein provide mechanisms for block aggregation of individual objects for delivering data from a transmitter to a receiver in a
  • Individual objects are mapped to source symbols for delivering data.
  • the individual objects are aggregated into an aggregate object, including calculating for each individual object a number of source symbols for containing data of the individual object.
  • the aggregate object is then partitioned into one or more source blocks, including calculating a number of source symbols of each individual object in each source block.
  • the mapping of individual objects is such that the source symbols for each individual object are arranged consecutively within consecutive source blocks. The consequence of the consecutive arrangement is that, whenever a first source symbol precedes a second source symbol within an individual object, the second source symbol is mapped to a source block that is not earlier in the ordering of source blocks than the source block to which the first source symbol is mapped.
  • both source symbols are mapped to the same source block, the first source symbol precedes the second source symbol in the source block, and no source symbols of any other individual objects will be positioned between the first and second source symbols within the source block.
  • Bytes of data of each individual object are arranged consecutively within the source symbols for the individual object, starting from the first source symbol to the last source symbol.
  • the source blocks of the aggregate object are encoded to generate repair symbols.
  • the source symbols are mapped to source packets, while the repair symbols are mapped to repair packets.
  • One or more of the source packets and the repair packets are transmitted to the receiver. The distribution of the individual objects across the different source blocks ensure that the individual objects can be efficiently
  • ALC Asynchronous Layered Coding
  • the described techniques are not limited in application to ALC.
  • the described techniques can apply, for example, to other packet-based network systems using broadcast, multicast, or unicast transmission for content delivery.
  • Some examples of systems that could benefit from the described techniques include 3rd Generation Partnership Project (3 GPP) Multimedia Broadcast and Multicast Services (MBMS), Digital Video Broadcasting - Handheld (DVB-H), Digital Video Broadcasting - Satellite services to Handhelds (DVB-SH), Advanced Television Systems Committee (ATSC) Mobile, Digital Video Broadcasting Internet Protocol television (DVB IPTV), and MediaFLO (e.g., for file delivery service).
  • 3 GPP 3rd Generation Partnership Project
  • MBMS Multimedia Broadcast and Multicast Services
  • DVD-H Digital Video Broadcasting - Handheld
  • DVD-SH Digital Video Broadcasting - Satellite services to Handhelds
  • ATSC Advanced Television Systems Committee
  • Mobile Digital Video Broadcasting Internet Protocol television
  • MediaFLO MediaFLO
  • Characteristic 1 provides that data packets be indexed in units of symbols and not in units of bytes. This would follow the same indexing scheme as defined for file delivery of single objects.
  • each data packet can have an associated Encoding Symbol ID (ESI), which refers to a start symbol for the data contained within the data packet.
  • ESE Encoding Symbol ID
  • Characteristic 2 provides that file delivery with block aggregation should allow systematic FEC codes to be used and allow received source packets as well as repair packets to be used to reconstruct the aggregate object.
  • Characteristic 3 provides that file delivery with block aggregation should work efficiently when there is a mixed population of receivers that are missing different individual objects from the aggregate object and/or different amounts of the aggregate object.
  • a particular receiver may already have some of the individual objects of the aggregate object either in whole or in part.
  • the amount of repair packets the particular receiver would need should be reduced by the aggregate size of those parts of the individual objects the receiver already has relative to the amount of repair packets the receiver would need if the receiver did not already have those parts of the individual objects.
  • Characteristic 4 provides that file delivery with block aggregation should work efficiently when the working memory needed for encoding and decoding is smaller than the size of the aggregate object. That is, the block aggregation scheme should support partitioning the aggregate object into more than one source block. Furthermore, similar to Characteristic 1, the partitioning of the aggregate object into multiple source blocks should be automatic and optimized. In particular, as with single objects, reception of approximately the same amount of data from each of the source blocks should allow efficient reconstruction of the aggregate object independent of which individual objects that are part of the aggregate object are missing at the receiver. Thus, the block aggregation should allow efficient reconstruction of individual objects within the aggregate object by processing source blocks sequentially in the receiver, reducing or minimizing the amount of data each receiver needs to receive to reconstruct the aggregate object.
  • Characteristic 5 provides that receivers without FEC should be able to receive sent source packets and use them directly to recover as much of the aggregate object as possible and discard any repair packets.
  • Characteristic 6 provides that sent source packets for individual objects should be used efficiently in combination with repair packets for the aggregate object to reconstruct the aggregate object efficiently.
  • Characteristic 7 provides that receivers that are only missing some or some parts of the individual objects that are part of the aggregate object are able to recover the missing individual objects with as little data reception as possible. Further, receivers that have out-dated versions of some of the individual objects that are part of the aggregate object are able to obtain newer versions of the individual objects with as little data reception as possible.
  • Characteristic 6 provides that source packets sent for individual objects within the aggregate object should be used efficiently together with the repair packets for the aggregate object; and Characteristic 1 provides that these data packets for individual objects use symbol indexing.
  • Characteristics 1 and 6 together provide that each individual object within the aggregate object starts at a source symbol boundary, and furthermore, that each source symbol within the aggregate object contains data for only one individual object.
  • Characteristic 7 also leads to the constraint that each individual object within the aggregate object starts at a symbol boundary.
  • Characteristics 4 and 7 together provide that the source symbols for individual objects be partitioned as equally as possible across the source blocks of the aggregate object, and that the source symbols for the first part of an individual object should be part of the first source block, and the source symbols for the last part of the individual object should be part of the last source block.
  • Characteristics 1 and 4 together provide that information about the aggregate object encoding needed by the FEC decoder (e.g., the FEC Object Transmission Information (OTI) of the ALC protocol) be as minimal as possible, and the partitioning scheme automatically aligns individual objects and their symbols within the aggregate object and, in the case of multiple source blocks, across source blocks.
  • OTI FEC Object Transmission Information
  • the partitioning scheme automatically determines the positions of the individual objects within the aggregate object, where the individual objects are aligned on symbol boundaries.
  • Characteristic 7 provides that the information about the aggregate object encoding needed by the FEC decoder should preferably indicate which version of each individual object is contained in the aggregate object. This version information can then be used by receivers to determine which individual objects of the aggregate object they already have. Characteristic 3 then provides that the receivers should need to receive fewer repair packets (e.g., by the size of those parts of the individual objects already known) in order to recover the aggregate object than the number of repair packets that would be needed if the receivers did not already have those parts of the individual objects.
  • the described techniques aggregate multiple individual objects into a larger aggregate object, which can be partitioned into one or more source blocks prior to FEC encoding.
  • the individual objects are automatically aligned within the aggregate object, and within the multiple source blocks if applicable, such that the above desired characteristics are achieved.
  • Repair symbols are generated by the FEC encoding for each source block of the aggregate object.
  • the source symbols and the repair symbols are transmitted within the payload of source packets and repair packets, respectively, to one or more receivers, e.g., through broadcast or multicast.
  • the information about the encoding of the aggregate object needed by the FEC decoder includes the number m of individual objects within the aggregate object, the sizes in bytes B(l), B(2),. .. , B(m) of the individual objects, the symbol size T in bytes, and the number Z of source blocks for the aggregate object.
  • An indication of the ordering of the individual objects is also provided, where the first individual object is referred to as object 1 , the second individual object is referred to as object 2, and so on.
  • the individual objects can be ordered such that related individual objects that all might be used by a same application are grouped and ordered consecutively.
  • a Uniform Resource Identifier (URI) and/or a Transport Object ID (TOI) for each individual object might be included in the FEC OTI, allowing the receiver to know what the individual object is and whether or not the receiver already has an exact copy of the individual object.
  • Repair packets sent for the aggregate object can also have associated identifiers (e.g., TOIs), which differ from any of the identifiers for the individual objects within the aggregate object.
  • Each source packet contains an object identifier (e.g., a TOI), identifying the individual object associated with the data in the payload, and a data identifier (e.g., a Source FEC Payload ID of the ALC protocol), identifying the source data carried in the payload.
  • the data identifier can indicate the starting index of the first source symbol contained in the source packet (e.g., the ESI). If there is more than one symbol in the source packet, the multiple symbols need to be consecutively indexed.
  • the Source FEC Payload ID needs to be that associated with the FEC Encoding ID (e.g., a two byte Source Block Number (SBN) followed by a two byte ESI).
  • SBN Source Block Number
  • the FEC OTI for each individual object needs to be received by receivers, and the symbol size needs to be the same for the individual objects as the symbol size specified for the aggregate object (i.e., the value of T).
  • the source block structure may differ between the individual objects and the aggregate object.
  • Each repair packet for the aggregate object contains an object identifier (e.g., a TOI), identifying the aggregate object, and a data identifier (e.g., a Repair FEC Payload ID of the ALC protocol), identifying the repair data carried in the payload.
  • the data identifier can be, for example, a SBN that identifies the particular source block within the aggregate object and an ESI that identifies the repair symbols carried in the payload that are generated from the identified source block.
  • FIG. 1 is a functional illustration of block aggregation of individual objects.
  • the parameters (i.e., m, B(j), T, and Z) chosen for the example of FIG. 1 are arbitrary and not limiting.
  • the process 200 is exemplary only and not limiting.
  • the process 200 can be altered, e.g., by having stages added, removed, or rearranged.
  • a processor receives m individual objects, where m > 1.
  • the m individual objects are ordered from object 1 to object m, where each individual object j has a byte size of B(j).
  • These individual objects 110 are just examples; individual objects can be greater or smaller in size.
  • the processor aggregates the m individual objects into an aggregate object.
  • the bytes of data of each individual object j are arranged consecutively within the S(j) source symbols for the individual object j, starting from source symbol 0 to source symbol S(j)-1.
  • One or more source symbols of the m individual objects can be padded with zero values.
  • Source symbol 0 of individual object j corresponds to the first T bytes of individual object j;
  • source symbol 1 of individual object j corresponds to the second T bytes of individual object j; etc.
  • each individual object j includes zero padding 125 appended to the end of the source data of the individual object j when the individual objects 110 are aggregated into the aggregate object 120. If an individual object j has a byte size B(j) that is an integer multiple of the symbol size T in bytes, the individual object j does not need zero padding.
  • the processor partitions the aggregate object into Z source blocks, where Z > 1.
  • NSS(j, k) ceil((SS0H)/Z) - ceil((SS0 ' -lH)/Z), where SSO) is defined below.
  • the S( ) source symbols for individual object j are arranged consecutively within consecutive source blocks, starting at the lowest indexed source block for which NSSfi, k) > 0 and proceeding to the highest indexed source block for which NSSfi, k) > 0. If the number of source symbols SO) for an individual object j is less than the number of source blocks Z, not all the Z source blocks will contain a source symbol for that individual object j.
  • an encoder e.g., an FEC encoder on the source transmitter side of the communication link
  • Each repair symbol contains repair data for the source symbols of the respective encoded source block of the aggregate object.
  • the processor maps the source symbols to source packets and maps the repair symbols to repair packets.
  • each packet contains an object identifier and a data identifier.
  • a source packet can contain one or more source symbols, while a repair packet can contain one or more repair symbols.
  • a transmitter transmits one or more of the source packets and the repair packets to a receiver.
  • the packets can be transmitted to large numbers of receivers through a broadcast or multicast service.
  • a process 300 of recovering an individual object mapped to source symbols for data delivered from a transmitter to a receiver in a communication system includes the stages shown.
  • the process 300 is exemplary only and not limiting.
  • the process 300 can be altered, e.g., by having stages added, removed, or rearranged.
  • the individual object was aggregated with other individual objects in an aggregate object, where the aggregate object was partitioned into one or more source blocks.
  • the source symbols of the individual object were arranged consecutively within consecutive source blocks of the aggregate object.
  • a receiver e.g., a receiver on a receiving side of a
  • a processor e.g., a processor on the receiving side of the communication link
  • the receiving side may have previously obtained the one or more source symbols of the individual object, for example, from a previous broadcast or from previous retrieval over unicast.
  • Property A is that the source symbols for each individual object j are as equally distributed as possible across the source blocks. That is, for each individual object j, the number of source symbols of individual object j in each of the source blocks is either ceil(S(j)/Z) or floor(S(j)/Z).
  • Property B is that the source symbols for the aggregate object are as equally distributed as possible across the source blocks. That is, the number of source symbols for the aggregate object in each of the source blocks is either or floor(&S * (m)/Z).
  • Property C is that the source symbols for the individual objects within a source block are in the same order as the original order of individual objects. However, as described above, if S(j) ⁇ Z, then not all source blocks of the aggregate object will contain symbols for individual object j.
  • Property D is that the source symbols for each individual object j across source blocks are in the same order as they are indexed within the individual object j. [0074] These are all desirable properties. Property A ensures that an incremental update can be efficient. For example, a receiver might already have some of the individual objects of the aggregate object but might be missing other individual objects of the aggregate object. Because the source packets for the missing individual objects are spread almost equally across the source blocks, the receiver needs to receive approximately the same number of repair packets generated from each source block to recover the entire aggregate object. In particular, if the receiver is missing X individual objects, then the disparity across source blocks between the number of source symbols the receiver is missing from each source block is at most X. In general, the expected disparity is closer to sqrt( ).
  • a good strategy for a sender sending over a channel that may have burst losses is to generate and send only repair packets for the aggregate object, where the sender sends repair packets in rounds. That is, for each round, one repair packet for each of the Z source blocks is sent, where the repair packet for a source block includes one or more repair symbols generated from that source block.
  • Property B ensures that the encoding and decoding of source blocks for an aggregate object need only consider two sizes of source blocks, which has at least a couple of good consequences: (1) the generation of repair symbols from a source block at the encoder need only consider two different patterns of repair packets to generate for the two different source block sizes; (2) the amount of memory needed at the encoder and decoder is almost identical for encoding or decoding each source block; and (3) if the receiver has none of the individual objects of the aggregate object, then the disparity across source blocks between the number of source symbols the receiver is missing from each source block is at most one.
  • Properties C and D ensure that if the receiver decodes the source blocks in sequential order, the individual objects will be recovered from beginning to end.
  • One advantage of this is that the beginnings of individual objects can be fed into other applications after the first source block is decoded, while the second source block is being decoded.
  • Properties C and D also ensure that the recovered portions of individual objects are in the same order as the original order of the individual objects. This allows individual objects within an aggregate object to be ordered in such a way that related individual objects that, for example, all might be used by the same application are consecutive. Desired Characteristics of Block Aggregation Achieved
  • Characteristic 1 provides that data packets be indexed in units of symbols and not in units of bytes.
  • the block aggregation techniques achieve Characteristic 1.
  • the FEC Payload ID of both source packets and repair packets would contain an ESI that identifies which symbols the packets carry.
  • Characteristic 2 provides that file delivery with block aggregation should allow systematic FEC codes to be used and allow received source packets as well as repair packets to be used to reconstruct the aggregate object.
  • the block aggregation techniques achieve Characteristic 2, allowing source packets to be sent for individual objects within the aggregate object and ensuring that repair packets are useful to reconstruct efficiently any missing source symbols of the aggregate object.
  • Characteristic 3 provides that file delivery with block aggregation should work efficiently when there is a mixed population of receivers that are missing different individual objects from the aggregate object either in whole or in part and/or different amounts of the aggregate object.
  • the disclosed partitioning of the individual objects across source blocks of the aggregate object achieves Characteristic 3
  • Characteristic 4 provides that the block aggregation scheme should support partitioning the aggregate object into more than one source block. Furthermore, the partitioning of the aggregate object into multiple source blocks should be automatic and optimized. The block aggregation should allow efficient reconstruction of individual objects within the aggregate object by processing source blocks sequentially in the receiver, reducing or minimizing the amount of data each receiver needs to receive to reconstruct the aggregate object. The ability in the block aggregation techniques to specify more than one source block and the partitioning of the individual objects across source blocks of the aggregate object achieve Characteristic 4.
  • Characteristic 5 provides that receivers without FEC should be able to receive sent source packets and use them directly to recover as much of the aggregate object as possible and discard any repair packets. Allowing source packets to be sent for individual objects of the aggregate object achieves Characteristic 5.
  • Characteristic 6 provides that sent source packets for individual objects should be used efficiently in combination with repair packets for the aggregate object to reconstruct the aggregate object efficiently. The partitioning of the individual objects across source blocks of the aggregate object achieves Characteristic 6.
  • Characteristic 7 provides that receivers that are only missing some or some parts of the individual objects that are part of the aggregate object are able to recover the missing individual objects with as little data reception as possible. Further, receivers that have out-dated versions of some of the individual objects that are part of the aggregate object are able to obtain newer versions of the individual objects with as little data reception as possible.
  • the partitioning of the individual objects across source blocks of the aggregate object achieves the first part of Characteristic 7.
  • the identifiers contained in packets can include version information for the data included in the packet payload.
  • the version information can include time and date information for the packet data.
  • the first use case is for web cache broadcast.
  • Web pages typically include many small objects (e.g., files). For example, some popular news sites can include more than 100 small objects on a web page.
  • Each individual object is identified by a Uniform Resource Locator (URL). Many of these individual objects do not change often and, in normal operation, web browsers cache these individual objects and reuse the cached versions the next time the web page is accessed.
  • HTTP includes
  • the performance of a mobile web browser could be improved, for example, by delivering the individual objects of popular web pages over a broadcast channel and placing the delivered individual objects in the web browser cache.
  • that popular web page is accessed by the user, many of the individual objects of the web page would already be in cache and, thus, would not need to be downloaded at the time of access.
  • a client device receiving the list of individual objects can check its cache to see if the client device already has any of these individual objects. For example, the individual objects might have been received in a previous broadcast, or the individual objects might have been retrieved over unicast. Using those individual objects that the client device already has, the client device can reconstruct a partial copy of the aggregate object. This partial copy can be input as a set of source symbols to the AL- FEC decoding process for the aggregate object.
  • One approach to aggregating the small individual objects into a large aggregate object would be to concatenate the individual objects or use a standard archive file format, such as 'tar' or 'zip,' and then to segment the archived file into source blocks, each comprising a contiguous portion of the archived file.
  • This approach obtains the benefits of aggregation in terms of AL-FEC performance when a client device does not have any of the broadcast objects beforehand.
  • the approach would allow the client device to use objects the client device already has to improve performance somewhat, as above described.
  • a better approach is to use the block aggregation techniques described in this disclosure.
  • the described techniques allow the client device to use the individual objects the client device already has to improve performance by much more than the 'tar' or 'zip' approach in the specific case where the aggregate object needs to be broken into more than one source block.
  • the reason for the difference in performance is that, with the 'tar' or 'zip' approach, the data already present at the client device may be spread unevenly across source blocks. For example, the client device may have 90% of a first source block but only 10% of a second source block. There are good reasons that in a typical transmission, the packets of the source blocks are interleaved.
  • the client device needs to receive 90%> of the data for all source blocks.
  • the client device would receive 90% of the first source block for which the client device already had 90% of the data. Thus, most of that transmission is wasted.
  • the described block aggregation techniques of this disclosure ensures that the data already present at the client device is evenly spread across the source blocks, as much as possible (i.e., Property A). Therefore, the fraction of each source block already known at the client device is roughly the same for each source block, and the amount of wasted reception is reduced or minimized.
  • Another approach to achieve somewhat even spreading would be to first construct an aggregate object by simple concatenation and then randomly permute the symbols of that aggregate object before partitioning the aggregate object into source blocks.
  • the described block aggregation techniques of this disclosure improve on that random approach in two ways.
  • the described block aggregation techniques ensure that when data from an individual object is included in a source block, the data is arranged in a single contiguous chunk in that source block, and moreover, that this chunk of data is a contiguous portion of the individual object as well. This improves implementation efficiency.
  • the second use case is for systematic small individual object transmission on channels with large burst outages.
  • This example considers the case of an AL-FEC based transmission of multiple small individual objects where: (a) the transmission needs to be systematic, i.e., the source data for the individual objects is sent; (b) the objects are sent sequentially, rather than being interleaved; (c) the transmission suffers burst outages of a duration commensurate with or larger than the transmission time of the individual objects; and (d) FEC protection is provided over the aggregate of the individual objects, rather than per object.
  • a reason for (a) is to ensure backwards compatibility with receivers that do not support AL-FEC.
  • a reason for (b) is that, when the individual objects are individually useful, it is preferable for the individual objects to become available incrementally during reception.
  • One example of this use case is a broadcast news service where the individual objects are individual news stories, which are individually useful for presentation to users. Every so often, some repair data for the aggregate of a set of news stories is transmitted to allow client devices to fill in the individual news stories the client devices have missed.
  • a client device may receive a subset of the source data for the small individual objects, which can be input as source data to the AL-FEC decoding process. Because of (c), it is likely that the client device has a subset of the individual objects, rather than a random collection of pieces of the individual objects. The client device then receives repair data for the aggregate objects, and the exact considerations as in the first use case applies to the combination of source and repair data and the advantages of even distribution of received source data across the source blocks.
  • DSP digital signal processor
  • ASIC application specific integrated circuit
  • FPGA field programmable gate array
  • 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.
  • 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.
  • 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.
  • the processor and the storage medium may reside as discrete components in a user terminal.
  • 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.
  • 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.
  • Disk and disc 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.

Landscapes

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

Abstract

Le procédé de cartographie de m objets individuels à des symboles source pour fournir des données depuis un transmetteur vers un récepteur dans un système de communication, les m objets individuels ordonnés de l'objet 1 à l'objet m, avec m > 1, consiste : à agréger les m objets individuels dans un objet agrégé, ceci comprenant, pour chaque objet individuel j, le calcul d'un nombre de symboles source S(j) servant à contenir les données de l'objet j individuel ; et à partitionner l'objet agrégé en Z blocs sources, ceci comprenant, pour chaque bloc source k et chaque objet individuel j, le calcul d'un nombre de symboles source NSS(j,k) d'objet individuel j dans le bloc source k, les S(j) symboles source pour chaque objet individuel j étant agencés consécutivement dans des blocs source consécutifs, à commencer par un premier bloc source pour lequel NSS(j,k) > 0 jusqu'à un dernier bloc source pour lequel NSS(j,k) > 0.
PCT/US2011/027078 2010-03-03 2011-03-03 Agrégation en bloc d'objets dans un système de communication WO2011109653A1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP20110709543 EP2543155B1 (fr) 2010-03-03 2011-03-03 Agrégation en bloc d'objets dans un système de communication
JP2012556247A JP5694390B2 (ja) 2010-03-03 2011-03-03 通信システムにおけるオブジェクトのブロックアグリゲーション
CN201180012012.0A CN102804661B (zh) 2010-03-03 2011-03-03 通信系统中的对象的块聚合

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/717,054 2010-03-03
US12/717,054 US9136981B2 (en) 2010-03-03 2010-03-03 Block aggregation of objects in a communication system

Publications (1)

Publication Number Publication Date
WO2011109653A1 true WO2011109653A1 (fr) 2011-09-09

Family

ID=43984118

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2011/027078 WO2011109653A1 (fr) 2010-03-03 2011-03-03 Agrégation en bloc d'objets dans un système de communication

Country Status (5)

Country Link
US (1) US9136981B2 (fr)
EP (1) EP2543155B1 (fr)
JP (2) JP5694390B2 (fr)
CN (1) CN102804661B (fr)
WO (1) WO2011109653A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109245863A (zh) * 2013-04-17 2019-01-18 三星电子株式会社 用于传输和接收前向纠错分组的装置和方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130046540A (ko) * 2011-10-28 2013-05-08 삼성에스디에스 주식회사 데이터 전송 장치 및 방법
US9165456B2 (en) * 2012-07-24 2015-10-20 Mueller International, Llc Systems and methods for distributing data within a mesh network
US10015486B2 (en) * 2012-10-26 2018-07-03 Intel Corporation Enhanced video decoding with application layer forward error correction
KR101812218B1 (ko) * 2013-01-18 2018-01-30 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 데이터스트림들 중에서 동기화된 시작 심벌 식별자들을 갖는 적어도 두 개의 데이터스트림으로부터의 심벌들을 갖는 소스 블록들을 사용하는 순방향 오류 정정
US9559805B2 (en) 2014-11-03 2017-01-31 Cisco Technology, Inc. Self-describing error correction of consolidated media content
US10003434B2 (en) 2016-04-08 2018-06-19 Cisco Technology, Inc. Efficient error correction that aggregates different media into encoded container packets
CN110278054B (zh) * 2019-04-30 2021-11-16 创新先进技术有限公司 一种配网方法和装置
US10785098B1 (en) 2019-04-30 2020-09-22 Alibaba Group Holding Limited Network configuration using multicast address modulation

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US6320520B1 (en) 1998-09-23 2001-11-20 Digital Fountain Information additive group code generator and decoder for communications systems
US20030058958A1 (en) * 2001-12-21 2003-03-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US20050138268A1 (en) * 1999-12-02 2005-06-23 Microsoft Corporation Data carousel receiving and caching
US7418651B2 (en) 2004-05-07 2008-08-26 Digital Fountain, Inc. File download and streaming system

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5548598A (en) 1994-03-28 1996-08-20 Motorola In a data communications systems a method of forward error correction
US7072971B2 (en) * 2000-11-13 2006-07-04 Digital Foundation, Inc. Scheduling of multiple files for serving on a server
JP4025709B2 (ja) 2003-10-30 2007-12-26 日本電信電話株式会社 誤り訂正符号化装置、誤り訂正復号化装置、誤り訂正符号化プログラム、誤り訂正復号化プログラム、誤り訂正符号化プログラムまたは誤り訂正復号化プログラムを記録したコンピュータ読み取り可能な記録媒体
US7590922B2 (en) 2004-07-30 2009-09-15 Nokia Corporation Point-to-point repair request mechanism for point-to-multipoint transmission systems
GB0420540D0 (en) 2004-09-15 2004-10-20 Nokia Corp Burst transmission in a digital broadcasting network
US7676735B2 (en) 2005-06-10 2010-03-09 Digital Fountain Inc. Forward error-correcting (FEC) coding and streaming
KR20070013013A (ko) 2005-07-25 2007-01-30 삼성전자주식회사 표시 장치
EP1969856B1 (fr) * 2006-01-05 2012-08-15 Telefonaktiebolaget LM Ericsson (publ) Gestion de fichiers de contenus multimedias
WO2007095551A2 (fr) * 2006-02-13 2007-08-23 Digital Fountain, Inc. Transmission en continu à contrôle continu avec agrégation de flux concomitants pour le calcul de contrôle continu
JP5027305B2 (ja) * 2007-09-12 2012-09-19 デジタル ファウンテン, インコーポレイテッド 信頼できる通信を可能にするためのソース識別情報の生成および伝達
US8233532B2 (en) * 2007-09-21 2012-07-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Information signal, apparatus and method for encoding an information content, and apparatus and method for error correcting an information signal
TW200943975A (en) * 2008-01-09 2009-10-16 Nokia Corp Systems and methods for media container file generation
EP2109293A1 (fr) 2008-04-11 2009-10-14 Thomson Licensing Système et procédé pour améliorer la fiabilité de la transmission de fichiers
JP5847577B2 (ja) 2008-05-07 2016-01-27 デジタル ファウンテン, インコーポレイテッド より低いレベルのパケット構造から導かれる記号識別子を用いた放送チャネル上の高品質ストリーム保護

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US6320520B1 (en) 1998-09-23 2001-11-20 Digital Fountain Information additive group code generator and decoder for communications systems
US20050138268A1 (en) * 1999-12-02 2005-06-23 Microsoft Corporation Data carousel receiving and caching
US20030058958A1 (en) * 2001-12-21 2003-03-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US7068729B2 (en) 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US7418651B2 (en) 2004-05-07 2008-08-26 Digital Fountain, Inc. File download and streaming system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ROMÃ Â N BELDA ET AL: "Multimedia System for Emergency Services over TETRA-DVBT Networks", SOFTWARE ENGINEERING AND ADVANCED APPLICATIONS, 2008. SEAA '08. 34TH EUROMICRO CONFERENCE, IEEE, PISCATAWAY, NJ, USA, 3 September 2008 (2008-09-03), pages 142 - 149, XP031380039, ISBN: 978-0-7695-3276-9 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109245863A (zh) * 2013-04-17 2019-01-18 三星电子株式会社 用于传输和接收前向纠错分组的装置和方法

Also Published As

Publication number Publication date
US20110216841A1 (en) 2011-09-08
CN102804661B (zh) 2015-04-22
JP2013521720A (ja) 2013-06-10
EP2543155B1 (fr) 2013-07-31
JP2015084540A (ja) 2015-04-30
US9136981B2 (en) 2015-09-15
JP5694390B2 (ja) 2015-04-01
EP2543155A1 (fr) 2013-01-09
JP5823598B2 (ja) 2015-11-25
CN102804661A (zh) 2012-11-28

Similar Documents

Publication Publication Date Title
EP2543155B1 (fr) Agrégation en bloc d'objets dans un système de communication
US9118353B2 (en) System and method for communicating with low density parity check codes
EP1214793B9 (fr) Generateur de code de groupe additif d'information et decodeur pour systemes de communications
AU2005268492B2 (en) Point-to-point repair request mechanism for point-to-multipoint transmission systems
EP2136473B1 (fr) Procédé et système de transmission et de réception d'informations utilisant des codes de réaction en chaîne
KR101205758B1 (ko) 파일 다운로드 및 스트리밍 시스템
US7594154B2 (en) Encoding and decoding modules with forward error correction
WO2006038054A1 (fr) Transmission par paquets avec correction d'erreurs de paquets de donnees
WO2009135368A1 (fr) Procédé et appareil de réception de données
US9455750B2 (en) Source block size selection
Gasiba et al. Reliable and efficient download delivery with Raptor codes

Legal Events

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

Ref document number: 201180012012.0

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11709543

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 7223/CHENP/2012

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 2011709543

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2012556247

Country of ref document: JP