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

#include "interpolators/Cr2sRawInterpolator.h"

Collaboration diagram for rawspeed::Cr2sRawInterpolator:
[legend]

Classes

struct  YCbCr

Public Member Functions

 Cr2sRawInterpolator (const RawImage &mRaw_, Array2DRef< const uint16_t > input_, std::array< int, 3 > sraw_coeffs_, int hue_)
void interpolate (int version)

Private Member Functions

template<int version>
void YUV_TO_RGB (const YCbCr &p, CroppedArray1DRef< uint16_t > out)
template<int version>
void interpolate_422_row (int row)
template<int version>
void interpolate_422 ()
template<int version>
void interpolate_420_row (int row)
template<int version>
void interpolate_420 ()
template<>
void YUV_TO_RGB (const YCbCr &p, CroppedArray1DRef< uint16_t > out)
template<>
void YUV_TO_RGB (const YCbCr &p, CroppedArray1DRef< uint16_t > out)
template<>
void YUV_TO_RGB (const YCbCr &p, CroppedArray1DRef< uint16_t > out)

Static Private Member Functions

static void STORE_RGB (CroppedArray1DRef< uint16_t > out, int r, int g, int b)

Private Attributes

const RawImagemRaw
const Array2DRef< const uint16_tinput
std::array< int, 3 > sraw_coeffs
int hue

Detailed Description

Definition at line 32 of file Cr2sRawInterpolator.h.

Constructor & Destructor Documentation

◆ Cr2sRawInterpolator()

rawspeed::Cr2sRawInterpolator::Cr2sRawInterpolator ( const RawImage & mRaw_,
Array2DRef< const uint16_t > input_,
std::array< int, 3 > sraw_coeffs_,
int hue_ )
inline

Definition at line 42 of file Cr2sRawInterpolator.h.

References hue, input, mRaw, and sraw_coeffs.

Member Function Documentation

◆ interpolate()

void rawspeed::Cr2sRawInterpolator::interpolate ( int version)

Definition at line 511 of file Cr2sRawInterpolator.cpp.

References interpolate_420(), interpolate_422(), invariant, mRaw, and ThrowRDE.

Referenced by anonymous_namespace{Cr2sRawInterpolatorBenchmark.cpp}::BM_Cr2sRawInterpolator(), and rawspeed::Cr2Decoder::sRawInterpolate().

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

◆ interpolate_420()

template<int version>
void rawspeed::Cr2sRawInterpolator::interpolate_420 ( )
private

Definition at line 349 of file Cr2sRawInterpolator.cpp.

References rawspeed::__attribute__(), rawspeed::Cr2sRawInterpolator::YCbCr::CopyCbCr(), hue, input, interpolate_420_row(), invariant, rawspeed::Cr2sRawInterpolator::YCbCr::LoadCbCr(), rawspeed::Cr2sRawInterpolator::YCbCr::LoadY(), mRaw, and YUV_TO_RGB().

Referenced by interpolate().

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

◆ interpolate_420_row()

template<int version>
void rawspeed::Cr2sRawInterpolator::interpolate_420_row ( int row)
private

Definition at line 194 of file Cr2sRawInterpolator.cpp.

References rawspeed::__attribute__(), rawspeed::Cr2sRawInterpolator::YCbCr::CopyCbCr(), hue, input, invariant, rawspeed::Cr2sRawInterpolator::YCbCr::LoadCbCr(), rawspeed::Cr2sRawInterpolator::YCbCr::LoadY(), mRaw, and YUV_TO_RGB().

Referenced by interpolate_420().

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

◆ interpolate_422()

template<int version>
void rawspeed::Cr2sRawInterpolator::interpolate_422 ( )
private

Definition at line 183 of file Cr2sRawInterpolator.cpp.

References rawspeed::Array2DRef< T >::height(), interpolate_422_row(), invariant, mRaw, and rawspeed::Array2DRef< T >::width().

Referenced by interpolate().

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

◆ interpolate_422_row()

template<int version>
void rawspeed::Cr2sRawInterpolator::interpolate_422_row ( int row)
private

Definition at line 97 of file Cr2sRawInterpolator.cpp.

References rawspeed::Cr2sRawInterpolator::YCbCr::CopyCbCr(), hue, input, invariant, rawspeed::Cr2sRawInterpolator::YCbCr::LoadCbCr(), rawspeed::Cr2sRawInterpolator::YCbCr::LoadY(), mRaw, and YUV_TO_RGB().

Referenced by interpolate_422().

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

◆ STORE_RGB()

void rawspeed::Cr2sRawInterpolator::STORE_RGB ( CroppedArray1DRef< uint16_t > out,
int r,
int g,
int b )
inlinestaticprivate

Definition at line 470 of file Cr2sRawInterpolator.cpp.

References rawspeed::clampBits(), invariant, and rawspeed::CroppedArray1DRef< T >::size().

Referenced by YUV_TO_RGB().

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

◆ YUV_TO_RGB() [1/4]

template<>
void rawspeed::Cr2sRawInterpolator::YUV_TO_RGB ( const YCbCr & p,
CroppedArray1DRef< uint16_t > out )
inlineprivate

Definition at line 501 of file Cr2sRawInterpolator.cpp.

References sraw_coeffs, and STORE_RGB().

Here is the call graph for this function:

◆ YUV_TO_RGB() [2/4]

template<>
void rawspeed::Cr2sRawInterpolator::YUV_TO_RGB ( const YCbCr & p,
CroppedArray1DRef< uint16_t > out )
inlineprivate

Definition at line 490 of file Cr2sRawInterpolator.cpp.

References sraw_coeffs, and STORE_RGB().

Here is the call graph for this function:

◆ YUV_TO_RGB() [3/4]

template<>
void rawspeed::Cr2sRawInterpolator::YUV_TO_RGB ( const YCbCr & p,
CroppedArray1DRef< uint16_t > out )
inlineprivate

Definition at line 480 of file Cr2sRawInterpolator.cpp.

References sraw_coeffs, and STORE_RGB().

Here is the call graph for this function:

◆ YUV_TO_RGB() [4/4]

template<int version>
void rawspeed::Cr2sRawInterpolator::YUV_TO_RGB ( const YCbCr & p,
CroppedArray1DRef< uint16_t > out )
inlineprivate

Referenced by interpolate_420(), interpolate_420_row(), and interpolate_422_row().

Here is the caller graph for this function:

Member Data Documentation

◆ hue

int rawspeed::Cr2sRawInterpolator::hue
private

◆ input

const Array2DRef<const uint16_t> rawspeed::Cr2sRawInterpolator::input
private

◆ mRaw

const RawImage& rawspeed::Cr2sRawInterpolator::mRaw
private

◆ sraw_coeffs

std::array<int, 3> rawspeed::Cr2sRawInterpolator::sraw_coeffs
private

Definition at line 36 of file Cr2sRawInterpolator.h.

Referenced by Cr2sRawInterpolator(), and YUV_TO_RGB().


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