Grok  7.6.2
TileProcessor.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2016-2020 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  * This source code incorporates work covered by the BSD 2-clause license.
18  * Please see the LICENSE file in the root directory for details.
19  *
20  */
21 
22 #pragma once
23 #include "grk_includes.h"
24 #include "testing.h"
25 
26 namespace grk {
27 
28 struct TileComponent;
29 
30 // tile
31 struct grk_tile : public grk_rect_u32 {
32  grk_tile();
33  ~grk_tile();
34  uint32_t numcomps; /* number of components in tile */
35  TileComponent *comps; /* Components information */
36  double distotile;
37  double distolayer[100];
38  uint64_t packno; /* packet number */
39 };
40 
42  PacketTracker();
44  void init(uint32_t numcomps, uint32_t numres, uint64_t numprec, uint32_t numlayers);
45  void clear(void);
46  void packet_encoded(uint32_t comps, uint32_t res, uint64_t prec, uint32_t layer);
47  bool is_packet_encoded(uint32_t comps, uint32_t res, uint64_t prec, uint32_t layer);
48 private:
49  uint8_t *bits;
50 
51  uint32_t m_numcomps;
52  uint32_t m_numres;
53  uint64_t m_numprec;
54  uint32_t m_numlayers;
55 
56  uint64_t get_buffer_len(uint32_t numcomps, uint32_t numres, uint64_t numprec, uint32_t numlayers);
57  uint64_t index(uint32_t comps, uint32_t res, uint64_t prec, uint32_t layer);
58 };
59 
63 struct TileProcessor {
64  explicit TileProcessor(CodeStream *codeStream, BufferedStream *stream) ;
66 
75  bool init(grk_image *output_image, bool isCompressor);
76 
77  bool pre_write_tile(void);
78 
84  bool compress_tile_part(uint32_t *tile_bytes_written);
85 
87 
92  bool do_compress(void);
93 
94 
99  bool decompress_tile_t1(void);
100 
106  bool decompress_tile_t2(ChunkBuffer *src_buf);
107 
111  bool copy_uncompressed_data_to_tile(uint8_t *p_src, uint64_t src_length);
112 
113  bool needs_rate_control();
114 
116 
117  void copy_image_to_tile();
118 
119  bool prepare_sod_decoding(CodeStream *codeStream);
120 
122  uint16_t m_tile_index;
123 
127 
133 
134  // Decompressing Only
136 
139  uint8_t totnum_tp;
140 
143  uint32_t pino;
144 
150 
151  // true if whole tile will be decoded; false if tile window will be decoded
153 
155 
158 
159  // Compressing only - track which packets have been already written
160  // to the code stream
164 private:
165 
167  uint32_t tp_pos;
168 
169  // coding/decoding parameters for this tile
171 
172  bool t2_decompress(ChunkBuffer *src_buf, uint64_t *p_data_read);
173 
174  bool is_whole_tilecomp_decoding( uint32_t compno);
175 
176  bool need_mct_decompress(uint32_t compno);
177 
178  bool mct_decompress();
179 
181 
182  bool dc_level_shift_encode();
183 
184  bool mct_encode();
185 
186  bool dwt_encode();
187 
188  void t1_encode();
189 
190  bool t2_encode(uint32_t *packet_bytes_written);
191 
192  bool rate_allocate(void);
193 
194  bool layer_needs_rate_control(uint32_t layno);
195 
197 
198  void makelayer_final(uint32_t layno);
199 
200  bool pcrd_bisect_simple(uint32_t *p_data_written);
201 
202  void make_layer_simple(uint32_t layno, double thresh,
203  bool final);
204 
205  bool pcrd_bisect_feasible(uint32_t *p_data_written);
206 
207  void makelayer_feasible(uint32_t layno, uint16_t thresh,
208  bool final);
209 
210 
211 };
212 
213 }
grk::RateInfo::synch
void synch(CompressCodeblock *cblk)
Definition: RateInfo.cpp:29
grk::TileProcessor::is_whole_tilecomp_decoding
bool is_whole_tilecomp_decoding(uint32_t compno)
Returns whether a tile component should be fully decompressed, taking into account win_* members.
Definition: TileProcessor.cpp:834
_grk_codestream_index
Code stream index info.
Definition: grok.h:1147
grk::mct::get_norms_irrev
static const double * get_norms_irrev(void)
Get wavelet norms for irreversible transform.
Definition: mct.cpp:40
grk::J2K_DEC_STATE_TPH_SOT
@ J2K_DEC_STATE_TPH_SOT
the decoding process is in a tile part header and expects a SOT marker
Definition: CodingParams.h:287
grk::TileProcessor::make_layer_simple
void make_layer_simple(uint32_t layno, double thresh, bool final)
Definition: TileProcessor.cpp:482
grk::PacketTracker::m_numlayers
uint32_t m_numlayers
Definition: TileProcessor.h:54
grk::PacketTracker::m_numres
uint32_t m_numres
Definition: TileProcessor.h:52
grk::TileProcessor::m_packetTracker
PacketTracker m_packetTracker
Definition: TileProcessor.h:161
grk::TileComponent::resolutions
Resolution * resolutions
Definition: TileComponent.h:57
grk::TileProcessor::m_tcp
TileCodingParams * m_tcp
Definition: TileProcessor.h:170
grk::Precinct::initTagTrees
void initTagTrees(void)
Definition: T1Structs.cpp:79
grk::TileProcessor::decompress_tile_t1
bool decompress_tile_t1(void)
T1 decompress.
Definition: TileProcessor.cpp:881
grk::CodingParams::t_width
uint32_t t_width
XTsiz.
Definition: CodingParams.h:247
grk::EncodingParams::rateControlAlgorithm
uint32_t rateControlAlgorithm
Definition: CodingParams.h:222
grk::DecoderState::m_last_tile_part_in_code_stream
bool m_last_tile_part_in_code_stream
Indicate that the current tile-part is assumed to be the last tile part of the code stream.
Definition: CodingParams.h:336
grk::grk_rectangle< uint32_t >
grk::TileProcessor::copy_decompressed_tile_to_output_image
bool copy_decompressed_tile_to_output_image(grk_image *p_output_image)
tile_data stores only the decompressed resolutions, in the actual precision of the decompressed image...
Definition: TileProcessor.cpp:1236
grk::grk_rectangle::height
T height() const
Definition: util.h:165
grk::CompressCodeblock::numPassesInPreviousPackets
uint32_t numPassesInPreviousPackets
Definition: T1Structs.h:131
grk::CodePass::rate
uint32_t rate
Definition: T1Structs.h:85
grk::CodeStream::m_decompressor
DecoderState m_decompressor
Definition: CodeStream.h:299
grk::CodingParams::m_enc
EncodingParams m_enc
Definition: CodingParams.h:267
grk::WaveletReverse::decompress
bool decompress(TileProcessor *p_tcd, TileComponent *tilec, grk_rect_u32 window, uint32_t numres, uint8_t qmfbid)
Definition: WaveletReverse.cpp:2168
grk::WaveletFwdImpl::compress
bool compress(TileComponent *tile_comp, uint8_t qmfbid)
Definition: WaveletFwdImpl.cpp:159
grk::TileProcessor
Tile compressor/decompressor.
Definition: TileProcessor.h:63
grk::mct::decompress_dc_shift_rev
static void decompress_dc_shift_rev(grk_tile *tile, grk_image *image, TileComponentCodingParams *tccps, uint32_t compno)
Apply a reversible inverse dc shift to an image.
Definition: mct.cpp:273
grk::TileCodingParams
Tile coding parameters : this structure is used to store coding/decoding parameters common to all til...
Definition: CodingParams.h:121
grk::grk_tile::distolayer
double distolayer[100]
Definition: TileProcessor.h:37
grk::TileCodingParams::distoratio
double distoratio[100]
fixed_quality
Definition: CodingParams.h:157
grk::TileProcessor::m_stream
BufferedStream * m_stream
Definition: TileProcessor.h:162
grk::TileCodingParams::tccps
TileComponentCodingParams * tccps
tile-component coding parameters
Definition: CodingParams.h:163
grk::CodingParams::tx0
uint32_t tx0
XTOsiz.
Definition: CodingParams.h:243
grk::CodingParams::t_grid_width
uint32_t t_grid_width
number of tiles in width
Definition: CodingParams.h:256
grk::shift
const double shift
Definition: RateControl.cpp:154
grk::BufferedStream
Byte input-output stream.
Definition: BufferedStream.h:38
grk::EncodingParams::m_fixed_quality
bool m_fixed_quality
allocation by fixed_quality
Definition: CodingParams.h:214
_grk_image::comps
grk_image_comp * comps
image components
Definition: grok.h:895
grk::TileProcessor::copy_uncompressed_data_to_tile
bool copy_uncompressed_data_to_tile(uint8_t *p_src, uint64_t src_length)
Copies tile data from the given memory block onto the system.
Definition: TileProcessor.cpp:1369
grk::BufferedStream::write_short
bool write_short(uint16_t value)
Definition: BufferedStream.cpp:185
grk::T1DecompressScheduler
Definition: T1DecompressScheduler.h:27
grk::TileProcessor::makelayer_feasible
void makelayer_feasible(uint32_t layno, uint16_t thresh, bool final)
Definition: TileProcessor.cpp:95
grk::GRK_WARN
void GRK_WARN(const char *fmt,...)
Definition: logger.cpp:49
grk::CodingParams::m_coding_params
union grk::CodingParams::@0 m_coding_params
grk::TileProcessor::dwt_encode
bool dwt_encode()
Definition: TileProcessor.cpp:1078
grk::TileProcessor::tile
grk_tile * tile
info on image tile
Definition: TileProcessor.h:146
grk::T2Decompress
Tier-2 decoding.
Definition: T2Decompress.h:28
grk::Codeblock::numPassesInPacket
uint32_t numPassesInPacket
Definition: T1Structs.h:110
grk::CodingParams::t_grid_height
uint32_t t_grid_height
number of tiles in height
Definition: CodingParams.h:258
grk::TileProcessor::tile_part_data_length
uint32_t tile_part_data_length
Definition: TileProcessor.h:135
grk::TileProcessor::m_tile_part_index
uint8_t m_tile_part_index
Compressing Only index of tile part being currently coding.
Definition: TileProcessor.h:132
grk::TileProcessor::compress_tile_part
bool compress_tile_part(uint32_t *tile_bytes_written)
Compress tile part.
Definition: TileProcessor.cpp:811
grk::K
static const float K
Definition: WaveletReverse.cpp:177
grk::grk_rectangle::x1
T x1
Definition: util.h:76
grk::TileProcessor::pcrd_bisect_simple
bool pcrd_bisect_simple(uint32_t *p_data_written)
Definition: TileProcessor.cpp:314
grk::TileCodingParams::m_nb_tile_parts
uint8_t m_nb_tile_parts
number of tile parts for the tile.
Definition: CodingParams.h:169
grk::TileProcessor::TileProcessor
TileProcessor(CodeStream *codeStream, BufferedStream *stream)
Definition: TileProcessor.cpp:28
grk::TileProcessor::totnum_tp
uint8_t totnum_tp
Compressing Only Total number of tile parts of the tile.
Definition: TileProcessor.h:139
GRK_PLUGIN_STATE_MCT_ONLY
#define GRK_PLUGIN_STATE_MCT_ONLY
Definition: grok.h:1757
grk::mct::compress_custom
static bool compress_custom(uint8_t *p_coding_data, uint64_t n, uint8_t **p_data, uint32_t nb_comp, uint32_t is_signed)
Custom MCT transform.
Definition: mct.cpp:523
grk::TileProcessor::needs_rate_control
bool needs_rate_control()
Definition: TileProcessor.cpp:77
grk::PacketTracker::packet_encoded
void packet_encoded(uint32_t comps, uint32_t res, uint64_t prec, uint32_t layer)
Definition: TileProcessor.cpp:1577
_grk_image::numcomps
uint16_t numcomps
number of components in the image
Definition: grok.h:891
grk::CodeStream::cstr_index
grk_codestream_index * cstr_index
helper used to write the index file
Definition: CodeStream.h:318
grk::CodePass
Definition: T1Structs.h:83
grk::T1CompressScheduler
Definition: T1CompressScheduler.h:24
grk::mct::decompress_rev
static void decompress_rev(grk_tile *tile, grk_image *image, TileComponentCodingParams *tccps)
Apply a reversible multi-component inverse transform to an image.
Definition: mct.cpp:337
grk::TileProcessor::init
bool init(grk_image *output_image, bool isCompressor)
Initializes tile processor (no buffer memory is allocated)
Definition: TileProcessor.cpp:649
_grk_plugin_tile
Plugin tile.
Definition: grok.h:1240
grk::PacketTracker::m_numprec
uint64_t m_numprec
Definition: TileProcessor.h:53
grk::TileProcessor::do_compress
bool do_compress(void)
Compress tile.
Definition: TileProcessor.cpp:755
grk::PacketTracker::is_packet_encoded
bool is_packet_encoded(uint32_t comps, uint32_t res, uint64_t prec, uint32_t layer)
Definition: TileProcessor.cpp:1596
grk::TileProcessor::~TileProcessor
~TileProcessor()
Definition: TileProcessor.cpp:53
grk::TileComponent::getBuffer
TileComponentWindowBuffer< int32_t > * getBuffer() const
Definition: TileComponent.cpp:321
grk::PacketTracker::bits
uint8_t * bits
Definition: TileProcessor.h:49
grk::Precinct
Definition: T1Structs.h:177
testing.h
grk::TileComponentCodingParams::qmfbid
uint8_t qmfbid
discrete wavelet transform identifier
Definition: CodingParams.h:65
grk::WaveletReverse
Definition: WaveletReverse.h:53
grk::TileComponentWindowBuffer::strided_area
uint64_t strided_area(void) const
Definition: TileComponentWindowBuffer.h:450
grk::CodingParams::t_height
uint32_t t_height
YTsiz.
Definition: CodingParams.h:249
grk::tile_equals
bool tile_equals(grk_plugin_tile *plugin_tile, grk_tile *p_tile)
Definition: plugin_bridge.cpp:87
_grk_tp_index::end_pos
uint64_t end_pos
end position
Definition: grok.h:1119
grk::TileProcessor::tp_pos
uint32_t tp_pos
position of the tile part flag in progression order
Definition: TileProcessor.h:167
grk::TileCodingParams::m_mct_decoding_matrix
float * m_mct_decoding_matrix
the mct decoding matrix
Definition: CodingParams.h:176
grk::mct::decompress_custom
static bool decompress_custom(uint8_t *pDecodingData, uint64_t n, uint8_t **pData, uint32_t pNbComp, uint32_t isSigned)
Custom MCT decode.
Definition: mct.cpp:559
_grk_tile_index::current_tpsno
uint32_t current_tpsno
current tile-part index
Definition: grok.h:1133
grk::TileProcessor::dc_level_shift_decompress
bool dc_level_shift_decompress()
Definition: TileProcessor.cpp:1014
grk::PacketTracker
Definition: TileProcessor.h:41
grk_plugin_get_debug_state
uint32_t GRK_CALLCONV grk_plugin_get_debug_state()
Get debug state of plugin.
Definition: grok.cpp:633
J2K_MS_SOD
#define J2K_MS_SOD
SOD marker value.
Definition: CodeStream.h:74
grk::TileProcessor::copy_image_to_tile
void copy_image_to_tile()
Definition: TileProcessor.cpp:933
GRK_DECODE_T1
#define GRK_DECODE_T1
Definition: grok.h:1232
grk::grk_tile::distotile
double distotile
Definition: TileProcessor.h:36
grk::TileProcessor::dc_level_shift_encode
bool dc_level_shift_encode()
Definition: TileProcessor.cpp:1027
grk::grk_tile::comps
TileComponent * comps
Definition: TileProcessor.h:35
grk::PacketTracker::get_buffer_len
uint64_t get_buffer_len(uint32_t numcomps, uint32_t numres, uint64_t numprec, uint32_t numlayers)
Definition: TileProcessor.cpp:1569
grk::PacketTracker::clear
void clear(void)
Definition: TileProcessor.cpp:1563
grk::prepareBlockForFirstLayer
static void prepareBlockForFirstLayer(CompressCodeblock *cblk)
Definition: TileProcessor.cpp:473
grk::CodingParams
Coding parameters.
Definition: CodingParams.h:235
grk::TileComponentCodingParams::cblkh
uint8_t cblkh
log2(code-blocks height)
Definition: CodingParams.h:58
grk::DecodingParams::m_reduce
uint8_t m_reduce
if != 0, then original dimension divided by 2^(reduce); if == 0 or not used, image is decompressed to...
Definition: CodingParams.h:227
grk::BufferedStream::get_number_byte_left
uint64_t get_number_byte_left(void)
Get the number of bytes left before end of stream.
Definition: BufferedStream.cpp:333
grk::CodeStream
Definition: CodeStream.h:164
grk::BufferedStream::tell
uint64_t tell(void)
Tells byte offset of stream (similar to ftell).
Definition: BufferedStream.cpp:330
grk::TileProcessor::pcrd_bisect_feasible
bool pcrd_bisect_feasible(uint32_t *p_data_written)
Definition: TileProcessor.cpp:181
grk::TileProcessor::pino
uint32_t pino
Compressing Only Current packet iterator number.
Definition: TileProcessor.h:143
grk::TileLengthMarkers::add_to_index
static bool add_to_index(uint16_t tileno, grk_codestream_index *cstr_index, uint32_t type, uint64_t pos, uint32_t len)
Add tile header marker information.
Definition: LengthMarkers.cpp:205
grk::mct::decompress_dc_shift_irrev
static void decompress_dc_shift_irrev(grk_tile *tile, grk_image *image, TileComponentCodingParams *tccps, uint32_t compno)
Apply an irreversible inverse dc shift to an image.
Definition: mct.cpp:109
grk::J2K_DEC_STATE_NO_EOC
@ J2K_DEC_STATE_NO_EOC
the decoding process must not expect a EOC marker because the code stream is truncated
Definition: CodingParams.h:290
grk::TileCodingParams::m_mct_coding_matrix
float * m_mct_coding_matrix
the mct coding matrix
Definition: CodingParams.h:178
grk::RateInfo
Definition: RateInfo.h:21
grk::TileProcessor::makelayer_final
void makelayer_final(uint32_t layno)
Definition: TileProcessor.cpp:584
grk::TileProcessor::rate_allocate
bool rate_allocate(void)
Definition: TileProcessor.cpp:1202
grk::grk_rectangle::width
T width() const
Definition: util.h:162
grk::TileComponentWindowBuffer::getWindow
const grk_buffer_2d< T > * getWindow(uint8_t resno, eBandOrientation orientation) const
Get non-LL band window.
Definition: TileComponentWindowBuffer.h:388
grk::Resolution::band
Subband band[BAND_NUM_INDICES]
Definition: T1Structs.h:240
grk::TileProcessor::m_first_poc_tile_part
bool m_first_poc_tile_part
Compressing Only true for first POC tile part, otherwise false.
Definition: TileProcessor.h:126
grk::EncodingParams::writePLT
bool writePLT
Definition: CodingParams.h:218
grk::TileProcessor::decompress_tile_t2
bool decompress_tile_t2(ChunkBuffer *src_buf)
T2 decompress.
Definition: TileProcessor.cpp:853
_grk_image_comp::sgnd
bool sgnd
Definition: grok.h:867
_grk_image::y0
uint32_t y0
YOsiz: vertical offset from the origin of the reference grid to the top side of the image area.
Definition: grok.h:885
grk::T2Compress
Tier-2 coding.
Definition: T2Compress.h:31
GRK_DECODE_POST_T1
#define GRK_DECODE_POST_T1
Definition: grok.h:1233
grk
Copyright (C) 2016-2020 Grok Image Compression Inc.
Definition: BitIO.cpp:23
grk::DecompressCodeblock
Definition: T1Structs.h:137
grk::TileProcessor::layer_needs_rate_control
bool layer_needs_rate_control(uint32_t layno)
Definition: TileProcessor.cpp:69
grk::TileComponent
Definition: TileComponent.h:31
grk::TileProcessor::mct_decompress
bool mct_decompress()
Definition: TileProcessor.cpp:985
grk::grk_tile::grk_tile
grk_tile()
Definition: TileProcessor.cpp:1512
grk::PacketTracker::index
uint64_t index(uint32_t comps, uint32_t res, uint64_t prec, uint32_t layer)
Definition: TileProcessor.cpp:1615
grk::TileComponentCodingParams::m_dc_level_shift
int32_t m_dc_level_shift
the dc_level_shift
Definition: CodingParams.h:88
grk::BufferedStream::read
size_t read(uint8_t *p_buffer, size_t p_size)
Reads some bytes from the stream.
Definition: BufferedStream.cpp:51
GRK_DECODE_T2
#define GRK_DECODE_T2
Definition: grok.h:1231
grk_includes.h
grk::CodingParams::tcps
TileCodingParams * tcps
tile coding parameters
Definition: CodingParams.h:263
grk::TileProcessor::t2_encode
bool t2_encode(uint32_t *packet_bytes_written)
Definition: TileProcessor.cpp:1115
grk::grk_tile
Definition: TileProcessor.h:31
grk::grk_rectangle::area
uint64_t area(void) const
Definition: util.h:159
GRK_PLUGIN_STATE_PRE_TR1
#define GRK_PLUGIN_STATE_PRE_TR1
Definition: grok.h:1755
grk::grk_rect_u32
grk_rectangle< uint32_t > grk_rect_u32
Definition: util.h:48
grk::TileProcessor::pre_write_tile
bool pre_write_tile(void)
Definition: TileProcessor.cpp:1321
_grk_image_comp::data
int32_t * data
image component data
Definition: grok.h:869
grk::TileProcessor::m_cp
CodingParams * m_cp
Coding parameters.
Definition: TileProcessor.h:157
grk::TileProcessor::pre_compress_first_tile_part
bool pre_compress_first_tile_part(void)
Definition: TileProcessor.cpp:791
grk::TileCodingParams::mct
uint8_t mct
multi-component transform identifier
Definition: CodingParams.h:135
grk::mct::get_norms_rev
static const double * get_norms_rev(void)
Get wavelet norms for reversible transform.
Definition: mct.cpp:37
grk::grk_rectangle::intersection
grk_rectangle< T > intersection(const grk_rectangle< T > rhs) const
Definition: util.h:137
grk::TileProcessor::m_tile_index
uint16_t m_tile_index
index of tile being currently compressed/decompressed
Definition: TileProcessor.h:122
grk::TileCodingParams::rates
double rates[100]
rates of layers
Definition: CodingParams.h:137
grk::TileProcessor::prepare_sod_decoding
bool prepare_sod_decoding(CodeStream *codeStream)
Definition: TileProcessor.cpp:1423
grk::TileProcessor::need_mct_decompress
bool need_mct_decompress(uint32_t compno)
Definition: TileProcessor.cpp:962
grk::CompressCodeblock
Definition: T1Structs.h:118
grk::RateInfo::getMinimumThresh
uint16_t getMinimumThresh()
Definition: RateInfo.cpp:47
grk::PacketTracker::PacketTracker
PacketTracker()
Definition: TileProcessor.cpp:1528
grk::PacketTracker::init
void init(uint32_t numcomps, uint32_t numres, uint64_t numprec, uint32_t numlayers)
Definition: TileProcessor.cpp:1539
grk::Resolution
Definition: T1Structs.h:231
grk::TileProcessor::plt_markers
PacketLengthMarkers * plt_markers
Definition: TileProcessor.h:154
grk::TileProcessor::t1_encode
void t1_encode()
Definition: TileProcessor.cpp:1094
grk::TileComponent::numresolutions
uint8_t numresolutions
Definition: TileComponent.h:58
grk::grk_tile::~grk_tile
~grk_tile()
Definition: TileProcessor.cpp:1521
grk::TileProcessor::t2_decompress
bool t2_decompress(ChunkBuffer *src_buf, uint64_t *p_data_read)
Definition: TileProcessor.cpp:953
grk::ChunkBuffer
Definition: ChunkBuffer.h:29
grk::TileCodingParams::numlayers
uint16_t numlayers
number of layers
Definition: CodingParams.h:132
grk::mct::compress_irrev
static void compress_irrev(int *c0, int *c1, int *c2, uint64_t n)
Apply an irreversible multi-component transform to an image.
Definition: mct.cpp:424
grk::PacketLengthMarkers
Definition: LengthMarkers.h:88
grk::TileProcessor::current_plugin_tile
grk_plugin_tile * current_plugin_tile
Definition: TileProcessor.h:149
grk::CodeStream::get_current_decode_tcp
TileCodingParams * get_current_decode_tcp(void)
Definition: CodeStream.cpp:2022
grk::compress_synch_with_plugin
void compress_synch_with_plugin(TileProcessor *tcd, uint32_t compno, uint32_t resno, uint32_t bandIndex, uint64_t precinctIndex, uint64_t cblkno, Subband *band, CompressCodeblock *cblk, uint32_t *numPix)
Definition: plugin_bridge.cpp:140
grk::TileProcessor::make_single_lossless_layer
bool make_single_lossless_layer()
Definition: TileProcessor.cpp:87
GRK_PLUGIN_STATE_DEBUG
#define GRK_PLUGIN_STATE_DEBUG
Definition: grok.h:1754
grk::grk_rectangle::x0
T x0
Definition: util.h:76
grk::TileProcessor::m_corrupt_packet
bool m_corrupt_packet
Definition: TileProcessor.h:163
grk::DecoderState::m_state
uint16_t m_state
Decoder state: used to indicate in which part of the code stream the decompressor is (main header,...
Definition: CodingParams.h:317
grk::decompress_synch_plugin_with_host
void decompress_synch_plugin_with_host(TileProcessor *tcd)
Definition: plugin_bridge.cpp:24
grk::grk_rectangle::y1
T y1
Definition: util.h:76
grk::PacketLengthMarkers::write
uint32_t write()
Definition: LengthMarkers.cpp:326
_grk_plugin_tile::decompress_flags
uint32_t decompress_flags
Definition: grok.h:1241
grk::TileComponentWindowBuffer::bounds
grk_rect_u32 bounds() const
Get bounds of tile component decompress: reduced tile component coordinates of window compress: unred...
Definition: TileComponentWindowBuffer.h:442
_grk_image::x1
uint32_t x1
Xsiz: width of the reference grid.
Definition: grok.h:887
grk::mct::decompress_irrev
static void decompress_irrev(grk_tile *tile, grk_image *image, TileComponentCodingParams *tccps)
Apply an irreversible multi-component inverse transform to an image.
Definition: mct.cpp:177
grk::TileProcessor::mct_encode
bool mct_encode()
Definition: TileProcessor.cpp:1045
grk::grk_copy_strided
void grk_copy_strided(uint32_t w, uint32_t stride, uint32_t h, T *src, int32_t *dest)
Assume that source stride == source width == destination width.
Definition: TileProcessor.cpp:1357
grk::Codeblock::numlenbits
uint32_t numlenbits
Definition: T1Structs.h:109
grk::BufferedStream::getCurrentPtr
uint8_t * getCurrentPtr()
Definition: BufferedStream.cpp:311
grk::TileProcessor::wholeTileDecompress
bool wholeTileDecompress
Definition: TileProcessor.h:152
grk::CodingParams::m_dec
DecodingParams m_dec
Definition: CodingParams.h:266
grk::WaveletFwdImpl
Definition: WaveletFwdImpl.h:23
grk::CodePass::distortiondec
double distortiondec
Definition: T1Structs.h:86
grk::PacketTracker::~PacketTracker
~PacketTracker()
Definition: TileProcessor.cpp:1535
_grk_image
Image.
Definition: grok.h:879
_grk_tile_index::tp_index
grk_tp_index * tp_index
information concerning tile parts
Definition: grok.h:1135
grk::grk_rectangle::y0
T y0
Definition: util.h:76
grk::EncodingParams::m_tp_pos
uint32_t m_tp_pos
Position of tile part flag in progression order.
Definition: CodingParams.h:208
grk::grk_tile::packno
uint64_t packno
Definition: TileProcessor.h:38
_grk_tp_index::end_header
uint64_t end_header
end position of the header
Definition: grok.h:1117
grk::set_context_stream
void set_context_stream(TileProcessor *p_tileProcessor)
Definition: plugin_bridge.cpp:257
_grk_image::y1
uint32_t y1
Ysiz: height of the reference grid.
Definition: grok.h:889
_grk_image_comp::prec
uint8_t prec
precision
Definition: grok.h:866
grk::PacketTracker::m_numcomps
uint32_t m_numcomps
Definition: TileProcessor.h:51
grk::GRK_ERROR
void GRK_ERROR(const char *fmt,...)
Definition: logger.cpp:57
grk::EncodingParams::m_disto_alloc
bool m_disto_alloc
allocation by rate/distortion
Definition: CodingParams.h:212
grk::RateControl::convexHull
static void convexHull(CodePass *pass, uint32_t numPasses)
Definition: RateControl.cpp:31
grk::TileComponentCodingParams::cblkw
uint8_t cblkw
log2(code-blocks width)
Definition: CodingParams.h:56
grk::grk_tile::numcomps
uint32_t numcomps
Definition: TileProcessor.h:34
grk::TileProcessor::image
grk_image * image
image header
Definition: TileProcessor.h:148
grk::BufferedStream::supportsZeroCopy
bool supportsZeroCopy()
Definition: BufferedStream.cpp:308
grk::mct::compress_rev
static void compress_rev(int32_t *c0, int32_t *c1, int32_t *c2, uint64_t n)
Apply a reversible multi-component transform to an image.
Definition: mct.cpp:48
grk::CodingParams::ty0
uint32_t ty0
YTOsiz.
Definition: CodingParams.h:245
_grk_codestream_index::tile_index
grk_tile_index * tile_index
Definition: grok.h:1161
_grk_image::x0
uint32_t x0
XOsiz: horizontal offset from the origin of the reference grid to the left side of the image area.
Definition: grok.h:882