Grok 12.0.1
Public Member Functions | Private Member Functions | Private Attributes | List of all members
grk::CompressScheduler Class Reference

#include <CompressScheduler.h>

Inheritance diagram for grk::CompressScheduler:
grk::Scheduler

Public Member Functions

 CompressScheduler (Tile *tile, bool needsRateControl, TileCodingParams *tcp, const double *mct_norms, uint16_t mct_numcomps)
 
 ~CompressScheduler ()=default
 
bool schedule (uint16_t compno) override
 
- Public Member Functions inherited from grk::Scheduler
 Scheduler (Tile *tile)
 
virtual ~Scheduler ()
 
void graph (uint16_t compno)
 
bool run (void)
 
ImageComponentFlowgetImageComponentFlow (uint16_t compno)
 
tf::Taskflow & getCodecFlow (void)
 
FlowComponentgetPrePostProc (void)
 

Private Member Functions

bool scheduleBlocks (uint16_t compno)
 
void compress (std::vector< CompressBlockExec * > *blocks)
 
bool compress (size_t threadId, uint64_t maxBlocks)
 
void compress (T1Interface *impl, CompressBlockExec *block)
 

Private Attributes

Tiletile
 
std::mutex distortion_mutex
 
bool needsRateControl
 
CompressBlockExec ** encodeBlocks
 
std::atomic< int64_tblockCount
 
TileCodingParamstcp_
 
const doublemct_norms_
 
uint16_t mct_numcomps_
 

Additional Inherited Members

- Protected Attributes inherited from grk::Scheduler
std::atomic_bool success
 
std::vector< T1Interface * > t1Implementations
 
ImageComponentFlow ** imageComponentFlows_
 
tf::Taskflow codecFlow_
 
Tiletile_
 
uint16_t numcomps_
 
FlowComponentprePostProc_
 

Constructor & Destructor Documentation

◆ CompressScheduler()

grk::CompressScheduler::CompressScheduler ( Tile * tile,
bool needsRateControl,
TileCodingParams * tcp,
const double * mct_norms,
uint16_t mct_numcomps )

◆ ~CompressScheduler()

grk::CompressScheduler::~CompressScheduler ( )
default

Member Function Documentation

◆ compress() [1/3]

bool grk::CompressScheduler::compress ( size_t threadId,
uint64_t maxBlocks )
private

◆ compress() [2/3]

void grk::CompressScheduler::compress ( std::vector< CompressBlockExec * > * blocks)
private

◆ compress() [3/3]

void grk::CompressScheduler::compress ( T1Interface * impl,
CompressBlockExec * block )
private

◆ schedule()

bool grk::CompressScheduler::schedule ( uint16_t compno)
overridevirtual

Implements grk::Scheduler.

References scheduleBlocks().

◆ scheduleBlocks()

bool grk::CompressScheduler::scheduleBlocks ( uint16_t compno)
private

Member Data Documentation

◆ blockCount

std::atomic<int64_t> grk::CompressScheduler::blockCount
private

Referenced by compress().

◆ distortion_mutex

std::mutex grk::CompressScheduler::distortion_mutex
mutableprivate

Referenced by compress().

◆ encodeBlocks

CompressBlockExec** grk::CompressScheduler::encodeBlocks
private

Referenced by compress(), and compress().

◆ mct_norms_

const double* grk::CompressScheduler::mct_norms_
private

Referenced by scheduleBlocks().

◆ mct_numcomps_

uint16_t grk::CompressScheduler::mct_numcomps_
private

Referenced by scheduleBlocks().

◆ needsRateControl

bool grk::CompressScheduler::needsRateControl
private

Referenced by compress(), and scheduleBlocks().

◆ tcp_

TileCodingParams* grk::CompressScheduler::tcp_
private

Referenced by scheduleBlocks().

◆ tile

Tile* grk::CompressScheduler::tile
private

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