Encode/Decode
Description
Usage
EncodeMapper
static const uint32 kEncodeLabels = 0x0001;
static const uint32 kEncodeWeights = 0x0002;
static const uint32 kEncodeFlags = 0x0003;
|
enum EncodeType { ENCODE = 1, DECODE = 2 };
|
template <class Arc> EncodeMapper<Arc>::
EncodeMapper(uint32 flags, EncodeType type);
|
|
Encode
template <class Arc>
void Encode(MutableFst<Arc> *fst, EncodeMapper<Arc> *encoder);
|
[bad link?] |
template <class Arc> EncodeFst<Arc>::
EncodeFst<Arc>(const Fst<Arc> &fst, EncodeMapper<Arc> *encoder);
|
|
Decode
template <class Arc>
void Decode(MutableFst<Arc> *fst, const EncodeMapper<Arc> &encoder);
|
[bad link?] |
template <class Arc> DecodeFst<Arc>::
DecodeFst<Arc>(const Fst<Arc> &fst, EncodeMapper<Arc> *encoder);
|
|
fstencode
fstencode [--encode_labels] [--encode_weights] in.fst encoder out.fst
|
fstencode --decode in.fst encoder out.fst
|
Example
A
:
Encode(&A, &encoder)
:
encode_flags |
kEncodeLabels |
kEncodeWeights |
kEncodeLabels|kEncodeWeights |
$flags |
--encode_labels |
--encode_weights |
--encode_labels --encode_weights |
|
|
|
|
EncodeMapper<Arc> encoder(encode_flags, ENCODE);
Encode(&A, &encoder);
EncodeFst<Arc>(A, &encoder);
fstencode $flags a.fst encoder b.fst
Decode(&A, encoder)
:
Decode(&A, encoder);
DecodeFst<Arc>(A, encoder);
fstencode --decode a.fst encoder b.fst
Complexity
Encode, Decode
- Time: O(V + E)
- Space: O(V + E)
where
V = # of states, and
E = # of transitions in the input FST.
--
CyrilAllauzen - 27 Mar 2009