Grok 20.3.2
Coder.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 <cstdint>
21
22#include "BlockCoder.h"
23#include "ICoder.h"
24#include "BlockExec.h"
25
26namespace grk::t1::part1
27{
28
29class Coder : public ICoder
30{
31public:
32 Coder(bool isCompressor, uint16_t maxCblkW, uint16_t maxCblkH, uint32_t cacheStrategy);
33 virtual ~Coder();
34
35 bool compress(CompressBlockExec* block) override;
36 bool decompress(DecompressBlockExec* block) override;
37
38private:
39 bool preCompress(CompressBlockExec* block, uint32_t& max);
42};
43
44} // namespace grk::t1::part1
Definition BlockCoder.h:28
interface to code block compressor / decompressor
Definition ICoder.h:31
virtual ~Coder()
Definition Coder.cpp:32
Coder(bool isCompressor, uint16_t maxCblkW, uint16_t maxCblkH, uint32_t cacheStrategy)
Definition Coder.cpp:27
bool preCompress(CompressBlockExec *block, uint32_t &max)
Definition Coder.cpp:36
uint32_t cacheStrategy_
Definition Coder.h:41
bool decompress(DecompressBlockExec *block) override
decompress code block
Definition Coder.cpp:166
BlockCoder * blockCoder_
Definition Coder.h:40
bool compress(CompressBlockExec *block) override
compress code block
Definition Coder.cpp:121
Definition Coder.cpp:25
Definition BlockExec.h:129
Definition BlockExec.h:64