16#define GPUP_TYPES_ONLY
27 memset(dst, 0,
sizeof(*dst));
41 dst->
csty = src->csty;
71 dst->
rsiz = src->rsiz;
87 memset(dst, 0,
sizeof(*dst));
94 dst->
dw_x0 = src->dw_x0;
95 dst->
dw_y0 = src->dw_y0;
96 dst->
dw_x1 = src->dw_x1;
97 dst->
dw_y1 = src->dw_y1;
114 dst->rsiz = src->
rsiz;
116 dst->csty = src->
csty;
135 memset(dst, 0,
sizeof(*dst));
140 dst->
rsiz = src->rsiz;
142 dst->
csty = src->csty;
163 uint16_t n = src->numcomps > 16 ? 16 : src->numcomps;
173 for(uint16_t c = 0; c < n; ++c)
175 img->comps[c].x0 = src->comps[c].x0;
176 img->comps[c].y0 = src->comps[c].y0;
177 img->comps[c].w = src->comps[c].w;
178 img->comps[c].stride = src->comps[c].stride;
179 img->comps[c].h = src->comps[c].h;
180 img->comps[c].dx = src->comps[c].dx;
181 img->comps[c].dy = src->comps[c].dy;
182 img->comps[c].prec = src->comps[c].prec;
183 img->comps[c].sgnd = src->comps[c].sgnd;
184 img->comps[c].data = (int32_t*)src->comps[c].data;
185 img->comps[c].owns_data =
false;
205 memset(dst, 0,
sizeof(*dst));
234 dc->numresolutions = (uint8_t)sc->numResolutions;
236 for(
size_t r = 0; r < sc->numResolutions; ++r)
238 auto* sr = sc->resolutions[r];
240 dr->level = (uint8_t)sr->level;
241 dr->num_bands = (uint8_t)sr->numBands;
243 for(
size_t b = 0; b < sr->numBands; ++b)
245 auto* sb = sr->band[b];
247 db->orientation = sb->orientation;
248 db->num_precincts = sb->numPrecincts;
250 db->stepsize = sb->stepsize;
251 for(uint64_t p = 0; p < sb->numPrecincts; ++p)
253 auto* sp = sb->precincts[p];
255 dp->num_blocks = sp->numBlocks;
257 for(uint64_t k = 0; k < sp->numBlocks; ++k)
259 auto* skb = sp->blocks[k];
265 dkb->context_stream = skb->contextStream;
266 dkb->num_pix = skb->numPix;
267 dkb->compressed_data = skb->compressedData;
268 dkb->compressed_data_length = skb->compressedDataLength;
269 dkb->num_bit_planes = skb->numBitPlanes;
270 dkb->num_passes = (uint8_t)skb->numPasses;
271 for(
size_t ps = 0; ps < skb->numPasses && ps <
GRK_MAX_PASSES; ++ps)
273 dkb->passes[ps].distortion_decrease = skb->passes[ps].distortionDecrease;
274 dkb->passes[ps].rate = skb->passes[ps].rate;
275 dkb->passes[ps].length = skb->passes[ps].length;
277 dkb->sorted_index = skb->sortedIndex;
280 db->precincts[p] = dp;
284 dc->resolutions[r] = dr;
286 dst->tile_components[c] = dc;
301 uint16_t nc = std::min(dst->num_components, (uint16_t)src->
numComponents);
302 for(uint16_t c = 0; c < nc; ++c)
304 auto* dc = dst->tile_components[c];
308 uint8_t nr = std::min(dc->numresolutions, (uint8_t)sc->numResolutions);
309 for(uint8_t r = 0; r < nr; ++r)
311 auto* dr = dc->resolutions[r];
312 auto* sr = sc->resolutions[r];
315 uint8_t nb = std::min(dr->num_bands, (uint8_t)sr->numBands);
316 for(uint8_t b = 0; b < nb; ++b)
318 auto* db = dr->band[b];
319 auto* sb = sr->band[b];
322 db->stepsize = sb->stepsize;
323 uint64_t np = std::min(db->num_precincts, sb->numPrecincts);
324 for(uint64_t p = 0; p < np; ++p)
326 auto* dp = db->precincts[p];
327 auto* sp = sb->precincts[p];
330 uint64_t nk = std::min(dp->num_blocks, sp->numBlocks);
331 for(uint64_t k = 0; k < nk; ++k)
333 auto* dkb = dp->blocks[k];
334 auto* skb = sp->blocks[k];
337 dkb->context_stream = skb->contextStream;
338 dkb->compressed_data = skb->compressedData;
339 dkb->compressed_data_length = skb->compressedDataLength;
340 dkb->num_bit_planes = skb->numBitPlanes;
341 dkb->num_passes = (uint8_t)skb->numPasses;
357 if(!wrapper || !original)
359 uint16_t nc = std::min(wrapper->num_components, (uint16_t)original->
numComponents);
360 for(uint16_t c = 0; c < nc; ++c)
362 auto* wc = wrapper->tile_components[c];
366 uint8_t nr = std::min(wc->numresolutions, (uint8_t)oc->numResolutions);
367 for(uint8_t r = 0; r < nr; ++r)
369 auto* wr = wc->resolutions[r];
370 auto* or_ = oc->resolutions[r];
373 uint8_t nb = std::min(wr->num_bands, (uint8_t)or_->numBands);
374 for(uint8_t b = 0; b < nb; ++b)
376 auto* wb = wr->band[b];
377 auto* ob = or_->band[b];
381 ob->stepsize = wb->stepsize;
382 uint64_t np = std::min(wb->num_precincts, ob->numPrecincts);
383 for(uint64_t p = 0; p < np; ++p)
385 auto* wp = wb->precincts[p];
386 auto* op = ob->precincts[p];
389 uint64_t nk = std::min(wp->num_blocks, op->numBlocks);
390 for(uint64_t k = 0; k < nk; ++k)
392 auto* wkb = wp->blocks[k];
393 auto* okb = op->blocks[k];
396 okb->compressedDataLength = wkb->compressed_data_length;
397 okb->numBitPlanes = wkb->num_bit_planes;
398 okb->numPasses = wkb->num_passes;
411 for(uint16_t c = 0; c < t->num_components; ++c)
413 auto* tc = t->tile_components[c];
416 for(uint8_t r = 0; r < tc->numresolutions; ++r)
418 auto* res = tc->resolutions[r];
421 for(uint8_t b = 0; b < res->num_bands; ++b)
423 auto* band = res->band[b];
426 for(uint64_t p = 0; p < band->num_precincts; ++p)
428 auto* prc = band->precincts[p];
431 for(uint64_t k = 0; k < prc->num_blocks; ++k)
432 delete prc->blocks[k];
433 delete[] prc->blocks;
436 delete[] band->precincts;
442 delete[] tc->resolutions;
445 delete[] t->tile_components;
455 dst->decompress_flags = src->decompress_flags;
456 dst->numComponents = src->num_components;
458 for(uint16_t c = 0; c < src->num_components; ++c)
460 auto* sc = src->tile_components[c];
462 dc->numResolutions = sc->numresolutions;
464 for(uint8_t r = 0; r < sc->numresolutions; ++r)
466 auto* sr = sc->resolutions[r];
468 dr->level = sr->level;
469 dr->numBands = sr->num_bands;
470 dr->band =
new gpup_band*[sr->num_bands]();
471 for(uint8_t b = 0; b < sr->num_bands; ++b)
473 auto* sb = sr->band[b];
475 db->orientation = sb->orientation;
476 db->numPrecincts = sb->num_precincts;
478 db->stepsize = sb->stepsize;
479 for(uint64_t p = 0; p < sb->num_precincts; ++p)
481 auto* sp = sb->precincts[p];
483 dp->numBlocks = sp->num_blocks;
485 for(uint64_t k = 0; k < sp->num_blocks; ++k)
487 auto* skb = sp->blocks[k];
493 dkb->contextStream = skb->context_stream;
494 dkb->numPix = skb->num_pix;
495 dkb->compressedData = skb->compressed_data;
496 dkb->compressedDataLength = skb->compressed_data_length;
497 dkb->numBitPlanes = skb->num_bit_planes;
498 dkb->numPasses = skb->num_passes;
499 for(uint8_t ps = 0; ps < skb->num_passes && ps <
GRK_MAX_PASSES; ++ps)
501 dkb->passes[ps].distortionDecrease = skb->passes[ps].distortion_decrease;
502 dkb->passes[ps].rate = skb->passes[ps].rate;
503 dkb->passes[ps].length = skb->passes[ps].length;
505 dkb->sortedIndex = skb->sorted_index;
508 db->precincts[p] = dp;
512 dc->resolutions[r] = dr;
514 dst->tileComponents[c] = dc;
529 for(
size_t r = 0; r < tc->numResolutions; ++r)
531 auto* res = tc->resolutions[r];
534 for(
size_t b = 0; b < res->numBands; ++b)
536 auto* band = res->band[b];
539 for(uint64_t p = 0; p < band->numPrecincts; ++p)
541 auto* prc = band->precincts[p];
544 for(uint64_t k = 0; k < prc->numBlocks; ++k)
545 delete prc->blocks[k];
546 delete[] prc->blocks;
549 delete[] band->precincts;
565 memset(dst, 0,
sizeof(*dst));
566 dst->
file = src->file;
573 memset(dst, 0,
sizeof(*dst));
#define GPUP_MAXRLVLS
Definition gpu_plugin_shared.h:52
struct _gpup_tile_component gpup_tile_component
gpup_prog_order
Definition gpu_plugin_shared.h:71
struct _gpup_resolution gpup_resolution
struct _gpup_tile gpup_tile
struct _gpup_compress_params gpup_compress_params
struct _gpup_decompress_params gpup_decompress_params
struct _gpup_image gpup_image
struct _gpup_code_block gpup_code_block
struct _gpup_precinct gpup_precinct
struct _gpup_band gpup_band
struct _gpup_stream_params gpup_stream_params
struct _gpup_header_info gpup_header_info
gpup_file_fmt
Definition gpu_plugin_shared.h:95
gpup_codec_fmt
Definition gpu_plugin_shared.h:112
gpup_rate_control
Definition gpu_plugin_shared.h:120
#define GPUP_MAX_LAYERS
Definition gpu_plugin_shared.h:50
#define GPUP_PATH_LEN
Definition gpu_plugin_shared.h:49
gpup_color_space
Definition gpu_plugin_shared.h:82
struct _gpup_image_comp gpup_image_comp
#define GRK_MAX_PASSES
Grok maximum number of passes.
Definition grok.h:171
struct grk_plugin_tile_component grk_plugin_tile_component
struct _grk_plugin_precinct grk_plugin_precinct
grk_plugin_precinct
enum _GRK_COLOR_SPACE GRK_COLOR_SPACE
Grok supported color spaces.
#define GRK_PATH_LEN
Definition grok.h:327
struct _grk_plugin_band grk_plugin_band
struct _grk_plugin_tile grk_plugin_tile
struct _grk_plugin_resolution grk_plugin_resolution
struct _grk_plugin_code_block grk_plugin_code_block
ResWindow.
Definition CompressedChunkCache.h:36
gpup_tile * grk_tile_to_gpup(grk_plugin_tile *src)
Definition plugin_gpup_bridge.h:450
void grk_to_gpup_header_info(const grk_header_info *src, gpup_header_info *dst)
Definition plugin_gpup_bridge.h:133
void grk_plugin_tile_free_wrapper(grk_plugin_tile *t)
Definition plugin_gpup_bridge.h:407
void gpup_to_grk_header_info(const gpup_header_info *src, grk_header_info *dst)
Definition plugin_gpup_bridge.h:108
void grk_to_gpup_compress_params(const grk_cparameters *src, gpup_compress_params *dst)
Definition plugin_gpup_bridge.h:25
void grk_tile_sync_metadata_to_gpup(grk_plugin_tile *wrapper, gpup_tile *original)
Definition plugin_gpup_bridge.h:355
void gpup_image_free_shell(gpup_image *img)
Definition plugin_gpup_bridge.h:191
void gpup_to_grk_stream_params(const gpup_stream_params *src, grk_stream_params *dst)
Definition plugin_gpup_bridge.h:571
void gpup_tile_free_wrapper(gpup_tile *t)
Definition plugin_gpup_bridge.h:520
void grk_to_gpup_stream_params(const grk_stream_params *src, gpup_stream_params *dst)
Definition plugin_gpup_bridge.h:563
void gpup_to_grk_image_shallow(const gpup_image *src, grk_image *dst)
Definition plugin_gpup_bridge.h:201
void grk_to_gpup_decompress_params(const grk_decompress_parameters *src, gpup_decompress_params *dst)
Definition plugin_gpup_bridge.h:84
void gpup_tile_update_grk(grk_plugin_tile *dst, gpup_tile *src)
Definition plugin_gpup_bridge.h:296
grk_plugin_tile * gpup_tile_to_grk(gpup_tile *src)
Definition plugin_gpup_bridge.h:222
gpup_image * grk_to_gpup_image(const grk_image *src)
Definition plugin_gpup_bridge.h:159
uint8_t csty
Definition gpu_plugin_shared.h:312
gpup_file_fmt decod_format
Definition gpu_plugin_shared.h:332
uint64_t max_comp_size
Definition gpu_plugin_shared.h:338
uint8_t newTilePartProgressionDivider
Definition gpu_plugin_shared.h:335
bool irreversible
Definition gpu_plugin_shared.h:320
uint8_t numgbits
Definition gpu_plugin_shared.h:313
bool allocationByQuality
Definition gpu_plugin_shared.h:310
uint32_t prch_init[GPUP_MAXRLVLS]
Definition gpu_plugin_shared.h:325
bool verbose
Definition gpu_plugin_shared.h:347
uint8_t mct
Definition gpu_plugin_shared.h:336
uint8_t subsampling_dx
Definition gpu_plugin_shared.h:330
uint32_t repeats
Definition gpu_plugin_shared.h:346
bool allocationByRateDistoration
Definition gpu_plugin_shared.h:308
uint16_t rsiz
Definition gpu_plugin_shared.h:339
uint32_t kernelBuildOptions
Definition gpu_plugin_shared.h:345
uint32_t res_spec
Definition gpu_plugin_shared.h:323
uint16_t numlayers
Definition gpu_plugin_shared.h:307
uint8_t numresolution
Definition gpu_plugin_shared.h:316
gpup_file_fmt cod_format
Definition gpu_plugin_shared.h:333
gpup_prog_order prog_order
Definition gpu_plugin_shared.h:314
char outfile[GPUP_PATH_LEN]
Definition gpu_plugin_shared.h:327
uint32_t numpocs
Definition gpu_plugin_shared.h:315
uint64_t max_cs_size
Definition gpu_plugin_shared.h:337
uint32_t image_offset_y0
Definition gpu_plugin_shared.h:329
bool sharedMemoryInterface
Definition gpu_plugin_shared.h:348
int32_t roi_compno
Definition gpu_plugin_shared.h:321
bool enableTilePartGeneration
Definition gpu_plugin_shared.h:334
uint32_t image_offset_x0
Definition gpu_plugin_shared.h:328
char infile[GPUP_PATH_LEN]
Definition gpu_plugin_shared.h:326
uint8_t subsampling_dy
Definition gpu_plugin_shared.h:331
uint32_t prcw_init[GPUP_MAXRLVLS]
Definition gpu_plugin_shared.h:324
uint32_t duration
Definition gpu_plugin_shared.h:344
uint8_t cblk_sty
Definition gpu_plugin_shared.h:319
double layer_distortion[GPUP_MAX_LAYERS]
Definition gpu_plugin_shared.h:311
uint32_t roi_shift
Definition gpu_plugin_shared.h:322
uint32_t ty0
Definition gpu_plugin_shared.h:306
uint32_t t_width
Definition gpu_plugin_shared.h:306
uint32_t cblockh_init
Definition gpu_plugin_shared.h:318
uint32_t cblockw_init
Definition gpu_plugin_shared.h:317
uint16_t framerate
Definition gpu_plugin_shared.h:340
uint32_t numThreads
Definition gpu_plugin_shared.h:342
double layer_rate[GPUP_MAX_LAYERS]
Definition gpu_plugin_shared.h:309
gpup_rate_control rateControlAlgorithm
Definition gpu_plugin_shared.h:341
uint32_t t_height
Definition gpu_plugin_shared.h:306
int32_t deviceId
Definition gpu_plugin_shared.h:343
uint32_t tx0
Definition gpu_plugin_shared.h:306
bool tile_size_on
Definition gpu_plugin_shared.h:305
uint8_t reduce
Definition gpu_plugin_shared.h:357
uint16_t layers_to_decompress_
Definition gpu_plugin_shared.h:358
char infile[GPUP_PATH_LEN]
Definition gpu_plugin_shared.h:364
void * user_data
Definition gpu_plugin_shared.h:375
gpup_codec_fmt decod_format
Definition gpu_plugin_shared.h:366
double dw_x0
Definition gpu_plugin_shared.h:368
double dw_y0
Definition gpu_plugin_shared.h:368
uint32_t numThreads
Definition gpu_plugin_shared.h:373
char outfile[GPUP_PATH_LEN]
Definition gpu_plugin_shared.h:365
double dw_y1
Definition gpu_plugin_shared.h:368
bool verbose_
Definition gpu_plugin_shared.h:374
gpup_decompress_core_params core
Definition gpu_plugin_shared.h:363
uint32_t kernelBuildOptions
Definition gpu_plugin_shared.h:371
int32_t deviceId
Definition gpu_plugin_shared.h:370
gpup_file_fmt cod_format
Definition gpu_plugin_shared.h:367
uint32_t repeats
Definition gpu_plugin_shared.h:372
double dw_x1
Definition gpu_plugin_shared.h:368
uint16_t tileIndex
Definition gpu_plugin_shared.h:369
gpup_color_space color_space
Definition gpu_plugin_shared.h:212
uint32_t y0
Definition gpu_plugin_shared.h:210
uint32_t y1
Definition gpu_plugin_shared.h:210
gpup_image_comp * comps
Definition gpu_plugin_shared.h:213
uint16_t numcomps
Definition gpu_plugin_shared.h:211
uint32_t x0
Definition gpu_plugin_shared.h:210
uint32_t x1
Definition gpu_plugin_shared.h:210
size_t buf_len
Definition gpu_plugin_shared.h:398
const char * file
Definition gpu_plugin_shared.h:396
size_t buf_compressed_len
Definition gpu_plugin_shared.h:399
uint8_t * buf
Definition gpu_plugin_shared.h:397
gpup_resolution ** resolutions
Definition gpu_plugin_shared.h:266
gpup_tile_component ** tileComponents
Definition gpu_plugin_shared.h:273
uint32_t decompress_flags
Definition gpu_plugin_shared.h:271
size_t numComponents
Definition gpu_plugin_shared.h:272
Decompression parameters.
Grok image Note: do not directly create a grk_image object.
Plugin tile component.
Definition grok.h:1086
JPEG 2000 stream parameters There are three methods of streaming: by file, buffer or callback Client ...