Grok  9.5.0
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
grk Namespace Reference

Copyright (C) 2016-2021 Grok Image Compression Inc. More...

Namespaces

 HWY_NAMESPACE
 
 t1_part1
 

Classes

class  ICacheable
 
struct  MarkerInfo
 
struct  TilePartInfo
 
struct  TileInfo
 
struct  CodeStreamInfo
 
struct  TilePartLengthInfo
 
struct  TileLengthMarkers
 
struct  PacketInfo
 
struct  PacketInfoCache
 
struct  AllocatorVanilla
 
struct  AllocatorAligned
 
struct  grkBuffer
 
struct  grkBuffer2d
 
class  PacketLengthCache
 
struct  PacketLengthMarkerInfo
 
struct  PacketLengthMarkers
 
class  SequentialCache
 
class  SparseCache
 
struct  TileCacheEntry
 
class  TileCache
 
struct  ICodeStreamCompress
 
struct  ICodeStreamDecompress
 
class  CodeStream
 
struct  j2k_prog_order
 
class  CodeStreamCompress
 
struct  marker_handler
 
class  CodeStreamDecompress
 
struct  TileComponentCodingParams
 Tile-component coding parameters. More...
 
struct  grk_mct_data
 MCT data. More...
 
struct  grk_simple_mcc_decorrelation_data
 MCC decorrelation data. More...
 
struct  TileCodingParams
 Tile coding parameters : this structure is used to store coding/decoding parameters common to all tiles (information like COD, COC in main header) More...
 
struct  EncodingParams
 
struct  DecodingParams
 
struct  CodingParams
 Coding parameters. More...
 
struct  DecompressorState
 
struct  CompressorState
 
struct  FileFormatBox
 
struct  ComponentInfo
 
struct  AsocBox
 Association box (defined in ITU 15444-2 Annex M 11.1 ) More...
 
struct  UUIDBox
 
class  FileFormat
 JPEG 2000 file format reader/writer. More...
 
struct  BoxWriteHandler
 
class  FileFormatCompress
 
class  FileFormatDecompress
 
struct  grk_ppx
 
class  PPMMarker
 
class  SIZMarker
 
class  SOTMarker
 
class  Profile
 
struct  minpf_dynamic_library
 
struct  minpf_object_params
 
struct  minpf_plugin_api_version
 
struct  minpf_register_params
 
struct  minpf_platform_services
 
struct  minpf_plugin_manager
 
struct  grk_plugin_debug_mqc
 
struct  plugin_encode_user_callback_info
 
struct  PluginDecodeCallbackInfo
 
struct  ShiftInfo
 
class  mct
 
struct  BlockExec
 
struct  DecompressBlockExec
 
struct  CompressBlockExec
 
struct  Segment
 
struct  CodePass
 
struct  Layer
 
struct  Codeblock
 
struct  CompressCodeblock
 
struct  DecompressCodeblock
 
struct  mqc_state
 
struct  mqcoder
 
struct  T1
 
struct  pass_enc
 
struct  cblk_enc
 
class  RoiShiftFilter
 
class  ShiftFilter
 
class  RoiScaleFilter
 
class  ScaleFilter
 
struct  grk_stepsize
 Quantization stepsize. More...
 
struct  Quantizer
 
class  BlockCache
 
struct  PrecinctImpl
 
struct  Precinct
 
struct  Resolution
 
struct  Subband
 
class  T1CompressScheduler
 
class  T1DecompressScheduler
 
class  T1Factory
 
class  T1Interface
 
class  BitIO
 
class  IBitIO
 Bit input/output. More...
 
struct  PiResolution
 
struct  PiComp
 Packet iterator component. More...
 
struct  ResBuf
 
struct  IncludeTracker
 
struct  PacketIter
 Packet iterator. More...
 
class  PacketManager
 
class  RateControl
 
class  RateInfo
 
struct  T2Compress
 Tier-2 coding. More...
 
struct  T2Decompress
 Tier-2 decoding. More...
 
struct  TagTreeNode
 Tag node. More...
 
class  TagTree
 Tag tree. More...
 
class  ISparseCanvas
 
struct  SparseBlock
 
class  SparseCanvas
 
struct  TileComponent
 
struct  ResWindowBuffer
 Class: ResWindowBuffer. More...
 
struct  TileComponentWindowBuffer
 
struct  Tile
 
struct  PacketTracker
 
struct  TileProcessor
 Tile processor for decompression and compression. More...
 
struct  TileProcessorComparator
 
class  TileProcessorMinHeap
 
struct  dwt_line
 
struct  encode_h_job
 
struct  encode_v_job
 
class  dwt53
 
class  dwt97
 
class  WaveletFwdImpl
 
struct  vec4f
 
class  WaveletReverse
 
class  GrokOutput
 
struct  BufferedStream
 
class  DecodeUnknownMarkerAtEndOfTileException
 
class  PluginDecodeUnsupportedException
 
class  CorruptJP2BoxException
 
class  TruncatedPacketHeaderException
 
class  CorruptPacketHeaderException
 
class  InvalidMarkerException
 
class  BadAsocException
 
class  GrkImageMeta
 
class  GrkImage
 
class  GrkMatrix
 
class  GrkObjectWrapper
 
class  GrkObjectWrapperImpl
 
struct  IBufferedStream
 
struct  logger
 
struct  MemStream
 
struct  SparseBuffer
 
struct  grkPoint
 
struct  grkLine
 
struct  grkRect
 

Typedefs

typedef std::vector< TilePartLengthInfoTL_INFO_VEC
 
typedef std::map< uint8_t, TL_INFO_VEC * > TL_MAP
 
using grkBufferU8 = grkBuffer< uint8_t, AllocatorVanilla >
 
using grkBufferU8Aligned = grkBuffer< uint8_t, AllocatorAligned >
 
typedef std::vector< uint32_t > PL_INFO_VEC
 
typedef std::map< uint8_t, PacketLengthMarkerInfoPL_MAP
 
typedef void(* j2k_mct_function) (const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
 
typedef std::function< bool(void)> PROCEDURE_FUNC
 
typedef std::function< bool(uint8_t *headerData, uint16_t header_size)> MARKER_FUNC
 
typedef std::function< uint8_t *(uint32_t *len)> WRITE_FUNC
 
typedef std::function< bool(uint8_t *headerData, uint32_t header_size)> BOX_FUNC
 
typedef struct grk::minpf_object_params minpf_object_params
 
typedef struct grk::minpf_plugin_api_version minpf_plugin_api_version
 
typedef void *(* minpf_create_func) (minpf_object_params *)
 
typedef int32_t(* minpf_destroy_func) (void *)
 
typedef struct grk::minpf_register_params minpf_register_params
 
typedef int32_t(* minpf_register_func) (const char *nodeType, const minpf_register_params *params)
 
typedef int32_t(* minpf_invoke_service_func) (const char *serviceName, void *serviceParams)
 
typedef struct grk::minpf_platform_services minpf_platform_services
 
typedef int32_t(* minpf_exit_func) ()
 
typedef minpf_exit_func(* minpf_post_load_func) (const char *pluginPath, const minpf_platform_services *)
 
typedef struct grk::minpf_plugin_manager minpf_plugin_manager
 
typedef uint32_t(* PLUGIN_GET_DEBUG_STATE) (void)
 
typedef void(* PLUGIN_DEBUG_MQC_NEXT_CXD) (grk_plugin_debug_mqc *mqc, uint32_t d)
 
typedef void(* PLUGIN_DEBUG_MQC_NEXT_PLANE) (grk_plugin_debug_mqc *mqc)
 
typedef void(* PLUGIN_ENCODE_USER_CALLBACK) (plugin_encode_user_callback_info *info)
 
typedef bool(* PLUGIN_INIT) (grk_plugin_init_info initInfo)
 
typedef int32_t(* PLUGIN_ENCODE) (grk_cparameters *encoding_parameters, PLUGIN_ENCODE_USER_CALLBACK callback)
 
typedef int32_t(* PLUGIN_BATCH_ENCODE) (const char *input_dir, const char *output_dir, grk_cparameters *encoding_parameters, PLUGIN_ENCODE_USER_CALLBACK userCallback)
 
typedef void(* PLUGIN_STOP_BATCH_ENCODE) (void)
 
typedef bool(* PLUGIN_IS_BATCH_COMPLETE) (void)
 
typedef int32_t(* PLUGIN_DECODE_USER_CALLBACK) (PluginDecodeCallbackInfo *info)
 
typedef int32_t(* PLUGIN_DECODE) (grk_decompress_parameters *decoding_parameters, PLUGIN_DECODE_USER_CALLBACK userCallback)
 
typedef int32_t(* PLUGIN_INIT_BATCH_DECODE) (const char *input_dir, const char *output_dir, grk_decompress_parameters *decoding_parameters, PLUGIN_DECODE_USER_CALLBACK userCallback)
 
typedef int32_t(* PLUGIN_BATCH_DECODE) (void)
 
typedef void(* PLUGIN_STOP_BATCH_DECODE) (void)
 
typedef uint32_t grk_flag
 Flags for 4 consecutive rows of a column. More...
 
typedef TagTree< uint8_t > TagTreeU8
 
typedef TagTree< uint16_t > TagTreeU16
 
typedef int32_t grk_handle
 
typedef size_t(* grk_stream_zero_copy_read_fn) (void **buffer, size_t numBytes, void *user_data)
 
using grkPointU32 = grkPoint< uint32_t >
 
using grkLineU32 = grkLine< uint32_t >
 
using grkRectU32 = grkRect< uint32_t >
 

Enumerations

enum  GrkCacheState { GRK_CACHE_STATE_CLOSED , GRK_CACHE_STATE_OPEN , GRK_CACHE_STATE_ERROR }
 
enum  J2K_MCT_ELEMENT_TYPE { MCT_TYPE_INT16 = 0 , MCT_TYPE_INT32 = 1 , MCT_TYPE_FLOAT = 2 , MCT_TYPE_DOUBLE = 3 }
 Type of elements storing in the MCT data. More...
 
enum  J2K_MCT_ARRAY_TYPE { MCT_TYPE_DEPENDENCY = 0 , MCT_TYPE_DECORRELATION = 1 , MCT_TYPE_OFFSET = 2 }
 Type of MCT array. More...
 
enum  DECOMPRESS_STATE {
  DECOMPRESS_STATE_NONE = 0x0000 , DECOMPRESS_STATE_MH_SOC = 0x0001 , DECOMPRESS_STATE_MH_SIZ = 0x0002 , DECOMPRESS_STATE_MH = 0x0004 ,
  DECOMPRESS_STATE_TPH = 0x0008 , DECOMPRESS_STATE_TPH_SOT = 0x0010 , DECOMPRESS_STATE_DATA = 0x0020 , DECOMPRESS_STATE_EOC = 0x0040 ,
  DECOMPRESS_STATE_NO_EOC = 0x0080
}
 Status of decoding process when decoding main header or tile header. More...
 
enum  JP2_STATE {
  JP2_STATE_NONE = 0x0 , JP2_STATE_SIGNATURE = 0x1 , JP2_STATE_FILE_TYPE = 0x2 , JP2_STATE_HEADER = 0x4 ,
  JP2_STATE_CODESTREAM = 0x8 , JP2_STATE_END_CODESTREAM = 0x10 , JP2_STATE_UNKNOWN = 0x7fffffff
}
 
enum  eBandOrientation {
  BAND_ORIENT_LL , BAND_ORIENT_HL , BAND_ORIENT_LH , BAND_ORIENT_HH ,
  BAND_NUM_ORIENTATIONS
}
 
enum  eBandIndex { BAND_INDEX_HL , BAND_INDEX_LH , BAND_INDEX_HH , BAND_NUM_INDICES }
 
enum  J2K_T2_MODE { THRESH_CALC = 0 , FINAL_PASS = 1 }
 
enum  eSplitOrientation { SPLIT_L , SPLIT_H , SPLIT_NUM_ORIENTATIONS }
 

Functions

uint32_t grkMakeAlignedWidth (uint32_t width)
 
static void * grkAlignedAllocN (size_t alignment, size_t size)
 
void * grkMalloc (size_t size)
 Allocate an uninitialized memory block. More...
 
void * grkCalloc (size_t numOfElements, size_t sizeOfElements)
 Allocate a memory block with elements initialized to 0. More...
 
void * grkAlignedMalloc (size_t size)
 Allocate memory aligned to a 16 byte boundary. More...
 
void grkAlignedFree (void *ptr)
 
void * grkRealloc (void *m, size_t s)
 Reallocate memory blocks. More...
 
void grkFree (void *m)
 Deallocates or frees a memory block. More...
 
template<typename S , typename D >
void j2k_write (const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
 
static void j2k_write_float_to_int16 (const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
 
static void j2k_write_float_to_int32 (const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
 
static void j2k_write_float_to_float (const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
 
static void j2k_write_float_to_float64 (const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
 
static void j2k_read_int16_to_float (const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
 
static void j2k_read_int32_to_float (const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
 
static void j2k_read_float32_to_float (const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
 
static void j2k_read_float64_to_float (const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
 
static void j2k_read_int16_to_int32 (const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
 
static void j2k_read_int32_to_int32 (const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
 
static void j2k_read_float32_to_int32 (const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
 
static void j2k_read_float64_to_int32 (const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
 
bool minpf_get_full_path (const char *path, void *addr, dynamic_handle_t handle, char *fullPath, size_t fullPathLen)
 
bool minpf_unload_dynamic_library (minpf_dynamic_library *library)
 
minpf_dynamic_libraryminpf_load_dynamic_library (const char *path, char *error)
 
void * minpf_get_symbol (minpf_dynamic_library *library, const char *symbol)
 
PLUGIN_API minpf_exit_func minpf_init_plugin (const char *pluginPath, const minpf_platform_services *params)
 
static int32_t minpf_post_load_plugin (const char *pluginPath, minpf_post_load_func initFunc)
 
static const char * get_filename_ext (const char *filename)
 
static int32_t minpf_load (const char *path)
 
static uint32_t minpf_is_valid_plugin (const char *id, const minpf_register_params *params)
 
int32_t minpf_register_object (const char *id, const minpf_register_params *params)
 
const char * minpf_get_dynamic_library_extension (void)
 
void minpf_initialize_plugin_manager (minpf_plugin_manager *manager)
 
minpf_plugin_managerminpf_get_plugin_manager (void)
 
void minpf_cleanup_plugin_manager (void)
 
int32_t minpf_load_from_path (const char *path, minpf_invoke_service_func func)
 
int32_t minpf_load_from_dir (const char *directory_path, minpf_invoke_service_func func)
 
void decompress_synch_plugin_with_host (TileProcessor *tcd)
 
bool tile_equals (grk_plugin_tile *plugin_tile, Tile *tilePtr)
 
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)
 
void set_context_stream (TileProcessor *p_tileProcessor)
 
void mqc_next_plane (grk_plugin_debug_mqc *mqc)
 
void nextCXD (grk_plugin_debug_mqc *mqc, uint32_t d)
 
uint32_t mqc_numbytes_enc (mqcoder *mqc)
 
void mqc_resetstates (mqcoder *mqc)
 
void mqc_init_enc (mqcoder *mqc, uint8_t *bp)
 
void mqc_encode (mqcoder *mqc, uint32_t d)
 
void mqc_flush_enc (mqcoder *mqc)
 
void mqc_bypass_init_enc (mqcoder *mqc)
 
uint32_t mqc_bypass_get_extra_bytes_enc (mqcoder *mqc, bool erterm)
 
void mqc_bypass_enc (mqcoder *mqc, uint32_t d)
 
void mqc_bypass_flush_enc (mqcoder *mqc, bool erterm)
 
void mqc_restart_init_enc (mqcoder *mqc)
 
void mqc_erterm_enc (mqcoder *mqc)
 
void mqc_segmark_enc (mqcoder *mqc)
 
void mqc_init_dec (mqcoder *mqc, uint8_t *bp, uint32_t len)
 Initialize the decoder for MQ decoding. More...
 
void mqc_raw_init_dec (mqcoder *mqc, uint8_t *bp, uint32_t len)
 Initialize the decoder for RAW decoding. More...
 
void mqc_finish_dec (mqcoder *mqc)
 Terminate RAW/MQC decoding. More...
 
static void mqc_init_dec_common (mqcoder *mqc, uint8_t *bp, uint32_t len)
 
void mqc_byteout (mqcoder *mqc)
 
static void mqc_renorm_enc (mqcoder *mqc)
 
static void mqc_codemps_enc (mqcoder *mqc)
 
static void mqc_codelps_enc (mqcoder *mqc)
 
static void mqc_setbits_enc (mqcoder *mqc)
 
static INLINE void update_flags (grk_flag *flagsp, uint32_t ci, uint32_t s, uint32_t stride, uint32_t vsc)
 
static int16_t getnmsedec_sig (uint32_t x, uint32_t bitpos)
 
static int16_t getnmsedec_ref (uint32_t x, uint32_t bitpos)
 
static INLINE uint8_t getctxno_zc (mqcoder *mqc, uint32_t f)
 
static INLINE uint32_t getctxno_mag (uint32_t f)
 
static INLINE uint32_t getctxtno_sc_or_spb_index (uint32_t fX, uint32_t pfX, uint32_t nfX, uint32_t ci)
 
static INLINE uint8_t getspb (uint32_t lu)
 
static INLINE uint8_t getctxno_sc (uint32_t lu)
 
template<typename T >
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. More...
 
static void prepareBlockForFirstLayer (CompressCodeblock *cblk)
 
template<typename T >
void deinterleave_h (const T *GRK_RESTRICT a, T *GRK_RESTRICT b, int32_t dn, int32_t sn, int32_t parity)
 
template<typename T , typename DWT >
void encode_h_func (encode_h_job< T, DWT > *job)
 
template<typename T , typename DWT >
void encode_v_func (encode_v_job< T, DWT > *job)
 
template<typename T >
void fetch_cols_vertical_pass (const T *array, T *tmp, uint32_t height, uint32_t stride_width, uint32_t cols)
 Fetch up to cols <= NB_ELTS_V8 for each line, and put them in tmpOut. More...
 
template<typename T >
void deinterleave_v_cols (const T *GRK_RESTRICT src, T *GRK_RESTRICT dst, uint32_t dn, uint32_t sn, uint32_t stride_width, uint32_t parity, uint32_t cols)
 
uint32_t max_resolution (Resolution *GRK_RESTRICT r, uint32_t i)
 
template<class T >
constexpr T getFilterPad (bool lossless)
 
template<class T >
constexpr T getHorizontalPassHeight (bool lossless)
 
int32_t getValue (uint32_t i)
 
bool init_tilec (TileComponent *tilec, uint32_t x0, uint32_t y0, uint32_t x1, uint32_t y1, uint32_t numresolutions, GrkImage *outputImage)
 
void usage (void)
 
template<typename TYPE >
void grk_write (uint8_t *buffer, TYPE value, uint32_t numBytes)
 
template<typename TYPE >
void grk_read (const uint8_t *buffer, TYPE *value, uint32_t numBytes)
 
template<typename TYPE >
void grk_write (uint8_t *buffer, TYPE value)
 
template<typename TYPE >
void grk_read (const uint8_t *buffer, TYPE *value)
 
uint8_t floorlog2 (uint32_t a)
 Get logarithm of an integer and round downwards. More...
 
template<typename T >
uint32_t ceildiv (T a, T b)
 Divide an integer by another integer and round upwards. More...
 
template<typename T >
ceildivpow2 (T a, uint32_t b)
 
static uint32_t floordivpow2 (uint32_t a, uint32_t b)
 Divide an unsigned integer by a power of 2 and round downwards. More...
 
static int32_t fix_mul (int32_t a, int32_t b)
 Multiply two fixed-point numbers. More...
 
static int32_t get_file_open_mode (const char *mode)
 
static uint64_t size_proc (grk_handle fd)
 
static void * grk_map (grk_handle fd, size_t len, bool do_read)
 
static int32_t unmap (void *ptr, size_t len)
 
static grk_handle open_fd (const char *fname, const char *mode)
 
static int32_t close_fd (grk_handle fd)
 
static void mem_map_free (void *user_data)
 
grk_streamcreate_mapped_file_read_stream (const char *fname)
 
grk_streamcreate_mapped_file_write_stream (const char *fname)
 
template<typename... Args>
void log (grk_msg_callback msg_handler, void *l_data, char const *const format, Args &... args) noexcept
 
void GRK_INFO (const char *fmt,...)
 
void GRK_WARN (const char *fmt,...)
 
void GRK_ERROR (const char *fmt,...)
 
static void free_mem (void *user_data)
 
static size_t zero_copy_read_from_mem (void **buffer, size_t numBytes, MemStream *p_source_buffer)
 
static size_t read_from_mem (void *buffer, size_t numBytes, MemStream *p_source_buffer)
 
static size_t write_to_mem (void *dest, size_t numBytes, MemStream *src)
 
static bool seek_from_mem (uint64_t numBytes, MemStream *src)
 
static void grk_stream_set_zero_copy_read_function (grk_stream *stream, grk_stream_zero_copy_read_fn p_function)
 Set the given function to be used as a zero copy read function. More...
 
void set_up_mem_stream (grk_stream *stream, size_t len, bool is_read_stream)
 
size_t get_mem_stream_offset (grk_stream *stream)
 
grk_streamcreate_mem_stream (uint8_t *buf, size_t len, bool ownsBuffer, bool is_read_stream)
 
template<typename T >
clip (int64_t val)
 
template<typename T >
satAdd (int64_t lhs, int64_t rhs)
 
template<typename T >
satAdd (T lhs, T rhs)
 
template<typename T >
satSub (T lhs, T rhs)
 
template<typename T >
satSub (int64_t lhs, int64_t rhs)
 

Variables

const uint32_t tlm_marker_start_bytes = 6
 
const uint32_t grkWidthAlignment = 32
 
const size_t grkBufferALignment = 64
 
const uint32_t available_packet_len_bytes_per_plt = USHRT_MAX - 1 - 4
 
const uint32_t default_numbers_segments = 10
 
const uint32_t default_header_size = 4096
 
const uint32_t default_number_mcc_records = 10
 
const uint32_t default_number_mct_records = 10
 
const uint32_t sot_marker_segment_len = 12U
 
const uint32_t grk_marker_length = 4U
 
const uint32_t SPCod_SPCoc_len = 5U
 
const uint32_t cod_coc_len = 5U
 
const uint32_t tlmMarkerBytesPerTilePart = 6
 
const uint32_t GRK_COMP_PARAM_DEFAULT_CBLOCKW = 64
 
const uint32_t GRK_COMP_PARAM_DEFAULT_CBLOCKH = 64
 
const GRK_PROG_ORDER GRK_COMP_PARAM_DEFAULT_PROG_ORDER = GRK_LRCP
 
const uint32_t GRK_COMP_PARAM_DEFAULT_NUMRESOLUTION = 6
 
const uint32_t MCT_ELEMENT_SIZE [] = {2, 4, 4, 8}
 
static const j2k_mct_function j2k_mct_write_functions_from_float []
 
static j2k_prog_order j2k_prog_order_list []
 
static const j2k_mct_function j2k_mct_read_functions_to_float []
 
static const j2k_mct_function j2k_mct_read_functions_to_int32 []
 
const uint32_t maxNumComponentsJ2K = 16384
 
const uint32_t maxPrecisionJ2K = 38
 
const uint32_t maxPassesPerSegmentJ2K = (maxPrecisionJ2K - 1) * 3 + 1
 
const uint32_t maxNumTilesJ2K = 65535
 
const uint32_t maxTilePartsPerTileJ2K = 255
 
const uint32_t maxTotalTilePartsJ2K = 65535
 
const uint32_t maxTilePartSizeJ2K = UINT_MAX
 
const uint32_t maxNumLayersJ2K = 65535
 
const uint32_t maxBitPlanesGRK = 31 - T1_NMSEDEC_FRACBITS
 
const uint16_t maxCompressLayersGRK = 100
 
const uint8_t IPTC_UUID [16]
 
const uint8_t XMP_UUID [16]
 
static const uint16_t tabMaxSubLevelFromMainLevel []
 
minpf_plugin_managermanagerInstance
 
static const char * plugin_debug_mqc_next_cxd_method_name = "plugin_debug_mqc_next_cxd"
 
static const char * plugin_debug_mqc_next_plane_method_name = "plugin_debug_mqc_next_plane"
 
const uint32_t A_MIN = 0x8000
 
static const mqc_state mqc_states [47 *2]
 
static const mqc_state mqc_states [47 *2]
 
static const double dwt_norms [4][10]
 
static const double dwt_norms_real [4][10]
 
const uint32_t BAND_RES_ZERO_INDEX_LL = 0
 
const double slopeCutoff = pow(2, 64)
 
const double scale = 256 / log(2)
 
const double invScale = log(2) / 256
 
const double shift = 1 << 16
 
const uint32_t NB_ELTS_V8 = 8
 
static const float alpha = -1.586134342f
 
static const float beta = -0.052980118f
 
static const float gamma = 0.882911075f
 
static const float delta = 0.443506852f
 
static const float grk_K = 1.230174105f
 
static const float grk_invK = (float)(1.0 / 1.230174105)
 

Detailed Description

Copyright (C) 2016-2021 Grok Image Compression Inc.

This source code is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License, version 3, as published by the Free Software Foundation.

This source code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Typedef Documentation

◆ BOX_FUNC

typedef std::function<bool(uint8_t* headerData, uint32_t header_size)> grk::BOX_FUNC

◆ grk_flag

typedef uint32_t grk::grk_flag

Flags for 4 consecutive rows of a column.

◆ grk_handle

typedef int32_t grk::grk_handle

◆ grk_stream_zero_copy_read_fn

typedef size_t(* grk::grk_stream_zero_copy_read_fn) (void **buffer, size_t numBytes, void *user_data)

◆ grkBufferU8

using grk::grkBufferU8 = typedef grkBuffer<uint8_t, AllocatorVanilla>

◆ grkBufferU8Aligned

◆ grkLineU32

using grk::grkLineU32 = typedef grkLine<uint32_t>

◆ grkPointU32

using grk::grkPointU32 = typedef grkPoint<uint32_t>

◆ grkRectU32

typedef grkRect< uint32_t > grk::grkRectU32

◆ j2k_mct_function

typedef void(* grk::j2k_mct_function) (const void *p_src_data, void *p_dest_data, uint64_t nb_elem)

◆ MARKER_FUNC

typedef std::function<bool(uint8_t* headerData, uint16_t header_size)> grk::MARKER_FUNC

◆ minpf_create_func

typedef void*(* grk::minpf_create_func) (minpf_object_params *)

◆ minpf_destroy_func

typedef int32_t(* grk::minpf_destroy_func) (void *)

◆ minpf_exit_func

typedef int32_t(* grk::minpf_exit_func) ()

◆ minpf_invoke_service_func

typedef int32_t(* grk::minpf_invoke_service_func) (const char *serviceName, void *serviceParams)

◆ minpf_object_params

◆ minpf_platform_services

◆ minpf_plugin_api_version

◆ minpf_plugin_manager

◆ minpf_post_load_func

typedef minpf_exit_func(* grk::minpf_post_load_func) (const char *pluginPath, const minpf_platform_services *)

◆ minpf_register_func

typedef int32_t(* grk::minpf_register_func) (const char *nodeType, const minpf_register_params *params)

◆ minpf_register_params

◆ PL_INFO_VEC

typedef std::vector<uint32_t> grk::PL_INFO_VEC

◆ PL_MAP

typedef std::map<uint8_t, PacketLengthMarkerInfo> grk::PL_MAP

◆ PLUGIN_BATCH_DECODE

typedef int32_t(* grk::PLUGIN_BATCH_DECODE) (void)

◆ PLUGIN_BATCH_ENCODE

typedef int32_t(* grk::PLUGIN_BATCH_ENCODE) (const char *input_dir, const char *output_dir, grk_cparameters *encoding_parameters, PLUGIN_ENCODE_USER_CALLBACK userCallback)

◆ PLUGIN_DEBUG_MQC_NEXT_CXD

typedef void(* grk::PLUGIN_DEBUG_MQC_NEXT_CXD) (grk_plugin_debug_mqc *mqc, uint32_t d)

◆ PLUGIN_DEBUG_MQC_NEXT_PLANE

typedef void(* grk::PLUGIN_DEBUG_MQC_NEXT_PLANE) (grk_plugin_debug_mqc *mqc)

◆ PLUGIN_DECODE

typedef int32_t(* grk::PLUGIN_DECODE) (grk_decompress_parameters *decoding_parameters, PLUGIN_DECODE_USER_CALLBACK userCallback)

◆ PLUGIN_DECODE_USER_CALLBACK

typedef int32_t(* grk::PLUGIN_DECODE_USER_CALLBACK) (PluginDecodeCallbackInfo *info)

◆ PLUGIN_ENCODE

typedef int32_t(* grk::PLUGIN_ENCODE) (grk_cparameters *encoding_parameters, PLUGIN_ENCODE_USER_CALLBACK callback)

◆ PLUGIN_ENCODE_USER_CALLBACK

typedef void(* grk::PLUGIN_ENCODE_USER_CALLBACK) (plugin_encode_user_callback_info *info)

◆ PLUGIN_GET_DEBUG_STATE

typedef uint32_t(* grk::PLUGIN_GET_DEBUG_STATE) (void)

◆ PLUGIN_INIT

typedef bool(* grk::PLUGIN_INIT) (grk_plugin_init_info initInfo)

◆ PLUGIN_INIT_BATCH_DECODE

typedef int32_t(* grk::PLUGIN_INIT_BATCH_DECODE) (const char *input_dir, const char *output_dir, grk_decompress_parameters *decoding_parameters, PLUGIN_DECODE_USER_CALLBACK userCallback)

◆ PLUGIN_IS_BATCH_COMPLETE

typedef bool(* grk::PLUGIN_IS_BATCH_COMPLETE) (void)

◆ PLUGIN_STOP_BATCH_DECODE

typedef void(* grk::PLUGIN_STOP_BATCH_DECODE) (void)

◆ PLUGIN_STOP_BATCH_ENCODE

typedef void(* grk::PLUGIN_STOP_BATCH_ENCODE) (void)

◆ PROCEDURE_FUNC

typedef std::function<bool(void)> grk::PROCEDURE_FUNC

◆ TagTreeU16

typedef TagTree<uint16_t> grk::TagTreeU16

◆ TagTreeU8

typedef TagTree<uint8_t> grk::TagTreeU8

◆ TL_INFO_VEC

typedef std::vector<TilePartLengthInfo> grk::TL_INFO_VEC

◆ TL_MAP

typedef std::map<uint8_t, TL_INFO_VEC*> grk::TL_MAP

◆ WRITE_FUNC

typedef std::function<uint8_t*(uint32_t* len)> grk::WRITE_FUNC

Enumeration Type Documentation

◆ DECOMPRESS_STATE

Status of decoding process when decoding main header or tile header.

These values may be combined with the | operator.

Enumerator
DECOMPRESS_STATE_NONE 

no decompress state

DECOMPRESS_STATE_MH_SOC 

a SOC marker is expected

DECOMPRESS_STATE_MH_SIZ 

a SIZ marker is expected

DECOMPRESS_STATE_MH 

the decoding process is in the main header

DECOMPRESS_STATE_TPH 

the decoding process is in a tile part header

DECOMPRESS_STATE_TPH_SOT 

the decoding process is in a tile part header and expects a SOT marker

DECOMPRESS_STATE_DATA 

the decoding process is expecting to read tile data from the code stream

DECOMPRESS_STATE_EOC 

the decoding process has encountered the EOC marker

DECOMPRESS_STATE_NO_EOC 

the decoding process must not expect a EOC marker because the code stream is truncated

◆ eBandIndex

Enumerator
BAND_INDEX_HL 
BAND_INDEX_LH 
BAND_INDEX_HH 
BAND_NUM_INDICES 

◆ eBandOrientation

Enumerator
BAND_ORIENT_LL 
BAND_ORIENT_HL 
BAND_ORIENT_LH 
BAND_ORIENT_HH 
BAND_NUM_ORIENTATIONS 

◆ eSplitOrientation

Enumerator
SPLIT_L 
SPLIT_H 
SPLIT_NUM_ORIENTATIONS 

◆ GrkCacheState

Enumerator
GRK_CACHE_STATE_CLOSED 
GRK_CACHE_STATE_OPEN 
GRK_CACHE_STATE_ERROR 

◆ J2K_MCT_ARRAY_TYPE

Type of MCT array.

Enumerator
MCT_TYPE_DEPENDENCY 
MCT_TYPE_DECORRELATION 
MCT_TYPE_OFFSET 

◆ J2K_MCT_ELEMENT_TYPE

Type of elements storing in the MCT data.

Enumerator
MCT_TYPE_INT16 
MCT_TYPE_INT32 

MCT data is stored as signed shorts.

MCT_TYPE_FLOAT 

MCT data is stored as signed integers.

MCT_TYPE_DOUBLE 

MCT data is stored as floats.

◆ J2K_T2_MODE

Enumerator
THRESH_CALC 
FINAL_PASS 

Function called in rate allocation process.

◆ JP2_STATE

Enumerator
JP2_STATE_NONE 
JP2_STATE_SIGNATURE 
JP2_STATE_FILE_TYPE 
JP2_STATE_HEADER 
JP2_STATE_CODESTREAM 
JP2_STATE_END_CODESTREAM 
JP2_STATE_UNKNOWN 

Function Documentation

◆ ceildiv()

template<typename T >
uint32_t grk::ceildiv ( a,
b 
)

Divide an integer by another integer and round upwards.

Parameters
ainteger of type T
binteger of type T
Returns
a divided by b

Referenced by grk::grkRect< T >::rectceildiv().

◆ ceildivpow2()

template<typename T >
T grk::ceildivpow2 ( a,
uint32_t  b 
)

◆ clip()

template<typename T >
T grk::clip ( int64_t  val)

◆ close_fd()

static int32_t grk::close_fd ( grk_handle  fd)
static

Referenced by mem_map_free().

◆ compress_synch_with_plugin()

void grk::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 
)

◆ create_mapped_file_read_stream()

grk_stream * grk::create_mapped_file_read_stream ( const char *  fname)

◆ create_mapped_file_write_stream()

grk_stream * grk::create_mapped_file_write_stream ( const char *  fname)

◆ create_mem_stream()

grk_stream * grk::create_mem_stream ( uint8_t *  buf,
size_t  len,
bool  ownsBuffer,
bool  is_read_stream 
)

◆ decompress_synch_plugin_with_host()

void grk::decompress_synch_plugin_with_host ( TileProcessor tcd)

◆ deinterleave_h()

template<typename T >
void grk::deinterleave_h ( const T *GRK_RESTRICT  a,
T *GRK_RESTRICT  b,
int32_t  dn,
int32_t  sn,
int32_t  parity 
)

◆ deinterleave_v_cols()

template<typename T >
void grk::deinterleave_v_cols ( const T *GRK_RESTRICT  src,
T *GRK_RESTRICT  dst,
uint32_t  dn,
uint32_t  sn,
uint32_t  stride_width,
uint32_t  parity,
uint32_t  cols 
)

◆ encode_h_func()

template<typename T , typename DWT >
void grk::encode_h_func ( encode_h_job< T, DWT > *  job)

◆ encode_v_func()

template<typename T , typename DWT >
void grk::encode_v_func ( encode_v_job< T, DWT > *  job)

◆ fetch_cols_vertical_pass()

template<typename T >
void grk::fetch_cols_vertical_pass ( const T *  array,
T *  tmp,
uint32_t  height,
uint32_t  stride_width,
uint32_t  cols 
)

Fetch up to cols <= NB_ELTS_V8 for each line, and put them in tmpOut.

References NB_ELTS_V8.

Referenced by grk::dwt97::encode_and_deinterleave_v().

◆ fix_mul()

static int32_t grk::fix_mul ( int32_t  a,
int32_t  b 
)
inlinestatic

Multiply two fixed-point numbers.

Parameters
aN-bit precision fixed point number
b13-bit precision fixed point number
Returns
a * b in N-bit precision fixed point

◆ floordivpow2()

static uint32_t grk::floordivpow2 ( uint32_t  a,
uint32_t  b 
)
inlinestatic

◆ floorlog2()

uint8_t grk::floorlog2 ( uint32_t  a)

◆ free_mem()

static void grk::free_mem ( void *  user_data)
static

Referenced by create_mem_stream().

◆ get_file_open_mode()

static int32_t grk::get_file_open_mode ( const char *  mode)
static

Referenced by open_fd().

◆ get_filename_ext()

static const char * grk::get_filename_ext ( const char *  filename)
static

Referenced by minpf_load_from_dir().

◆ get_mem_stream_offset()

size_t grk::get_mem_stream_offset ( grk_stream stream)

◆ getctxno_mag()

static INLINE uint32_t grk::getctxno_mag ( uint32_t  f)
static

◆ getctxno_sc()

static INLINE uint8_t grk::getctxno_sc ( uint32_t  lu)
static

References lut_ctxno_sc.

Referenced by grk::T1::enc_clnpass().

◆ getctxno_zc()

static INLINE uint8_t grk::getctxno_zc ( mqcoder mqc,
uint32_t  f 
)
static

◆ getctxtno_sc_or_spb_index()

static INLINE uint32_t grk::getctxtno_sc_or_spb_index ( uint32_t  fX,
uint32_t  pfX,
uint32_t  nfX,
uint32_t  ci 
)
static

◆ getFilterPad()

template<class T >
constexpr T grk::getFilterPad ( bool  lossless)
constexpr

◆ getHorizontalPassHeight()

template<class T >
constexpr T grk::getHorizontalPassHeight ( bool  lossless)
constexpr

◆ getnmsedec_ref()

static int16_t grk::getnmsedec_ref ( uint32_t  x,
uint32_t  bitpos 
)
static

◆ getnmsedec_sig()

static int16_t grk::getnmsedec_sig ( uint32_t  x,
uint32_t  bitpos 
)
static

◆ getspb()

static INLINE uint8_t grk::getspb ( uint32_t  lu)
static

References lut_spb.

Referenced by grk::T1::enc_clnpass().

◆ getValue()

int32_t grk::getValue ( uint32_t  i)

Referenced by init_tilec(), and main().

◆ grk_copy_strided()

template<typename T >
void grk::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.

◆ GRK_ERROR()

void grk::GRK_ERROR ( const char *  fmt,
  ... 
)

References log(), and grk::logger::m_logger.

Referenced by grk::SparseCanvas< LBW, LBH >::alloc(), grk::T1::alloc(), grk::grkBuffer2d< T, A >::alloc2d(), grk::GrkImage::allocData(), grk::T1::allocUncompressedData(), grk::TileComponent::allocWindowBuffer(), grk::FileFormatDecompress::apply_palette_clr(), grk::BitIO::bytein(), grk::FileFormatDecompress::check_color(), grk::TileInfo::checkResize(), grk::CodeStreamCompress::compress(), compress_synch_with_plugin(), grk::T2Compress::compressHeader(), grk::T2Compress::compressPacket(), grk::T2Compress::compressPackets(), grk::T2Compress::compressPacketSimulate(), grk::T2Compress::compressPacketsSimulate(), grk::CodeStreamCompress::compressTile(), grk::CodeStreamCompress::compressValidation(), grk::GrkImage::create(), create_mapped_file_read_stream(), create_mapped_file_write_stream(), ojph::T1OJPH::decompress(), grk::FileFormatDecompress::decompress(), grk::T1::decompress_cblk(), grk::T1DecompressScheduler::decompressBlock(), grk::T2Decompress::decompressPackets(), grk::TileProcessor::decompressT1(), grk::CodeStreamDecompress::decompressT2T1(), grk::CodeStreamDecompress::decompressTile(), grk::FileFormatDecompress::decompressTile(), grk::CodeStreamDecompress::decompressTiles(), grk::WaveletFwdImpl::encode_procedure(), grk::CodeStreamDecompress::findNextTile(), grk::BufferedStream::flush(), grk::CodeStreamCompress::getNumTileParts(), grk::TileComponent::init(), grk::TileProcessor::init(), grk::CodeStreamCompress::initCompress(), grk::FileFormatCompress::initCompress(), mem_map_free(), grk::PPMMarker::merge(), grk::CodeStreamDecompress::merge_ppt(), grk::PacketLengthCache::next(), grk::PacketIter::next_cprl(), grk::PacketIter::next_pcrl(), grk::PacketIter::next_rlcp(), open_fd(), grk::CodeStreamDecompress::parseTileHeaderMarkers(), grk::TileProcessor::preCompressTile(), grk::TileProcessor::prepareSodDecompress(), grk::CodeStreamDecompress::process_marker(), grk::SIZMarker::read(), grk::SOTMarker::read(), grk::BufferedStream::read(), grk::TileLengthMarkers::read(), grk::PPMMarker::read(), grk::FileFormatDecompress::read_asoc(), grk::FileFormatDecompress::read_box(), grk::FileFormatDecompress::read_box_hdr(), grk::FileFormatDecompress::read_bpc(), grk::CodeStreamDecompress::read_cap(), grk::CodeStreamDecompress::read_cbd(), grk::FileFormatDecompress::read_channel_definition(), grk::CodeStreamDecompress::read_coc(), grk::CodeStreamDecompress::read_cod(), grk::FileFormatDecompress::read_colr(), grk::CodeStreamDecompress::read_com(), grk::FileFormatDecompress::read_component_mapping(), grk::CodeStreamDecompress::read_crg(), grk::FileFormatDecompress::read_ftyp(), grk::FileFormatDecompress::read_ihdr(), grk::FileFormatDecompress::read_jp(), grk::FileFormatDecompress::read_jp2h(), grk::CodeStreamDecompress::read_mcc(), grk::CodeStreamDecompress::read_mco(), grk::CodeStreamDecompress::read_mct(), grk::SparseCanvas< LBW, LBH >::read_or_write(), grk::FileFormatDecompress::read_palette_clr(), grk::CodeStreamDecompress::read_poc(), grk::CodeStreamDecompress::read_ppt(), grk::CodeStreamDecompress::read_qcc(), grk::CodeStreamDecompress::read_qcd(), grk::FileFormatDecompress::read_res(), grk::CodeStreamDecompress::read_rgn(), grk::CodeStreamDecompress::read_SPCod_SPCoc(), grk::CodeStreamDecompress::read_SQcd_SQcc(), grk::CodeStreamDecompress::read_unk(), grk::FileFormatDecompress::readHeader(), grk::CodeStreamDecompress::readHeaderProcedure(), grk::CodeStreamDecompress::readHeaderProcedureImpl(), grk::FileFormatDecompress::readHeaderProcedureImpl(), grk::T2Decompress::readPacketData(), grk::T2Decompress::readPacketHeader(), grk::PacketLengthMarkers::readPLM(), grk::PacketLengthMarkers::readPLT(), grk::CodeStreamDecompress::setDecompressWindow(), grk::TileLengthMarkers::skipTo(), grk::CodeStreamInfo::skipToTile(), grk::GrkImage::subsampleAndReduce(), grk::TileInfo::update(), grk::CodeStreamCompress::validateProgressionOrders(), grk::CodeStreamCompress::write_cod(), grk::FileFormatCompress::write_ftyp(), grk::FileFormatCompress::write_jp2c(), grk::FileFormatCompress::write_jp2h(), grk::CodeStreamCompress::write_qcd(), grk::CodeStreamCompress::writeTilePart(), and grk::CodeStreamCompress::writeTileParts().

◆ GRK_INFO()

void grk::GRK_INFO ( const char *  fmt,
  ... 
)

◆ grk_map()

static void* grk::grk_map ( grk_handle  fd,
size_t  len,
bool  do_read 
)
static

◆ grk_read() [1/2]

template<typename TYPE >
void grk::grk_read ( const uint8_t *  buffer,
TYPE *  value 
)

◆ grk_read() [2/2]

template<typename TYPE >
void grk::grk_read ( const uint8_t *  buffer,
TYPE *  value,
uint32_t  numBytes 
)

◆ grk_stream_set_zero_copy_read_function()

static void grk::grk_stream_set_zero_copy_read_function ( grk_stream stream,
grk_stream_zero_copy_read_fn  p_function 
)
static

Set the given function to be used as a zero copy read function.

NOTE: this feature is only available for memory mapped and buffer backed streams, not file streams

Parameters
streamstream to modify
p_functionfunction to use as read function.

References grk::BufferedStream::getImpl(), and GROK_STREAM_STATUS_INPUT.

Referenced by set_up_mem_stream().

◆ GRK_WARN()

void grk::GRK_WARN ( const char *  fmt,
  ... 
)

References log(), and grk::logger::m_logger.

Referenced by grk::FileFormatDecompress::apply_channel_definition(), grk::FileFormatDecompress::check_color(), grk::GrkImage::compositeFrom(), compress_synch_with_plugin(), grk::T2Compress::compressHeader(), grk::T1::dec_clnpass_check_segsym(), grk::T1::decompress_cblk(), grk::T2Decompress::decompressPackets(), grk::TileProcessor::decompressT2T1(), grk::CodeStreamDecompress::decompressTile(), grk::CodeStreamDecompress::decompressTiles(), grk::DecompressorState::findNextTile(), grk::CodeStreamDecompress::get_marker_handler(), grk::PrecinctImpl::getIMsbTagTree(), grk::PrecinctImpl::getIncludeTagTree(), grk::grkBuffer< T, A >::incrementOffset(), grk::TileProcessor::init(), grk::CodeStreamCompress::initCompress(), grk::FileFormatCompress::initCompress(), grk::Profile::is_broadcast_compliant(), grk::Profile::is_cinema_compliant(), grk::Profile::is_imf_compliant(), grk::TileProcessor::needsMctDecompress(), grk::TileProcessor::prepareSodDecompress(), grk::SIZMarker::read(), grk::SOTMarker::read(), grk::SparseBuffer::read(), grk::FileFormatDecompress::read_bpc(), grk::CodeStreamDecompress::read_cod(), grk::FileFormatDecompress::read_colr(), grk::CodeStreamDecompress::read_com(), grk::FileFormatDecompress::read_ihdr(), grk::CodeStreamDecompress::read_mcc(), grk::CodeStreamDecompress::read_mco(), grk::CodeStreamDecompress::read_mct(), grk::SparseCanvas< LBW, LBH >::read_or_write(), grk::CodeStreamDecompress::read_SQcd_SQcc(), grk::FileFormatDecompress::read_uuid(), grk::FileFormatDecompress::readHeader(), grk::FileFormatDecompress::readHeaderProcedureImpl(), grk::CodeStreamDecompress::readMarker(), grk::T2Decompress::readPacketHeader(), grk::FileFormatDecompress::serializeAsoc(), grk::Profile::set_cinema_parameters(), grk::CodeStreamDecompress::setDecompressWindow(), grk::SparseBuffer::skip(), grk::TagTree< T >::TagTree(), grk::GrkObjectWrapper::unref(), and grk::CodeStreamCompress::write_com().

◆ grk_write() [1/2]

template<typename TYPE >
void grk::grk_write ( uint8_t *  buffer,
TYPE  value 
)

◆ grk_write() [2/2]

template<typename TYPE >
void grk::grk_write ( uint8_t *  buffer,
TYPE  value,
uint32_t  numBytes 
)

◆ grkAlignedAllocN()

static void* grk::grkAlignedAllocN ( size_t  alignment,
size_t  size 
)
inlinestatic

References SIZE_MAX.

Referenced by grkAlignedMalloc().

◆ grkAlignedFree()

void grk::grkAlignedFree ( void *  ptr)

◆ grkAlignedMalloc()

void * grk::grkAlignedMalloc ( size_t  size)

Allocate memory aligned to a 16 byte boundary.

Parameters
sizeBytes to allocate
Returns
a void pointer to the allocated space, or nullptr if there is insufficient memory available

References grkAlignedAllocN(), and grkBufferALignment.

Referenced by grk::AllocatorAligned< T >::alloc(), grk::T1::alloc(), grk::GrkImage::allocData(), grk::T1::allocUncompressedData(), and grk::WaveletFwdImpl::encode_procedure().

◆ grkCalloc()

void * grk::grkCalloc ( size_t  numOfElements,
size_t  sizeOfElements 
)

◆ grkFree()

void grk::grkFree ( void *  m)

◆ grkMakeAlignedWidth()

uint32_t grk::grkMakeAlignedWidth ( uint32_t  width)

◆ grkMalloc()

void * grk::grkMalloc ( size_t  size)

◆ grkRealloc()

void * grk::grkRealloc ( void *  m,
size_t  s 
)

Reallocate memory blocks.

Parameters
mPointer to previously allocated memory block
sNew size in bytes
Returns
a void pointer to the reallocated (and possibly moved) memory block

Referenced by grk::TileInfo::checkResize(), grk::CodeStreamCompress::init_mct_encoding(), grk::PPMMarker::read(), grk::CodeStreamDecompress::read_mcc(), grk::CodeStreamDecompress::read_mct(), grk::CodeStreamDecompress::read_ppt(), grk::FileFormatDecompress::readHeaderProcedureImpl(), and grk::TileInfo::update().

◆ init_tilec()

bool grk::init_tilec ( TileComponent tilec,
uint32_t  x0,
uint32_t  y0,
uint32_t  x1,
uint32_t  y1,
uint32_t  numresolutions,
GrkImage outputImage 
)

◆ j2k_read_float32_to_float()

static void grk::j2k_read_float32_to_float ( const void *  p_src_data,
void *  p_dest_data,
uint64_t  nb_elem 
)
static

◆ j2k_read_float32_to_int32()

static void grk::j2k_read_float32_to_int32 ( const void *  p_src_data,
void *  p_dest_data,
uint64_t  nb_elem 
)
static

◆ j2k_read_float64_to_float()

static void grk::j2k_read_float64_to_float ( const void *  p_src_data,
void *  p_dest_data,
uint64_t  nb_elem 
)
static

◆ j2k_read_float64_to_int32()

static void grk::j2k_read_float64_to_int32 ( const void *  p_src_data,
void *  p_dest_data,
uint64_t  nb_elem 
)
static

◆ j2k_read_int16_to_float()

static void grk::j2k_read_int16_to_float ( const void *  p_src_data,
void *  p_dest_data,
uint64_t  nb_elem 
)
static

◆ j2k_read_int16_to_int32()

static void grk::j2k_read_int16_to_int32 ( const void *  p_src_data,
void *  p_dest_data,
uint64_t  nb_elem 
)
static

◆ j2k_read_int32_to_float()

static void grk::j2k_read_int32_to_float ( const void *  p_src_data,
void *  p_dest_data,
uint64_t  nb_elem 
)
static

◆ j2k_read_int32_to_int32()

static void grk::j2k_read_int32_to_int32 ( const void *  p_src_data,
void *  p_dest_data,
uint64_t  nb_elem 
)
static

◆ j2k_write()

template<typename S , typename D >
void grk::j2k_write ( const void *  p_src_data,
void *  p_dest_data,
uint64_t  nb_elem 
)

◆ j2k_write_float_to_float()

static void grk::j2k_write_float_to_float ( const void *  p_src_data,
void *  p_dest_data,
uint64_t  nb_elem 
)
static

◆ j2k_write_float_to_float64()

static void grk::j2k_write_float_to_float64 ( const void *  p_src_data,
void *  p_dest_data,
uint64_t  nb_elem 
)
static

◆ j2k_write_float_to_int16()

static void grk::j2k_write_float_to_int16 ( const void *  p_src_data,
void *  p_dest_data,
uint64_t  nb_elem 
)
static

◆ j2k_write_float_to_int32()

static void grk::j2k_write_float_to_int32 ( const void *  p_src_data,
void *  p_dest_data,
uint64_t  nb_elem 
)
static

◆ log()

template<typename... Args>
void grk::log ( grk_msg_callback  msg_handler,
void *  l_data,
char const *const  format,
Args &...  args 
)
noexcept

◆ max_resolution()

uint32_t grk::max_resolution ( Resolution *GRK_RESTRICT  r,
uint32_t  i 
)

◆ mem_map_free()

static void grk::mem_map_free ( void *  user_data)
static

◆ minpf_cleanup_plugin_manager()

void grk::minpf_cleanup_plugin_manager ( void  )

◆ minpf_get_dynamic_library_extension()

const char * grk::minpf_get_dynamic_library_extension ( void  )

◆ minpf_get_full_path()

bool grk::minpf_get_full_path ( const char *  path,
void *  addr,
dynamic_handle_t  handle,
char *  fullPath,
size_t  fullPathLen 
)

References ojph::error.

Referenced by minpf_load().

◆ minpf_get_plugin_manager()

minpf_plugin_manager * grk::minpf_get_plugin_manager ( void  )

◆ minpf_get_symbol()

void * grk::minpf_get_symbol ( minpf_dynamic_library library,
const char *  symbol 
)

◆ minpf_init_plugin()

PLUGIN_API minpf_exit_func grk::minpf_init_plugin ( const char *  pluginPath,
const minpf_platform_services params 
)

◆ minpf_initialize_plugin_manager()

void grk::minpf_initialize_plugin_manager ( minpf_plugin_manager manager)

◆ minpf_is_valid_plugin()

static uint32_t grk::minpf_is_valid_plugin ( const char *  id,
const minpf_register_params params 
)
static

◆ minpf_load()

static int32_t grk::minpf_load ( const char *  path)
static

◆ minpf_load_dynamic_library()

minpf_dynamic_library * grk::minpf_load_dynamic_library ( const char *  path,
char *  error 
)

◆ minpf_load_from_dir()

int32_t grk::minpf_load_from_dir ( const char *  directory_path,
minpf_invoke_service_func  func 
)

◆ minpf_load_from_path()

int32_t grk::minpf_load_from_path ( const char *  path,
minpf_invoke_service_func  func 
)

◆ minpf_post_load_plugin()

static int32_t grk::minpf_post_load_plugin ( const char *  pluginPath,
minpf_post_load_func  initFunc 
)
static

◆ minpf_register_object()

int32_t grk::minpf_register_object ( const char *  id,
const minpf_register_params params 
)

◆ minpf_unload_dynamic_library()

bool grk::minpf_unload_dynamic_library ( minpf_dynamic_library library)

◆ mqc_bypass_enc()

void grk::mqc_bypass_enc ( mqcoder mqc,
uint32_t  d 
)

◆ mqc_bypass_flush_enc()

void grk::mqc_bypass_flush_enc ( mqcoder mqc,
bool  erterm 
)

◆ mqc_bypass_get_extra_bytes_enc()

uint32_t grk::mqc_bypass_get_extra_bytes_enc ( mqcoder mqc,
bool  erterm 
)

◆ mqc_bypass_init_enc()

void grk::mqc_bypass_init_enc ( mqcoder mqc)

◆ mqc_byteout()

void grk::mqc_byteout ( mqcoder mqc)

◆ mqc_codelps_enc()

static void grk::mqc_codelps_enc ( mqcoder mqc)
static

◆ mqc_codemps_enc()

static void grk::mqc_codemps_enc ( mqcoder mqc)
static

◆ mqc_encode()

void grk::mqc_encode ( mqcoder mqc,
uint32_t  d 
)

◆ mqc_erterm_enc()

void grk::mqc_erterm_enc ( mqcoder mqc)

◆ mqc_finish_dec()

void grk::mqc_finish_dec ( mqcoder mqc)

Terminate RAW/MQC decoding.

This restores the bytes temporarily overwritten by mqc_init_dec()/ mqc_raw_init_dec()

Parameters
mqcMQC handle

References grk::mqcoder::backup, grk::mqcoder::end, and grk_cblk_dec_compressed_data_pad_right.

Referenced by grk::T1::decompress_cblk().

◆ mqc_flush_enc()

void grk::mqc_flush_enc ( mqcoder mqc)

◆ mqc_init_dec()

void grk::mqc_init_dec ( mqcoder mqc,
uint8_t *  bp,
uint32_t  len 
)

Initialize the decoder for MQ decoding.

mqc_finish_dec() must be absolutely called after finishing the decoding passes, so as to restore the bytes temporarily overwritten.

Parameters
mqcMQC handle
bpPointer to the start of the buffer from which the bytes will be read Note that OPJ_COMMON_CBLK_DATA_EXTRA bytes at the end of the buffer will be temporarily overwritten with an artificial 0xFF 0xFF marker. (they will be backuped in the mqc structure to be restored later) So bp must be at least len + OPJ_COMMON_CBLK_DATA_EXTRA large, and writable.
lenLength of the input buffer

References grk::mqcoder::a, A_MIN, grk::mqcoder::bp, grk::mqcoder::c, grk::mqcoder::ct, grk::mqcoder::end_of_byte_stream_counter, mqc_bytein(), mqc_init_dec_common(), and mqc_setcurctx.

Referenced by grk::T1::decompress_cblk().

◆ mqc_init_dec_common()

static void grk::mqc_init_dec_common ( mqcoder mqc,
uint8_t *  bp,
uint32_t  len 
)
static

◆ mqc_init_enc()

void grk::mqc_init_enc ( mqcoder mqc,
uint8_t *  bp 
)

◆ mqc_next_plane()

void grk::mqc_next_plane ( grk_plugin_debug_mqc mqc)

◆ mqc_numbytes_enc()

uint32_t grk::mqc_numbytes_enc ( mqcoder mqc)

◆ mqc_raw_init_dec()

void grk::mqc_raw_init_dec ( mqcoder mqc,
uint8_t *  bp,
uint32_t  len 
)

Initialize the decoder for RAW decoding.

mqc_finish_dec() must be absolutely called after finishing the decoding passes, so as to restore the bytes temporarily overwritten.

Parameters
mqcMQC handle
bpPointer to the start of the buffer from which the bytes will be read Note that OPJ_COMMON_CBLK_DATA_EXTRA bytes at the end of the buffer will be temporarily overwritten with an artificial 0xFF 0xFF marker. (they will be backuped in the mqc structure to be restored later) So bp must be at least len + OPJ_COMMON_CBLK_DATA_EXTRA large, and writable.
lenLength of the input buffer

References grk::mqcoder::c, grk::mqcoder::ct, and mqc_init_dec_common().

Referenced by grk::T1::decompress_cblk().

◆ mqc_renorm_enc()

static void grk::mqc_renorm_enc ( mqcoder mqc)
static

◆ mqc_resetstates()

void grk::mqc_resetstates ( mqcoder mqc)

◆ mqc_restart_init_enc()

void grk::mqc_restart_init_enc ( mqcoder mqc)

◆ mqc_segmark_enc()

void grk::mqc_segmark_enc ( mqcoder mqc)

References mqc_encode(), and mqc_setcurctx.

Referenced by grk::T1::compress_cblk().

◆ mqc_setbits_enc()

static void grk::mqc_setbits_enc ( mqcoder mqc)
static

References grk::mqcoder::a, and grk::mqcoder::c.

Referenced by mqc_flush_enc().

◆ nextCXD()

void grk::nextCXD ( grk_plugin_debug_mqc mqc,
uint32_t  d 
)

◆ open_fd()

static grk_handle grk::open_fd ( const char *  fname,
const char *  mode 
)
static

◆ prepareBlockForFirstLayer()

static void grk::prepareBlockForFirstLayer ( CompressCodeblock cblk)
static

◆ read_from_mem()

static size_t grk::read_from_mem ( void *  buffer,
size_t  numBytes,
MemStream p_source_buffer 
)
static

◆ satAdd() [1/2]

template<typename T >
T grk::satAdd ( int64_t  lhs,
int64_t  rhs 
)

◆ satAdd() [2/2]

template<typename T >
T grk::satAdd ( lhs,
rhs 
)

◆ satSub() [1/2]

template<typename T >
T grk::satSub ( int64_t  lhs,
int64_t  rhs 
)

◆ satSub() [2/2]

template<typename T >
T grk::satSub ( lhs,
rhs 
)

◆ seek_from_mem()

static bool grk::seek_from_mem ( uint64_t  numBytes,
MemStream src 
)
static

◆ set_context_stream()

void grk::set_context_stream ( TileProcessor p_tileProcessor)

◆ set_up_mem_stream()

void grk::set_up_mem_stream ( grk_stream stream,
size_t  len,
bool  is_read_stream 
)

◆ size_proc()

static uint64_t grk::size_proc ( grk_handle  fd)
static

◆ tile_equals()

bool grk::tile_equals ( grk_plugin_tile plugin_tile,
Tile tilePtr 
)

◆ unmap()

static int32_t grk::unmap ( void *  ptr,
size_t  len 
)
static

Referenced by mem_map_free().

◆ update_flags()

static INLINE void grk::update_flags ( grk_flag flagsp,
uint32_t  ci,
uint32_t  s,
uint32_t  stride,
uint32_t  vsc 
)
static

◆ usage()

void grk::usage ( void  )

Referenced by grk::GrokOutput::usage().

◆ write_to_mem()

static size_t grk::write_to_mem ( void *  dest,
size_t  numBytes,
MemStream src 
)
static

◆ zero_copy_read_from_mem()

static size_t grk::zero_copy_read_from_mem ( void **  buffer,
size_t  numBytes,
MemStream p_source_buffer 
)
static

Variable Documentation

◆ A_MIN

const uint32_t grk::A_MIN = 0x8000

Referenced by mqc_init_dec().

◆ alpha

const float grk::alpha = -1.586134342f
static

◆ available_packet_len_bytes_per_plt

const uint32_t grk::available_packet_len_bytes_per_plt = USHRT_MAX - 1 - 4

◆ BAND_RES_ZERO_INDEX_LL

const uint32_t grk::BAND_RES_ZERO_INDEX_LL = 0

◆ beta

const float grk::beta = -0.052980118f
static

◆ cod_coc_len

const uint32_t grk::cod_coc_len = 5U

◆ default_header_size

const uint32_t grk::default_header_size = 4096

◆ default_number_mcc_records

const uint32_t grk::default_number_mcc_records = 10

◆ default_number_mct_records

const uint32_t grk::default_number_mct_records = 10

◆ default_numbers_segments

const uint32_t grk::default_numbers_segments = 10

◆ delta

const float grk::delta = 0.443506852f
static

◆ dwt_norms

const double grk::dwt_norms[4][10]
static
Initial value:
= {
{1.000, 1.500, 2.750, 5.375, 10.68, 21.34, 42.67, 85.33, 170.7, 341.3},
{1.038, 1.592, 2.919, 5.703, 11.33, 22.64, 45.25, 90.48, 180.9},
{1.038, 1.592, 2.919, 5.703, 11.33, 22.64, 45.25, 90.48, 180.9},
{.7186, .9218, 1.586, 3.043, 6.019, 12.01, 24.00, 47.97, 95.93}}

Referenced by grk::T1::getnorm().

◆ dwt_norms_real

const double grk::dwt_norms_real[4][10]
static
Initial value:
= {
{1.000, 1.965, 4.177, 8.403, 16.90, 33.84, 67.69, 135.3, 270.6, 540.9},
{2.022, 3.989, 8.355, 17.04, 34.27, 68.63, 137.3, 274.6, 549.0},
{2.022, 3.989, 8.355, 17.04, 34.27, 68.63, 137.3, 274.6, 549.0},
{2.080, 3.865, 8.307, 17.18, 34.71, 69.59, 139.3, 278.6, 557.2}}

Referenced by grk::T1::getnorm().

◆ gamma

const float grk::gamma = 0.882911075f
static

◆ GRK_COMP_PARAM_DEFAULT_CBLOCKH

const uint32_t grk::GRK_COMP_PARAM_DEFAULT_CBLOCKH = 64

◆ GRK_COMP_PARAM_DEFAULT_CBLOCKW

const uint32_t grk::GRK_COMP_PARAM_DEFAULT_CBLOCKW = 64

◆ GRK_COMP_PARAM_DEFAULT_NUMRESOLUTION

const uint32_t grk::GRK_COMP_PARAM_DEFAULT_NUMRESOLUTION = 6

◆ GRK_COMP_PARAM_DEFAULT_PROG_ORDER

const GRK_PROG_ORDER grk::GRK_COMP_PARAM_DEFAULT_PROG_ORDER = GRK_LRCP

◆ grk_invK

const float grk::grk_invK = (float)(1.0 / 1.230174105)
static

◆ grk_K

const float grk::grk_K = 1.230174105f
static

◆ grk_marker_length

const uint32_t grk::grk_marker_length = 4U

◆ grkBufferALignment

const size_t grk::grkBufferALignment = 64

Referenced by grkAlignedMalloc().

◆ grkWidthAlignment

const uint32_t grk::grkWidthAlignment = 32

Referenced by grkMakeAlignedWidth().

◆ invScale

const double grk::invScale = log(2) / 256

◆ IPTC_UUID

const uint8_t grk::IPTC_UUID[16]
Initial value:
= {0x33, 0xC7, 0xA4, 0xD2, 0xB8, 0x1D, 0x47, 0x23,
0xA0, 0xBA, 0xF1, 0xA3, 0xE0, 0x97, 0xAD, 0x38}

Referenced by grk::FileFormatCompress::initCompress(), and grk::FileFormatDecompress::readHeader().

◆ j2k_mct_read_functions_to_float

const j2k_mct_function grk::j2k_mct_read_functions_to_float[]
static
Initial value:
= {
static void j2k_read_int32_to_float(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: CodeStreamDecompress.cpp:30
static void j2k_read_int16_to_float(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: CodeStreamDecompress.cpp:26
static void j2k_read_float32_to_float(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: CodeStreamDecompress.cpp:34
static void j2k_read_float64_to_float(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: CodeStreamDecompress.cpp:38

Referenced by grk::CodeStreamDecompress::add_mct().

◆ j2k_mct_read_functions_to_int32

const j2k_mct_function grk::j2k_mct_read_functions_to_int32[]
static
Initial value:
= {
static void j2k_read_int16_to_int32(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: CodeStreamDecompress.cpp:42
static void j2k_read_float32_to_int32(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: CodeStreamDecompress.cpp:50
static void j2k_read_int32_to_int32(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: CodeStreamDecompress.cpp:46
static void j2k_read_float64_to_int32(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: CodeStreamDecompress.cpp:54

Referenced by grk::CodeStreamDecompress::add_mct().

◆ j2k_mct_write_functions_from_float

const j2k_mct_function grk::j2k_mct_write_functions_from_float[]
static
Initial value:
= {
static void j2k_write_float_to_int16(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: CodeStreamCompress.cpp:26
static void j2k_write_float_to_float(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: CodeStreamCompress.cpp:34
static void j2k_write_float_to_float64(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: CodeStreamCompress.cpp:38
static void j2k_write_float_to_int32(const void *p_src_data, void *p_dest_data, uint64_t nb_elem)
Definition: CodeStreamCompress.cpp:30

Referenced by grk::CodeStreamCompress::init_mct_encoding().

◆ j2k_prog_order_list

j2k_prog_order grk::j2k_prog_order_list[]
static
Initial value:
= {{GRK_CPRL, "CPRL"}, {GRK_LRCP, "LRCP"},
{GRK_PCRL, "PCRL"}, {GRK_RLCP, "RLCP"},
{GRK_RPCL, "RPCL"}, {(GRK_PROG_ORDER)-1, ""}}
enum _GRK_PROG_ORDER GRK_PROG_ORDER
Progression order.
@ GRK_RPCL
resolution-precinct-component-layer order
Definition: grok.h:311
@ GRK_CPRL
component-precinct-resolution-layer order
Definition: grok.h:313
@ GRK_RLCP
resolution-layer-component-precinct order
Definition: grok.h:310
@ GRK_LRCP
layer-resolution-component-precinct order
Definition: grok.h:309
@ GRK_PCRL
precinct-component-resolution-layer order
Definition: grok.h:312

Referenced by grk::CodeStreamCompress::convertProgressionOrder().

◆ managerInstance

minpf_plugin_manager* grk::managerInstance

◆ maxBitPlanesGRK

const uint32_t grk::maxBitPlanesGRK = 31 - T1_NMSEDEC_FRACBITS

◆ maxCompressLayersGRK

const uint16_t grk::maxCompressLayersGRK = 100

◆ maxNumComponentsJ2K

const uint32_t grk::maxNumComponentsJ2K = 16384

◆ maxNumLayersJ2K

const uint32_t grk::maxNumLayersJ2K = 65535

◆ maxNumTilesJ2K

const uint32_t grk::maxNumTilesJ2K = 65535

◆ maxPassesPerSegmentJ2K

const uint32_t grk::maxPassesPerSegmentJ2K = (maxPrecisionJ2K - 1) * 3 + 1

◆ maxPrecisionJ2K

const uint32_t grk::maxPrecisionJ2K = 38

◆ maxTilePartSizeJ2K

const uint32_t grk::maxTilePartSizeJ2K = UINT_MAX

◆ maxTilePartsPerTileJ2K

const uint32_t grk::maxTilePartsPerTileJ2K = 255

◆ maxTotalTilePartsJ2K

const uint32_t grk::maxTotalTilePartsJ2K = 65535

◆ MCT_ELEMENT_SIZE

const uint32_t grk::MCT_ELEMENT_SIZE[] = {2, 4, 4, 8}

◆ mqc_states [1/2]

const mqc_state grk::mqc_states[47 *2]
static

Referenced by mqc_resetstates().

◆ mqc_states [2/2]

const mqc_state grk::mqc_states[47 *2]
static

◆ NB_ELTS_V8

const uint32_t grk::NB_ELTS_V8 = 8

◆ plugin_debug_mqc_next_cxd_method_name

const char* grk::plugin_debug_mqc_next_cxd_method_name = "plugin_debug_mqc_next_cxd"
static

Referenced by nextCXD().

◆ plugin_debug_mqc_next_plane_method_name

const char* grk::plugin_debug_mqc_next_plane_method_name = "plugin_debug_mqc_next_plane"
static

Referenced by mqc_next_plane().

◆ scale

const double grk::scale = 256 / log(2)

◆ shift

const double grk::shift = 1 << 16

◆ slopeCutoff

const double grk::slopeCutoff = pow(2, 64)

◆ sot_marker_segment_len

const uint32_t grk::sot_marker_segment_len = 12U

◆ SPCod_SPCoc_len

const uint32_t grk::SPCod_SPCoc_len = 5U

◆ tabMaxSubLevelFromMainLevel

const uint16_t grk::tabMaxSubLevelFromMainLevel[]
static
Initial value:
= {15,
1, 1, 1, 2, 3, 4, 5, 6, 7, 8, 9}

Referenced by grk::Profile::is_imf_compliant().

◆ tlm_marker_start_bytes

const uint32_t grk::tlm_marker_start_bytes = 6

◆ tlmMarkerBytesPerTilePart

const uint32_t grk::tlmMarkerBytesPerTilePart = 6

◆ XMP_UUID

const uint8_t grk::XMP_UUID[16]
Initial value:
= {0xBE, 0x7A, 0xCF, 0xCB, 0x97, 0xA9, 0x42, 0xE8,
0x9C, 0x71, 0x99, 0x94, 0x91, 0xE3, 0xAF, 0xAC}

Referenced by grk::FileFormatCompress::initCompress(), and grk::FileFormatDecompress::readHeader().