Grok 20.3.2
CompressSchedulerExcalibur.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 "SchedulerExcalibur.h"
21
22namespace grk
23{
24
31{
32public:
41 CompressSchedulerExcalibur(Tile* tile, bool needsRateControl, TileCodingParams* tcp,
42 const double* mct_norms, uint16_t mct_numcomps);
43
47 ~CompressSchedulerExcalibur() override = default;
48
49private:
54
58 mutable std::mutex distortion_mutex_;
66 std::vector<t1::CompressBlockExec*> encodeBlocks_;
67
71 std::atomic<int64_t> blockCount_;
72
77
81 const double* mct_norms_;
82
86 uint16_t mct_numcomps_;
87};
88
89} // namespace grk
TileCodingParams * tcp_
TileCodingParams for this tile
Definition CompressSchedulerExcalibur.h:76
std::vector< t1::CompressBlockExec * > encodeBlocks_
vector of CompressBlockExec encode blocks
Definition CompressSchedulerExcalibur.h:66
Tile * tile_
Tile to compress
Definition CompressSchedulerExcalibur.h:53
const double * mct_norms_
array of mct norms
Definition CompressSchedulerExcalibur.h:81
uint16_t mct_numcomps_
number of components to apply mct to
Definition CompressSchedulerExcalibur.h:86
bool needsRateControl_
true if rate control requested
Definition CompressSchedulerExcalibur.h:62
std::mutex distortion_mutex_
mutex to serialize distortion decrease from blocks
Definition CompressSchedulerExcalibur.h:58
std::atomic< int64_t > blockCount_
atomic counter to keep track of number of encoded blocks
Definition CompressSchedulerExcalibur.h:71
~CompressSchedulerExcalibur() override=default
Destroys a SchedulerExcalibur.
CompressSchedulerExcalibur(Tile *tile, bool needsRateControl, TileCodingParams *tcp, const double *mct_norms, uint16_t mct_numcomps)
Constructs a CompressSchedulerExcalibur.
Definition CompressSchedulerExcalibur.cpp:58
SchedulerExcalibur(uint16_t numComps)
Constructs a SchedulerExcalibur.
Definition SchedulerExcalibur.cpp:33
ResWindow.
Definition CompressedChunkCache.h:36
Tile coding parameters : this structure is used to store coding/decoding parameters common to all til...
Definition CodingParams.h:124
Definition Tile.h:39