#include <atsci_basic_trellis_encoder.h>
Note this is NOT the 12x interleaved interface.
This implements a single instance of the ATSC trellis encoder. This is a rate 2/3 encoder (really a constraint length 3, rate 1/2 encoder with the top bit passed through unencoded. This does not implement the "precoding" of the top bit, because the NTSC rejection filter is not supported.
Public Member Functions | |
| atsci_basic_trellis_encoder () | |
| int | encode (unsigned int input) |
| void | reset () |
| reset encoder state | |
Static Public Attributes | |
| static const unsigned char | next_state [32] |
| static const unsigned char | out_symbol [32] |
| atsci_basic_trellis_encoder::atsci_basic_trellis_encoder | ( | ) | [inline] |
| int atsci_basic_trellis_encoder::encode | ( | unsigned int | input | ) |
Encode two bit INPUT into 3 bit return value. Domain is [0,3], Range is [0,7]. The mapping to bipolar levels is not done.
References next_state, and out_symbol.
Referenced by atsci_trellis_encoder::encode_helper().
| void atsci_basic_trellis_encoder::reset | ( | ) | [inline] |
reset encoder state
const unsigned char atsci_basic_trellis_encoder::next_state [static] |
Initial value:
{
0,1,4,5,
2,3,6,7,
1,0,5,4,
3,2,7,6,
4,5,0,1,
6,7,2,3,
5,4,1,0,
7,6,3,2
}
Referenced by encode().
const unsigned char atsci_basic_trellis_encoder::out_symbol [static] |
Initial value:
{
0,2,4,6,
1,3,5,7,
0,2,4,6,
1,3,5,7,
4,6,0,2,
5,7,1,3,
4,6,0,2,
5,7,1,3
}
Referenced by encode().
1.5.5