Skip to content

Latest commit

 

History

History
284 lines (116 loc) · 2.53 KB

ReedSolomonCodec.md

File metadata and controls

284 lines (116 loc) · 2.53 KB

ReedSolomonCodec

Reed-Solomon codec for 8-bit characters.

Based on libfec by Phil Karn, KA9Q.

  • Full name: \BaconQrCode\Common\ReedSolomonCodec
  • This class is marked as final and can't be subclassed
  • This class is a Final class

Properties

symbolSize

Symbol size in bits.

private int $symbolSize

blockSize

Block size in symbols.

private int $blockSize

firstRoot

First root of RS code generator polynomial, index form.

private int $firstRoot

primitive

Primitive element to generate polynomial roots, index form.

private int $primitive

iPrimitive

Prim-th root of 1, index form.

private int $iPrimitive

numRoots

RS code generator polynomial degree (number of roots).

private int $numRoots

padding

Padding bytes at front of shortened block.

private int $padding

alphaTo

Log lookup table.

private \SplFixedArray $alphaTo

indexOf

Anti-Log lookup table.

private \SplFixedArray $indexOf

generatorPoly

Generator polynomial.

private \SplFixedArray $generatorPoly

Methods

__construct

public __construct(int $symbolSize, int $gfPoly, int $firstRoot, int $primitive, int $numRoots, int $padding): mixed

Parameters:

Parameter Type Description
$symbolSize int
$gfPoly int
$firstRoot int
$primitive int
$numRoots int
$padding int

encode

Encodes data and writes result back into parity array.

public encode(\SplFixedArray $data, \SplFixedArray $parity): void

Parameters:

Parameter Type Description
$data \SplFixedArray
$parity \SplFixedArray

decode

Decodes received data.

public decode(\SplFixedArray $data, \SplFixedArray $erasures = null): ?int

Parameters:

Parameter Type Description
$data \SplFixedArray
$erasures \SplFixedArray

modNn

Computes $x % GF_SIZE, where GF_SIZE is 2**GF_BITS - 1, without a slow divide.

private modNn(int $x): int

Parameters:

Parameter Type Description
$x int