1 #ifndef DYSCO_ROW_TIME_BLOCK_ENCODER_H
2 #define DYSCO_ROW_TIME_BLOCK_ENCODER_H
22 float *metaBuffer,
symbol_t *symbolBuffer,
size_t antennaCount,
23 std::mt19937 &rnd)
final override {
24 encode<true>(gausEncoder, buffer, metaBuffer, symbolBuffer, antennaCount,
30 float *metaBuffer,
symbol_t *symbolBuffer,
31 size_t antennaCount)
final override {
32 encode<false>(gausEncoder, buffer, metaBuffer, symbolBuffer, antennaCount,
37 size_t nAntennae)
final override;
41 size_t blockRow,
size_t antenna1,
42 size_t antenna2)
final override;
45 size_t nChannels)
const final override {
46 return nRow * nChannels * nPol * 2 ;
49 virtual size_t SymbolCount(
size_t nRow)
const final override {
59 size_t ) const final
override {
64 template <
bool UseDithering>
67 size_t antennaCount, std::mt19937 *rnd);
virtual size_t SymbolCount(size_t nRow) const finaloverride
virtual void InitializeDecode(const float *metaBuffer, size_t nRow, size_t nAntennae) finaloverride
virtual void EncodeWithDithering(const dyscostman::StochasticEncoder< float > &gausEncoder, FBuffer &buffer, float *metaBuffer, symbol_t *symbolBuffer, size_t antennaCount, std::mt19937 &rnd) finaloverride
virtual size_t SymbolsPerRow() const finaloverride
virtual ~RowTimeBlockEncoder() override
virtual size_t SymbolCount(size_t nRow, size_t nPol, size_t nChannels) const finaloverride
ao::uvector< double > _rowFactors
std::uniform_int_distribution< unsigned > _ditherDist
virtual void Decode(const dyscostman::StochasticEncoder< float > &gausEncoder, FBuffer &buffer, const symbol_t *symbolBuffer, size_t blockRow, size_t antenna1, size_t antenna2) finaloverride
Header file for uvector and its relational and swap functions.
TimeBlockBuffer< std::complex< float > > FBuffer
void encode(const dyscostman::StochasticEncoder< float > &gausEncoder, const FBuffer &buffer, float *metaBuffer, symbol_t *symbolBuffer, size_t antennaCount, std::mt19937 *rnd)
RowTimeBlockEncoder(size_t nPol, size_t nChannels)
Lossy encoder for stochastic values.
virtual size_t MetaDataCount(size_t nRow, size_t, size_t, size_t) const finaloverride
virtual void EncodeWithoutDithering(const dyscostman::StochasticEncoder< float > &gausEncoder, FBuffer &buffer, float *metaBuffer, symbol_t *symbolBuffer, size_t antennaCount) finaloverride