Grok  10.0.3
DecompressScheduler.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2016-2022 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 "grk_includes.h"
21 
22 namespace grk
23 {
25 {
26  ResDecompressBlocks(void) = default;
27  void clear(void);
28  bool empty(void) const;
29  void release(void);
30 
31  std::vector<DecompressBlockExec*> blocks_;
32 };
33 
34 typedef std::vector<ResDecompressBlocks> ComponentDecompressBlocks;
35 typedef std::vector<ComponentDecompressBlocks> TileDecompressBlocks;
36 
38 {
39  public:
40  DecompressScheduler(TileProcessor* tileProcessor, Tile* tile, TileCodingParams* tcp,
41  uint8_t prec);
43 
44  bool schedule(uint16_t compno) override;
45 
46  private:
47  bool scheduleBlocks(uint16_t compno);
48  bool scheduleWavelet(uint16_t compno);
50  void releaseBlocks(uint16_t compno);
53  uint8_t prec_;
54  uint16_t numcomps_;
57 };
58 
59 } // namespace grk
Definition: DecompressScheduler.h:38
uint16_t numcomps_
Definition: DecompressScheduler.h:54
TileDecompressBlocks tileBlocks_
Definition: DecompressScheduler.h:55
WaveletReverse ** waveletReverse_
Definition: DecompressScheduler.h:56
bool scheduleBlocks(uint16_t compno)
Definition: DecompressScheduler.cpp:90
void releaseBlocks(uint16_t compno)
Definition: DecompressScheduler.cpp:82
~DecompressScheduler()
Definition: DecompressScheduler.cpp:48
DecompressScheduler(TileProcessor *tileProcessor, Tile *tile, TileCodingParams *tcp, uint8_t prec)
Definition: DecompressScheduler.cpp:38
TileCodingParams * tcp_
Definition: DecompressScheduler.h:52
bool decompressBlock(T1Interface *impl, DecompressBlockExec *block)
Definition: DecompressScheduler.cpp:217
TileProcessor * tileProcessor_
Definition: DecompressScheduler.h:51
bool schedule(uint16_t compno) override
Definition: DecompressScheduler.cpp:57
uint8_t prec_
Definition: DecompressScheduler.h:53
bool scheduleWavelet(uint16_t compno)
Definition: DecompressScheduler.cpp:235
Definition: Scheduler.h:22
Definition: T1Interface.h:26
Definition: WaveletReverse.h:140
Copyright (C) 2016-2022 Grok Image Compression Inc.
Definition: ICacheable.h:20
std::vector< ComponentDecompressBlocks > TileDecompressBlocks
Definition: DecompressScheduler.h:35
std::vector< ResDecompressBlocks > ComponentDecompressBlocks
Definition: DecompressScheduler.h:34
Definition: BlockExec.h:45
Definition: DecompressScheduler.h:25
bool empty(void) const
Definition: DecompressScheduler.cpp:27
std::vector< DecompressBlockExec * > blocks_
Definition: DecompressScheduler.h:31
void release(void)
Definition: DecompressScheduler.cpp:31
void clear(void)
Definition: DecompressScheduler.cpp:23
ResDecompressBlocks(void)=default
Tile coding parameters : this structure is used to store coding/decoding parameters common to all til...
Definition: CodingParams.h:122
Definition: TileProcessor.h:39
Definition: TileProcessor.h:78