Grok 20.3.2
grk::DecompressScheduler Class Reference

schedule and run T1 decompression More...

#include <DecompressScheduler.h>

Inheritance diagram for grk::DecompressScheduler:
grk::SchedulerStandard grk::CodecScheduler FlowComponent

Public Member Functions

 DecompressScheduler (uint16_t numcomps, uint8_t prec, CoderPool *streamPool)
 Constructs a DecompressScheduler.
 ~DecompressScheduler () override
 Destroys a DecompressScheduler.
bool scheduleT1 (ITileProcessor *tileProcessor) override
 Schedules all T1 tasks for a ITileProcessor.
void release (void) override
 Releases Taskflow resources.
Public Member Functions inherited from grk::SchedulerStandard
 SchedulerStandard (uint16_t numComps)
 Constructs a SchedulerStandard.
 ~SchedulerStandard () override
 Destroys a SchedulerStandard.
void release (void) override
 Releases flow components.
ImageComponentFlowgetImageComponentFlow (uint16_t compno)
 Gets ImageComponentFlow for component.
Public Member Functions inherited from grk::CodecScheduler
 CodecScheduler (uint16_t numComps)
 Contructs a CodecScheduler.
virtual ~CodecScheduler ()
 Destroys a CodecScheduler.
void run (void)
 Runs tf::Executor.
bool wait (void)
 Waits for tf::Executor to complete.
Public Member Functions inherited from FlowComponent
void addTo (tf::Taskflow &composition)
 Composes this FlowComponent's tf::Taskflow with another tf::Taskflow.
void precede (FlowComponent &successor)
 Schedule this FlowComponent before another FlowComponent.
void precede (tf::Task &successor)
 Schedule this Taskflow before another FlowComponent.
tf::Task & getCompositionTask (void)
void conditional_precede (FlowComponent *root, FlowComponent *successor, std::function< int()> condition_lambda)
 Conditionally schedule successor based on condition_lambda.
FlowComponentname (const std::string &name)
 Gets name of composition task.
tf::Task & nextTask ()
 Gets next task placeholder for componentFlow_.

Private Member Functions

FlowComponentgenPrePostProc (void)
 Generates a new FlowComponet for pre/post processing.

Private Attributes

uint8_t prec_
 precision of input image
TileBlocks blocksByTile_
 TileBlocks
std::vector< WaveletReverse * > waveletReverse_
 vector of WaveletReverse pointers
DifferentialInfodifferentialInfo_
FlowComponentprePostProc_
 FlowComponent for pre/post processing
CoderPool coderPool_
CoderPoolstreamPool_
WaveletPoolData waveletPoolData_

Additional Inherited Members

Protected Member Functions inherited from grk::SchedulerStandard
void graph (uint16_t compno)
 Calculates task graph for component.
Protected Member Functions inherited from grk::CodecScheduler
void releaseCoders (void)
Protected Attributes inherited from grk::SchedulerStandard
std::vector< ImageComponentFlow * > imageComponentFlow_
 store image component flows
Protected Attributes inherited from grk::CodecScheduler
std::atomic_bool success_
 atomic tracking of compress/decompress success
uint16_t numcomps_
 number of components
std::vector< t1::ICoder * > coders_
 pool of ICoder
tf::Future< void > runFuture_
 tf::Future<void> resulting from running scheduler

Detailed Description

schedule and run T1 decompression

Constructor & Destructor Documentation

◆ DecompressScheduler()

grk::DecompressScheduler::DecompressScheduler ( uint16_t numcomps,
uint8_t prec,
CoderPool * streamPool )

Constructs a DecompressScheduler.

Parameters
numcompsnumber of components
precprecision of input image
streamPoolcode stream pool

References blocksByTile_, differentialInfo_, prec_, prePostProc_, grk::SchedulerStandard::SchedulerStandard(), streamPool_, and waveletReverse_.

◆ ~DecompressScheduler()

grk::DecompressScheduler::~DecompressScheduler ( )
override

Member Function Documentation

◆ genPrePostProc()

FlowComponent * grk::DecompressScheduler::genPrePostProc ( void )
private

Generates a new FlowComponet for pre/post processing.

References prePostProc_.

Referenced by scheduleT1().

◆ release()

void grk::DecompressScheduler::release ( void )
overridevirtual

Releases Taskflow resources.

Implements grk::CodecScheduler.

References prePostProc_, and grk::SchedulerStandard::release().

Referenced by ~DecompressScheduler().

◆ scheduleT1()

bool grk::DecompressScheduler::scheduleT1 ( ITileProcessor * proc)
overridevirtual

Schedules all T1 tasks for a ITileProcessor.

Parameters
procITileProcessor
Returns
true if successful

Implements grk::CodecScheduler.

References grk::t1::BlockExec::bandIndex, grk::t1::BlockExec::bandNumbps, grk::t1::BlockExec::bandOrientation, grk::ResBlocks::blocks_, grk::Resflow::blocks_, blocksByTile_, grk::t1::DecompressBlockExec::cblk, grk::t1::BlockExec::cblk_sty, grk::ResBlocks::clear(), coderPool_, grk::ResBlocks::combine(), grk::Tile::comps_, grk::TileComponent::currentPacketProgressionState_, differentialInfo_, grk::ITileProcessor::doPostT1(), grk::DcShiftParam::enabled, grk::gain_b, genPrePostProc(), TFSingleton::get(), grk::ITileProcessor::getCodingParams(), grk::ITileProcessor::getHeaderImage(), grk::SchedulerStandard::getImageComponentFlow(), grk::ITileProcessor::getMCT(), grk::ResolutionChecker::getResBounds(), grk::ITileProcessor::getScheduler(), grk::ITileProcessor::getTCP(), grk::ITileProcessor::getTile(), grk::ITileProcessor::getTileCacheStrategy(), grk::SchedulerStandard::graph(), GRK_TILE_CACHE_ALL, grk::grklog, grk::SchedulerStandard::imageComponentFlow_, grk::TileComponent::isWholeTileDecoding(), grk::t1::BlockExec::k_msbs, grk::t1::CoderFactory::makeCoder(), grk::DcShiftParam::max, grk::DcShiftParam::min, grk::ITileProcessor::needsMctDecompress(), FlowComponent::nextTask(), TFSingleton::num_threads(), grk::CodecScheduler::numcomps_, grk::PacketProgressionState::numResolutionsRead(), prec_, grk::t1::BlockExec::qmfbid, grk::t1::BlockExec::R_b, grk::t1::DecompressBlockExec::resno, grk::t1::DecompressBlockExec::roishift, grk::DcShiftParam::shift, grk::ITileProcessor::shouldDecodeComponent(), grk::t1::BlockExec::stepsize, streamPool_, grk::CodecScheduler::success_, grk::CodingParams::t_height_, grk::CodingParams::t_width_, waveletPoolData_, waveletReverse_, and grk::TileCodingParams::wholeTileDecompress_.

Member Data Documentation

◆ blocksByTile_

TileBlocks grk::DecompressScheduler::blocksByTile_
private

◆ coderPool_

CoderPool grk::DecompressScheduler::coderPool_
private

Referenced by scheduleT1().

◆ differentialInfo_

DifferentialInfo* grk::DecompressScheduler::differentialInfo_
private

◆ prec_

uint8_t grk::DecompressScheduler::prec_
private

precision of input image

Referenced by DecompressScheduler(), and scheduleT1().

◆ prePostProc_

FlowComponent* grk::DecompressScheduler::prePostProc_
private

FlowComponent for pre/post processing

Referenced by DecompressScheduler(), genPrePostProc(), and release().

◆ streamPool_

CoderPool* grk::DecompressScheduler::streamPool_
private

Referenced by DecompressScheduler(), and scheduleT1().

◆ waveletPoolData_

WaveletPoolData grk::DecompressScheduler::waveletPoolData_
private

Referenced by scheduleT1().

◆ waveletReverse_

std::vector<WaveletReverse*> grk::DecompressScheduler::waveletReverse_
private

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