Grok 20.3.2
DecompressScheduler.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2016-2026 Grok Image Compression Inc.
3 *
4 * This source code is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Affero General Public License, version 3,
6 * as published by the Free Software Foundation.
7 *
8 * This source code is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Affero General Public License for more details.
12 *
13 * You should have received a copy of the GNU Affero General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 */
17
18#pragma once
19
20#include <vector>
21
22#include "SchedulerStandard.h"
23#include "TileBlocks.h"
24#include "WaveletReverse.h"
25#include "WaveletPoolData.h"
26
27namespace grk
28{
29
36{
37public:
45 DecompressScheduler(uint16_t numcomps, uint8_t prec, CoderPool* streamPool);
46
50 ~DecompressScheduler() override;
51
52 bool scheduleT1(ITileProcessor* tileProcessor) override;
53
54 void release(void) override;
55
56private:
61
65 uint8_t prec_;
66
71
75 std::vector<WaveletReverse*> waveletReverse_;
76
78
83
87};
88
89} // namespace grk
A collection of tasks which can be scheduled as a single task.
Definition FlowComponent.h:28
DecompressScheduler(uint16_t numcomps, uint8_t prec, CoderPool *streamPool)
Constructs a DecompressScheduler.
Definition DecompressScheduler.cpp:71
CoderPool * streamPool_
Definition DecompressScheduler.h:85
WaveletPoolData waveletPoolData_
Definition DecompressScheduler.h:86
~DecompressScheduler() override
Destroys a DecompressScheduler.
Definition DecompressScheduler.cpp:79
TileBlocks blocksByTile_
TileBlocks
Definition DecompressScheduler.h:70
std::vector< WaveletReverse * > waveletReverse_
vector of WaveletReverse pointers
Definition DecompressScheduler.h:75
CoderPool coderPool_
Definition DecompressScheduler.h:84
FlowComponent * prePostProc_
FlowComponent for pre/post processing
Definition DecompressScheduler.h:82
void release(void) override
Releases Taskflow resources.
Definition DecompressScheduler.cpp:95
FlowComponent * genPrePostProc(void)
Generates a new FlowComponet for pre/post processing.
Definition DecompressScheduler.cpp:426
DifferentialInfo * differentialInfo_
Definition DecompressScheduler.h:77
bool scheduleT1(ITileProcessor *tileProcessor) override
Schedules all T1 tasks for a ITileProcessor.
Definition DecompressScheduler.cpp:102
uint8_t prec_
precision of input image
Definition DecompressScheduler.h:65
SchedulerStandard(uint16_t numComps)
Constructs a SchedulerStandard.
Definition SchedulerStandard.cpp:30
Per-image pool of per-thread scratch buffers for the 5/3 wavelet.
Definition WaveletPoolData.h:40
ResWindow.
Definition CompressedChunkCache.h:36
std::vector< ComponentBlocks > TileBlocks
Definition TileBlocks.h:76
Definition CoderPool.h:53
Stores number of layers compressed in differential decompression.
Definition CodecScheduler.h:48
Interface for managing tile compression/decompression.
Definition ITileProcessor.h:37