Skip to content

komm.FixedToVariableDecoder

Decoder for prefix-free fixed-to-variable length codes.

Attributes:

  • code (FixedToVariableCode)

    The code to be considered, which must be a prefix-free code (that is, no codeword is a prefix of another codeword).

Input:

  • in0 (Array1D[int])

    The sequence of symbols to be decoded. Must be a 1D-array with elements in $[0:T)$, where $T$ is the target cardinality of the code.

Output:

  • out0 (Array1D[int])

    The sequence of decoded symbols. It is a 1D-array with elements in $[0:S)$, where $S$ is the source cardinality of the code.

Examples:

>>> code = komm.FixedToVariableCode.from_codewords(3, [(0,), (1,0), (1,1)])
>>> decoder = komm.FixedToVariableDecoder(code)
>>> decoder([1, 0, 0, 1, 0, 0, 1, 1, 0])
array([1, 0, 1, 0, 2, 0])
>>> code = komm.FixedToVariableCode.from_codewords(2, [(0,), (1,0), (1,1), (1,1,0)])
>>> decoder = komm.FixedToVariableDecoder(code)
Traceback (most recent call last):
...
ValueError: code is not prefix-free