Grok  7.6.0
Data Structures | Namespaces | Macros | Typedefs | Enumerations | Variables
CodeStream.h File Reference
#include <vector>
#include <map>
#include "CodingParams.h"

Go to the source code of this file.

Data Structures

struct  grk::grk_dec_memory_marker_handler
 
struct  grk::CodeStream
 

Namespaces

 grk
 Copyright (C) 2016-2020 Grok Image Compression Inc.
 

Macros

#define J2K_CP_CSTY_PRT   0x01
 
#define J2K_CP_CSTY_SOP   0x02
 
#define J2K_CP_CSTY_EPH   0x04
 
#define J2K_CCP_CSTY_PRT   0x01
 
#define J2K_CCP_QNTSTY_NOQNT   0
 
#define J2K_CCP_QNTSTY_SIQNT   1
 
#define J2K_CCP_QNTSTY_SEQNT   2
 
#define GRK_J2K_DEFAULT_CBLK_DATA_SIZE   8192
 
#define J2K_MS_SOC   0xff4f
 SOC marker value. More...
 
#define J2K_MS_SOT   0xff90
 SOT marker value. More...
 
#define J2K_MS_SOD   0xff93
 SOD marker value. More...
 
#define J2K_MS_EOC   0xffd9
 EOC marker value. More...
 
#define J2K_MS_CAP   0xff50
 CAP marker value. More...
 
#define J2K_MS_SIZ   0xff51
 SIZ marker value. More...
 
#define J2K_MS_COD   0xff52
 COD marker value. More...
 
#define J2K_MS_COC   0xff53
 COC marker value. More...
 
#define J2K_MS_RGN   0xff5e
 RGN marker value. More...
 
#define J2K_MS_QCD   0xff5c
 QCD marker value. More...
 
#define J2K_MS_QCC   0xff5d
 QCC marker value. More...
 
#define J2K_MS_POC   0xff5f
 POC marker value. More...
 
#define J2K_MS_TLM   0xff55
 TLM marker value. More...
 
#define J2K_MS_PLM   0xff57
 PLM marker value. More...
 
#define J2K_MS_PLT   0xff58
 PLT marker value. More...
 
#define J2K_MS_PPM   0xff60
 PPM marker value. More...
 
#define J2K_MS_PPT   0xff61
 PPT marker value. More...
 
#define J2K_MS_SOP   0xff91
 SOP marker value. More...
 
#define J2K_MS_EPH   0xff92
 EPH marker value. More...
 
#define J2K_MS_CRG   0xff63
 CRG marker value. More...
 
#define J2K_MS_COM   0xff64
 COM marker value. More...
 
#define J2K_MS_CBD   0xff78
 CBD marker value. More...
 
#define J2K_MS_MCC   0xff75
 MCC marker value. More...
 
#define J2K_MS_MCT   0xff74
 MCT marker value. More...
 
#define J2K_MS_MCO   0xff77
 MCO marker value. More...
 
#define J2K_MS_UNK   0
 UNKNOWN marker value. More...
 

Typedefs

typedef bool(* grk::j2k_procedure) (CodeStream *codeStream, TileProcessor *tileProcessor, BufferedStream *stream)
 

Enumerations

enum  grk::J2K_STATUS {
  grk::J2K_DEC_STATE_NONE = 0x0000, grk::J2K_DEC_STATE_MH_SOC = 0x0001, grk::J2K_DEC_STATE_MH_SIZ = 0x0002, grk::J2K_DEC_STATE_MH = 0x0004,
  grk::J2K_DEC_STATE_TPH_SOT = 0x0008, grk::J2K_DEC_STATE_TPH = 0x0010, grk::J2K_DEC_STATE_NO_EOC = 0x0020, grk::J2K_DEC_STATE_DATA = 0x0040,
  grk::J2K_DEC_STATE_EOC = 0x0080, grk::J2K_DEC_STATE_ERR = 0x0100
}
 Values that specify the status of the decoding process when decoding the main header. More...
 

Functions

Exported functions
void grk::j2k_init_decompressor (void *j2k, grk_dparameters *parameters)
 Setup the decoder decoding parameters using user parameters. More...
 
bool grk::j2k_init_compress (CodeStream *codeStream, grk_cparameters *parameters, grk_image *image)
 
char * grk::j2k_convert_progression_order (GRK_PROG_ORDER prg_order)
 Converts an enum type progression order to string type. More...
 
bool grk::j2k_end_decompress (CodeStream *j2k, BufferedStream *stream)
 Ends the decompression procedures and possibiliy add data to be read after the code stream. More...
 
bool grk::j2k_read_header (BufferedStream *stream, CodeStream *codeStream, grk_header_info *header_info, grk_image **image)
 Read a JPEG 2000 code stream header. More...
 
void grk::j2k_destroy (CodeStream *codeStream)
 Destroys a JPEG 2000 code stream. More...
 
bool grk::j2k_read_tile_header (CodeStream *codeStream, TileProcessor *tileProcessor, bool *can_decode_tile_data, BufferedStream *stream)
 Reads a tile header. More...
 
bool grk::j2k_set_decompress_area (CodeStream *codeStream, grk_image *image, uint32_t start_x, uint32_t start_y, uint32_t end_x, uint32_t end_y)
 Set the given area to be decoded. More...
 
bool grk::j2k_decompress (CodeStream *codeStream, grk_plugin_tile *tile, BufferedStream *stream, grk_image *image)
 Decode an image from a JPEG 2000 code stream. More...
 
bool grk::j2k_decompress_tile (CodeStream *codeStream, BufferedStream *stream, grk_image *p_image, uint16_t tile_index)
 
bool grk::j2k_compress_tile (CodeStream *codeStream, TileProcessor *tileProcessor, uint16_t tile_index, uint8_t *p_data, uint64_t uncompressed_data_size, BufferedStream *stream)
 Writes a tile. More...
 
bool grk::j2k_compress (CodeStream *codeStream, grk_plugin_tile *tile, BufferedStream *stream)
 Encodes an image into a JPEG 2000 code stream. More...
 
bool grk::j2k_start_compress (CodeStream *codeStream, BufferedStream *stream)
 Starts a compression scheme, i.e. More...
 
bool grk::j2k_end_compress (CodeStream *codeStream, BufferedStream *stream)
 Ends the compression procedures and possibility add data to be read after the code stream. More...
 
bool grk::j2k_init_mct_encoding (TileCodingParams *p_tcp, grk_image *p_image)
 

Variables

const uint32_t grk::sot_marker_segment_len = 12U
 
const uint32_t grk::SPCod_SPCoc_len = 5U
 
const uint32_t grk::cod_coc_len = 5U
 
const uint32_t grk::tlm_len_per_tile_part = 5
 
const uint32_t grk::GRK_COMP_PARAM_DEFAULT_CBLOCKW = 64
 
const uint32_t grk::GRK_COMP_PARAM_DEFAULT_CBLOCKH = 64
 
const GRK_PROG_ORDER grk::GRK_COMP_PARAM_DEFAULT_PROG_ORDER = GRK_LRCP
 
const uint32_t grk::GRK_COMP_PARAM_DEFAULT_NUMRESOLUTION = 6
 
const uint32_t grk::max_precision_jpeg_2000 = 38
 
const uint32_t grk::max_num_components = 16384
 
const uint32_t grk::max_passes_per_segment = (max_precision_jpeg_2000-1) * 3 +1
 
const uint32_t grk::max_num_tiles = 65535
 
const uint32_t grk::max_num_tile_parts_per_tile = 255
 
const uint32_t grk::max_num_tile_parts = 65535
 
const uint32_t grk::max_tile_part_size = UINT_MAX
 
const uint64_t grk::max_tile_area = 67108864000
 
const uint32_t grk::max_supported_precision = 16
 
const uint32_t grk::default_numbers_segments = 10
 
const uint32_t grk::default_header_size = 1000
 
const uint32_t grk::default_number_mcc_records = 10
 
const uint32_t grk::default_number_mct_records = 10
 

Macro Definition Documentation

◆ GRK_J2K_DEFAULT_CBLK_DATA_SIZE

#define GRK_J2K_DEFAULT_CBLK_DATA_SIZE   8192

◆ J2K_CCP_CSTY_PRT

#define J2K_CCP_CSTY_PRT   0x01

◆ J2K_CCP_QNTSTY_NOQNT

#define J2K_CCP_QNTSTY_NOQNT   0

◆ J2K_CCP_QNTSTY_SEQNT

#define J2K_CCP_QNTSTY_SEQNT   2

◆ J2K_CCP_QNTSTY_SIQNT

#define J2K_CCP_QNTSTY_SIQNT   1

◆ J2K_CP_CSTY_EPH

#define J2K_CP_CSTY_EPH   0x04

◆ J2K_CP_CSTY_PRT

#define J2K_CP_CSTY_PRT   0x01

◆ J2K_CP_CSTY_SOP

#define J2K_CP_CSTY_SOP   0x02

◆ J2K_MS_CAP

#define J2K_MS_CAP   0xff50

CAP marker value.

◆ J2K_MS_CBD

#define J2K_MS_CBD   0xff78

CBD marker value.

◆ J2K_MS_COC

#define J2K_MS_COC   0xff53

COC marker value.

◆ J2K_MS_COD

#define J2K_MS_COD   0xff52

COD marker value.

◆ J2K_MS_COM

#define J2K_MS_COM   0xff64

COM marker value.

◆ J2K_MS_CRG

#define J2K_MS_CRG   0xff63

CRG marker value.

◆ J2K_MS_EOC

#define J2K_MS_EOC   0xffd9

EOC marker value.

◆ J2K_MS_EPH

#define J2K_MS_EPH   0xff92

EPH marker value.

◆ J2K_MS_MCC

#define J2K_MS_MCC   0xff75

MCC marker value.

◆ J2K_MS_MCO

#define J2K_MS_MCO   0xff77

MCO marker value.

◆ J2K_MS_MCT

#define J2K_MS_MCT   0xff74

MCT marker value.

◆ J2K_MS_PLM

#define J2K_MS_PLM   0xff57

PLM marker value.

◆ J2K_MS_PLT

#define J2K_MS_PLT   0xff58

PLT marker value.

◆ J2K_MS_POC

#define J2K_MS_POC   0xff5f

POC marker value.

◆ J2K_MS_PPM

#define J2K_MS_PPM   0xff60

PPM marker value.

◆ J2K_MS_PPT

#define J2K_MS_PPT   0xff61

PPT marker value.

◆ J2K_MS_QCC

#define J2K_MS_QCC   0xff5d

QCC marker value.

◆ J2K_MS_QCD

#define J2K_MS_QCD   0xff5c

QCD marker value.

◆ J2K_MS_RGN

#define J2K_MS_RGN   0xff5e

RGN marker value.

◆ J2K_MS_SIZ

#define J2K_MS_SIZ   0xff51

SIZ marker value.

◆ J2K_MS_SOC

#define J2K_MS_SOC   0xff4f

SOC marker value.

◆ J2K_MS_SOD

#define J2K_MS_SOD   0xff93

SOD marker value.

◆ J2K_MS_SOP

#define J2K_MS_SOP   0xff91

SOP marker value.

◆ J2K_MS_SOT

#define J2K_MS_SOT   0xff90

SOT marker value.

◆ J2K_MS_TLM

#define J2K_MS_TLM   0xff55

TLM marker value.

◆ J2K_MS_UNK

#define J2K_MS_UNK   0

UNKNOWN marker value.