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