16#ifndef RANS_INTERNAL_CONTAINERS_LOWRANGEDECODERTABLE_H_
17#define RANS_INTERNAL_CONTAINERS_LOWRANGEDECODERTABLE_H_
21#include <fairlogger/Logger.h>
33template <
typename source_T>
40 using value_type = std::pair<source_type, const symbol_type&>;
50 template <typename container_T>
53 [[nodiscard]]
inline size_type size() const noexcept {
return mRLUT.size(); };
63 assert(cumul < this->
size());
71 symbolTable_type mSymbolTable;
Lookup table containing statistical information for each symbol in the alphabet required for encoding...
Histogram renormed to sum of frequencies being 2^P for use in fast rans coding.
Maps rANS state information back to source symbol, used for decoding.
Contains statistical information for one source symbol, required for encoding/decoding.
common helper classes and functions
size_type getPrecision() const noexcept
const_pointer lookupUnsafe(source_type sourceSymbol) const
const_reference getEscapeSymbol() const noexcept
bool hasEscapeSymbol() const noexcept
size_type size() const noexcept
bool isEscapeSymbol(count_type cumul) const noexcept
const value_type operator[](count_type cumul) const noexcept
size_type getPrecision() const noexcept
LowRangeDecoderTable() noexcept=default
bool hasEscapeSymbol() const noexcept
const symbol_type & getEscapeSymbol() const noexcept
std::pair< source_type, const symbol_type & > value_type
std::ptrdiff_t difference_type