Grok 20.3.2
gpu_plugin_shared.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
9/*
10 * gpu_plugin_shared.h — Canonical shared types for the GPU codec plugin.
11 *
12 * This header defines the minimal structs, enums, and constants that form
13 * the contract between a host JPEG 2000 codec and the GPU plugin.
14 * Both projects include this single file. The plugin is codec-agnostic.
15 */
16
17#pragma once
18
19#include <cstddef>
20#include <cstdint>
21#include <cstdlib>
22#include <cstring>
23#include <climits>
24
25/* ── Platform export macros ──────────────────────────────────── */
26
27#ifdef _WIN32
28#define GPUP_CALLCONV __stdcall
29#ifdef GPUP_STATIC
30#define GPUP_API
31#else
32#ifdef GPUP_EXPORTS
33#define GPUP_API __declspec(dllexport)
34#else
35#define GPUP_API __declspec(dllimport)
36#endif
37#endif
38#else
39#define GPUP_CALLCONV
40#ifdef GPUP_STATIC
41#define GPUP_API __attribute__((visibility("hidden")))
42#else
43#define GPUP_API __attribute__((visibility("default")))
44#endif
45#endif
46
47/* ── Constants ───────────────────────────────────────────────── */
48
49#define GPUP_PATH_LEN 4096
50#define GPUP_MAX_LAYERS 256
51#define GPUP_MAX_DECOMP_LVLS 32
52#define GPUP_MAXRLVLS (GPUP_MAX_DECOMP_LVLS + 1)
53#define GPUP_MAXBANDS (3 * GPUP_MAXRLVLS - 2)
54#define GPUP_MAX_SUPPORTED_PREC 16
55#define GPUP_BIBO_EXTRA_BITS 7
56#define GPUP_MAX_PASSES (3 * (GPUP_MAX_SUPPORTED_PREC + GPUP_BIBO_EXTRA_BITS) - 2)
57#define GPUP_NUM_COMMENTS 256
58#define GPUP_BUFFER_ALIGNMENT 64
59
60/* ── Logging callback ────────────────────────────────────────── */
61
62typedef void (*gpup_msg_callback)(const char* msg, void* client_data);
63
64/* ── Opaque codec handle ─────────────────────────────────────── */
65
66typedef void gpup_codec;
67
68/* ── Enums ───────────────────────────────────────────────────── */
69
80
93
110
118
124
125/* ── Decode phase flags ──────────────────────────────────────── */
126
127#define GPUP_DECODE_HEADER (1 << 0)
128#define GPUP_DECODE_T2 (1 << 1)
129#define GPUP_DECODE_T1 (1 << 2)
130#define GPUP_DECODE_POST_T1 (1 << 3)
131#define GPUP_DECODE_CLEAN (1 << 4)
132#define GPUP_DECODE_ALL \
133 (GPUP_DECODE_CLEAN | GPUP_DECODE_HEADER | GPUP_DECODE_T2 | GPUP_DECODE_T1 | GPUP_DECODE_POST_T1)
134
135/* ── Plugin state flags ──────────────────────────────────────── */
136
137#define GPUP_STATE_NO_DEBUG 0x0
138#define GPUP_STATE_DEBUG 0x1
139#define GPUP_STATE_PRE_TR1 0x2
140#define GPUP_STATE_DWT_QUANTIZATION 0x4
141#define GPUP_STATE_MCT_ONLY 0x8
142
143/* ── Profile / Extension macros ──────────────────────────────── */
144
145#define GPUP_PROFILE_NONE 0x0000
146#define GPUP_PROFILE_0 0x0001
147#define GPUP_PROFILE_1 0x0002
148#define GPUP_PROFILE_CINEMA_2K 0x0003
149#define GPUP_PROFILE_CINEMA_4K 0x0004
150#define GPUP_PROFILE_CINEMA_S2K 0x0005
151#define GPUP_PROFILE_CINEMA_S4K 0x0006
152#define GPUP_PROFILE_CINEMA_LTS 0x0007
153#define GPUP_PROFILE_BC_SINGLE 0x0100
154#define GPUP_PROFILE_BC_MULTI 0x0200
155#define GPUP_PROFILE_BC_MULTI_R 0x0300
156#define GPUP_PROFILE_BC_MASK 0x030F
157#define GPUP_PROFILE_IMF_2K 0x0400
158#define GPUP_PROFILE_IMF_4K 0x0500
159#define GPUP_PROFILE_IMF_8K 0x0600
160#define GPUP_PROFILE_IMF_2K_R 0x0700
161#define GPUP_PROFILE_IMF_4K_R 0x0800
162#define GPUP_PROFILE_IMF_8K_R 0x0900
163#define GPUP_PROFILE_MASK 0x0FFF
164#define GPUP_PROFILE_PART2 0x8000
165#define GPUP_PROFILE_PART2_EXTENSIONS_MASK 0x3FFF
166
167#define GPUP_EXTENSION_NONE 0x0000
168#define GPUP_EXTENSION_MCT 0x0100
169#define GPUP_IS_PART2(v) ((v) & GPUP_PROFILE_PART2)
170#define GPUP_IS_CINEMA(v) (((v) >= GPUP_PROFILE_CINEMA_2K) && ((v) <= GPUP_PROFILE_CINEMA_S4K))
171#define GPUP_IS_STORAGE(v) ((v) == GPUP_PROFILE_CINEMA_LTS)
172#define GPUP_IS_BROADCAST(v) \
173 (((v) >= GPUP_PROFILE_BC_SINGLE) && ((v) <= (GPUP_PROFILE_BC_MULTI_R | 0x000b)) && \
174 (((v) & 0xf) <= 0xb))
175#define GPUP_IS_IMF(v) \
176 (((v) >= GPUP_PROFILE_IMF_2K) && ((v) <= (GPUP_PROFILE_IMF_8K_R | 0x009b)) && \
177 (((v) & 0xf) <= 0xb) && (((v) & 0xf0) <= 0x90))
178
179/* ── Code block style macros ─────────────────────────────────── */
180
181#define GPUP_CBLKSTY_LAZY 0x001
182#define GPUP_CBLKSTY_RESET 0x002
183#define GPUP_CBLKSTY_TERMALL 0x004
184#define GPUP_CBLKSTY_VSC 0x008
185#define GPUP_CBLKSTY_PTERM 0x010
186#define GPUP_CBLKSTY_SEGSYM 0x020
187#define GPUP_CBLKSTY_HT 0x040
188#define GPUP_CBLKSTY_HT_MIXED 0x080
189#define GPUP_CBLKSTY_HT_PHLD 0x100
190
191/* ═══════════════════════════════════════════════════════════════
192 Image types (minimal — zero-copy across host/plugin boundary)
193 ═══════════════════════════════════════════════════════════════ */
194
195typedef struct _gpup_image_comp
196{
197 uint32_t x0, y0;
198 uint32_t w;
199 uint32_t stride;
200 uint32_t h;
201 uint8_t dx, dy;
202 uint8_t prec;
203 bool sgnd;
204 int32_t* data;
207
215
216/* ═══════════════════════════════════════════════════════════════
217 Plugin tile hierarchy
218 ═══════════════════════════════════════════════════════════════ */
219
220typedef struct _gpup_pass
221{
223 size_t rate;
224 size_t length;
226
227typedef struct _gpup_code_block
228{
229 /* debug info */
230 uint32_t x0, y0, x1, y1;
231 unsigned int* contextStream;
232 /* data */
233 uint32_t numPix;
237 size_t numPasses;
239 unsigned int sortedIndex;
241
247
255
262
268
275
276/* ═══════════════════════════════════════════════════════════════
277 Header info (fields the plugin reads after host parses header)
278 ═══════════════════════════════════════════════════════════════ */
279
298
299/* ═══════════════════════════════════════════════════════════════
300 Compress parameters (fields the plugin reads and/or writes)
301 ═══════════════════════════════════════════════════════════════ */
302
350
351/* ═══════════════════════════════════════════════════════════════
352 Decompress parameters (fields the plugin reads)
353 ═══════════════════════════════════════════════════════════════ */
354
360
377
378/* ═══════════════════════════════════════════════════════════════
379 Init info
380 ═══════════════════════════════════════════════════════════════ */
381
382typedef struct _gpup_init_info
383{
384 int32_t deviceId;
386 const char* license;
387 const char* server;
389
390/* ═══════════════════════════════════════════════════════════════
391 Minimal stream params (for compress callback output)
392 ═══════════════════════════════════════════════════════════════ */
393
395{
396 const char* file;
397 uint8_t* buf;
398 size_t buf_len;
401
402/* ═══════════════════════════════════════════════════════════════
403 Callback types and callback info structs
404 ═══════════════════════════════════════════════════════════════ */
405
406typedef int (*GPUP_INIT_DECOMPRESSORS)(gpup_header_info* header_info, gpup_image* image);
407
420
422
430
452
454
455/* ═══════════════════════════════════════════════════════════════
456 Utility functions (inline, header-only)
457 ═══════════════════════════════════════════════════════════════ */
458
459#ifdef __cplusplus
460
461static constexpr size_t gpup_buffer_alignment = GPUP_BUFFER_ALIGNMENT;
462
463static inline uint32_t gpup_make_aligned_width(uint32_t width)
464{
465 return (uint32_t)((((uint64_t)width + GPUP_BUFFER_ALIGNMENT - 1) / GPUP_BUFFER_ALIGNMENT) *
467}
468
469/*
470 * Inline utility functions for image allocation/deallocation.
471 * Guarded by GPUP_TYPES_ONLY so host codebases that poison malloc/free
472 * can still include this header for the type definitions alone.
473 */
474#ifndef GPUP_TYPES_ONLY
475
476inline gpup_image* gpup_image_new(uint16_t numcmpts, gpup_image_comp* cmptparms,
477 gpup_color_space clrspc, bool alloc_data)
478{
479 auto* img = new gpup_image();
480 memset(img, 0, sizeof(gpup_image));
481 img->numcomps = numcmpts;
482 img->color_space = clrspc;
483 if(numcmpts > 0 && cmptparms)
484 {
485 img->comps = new gpup_image_comp[numcmpts]();
486 for(uint16_t i = 0; i < numcmpts; i++)
487 {
488 img->comps[i] = cmptparms[i];
489 if(alloc_data && cmptparms[i].w > 0 && cmptparms[i].h > 0)
490 {
491 auto stride = gpup_make_aligned_width(cmptparms[i].w);
492 size_t dataSize = (size_t)stride * cmptparms[i].h * sizeof(int32_t);
493 dataSize = ((dataSize + GPUP_BUFFER_ALIGNMENT - 1) / GPUP_BUFFER_ALIGNMENT) *
495 img->comps[i].data = (int32_t*)std::aligned_alloc(GPUP_BUFFER_ALIGNMENT, dataSize);
496 if(img->comps[i].data)
497 memset(img->comps[i].data, 0, dataSize);
498 img->comps[i].stride = stride;
499 img->comps[i].owns_data = true;
500 }
501 }
502 }
503 return img;
504}
505
506inline void gpup_image_destroy(gpup_image* img)
507{
508 if(!img)
509 return;
510 if(img->comps)
511 {
512 for(uint16_t i = 0; i < img->numcomps; i++)
513 {
514 if(img->comps[i].owns_data)
515 std::free(img->comps[i].data);
516 }
517 delete[] img->comps;
518 }
519 delete img;
520}
521
522#endif /* GPUP_TYPES_ONLY */
523
524#endif /* __cplusplus */
#define GPUP_MAXRLVLS
Definition gpu_plugin_shared.h:52
struct _gpup_tile_component gpup_tile_component
struct _gpup_compress_batch_info gpup_compress_batch_info
gpup_prog_order
Definition gpu_plugin_shared.h:71
@ GPUP_PROG_UNKNOWN
Definition gpu_plugin_shared.h:72
@ GPUP_RLCP
Definition gpu_plugin_shared.h:74
@ GPUP_NUM_PROGRESSION_ORDERS
Definition gpu_plugin_shared.h:78
@ GPUP_RPCL
Definition gpu_plugin_shared.h:75
@ GPUP_LRCP
Definition gpu_plugin_shared.h:73
@ GPUP_CPRL
Definition gpu_plugin_shared.h:77
@ GPUP_PCRL
Definition gpu_plugin_shared.h:76
struct _gpup_resolution gpup_resolution
int(* GPUP_INIT_DECOMPRESSORS)(gpup_header_info *header_info, gpup_image *image)
Definition gpu_plugin_shared.h:406
struct _gpup_tile gpup_tile
struct _gpup_compress_params gpup_compress_params
struct _gpup_pass gpup_pass
uint64_t(* GPUP_COMPRESS_USER_CALLBACK)(gpup_compress_callback_info *info)
Definition gpu_plugin_shared.h:421
struct _gpup_decompress_params gpup_decompress_params
struct _gpup_image gpup_image
struct _gpup_code_block gpup_code_block
void(* gpup_msg_callback)(const char *msg, void *client_data)
Definition gpu_plugin_shared.h:62
struct _gpup_precinct gpup_precinct
int32_t(* GPUP_DECOMPRESS_USER_CALLBACK)(gpup_decompress_callback_info *info)
Definition gpu_plugin_shared.h:453
struct _gpup_band gpup_band
struct _gpup_stream_params gpup_stream_params
struct _gpup_compress_callback_info gpup_compress_callback_info
#define GPUP_MAX_PASSES
Definition gpu_plugin_shared.h:56
struct _gpup_init_info gpup_init_info
struct _gpup_header_info gpup_header_info
struct _gpup_decompress_core_params gpup_decompress_core_params
gpup_file_fmt
Definition gpu_plugin_shared.h:95
@ GPUP_FMT_PAM
Definition gpu_plugin_shared.h:101
@ GPUP_FMT_RAW
Definition gpu_plugin_shared.h:104
@ GPUP_FMT_MJ2
Definition gpu_plugin_shared.h:108
@ GPUP_FMT_PXM
Definition gpu_plugin_shared.h:99
@ GPUP_FMT_PGX
Definition gpu_plugin_shared.h:100
@ GPUP_FMT_JP2
Definition gpu_plugin_shared.h:98
@ GPUP_FMT_JPG
Definition gpu_plugin_shared.h:107
@ GPUP_FMT_TIF
Definition gpu_plugin_shared.h:103
@ GPUP_FMT_PNG
Definition gpu_plugin_shared.h:105
@ GPUP_FMT_BMP
Definition gpu_plugin_shared.h:102
@ GPUP_FMT_RAWL
Definition gpu_plugin_shared.h:106
@ GPUP_FMT_J2K
Definition gpu_plugin_shared.h:97
@ GPUP_FMT_UNK
Definition gpu_plugin_shared.h:96
gpup_codec_fmt
Definition gpu_plugin_shared.h:112
@ GPUP_CODEC_JP2
Definition gpu_plugin_shared.h:115
@ GPUP_CODEC_UNK
Definition gpu_plugin_shared.h:113
@ GPUP_CODEC_J2K
Definition gpu_plugin_shared.h:114
@ GPUP_CODEC_MJ2
Definition gpu_plugin_shared.h:116
gpup_rate_control
Definition gpu_plugin_shared.h:120
@ GPUP_RATE_CONTROL_BISECT
Definition gpu_plugin_shared.h:121
@ GPUP_RATE_CONTROL_PCRD_OPT
Definition gpu_plugin_shared.h:122
#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
@ GPUP_CLRSPC_CMYK
Definition gpu_plugin_shared.h:88
@ GPUP_CLRSPC_UNKNOWN
Definition gpu_plugin_shared.h:83
@ GPUP_CLRSPC_GRAY
Definition gpu_plugin_shared.h:85
@ GPUP_CLRSPC_SRGB
Definition gpu_plugin_shared.h:84
@ GPUP_CLRSPC_CUSTOM_CIE
Definition gpu_plugin_shared.h:90
@ GPUP_CLRSPC_EYCC
Definition gpu_plugin_shared.h:87
@ GPUP_CLRSPC_SYCC
Definition gpu_plugin_shared.h:86
@ GPUP_CLRSPC_ICC
Definition gpu_plugin_shared.h:91
@ GPUP_CLRSPC_DEFAULT_CIE
Definition gpu_plugin_shared.h:89
struct _gpup_decompress_callback_info gpup_decompress_callback_info
#define GPUP_BUFFER_ALIGNMENT
Definition gpu_plugin_shared.h:58
struct _gpup_image_comp gpup_image_comp
void gpup_codec
Definition gpu_plugin_shared.h:66
Definition gpu_plugin_shared.h:249
uint64_t numPrecincts
Definition gpu_plugin_shared.h:251
float stepsize
Definition gpu_plugin_shared.h:253
gpup_precinct ** precincts
Definition gpu_plugin_shared.h:252
uint8_t orientation
Definition gpu_plugin_shared.h:250
Definition gpu_plugin_shared.h:228
uint32_t y0
Definition gpu_plugin_shared.h:230
uint32_t numPix
Definition gpu_plugin_shared.h:233
uint32_t compressedDataLength
Definition gpu_plugin_shared.h:235
size_t numPasses
Definition gpu_plugin_shared.h:237
uint8_t numBitPlanes
Definition gpu_plugin_shared.h:236
uint8_t * compressedData
Definition gpu_plugin_shared.h:234
unsigned int sortedIndex
Definition gpu_plugin_shared.h:239
uint32_t x0
Definition gpu_plugin_shared.h:230
gpup_pass passes[GPUP_MAX_PASSES]
Definition gpu_plugin_shared.h:238
uint32_t y1
Definition gpu_plugin_shared.h:230
unsigned int * contextStream
Definition gpu_plugin_shared.h:231
uint32_t x1
Definition gpu_plugin_shared.h:230
Definition gpu_plugin_shared.h:424
const char * input_dir
Definition gpu_plugin_shared.h:425
GPUP_COMPRESS_USER_CALLBACK callback
Definition gpu_plugin_shared.h:428
gpup_compress_params * compress_parameters
Definition gpu_plugin_shared.h:427
const char * output_dir
Definition gpu_plugin_shared.h:426
Definition gpu_plugin_shared.h:409
const char * output_file_name
Definition gpu_plugin_shared.h:412
gpup_tile * tile
Definition gpu_plugin_shared.h:415
gpup_compress_params * compressor_parameters
Definition gpu_plugin_shared.h:413
const char * input_file_name
Definition gpu_plugin_shared.h:410
unsigned int error_code
Definition gpu_plugin_shared.h:417
void * host_data
Definition gpu_plugin_shared.h:418
gpup_stream_params stream_params
Definition gpu_plugin_shared.h:416
bool outputFileNameIsRelative
Definition gpu_plugin_shared.h:411
gpup_image * image
Definition gpu_plugin_shared.h:414
Definition gpu_plugin_shared.h:304
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
Definition gpu_plugin_shared.h:432
gpup_decompress_params * decompressor_parameters
Definition gpu_plugin_shared.h:441
const char * output_file_name
Definition gpu_plugin_shared.h:436
void * codec
Definition gpu_plugin_shared.h:439
gpup_codec_fmt decod_format
Definition gpu_plugin_shared.h:437
gpup_header_info header_info
Definition gpu_plugin_shared.h:440
unsigned int error_code
Definition gpu_plugin_shared.h:445
bool plugin_owns_image
Definition gpu_plugin_shared.h:443
gpup_image * image
Definition gpu_plugin_shared.h:442
GPUP_INIT_DECOMPRESSORS init_decompressors_func
Definition gpu_plugin_shared.h:434
const char * input_file_name
Definition gpu_plugin_shared.h:435
size_t deviceId
Definition gpu_plugin_shared.h:433
gpup_file_fmt cod_format
Definition gpu_plugin_shared.h:438
void * format_private
Definition gpu_plugin_shared.h:450
uint32_t decompress_flags
Definition gpu_plugin_shared.h:446
gpup_tile * tile
Definition gpu_plugin_shared.h:444
uint32_t full_image_y0
Definition gpu_plugin_shared.h:448
uint32_t full_image_x0
Definition gpu_plugin_shared.h:447
void * user_data
Definition gpu_plugin_shared.h:449
Definition gpu_plugin_shared.h:356
uint8_t reduce
Definition gpu_plugin_shared.h:357
uint16_t layers_to_decompress_
Definition gpu_plugin_shared.h:358
Definition gpu_plugin_shared.h:362
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
Definition gpu_plugin_shared.h:281
uint16_t t_grid_height
Definition gpu_plugin_shared.h:295
bool irreversible
Definition gpu_plugin_shared.h:284
uint8_t numresolutions
Definition gpu_plugin_shared.h:287
uint32_t ty0
Definition gpu_plugin_shared.h:293
uint32_t t_height
Definition gpu_plugin_shared.h:294
uint32_t cblockh_init
Definition gpu_plugin_shared.h:283
uint32_t t_width
Definition gpu_plugin_shared.h:294
uint32_t prcw_init[GPUP_MAXRLVLS]
Definition gpu_plugin_shared.h:291
gpup_prog_order prog_order
Definition gpu_plugin_shared.h:288
uint16_t rsiz
Definition gpu_plugin_shared.h:286
uint16_t max_layers_
Definition gpu_plugin_shared.h:296
uint8_t csty
Definition gpu_plugin_shared.h:289
uint8_t cblk_sty
Definition gpu_plugin_shared.h:290
uint32_t prch_init[GPUP_MAXRLVLS]
Definition gpu_plugin_shared.h:292
uint8_t mct
Definition gpu_plugin_shared.h:285
uint16_t t_grid_width
Definition gpu_plugin_shared.h:295
uint32_t tx0
Definition gpu_plugin_shared.h:293
uint32_t cblockw_init
Definition gpu_plugin_shared.h:282
Definition gpu_plugin_shared.h:196
bool owns_data
Definition gpu_plugin_shared.h:205
uint32_t y0
Definition gpu_plugin_shared.h:197
int32_t * data
Definition gpu_plugin_shared.h:204
uint8_t dx
Definition gpu_plugin_shared.h:201
uint32_t h
Definition gpu_plugin_shared.h:200
uint32_t stride
Definition gpu_plugin_shared.h:199
bool sgnd
Definition gpu_plugin_shared.h:203
uint32_t w
Definition gpu_plugin_shared.h:198
uint8_t dy
Definition gpu_plugin_shared.h:201
uint32_t x0
Definition gpu_plugin_shared.h:197
uint8_t prec
Definition gpu_plugin_shared.h:202
Definition gpu_plugin_shared.h:209
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
Definition gpu_plugin_shared.h:383
const char * license
Definition gpu_plugin_shared.h:386
int32_t deviceId
Definition gpu_plugin_shared.h:384
bool verbose
Definition gpu_plugin_shared.h:385
const char * server
Definition gpu_plugin_shared.h:387
Definition gpu_plugin_shared.h:221
size_t length
Definition gpu_plugin_shared.h:224
size_t rate
Definition gpu_plugin_shared.h:223
double distortionDecrease
Definition gpu_plugin_shared.h:222
Definition gpu_plugin_shared.h:243
uint64_t numBlocks
Definition gpu_plugin_shared.h:244
gpup_code_block ** blocks
Definition gpu_plugin_shared.h:245
Definition gpu_plugin_shared.h:257
gpup_band ** band
Definition gpu_plugin_shared.h:260
size_t level
Definition gpu_plugin_shared.h:258
size_t numBands
Definition gpu_plugin_shared.h:259
Definition gpu_plugin_shared.h:395
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
Definition gpu_plugin_shared.h:264
size_t numResolutions
Definition gpu_plugin_shared.h:265
gpup_resolution ** resolutions
Definition gpu_plugin_shared.h:266
Definition gpu_plugin_shared.h:270
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