namespace details

// typedefs

typedef ap_uint <BITS_PER_LOOP> Digit

// enums

enum xfBlockType_t
enum xfLitBlockType_t
enum xfSymbolCompMode_t

// structs

struct FseBSState
struct HuffmanTable

// global variables

static const uint8_t RADIX
static const uint8_t BITS_PER_LOOP
static const ap_uint <c_tgnSymbolBits> INTERNAL_NODE
const uint32_t c_magicNumber
const uint32_t c_skipFrameMagicNumber
const uint32_t c_skippableFrameMask
const uint16_t c_maxCharLit
const uint16_t c_maxCharDefOffset
const uint16_t c_maxCharOffset
const uint16_t c_maxCharMatchlen
const uint16_t c_maxCharHuffman
const uint32_t c_baseLL[c_maxCharLit+1]
const uint32_t c_baseML[c_maxCharMatchlen+1]
const uint8_t c_extraBitsLL[c_maxCharLit+1]
const uint8_t c_extraBitsML[c_maxCharMatchlen+1]
const int16_t c_defaultDistribution[c_maxCharLit+c_maxCharDefOffset+c_maxCharMatchlen+3]

huffmanProcessingUnit

#include "huffman_encoder.hpp"
void huffmanProcessingUnit (
    hls::stream <ap_uint <9>>& inStream,
    hls::stream <ap_uint <32>>& outStream,
    hls::stream <uint32_t>& inputSizeStream
    )

This module does updates lz77 byte data to 32bit data.

Parameters:

inStream input packet of 8bit contains either literal or marker or match length or distance information.
outStream output 32bit compressed data
inputSizeStream input size of each block

huffmanProcessingUnitStatic

#include "huffman_encoder.hpp"
void huffmanProcessingUnitStatic (
    hls::stream <ap_uint <9>>& inStream,
    hls::stream <ap_uint <32>>& outStream,
    hls::stream <bool>& inEos,
    hls::stream <bool>& endOfBlock
    )

This module does updates lz77 byte data to 32bit data.

Parameters:

inStream input packet of 8bit contains either literal or marker or match length or distance information.
outStream output 32bit compressed data
inputSizeStream input size of each block