|
RawSpeed
fast raw decoding library
|
#include "decompressors/PanasonicV5Decompressor.h"
Classes | |
| struct | Block |
| struct | PacketDsc |
| class | ProxyStream |
Public Member Functions | |
| PanasonicV5Decompressor (RawImage img, ByteStream input_, uint32_t bps_) | |
| void | decompress () const noexcept |
Private Member Functions | |
| void | chopInputIntoBlocks (const PacketDsc &dsc) |
| template<const PacketDsc & dsc> | |
| void | processPixelPacket (BitStreamerLSB &bs, int row, int col) const |
| template<const PacketDsc & dsc> | |
| void | processBlock (const Block &block) const |
| template<const PacketDsc & dsc> | |
| void | decompressInternal () const noexcept |
Private Attributes | |
| RawImage | mRaw |
| ByteStream | input |
| const uint32_t | bps |
| uint64_t | numBlocks |
| std::vector< Block > | blocks |
Static Private Attributes | |
| static constexpr uint32_t | BlockSize = 0x4000 |
| static constexpr uint32_t | sectionSplitOffset = 0x1FF8 |
| static constexpr uint32_t | bytesPerPacket = 16 |
| static constexpr uint32_t | bitsPerPacket = 8 * bytesPerPacket |
| static constexpr uint32_t | PacketsPerBlock = BlockSize / bytesPerPacket |
| static const PacketDsc | TwelveBitPacket |
| static const PacketDsc | FourteenBitPacket |
Definition at line 34 of file PanasonicV5Decompressor.h.
| rawspeed::PanasonicV5Decompressor::PanasonicV5Decompressor | ( | RawImage | img, |
| ByteStream | input_, | ||
| uint32_t | bps_ ) |
Definition at line 70 of file PanasonicV5Decompressor.cpp.
References BlockSize, bps, chopInputIntoBlocks(), FourteenBitPacket, rawspeed::ByteStream::getRemainSize(), rawspeed::implicit_cast(), input, invariant, mRaw, numBlocks, PacketsPerBlock, rawspeed::ByteStream::peekStream(), rawspeed::PanasonicV5Decompressor::PacketDsc::pixelsPerPacket, rawspeed::roundUpDivisionSafe(), ThrowRDE, TwelveBitPacket, and rawspeed::UINT16.
Referenced by rawspeed::PanasonicV5Decompressor::PacketDsc::PacketDsc().
|
private |
Definition at line 117 of file PanasonicV5Decompressor.cpp.
References assert(), blocks, BlockSize, dim, rawspeed::implicit_cast(), input, invariant, mRaw, numBlocks, PacketsPerBlock, and rawspeed::PanasonicV5Decompressor::PacketDsc::pixelsPerPacket.
Referenced by PanasonicV5Decompressor().
|
noexcept |
Definition at line 253 of file PanasonicV5Decompressor.cpp.
References bps, and decompressInternal().
Referenced by rawspeed::Rw2Decoder::decodeRawInternal().
|
privatenoexcept |
Definition at line 237 of file PanasonicV5Decompressor.cpp.
References rawspeed::Array1DRef(), blocks, rawspeed::implicit_cast(), and processBlock().
Referenced by decompress().
|
private |
Definition at line 210 of file PanasonicV5Decompressor.cpp.
References rawspeed::PanasonicV5Decompressor::Block::beginCoord, BlockSize, rawspeed::PanasonicV5Decompressor::Block::bs, bytesPerPacket, rawspeed::PanasonicV5Decompressor::Block::endCoord, rawspeed::Buffer::getAsArray1DRef(), rawspeed::PanasonicV5Decompressor::ProxyStream::getStream(), invariant, mRaw, rawspeed::ByteStream::peekRemainingBuffer(), processPixelPacket(), rawspeed::iPoint2D::x, and rawspeed::iPoint2D::y.
Referenced by decompressInternal().
|
inlineprivate |
Definition at line 191 of file PanasonicV5Decompressor.cpp.
References rawspeed::BitStreamer< Tag >::fill(), rawspeed::BitStreamer< Tag >::getBitsNoFill(), rawspeed::BitStreamer< Tag >::getFillLevel(), rawspeed::implicit_cast(), invariant, mRaw, and rawspeed::BitStreamer< Tag >::skipBitsNoFill().
Referenced by processBlock().
|
staticconstexprprivate |
Definition at line 50 of file PanasonicV5Decompressor.h.
Referenced by rawspeed::PanasonicV5Decompressor::PacketDsc::PacketDsc().
|
private |
Definition at line 87 of file PanasonicV5Decompressor.h.
Referenced by chopInputIntoBlocks(), and decompressInternal().
|
staticconstexprprivate |
Definition at line 37 of file PanasonicV5Decompressor.h.
Referenced by PanasonicV5Decompressor(), chopInputIntoBlocks(), rawspeed::PanasonicV5Decompressor::ProxyStream::parseBlock(), and processBlock().
|
private |
Definition at line 69 of file PanasonicV5Decompressor.h.
Referenced by PanasonicV5Decompressor(), and decompress().
|
staticconstexprprivate |
Definition at line 49 of file PanasonicV5Decompressor.h.
Referenced by processBlock().
|
staticconstexprprivate |
Definition at line 59 of file PanasonicV5Decompressor.h.
Referenced by PanasonicV5Decompressor().
|
private |
Definition at line 67 of file PanasonicV5Decompressor.h.
Referenced by PanasonicV5Decompressor(), and chopInputIntoBlocks().
|
private |
Definition at line 64 of file PanasonicV5Decompressor.h.
Referenced by PanasonicV5Decompressor(), chopInputIntoBlocks(), processBlock(), and processPixelPacket().
|
private |
Definition at line 71 of file PanasonicV5Decompressor.h.
Referenced by PanasonicV5Decompressor(), and chopInputIntoBlocks().
|
staticconstexprprivate |
Definition at line 52 of file PanasonicV5Decompressor.h.
Referenced by PanasonicV5Decompressor(), and chopInputIntoBlocks().
|
staticconstexprprivate |
Definition at line 45 of file PanasonicV5Decompressor.h.
Referenced by rawspeed::PanasonicV5Decompressor::ProxyStream::parseBlock().
|
staticconstexprprivate |
Definition at line 58 of file PanasonicV5Decompressor.h.
Referenced by PanasonicV5Decompressor().