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

#include "codes/AbstractPrefixCodeDecoder.h"

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

Public Types

using Base = AbstractPrefixCodeTranscoder<CodeTag>
using Tag = typename Base::Tag
using Parent = typename Base::Parent
using CodeSymbol = typename Base::CodeSymbol
using Traits = typename Base::Traits

Public Member Functions

template<typename BIT_STREAM, bool FULL_DECODE>
int processSymbol (BIT_STREAM &bs, CodeSymbol symbol, typename Traits::CodeValueTy codeValue) const
void verifyCodeValuesAsDiffLengths () const
bool RAWSPEED_READONLY isFullDecode () const
bool RAWSPEED_READONLY handleDNGBug16 () const
bool operator== (const AbstractPrefixCodeTranscoder &other) const

Static Public Member Functions

static int RAWSPEED_READNONE extend (uint32_t diff, uint32_t len)

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::AbstractPrefixCodeDecoder< CodeTag >

Definition at line 32 of file AbstractPrefixCodeDecoder.h.

Member Typedef Documentation

◆ Base

template<typename CodeTag>
using rawspeed::AbstractPrefixCodeDecoder< CodeTag >::Base = AbstractPrefixCodeTranscoder<CodeTag>

Definition at line 34 of file AbstractPrefixCodeDecoder.h.

◆ CodeSymbol

template<typename CodeTag>
using rawspeed::AbstractPrefixCodeDecoder< CodeTag >::CodeSymbol = typename Base::CodeSymbol

Definition at line 38 of file AbstractPrefixCodeDecoder.h.

◆ Parent

template<typename CodeTag>
using rawspeed::AbstractPrefixCodeDecoder< CodeTag >::Parent = typename Base::Parent

Definition at line 37 of file AbstractPrefixCodeDecoder.h.

◆ Tag

template<typename CodeTag>
using rawspeed::AbstractPrefixCodeDecoder< CodeTag >::Tag = typename Base::Tag

Definition at line 36 of file AbstractPrefixCodeDecoder.h.

◆ Traits

template<typename CodeTag>
using rawspeed::AbstractPrefixCodeDecoder< CodeTag >::Traits = typename Base::Traits

Definition at line 39 of file AbstractPrefixCodeDecoder.h.

Member Function Documentation

◆ __attribute__()

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

Definition at line 65 of file AbstractPrefixCodeTranscoder.h.

References code, and maxCodeLength().

Here is the call graph for this function:

◆ extend()

◆ handleDNGBug16()

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

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
inlinenodiscardinherited

◆ maxCodeLength()

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

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
inlineinherited

Definition at line 94 of file AbstractPrefixCodeTranscoder.h.

References AbstractPrefixCodeTranscoder(), and code.

Here is the call graph for this function:

◆ processSymbol()

template<typename CodeTag>
template<typename BIT_STREAM, bool FULL_DECODE>
int rawspeed::AbstractPrefixCodeDecoder< CodeTag >::processSymbol ( BIT_STREAM & bs,
CodeSymbol symbol,
typename Traits::CodeValueTy codeValue ) const
inline

Definition at line 44 of file AbstractPrefixCodeDecoder.h.

References extend(), rawspeed::AbstractPrefixCodeTranscoder< CodeTag >::handleDNGBug16(), and invariant.

Referenced by rawspeed::PrefixCodeLUTDecoder< CodeTag, PrefixCodeLookupDecoder< CodeTag > >::__attribute__(), rawspeed::PrefixCodeLookupDecoder< CodeTag >::decode(), rawspeed::PrefixCodeTreeDecoder< CodeTag >::decode(), and rawspeed::PrefixCodeVectorDecoder< CodeTag >::decode().

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

◆ setup()

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

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
inlineinherited

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
privateinherited

Definition at line 37 of file AbstractPrefixCodeTranscoder.h.

Referenced by handleDNGBug16().

◆ fullDecode

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

Definition at line 36 of file AbstractPrefixCodeTranscoder.h.

Referenced by isFullDecode(), and setup().


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