|
RawSpeed
fast raw decoding library
|
#include "common/RawImage.h"
Public Attributes | |
| iPoint2D | dim |
| int | pitch = 0 |
| uint32_t | padding = 0 |
| bool | isCFA {true} |
| ColorFilterArray | cfa |
| int | blackLevel = -1 |
| std::array< int, 4 > | blackLevelSeparateStorage |
| Optional< Array2DRef< int > > | blackLevelSeparate |
| Optional< int > | whitePoint |
| std::vector< BlackArea > | blackAreas |
| std::vector< uint8_t, AlignedAllocator< uint8_t, 16 > > | mBadPixelMap |
| uint32_t | mBadPixelMapPitch = 0 |
| bool | mDitherScale |
| ImageMetaData | metadata |
| Mutex | mBadPixelMutex |
Protected Member Functions | |
| RawImageData ()=default | |
| RawImageData (RawImageType type, const iPoint2D &dim, int bpp, int cpp=1) | |
| virtual void | scaleValues (int start_y, int end_y)=0 |
| virtual void | doLookup (int start_y, int end_y)=0 |
| virtual void | fixBadPixel (uint32_t x, uint32_t y, int component=0)=0 |
| void | fixBadPixelsThread (int start_y, int end_y) |
| void | startWorker (RawImageWorker::RawImageWorkerTask task, bool cropped) |
Protected Attributes | |
| RawImageType | dataType |
| std::vector< uint8_t, DefaultInitAllocatorAdaptor< uint8_t, AlignedAllocator< uint8_t, 16 > > > | data |
| int | cpp = 1 |
| int | bpp = 0 |
| iPoint2D | mOffset |
| iPoint2D | uncropped_dim |
| std::unique_ptr< TableLookUp > | table |
Private Member Functions | |
| virtual void | anchor () const |
Private Attributes | |
| Mutex | mutex |
Friends | |
| class | RawImageWorker |
| class | RawImage |
Definition at line 111 of file RawImage.h.
|
virtualdefault |
|
protecteddefault |
References RawImageData(), bpp, cpp, and dim.
Referenced by RawImageData(), rawspeed::RawImageDataFloat::RawImageDataFloat(), and rawspeed::RawImageDataU16::RawImageDataU16().
|
protected |
Definition at line 56 of file RawImage.cpp.
References assert(), bpp, cpp, createData(), dataType, dim, isCFA, and ThrowRDE.
|
privatevirtual |
Definition at line 51 of file RawImage.cpp.
|
pure virtual |
Implemented in rawspeed::RawImageDataFloat, and rawspeed::RawImageDataU16.
References calculateBlackAreas().
Referenced by calculateBlackAreas().
| void rawspeed::RawImageData::clearArea | ( | iRectangle2D | area | ) |
Definition at line 326 of file RawImage.cpp.
References rawspeed::iRectangle2D::area(), cpp, dim, rawspeed::iRectangle2D::getBottom(), rawspeed::iRectangle2D::getLeft(), rawspeed::iRectangle2D::getOverlap(), rawspeed::iRectangle2D::getTop(), getU16DataAsCroppedArray2DRef(), rawspeed::iRectangle2D::getWidth(), x, and y.
Referenced by rawspeed::RafDecoder::applyCorrections().
| void rawspeed::RawImageData::createBadPixelMap | ( | ) |
Definition at line 201 of file RawImage.cpp.
References assert(), rawspeed::implicit_cast(), isAllocated(), mBadPixelMap, mBadPixelMapPitch, rawspeed::roundUp(), rawspeed::roundUpDivisionSafe(), ThrowRDE, and uncropped_dim.
Referenced by transferBadPixelsToMap().
| void rawspeed::RawImageData::createData | ( | ) |
Definition at line 68 of file RawImage.cpp.
References assert(), bpp, cpp, data, dim, getByteDataAsUncroppedArray2DRef(), rawspeed::implicit_cast(), rawspeed::isAligned(), isAllocated(), padding, pitch, poisonPadding(), rawspeed::roundUp(), ThrowRDE, and uncropped_dim.
Referenced by RawImageData(), LLVMFuzzerTestOneInput(), and rawspeed::LLVMFuzzerTestOneInput().
|
protectedpure virtual |
Implemented in rawspeed::RawImageDataFloat, and rawspeed::RawImageDataU16.
|
protectedpure virtual |
Implemented in rawspeed::RawImageDataFloat, and rawspeed::RawImageDataU16.
References fixBadPixelsThread(), startWorker(), x, and y.
Referenced by fixBadPixelsThread().
| void rawspeed::RawImageData::fixBadPixels | ( | ) |
Definition at line 232 of file RawImage.cpp.
References rawspeed::RawImageWorker::FIX_BAD_PIXELS, mBadPixelMap, startWorker(), transferBadPixelsToMap(), and uncropped_dim.
Referenced by rawspeed::RawDecoder::decodeRaw(), and setWithLookUp().
|
protected |
Definition at line 298 of file RawImage.cpp.
References rawspeed::Array2DRef(), fixBadPixel(), mBadPixelMap, mBadPixelMapPitch, uncropped_dim, rawspeed::val, x, and y.
Referenced by fixBadPixel().
|
inlinenodiscard |
Definition at line 119 of file RawImage.h.
References bpp.
Referenced by rawspeed::LLVMFuzzerTestOneInput(), and main().
|
inlinenodiscardnoexcept |
Definition at line 330 of file RawImage.h.
References dataType, rawspeed::F32, getF32DataAsUncroppedArray2DRef(), getU16DataAsUncroppedArray2DRef(), and rawspeed::UINT16.
Referenced by createData(), rawspeed::RawDecoder::decodeRaw(), rawspeed::rstest::anonymous_namespace{rstest.cpp}::imgDataHash(), LLVMFuzzerTestOneInput(), and rawspeed::LLVMFuzzerTestOneInput().
|
inlinenodiscard |
Definition at line 118 of file RawImage.h.
References cpp.
Referenced by rawspeed::DngOpcodes::PixelOpcode::PixelOpcode(), rawspeed::DngOpcodes::PixelOpcode::applyOP(), rawspeed::anonymous_namespace{DngOpcodes.cpp}::getImageCropAsRectangle(), main(), rawspeed::DngOpcodes::FixBadPixelsConstant::setup(), rawspeed::rstest::anonymous_namespace{rstest.cpp}::writePFM(), and rawspeed::rstest::anonymous_namespace{rstest.cpp}::writePPM().
|
nodiscard |
Definition at line 171 of file RawImage.cpp.
References mOffset.
Referenced by rawspeed::DngOpcodes::FixBadPixelsConstant::apply(), and main().
|
inlinenodiscard |
Definition at line 125 of file RawImage.h.
References dataType.
Referenced by rawspeed::DngOpcodes::OffsetPerRowOrCol< S >::apply(), rawspeed::DngOpcodes::ScalePerRowOrCol< S >::apply(), rawspeed::anonymous_namespace{DngOpcodes.cpp}::getImageCropAsRectangle(), LLVMFuzzerTestOneInput(), rawspeed::LLVMFuzzerTestOneInput(), main(), rawspeed::DngOpcodes::FixBadPixelsConstant::setup(), and rawspeed::rstest::anonymous_namespace{rstest.cpp}::writeImage().
|
inherited |
Definition at line 47 of file ErrorLog.cpp.
References mutex.
Referenced by GUARDED_BY(), and main().
|
inlinenodiscardnoexcept |
Definition at line 324 of file RawImage.h.
References cpp, dim, getF32DataAsUncroppedArray2DRef(), and mOffset.
Referenced by rawspeed::anonymous_namespace{DngOpcodes.cpp}::getDataAsCroppedArray2DRef(), rawspeed::anonymous_namespace{DngOpcodes.cpp}::getImageCropAsRectangle(), rawspeed::RawImageDataFloat::scaleBlackWhite(), and rawspeed::RawImageDataFloat::scaleValues().
|
inlinenodiscardnoexcept |
Definition at line 310 of file RawImage.h.
References assert(), cpp, data, dataType, rawspeed::F32, pitch, and uncropped_dim.
Referenced by rawspeed::RawImageDataFloat::calculateBlackAreas(), rawspeed::RawImageDataFloat::fixBadPixel(), getByteDataAsUncroppedArray2DRef(), getF32DataAsCroppedArray2DRef(), LLVMFuzzerTestOneInput(), and rawspeed::rstest::anonymous_namespace{rstest.cpp}::writePFM().
|
inlinenodiscardnoexcept |
Definition at line 304 of file RawImage.h.
References cpp, dim, getU16DataAsUncroppedArray2DRef(), and mOffset.
Referenced by rawspeed::DngOpcodes::FixBadPixelsConstant::apply(), clearArea(), rawspeed::anonymous_namespace{DngOpcodes.cpp}::getDataAsCroppedArray2DRef(), rawspeed::anonymous_namespace{DngOpcodes.cpp}::getImageCropAsRectangle(), rawspeed::RawImageDataU16::scaleBlackWhite(), and rawspeed::RawImageDataU16::scaleValues_plain().
|
inlinenodiscardnoexcept |
Definition at line 290 of file RawImage.h.
References assert(), cpp, data, dataType, pitch, rawspeed::UINT16, and uncropped_dim.
Referenced by rawspeed::RafDecoder::applyCorrections(), anonymous_namespace{Cr2sRawInterpolatorBenchmark.cpp}::BM_Cr2sRawInterpolator(), rawspeed::RawImageDataU16::calculateBlackAreas(), rawspeed::RawImageDataU16::doLookup(), rawspeed::RawImageDataU16::fixBadPixel(), getByteDataAsUncroppedArray2DRef(), getU16DataAsCroppedArray2DRef(), LLVMFuzzerTestOneInput(), rawspeed::Cr2Decoder::sRawInterpolate(), and rawspeed::rstest::anonymous_namespace{rstest.cpp}::writePPM().
|
nodiscard |
Definition at line 167 of file RawImage.cpp.
References uncropped_dim.
Referenced by rawspeed::DngOpcodes::FixBadPixelsList::FixBadPixelsList(), anonymous_namespace{main.cpp}::BM_RawSpeed(), LLVMFuzzerTestOneInput(), main(), rawspeed::rstest::anonymous_namespace{rstest.cpp}::writePFM(), and rawspeed::rstest::anonymous_namespace{rstest.cpp}::writePPM().
| std::vector< uint32_t > mBadPixelPositions rawspeed::RawImageData::GUARDED_BY | ( | mBadPixelMutex | ) |
References mBadPixelMutex.
|
inlinenodiscard |
Definition at line 152 of file RawImage.h.
References data, and isAllocated().
Referenced by createBadPixelMap(), createData(), isAllocated(), and setCpp().
|
inherited |
Definition at line 34 of file ErrorLog.cpp.
References mutex.
| void rawspeed::RawImageData::poisonPadding | ( | ) |
Definition at line 127 of file RawImage.cpp.
Referenced by createData().
|
pure virtual |
Implemented in rawspeed::RawImageDataFloat, and rawspeed::RawImageDataU16.
References scaleBlackWhite().
Referenced by scaleBlackWhite().
|
protectedpure virtual |
Implemented in rawspeed::RawImageDataFloat, and rawspeed::RawImageDataU16.
| void rawspeed::RawImageData::setCpp | ( | uint32_t | val | ) |
Definition at line 153 of file RawImage.cpp.
References bpp, cpp, isAllocated(), ThrowRDE, and rawspeed::val.
Referenced by CreateRawImage().
|
inherited |
Definition at line 29 of file ErrorLog.cpp.
References mutex.
| void rawspeed::RawImageData::setTable | ( | const std::vector< uint16_t > & | table_, |
| bool | dither ) |
Definition at line 385 of file RawImage.cpp.
References assert(), and setTable().
Referenced by setTable(), and setWithLookUp().
| void rawspeed::RawImageData::setTable | ( | std::unique_ptr< TableLookUp > | t | ) |
Definition at line 381 of file RawImage.cpp.
References table.
|
pure virtual |
Implemented in rawspeed::RawImageDataFloat, and rawspeed::RawImageDataU16.
References fixBadPixels(), mBadPixelMutex, REQUIRES, setTable(), setWithLookUp(), sixteenBitLookup(), and transferBadPixelsToMap().
Referenced by setWithLookUp().
| void rawspeed::RawImageData::sixteenBitLookup | ( | ) |
Definition at line 374 of file RawImage.cpp.
References rawspeed::RawImageWorker::APPLY_LOOKUP, startWorker(), and table.
Referenced by setWithLookUp().
|
protected |
Definition at line 271 of file RawImage.cpp.
References dim, rawspeed::RawImageWorker::FULL_IMAGE, RawImageWorker, rawspeed_get_number_of_processor_cores(), and uncropped_dim.
Referenced by fixBadPixel(), fixBadPixels(), rawspeed::RawImageDataFloat::scaleBlackWhite(), rawspeed::RawImageDataU16::scaleBlackWhite(), and sixteenBitLookup().
| void rawspeed::RawImageData::subFrame | ( | iRectangle2D | cropped | ) |
Definition at line 175 of file RawImage.cpp.
References cfa, rawspeed::iRectangle2D::dim, dim, rawspeed::iRectangle2D::hasPositiveArea(), isCFA, rawspeed::iPoint2D::isThisInside(), mOffset, rawspeed::iRectangle2D::pos, ThrowRDE, rawspeed::WARNING, rawspeed::writeLog(), rawspeed::iPoint2D::x, and rawspeed::iPoint2D::y.
Referenced by rawspeed::DngOpcodes::TrimBounds::apply(), and LLVMFuzzerTestOneInput().
| void rawspeed::RawImageData::transferBadPixelsToMap | ( | ) |
Definition at line 211 of file RawImage.cpp.
References assert(), createBadPixelMap(), mBadPixelMap, mBadPixelMapPitch, mBadPixelMutex, and uncropped_dim.
Referenced by fixBadPixels(), LLVMFuzzerTestOneInput(), and setWithLookUp().
| void rawspeed::RawImageData::unpoisonPadding | ( | ) |
Definition at line 146 of file RawImage.cpp.
|
friend |
|
friend |
Definition at line 114 of file RawImage.h.
References RawImageWorker.
Referenced by RawImageWorker, and startWorker().
| std::vector<BlackArea> rawspeed::RawImageData::blackAreas |
Definition at line 174 of file RawImage.h.
Referenced by rawspeed::RawImageDataFloat::calculateBlackAreas(), rawspeed::RawImageDataU16::calculateBlackAreas(), rawspeed::RawImageDataFloat::scaleBlackWhite(), and rawspeed::RawImageDataU16::scaleBlackWhite().
| int rawspeed::RawImageData::blackLevel = -1 |
Definition at line 163 of file RawImage.h.
Referenced by rawspeed::RawImageDataFloat::calculateBlackAreas(), rawspeed::RawImageDataU16::calculateBlackAreas(), main(), rawspeed::RawImageDataFloat::scaleBlackWhite(), and rawspeed::RawImageDataU16::scaleBlackWhite().
| Optional<Array2DRef<int> > rawspeed::RawImageData::blackLevelSeparate |
Definition at line 165 of file RawImage.h.
Referenced by rawspeed::RawImageDataFloat::calculateBlackAreas(), rawspeed::RawImageDataU16::calculateBlackAreas(), main(), rawspeed::RawImageDataFloat::scaleBlackWhite(), rawspeed::RawImageDataU16::scaleBlackWhite(), rawspeed::RawImageDataFloat::scaleValues(), and rawspeed::RawImageDataU16::scaleValues_plain().
| std::array<int, 4> rawspeed::RawImageData::blackLevelSeparateStorage |
Definition at line 164 of file RawImage.h.
Referenced by rawspeed::RawImageDataFloat::calculateBlackAreas(), and rawspeed::RawImageDataU16::calculateBlackAreas().
|
protected |
Definition at line 202 of file RawImage.h.
Referenced by RawImageData(), RawImageData(), rawspeed::RawImageDataFloat::RawImageDataFloat(), rawspeed::RawImageDataU16::RawImageDataU16(), createData(), getBpp(), and setCpp().
| ColorFilterArray rawspeed::RawImageData::cfa |
Definition at line 162 of file RawImage.h.
Referenced by rawspeed::RafDecoder::applyCorrections(), LLVMFuzzerTestOneInput(), main(), and subFrame().
|
protected |
Definition at line 201 of file RawImage.h.
Referenced by RawImageData(), RawImageData(), clearArea(), createData(), rawspeed::RawImageDataU16::doLookup(), rawspeed::RawImageDataFloat::fixBadPixel(), rawspeed::RawImageDataU16::fixBadPixel(), getCpp(), getF32DataAsCroppedArray2DRef(), getF32DataAsUncroppedArray2DRef(), getU16DataAsCroppedArray2DRef(), getU16DataAsUncroppedArray2DRef(), rawspeed::RawImageDataFloat::scaleBlackWhite(), rawspeed::RawImageDataU16::scaleBlackWhite(), rawspeed::RawImageDataFloat::scaleValues(), rawspeed::RawImageDataU16::scaleValues_plain(), and setCpp().
|
protected |
Definition at line 200 of file RawImage.h.
Referenced by createData(), getF32DataAsUncroppedArray2DRef(), getU16DataAsUncroppedArray2DRef(), and isAllocated().
|
protected |
Definition at line 190 of file RawImage.h.
Referenced by RawImageData(), rawspeed::RawImageDataFloat::RawImageDataFloat(), rawspeed::RawImageDataU16::RawImageDataU16(), getByteDataAsUncroppedArray2DRef(), getDataType(), getF32DataAsUncroppedArray2DRef(), and getU16DataAsUncroppedArray2DRef().
| iPoint2D rawspeed::RawImageData::dim |
Definition at line 154 of file RawImage.h.
Referenced by RawImageData(), RawImageData(), rawspeed::RafDecoder::applyCorrections(), rawspeed::RawImageDataFloat::calculateBlackAreas(), rawspeed::RawImageDataU16::calculateBlackAreas(), clearArea(), anonymous_namespace{DeflateDecompressorBenchmark.cpp}::compressChunk(), createData(), CreateRawImage(), getF32DataAsCroppedArray2DRef(), getU16DataAsCroppedArray2DRef(), LLVMFuzzerTestOneInput(), main(), rawspeed::RawImageDataFloat::scaleBlackWhite(), rawspeed::RawImageDataU16::scaleBlackWhite(), rawspeed::RawImageDataFloat::scaleValues(), rawspeed::RawImageDataU16::scaleValues_plain(), rawspeed::Cr2Decoder::sRawInterpolate(), startWorker(), and subFrame().
| bool rawspeed::RawImageData::isCFA {true} |
Definition at line 161 of file RawImage.h.
Referenced by RawImageData(), rawspeed::RawImageDataFloat::calculateBlackAreas(), rawspeed::RawImageDataU16::calculateBlackAreas(), CreateRawImage(), rawspeed::RawImageDataFloat::fixBadPixel(), rawspeed::RawImageDataU16::fixBadPixel(), LLVMFuzzerTestOneInput(), main(), and subFrame().
| std::vector<uint8_t, AlignedAllocator<uint8_t, 16> > rawspeed::RawImageData::mBadPixelMap |
Definition at line 180 of file RawImage.h.
Referenced by createBadPixelMap(), rawspeed::RawImageDataFloat::fixBadPixel(), rawspeed::RawImageDataU16::fixBadPixel(), fixBadPixels(), fixBadPixelsThread(), and transferBadPixelsToMap().
| uint32_t rawspeed::RawImageData::mBadPixelMapPitch = 0 |
Definition at line 181 of file RawImage.h.
Referenced by createBadPixelMap(), rawspeed::RawImageDataFloat::fixBadPixel(), rawspeed::RawImageDataU16::fixBadPixel(), fixBadPixelsThread(), and transferBadPixelsToMap().
| Mutex rawspeed::RawImageData::mBadPixelMutex |
Definition at line 186 of file RawImage.h.
Referenced by rawspeed::DngOpcodes::FixBadPixelsConstant::apply(), rawspeed::DngOpcodes::FixBadPixelsList::apply(), GUARDED_BY(), setWithLookUp(), and transferBadPixelsToMap().
| bool rawspeed::RawImageData::mDitherScale |
Definition at line 182 of file RawImage.h.
Referenced by rawspeed::RawImageDataU16::scaleValues_plain().
| ImageMetaData rawspeed::RawImageData::metadata |
Definition at line 184 of file RawImage.h.
Referenced by rawspeed::RafDecoder::applyCorrections(), anonymous_namespace{Cr2sRawInterpolatorBenchmark.cpp}::BM_Cr2sRawInterpolator(), rawspeed::RawDecoder::decodeRaw(), main(), rawspeed::RawImageDataU16::scaleBlackWhite(), and rawspeed::Cr2Decoder::sRawInterpolate().
|
protected |
Definition at line 204 of file RawImage.h.
Referenced by rawspeed::RawImageDataFloat::calculateBlackAreas(), rawspeed::RawImageDataU16::calculateBlackAreas(), getCropOffset(), getF32DataAsCroppedArray2DRef(), getU16DataAsCroppedArray2DRef(), rawspeed::RawImageDataFloat::scaleValues(), rawspeed::RawImageDataU16::scaleValues_plain(), and subFrame().
|
privateinherited |
Definition at line 31 of file ErrorLog.h.
Referenced by getErrors(), GUARDED_BY(), isTooManyErrors(), and setError().
| uint32_t rawspeed::RawImageData::padding = 0 |
Definition at line 159 of file RawImage.h.
Referenced by createData().
| int rawspeed::RawImageData::pitch = 0 |
Definition at line 155 of file RawImage.h.
Referenced by createData(), getF32DataAsUncroppedArray2DRef(), and getU16DataAsUncroppedArray2DRef().
|
protected |
Definition at line 206 of file RawImage.h.
Referenced by rawspeed::RawImageDataU16::doLookup(), setTable(), rawspeed::RawImageDataFloat::setWithLookUp(), rawspeed::RawImageDataU16::setWithLookUp(), and sixteenBitLookup().
|
protected |
Definition at line 205 of file RawImage.h.
Referenced by rawspeed::RawImageDataFloat::calculateBlackAreas(), rawspeed::RawImageDataU16::calculateBlackAreas(), createBadPixelMap(), createData(), rawspeed::RawImageDataU16::doLookup(), rawspeed::RawImageDataFloat::fixBadPixel(), rawspeed::RawImageDataU16::fixBadPixel(), fixBadPixels(), fixBadPixelsThread(), getF32DataAsUncroppedArray2DRef(), getU16DataAsUncroppedArray2DRef(), getUncroppedDim(), startWorker(), and transferBadPixelsToMap().
| Optional<int> rawspeed::RawImageData::whitePoint |
Definition at line 172 of file RawImage.h.
Referenced by rawspeed::VC5Decompressor::VC5Decompressor(), LLVMFuzzerTestOneInput(), main(), rawspeed::RawImageDataU16::scaleBlackWhite(), rawspeed::RawImageDataFloat::scaleValues(), rawspeed::RawImageDataU16::scaleValues(), and rawspeed::RawImageDataU16::scaleValues_plain().