GNU Radio Manual and C++ API Reference  3.7.13.4
The Free & Open Software Radio Ecosystem
atsci_trellis_encoder Class Reference

fancy, schmancy 12-way interleaved trellis encoder for ATSC More...

#include <gnuradio/atsc/trellis_encoder_impl.h>

Public Member Functions

 atsci_trellis_encoder ()
 
 ~atsci_trellis_encoder ()
 
void reset ()
 reset all encoder states More...
 
void encode (atsc_data_segment out[NCODERS], const atsc_mpeg_packet_rs_encoded in[NCODERS])
 

Static Public Attributes

static const int NCODERS = 12
 

Protected Member Functions

void encode_helper (unsigned char out[OUTPUT_SIZE], const unsigned char in[INPUT_SIZE])
 

Protected Attributes

atsci_basic_trellis_encoder enc [NCODERS]
 
bool debug
 

Static Protected Attributes

static const int SEGMENT_SIZE = ATSC_MPEG_RS_ENCODED_LENGTH
 
static const int INPUT_SIZE = (SEGMENT_SIZE * 12)
 
static const int OUTPUT_SIZE = (ATSC_DATA_SEGMENT_LENGTH * 12)
 

Detailed Description

fancy, schmancy 12-way interleaved trellis encoder for ATSC

Constructor & Destructor Documentation

◆ atsci_trellis_encoder()

atsci_trellis_encoder::atsci_trellis_encoder ( )

◆ ~atsci_trellis_encoder()

atsci_trellis_encoder::~atsci_trellis_encoder ( )

Member Function Documentation

◆ encode()

void atsci_trellis_encoder::encode ( atsc_data_segment  out[NCODERS],
const atsc_mpeg_packet_rs_encoded  in[NCODERS] 
)

Take 12 RS encoded, convolutionally interleaved segments and produce 12 trellis coded data segments. We work in groups of 12 because that's the smallest number of segments that composes a single full cycle of the encoder mux.

◆ encode_helper()

void atsci_trellis_encoder::encode_helper ( unsigned char  out[OUTPUT_SIZE],
const unsigned char  in[INPUT_SIZE] 
)
protected

◆ reset()

void atsci_trellis_encoder::reset ( )

reset all encoder states

Member Data Documentation

◆ debug

bool atsci_trellis_encoder::debug
protected

◆ enc

atsci_basic_trellis_encoder atsci_trellis_encoder::enc[NCODERS]
protected

◆ INPUT_SIZE

const int atsci_trellis_encoder::INPUT_SIZE = (SEGMENT_SIZE * 12)
staticprotected

◆ NCODERS

const int atsci_trellis_encoder::NCODERS = 12
static

◆ OUTPUT_SIZE

const int atsci_trellis_encoder::OUTPUT_SIZE = (ATSC_DATA_SEGMENT_LENGTH * 12)
staticprotected

◆ SEGMENT_SIZE

const int atsci_trellis_encoder::SEGMENT_SIZE = ATSC_MPEG_RS_ENCODED_LENGTH
staticprotected

The documentation for this class was generated from the following file: