|
RawSpeed
fast raw decoding library
|
#include "decompressors/PanasonicV4Decompressor.h"
Classes | |
| struct | Block |
| class | ProxyStream |
Public Member Functions | |
| PanasonicV4Decompressor (RawImage img, ByteStream input_, bool zero_is_not_bad, uint32_t section_split_offset_) | |
| void | decompress () const noexcept |
Private Member Functions | |
| void | chopInputIntoBlocks () |
| void | processPixelPacket (ProxyStream &bits, int row, int col, std::vector< uint32_t > *zero_pos) const noexcept |
| void | processBlock (const Block &block, std::vector< uint32_t > *zero_pos) const noexcept |
| void | decompressThread () const noexcept |
Private Attributes | |
| RawImage | mRaw |
| ByteStream | input |
| bool | zero_is_bad |
| uint32_t | section_split_offset |
| std::vector< Block > | blocks |
Static Private Attributes | |
| static constexpr uint32_t | BlockSize = 0x4000 |
| static constexpr int | PixelsPerPacket = 14 |
| static constexpr uint32_t | BytesPerPacket = 16 |
| static constexpr uint32_t | PacketsPerBlock = BlockSize / BytesPerPacket |
| static constexpr uint32_t | PixelsPerBlock = PixelsPerPacket * PacketsPerBlock |
Definition at line 32 of file PanasonicV4Decompressor.h.
| rawspeed::PanasonicV4Decompressor::PanasonicV4Decompressor | ( | RawImage | img, |
| ByteStream | input_, | ||
| bool | zero_is_not_bad, | ||
| uint32_t | section_split_offset_ ) |
Definition at line 49 of file PanasonicV4Decompressor.cpp.
References BlockSize, BytesPerPacket, chopInputIntoBlocks(), rawspeed::implicit_cast(), input, invariant, mRaw, rawspeed::ByteStream::peekStream(), PixelsPerPacket, rawspeed::roundUp(), section_split_offset, ThrowRDE, rawspeed::UINT16, and zero_is_bad.
|
private |
Definition at line 88 of file PanasonicV4Decompressor.cpp.
References assert(), blocks, BlockSize, BytesPerPacket, rawspeed::implicit_cast(), input, invariant, mRaw, PixelsPerBlock, PixelsPerPacket, and rawspeed::roundUpDivisionSafe().
Referenced by PanasonicV4Decompressor().
|
noexcept |
Definition at line 268 of file PanasonicV4Decompressor.cpp.
References assert(), blocks, and decompressThread().
|
privatenoexcept |
Definition at line 243 of file PanasonicV4Decompressor.cpp.
References rawspeed::Array1DRef(), assert(), blocks, rawspeed::implicit_cast(), mRaw, processBlock(), and zero_is_bad.
Referenced by decompress().
|
privatenoexcept |
Definition at line 220 of file PanasonicV4Decompressor.cpp.
References invariant, mRaw, PixelsPerPacket, processPixelPacket(), and section_split_offset.
Referenced by decompressThread().
|
inlineprivatenoexcept |
Definition at line 173 of file PanasonicV4Decompressor.cpp.
References rawspeed::extractHighBits(), rawspeed::implicit_cast(), mRaw, PixelsPerPacket, and zero_is_bad.
Referenced by processBlock().
|
private |
Definition at line 71 of file PanasonicV4Decompressor.h.
Referenced by chopInputIntoBlocks(), decompress(), and decompressThread().
|
staticconstexprprivate |
Definition at line 33 of file PanasonicV4Decompressor.h.
Referenced by PanasonicV4Decompressor(), chopInputIntoBlocks(), and rawspeed::PanasonicV4Decompressor::ProxyStream::parseBlock().
|
staticconstexprprivate |
Definition at line 37 of file PanasonicV4Decompressor.h.
Referenced by PanasonicV4Decompressor(), and chopInputIntoBlocks().
|
private |
Definition at line 46 of file PanasonicV4Decompressor.h.
Referenced by PanasonicV4Decompressor(), and chopInputIntoBlocks().
|
private |
Definition at line 45 of file PanasonicV4Decompressor.h.
Referenced by PanasonicV4Decompressor(), chopInputIntoBlocks(), decompressThread(), processBlock(), and processPixelPacket().
|
staticconstexprprivate |
Definition at line 39 of file PanasonicV4Decompressor.h.
|
staticconstexprprivate |
Definition at line 41 of file PanasonicV4Decompressor.h.
Referenced by chopInputIntoBlocks().
|
staticconstexprprivate |
Definition at line 35 of file PanasonicV4Decompressor.h.
Referenced by PanasonicV4Decompressor(), chopInputIntoBlocks(), processBlock(), and processPixelPacket().
|
private |
Definition at line 55 of file PanasonicV4Decompressor.h.
Referenced by PanasonicV4Decompressor(), and processBlock().
|
private |
Definition at line 47 of file PanasonicV4Decompressor.h.
Referenced by PanasonicV4Decompressor(), decompressThread(), and processPixelPacket().