OLD | NEW |
1 /* | 1 /* |
2 * The copyright in this software is being made available under the 2-clauses | 2 * The copyright in this software is being made available under the 2-clauses |
3 * BSD License, included below. This software may be subject to other third | 3 * BSD License, included below. This software may be subject to other third |
4 * party and contributor rights, including patent rights, and no such rights | 4 * party and contributor rights, including patent rights, and no such rights |
5 * are granted under this license. | 5 * are granted under this license. |
6 * | 6 * |
7 * Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium | 7 * Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium |
8 * Copyright (c) 2002-2014, Professor Benoit Macq | 8 * Copyright (c) 2002-2014, Professor Benoit Macq |
9 * Copyright (c) 2001-2003, David Janssens | 9 * Copyright (c) 2001-2003, David Janssens |
10 * Copyright (c) 2002-2003, Yannick Verschueren | 10 * Copyright (c) 2002-2003, Yannick Verschueren |
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
225 typedef struct opj_simple_mcc_decorrelation_data | 225 typedef struct opj_simple_mcc_decorrelation_data |
226 { | 226 { |
227 OPJ_UINT32 m_index; | 227 OPJ_UINT32 m_index; |
228 OPJ_UINT32 m_nb_comps; | 228 OPJ_UINT32 m_nb_comps; |
229 opj_mct_data_t * m_decorrelation_array; | 229 opj_mct_data_t * m_decorrelation_array; |
230 opj_mct_data_t * m_offset_array; | 230 opj_mct_data_t * m_offset_array; |
231 OPJ_UINT32 m_is_irreversible : 1; | 231 OPJ_UINT32 m_is_irreversible : 1; |
232 } | 232 } |
233 opj_simple_mcc_decorrelation_data_t; | 233 opj_simple_mcc_decorrelation_data_t; |
234 | 234 |
| 235 typedef struct opj_ppx_struct |
| 236 { |
| 237 OPJ_BYTE* m_data; /* m_data == NULL => Zppx not read yet */ |
| 238 OPJ_UINT32 m_data_size; |
| 239 } opj_ppx; |
| 240 |
235 /** | 241 /** |
236 Tile coding parameters : | 242 Tile coding parameters : |
237 this structure is used to store coding/decoding parameters common to all | 243 this structure is used to store coding/decoding parameters common to all |
238 tiles (information like COD, COC in main header) | 244 tiles (information like COD, COC in main header) |
239 */ | 245 */ |
240 typedef struct opj_tcp | 246 typedef struct opj_tcp |
241 { | 247 { |
242 /** coding style */ | 248 /** coding style */ |
243 OPJ_UINT32 csty; | 249 OPJ_UINT32 csty; |
244 /** progression order */ | 250 /** progression order */ |
245 OPJ_PROG_ORDER prg; | 251 OPJ_PROG_ORDER prg; |
246 /** number of layers */ | 252 /** number of layers */ |
247 OPJ_UINT32 numlayers; | 253 OPJ_UINT32 numlayers; |
248 OPJ_UINT32 num_layers_to_decode; | 254 OPJ_UINT32 num_layers_to_decode; |
249 /** multi-component transform identifier */ | 255 /** multi-component transform identifier */ |
250 OPJ_UINT32 mct; | 256 OPJ_UINT32 mct; |
251 /** rates of layers */ | 257 /** rates of layers */ |
252 OPJ_FLOAT32 rates[100]; | 258 OPJ_FLOAT32 rates[100]; |
253 /** number of progression order changes */ | 259 /** number of progression order changes */ |
254 OPJ_UINT32 numpocs; | 260 OPJ_UINT32 numpocs; |
255 /** progression order changes */ | 261 /** progression order changes */ |
256 opj_poc_t pocs[32]; | 262 opj_poc_t pocs[32]; |
257 » /** packet header store there for futur use in t2_decode_packet */ | 263 » |
| 264 » /** number of ppt markers (reserved size) */ |
| 265 » OPJ_UINT32 ppt_markers_count; |
| 266 » /** ppt markers data (table indexed by Zppt) */ |
| 267 » opj_ppx* ppt_markers; |
| 268 » |
| 269 » /** packet header store there for future use in t2_decode_packet */ |
258 OPJ_BYTE *ppt_data; | 270 OPJ_BYTE *ppt_data; |
259 /** used to keep a track of the allocated memory */ | 271 /** used to keep a track of the allocated memory */ |
260 OPJ_BYTE *ppt_buffer; | 272 OPJ_BYTE *ppt_buffer; |
261 /** Number of bytes stored inside ppt_data*/ | 273 /** Number of bytes stored inside ppt_data*/ |
262 OPJ_UINT32 ppt_data_size; | 274 OPJ_UINT32 ppt_data_size; |
263 /** size of ppt_data*/ | 275 /** size of ppt_data*/ |
264 OPJ_UINT32 ppt_len; | 276 OPJ_UINT32 ppt_len; |
265 /** add fixed_quality */ | 277 /** add fixed_quality */ |
266 OPJ_FLOAT32 distoratio[100]; | 278 OPJ_FLOAT32 distoratio[100]; |
267 /** tile-component coding parameters */ | 279 /** tile-component coding parameters */ |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
352 OPJ_UINT32 tdx; | 364 OPJ_UINT32 tdx; |
353 /** YTsiz */ | 365 /** YTsiz */ |
354 OPJ_UINT32 tdy; | 366 OPJ_UINT32 tdy; |
355 /** comment */ | 367 /** comment */ |
356 OPJ_CHAR *comment; | 368 OPJ_CHAR *comment; |
357 /** number of tiles in width */ | 369 /** number of tiles in width */ |
358 OPJ_UINT32 tw; | 370 OPJ_UINT32 tw; |
359 /** number of tiles in heigth */ | 371 /** number of tiles in heigth */ |
360 OPJ_UINT32 th; | 372 OPJ_UINT32 th; |
361 | 373 |
362 » /** packet header store there for futur use in t2_decode_packet */ | 374 » /** number of ppm markers (reserved size) */ |
| 375 » OPJ_UINT32 ppm_markers_count; |
| 376 » /** ppm markers data (table indexed by Zppm) */ |
| 377 » opj_ppx* ppm_markers; |
| 378 » |
| 379 » /** packet header store there for future use in t2_decode_packet */ |
363 OPJ_BYTE *ppm_data; | 380 OPJ_BYTE *ppm_data; |
364 /** size of the ppm_data*/ | 381 /** size of the ppm_data*/ |
365 OPJ_UINT32 ppm_len; | 382 OPJ_UINT32 ppm_len; |
366 /** size of the ppm_data*/ | 383 /** size of the ppm_data*/ |
367 OPJ_UINT32 ppm_data_read; | 384 OPJ_UINT32 ppm_data_read; |
368 | 385 |
369 OPJ_BYTE *ppm_data_current; | 386 OPJ_BYTE *ppm_data_current; |
370 | 387 |
371 /** packet header storage original buffer */ | 388 /** packet header storage original buffer */ |
372 OPJ_BYTE *ppm_buffer; | 389 OPJ_BYTE *ppm_buffer; |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
476 /** | 493 /** |
477 * Indicate that the current tile-part is assume as the last tile part o
f the codestream. | 494 * Indicate that the current tile-part is assume as the last tile part o
f the codestream. |
478 * It is useful in the case of PSot is equal to zero. The sot length wil
l be compute in the | 495 * It is useful in the case of PSot is equal to zero. The sot length wil
l be compute in the |
479 * SOD reader function. FIXME NOT USED for the moment | 496 * SOD reader function. FIXME NOT USED for the moment |
480 */ | 497 */ |
481 OPJ_BOOL m_last_tile_part; | 498 OPJ_BOOL m_last_tile_part; |
482 /** to tell that a tile can be decoded. */ | 499 /** to tell that a tile can be decoded. */ |
483 OPJ_UINT32 m_can_decode : 1; | 500 OPJ_UINT32 m_can_decode : 1; |
484 OPJ_UINT32 m_discard_tiles : 1; | 501 OPJ_UINT32 m_discard_tiles : 1; |
485 OPJ_UINT32 m_skip_data : 1; | 502 OPJ_UINT32 m_skip_data : 1; |
| 503 /** TNsot correction : see issue 254 **/ |
| 504 OPJ_UINT32 m_nb_tile_parts_correction_checked : 1; |
| 505 OPJ_UINT32 m_nb_tile_parts_correction : 1; |
486 | 506 |
487 } opj_j2k_dec_t; | 507 } opj_j2k_dec_t; |
488 | 508 |
489 typedef struct opj_j2k_enc | 509 typedef struct opj_j2k_enc |
490 { | 510 { |
491 /** Tile part number, regardless of poc, for each new poc, tp is reset t
o 1*/ | 511 /** Tile part number, regardless of poc, for each new poc, tp is reset t
o 1*/ |
492 OPJ_UINT32 m_current_poc_tile_part_number; /* tp_num */ | 512 OPJ_UINT32 m_current_poc_tile_part_number; /* tp_num */ |
493 | 513 |
494 /** Tile part number currently coding, taking into account POC. m_curren
t_tile_part_number holds the total number of tile parts while encoding the last
tile part.*/ | 514 /** Tile part number currently coding, taking into account POC. m_curren
t_tile_part_number holds the total number of tile parts while encoding the last
tile part.*/ |
495 OPJ_UINT32 m_current_tile_part_number; /*cur_tp_num */ | 515 OPJ_UINT32 m_current_tile_part_number; /*cur_tp_num */ |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
562 opj_procedure_list_t * m_validation_list; | 582 opj_procedure_list_t * m_validation_list; |
563 | 583 |
564 /** helper used to write the index file */ | 584 /** helper used to write the index file */ |
565 opj_codestream_index_t *cstr_index; | 585 opj_codestream_index_t *cstr_index; |
566 | 586 |
567 /** number of the tile curently concern by coding/decoding */ | 587 /** number of the tile curently concern by coding/decoding */ |
568 OPJ_UINT32 m_current_tile_number; | 588 OPJ_UINT32 m_current_tile_number; |
569 | 589 |
570 /** the current tile coder/decoder **/ | 590 /** the current tile coder/decoder **/ |
571 struct opj_tcd * m_tcd; | 591 struct opj_tcd * m_tcd; |
572 | |
573 } | 592 } |
574 opj_j2k_t; | 593 opj_j2k_t; |
575 | 594 |
576 | 595 |
577 | 596 |
578 | 597 |
579 /** @name Exported functions */ | 598 /** @name Exported functions */ |
580 /*@{*/ | 599 /*@{*/ |
581 /* ----------------------------------------------------------------------- */ | 600 /* ----------------------------------------------------------------------- */ |
582 | 601 |
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
835 * codestream. | 854 * codestream. |
836 */ | 855 */ |
837 OPJ_BOOL opj_j2k_end_compress( opj_j2k_t *p_j2k, | 856 OPJ_BOOL opj_j2k_end_compress( opj_j2k_t *p_j2k, |
838 opj_stream_private_t
*cio, | 857 opj_stream_private_t
*cio, |
839 opj_event_mgr_t * p_
manager); | 858 opj_event_mgr_t * p_
manager); |
840 | 859 |
841 OPJ_BOOL opj_j2k_setup_mct_encoding (opj_tcp_t * p_tcp, opj_image_t * p_image); | 860 OPJ_BOOL opj_j2k_setup_mct_encoding (opj_tcp_t * p_tcp, opj_image_t * p_image); |
842 | 861 |
843 | 862 |
844 #endif /* __J2K_H */ | 863 #endif /* __J2K_H */ |
OLD | NEW |