RawSpeed
fast raw decoding library
Loading...
Searching...
No Matches
rawspeed::PentaxDecompressor Class Referencefinal

#include "decompressors/PentaxDecompressor.h"

Inheritance diagram for rawspeed::PentaxDecompressor:
[legend]
Collaboration diagram for rawspeed::PentaxDecompressor:
[legend]

Public Member Functions

 PentaxDecompressor (RawImage img, Optional< ByteStream > metaData)
void decompress (ByteStream data) const

Static Private Member Functions

static HuffmanCode< BaselineCodeTag > SetupPrefixCodeDecoder_Legacy ()
static HuffmanCode< BaselineCodeTag > SetupPrefixCodeDecoder_Modern (ByteStream stream)
static PrefixCodeDecoder SetupPrefixCodeDecoder (Optional< ByteStream > metaData)

Private Attributes

RawImage mRaw
const PrefixCodeDecoder ht

Static Private Attributes

static const std::array< std::array< std::array< uint8_t, 16 >, 2 >, 1 > pentax_tree

Detailed Description

Definition at line 37 of file PentaxDecompressor.h.

Constructor & Destructor Documentation

◆ PentaxDecompressor()

rawspeed::PentaxDecompressor::PentaxDecompressor ( RawImage img,
Optional< ByteStream > metaData )

Definition at line 53 of file PentaxDecompressor.cpp.

References ht, mRaw, SetupPrefixCodeDecoder(), ThrowRDE, and rawspeed::UINT16.

Here is the call graph for this function:

Member Function Documentation

◆ decompress()

void rawspeed::PentaxDecompressor::decompress ( ByteStream data) const

Definition at line 156 of file PentaxDecompressor.cpp.

References rawspeed::Buffer::getAsArray1DRef(), rawspeed::Array2DRef< T >::height(), ht, rawspeed::implicit_cast(), invariant, rawspeed::isIntN(), mRaw, rawspeed::ByteStream::peekRemainingBuffer(), ThrowRDE, and rawspeed::Array2DRef< T >::width().

Here is the call graph for this function:

◆ SetupPrefixCodeDecoder()

PrefixCodeDecoder rawspeed::PentaxDecompressor::SetupPrefixCodeDecoder ( Optional< ByteStream > metaData)
staticprivate

Definition at line 142 of file PentaxDecompressor.cpp.

References ht, SetupPrefixCodeDecoder_Legacy(), and SetupPrefixCodeDecoder_Modern().

Referenced by PentaxDecompressor().

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

◆ SetupPrefixCodeDecoder_Legacy()

HuffmanCode< BaselineCodeTag > rawspeed::PentaxDecompressor::SetupPrefixCodeDecoder_Legacy ( )
staticprivate

Definition at line 68 of file PentaxDecompressor.cpp.

References invariant, pentax_tree, rawspeed::HuffmanCode< CodeTag >::setCodeValues(), and rawspeed::HuffmanCode< CodeTag >::setNCodesPerLength().

Referenced by SetupPrefixCodeDecoder().

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

◆ SetupPrefixCodeDecoder_Modern()

HuffmanCode< BaselineCodeTag > rawspeed::PentaxDecompressor::SetupPrefixCodeDecoder_Modern ( ByteStream stream)
staticprivate

Definition at line 81 of file PentaxDecompressor.cpp.

References assert(), rawspeed::extractHighBits(), rawspeed::ByteStream::getByte(), rawspeed::ByteStream::getU16(), rawspeed::implicit_cast(), invariant, rawspeed::HuffmanCode< CodeTag >::setCodeValues(), rawspeed::HuffmanCode< CodeTag >::setNCodesPerLength(), rawspeed::ByteStream::skipBytes(), and ThrowRDE.

Referenced by SetupPrefixCodeDecoder().

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

Member Data Documentation

◆ ht

const PrefixCodeDecoder rawspeed::PentaxDecompressor::ht
private

Definition at line 39 of file PentaxDecompressor.h.

Referenced by PentaxDecompressor(), decompress(), and SetupPrefixCodeDecoder().

◆ mRaw

RawImage rawspeed::PentaxDecompressor::mRaw
private

Definition at line 38 of file PentaxDecompressor.h.

Referenced by PentaxDecompressor(), and decompress().

◆ pentax_tree

const std::array< std::array< std::array< uint8_t, 16 >, 2 >, 1 > rawspeed::PentaxDecompressor::pentax_tree
staticprivate
Initial value:
= {{
{{{0, 2, 3, 1, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0},
{3, 4, 2, 5, 1, 6, 0, 7, 8, 9, 10, 11, 12}}},
}}

Definition at line 54 of file PentaxDecompressor.h.

Referenced by SetupPrefixCodeDecoder_Legacy().


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