Grok 12.0.1
|
#include <TileProcessor.h>
Public Attributes | |
bool | first_poc_tile_part_ |
Compression Only true for first POC tile part, otherwise false. | |
uint8_t | tilePartCounter_ |
Compressing Only index of tile part being currently coding. | |
uint32_t | pino |
Compression Only Current packet iterator number. | |
GrkImage * | headerImage |
grk_plugin_tile * | current_plugin_tile |
CodingParams * | cp_ |
PLCache | packetLengthCache |
Private Member Functions | |
bool | isWholeTileDecompress (uint16_t compno) |
Returns whether a tile component should be fully decompressed, taking into account win_* members. | |
bool | needsMctDecompress (uint16_t compno) |
bool | needsMctDecompress (void) |
bool | mctDecompress (FlowComponent *flow) |
bool | dcLevelShiftCompress () |
bool | mct_encode () |
bool | dwt_encode () |
void | t1_encode () |
bool | encodeT2 (uint32_t *packet_bytes_written) |
bool | rateAllocate (uint32_t *allPacketBytes, bool disableRateControl) |
bool | layerNeedsRateControl (uint32_t layno) |
bool | makeSingleLosslessLayer () |
void | makeLayerFinal (uint32_t layno) |
bool | pcrdBisectSimple (uint32_t *p_data_written, bool disableRateControl) |
void | makeLayerSimple (uint32_t layno, double thresh, bool finalAttempt) |
Private Attributes | |
Tile * | tile |
Scheduler * | scheduler_ |
uint64_t | numProcessedPackets |
std::atomic< uint64_t > | numDecompressedPackets |
uint64_t | tilePartDataLength |
uint16_t | tileIndex_ |
index of tile being currently compressed/decompressed | |
PacketTracker | packetTracker_ |
BufferedStream * | stream_ |
bool | corrupt_packet_ |
uint32_t | newTilePartProgressionPosition |
position of the tile part flag in progression order | |
TileCodingParams * | tcp_ |
bool | truncated |
GrkImage * | image_ |
bool | isCompressor_ |
grk_rect32 | unreducedImageWindow |
uint32_t | preCalculatedTileLen |
mct * | mct_ |
|
explicit |
grk::TileProcessor::~TileProcessor | ( | ) |
References GRK_TILE_CACHE_NONE, mct_, release(), and scheduler_.
bool grk::TileProcessor::cacheTilePartPackets | ( | CodeStreamDecompress * | codeStream | ) |
References grk::TileLengthMarkers::addTileMarkerInfo(), grk::DECOMPRESS_STATE_NO_EOC, grk::DECOMPRESS_STATE_TPH_SOT, grk::Logger::error(), grk::CodeStreamDecompress::get_current_decode_tcp(), grk::CodeStreamDecompress::getCodeStreamInfo(), grk::CodeStreamDecompress::getDecompressorState(), grk::BufferedStream::getZeroCopyPtr(), grk::grk_read(), grk::J2K_MS_SOD, grk::Logger::logger_, grk::MARKER_BYTES, grk::BufferedStream::numBytesLeft(), grk::BufferedStream::read(), grk::DecompressorState::setState(), stream_, grk::BufferedStream::supportsZeroCopy(), grk::BufferedStream::tell(), tileIndex_, tilePartDataLength, truncated, and grk::Logger::warn().
Referenced by grk::CodeStreamDecompress::parseTileParts().
References grk::CodingParams::coding_params_, cp_, grk::EncodingParams::enableTilePartGeneration_, grk::CodingParams::enc_, grk::CodingParams::tcps, and tileIndex_.
Referenced by doCompress(), and grk::CodeStreamCompress::writeTilePart().
References cp_, GRK_IS_CINEMA, grk::grk_read(), grk::TileCodingParams::hasPoc(), grk::CodingParams::rsiz, grk::CodingParams::tcps, tileIndex_, and tilePartCounter_.
Referenced by doCompress(), and grk::CodeStreamCompress::writeTilePart().
References _grk_image::comps, grk::Tile::comps, grk::grk_read(), headerImage, isCompressor_, grk::Tile::numcomps_, grk::grk_rect< T >::scaleDownCeil(), tile, and unreducedImageWindow.
Referenced by decompressT2T1(), and preCompressTile().
|
private |
References _grk_image::comps, grk::Tile::comps, grk::TileComponentCodingParams::dc_level_shift_, grk::grk_read(), headerImage, needsMctDecompress(), grk::Tile::numcomps_, grk::TileCodingParams::tccps, tcp_, and tile.
Referenced by doCompress().
void grk::TileProcessor::deallocBuffers | ( | ) |
References grk::Tile::comps, grk::TileComponent::dealloc(), grk::grk_read(), grk::Tile::numcomps_, and tile.
Referenced by decompressT2T1().
References grk::TileComponent::allocRegionWindow(), _grk_image::comps, grk::Tile::comps, cp_, createWindowBuffers(), current_plugin_tile, deallocBuffers(), grk::mct::decompress_dc_shift_irrev(), grk::mct::decompress_dc_shift_rev(), _grk_plugin_tile::decompress_flags, grk::Logger::error(), generateImage(), ExecSingleton::get(), grk::Scheduler::getCodecFlow(), grk::ImageComponentFlow::getFinalFlowT1(), grk::Scheduler::getImageComponentFlow(), getIndex(), getNumDecompressedPackets(), grk::Scheduler::getPrePostProc(), getTile(), getTileCodingParams(), GRK_DECODE_POST_T1, GRK_DECODE_T1, GRK_DECODE_T2, grk::grk_read(), headerImage, isWholeTileDecompress(), grk::Logger::logger_, grk::TileCodingParams::mct, mct_, mctDecompress(), needsMctDecompress(), _grk_image::numcomps, grk::Tile::numcomps_, grk::Resolution::parserMap_, _grk_image_comp::prec, FlowComponent::precede(), grk::ParserMap::precinctParsers_, grk::TileComponent::resolutions_, grk::Scheduler::run(), grk::Scheduler::schedule(), scheduler_, grk::TileCodingParams::tccps, tcp_, tile, tileIndex_, truncated, grk::Logger::warn(), and grk::CodingParams::wholeTileDecompress_.
References canPreCalculateTileLen(), canWritePocMarker(), grk::PacketTracker::clear(), grk::CodingParams::coding_params_, cp_, grk::PLCache::createMarkers(), current_plugin_tile, dcLevelShiftCompress(), grk::PLCache::deleteMarkers(), dwt_encode(), grk::CodingParams::enc_, grk::Logger::error(), grk::PLCache::getMarkers(), grk::TileCodingParams::getNumProgressions(), grk::CodeStreamCompress::getPocSize(), grk::PLMarkerMgr::getTotalBytesWritten(), grk_plugin_get_debug_state(), GRK_PLUGIN_STATE_DEBUG, GRK_PLUGIN_STATE_MCT_ONLY, grk::grk_read(), grk::Logger::logger_, mct_encode(), grk::Tile::numcomps_, packetLengthCache, packetTracker_, preCalculatedTileLen, rateAllocate(), grk::sot_marker_segment_len_minus_tile_data_len, stream_, t1_encode(), tcp_, grk::CodingParams::tcps, tile, tileIndex_, grk::Logger::warn(), and grk::EncodingParams::writePLT.
|
private |
References grk::WaveletFwdImpl::compress(), grk::Tile::comps, grk::grk_read(), grk::Tile::numcomps_, grk::TileCodingParams::tccps, tcp_, and tile.
Referenced by doCompress().
References first_poc_tile_part_, grk::Precinct::getDecompressedBlockPtr(), grk::grk_read(), grk::TileCodingParams::max_layers_, newTilePartProgressionPosition, grk::TileComponent::numresolutions, pino, grk::TileComponent::resolutions_, stream_, tcp_, tileIndex_, and grk::grk_rect< T >::x0.
Referenced by writeTilePartT2().
References grk::GrkImage::duplicate(), grk_object_unref(), grk::grk_read(), image_, and _grk_image::obj.
Referenced by decompressT2T1().
References image_.
Referenced by grk::CodeStreamDecompress::getImage().
References tileIndex_.
Referenced by grk::PacketIter::checkForRemainingValidProgression(), decompressT2T1(), grk::PacketIter::enableTilePartGeneration(), grk::CodeStreamDecompress::findNextSOT(), grk::CodeStreamDecompress::get_current_decode_tcp(), grk::CodeStreamDecompress::nextTLM(), grk::CodeStreamDecompress::parseTileParts(), grk::PacketParser::readHeader(), setTilePartDataLength(), grk::CodeStreamCompress::writeTilePart(), and grk::CodeStreamCompress::writeTileParts().
References grk::CodingParams::coding_params_, cp_, grk::CodingParams::dec_, grk::grk_read(), grk::Tile::numcomps_, grk::TileComponentCodingParams::numresolutions, grk::DecodingParams::reduce_, grk::TileCodingParams::tccps, grk::CodingParams::tcps, tile, and tileIndex_.
Referenced by grk::PacketIter::init().
References numDecompressedPackets.
Referenced by decompressT2T1().
References numProcessedPackets.
Referenced by grk::T2Compress::compressPacket(), and grk::T2Decompress::processPacket().
PacketTracker * grk::TileProcessor::getPacketTracker | ( | void | ) |
References packetTracker_.
Referenced by grk::T2Compress::compressPacket(), grk::T2Compress::compressPacketSimulate(), and grk::T2Compress::compressPacketsSimulate().
References preCalculatedTileLen.
Referenced by grk::CodeStreamCompress::writeTilePart().
References scheduler_.
BufferedStream * grk::TileProcessor::getStream | ( | void | ) |
References stream_.
TileCodingParams * grk::TileProcessor::getTileCodingParams | ( | void | ) |
References tilePartDataLength.
Referenced by grk::CodeStreamDecompress::parseTileParts().
grk_rect32 grk::TileProcessor::getUnreducedTileWindow | ( | void | ) |
References grk::grk_rect< T >::clip(), tile, and unreducedImageWindow.
Referenced by grk::PacketIter::genPrecinctInfo(), grk::PacketIter::next_pcrl(), and grk::PacketIter::validatePrecinct().
References numDecompressedPackets.
Referenced by grk::PacketParser::readDataFinalize().
References grk::grk_read(), and numProcessedPackets.
References numProcessedPackets.
Referenced by grk::T2Compress::compressPackets(), and grk::T2Decompress::processPacket().
References tileIndex_.
Referenced by grk::CodeStreamCompress::writeTileParts().
void grk::TileProcessor::ingestImage | ( | ) |
References _grk_image::comps, grk::Tile::comps, grk::grk_read(), headerImage, _grk_image::numcomps, tile, _grk_image::x0, and _grk_image::y0.
Referenced by preCompressTile().
References _grk_image::comps, grk::Tile::comps, grk::grk_read(), headerImage, _grk_image::numcomps, and tile.
References _grk_image::comps, grk::Tile::comps, cp_, current_plugin_tile, grk::Logger::error(), grk::CodingParams::getTileBounds(), grk_plugin_get_debug_state(), GRK_PLUGIN_STATE_DEBUG, grk::grk_read(), headerImage, grk::PacketTracker::init(), isCompressor_, grk::Logger::logger_, _grk_image::numcomps, grk::Tile::numcomps_, numProcessedPackets, grk::TileComponent::numresolutions, packetTracker_, grk::TileComponent::resolutions_, grk::CodingParams::t_grid_width, grk::CodingParams::tcps, tile, grk::tile_equals(), tileIndex_, grk::Logger::warn(), grk::grk_rect< T >::x0, grk::grk_rect< T >::x1, grk::grk_rect< T >::y0, and grk::grk_rect< T >::y1.
Referenced by grk::CodeStreamDecompress::parseTileParts(), and preCompressTile().
References isCompressor_.
Referenced by grk::TileComponent::init(), and grk::Resolution::init().
Returns whether a tile component should be fully decompressed, taking into account win_* members.
compno | Component number |
References grk::TileComponentWindowBase< T >::bounds(), grk::Tile::comps, grk::TileComponent::getWindow(), grk::grk_read(), grk::grk_rect< T >::intersection(), and tile.
Referenced by decompressT2T1().
References grk::CodingParams::coding_params_, cp_, grk::TileCodingParams::distortion, grk::CodingParams::enc_, grk::grk_read(), grk::TileCodingParams::rates, and tcp_.
Referenced by makeSingleLosslessLayer(), needsRateControl(), and pcrdBisectSimple().
|
private |
References layerNeedsRateControl(), makeLayerFinal(), grk::TileCodingParams::max_layers_, and tcp_.
Referenced by pcrdBisectSimple().
|
private |
References grk::mct::compress_custom(), grk::mct::compress_irrev(), grk::mct::compress_rev(), _grk_image::comps, grk::Tile::comps, grk::TileComponentWindow< T >::getResWindowBufferHighestSimple(), grk::TileComponent::getWindow(), grk::grk_read(), headerImage, grk::TileCodingParams::mct, mct_, grk::TileCodingParams::mct_coding_matrix_, grk::Tile::numcomps_, grk::TileComponentCodingParams::qmfbid, _grk_image_comp::sgnd, grk::TileComponentWindow< T >::stridedArea(), grk::TileCodingParams::tccps, tcp_, and tile.
Referenced by doCompress().
|
private |
References _grk_image::comps, grk::Tile::comps, grk::mct::decompress_custom(), grk::mct::decompress_irrev(), grk::mct::decompress_rev(), grk::TileComponentWindow< T >::getResWindowBufferHighestSimple(), grk::TileComponent::getWindow(), grk::grk_read(), headerImage, grk::TileCodingParams::mct, mct_, grk::TileCodingParams::mct_decoding_matrix_, grk::Tile::numcomps_, grk::TileComponentCodingParams::qmfbid, _grk_image_comp::sgnd, grk::TileComponentWindow< T >::stridedArea(), grk::TileCodingParams::tccps, tcp_, and tile.
Referenced by decompressT2T1().
References needsMctDecompress().
bool grk::TileProcessor::needsRateControl | ( | ) |
References grk::grk_read(), layerNeedsRateControl(), grk::TileCodingParams::max_layers_, and tcp_.
Referenced by t1_encode().
|
private |
References grk::EncodingParams::allocationByFixedQuality_, grk::grk_rect< T >::area(), grk::CodingParams::coding_params_, grk::compress_synch_with_plugin(), _grk_image::comps, grk::Tile::comps, cp_, grk::TileCodingParams::distortion, grk::Tile::distortion, grk::CodingParams::enc_, grk::PLCache::getMarkers(), grk_plugin_get_debug_state(), GRK_PLUGIN_STATE_PRE_TR1, grk::grk_read(), headerImage, grk::Tile::layerDistoration, layerNeedsRateControl(), makeLayerFinal(), makeLayerSimple(), makeSingleLosslessLayer(), grk::TileCodingParams::max_layers_, grk::maxCompressLayersGRK, newTilePartProgressionPosition, grk::Tile::numcomps_, packetLengthCache, _grk_image_comp::prec, grk::TileComponent::resolutions_, tcp_, tile, grk::Resolution::tileBand, and tileIndex_.
Referenced by rateAllocate().
References _grk_image::comps, grk::Tile::comps, cp_, createWindowBuffers(), current_plugin_tile, grk::Logger::error(), first_poc_tile_part_, grk::grk_read(), headerImage, ingestImage(), init(), grk::Logger::logger_, _grk_image::numcomps, grk::CodingParams::t_grid_height, grk::CodingParams::t_grid_width, tile, and tilePartCounter_.
|
private |
References grk::grk_read(), and pcrdBisectSimple().
Referenced by doCompress().
void grk::TileProcessor::release | ( | GRK_TILE_CACHE_STRATEGY | strategy | ) |
References grk_object_unref(), grk::grk_read(), GRK_TILE_CACHE_NONE, image_, _grk_image::obj, and tile.
Referenced by ~TileProcessor().
References grk::Logger::error(), grk::grk_read(), grk::Logger::logger_, grk::MARKER_LENGTH_BYTES, and tilePartDataLength.
Referenced by grk::CodeStreamDecompress::readCurrentMarkerBody().
|
private |
References grk::mct::get_norms_irrev(), grk::mct::get_norms_rev(), grk::grk_read(), headerImage, needsRateControl(), _grk_image::numcomps, grk::Scheduler::schedule(), scheduler_, tcp_, and tile.
Referenced by doCompress().
|
private |
CodingParams* grk::TileProcessor::cp_ |
Referenced by canPreCalculateTileLen(), canWritePocMarker(), grk::T2Compress::compressPackets(), grk::T2Compress::compressPacketsSimulate(), grk::T2Decompress::decompressPackets(), decompressT2T1(), doCompress(), getMaxNumDecompressResolutions(), getTileCodingParams(), grk::TileComponent::init(), init(), grk::PacketIter::isWholeTile(), layerNeedsRateControl(), pcrdBisectSimple(), preCompressTile(), grk::PacketParser::readData(), and grk::PacketParser::readHeader().
grk_plugin_tile* grk::TileProcessor::current_plugin_tile |
Referenced by decompressT2T1(), doCompress(), grk::CodeStreamDecompress::findNextSOT(), grk::Resolution::init(), init(), and preCompressTile().
bool grk::TileProcessor::first_poc_tile_part_ |
Compression Only true for first POC tile part, otherwise false.
Referenced by encodeT2(), preCompressTile(), and grk::CodeStreamCompress::writeTileParts().
GrkImage* grk::TileProcessor::headerImage |
Referenced by grk::T2Compress::compressPackets(), grk::T2Compress::compressPacketsSimulate(), createWindowBuffers(), dcLevelShiftCompress(), grk::T2Decompress::decompressPackets(), decompressT2T1(), ingestImage(), ingestUncompressedData(), init(), mct_encode(), mctDecompress(), needsMctDecompress(), pcrdBisectSimple(), preCompressTile(), and t1_encode().
|
private |
Referenced by generateImage(), getImage(), and release().
|
private |
Referenced by createWindowBuffers(), init(), and isCompressor().
|
private |
Referenced by decompressT2T1(), mct_encode(), mctDecompress(), and ~TileProcessor().
|
private |
position of the tile part flag in progression order
Referenced by encodeT2(), and pcrdBisectSimple().
|
private |
Referenced by getNumDecompressedPackets(), and incNumDecompressedPackets().
|
private |
Referenced by getNumProcessedPackets(), incNumProcessedPackets(), incNumProcessedPackets(), and init().
PLCache grk::TileProcessor::packetLengthCache |
|
private |
Referenced by doCompress(), getPacketTracker(), and init().
uint32_t grk::TileProcessor::pino |
Compression Only Current packet iterator number.
Referenced by encodeT2(), and grk::CodeStreamCompress::writeTileParts().
|
private |
Referenced by doCompress(), and getPreCalculatedTileLen().
|
private |
Referenced by decompressT2T1(), getScheduler(), t1_encode(), and ~TileProcessor().
|
private |
Referenced by cacheTilePartPackets(), doCompress(), encodeT2(), getStream(), setTilePartDataLength(), and writeTilePartT2().
|
private |
|
private |
Referenced by createWindowBuffers(), dcLevelShiftCompress(), deallocBuffers(), decompressT2T1(), doCompress(), dwt_encode(), getMaxNumDecompressResolutions(), getTile(), getUnreducedTileWindow(), ingestImage(), ingestUncompressedData(), init(), isWholeTileDecompress(), makeLayerFinal(), makeLayerSimple(), mct_encode(), mctDecompress(), needsMctDecompress(), pcrdBisectSimple(), preCompressTile(), release(), and t1_encode().
|
private |
index of tile being currently compressed/decompressed
Referenced by cacheTilePartPackets(), canPreCalculateTileLen(), canWritePocMarker(), decompressT2T1(), doCompress(), encodeT2(), getIndex(), getMaxNumDecompressResolutions(), getTileCodingParams(), incrementIndex(), init(), and pcrdBisectSimple().
uint8_t grk::TileProcessor::tilePartCounter_ |
Compressing Only index of tile part being currently coding.
tilePartCounter_ holds the total number of tile parts encoded thus far while the compressor is compressing the current tile part.
Referenced by canWritePocMarker(), preCompressTile(), grk::CodeStreamCompress::writeTilePart(), grk::CodeStreamCompress::writeTileParts(), and writeTilePartT2().
|
private |
Referenced by cacheTilePartPackets(), getTilePartDataLength(), setTilePartDataLength(), and subtractMarkerSegmentLength().
|
private |
Referenced by cacheTilePartPackets(), and decompressT2T1().
|
private |
Referenced by createWindowBuffers(), and getUnreducedTileWindow().