Grok 20.3.2
T2Compress.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
20namespace grk
21{
22struct ITileProcessor;
23
28{
30
31 /*
32 Encode the packets of a tile to a destination buffer
33 @param tileno number of the tile encoded
34 @param maxlayers maximum number of layers
35 @param dest the destination buffer
36 @param p_data_written amount of data written
37 @param first_poc_tile_part true if first POC tile part, otherwise false
38 @param newTilePartProgressionPosition The position of the tile part flag in the
39 progression order
40 @param prog_iter_num packet iterator number
41 */
42 bool compressPackets(uint16_t tileno, uint16_t maxlayers, IStream* stream,
43 uint32_t* p_data_written, bool first_poc_tile_part,
44 uint8_t newTilePartProgressionPosition, uint32_t prog_iter_num);
45
58 bool compressPacketsSimulate(uint16_t tileno, uint16_t maxlayers, uint32_t* p_data_written,
59 uint32_t max_len, uint8_t newTilePartProgressionPosition,
60 PLMarker* markers, bool isFinal, bool debug);
61
62private:
64
73 bool compressPacket(TileCodingParams* tcp, PacketIter* pi, IStream* stream,
74 uint32_t* p_data_written);
75
87 bool compressPacketSimulate(TileCodingParams* tcp, PacketIter* pi, uint32_t* p_data_written,
88 uint32_t len, PLMarker* markers, bool debug);
89
90 bool compressHeader(t1_t2::BitIO* bio, Resolution* res, uint16_t layno, uint64_t precinctIndex);
91};
92
93} // namespace grk
Definition BitIO.h:47
ResWindow.
Definition CompressedChunkCache.h:36
Definition IStream.h:60
Interface for managing tile compression.
Definition ITileProcessorCompress.h:31
Interface for managing tile compression/decompression.
Definition ITileProcessor.h:37
Manages raw (uncompressed) PLT and PLM markers.
Definition PLMarker.h:53
Iterates through JPEG 2000 packets following a progression order.
Definition PacketIter.h:240
Stores a tile component resolution's dimensions, sub bands and other information.
Definition Resolution.h:31
bool compressPacketsSimulate(uint16_t tileno, uint16_t maxlayers, uint32_t *p_data_written, uint32_t max_len, uint8_t newTilePartProgressionPosition, PLMarker *markers, bool isFinal, bool debug)
Simulate compressing packets of a tile to a destination buffer.
Definition T2Compress.cpp:69
bool compressHeader(t1_t2::BitIO *bio, Resolution *res, uint16_t layno, uint64_t precinctIndex)
Definition T2Compress.cpp:254
bool compressPacketSimulate(TileCodingParams *tcp, PacketIter *pi, uint32_t *p_data_written, uint32_t len, PLMarker *markers, bool debug)
Encode a packet of a tile to a destination buffer.
Definition T2Compress.cpp:134
T2Compress(ITileProcessorCompress *tileProc)
Definition T2Compress.cpp:67
ITileProcessorCompress * tileProcessor
Definition T2Compress.h:63
bool compressPacket(TileCodingParams *tcp, PacketIter *pi, IStream *stream, uint32_t *p_data_written)
Encode a packet of a tile to a destination buffer.
Definition T2Compress.cpp:394
bool compressPackets(uint16_t tileno, uint16_t maxlayers, IStream *stream, uint32_t *p_data_written, bool first_poc_tile_part, uint8_t newTilePartProgressionPosition, uint32_t prog_iter_num)
Definition T2Compress.cpp:225
Tile coding parameters : this structure is used to store coding/decoding parameters common to all til...
Definition CodingParams.h:124