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

#include "codes/AbstractPrefixCodeTranscoder.h"

Inheritance diagram for rawspeed::AbstractPrefixCodeTranscoder< CodeTag >:
[legend]
Collaboration diagram for rawspeed::AbstractPrefixCodeTranscoder< CodeTag >:
[legend]

Public Types

using Tag = CodeTag
using Parent = AbstractPrefixCode<CodeTag>
using CodeSymbol = typename AbstractPrefixCode<CodeTag>::CodeSymbol
using Traits = typename AbstractPrefixCode<CodeTag>::Traits

Public Member Functions

 AbstractPrefixCodeTranscoder (PrefixCode< CodeTag > code_)
void verifyCodeValuesAsDiffLengths () const
bool RAWSPEED_READONLY isFullDecode () const
bool RAWSPEED_READONLY handleDNGBug16 () const
bool operator== (const AbstractPrefixCodeTranscoder &other) const

Public Attributes

PrefixCode< CodeTag > code

Protected Member Functions

size_t RAWSPEED_READONLY maxCodeLength () const
size_t RAWSPEED_READONLY __attribute__ ((pure)) maxCodePlusDiffLength() const
void setup (bool fullDecode_, bool fixDNGBug16_)

Private Attributes

bool fullDecode = true
bool fixDNGBug16 = false

Detailed Description

template<typename CodeTag>
class rawspeed::AbstractPrefixCodeTranscoder< CodeTag >

Definition at line 35 of file AbstractPrefixCodeTranscoder.h.

Member Typedef Documentation

◆ CodeSymbol

template<typename CodeTag>
using rawspeed::AbstractPrefixCodeTranscoder< CodeTag >::CodeSymbol = typename AbstractPrefixCode<CodeTag>::CodeSymbol

Definition at line 42 of file AbstractPrefixCodeTranscoder.h.

◆ Parent

template<typename CodeTag>
using rawspeed::AbstractPrefixCodeTranscoder< CodeTag >::Parent = AbstractPrefixCode<CodeTag>

Definition at line 41 of file AbstractPrefixCodeTranscoder.h.

◆ Tag

template<typename CodeTag>
using rawspeed::AbstractPrefixCodeTranscoder< CodeTag >::Tag = CodeTag

Definition at line 40 of file AbstractPrefixCodeTranscoder.h.

◆ Traits

template<typename CodeTag>
using rawspeed::AbstractPrefixCodeTranscoder< CodeTag >::Traits = typename AbstractPrefixCode<CodeTag>::Traits

Definition at line 43 of file AbstractPrefixCodeTranscoder.h.

Constructor & Destructor Documentation

◆ AbstractPrefixCodeTranscoder()

template<typename CodeTag>
rawspeed::AbstractPrefixCodeTranscoder< CodeTag >::AbstractPrefixCodeTranscoder ( PrefixCode< CodeTag > code_)
inlineexplicit

Definition at line 47 of file AbstractPrefixCodeTranscoder.h.

References code.

Referenced by operator==().

Here is the caller graph for this function:

Member Function Documentation

◆ __attribute__()

template<typename CodeTag>
size_t RAWSPEED_READONLY rawspeed::AbstractPrefixCodeTranscoder< CodeTag >::__attribute__ ( (pure) ) const
inlinenodiscardprotected

Definition at line 65 of file AbstractPrefixCodeTranscoder.h.

References code, and maxCodeLength().

Here is the call graph for this function:

◆ handleDNGBug16()

template<typename CodeTag>
bool RAWSPEED_READONLY rawspeed::AbstractPrefixCodeTranscoder< CodeTag >::handleDNGBug16 ( ) const
inlinenodiscard

Definition at line 90 of file AbstractPrefixCodeTranscoder.h.

References fixDNGBug16.

Referenced by rawspeed::PrefixCodeVectorEncoder< CodeTag >::encodeDifference(), rawspeed::AbstractPrefixCodeDecoder< CodeTag >::processSymbol(), and rawspeed::PrefixCodeLUTDecoder< CodeTag, PrefixCodeLookupDecoder< CodeTag > >::setup().

Here is the caller graph for this function:

◆ isFullDecode()

template<typename CodeTag>
bool RAWSPEED_READONLY rawspeed::AbstractPrefixCodeTranscoder< CodeTag >::isFullDecode ( ) const
inlinenodiscard

◆ maxCodeLength()

template<typename CodeTag>
size_t RAWSPEED_READONLY rawspeed::AbstractPrefixCodeTranscoder< CodeTag >::maxCodeLength ( ) const
inlinenodiscardprotected

Definition at line 61 of file AbstractPrefixCodeTranscoder.h.

References code.

Referenced by __attribute__(), rawspeed::PrefixCodeLookupDecoder< CodeTag >::finishReadingPartialSymbol(), rawspeed::PrefixCodeVectorDecoder< CodeTag >::finishReadingPartialSymbol(), and rawspeed::PrefixCodeLookupDecoder< CodeTag >::setup().

Here is the caller graph for this function:

◆ operator==()

template<typename CodeTag>
bool rawspeed::AbstractPrefixCodeTranscoder< CodeTag >::operator== ( const AbstractPrefixCodeTranscoder< CodeTag > & other) const
inline

Definition at line 94 of file AbstractPrefixCodeTranscoder.h.

References AbstractPrefixCodeTranscoder(), and code.

Here is the call graph for this function:

◆ setup()

template<typename CodeTag>
void rawspeed::AbstractPrefixCodeTranscoder< CodeTag >::setup ( bool fullDecode_,
bool fixDNGBug16_ )
inlineprotected

Definition at line 71 of file AbstractPrefixCodeTranscoder.h.

References fullDecode, invariant, and verifyCodeValuesAsDiffLengths().

Referenced by rawspeed::AbstractPrefixCodeEncoder< CodeTag >::setup(), rawspeed::PrefixCodeLookupDecoder< CodeTag >::setup(), rawspeed::PrefixCodeTreeDecoder< CodeTag >::setup(), and rawspeed::PrefixCodeVectorDecoder< CodeTag >::setup().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ verifyCodeValuesAsDiffLengths()

template<typename CodeTag>
void rawspeed::AbstractPrefixCodeTranscoder< CodeTag >::verifyCodeValuesAsDiffLengths ( ) const
inline

Definition at line 50 of file AbstractPrefixCodeTranscoder.h.

References assert(), code, and ThrowRDE.

Referenced by setup().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ code

◆ fixDNGBug16

template<typename CodeTag>
bool rawspeed::AbstractPrefixCodeTranscoder< CodeTag >::fixDNGBug16 = false
private

Definition at line 37 of file AbstractPrefixCodeTranscoder.h.

Referenced by handleDNGBug16().

◆ fullDecode

template<typename CodeTag>
bool rawspeed::AbstractPrefixCodeTranscoder< CodeTag >::fullDecode = true
private

Definition at line 36 of file AbstractPrefixCodeTranscoder.h.

Referenced by isFullDecode(), and setup().


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