RawSpeed
fast raw decoding library
Loading...
Searching...
No Matches
rawspeed::PrefixCodeLUTDecoder< CodeTag, BackendPrefixCodeDecoder > Class Template Reference

#include "codes/PrefixCodeLUTDecoder.h"

Inheritance diagram for rawspeed::PrefixCodeLUTDecoder< CodeTag, BackendPrefixCodeDecoder >:
[legend]
Collaboration diagram for rawspeed::PrefixCodeLUTDecoder< CodeTag, BackendPrefixCodeDecoder >:
[legend]

Public Types

using Tag = CodeTag
using Base = BackendPrefixCodeDecoder
using Traits = typename Base::Traits

Public Member Functions

void setup (bool fullDecode_, bool fixDNGBug16_)
template<typename BIT_STREAM>
 __attribute__ ((always_inline)) int decodeCodeValue(BIT_STREAM &bs) const
template<typename BIT_STREAM>
 __attribute__ ((always_inline)) int decodeDifference(BIT_STREAM &bs) const
template<typename BIT_STREAM, bool FULL_DECODE>
 __attribute__ ((always_inline)) int decode(BIT_STREAM &bs) const

Private Types

using LUTEntryTy = int32_t
using LUTUnsignedEntryTy = std::make_unsigned_t<LUTEntryTy>

Private Attributes

std::vector< LUTEntryTydecodeLookup

Static Private Attributes

static constexpr unsigned PayloadShift = 9
static constexpr unsigned FlagMask = 0x100
static constexpr unsigned LenMask = 0xff
static constexpr unsigned LookupDepth = 11

Detailed Description

template<typename CodeTag, typename BackendPrefixCodeDecoder>
class rawspeed::PrefixCodeLUTDecoder< CodeTag, BackendPrefixCodeDecoder >

Definition at line 71 of file PrefixCodeLUTDecoder.h.

Member Typedef Documentation

◆ Base

template<typename CodeTag, typename BackendPrefixCodeDecoder>
using rawspeed::PrefixCodeLUTDecoder< CodeTag, BackendPrefixCodeDecoder >::Base = BackendPrefixCodeDecoder

Definition at line 74 of file PrefixCodeLUTDecoder.h.

◆ LUTEntryTy

template<typename CodeTag, typename BackendPrefixCodeDecoder>
using rawspeed::PrefixCodeLUTDecoder< CodeTag, BackendPrefixCodeDecoder >::LUTEntryTy = int32_t
private

Definition at line 90 of file PrefixCodeLUTDecoder.h.

◆ LUTUnsignedEntryTy

template<typename CodeTag, typename BackendPrefixCodeDecoder>
using rawspeed::PrefixCodeLUTDecoder< CodeTag, BackendPrefixCodeDecoder >::LUTUnsignedEntryTy = std::make_unsigned_t<LUTEntryTy>
private

Definition at line 91 of file PrefixCodeLUTDecoder.h.

◆ Tag

template<typename CodeTag, typename BackendPrefixCodeDecoder>
using rawspeed::PrefixCodeLUTDecoder< CodeTag, BackendPrefixCodeDecoder >::Tag = CodeTag

Definition at line 73 of file PrefixCodeLUTDecoder.h.

◆ Traits

template<typename CodeTag, typename BackendPrefixCodeDecoder>
using rawspeed::PrefixCodeLUTDecoder< CodeTag, BackendPrefixCodeDecoder >::Traits = typename Base::Traits

Definition at line 75 of file PrefixCodeLUTDecoder.h.

Member Function Documentation

◆ __attribute__() [1/3]

template<typename CodeTag, typename BackendPrefixCodeDecoder>
template<typename BIT_STREAM, bool FULL_DECODE>
rawspeed::PrefixCodeLUTDecoder< CodeTag, BackendPrefixCodeDecoder >::__attribute__ ( (always_inline) ) const &
inline

Definition at line 174 of file PrefixCodeLUTDecoder.h.

◆ __attribute__() [2/3]

template<typename CodeTag, typename BackendPrefixCodeDecoder>
template<typename BIT_STREAM>
rawspeed::PrefixCodeLUTDecoder< CodeTag, BackendPrefixCodeDecoder >::__attribute__ ( (always_inline) ) const &
inline

Definition at line 152 of file PrefixCodeLUTDecoder.h.

◆ __attribute__() [3/3]

template<typename CodeTag, typename BackendPrefixCodeDecoder>
template<typename BIT_STREAM>
rawspeed::PrefixCodeLUTDecoder< CodeTag, BackendPrefixCodeDecoder >::__attribute__ ( (always_inline) ) const &
inline

Definition at line 161 of file PrefixCodeLUTDecoder.h.

◆ setup()

template<typename CodeTag, typename BackendPrefixCodeDecoder>
void rawspeed::PrefixCodeLUTDecoder< CodeTag, BackendPrefixCodeDecoder >::setup ( bool fullDecode_,
bool fixDNGBug16_ )
inline

Definition at line 95 of file PrefixCodeLUTDecoder.h.

Referenced by rawspeed::CrwDecompressor::makeDecoder().

Here is the caller graph for this function:

Member Data Documentation

◆ decodeLookup

template<typename CodeTag, typename BackendPrefixCodeDecoder>
std::vector<LUTEntryTy> rawspeed::PrefixCodeLUTDecoder< CodeTag, BackendPrefixCodeDecoder >::decodeLookup
private

Definition at line 92 of file PrefixCodeLUTDecoder.h.

◆ FlagMask

template<typename CodeTag, typename BackendPrefixCodeDecoder>
unsigned rawspeed::PrefixCodeLUTDecoder< CodeTag, BackendPrefixCodeDecoder >::FlagMask = 0x100
staticconstexprprivate

Definition at line 87 of file PrefixCodeLUTDecoder.h.

◆ LenMask

template<typename CodeTag, typename BackendPrefixCodeDecoder>
unsigned rawspeed::PrefixCodeLUTDecoder< CodeTag, BackendPrefixCodeDecoder >::LenMask = 0xff
staticconstexprprivate

Definition at line 88 of file PrefixCodeLUTDecoder.h.

◆ LookupDepth

template<typename CodeTag, typename BackendPrefixCodeDecoder>
unsigned rawspeed::PrefixCodeLUTDecoder< CodeTag, BackendPrefixCodeDecoder >::LookupDepth = 11
staticconstexprprivate

Definition at line 89 of file PrefixCodeLUTDecoder.h.

◆ PayloadShift

template<typename CodeTag, typename BackendPrefixCodeDecoder>
unsigned rawspeed::PrefixCodeLUTDecoder< CodeTag, BackendPrefixCodeDecoder >::PayloadShift = 9
staticconstexprprivate

Definition at line 86 of file PrefixCodeLUTDecoder.h.


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