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

#include "decompressors/LJpegDecompressor.h"

Collaboration diagram for rawspeed::LJpegDecompressor:
[legend]

Classes

struct  Frame
struct  PerComponentRecipe

Public Member Functions

template<const iPoint2D & MCUSize>
 LJpegDecompressor (RawImage img, iRectangle2D imgFrame, Frame frame, std::vector< PerComponentRecipe > rec, int numLJpegRowsPerRestartInterval_, Array1DRef< const uint8_t > input)
ByteStream::size_type decode () const

Private Member Functions

template<int N_COMP, size_t... I>
std::array< std::reference_wrapper< const PrefixCodeDecoder<> >, N_COMP > getPrefixCodeDecodersImpl (std::index_sequence< I... >) const
template<int N_COMP>
std::array< std::reference_wrapper< const PrefixCodeDecoder<> >, N_COMP > getPrefixCodeDecoders () const
template<int N_COMP>
std::array< uint16_t, N_COMP > getInitialPreds () const
template<const iPoint2D & MCUSize, int N_COMP>
 __attribute__ ((always_inline)) inline void decodeRowN(Array2DRef< uint16_t > outStripe

Private Attributes

RawImage mRaw
const Array1DRef< const uint8_t > input
const iRectangle2D imgFrame
const Frame frame
const std::vector< PerComponentReciperec
const int numLJpegRowsPerRestartInterval
int numFullMCUs = 0
int trailingPixels = 0
Array2DRef< const uint16_tpred
Array2DRef< const uint16_t > std::array< std::reference_wrapper< const PrefixCodeDecoder<> >, N_COMP > ht
Array2DRef< const uint16_t > std::array< std::reference_wrapper< const PrefixCodeDecoder<> >, N_COMP > BitStreamerJPEG &bs const

Detailed Description

Definition at line 42 of file LJpegDecompressor.h.

Constructor & Destructor Documentation

◆ LJpegDecompressor()

template<const iPoint2D & MCUSize>
rawspeed::LJpegDecompressor::LJpegDecompressor ( RawImage img,
iRectangle2D imgFrame,
Frame frame,
std::vector< PerComponentRecipe > rec,
int numLJpegRowsPerRestartInterval_,
Array1DRef< const uint8_t > input )
nodiscard

Definition at line 52 of file LJpegDecompressor.cpp.

References frame, imgFrame, rawspeed::implicit_cast(), input, mRaw, numFullMCUs, numLJpegRowsPerRestartInterval, rec, rawspeed::roundUpDivisionSafe(), ThrowRDE, trailingPixels, and rawspeed::UINT16.

Here is the call graph for this function:

Member Function Documentation

◆ __attribute__()

template<const iPoint2D & MCUSize, int N_COMP>
rawspeed::LJpegDecompressor::__attribute__ ( (always_inline) )
private

◆ decode()

ByteStream::size_type rawspeed::LJpegDecompressor::decode ( ) const
nodiscard

Definition at line 341 of file LJpegDecompressor.cpp.

References frame.

Referenced by rawspeed::LJpegDecoder::decodeScan(), and LLVMFuzzerTestOneInput().

Here is the caller graph for this function:

◆ getInitialPreds()

template<int N_COMP>
std::array< uint16_t, N_COMP > rawspeed::LJpegDecompressor::getInitialPreds ( ) const
nodiscardprivate

Definition at line 169 of file LJpegDecompressor.cpp.

References rec.

◆ getPrefixCodeDecoders()

template<int N_COMP>
std::array< std::reference_wrapper< const PrefixCodeDecoder<> >, N_COMP > rawspeed::LJpegDecompressor::getPrefixCodeDecoders ( ) const
nodiscardprivate

Definition at line 164 of file LJpegDecompressor.cpp.

References getPrefixCodeDecodersImpl().

Here is the call graph for this function:

◆ getPrefixCodeDecodersImpl()

template<int N_COMP, size_t... I>
std::array< std::reference_wrapper< const PrefixCodeDecoder<> >, N_COMP > rawspeed::LJpegDecompressor::getPrefixCodeDecodersImpl ( std::index_sequence< I... > ) const
nodiscardprivate

Definition at line 156 of file LJpegDecompressor.cpp.

References ht, and rec.

Referenced by getPrefixCodeDecoders().

Here is the caller graph for this function:

Member Data Documentation

◆ const

Array2DRef<const uint16_t> std::array<std::reference_wrapper<const PrefixCodeDecoder<> >, N_COMP> BitStreamerJPEG& bs rawspeed::LJpegDecompressor::const
private

Definition at line 83 of file LJpegDecompressor.h.

◆ frame

const Frame rawspeed::LJpegDecompressor::frame
private

Definition at line 59 of file LJpegDecompressor.h.

Referenced by LJpegDecompressor(), and decode().

◆ ht

Array2DRef<const uint16_t> std::array<std::reference_wrapper<const PrefixCodeDecoder<> >, N_COMP> rawspeed::LJpegDecompressor::ht
private

Definition at line 82 of file LJpegDecompressor.h.

Referenced by getPrefixCodeDecodersImpl().

◆ imgFrame

const iRectangle2D rawspeed::LJpegDecompressor::imgFrame
private

Definition at line 57 of file LJpegDecompressor.h.

Referenced by LJpegDecompressor().

◆ input

const Array1DRef<const uint8_t> rawspeed::LJpegDecompressor::input
private

Definition at line 55 of file LJpegDecompressor.h.

Referenced by LJpegDecompressor().

◆ mRaw

RawImage rawspeed::LJpegDecompressor::mRaw
private

Definition at line 54 of file LJpegDecompressor.h.

Referenced by LJpegDecompressor().

◆ numFullMCUs

int rawspeed::LJpegDecompressor::numFullMCUs = 0
private

Definition at line 63 of file LJpegDecompressor.h.

Referenced by LJpegDecompressor().

◆ numLJpegRowsPerRestartInterval

const int rawspeed::LJpegDecompressor::numLJpegRowsPerRestartInterval
private

Definition at line 61 of file LJpegDecompressor.h.

Referenced by LJpegDecompressor().

◆ pred

Array2DRef<const uint16_t> rawspeed::LJpegDecompressor::pred
private

Definition at line 81 of file LJpegDecompressor.h.

◆ rec

const std::vector<PerComponentRecipe> rawspeed::LJpegDecompressor::rec
private

◆ trailingPixels

int rawspeed::LJpegDecompressor::trailingPixels = 0
private

Definition at line 64 of file LJpegDecompressor.h.

Referenced by LJpegDecompressor().


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