feat/api #46
16 changed files with 359 additions and 775 deletions
|
@ -118,7 +118,7 @@
|
||||||
uchar get_bit (bitstream *const stream);
|
uchar get_bit (bitstream *const stream);
|
||||||
//==========|==========================|======================|======|======|=====================
|
//==========|==========================|======================|======|======|=====================
|
||||||
uchar terminate_stream (bitstream *stream,
|
uchar terminate_stream (bitstream *stream,
|
||||||
bwc_stream *const packed_stream);
|
bwc_span *const packed_stream);
|
||||||
//==========|==========================|======================|======|======|=====================
|
//==========|==========================|======================|======|======|=====================
|
||||||
void release_packed_stream (bwc_stream *const stream);
|
void release_packed_stream (bwc_span *const stream);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -89,16 +89,17 @@
|
||||||
|| | |__| |__] |___ | |___ | |__| | \| |___ | | |__| | \| ___] ||
|
|| | |__| |__] |___ | |___ | |__| | \| |___ | | |__| | \| ___] ||
|
||||||
|| ||
|
|| ||
|
||||||
\************************************************************************************************/
|
\************************************************************************************************/
|
||||||
uchar assemble_main_header (bwc_field *const field);
|
uchar assemble_main_header (bwc_codec *const field);
|
||||||
//==========|==========================|======================|======|======|=====================
|
//==========|==========================|======================|======|======|=====================
|
||||||
uchar codestream_write_aux (bwc_stream *const header,
|
uchar codestream_write_aux (bwc_span *const header,
|
||||||
bwc_stream *const aux);
|
bwc_span *const aux);
|
||||||
//==========|==========================|======================|======|======|=====================
|
//==========|==========================|======================|======|======|=====================
|
||||||
uchar codestream_write_com (bwc_stream *const header,
|
uchar codestream_write_com (bwc_span *const header,
|
||||||
bwc_stream *const com);
|
bwc_span *const com);
|
||||||
//==========|==========================|======================|======|======|=====================
|
//==========|==========================|======================|======|======|=====================
|
||||||
bwc_stream* assemble_codestream (bwc_field *const field);
|
bwc_span* assemble_codestream (bwc_codec *const field,
|
||||||
|
bwc_stream *const data);
|
||||||
//==========|==========================|======================|======|======|=====================
|
//==========|==========================|======================|======|======|=====================
|
||||||
bwc_field* parse_codestream (bwc_data *const data,
|
bwc_codec* parse_codestream (bwc_stream *const data,
|
||||||
uint8 const layer);
|
uint8 const layer);
|
||||||
#endif
|
#endif
|
|
@ -114,8 +114,8 @@
|
||||||
\*----------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------*/
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
bwc_type_half,
|
bwc_precision_half = 2,
|
||||||
bwc_type_single,
|
bwc_precision_single = 4,
|
||||||
bwc_type_double,
|
bwc_precision_double = 8,
|
||||||
} bwc_type;
|
} bwc_precision;
|
||||||
#endif
|
#endif
|
|
@ -157,13 +157,13 @@
|
||||||
\************************************************************************************************/
|
\************************************************************************************************/
|
||||||
uchar initialize_gain_lut ();
|
uchar initialize_gain_lut ();
|
||||||
//==========|==========================|======================|======|=======|====================
|
//==========|==========================|======================|======|=======|====================
|
||||||
bwc_float get_dwt_energy_gain (bwc_field *const field,
|
bwc_float get_dwt_energy_gain (bwc_codec *const field,
|
||||||
uchar const highband_flag,
|
uchar const highband_flag,
|
||||||
uint16 const level);
|
uint16 const level);
|
||||||
//==========|==========================|======================|======|=======|====================
|
//==========|==========================|======================|======|=======|====================
|
||||||
uchar forward_wavelet_transform (bwc_field *const field,
|
uchar forward_wavelet_transform (bwc_codec *const field,
|
||||||
bwc_parameter *const parameter);
|
bwc_parameter *const parameter);
|
||||||
//==========|==========================|======================|======|=======|====================
|
//==========|==========================|======================|======|=======|====================
|
||||||
uchar inverse_wavelet_transform (bwc_field *const field,
|
uchar inverse_wavelet_transform (bwc_codec *const field,
|
||||||
bwc_parameter *const parameter);
|
bwc_parameter *const parameter);
|
||||||
#endif
|
#endif
|
|
@ -64,92 +64,85 @@
|
||||||
|| ||
|
|| ||
|
||||||
\************************************************************************************************/
|
\************************************************************************************************/
|
||||||
//==========|==========================|======================|======|=======|====================
|
//==========|==========================|======================|======|=======|====================
|
||||||
bwc_data* bwc_initialize_data (double *const field,
|
bwc_stream* bwc_initialize_data (void *const data,
|
||||||
|
bwc_precision const prec);
|
||||||
|
//==========|==========================|======================|======|=======|====================
|
||||||
|
uchar bwc_set_com (bwc_stream *const data,
|
||||||
|
char const *const com,
|
||||||
|
uint16 const size);
|
||||||
|
//==========|==========================|======================|======|=======|====================
|
||||||
|
uchar bwc_set_aux (bwc_stream *const data,
|
||||||
|
char const *const aux,
|
||||||
|
uint32 const size);
|
||||||
|
//==========|==========================|======================|======|=======|====================
|
||||||
|
void bwc_free_data (bwc_stream *const data);
|
||||||
|
//==========|==========================|======================|======|=======|====================
|
||||||
|
uchar create_field (bwc_codec *const field);
|
||||||
|
//==========|==========================|======================|======|=======|====================
|
||||||
|
void bwc_kill_compression (bwc_codec *const field);
|
||||||
|
//==========|==========================|======================|======|=======|====================
|
||||||
|
bwc_codec* bwc_initialize_field (bwc_precision const prec,
|
||||||
uint64 const nX,
|
uint64 const nX,
|
||||||
uint64 const nY,
|
uint64 const nY,
|
||||||
uint64 const nZ,
|
uint64 const nZ,
|
||||||
uint16 const nTS,
|
uint16 const nTS,
|
||||||
uint8 const nPar,
|
uint8 const nPar);
|
||||||
char *const file_extension);
|
|
||||||
//==========|==========================|======================|======|=======|====================
|
//==========|==========================|======================|======|=======|====================
|
||||||
uchar bwc_set_com (bwc_data *const data,
|
void bwc_set_error_resilience (bwc_codec *const field);
|
||||||
char const *const com,
|
|
||||||
uint16 const size);
|
|
||||||
//==========|==========================|======================|======|=======|====================
|
//==========|==========================|======================|======|=======|====================
|
||||||
uchar bwc_set_aux (bwc_data *const data,
|
void set_quant_style (bwc_codec *const field,
|
||||||
char const *const aux,
|
|
||||||
uint32 const size);
|
|
||||||
//==========|==========================|======================|======|=======|====================
|
|
||||||
void bwc_add_param (bwc_data *const data,
|
|
||||||
char *const name,
|
|
||||||
uint8 const precision);
|
|
||||||
//==========|==========================|======================|======|=======|====================
|
|
||||||
void bwc_get_data (bwc_data *const data,
|
|
||||||
uchar *const buffer,
|
|
||||||
uint64 const size);
|
|
||||||
//==========|==========================|======================|======|=======|====================
|
|
||||||
void bwc_free_data (bwc_data *const data);
|
|
||||||
//==========|==========================|======================|======|=======|====================
|
|
||||||
uchar create_field (bwc_field *const field);
|
|
||||||
//==========|==========================|======================|======|=======|====================
|
|
||||||
void bwc_kill_compression (bwc_field *const field);
|
|
||||||
//==========|==========================|======================|======|=======|====================
|
|
||||||
bwc_field* bwc_initialize_field (bwc_data *const data);
|
|
||||||
//==========|==========================|======================|======|=======|====================
|
|
||||||
void bwc_set_error_resilience (bwc_field *const field);
|
|
||||||
//==========|==========================|======================|======|=======|====================
|
|
||||||
void set_quant_style (bwc_field *const field,
|
|
||||||
bwc_quant_st const quantization_style);
|
bwc_quant_st const quantization_style);
|
||||||
//==========|==========================|======================|======|=======|====================
|
//==========|==========================|======================|======|=======|====================
|
||||||
void set_quant_step_size (bwc_field *const field,
|
void set_quant_step_size (bwc_codec *const field,
|
||||||
double const delta);
|
double const delta);
|
||||||
//==========|==========================|======================|======|=======|====================
|
//==========|==========================|======================|======|=======|====================
|
||||||
void set_progression (bwc_field *const field,
|
void set_progression (bwc_codec *const field,
|
||||||
bwc_prog_ord const progression);
|
bwc_prog_ord const progression);
|
||||||
//==========|==========================|======================|======|=======|====================
|
//==========|==========================|======================|======|=======|====================
|
||||||
void set_kernels (bwc_field *const field,
|
void set_kernels (bwc_codec *const field,
|
||||||
bwc_dwt_filter const KernelX,
|
bwc_dwt_filter const KernelX,
|
||||||
bwc_dwt_filter const KernelY,
|
bwc_dwt_filter const KernelY,
|
||||||
bwc_dwt_filter const KernelZ,
|
bwc_dwt_filter const KernelZ,
|
||||||
bwc_dwt_filter const KernelTS);
|
bwc_dwt_filter const KernelTS);
|
||||||
//==========|==========================|======================|======|=======|====================
|
//==========|==========================|======================|======|=======|====================
|
||||||
void bwc_set_decomp (bwc_field *const field,
|
void bwc_set_decomp (bwc_codec *const field,
|
||||||
uint8 const decompX,
|
uint8 const decompX,
|
||||||
uint8 const decompY,
|
uint8 const decompY,
|
||||||
uint8 const decompZ,
|
uint8 const decompZ,
|
||||||
uint8 const decompTS);
|
uint8 const decompTS);
|
||||||
//==========|==========================|======================|======|=======|====================
|
//==========|==========================|======================|======|=======|====================
|
||||||
void bwc_set_precincts (bwc_field *const field,
|
void bwc_set_precincts (bwc_codec *const field,
|
||||||
uint8 const pX,
|
uint8 const pX,
|
||||||
uint8 const pY,
|
uint8 const pY,
|
||||||
uint8 const pZ,
|
uint8 const pZ,
|
||||||
uint8 const pTS);
|
uint8 const pTS);
|
||||||
//==========|==========================|======================|======|=======|====================
|
//==========|==========================|======================|======|=======|====================
|
||||||
void bwc_set_codeblocks (bwc_field *const field,
|
void bwc_set_codeblocks (bwc_codec *const field,
|
||||||
uint8 const cbX,
|
uint8 const cbX,
|
||||||
uint8 const cbY,
|
uint8 const cbY,
|
||||||
uint8 const cbZ,
|
uint8 const cbZ,
|
||||||
uint8 const cbTS);
|
uint8 const cbTS);
|
||||||
//==========|==========================|======================|======|=======|====================
|
//==========|==========================|======================|======|=======|====================
|
||||||
void bwc_set_qm (bwc_field *const field,
|
void bwc_set_qm (bwc_codec *const field,
|
||||||
uint8 const Qm);
|
uint8 const Qm);
|
||||||
//==========|==========================|======================|======|=======|====================
|
//==========|==========================|======================|======|=======|====================
|
||||||
void bwc_set_tiles (bwc_field *const field,
|
void bwc_set_tiles (bwc_codec *const field,
|
||||||
uint64 const tilesX,
|
uint64 const tilesX,
|
||||||
uint64 const tilesY,
|
uint64 const tilesY,
|
||||||
uint64 const tilesZ,
|
uint64 const tilesZ,
|
||||||
uint64 const tilesTS,
|
uint64 const tilesTS,
|
||||||
bwc_tile_instr const instr);
|
bwc_tile_instr const instr);
|
||||||
//==========|==========================|======================|======|=======|====================
|
//==========|==========================|======================|======|=======|====================
|
||||||
uchar bwc_create_compression (bwc_field *const field,
|
uchar bwc_create_compression (bwc_codec *const codec,
|
||||||
|
bwc_stream *const data,
|
||||||
char *const rate_control);
|
char *const rate_control);
|
||||||
//==========|==========================|======================|======|=======|====================
|
//==========|==========================|======================|======|=======|====================
|
||||||
uchar bwc_compress (bwc_field *const field,
|
uchar bwc_compress (bwc_codec *const field,
|
||||||
bwc_data *const data);
|
bwc_stream *const data);
|
||||||
//==========|==========================|======================|======|=======|====================
|
//==========|==========================|======================|======|=======|====================
|
||||||
bwc_field* bwc_create_decompression (bwc_data *const data,
|
bwc_codec* bwc_create_decompression (bwc_stream *const data,
|
||||||
uint8 const layer);
|
uint8 const layer);
|
||||||
//==========|==========================|======================|======|=======|====================
|
//==========|==========================|======================|======|=======|====================
|
||||||
uchar bwc_decompress (bwc_field *const field,
|
uchar bwc_decompress (bwc_codec *const field,
|
||||||
bwc_data *const data);
|
bwc_stream *const data);
|
||||||
#endif
|
#endif
|
|
@ -16,7 +16,7 @@
|
||||||
|| ------------ ||
|
|| ------------ ||
|
||||||
|| ||
|
|| ||
|
||||||
|| This file describes a set of functions that can be used to de-/encode bwc ||
|
|| This file describes a set of functions that can be used to de-/encode bwc ||
|
||||||
|| codeblocks described by the bwc_field structure according to the embedded block ||
|
|| codeblocks described by the bwc_codec structure according to the embedded block ||
|
||||||
|| coding paradigm described by the JPEG 2000 standard. For more information please ||
|
|| coding paradigm described by the JPEG 2000 standard. For more information please ||
|
||||||
|| refere to JPEG2000 by D. S. Taubman and M. W. Marcellin. ||
|
|| refere to JPEG2000 by D. S. Taubman and M. W. Marcellin. ||
|
||||||
|| ||
|
|| ||
|
||||||
|
@ -156,11 +156,11 @@
|
||||||
|| | |__| |__] |___ | |___ | |__| | \| |___ | | |__| | \| ___] ||
|
|| | |__| |__] |___ | |___ | |__| | \| |___ | | |__| | \| ___] ||
|
||||||
|| ||
|
|| ||
|
||||||
\************************************************************************************************/
|
\************************************************************************************************/
|
||||||
uchar t1_encode (bwc_field *const field,
|
uchar t1_encode (bwc_codec *const field,
|
||||||
bwc_tile *const tile,
|
bwc_tile *const tile,
|
||||||
bwc_parameter *const parameter);
|
bwc_parameter *const parameter);
|
||||||
//==========|==========================|======================|======|=======|====================
|
//==========|==========================|======================|======|=======|====================
|
||||||
uchar t1_decode (bwc_field *const field,
|
uchar t1_decode (bwc_codec *const field,
|
||||||
bwc_tile *const tile,
|
bwc_tile *const tile,
|
||||||
bwc_parameter *const parameter);
|
bwc_parameter *const parameter);
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|| ------------ ||
|
|| ------------ ||
|
||||||
|| ||
|
|| ||
|
||||||
|| This file describes a set of functions that can be used to de-/encode bwc ||
|
|| This file describes a set of functions that can be used to de-/encode bwc ||
|
||||||
|| codeblocks described by the bwc_field structure according to the embedded block ||
|
|| codeblocks described by the bwc_codec structure according to the embedded block ||
|
||||||
|| coding paradigm described by the JPEG 2000 standard. For more information please ||
|
|| coding paradigm described by the JPEG 2000 standard. For more information please ||
|
||||||
|| refere to JPEG2000 by D. S. Taubman and M. W. Marcellin. ||
|
|| refere to JPEG2000 by D. S. Taubman and M. W. Marcellin. ||
|
||||||
|| ||
|
|| ||
|
||||||
|
@ -76,10 +76,10 @@
|
||||||
|| | |__| |__] |___ | |___ | |__| | \| |___ | | |__| | \| ___] ||
|
|| | |__| |__] |___ | |___ | |__| | \| |___ | | |__| | \| ___] ||
|
||||||
|| ||
|
|| ||
|
||||||
\************************************************************************************************/
|
\************************************************************************************************/
|
||||||
uchar t2_encode (bwc_field *const field,
|
uchar t2_encode (bwc_codec *const field,
|
||||||
bwc_tile *const tile);
|
bwc_tile *const tile);
|
||||||
//==========|==========================|======================|======|=======|====================
|
//==========|==========================|======================|======|=======|====================
|
||||||
uchar parse_packet (bwc_field *const field,
|
uchar parse_packet (bwc_codec *const field,
|
||||||
bwc_tile *const tile,
|
bwc_tile *const tile,
|
||||||
bwc_packet *const packet,
|
bwc_packet *const packet,
|
||||||
uint64 const body_size);
|
uint64 const body_size);
|
||||||
|
|
|
@ -99,7 +99,7 @@
|
||||||
|
|
||||||
uchar *access; // Pointer used to parse packed stream.
|
uchar *access; // Pointer used to parse packed stream.
|
||||||
uchar *memory; // Memory handle for the packed stream.
|
uchar *memory; // Memory handle for the packed stream.
|
||||||
} bwc_stream;
|
} bwc_span;
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------------------------*\
|
/*----------------------------------------------------------------------------------------------*\
|
||||||
! !
|
! !
|
||||||
|
@ -138,29 +138,6 @@
|
||||||
bwc_tagtree_node *nodes; // Pointer to the tagtree nodes.
|
bwc_tagtree_node *nodes; // Pointer to the tagtree nodes.
|
||||||
} bwc_tagtree;
|
} bwc_tagtree;
|
||||||
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------------------------*\
|
|
||||||
! !
|
|
||||||
! DESCRIPTION: !
|
|
||||||
! ------------ !
|
|
||||||
! !
|
|
||||||
! This structure defines a linked list which stores the size, index, and bit pre- !
|
|
||||||
! cision The string name is used to store the parameter name supplied by the !
|
|
||||||
! function caller. !
|
|
||||||
! !
|
|
||||||
\*----------------------------------------------------------------------------------------------*/
|
|
||||||
typedef struct opt
|
|
||||||
{
|
|
||||||
char name[24]; // Parameter name.
|
|
||||||
uint8 id; // Parameter index.
|
|
||||||
|
|
||||||
uint64 size; // Parameter size after sub-sampling.
|
|
||||||
uint8 precision; // Parameter precision.
|
|
||||||
|
|
||||||
struct opt *next; // Next element in linked-list.
|
|
||||||
struct opt *root; // Linked-list root.
|
|
||||||
} bwc_cmd_opts_ll;
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------------------------*\
|
/*----------------------------------------------------------------------------------------------*\
|
||||||
! !
|
! !
|
||||||
! DESCRIPTION: !
|
! DESCRIPTION: !
|
||||||
|
@ -178,12 +155,8 @@
|
||||||
|
|
||||||
uint8 nPar; // Number of parameters.
|
uint8 nPar; // Number of parameters.
|
||||||
|
|
||||||
uint8 precision; // Flag defining codec precision.
|
bwc_precision data_prec; // Data type of uncompressed field data.
|
||||||
|
bwc_precision codec_prec; // Encoder/decoder bit precision.
|
||||||
uint8 codec_prec; // Encoder/decoder bit precision.
|
|
||||||
char f_ext[20]; // Uncompressed data set file extension.
|
|
||||||
|
|
||||||
bwc_cmd_opts_ll *parameter; // Command options linked-list.
|
|
||||||
} bwc_gl_inf;
|
} bwc_gl_inf;
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------------------------*\
|
/*----------------------------------------------------------------------------------------------*\
|
||||||
|
@ -197,14 +170,11 @@
|
||||||
\*----------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------*/
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
bwc_gl_inf info; // Gloabal info structure.
|
|
||||||
FILE *fp; // File point to (un)compr. data-set.
|
|
||||||
|
|
||||||
struct codestream
|
struct codestream
|
||||||
{
|
{
|
||||||
bwc_stream *data; // Data codestream block.
|
bwc_span *data; // Data codestream block.
|
||||||
bwc_stream *aux; // Auxiliary info. codestream block.
|
bwc_span *aux; // Auxiliary info. codestream block.
|
||||||
bwc_stream *com; // Comment codestream block.
|
bwc_span *com; // Comment codestream block.
|
||||||
}codestream;
|
}codestream;
|
||||||
|
|
||||||
struct field
|
struct field
|
||||||
|
@ -212,7 +182,7 @@
|
||||||
double *d; // Double precision numerical data-set.
|
double *d; // Double precision numerical data-set.
|
||||||
float *f; // Single precision numerical data-set.
|
float *f; // Single precision numerical data-set.
|
||||||
}field;
|
}field;
|
||||||
} bwc_data;
|
} bwc_stream;
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------------------------*\
|
/*----------------------------------------------------------------------------------------------*\
|
||||||
! !
|
! !
|
||||||
|
@ -420,8 +390,8 @@
|
||||||
\*----------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------*/
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
bwc_stream header; // Packed stream header.
|
bwc_span header; // Packed stream header.
|
||||||
bwc_stream body; // Packed stream body.
|
bwc_span body; // Packed stream body.
|
||||||
uint8 e; // Indicator for packet cb. contributions.
|
uint8 e; // Indicator for packet cb. contributions.
|
||||||
|
|
||||||
uint32 size; // Codestream packet size.
|
uint32 size; // Codestream packet size.
|
||||||
|
@ -528,14 +498,9 @@
|
||||||
\*----------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------*/
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
uint64 size; // Parameter size.
|
|
||||||
char *name; // Parameter name.
|
|
||||||
|
|
||||||
uint64 X0, Y0, Z0, TS0; // Tile parameter starting point.
|
uint64 X0, Y0, Z0, TS0; // Tile parameter starting point.
|
||||||
uint64 X1, Y1, Z1, TS1; // Tile parameter end point.
|
uint64 X1, Y1, Z1, TS1; // Tile parameter end point.
|
||||||
|
|
||||||
uint8 precision; // Tile parameter precision.
|
|
||||||
|
|
||||||
bwc_float parameter_min; // Min. value of tile parameter.
|
bwc_float parameter_min; // Min. value of tile parameter.
|
||||||
bwc_float parameter_max; // Max. value of tile parameter.
|
bwc_float parameter_max; // Max. value of tile parameter.
|
||||||
} bwc_param_inf;
|
} bwc_param_inf;
|
||||||
|
@ -710,12 +675,9 @@
|
||||||
\*----------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------*/
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
bwc_gl_inf *info; // Gloabal info structure
|
bwc_gl_inf info; // Global info structure
|
||||||
bwc_gl_ctrl control; // Global control structure
|
bwc_gl_ctrl control; // Global control structure
|
||||||
|
|
||||||
bwc_tile *tile; // Structure defining bwc tile.
|
bwc_tile *tile; // Structure defining bwc tile.
|
||||||
|
} bwc_codec;
|
||||||
bwc_stream *aux; // Auxiliary info. codestream block.
|
|
||||||
bwc_stream *com; // Comment codestream block.
|
|
||||||
} bwc_field;
|
|
||||||
#endif
|
#endif
|
|
@ -107,42 +107,6 @@ module bwc
|
||||||
CHARACTER(KIND=C_CHAR) :: file_extension(*)
|
CHARACTER(KIND=C_CHAR) :: file_extension(*)
|
||||||
end function initialize_data_f
|
end function initialize_data_f
|
||||||
!*============================================================================================*!
|
!*============================================================================================*!
|
||||||
subroutine add_param_f(data, name, sample, dim, precision) &
|
|
||||||
BIND(C, NAME="bwc_add_param")
|
|
||||||
IMPORT
|
|
||||||
!*-----------------------*!
|
|
||||||
! DEFINE POINTERS: !
|
|
||||||
!*-----------------------*!
|
|
||||||
TYPE(C_PTR), VALUE :: data
|
|
||||||
|
|
||||||
!*-----------------------*!
|
|
||||||
! DEFINE INT VARIABLES: !
|
|
||||||
!*-----------------------*!
|
|
||||||
INTEGER(KIND=C_INT16_T), VALUE :: sample
|
|
||||||
INTEGER(KIND=C_INT8_T), VALUE :: precision
|
|
||||||
INTEGER(KIND=C_SIGNED_CHAR), VALUE :: dim
|
|
||||||
|
|
||||||
!*-----------------------*!
|
|
||||||
! DEFINE CHAR VARIABLES: !
|
|
||||||
!*-----------------------*!
|
|
||||||
CHARACTER(KIND=C_CHAR) :: name(*)
|
|
||||||
end subroutine add_param_f
|
|
||||||
!*============================================================================================*!
|
|
||||||
subroutine get_data_f(data, buffer, size) &
|
|
||||||
BIND(C, NAME="bwc_get_data")
|
|
||||||
IMPORT
|
|
||||||
!*-----------------------*!
|
|
||||||
! DEFINE POINTERS: !
|
|
||||||
!*-----------------------*!
|
|
||||||
TYPE(C_PTR), VALUE :: data
|
|
||||||
TYPE(C_PTR), VALUE :: buffer
|
|
||||||
|
|
||||||
!*-----------------------*!
|
|
||||||
! DEFINE INT VARIABLES: !
|
|
||||||
!*-----------------------*!
|
|
||||||
INTEGER(KIND=C_INT64_T), Value :: size
|
|
||||||
end subroutine get_data_f
|
|
||||||
!*============================================================================================*!
|
|
||||||
subroutine free_data_f(data) &
|
subroutine free_data_f(data) &
|
||||||
BIND(C, NAME="bwc_free_data")
|
BIND(C, NAME="bwc_free_data")
|
||||||
IMPORT
|
IMPORT
|
||||||
|
@ -396,11 +360,9 @@ module bwc
|
||||||
bwc_tile_numbof
|
bwc_tile_numbof
|
||||||
|
|
||||||
public :: bwc_initialize_data, &
|
public :: bwc_initialize_data, &
|
||||||
bwc_get_data, &
|
|
||||||
bwc_free_data
|
bwc_free_data
|
||||||
|
|
||||||
public :: bwc_initialize_field, &
|
public :: bwc_initialize_field, &
|
||||||
bwc_add_param, &
|
|
||||||
bwc_kill_compression
|
bwc_kill_compression
|
||||||
|
|
||||||
public :: bwc_set_error_resilience, &
|
public :: bwc_set_error_resilience, &
|
||||||
|
|
|
@ -102,24 +102,6 @@ def initialize_data(data, nX, nY, nZ, nTS, nPar, file_extension):
|
||||||
ctypes.c_char_p]
|
ctypes.c_char_p]
|
||||||
return ctypes.c_void_p(fun(data, nX, nY, nZ, nTS, nPar, file_extension.encode('utf-8')))
|
return ctypes.c_void_p(fun(data, nX, nY, nZ, nTS, nPar, file_extension.encode('utf-8')))
|
||||||
#==================================================================================================#
|
#==================================================================================================#
|
||||||
def get_data(data, buffer, size):
|
|
||||||
fun = libbwc.bwc_get_data
|
|
||||||
fun.restype = None
|
|
||||||
fun.argtypes = [ctypes.c_void_p,
|
|
||||||
ndpointer(ctypes.c_double, flags="C_CONTIGUOUS"),
|
|
||||||
ctypes.c_uint64]
|
|
||||||
fun(data, buffer, size)
|
|
||||||
#==================================================================================================#
|
|
||||||
def add_param(data, name, sample, dim, precision):
|
|
||||||
fun = libbwc.bwc_add_param
|
|
||||||
fun.restype = None
|
|
||||||
fun.argtypes = [ctypes.c_void_p,
|
|
||||||
ctypes.c_char_p,
|
|
||||||
ctypes.c_uint16,
|
|
||||||
ctypes.c_uint8,
|
|
||||||
ctypes.c_uint8]
|
|
||||||
fun(data, name.encode('utf-8'), sample, dim, precision)
|
|
||||||
#==================================================================================================#
|
|
||||||
def kill_compression(field):
|
def kill_compression(field):
|
||||||
fun = libbwc.bwc_kill_compression
|
fun = libbwc.bwc_kill_compression
|
||||||
fun.restype = None
|
fun.restype = None
|
||||||
|
|
|
@ -896,7 +896,7 @@ flush_stream(bitstream *const stream)
|
||||||
! !
|
! !
|
||||||
\*----------------------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------------------*/
|
||||||
uchar
|
uchar
|
||||||
terminate_stream(bitstream *stream, bwc_stream *const packed_stream)
|
terminate_stream(bitstream *stream, bwc_span *const packed_stream)
|
||||||
{
|
{
|
||||||
/*-----------------------*\
|
/*-----------------------*\
|
||||||
! DEFINE ASSERTIONS: !
|
! DEFINE ASSERTIONS: !
|
||||||
|
@ -937,7 +937,7 @@ terminate_stream(bitstream *stream, bwc_stream *const packed_stream)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------------------------------------*\
|
/*----------------------------------------------------------------------------------------------------------*\
|
||||||
! FUNCTION NAME: void release_packed_stream(bwc_stream *stream) !
|
! FUNCTION NAME: void release_packed_stream(bwc_span *stream) !
|
||||||
! -------------- !
|
! -------------- !
|
||||||
! !
|
! !
|
||||||
! DESCRIPTION: !
|
! DESCRIPTION: !
|
||||||
|
@ -949,7 +949,7 @@ terminate_stream(bitstream *stream, bwc_stream *const packed_stream)
|
||||||
! ----------- !
|
! ----------- !
|
||||||
! Variable Type Description !
|
! Variable Type Description !
|
||||||
! -------- ---- ----------- !
|
! -------- ---- ----------- !
|
||||||
! stream bwc_stream - Packed bitstream used to store parts of !
|
! stream bwc_span - Packed bitstream used to store parts of !
|
||||||
! the bwc codestream. !
|
! the bwc codestream. !
|
||||||
! !
|
! !
|
||||||
! RETURN VALUE: !
|
! RETURN VALUE: !
|
||||||
|
@ -967,7 +967,7 @@ terminate_stream(bitstream *stream, bwc_stream *const packed_stream)
|
||||||
! !
|
! !
|
||||||
\*----------------------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------------------*/
|
||||||
void
|
void
|
||||||
release_packed_stream(bwc_stream *stream)
|
release_packed_stream(bwc_span *stream)
|
||||||
{
|
{
|
||||||
/*-----------------------*\
|
/*-----------------------*\
|
||||||
! DEFINE ASSERTIONS: !
|
! DEFINE ASSERTIONS: !
|
||||||
|
|
|
@ -104,7 +104,7 @@ can_read(bitstream *const stream, const uint64 length)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------------------------------------*\
|
/*----------------------------------------------------------------------------------------------------------*\
|
||||||
! FUNCTION NAME: void codestream_write_header(bitstream *const stream, bwc_field *const field) !
|
! FUNCTION NAME: void codestream_write_header(bitstream *const stream, bwc_codec *const field) !
|
||||||
! -------------- !
|
! -------------- !
|
||||||
! !
|
! !
|
||||||
! DESCRIPTION: !
|
! DESCRIPTION: !
|
||||||
|
@ -116,7 +116,7 @@ can_read(bitstream *const stream, const uint64 length)
|
||||||
! ----------- !
|
! ----------- !
|
||||||
! Variable Type Description !
|
! Variable Type Description !
|
||||||
! -------- ---- ----------- !
|
! -------- ---- ----------- !
|
||||||
! field bwc_field* - Structure defining the compression/ !
|
! field bwc_codec* - Structure defining the compression/ !
|
||||||
! decompression stage. !
|
! decompression stage. !
|
||||||
! !
|
! !
|
||||||
! stream bitstream* - Structure used to assemble a bwc bit- !
|
! stream bitstream* - Structure used to assemble a bwc bit- !
|
||||||
|
@ -138,7 +138,8 @@ can_read(bitstream *const stream, const uint64 length)
|
||||||
\*----------------------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------------------*/
|
||||||
static void
|
static void
|
||||||
codestream_write_header(bitstream *const stream,
|
codestream_write_header(bitstream *const stream,
|
||||||
bwc_field *const field)
|
bwc_codec *const field,
|
||||||
|
bwc_stream *const data)
|
||||||
{
|
{
|
||||||
/*-----------------------*\
|
/*-----------------------*\
|
||||||
! DEFINE INT VARIABLES: !
|
! DEFINE INT VARIABLES: !
|
||||||
|
@ -155,10 +156,8 @@ codestream_write_header(bitstream *const stream,
|
||||||
\*-----------------------*/
|
\*-----------------------*/
|
||||||
bwc_gl_ctrl *control;
|
bwc_gl_ctrl *control;
|
||||||
bwc_gl_inf *info;
|
bwc_gl_inf *info;
|
||||||
bwc_tile *tile;
|
bwc_span *aux;
|
||||||
bwc_parameter *parameter;
|
bwc_span *com;
|
||||||
bwc_stream *aux;
|
|
||||||
bwc_stream *com;
|
|
||||||
|
|
||||||
/*-----------------------*\
|
/*-----------------------*\
|
||||||
! DEFINE ASSERTIONS: !
|
! DEFINE ASSERTIONS: !
|
||||||
|
@ -171,17 +170,13 @@ codestream_write_header(bitstream *const stream,
|
||||||
! structure to temporary variables to make the code more !
|
! structure to temporary variables to make the code more !
|
||||||
! readable. !
|
! readable. !
|
||||||
\*--------------------------------------------------------*/
|
\*--------------------------------------------------------*/
|
||||||
info = field->info;
|
info = &field->info;
|
||||||
control = &field->control;
|
control = &field->control;
|
||||||
|
|
||||||
tile = &field->tile[0];
|
aux = data->codestream.aux;
|
||||||
|
com = data->codestream.com;
|
||||||
parameter = &tile->parameter[0];
|
|
||||||
|
|
||||||
aux = field->aux;
|
|
||||||
com = field->com;
|
|
||||||
|
|
||||||
Linf = 40 + info->nPar * 25;
|
Linf = 31;
|
||||||
Lctr = 50 + control->nLayers * 4;
|
Lctr = 50 + control->nLayers * 4;
|
||||||
Leoh = info->nPar * control->nTiles * 2 * PREC_BYTE;
|
Leoh = info->nPar * control->nTiles * 2 * PREC_BYTE;
|
||||||
Lcss = control->codestreamSize;
|
Lcss = control->codestreamSize;
|
||||||
|
@ -195,14 +190,8 @@ codestream_write_header(bitstream *const stream,
|
||||||
emit_symbol(stream, info->nZ, 8);
|
emit_symbol(stream, info->nZ, 8);
|
||||||
emit_symbol(stream, info->nTS, 2);
|
emit_symbol(stream, info->nTS, 2);
|
||||||
emit_symbol(stream, info->nPar, 1);
|
emit_symbol(stream, info->nPar, 1);
|
||||||
emit_symbol(stream, info->precision, 1);
|
emit_symbol(stream, (uint8)info->data_prec, 1);
|
||||||
emit_chunck(stream, (uchar*)info->f_ext, 10);
|
emit_symbol(stream, (uint8)info->codec_prec, 1);
|
||||||
|
|
||||||
for(p = 0; p < info->nPar; ++p)
|
|
||||||
{
|
|
||||||
emit_chunck(stream, (uchar*)parameter[p].info.name, 24);
|
|
||||||
emit_symbol(stream, parameter[p].info.precision, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
emit_symbol(stream, SGC, 2);
|
emit_symbol(stream, SGC, 2);
|
||||||
emit_symbol(stream, Lctr, 2);
|
emit_symbol(stream, Lctr, 2);
|
||||||
|
@ -288,7 +277,7 @@ codestream_write_header(bitstream *const stream,
|
||||||
}
|
}
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------------------------------------*\
|
/*----------------------------------------------------------------------------------------------------------*\
|
||||||
! FUNCTION NAME: uchar sequence_packets(bwc_field *const field, bwc_field *const field) !
|
! FUNCTION NAME: uchar sequence_packets(bwc_codec *const field, bwc_codec *const field) !
|
||||||
! -------------- !
|
! -------------- !
|
||||||
! !
|
! !
|
||||||
! DESCRIPTION: !
|
! DESCRIPTION: !
|
||||||
|
@ -299,7 +288,7 @@ codestream_write_header(bitstream *const stream,
|
||||||
! ----------- !
|
! ----------- !
|
||||||
! Variable Type Description !
|
! Variable Type Description !
|
||||||
! -------- ---- ----------- !
|
! -------- ---- ----------- !
|
||||||
! field bwc_field* - Structure defining the compression/ !
|
! field bwc_codec* - Structure defining the compression/ !
|
||||||
! decompression stage. !
|
! decompression stage. !
|
||||||
! !
|
! !
|
||||||
! tile bwc_tile* - Structure defining a bwc tile. !
|
! tile bwc_tile* - Structure defining a bwc tile. !
|
||||||
|
@ -319,7 +308,7 @@ codestream_write_header(bitstream *const stream,
|
||||||
! !
|
! !
|
||||||
\*----------------------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------------------*/
|
||||||
static uchar
|
static uchar
|
||||||
sequence_packets(bwc_field *const field, bwc_tile *const tile)
|
sequence_packets(bwc_codec *const field, bwc_tile *const tile)
|
||||||
{
|
{
|
||||||
/*-----------------------*\
|
/*-----------------------*\
|
||||||
! DEFINE INT VARIABLES: !
|
! DEFINE INT VARIABLES: !
|
||||||
|
@ -348,7 +337,7 @@ sequence_packets(bwc_field *const field, bwc_tile *const tile)
|
||||||
! code more readable. !
|
! code more readable. !
|
||||||
\*--------------------------------------------------------*/
|
\*--------------------------------------------------------*/
|
||||||
control = &field->control;
|
control = &field->control;
|
||||||
info = field->info;
|
info = &field->info;
|
||||||
|
|
||||||
packet_sequence = tile->packet_sequence;
|
packet_sequence = tile->packet_sequence;
|
||||||
|
|
||||||
|
@ -490,7 +479,7 @@ sequence_packets(bwc_field *const field, bwc_tile *const tile)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------------------------------------*\
|
/*----------------------------------------------------------------------------------------------------------*\
|
||||||
! FUNCTION NAME: uchar sequence_packets(bwc_field *const field, bwc_field *const field) !
|
! FUNCTION NAME: uchar sequence_packets(bwc_codec *const field, bwc_codec *const field) !
|
||||||
! -------------- !
|
! -------------- !
|
||||||
! !
|
! !
|
||||||
! DESCRIPTION: !
|
! DESCRIPTION: !
|
||||||
|
@ -501,7 +490,7 @@ sequence_packets(bwc_field *const field, bwc_tile *const tile)
|
||||||
! ----------- !
|
! ----------- !
|
||||||
! Variable Type Description !
|
! Variable Type Description !
|
||||||
! -------- ---- ----------- !
|
! -------- ---- ----------- !
|
||||||
! field bwc_field* - Structure defining the compression/ !
|
! field bwc_codec* - Structure defining the compression/ !
|
||||||
! decompression stage. !
|
! decompression stage. !
|
||||||
! !
|
! !
|
||||||
! tile bwc_tile* - Structure defining a bwc tile. !
|
! tile bwc_tile* - Structure defining a bwc tile. !
|
||||||
|
@ -521,7 +510,7 @@ sequence_packets(bwc_field *const field, bwc_tile *const tile)
|
||||||
! !
|
! !
|
||||||
\*----------------------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------------------*/
|
||||||
static void
|
static void
|
||||||
assemble_tile(bwc_field *const field, bwc_tile *const tile, bitstream *const stream)
|
assemble_tile(bwc_codec *const field, bwc_tile *const tile, bitstream *const stream)
|
||||||
{
|
{
|
||||||
/*-----------------------*\
|
/*-----------------------*\
|
||||||
! DEFINE INT VARIABLES: !
|
! DEFINE INT VARIABLES: !
|
||||||
|
@ -613,8 +602,8 @@ assemble_tile(bwc_field *const field, bwc_tile *const tile, bitstream *const str
|
||||||
! - Patrick Vogler B87D120 V 0.1.0 function created !
|
! - Patrick Vogler B87D120 V 0.1.0 function created !
|
||||||
! !
|
! !
|
||||||
\*----------------------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------------------*/
|
||||||
bwc_field*
|
bwc_codec*
|
||||||
parse_main_header(bwc_data *const data,bitstream *const stream)
|
parse_main_header(bwc_stream *const data, bitstream *const stream)
|
||||||
{
|
{
|
||||||
/*-----------------------*\
|
/*-----------------------*\
|
||||||
! DEFINE INT VARIABLES: !
|
! DEFINE INT VARIABLES: !
|
||||||
|
@ -632,18 +621,17 @@ parse_main_header(bwc_data *const data,bitstream *const stream)
|
||||||
uint16 nTS;
|
uint16 nTS;
|
||||||
uint8 index, l;
|
uint8 index, l;
|
||||||
uint8 nPar, p;
|
uint8 nPar, p;
|
||||||
uint8 codec_prec, precision;
|
bwc_precision data_prec, codec_prec;
|
||||||
|
|
||||||
/*-----------------------*\
|
/*-----------------------*\
|
||||||
! DEFINE CHAR VARIABLES: !
|
! DEFINE CHAR VARIABLES: !
|
||||||
\*-----------------------*/
|
\*-----------------------*/
|
||||||
char* buffer_char;
|
|
||||||
char status;
|
char status;
|
||||||
|
|
||||||
/*-----------------------*\
|
/*-----------------------*\
|
||||||
! DEFINE STRUCTS: !
|
! DEFINE STRUCTS: !
|
||||||
\*-----------------------*/
|
\*-----------------------*/
|
||||||
bwc_field *field;
|
bwc_codec *field;
|
||||||
bwc_gl_ctrl *control;
|
bwc_gl_ctrl *control;
|
||||||
bwc_gl_inf *info;
|
bwc_gl_inf *info;
|
||||||
|
|
||||||
|
@ -653,12 +641,6 @@ parse_main_header(bwc_data *const data,bitstream *const stream)
|
||||||
assert(data);
|
assert(data);
|
||||||
assert(stream);
|
assert(stream);
|
||||||
|
|
||||||
/*--------------------------------------------------------*\
|
|
||||||
! Save the data info structure to a temporary variable to !
|
|
||||||
! make the code more readable. !
|
|
||||||
\*--------------------------------------------------------*/
|
|
||||||
info = &data->info;
|
|
||||||
|
|
||||||
status = CODESTREAM_OK;
|
status = CODESTREAM_OK;
|
||||||
index = 0;
|
index = 0;
|
||||||
|
|
||||||
|
@ -708,41 +690,24 @@ parse_main_header(bwc_data *const data,bitstream *const stream)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
info->nX = nX = get_symbol(stream, 8);
|
nX = get_symbol(stream, 8);
|
||||||
info->nY = nY = get_symbol(stream, 8);
|
nY = get_symbol(stream, 8);
|
||||||
info->nZ = nZ = get_symbol(stream, 8);
|
nZ = get_symbol(stream, 8);
|
||||||
info->nTS = nTS = (uint16)get_symbol(stream, 2);
|
nTS = (uint16)get_symbol(stream, 2);
|
||||||
info->nPar = nPar = (uint8)get_symbol(stream, 1);
|
nPar = (uint8)get_symbol(stream, 1);
|
||||||
info->precision = codec_prec = (uint8)get_symbol(stream, 1);
|
data_prec = (bwc_precision)get_symbol(stream, 1);
|
||||||
|
|
||||||
buffer_char = (char*)get_chunck(stream, 10);
|
field = bwc_initialize_field(data_prec, nX, nY, nZ, nTS, nPar);
|
||||||
strncpy(info->f_ext, buffer_char, sizeof(buffer_char)/sizeof(*buffer_char));
|
|
||||||
free(buffer_char);
|
|
||||||
|
|
||||||
for(p = 0; p < nPar; ++p)
|
|
||||||
{
|
|
||||||
buffer_char = (char*)get_chunck(stream, 24);
|
|
||||||
precision = (uint8)get_symbol(stream, 1);
|
|
||||||
|
|
||||||
bwc_add_param(data, buffer_char, precision);
|
|
||||||
|
|
||||||
free(buffer_char);
|
|
||||||
}
|
|
||||||
|
|
||||||
field = bwc_initialize_field(data);
|
|
||||||
if(!field)
|
if(!field)
|
||||||
{
|
{
|
||||||
status |= CODESTREAM_ERROR;
|
status |= CODESTREAM_ERROR;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
info = &field->info;
|
||||||
/*--------------------------------------------------------*\
|
|
||||||
! Save the global control and info structure to temporary !
|
|
||||||
! variables to make the code more readable. !
|
|
||||||
\*--------------------------------------------------------*/
|
|
||||||
info = field->info = &data->info;
|
|
||||||
control = &field->control;
|
control = &field->control;
|
||||||
|
|
||||||
|
info->codec_prec = codec_prec = (bwc_precision)get_symbol(stream, 1);
|
||||||
|
|
||||||
control->codestreamSize = stream->Lmax;
|
control->codestreamSize = stream->Lmax;
|
||||||
|
|
||||||
status |= CODESTREAM_SGI_READ;
|
status |= CODESTREAM_SGI_READ;
|
||||||
|
@ -896,7 +861,7 @@ parse_main_header(bwc_data *const data,bitstream *const stream)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
data->codestream.aux = calloc(1, sizeof(bwc_stream));
|
data->codestream.aux = calloc(1, sizeof(bwc_span));
|
||||||
if(!data->codestream.aux)
|
if(!data->codestream.aux)
|
||||||
{
|
{
|
||||||
// memory allocation error
|
// memory allocation error
|
||||||
|
@ -934,7 +899,7 @@ parse_main_header(bwc_data *const data,bitstream *const stream)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
data->codestream.com = calloc(1, sizeof(bwc_stream));
|
data->codestream.com = calloc(1, sizeof(bwc_span));
|
||||||
if(!data->codestream.com)
|
if(!data->codestream.com)
|
||||||
{
|
{
|
||||||
// memory allocation error
|
// memory allocation error
|
||||||
|
@ -974,7 +939,7 @@ parse_main_header(bwc_data *const data,bitstream *const stream)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(codec_prec == 8)
|
if(codec_prec == bwc_precision_double)
|
||||||
{
|
{
|
||||||
/*--------------------------------------------------------*\
|
/*--------------------------------------------------------*\
|
||||||
! Loop through all tile parameters and... !
|
! Loop through all tile parameters and... !
|
||||||
|
@ -995,7 +960,7 @@ parse_main_header(bwc_data *const data,bitstream *const stream)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(codec_prec == 4)
|
else if(codec_prec == bwc_precision_single)
|
||||||
{
|
{
|
||||||
/*--------------------------------------------------------*\
|
/*--------------------------------------------------------*\
|
||||||
! Loop through all tile parameters and... !
|
! Loop through all tile parameters and... !
|
||||||
|
@ -1059,7 +1024,7 @@ parse_main_header(bwc_data *const data,bitstream *const stream)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------------------------------------*\
|
/*----------------------------------------------------------------------------------------------------------*\
|
||||||
! FUNCTION NAME: uchar sequence_packets(bwc_field *const field, bwc_field *const field) !
|
! FUNCTION NAME: uchar sequence_packets(bwc_codec *const field, bwc_codec *const field) !
|
||||||
! -------------- !
|
! -------------- !
|
||||||
! !
|
! !
|
||||||
! DESCRIPTION: !
|
! DESCRIPTION: !
|
||||||
|
@ -1070,7 +1035,7 @@ parse_main_header(bwc_data *const data,bitstream *const stream)
|
||||||
! ----------- !
|
! ----------- !
|
||||||
! Variable Type Description !
|
! Variable Type Description !
|
||||||
! -------- ---- ----------- !
|
! -------- ---- ----------- !
|
||||||
! field bwc_field* - Structure defining the compression/ !
|
! field bwc_codec* - Structure defining the compression/ !
|
||||||
! decompression stage. !
|
! decompression stage. !
|
||||||
! !
|
! !
|
||||||
! tile bwc_tile* - Structure defining a bwc tile. !
|
! tile bwc_tile* - Structure defining a bwc tile. !
|
||||||
|
@ -1090,7 +1055,7 @@ parse_main_header(bwc_data *const data,bitstream *const stream)
|
||||||
! !
|
! !
|
||||||
\*----------------------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------------------*/
|
||||||
static uchar
|
static uchar
|
||||||
parse_tile(bwc_field *const field, bitstream *const stream)
|
parse_tile(bwc_codec *const field, bitstream *const stream)
|
||||||
{
|
{
|
||||||
/*-----------------------*\
|
/*-----------------------*\
|
||||||
! DEFINE INT VARIABLES: !
|
! DEFINE INT VARIABLES: !
|
||||||
|
@ -1240,7 +1205,7 @@ parse_tile(bwc_field *const field, bitstream *const stream)
|
||||||
! !
|
! !
|
||||||
\*----------------------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------------------*/
|
||||||
static uchar
|
static uchar
|
||||||
parse_body(bwc_field *const field, bitstream *const stream)
|
parse_body(bwc_codec *const field, bitstream *const stream)
|
||||||
{
|
{
|
||||||
/*-----------------------*\
|
/*-----------------------*\
|
||||||
! DEFINE INT VARIABLES: !
|
! DEFINE INT VARIABLES: !
|
||||||
|
@ -1336,7 +1301,7 @@ parse_body(bwc_field *const field, bitstream *const stream)
|
||||||
|| ||
|
|| ||
|
||||||
\************************************************************************************************************/
|
\************************************************************************************************************/
|
||||||
/*----------------------------------------------------------------------------------------------------------*\
|
/*----------------------------------------------------------------------------------------------------------*\
|
||||||
! FUNCTION NAME: bwc_stream* assemble_codestream(bwc_field *const field) !
|
! FUNCTION NAME: bwc_span* assemble_codestream(bwc_codec *const field) !
|
||||||
! -------------- !
|
! -------------- !
|
||||||
! !
|
! !
|
||||||
! DESCRIPTION: !
|
! DESCRIPTION: !
|
||||||
|
@ -1347,14 +1312,14 @@ parse_body(bwc_field *const field, bitstream *const stream)
|
||||||
! ----------- !
|
! ----------- !
|
||||||
! Variable Type Description !
|
! Variable Type Description !
|
||||||
! -------- ---- ----------- !
|
! -------- ---- ----------- !
|
||||||
! field bwc_field* - Structure defining the compression/ !
|
! field bwc_codec* - Structure defining the compression/ !
|
||||||
! decompression stage. !
|
! decompression stage. !
|
||||||
! !
|
! !
|
||||||
! RETURN VALUE: !
|
! RETURN VALUE: !
|
||||||
! ------------- !
|
! ------------- !
|
||||||
! Type Description !
|
! Type Description !
|
||||||
! ---- ----------- !
|
! ---- ----------- !
|
||||||
! bwc_stream* - Packed stream containing the compressed data set. !
|
! bwc_span* - Packed stream containing the compressed data set. !
|
||||||
! !
|
! !
|
||||||
! DEVELOPMENT HISTORY: !
|
! DEVELOPMENT HISTORY: !
|
||||||
! -------------------- !
|
! -------------------- !
|
||||||
|
@ -1364,8 +1329,8 @@ parse_body(bwc_field *const field, bitstream *const stream)
|
||||||
! 13.06.2019 Patrick Vogler B87D120 V 0.1.0 function created !
|
! 13.06.2019 Patrick Vogler B87D120 V 0.1.0 function created !
|
||||||
! !
|
! !
|
||||||
\*----------------------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------------------*/
|
||||||
bwc_stream*
|
bwc_span*
|
||||||
assemble_codestream(bwc_field *const field)
|
assemble_codestream(bwc_codec *const field, bwc_stream *const data)
|
||||||
{
|
{
|
||||||
/*-----------------------*\
|
/*-----------------------*\
|
||||||
! DEFINE INT VARIABLES: !
|
! DEFINE INT VARIABLES: !
|
||||||
|
@ -1378,7 +1343,7 @@ assemble_codestream(bwc_field *const field)
|
||||||
bwc_gl_ctrl *control;
|
bwc_gl_ctrl *control;
|
||||||
bwc_tile *tile;
|
bwc_tile *tile;
|
||||||
bitstream *stream;
|
bitstream *stream;
|
||||||
bwc_stream *packed_stream;
|
bwc_span *packed_stream;
|
||||||
|
|
||||||
/*-----------------------*\
|
/*-----------------------*\
|
||||||
! DEFINE ASSERTIONS: !
|
! DEFINE ASSERTIONS: !
|
||||||
|
@ -1424,7 +1389,7 @@ assemble_codestream(bwc_field *const field)
|
||||||
! bytes. !
|
! bytes. !
|
||||||
\*--------------------------------------------------------*/
|
\*--------------------------------------------------------*/
|
||||||
stream = init_stream(NULL, control->codestreamSize, 'c');
|
stream = init_stream(NULL, control->codestreamSize, 'c');
|
||||||
codestream_write_header(stream, field);
|
codestream_write_header(stream, field, data);
|
||||||
|
|
||||||
/*--------------------------------------------------------*\
|
/*--------------------------------------------------------*\
|
||||||
! Walk through the tile structure and assemble the packed !
|
! Walk through the tile structure and assemble the packed !
|
||||||
|
@ -1444,7 +1409,7 @@ assemble_codestream(bwc_field *const field)
|
||||||
|
|
||||||
emit_symbol(stream, EOC, 2);
|
emit_symbol(stream, EOC, 2);
|
||||||
|
|
||||||
packed_stream = calloc(1, sizeof(bwc_stream));
|
packed_stream = calloc(1, sizeof(bwc_span));
|
||||||
if(!packed_stream)
|
if(!packed_stream)
|
||||||
{
|
{
|
||||||
// memory allocation error
|
// memory allocation error
|
||||||
|
@ -1463,7 +1428,7 @@ assemble_codestream(bwc_field *const field)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------------------------------------*\
|
/*----------------------------------------------------------------------------------------------------------*\
|
||||||
! FUNCTION NAME: uchar parse_codestream(bwc_field *const field, bitstream *const stream) !
|
! FUNCTION NAME: uchar parse_codestream(bwc_codec *const field, bitstream *const stream) !
|
||||||
! -------------- !
|
! -------------- !
|
||||||
! !
|
! !
|
||||||
! DESCRIPTION: !
|
! DESCRIPTION: !
|
||||||
|
@ -1474,7 +1439,7 @@ assemble_codestream(bwc_field *const field)
|
||||||
! ----------- !
|
! ----------- !
|
||||||
! Variable Type Description !
|
! Variable Type Description !
|
||||||
! -------- ---- ----------- !
|
! -------- ---- ----------- !
|
||||||
! field bwc_field* - Structure defining the compression/ !
|
! field bwc_codec* - Structure defining the compression/ !
|
||||||
! decompression stage. !
|
! decompression stage. !
|
||||||
! !
|
! !
|
||||||
! stream bitstream* - Structure used to assemble a bwc bit- !
|
! stream bitstream* - Structure used to assemble a bwc bit- !
|
||||||
|
@ -1494,13 +1459,13 @@ assemble_codestream(bwc_field *const field)
|
||||||
! 05.08.2019 Patrick Vogler B87D120 V 0.1.0 function created !
|
! 05.08.2019 Patrick Vogler B87D120 V 0.1.0 function created !
|
||||||
! !
|
! !
|
||||||
\*----------------------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------------------*/
|
||||||
bwc_field*
|
bwc_codec*
|
||||||
parse_codestream(bwc_data *const data, uint8 const layer)
|
parse_codestream(bwc_stream *const data, uint8 const layer)
|
||||||
{
|
{
|
||||||
/*-----------------------*\
|
/*-----------------------*\
|
||||||
! DEFINE STRUCTS: !
|
! DEFINE STRUCTS: !
|
||||||
\*-----------------------*/
|
\*-----------------------*/
|
||||||
bwc_field *field;
|
bwc_codec *field;
|
||||||
bitstream *stream;
|
bitstream *stream;
|
||||||
|
|
||||||
/*-----------------------*\
|
/*-----------------------*\
|
||||||
|
|
|
@ -1421,7 +1421,7 @@ initialize_gain_lut()
|
||||||
}
|
}
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------------------------------------*\
|
/*----------------------------------------------------------------------------------------------------------*\
|
||||||
! FUNCTION NAME: bwc_float get_dwt_energy_gain(bwc_field *const field, uchar highband_flag, uint16 level) !
|
! FUNCTION NAME: bwc_float get_dwt_energy_gain(bwc_codec *const field, uchar highband_flag, uint16 level) !
|
||||||
! -------------- !
|
! -------------- !
|
||||||
! !
|
! !
|
||||||
! DESCRIPTION: !
|
! DESCRIPTION: !
|
||||||
|
@ -1434,7 +1434,7 @@ initialize_gain_lut()
|
||||||
! ----------- !
|
! ----------- !
|
||||||
! Variable Type Description !
|
! Variable Type Description !
|
||||||
! -------- ---- ----------- !
|
! -------- ---- ----------- !
|
||||||
! field bwc_field* - Structure defining the compression/ !
|
! field bwc_codec* - Structure defining the compression/ !
|
||||||
! decompression stage. !
|
! decompression stage. !
|
||||||
! !
|
! !
|
||||||
! highband_flag uchar - Defines the subband for which Gb is !
|
! highband_flag uchar - Defines the subband for which Gb is !
|
||||||
|
@ -1459,7 +1459,7 @@ initialize_gain_lut()
|
||||||
! !
|
! !
|
||||||
\*----------------------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------------------*/
|
||||||
bwc_float
|
bwc_float
|
||||||
get_dwt_energy_gain(bwc_field *const field, uchar highband_flag, uint16 level)
|
get_dwt_energy_gain(bwc_codec *const field, uchar highband_flag, uint16 level)
|
||||||
{
|
{
|
||||||
/*-----------------------*\
|
/*-----------------------*\
|
||||||
! DEFINE INT VARIABLES: !
|
! DEFINE INT VARIABLES: !
|
||||||
|
@ -1576,7 +1576,7 @@ get_dwt_energy_gain(bwc_field *const field, uchar highband_flag, uint16 level)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------------------------------------*\
|
/*----------------------------------------------------------------------------------------------------------*\
|
||||||
! FUNCTION NAME: uchar forward_discrete_wavelet_transform(bwc_field *const field, !
|
! FUNCTION NAME: uchar forward_discrete_wavelet_transform(bwc_codec *const field, !
|
||||||
! -------------- bwc_parameter *const parameter) !
|
! -------------- bwc_parameter *const parameter) !
|
||||||
! !
|
! !
|
||||||
! DESCRIPTION: !
|
! DESCRIPTION: !
|
||||||
|
@ -1594,7 +1594,7 @@ get_dwt_energy_gain(bwc_field *const field, uchar highband_flag, uint16 level)
|
||||||
! ----------- !
|
! ----------- !
|
||||||
! Variable Type Description !
|
! Variable Type Description !
|
||||||
! -------- ---- ----------- !
|
! -------- ---- ----------- !
|
||||||
! field bwc_field* - Structure defining the compression/ !
|
! field bwc_codec* - Structure defining the compression/ !
|
||||||
! decompression stage. !
|
! decompression stage. !
|
||||||
! !
|
! !
|
||||||
! parameter bwc_parameter* - Structure defining a bwc parameter. !
|
! parameter bwc_parameter* - Structure defining a bwc parameter. !
|
||||||
|
@ -1614,7 +1614,7 @@ get_dwt_energy_gain(bwc_field *const field, uchar highband_flag, uint16 level)
|
||||||
! !
|
! !
|
||||||
\*----------------------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------------------*/
|
||||||
uchar
|
uchar
|
||||||
forward_wavelet_transform(bwc_field *const field, bwc_parameter *const parameter)
|
forward_wavelet_transform(bwc_codec *const field, bwc_parameter *const parameter)
|
||||||
{
|
{
|
||||||
/*-----------------------*\
|
/*-----------------------*\
|
||||||
! DEFINE INT VARIABLES: !
|
! DEFINE INT VARIABLES: !
|
||||||
|
@ -2117,7 +2117,7 @@ forward_wavelet_transform(bwc_field *const field, bwc_parameter *const parameter
|
||||||
}
|
}
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------------------------------------*\
|
/*----------------------------------------------------------------------------------------------------------*\
|
||||||
! FUNCTION NAME: uchar inverse_discrete_wavelet_transform(bwc_field *const field, !
|
! FUNCTION NAME: uchar inverse_discrete_wavelet_transform(bwc_codec *const field, !
|
||||||
! -------------- bwc_parameter *const parameter) !
|
! -------------- bwc_parameter *const parameter) !
|
||||||
! !
|
! !
|
||||||
! DESCRIPTION: !
|
! DESCRIPTION: !
|
||||||
|
@ -2135,7 +2135,7 @@ forward_wavelet_transform(bwc_field *const field, bwc_parameter *const parameter
|
||||||
! ----------- !
|
! ----------- !
|
||||||
! Variable Type Description !
|
! Variable Type Description !
|
||||||
! -------- ---- ----------- !
|
! -------- ---- ----------- !
|
||||||
! field bwc_field* - Structure defining the compression/ !
|
! field bwc_codec* - Structure defining the compression/ !
|
||||||
! decompression stage. !
|
! decompression stage. !
|
||||||
! !
|
! !
|
||||||
! parameter bwc_parameter* - Structure defining a bwc parameter. !
|
! parameter bwc_parameter* - Structure defining a bwc parameter. !
|
||||||
|
@ -2155,7 +2155,7 @@ forward_wavelet_transform(bwc_field *const field, bwc_parameter *const parameter
|
||||||
! !
|
! !
|
||||||
\*----------------------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------------------*/
|
||||||
uchar
|
uchar
|
||||||
inverse_wavelet_transform(bwc_field *const field, bwc_parameter *const parameter)
|
inverse_wavelet_transform(bwc_codec *const field, bwc_parameter *const parameter)
|
||||||
{
|
{
|
||||||
/*-----------------------*\
|
/*-----------------------*\
|
||||||
! DEFINE INT VARIABLES: !
|
! DEFINE INT VARIABLES: !
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -16,7 +16,7 @@
|
||||||
|| ------------ ||
|
|| ------------ ||
|
||||||
|| ||
|
|| ||
|
||||||
|| This file describes a set of functions that can be used to de-/encode bwc ||
|
|| This file describes a set of functions that can be used to de-/encode bwc ||
|
||||||
|| codeblocks described by the bwc_field structure according to the embedded block ||
|
|| codeblocks described by the bwc_codec structure according to the embedded block ||
|
||||||
|| coding paradigm described by the JPEG 2000 standard. For more information please ||
|
|| coding paradigm described by the JPEG 2000 standard. For more information please ||
|
||||||
|| refere to JPEG2000 by D. S. Taubman and M. W. Marcellin. ||
|
|| refere to JPEG2000 by D. S. Taubman and M. W. Marcellin. ||
|
||||||
|| ||
|
|| ||
|
||||||
|
@ -2274,7 +2274,7 @@ compute_convex_hull(bwc_encoded_cblk *const encoded_codeblock, double *const mse
|
||||||
}
|
}
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------------------------------------*\
|
/*----------------------------------------------------------------------------------------------------------*\
|
||||||
! FUNCTION NAME: bwc_encoded_cblk* encode_codeblock(bwc_field *const field, bwc_cblk_access *const access, !
|
! FUNCTION NAME: bwc_encoded_cblk* encode_codeblock(bwc_codec *const field, bwc_cblk_access *const access, !
|
||||||
! -------------- bwc_coder_stripe *const codeblock, !
|
! -------------- bwc_coder_stripe *const codeblock, !
|
||||||
! const uint64 width, !
|
! const uint64 width, !
|
||||||
! const uint64 height, !
|
! const uint64 height, !
|
||||||
|
@ -2307,7 +2307,7 @@ compute_convex_hull(bwc_encoded_cblk *const encoded_codeblock, double *const mse
|
||||||
! !
|
! !
|
||||||
\*----------------------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------------------*/
|
||||||
static void
|
static void
|
||||||
encode_codeblock(bwc_field *const field, bwc_cblk_access *const access,
|
encode_codeblock(bwc_codec *const field, bwc_cblk_access *const access,
|
||||||
bwc_coder_stripe *const codeblock,
|
bwc_coder_stripe *const codeblock,
|
||||||
const uint64 width,
|
const uint64 width,
|
||||||
const uint64 height,
|
const uint64 height,
|
||||||
|
@ -2595,7 +2595,7 @@ encode_codeblock(bwc_field *const field, bwc_cblk_access *const access,
|
||||||
}
|
}
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------------------------------------*\
|
/*----------------------------------------------------------------------------------------------------------*\
|
||||||
! FUNCTION NAME: bwc_encoded_cblk* encode_codeblock(bwc_field *const field, bwc_cblk_access *const access, !
|
! FUNCTION NAME: bwc_encoded_cblk* encode_codeblock(bwc_codec *const field, bwc_cblk_access *const access, !
|
||||||
! bwc_coder_stripe *const codeblock, !
|
! bwc_coder_stripe *const codeblock, !
|
||||||
! const uint64 width, !
|
! const uint64 width, !
|
||||||
! const uint64 height, !
|
! const uint64 height, !
|
||||||
|
@ -2628,7 +2628,7 @@ encode_codeblock(bwc_field *const field, bwc_cblk_access *const access,
|
||||||
! !
|
! !
|
||||||
\*----------------------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------------------*/
|
||||||
static void
|
static void
|
||||||
decode_codeblock(bwc_field *const field, bwc_cblk_access *const access,
|
decode_codeblock(bwc_codec *const field, bwc_cblk_access *const access,
|
||||||
bwc_coder_stripe *const codeblock,
|
bwc_coder_stripe *const codeblock,
|
||||||
const uint64 width,
|
const uint64 width,
|
||||||
const uint64 height,
|
const uint64 height,
|
||||||
|
@ -2828,7 +2828,7 @@ decode_codeblock(bwc_field *const field, bwc_cblk_access *const access,
|
||||||
! !
|
! !
|
||||||
\*----------------------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------------------*/
|
||||||
uchar
|
uchar
|
||||||
t1_encode(bwc_field *const field, bwc_tile *const tile, bwc_parameter *const parameter)
|
t1_encode(bwc_codec *const field, bwc_tile *const tile, bwc_parameter *const parameter)
|
||||||
{
|
{
|
||||||
/*-----------------------*\
|
/*-----------------------*\
|
||||||
! DEFINE INT VARIABLES: !
|
! DEFINE INT VARIABLES: !
|
||||||
|
@ -3131,7 +3131,7 @@ t1_encode(bwc_field *const field, bwc_tile *const tile, bwc_parameter *const par
|
||||||
! !
|
! !
|
||||||
\*----------------------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------------------*/
|
||||||
uchar
|
uchar
|
||||||
t1_decode(bwc_field *const field, bwc_tile *const tile, bwc_parameter *const parameter)
|
t1_decode(bwc_codec *const field, bwc_tile *const tile, bwc_parameter *const parameter)
|
||||||
{
|
{
|
||||||
/*-----------------------*\
|
/*-----------------------*\
|
||||||
! DEFINE INT VARIABLES: !
|
! DEFINE INT VARIABLES: !
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|| ------------ ||
|
|| ------------ ||
|
||||||
|| ||
|
|| ||
|
||||||
|| This file describes a set of functions that can be used to de-/encode bwc ||
|
|| This file describes a set of functions that can be used to de-/encode bwc ||
|
||||||
|| codeblocks described by the bwc_field structure according to the embedded block ||
|
|| codeblocks described by the bwc_codec structure according to the embedded block ||
|
||||||
|| coding paradigm described by the JPEG 2000 standard. For more information please ||
|
|| coding paradigm described by the JPEG 2000 standard. For more information please ||
|
||||||
|| refere to JPEG2000 by D. S. Taubman and M. W. Marcellin. ||
|
|| refere to JPEG2000 by D. S. Taubman and M. W. Marcellin. ||
|
||||||
|| ||
|
|| ||
|
||||||
|
@ -312,7 +312,7 @@ encode_length(bitstream *const header, bwc_codeblock *const codeblock,
|
||||||
}
|
}
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------------------------------------*\
|
/*----------------------------------------------------------------------------------------------------------*\
|
||||||
! FUNCTION NAME: void create_quality_layers(bwc_field *const field, bwc_tile *const tile) !
|
! FUNCTION NAME: void create_quality_layers(bwc_codec *const field, bwc_tile *const tile) !
|
||||||
! -------------- !
|
! -------------- !
|
||||||
! !
|
! !
|
||||||
! !
|
! !
|
||||||
|
@ -385,7 +385,7 @@ decode_length(bitstream *const header, bwc_codeblock *const codeblock, int8 cons
|
||||||
}
|
}
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------------------------------------*\
|
/*----------------------------------------------------------------------------------------------------------*\
|
||||||
! FUNCTION NAME: int64 create_packet(bwc_field *const field, bwc_tile *const tile, !
|
! FUNCTION NAME: int64 create_packet(bwc_codec *const field, bwc_tile *const tile, !
|
||||||
! -------------- bwc_resolution *const resolution, !
|
! -------------- bwc_resolution *const resolution, !
|
||||||
! uint32 const prec_idx, !
|
! uint32 const prec_idx, !
|
||||||
! int8 const q_layer, !
|
! int8 const q_layer, !
|
||||||
|
@ -403,7 +403,7 @@ decode_length(bitstream *const header, bwc_codeblock *const codeblock, int8 cons
|
||||||
! ----------- !
|
! ----------- !
|
||||||
! Variable Type Description !
|
! Variable Type Description !
|
||||||
! -------- ---- ----------- !
|
! -------- ---- ----------- !
|
||||||
! field bwc_field* - Structure defining the compression/ !
|
! field bwc_codec* - Structure defining the compression/ !
|
||||||
! decompression stage. !
|
! decompression stage. !
|
||||||
! !
|
! !
|
||||||
! tile bwc_tile* - Structure defining a bwc tile. !
|
! tile bwc_tile* - Structure defining a bwc tile. !
|
||||||
|
@ -435,7 +435,7 @@ decode_length(bitstream *const header, bwc_codeblock *const codeblock, int8 cons
|
||||||
! !
|
! !
|
||||||
\*----------------------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------------------*/
|
||||||
static int32
|
static int32
|
||||||
create_packet(bwc_field *const field, bwc_tile *const tile,
|
create_packet(bwc_codec *const field, bwc_tile *const tile,
|
||||||
bwc_resolution *const resolution,
|
bwc_resolution *const resolution,
|
||||||
uint32 const prec_idx,
|
uint32 const prec_idx,
|
||||||
int16 const q_layer,
|
int16 const q_layer,
|
||||||
|
@ -498,7 +498,7 @@ create_packet(bwc_field *const field, bwc_tile *const tile,
|
||||||
if(!est)
|
if(!est)
|
||||||
{
|
{
|
||||||
packet->body.access =
|
packet->body.access =
|
||||||
packet->body.memory = calloc(packet->body.size, sizeof(bwc_stream));
|
packet->body.memory = calloc(packet->body.size, sizeof(bwc_span));
|
||||||
if(!packet->body.memory)
|
if(!packet->body.memory)
|
||||||
{
|
{
|
||||||
// memory allocation error
|
// memory allocation error
|
||||||
|
@ -706,7 +706,7 @@ create_packet(bwc_field *const field, bwc_tile *const tile,
|
||||||
}
|
}
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------------------------------------*\
|
/*----------------------------------------------------------------------------------------------------------*\
|
||||||
! FUNCTION NAME: uchar create_packets(bwc_field *const field, bwc_tile *const tile) !
|
! FUNCTION NAME: uchar create_packets(bwc_codec *const field, bwc_tile *const tile) !
|
||||||
! -------------- !
|
! -------------- !
|
||||||
! !
|
! !
|
||||||
! DESCRIPTION: !
|
! DESCRIPTION: !
|
||||||
|
@ -723,7 +723,7 @@ create_packet(bwc_field *const field, bwc_tile *const tile,
|
||||||
! ----------- !
|
! ----------- !
|
||||||
! Variable Type Description !
|
! Variable Type Description !
|
||||||
! -------- ---- ----------- !
|
! -------- ---- ----------- !
|
||||||
! field bwc_field* - Structure defining the compression/ !
|
! field bwc_codec* - Structure defining the compression/ !
|
||||||
! decompression stage. !
|
! decompression stage. !
|
||||||
! !
|
! !
|
||||||
! tile bwc_tile* - Structure defining a bwc tile. !
|
! tile bwc_tile* - Structure defining a bwc tile. !
|
||||||
|
@ -743,7 +743,7 @@ create_packet(bwc_field *const field, bwc_tile *const tile,
|
||||||
! !
|
! !
|
||||||
\*----------------------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------------------*/
|
||||||
static uchar
|
static uchar
|
||||||
create_packets(bwc_field *const field, bwc_tile *const tile)
|
create_packets(bwc_codec *const field, bwc_tile *const tile)
|
||||||
{
|
{
|
||||||
/*-----------------------*\
|
/*-----------------------*\
|
||||||
! DEFINE INT VARIABLES: !
|
! DEFINE INT VARIABLES: !
|
||||||
|
@ -772,7 +772,7 @@ create_packets(bwc_field *const field, bwc_tile *const tile)
|
||||||
! variables to make the code more readable. !
|
! variables to make the code more readable. !
|
||||||
\*--------------------------------------------------------*/
|
\*--------------------------------------------------------*/
|
||||||
control = &field->control;
|
control = &field->control;
|
||||||
info = field->info;
|
info = &field->info;
|
||||||
|
|
||||||
/*--------------------------------------------------------*\
|
/*--------------------------------------------------------*\
|
||||||
! Iterate overall quality layers for every precinct in all !
|
! Iterate overall quality layers for every precinct in all !
|
||||||
|
@ -845,7 +845,7 @@ create_packets(bwc_field *const field, bwc_tile *const tile)
|
||||||
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------------------------------------*\
|
/*----------------------------------------------------------------------------------------------------------*\
|
||||||
! FUNCTION NAME: int64 create_quality_layer(bwc_field *const field, bwc_tile *const tile, !
|
! FUNCTION NAME: int64 create_quality_layer(bwc_codec *const field, bwc_tile *const tile, !
|
||||||
! -------------- uint16 const threshold, !
|
! -------------- uint16 const threshold, !
|
||||||
! int16 const q_layer, !
|
! int16 const q_layer, !
|
||||||
! uchar const est) !
|
! uchar const est) !
|
||||||
|
@ -860,7 +860,7 @@ create_packets(bwc_field *const field, bwc_tile *const tile)
|
||||||
! ----------- !
|
! ----------- !
|
||||||
! Variable Type Description !
|
! Variable Type Description !
|
||||||
! -------- ---- ----------- !
|
! -------- ---- ----------- !
|
||||||
! field bwc_field* - Structure defining the compression/ !
|
! field bwc_codec* - Structure defining the compression/ !
|
||||||
! decompression stage. !
|
! decompression stage. !
|
||||||
! !
|
! !
|
||||||
! tile bwc_tile* - Structure defining a bwc tile. !
|
! tile bwc_tile* - Structure defining a bwc tile. !
|
||||||
|
@ -888,7 +888,7 @@ create_packets(bwc_field *const field, bwc_tile *const tile)
|
||||||
! !
|
! !
|
||||||
\*----------------------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------------------*/
|
||||||
static int64
|
static int64
|
||||||
create_quality_layer(bwc_field *const field, bwc_tile *const tile,
|
create_quality_layer(bwc_codec *const field, bwc_tile *const tile,
|
||||||
uint16 const threshold,
|
uint16 const threshold,
|
||||||
int16 const q_layer,
|
int16 const q_layer,
|
||||||
uchar const est)
|
uchar const est)
|
||||||
|
@ -924,7 +924,7 @@ create_quality_layer(bwc_field *const field, bwc_tile *const tile,
|
||||||
! variables to make the code more readable. !
|
! variables to make the code more readable. !
|
||||||
\*--------------------------------------------------------*/
|
\*--------------------------------------------------------*/
|
||||||
control = &field->control;
|
control = &field->control;
|
||||||
info = field->info;
|
info = &field->info;
|
||||||
|
|
||||||
for(j = 0, estimated_ql_size = 0; j < info->nPar; ++j)
|
for(j = 0, estimated_ql_size = 0; j < info->nPar; ++j)
|
||||||
{
|
{
|
||||||
|
@ -1075,7 +1075,7 @@ create_quality_layer(bwc_field *const field, bwc_tile *const tile,
|
||||||
|
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------------------------------------*\
|
/*----------------------------------------------------------------------------------------------------------*\
|
||||||
! FUNCTION NAME: void create_quality_layers(bwc_field *const field, bwc_tile *const tile) !
|
! FUNCTION NAME: void create_quality_layers(bwc_codec *const field, bwc_tile *const tile) !
|
||||||
! -------------- !
|
! -------------- !
|
||||||
! !
|
! !
|
||||||
! !
|
! !
|
||||||
|
@ -1087,7 +1087,7 @@ create_quality_layer(bwc_field *const field, bwc_tile *const tile,
|
||||||
! ----------- !
|
! ----------- !
|
||||||
! Variable Type Description !
|
! Variable Type Description !
|
||||||
! -------- ---- ----------- !
|
! -------- ---- ----------- !
|
||||||
! field bwc_field* - Structure defining the compression/ !
|
! field bwc_codec* - Structure defining the compression/ !
|
||||||
! decompression stage. !
|
! decompression stage. !
|
||||||
! !
|
! !
|
||||||
! tile bwc_tile* - Structure defining a bwc tile. !
|
! tile bwc_tile* - Structure defining a bwc tile. !
|
||||||
|
@ -1107,7 +1107,7 @@ create_quality_layer(bwc_field *const field, bwc_tile *const tile,
|
||||||
! !
|
! !
|
||||||
\*----------------------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------------------*/
|
||||||
static uchar
|
static uchar
|
||||||
create_quality_layers(bwc_field *const field, bwc_tile *const tile)
|
create_quality_layers(bwc_codec *const field, bwc_tile *const tile)
|
||||||
{
|
{
|
||||||
/*-----------------------*\
|
/*-----------------------*\
|
||||||
! DEFINE INT VARIABLES: !
|
! DEFINE INT VARIABLES: !
|
||||||
|
@ -1139,7 +1139,7 @@ create_quality_layers(bwc_field *const field, bwc_tile *const tile)
|
||||||
! temporary variables to make the code more readable. !
|
! temporary variables to make the code more readable. !
|
||||||
\*--------------------------------------------------------*/
|
\*--------------------------------------------------------*/
|
||||||
control = &field->control;
|
control = &field->control;
|
||||||
info = field->info;
|
info = &field->info;
|
||||||
|
|
||||||
tile_control = &tile->control;
|
tile_control = &tile->control;
|
||||||
tile_info = &tile->info;
|
tile_info = &tile->info;
|
||||||
|
@ -1255,7 +1255,7 @@ create_quality_layers(bwc_field *const field, bwc_tile *const tile)
|
||||||
|| ||
|
|| ||
|
||||||
\************************************************************************************************************/
|
\************************************************************************************************************/
|
||||||
/*----------------------------------------------------------------------------------------------------------*\
|
/*----------------------------------------------------------------------------------------------------------*\
|
||||||
! FUNCTION NAME: uchar t2_encode(bwc_field *const field, bwc_tile *const tile) !
|
! FUNCTION NAME: uchar t2_encode(bwc_codec *const field, bwc_tile *const tile) !
|
||||||
! -------------- !
|
! -------------- !
|
||||||
! !
|
! !
|
||||||
! DESCRIPTION: !
|
! DESCRIPTION: !
|
||||||
|
@ -1269,7 +1269,7 @@ create_quality_layers(bwc_field *const field, bwc_tile *const tile)
|
||||||
! ----------- !
|
! ----------- !
|
||||||
! Variable Type Description !
|
! Variable Type Description !
|
||||||
! -------- ---- ----------- !
|
! -------- ---- ----------- !
|
||||||
! field bwc_field* - Structure defining the compression/ !
|
! field bwc_codec* - Structure defining the compression/ !
|
||||||
! decompression stage. !
|
! decompression stage. !
|
||||||
! !
|
! !
|
||||||
! tile bwc_tile* - Structure defining a bwc tile. !
|
! tile bwc_tile* - Structure defining a bwc tile. !
|
||||||
|
@ -1289,7 +1289,7 @@ create_quality_layers(bwc_field *const field, bwc_tile *const tile)
|
||||||
! !
|
! !
|
||||||
\*----------------------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------------------*/
|
||||||
uchar
|
uchar
|
||||||
t2_encode(bwc_field *const field, bwc_tile *const tile)
|
t2_encode(bwc_codec *const field, bwc_tile *const tile)
|
||||||
{
|
{
|
||||||
/*-----------------------*\
|
/*-----------------------*\
|
||||||
! DEFINE ASSERTIONS: !
|
! DEFINE ASSERTIONS: !
|
||||||
|
@ -1319,7 +1319,7 @@ t2_encode(bwc_field *const field, bwc_tile *const tile)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*----------------------------------------------------------------------------------------------------------*\
|
/*----------------------------------------------------------------------------------------------------------*\
|
||||||
! FUNCTION NAME: uchar parse_packet(bwc_field *const field, bwc_tile *const tile, !
|
! FUNCTION NAME: uchar parse_packet(bwc_codec *const field, bwc_tile *const tile, !
|
||||||
! -------------- bwc_packet *const packet, !
|
! -------------- bwc_packet *const packet, !
|
||||||
! uint64 const body_size) !
|
! uint64 const body_size) !
|
||||||
! !
|
! !
|
||||||
|
@ -1332,7 +1332,7 @@ t2_encode(bwc_field *const field, bwc_tile *const tile)
|
||||||
! ----------- !
|
! ----------- !
|
||||||
! Variable Type Description !
|
! Variable Type Description !
|
||||||
! -------- ---- ----------- !
|
! -------- ---- ----------- !
|
||||||
! field bwc_field* - Structure defining the compression/ !
|
! field bwc_codec* - Structure defining the compression/ !
|
||||||
! decompression stage. !
|
! decompression stage. !
|
||||||
! !
|
! !
|
||||||
! tile bwc_tile* - Structure defining a bwc tile. !
|
! tile bwc_tile* - Structure defining a bwc tile. !
|
||||||
|
@ -1356,7 +1356,7 @@ t2_encode(bwc_field *const field, bwc_tile *const tile)
|
||||||
! !
|
! !
|
||||||
\*----------------------------------------------------------------------------------------------------------*/
|
\*----------------------------------------------------------------------------------------------------------*/
|
||||||
uchar
|
uchar
|
||||||
parse_packet(bwc_field *const field, bwc_tile *const tile,
|
parse_packet(bwc_codec *const field, bwc_tile *const tile,
|
||||||
bwc_packet *const packet,
|
bwc_packet *const packet,
|
||||||
uint64 const body_size)
|
uint64 const body_size)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue