#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().