Content deleted Content added
m remove extraneous definite article |
Added and updated references to implementations of the RaptorQ code |
||
Line 4:
Raptor codes, as with fountain codes in general, encode a given source block of data consisting of a number ''k'' of equal size symbols into a potentially limitless sequence of [[encoding symbol]]s such that reception of any ''k'' or more encoding symbols allows the source block to be recovered with some non-zero probability. The probability that the source block can be recovered increases with the number of encoding symbols received above ''k'' becoming very close to 1, once the number of received encoding symbols is only very slightly larger than ''k''. For example, with the latest generation of Raptor codes, the [http://tools.ietf.org/html/rfc6330 RaptorQ] codes, the chance of decoding failure when ''k'' encoding symbols have been received is less than 1%, and the chance of decoding failure when ''k+2'' encoding symbols have been received is less than one in a million. (See ''Recovery probability and overhead'' section below for more discussion on this.) A symbol can be any size, from a single byte to hundreds or thousands of bytes.
Raptor codes may be systematic or non-systematic. In the systematic case, the symbols of the original source block, i.e. the source symbols, are included within the set of encoding symbols. An example of a systematic Raptor code is the code defined by the [[3rd Generation Partnership Project]] for use in [[mobile cellular wireless]] broadcast and multicast and also used by [[DVB-H standard]]s for IP datacast to handheld devices (see external links). The Raptor codes in these standards is defined also in [[IETF]] RFC 5053.
The most advanced version of a practical Raptor code is RaptorQ defined in [[IETF]] RFC 6330. There are several implementations of RaptorQ available, including TvRq (see https://github.com/lorinder/TvRQ), the OpenRQ project (see https://openrq-team.github.io/openrq/), libRaptorQ (see https://github.com/LucaFulchir/libRaptorQ), a RUST implementation of RaptorQ (see https://github.com/cberner/raptorq), and a high performance implementation of RaptorQ (see https://www.bitripple.com/rq).
[[Online codes]] are another example of a non-systematic fountain code.
|