00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef JPEGLIB_H
00014 #define JPEGLIB_H
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef JCONFIG_INCLUDED
00024 #include "jconfig16.h"
00025 #endif
00026 #include "jmorecfg16.h"
00027
00028
00029
00030
00031
00032
00033 #define JPEG_LIB_VERSION 62
00034
00035
00036
00037
00038
00039
00040
00041 #define DCTSIZE 8
00042 #define DCTSIZE2 64
00043 #define NUM_QUANT_TBLS 4
00044 #define NUM_HUFF_TBLS 4
00045 #define NUM_ARITH_TBLS 16
00046 #define MAX_COMPS_IN_SCAN 4
00047 #define MAX_SAMP_FACTOR 4
00048
00049
00050
00051
00052
00053
00054
00055
00056 #define C_MAX_DATA_UNITS_IN_MCU 10
00057 #ifndef D_MAX_DATA_UNITS_IN_MCU
00058 #define D_MAX_DATA_UNITS_IN_MCU 10
00059 #endif
00060
00061
00062
00063
00064
00065
00066
00067 typedef JSAMPLE FAR *JSAMPROW;
00068 typedef JSAMPROW *JSAMPARRAY;
00069 typedef JSAMPARRAY *JSAMPIMAGE;
00070
00071 typedef JCOEF JBLOCK[DCTSIZE2];
00072 typedef JBLOCK FAR *JBLOCKROW;
00073 typedef JBLOCKROW *JBLOCKARRAY;
00074 typedef JBLOCKARRAY *JBLOCKIMAGE;
00075
00076 typedef JCOEF FAR *JCOEFPTR;
00077
00078 typedef JDIFF FAR *JDIFFROW;
00079 typedef JDIFFROW *JDIFFARRAY;
00080 typedef JDIFFARRAY *JDIFFIMAGE;
00081
00082
00083
00084
00085
00086
00087
00088 typedef struct {
00089
00090
00091
00092
00093 UINT16 quantval[DCTSIZE2];
00094
00095
00096
00097
00098
00099 boolean sent_table;
00100 } JQUANT_TBL;
00101
00102
00103
00104
00105 typedef struct {
00106
00107 UINT8 bits[17];
00108
00109 UINT8 huffval[256];
00110
00111
00112
00113
00114
00115 boolean sent_table;
00116 } JHUFF_TBL;
00117
00118
00119
00120
00121 typedef struct {
00122
00123
00124
00125 int component_id;
00126 int component_index;
00127 int h_samp_factor;
00128 int v_samp_factor;
00129 int quant_tbl_no;
00130
00131
00132
00133
00134 int dc_tbl_no;
00135 int ac_tbl_no;
00136
00137
00138
00139
00140
00141
00142
00143
00144 JDIMENSION width_in_data_units;
00145 JDIMENSION height_in_data_units;
00146
00147
00148
00149
00150
00151
00152
00153 int codec_data_unit;
00154
00155
00156
00157
00158
00159
00160
00161 JDIMENSION downsampled_width;
00162 JDIMENSION downsampled_height;
00163
00164
00165
00166
00167 boolean component_needed;
00168
00169
00170
00171 int MCU_width;
00172 int MCU_height;
00173 int MCU_data_units;
00174 int MCU_sample_width;
00175 int last_col_width;
00176 int last_row_height;
00177
00178
00179
00180
00181
00182 JQUANT_TBL * quant_table;
00183
00184
00185 void * dct_table;
00186 } jpeg_component_info;
00187
00188
00189
00190
00191 typedef struct {
00192 int comps_in_scan;
00193 int component_index[MAX_COMPS_IN_SCAN];
00194 int Ss, Se;
00195
00196 int Ah, Al;
00197
00198 } jpeg_scan_info;
00199
00200
00201
00202 typedef struct jpeg_marker_struct FAR * jpeg_saved_marker_ptr;
00203
00204 struct jpeg_marker_struct {
00205 jpeg_saved_marker_ptr next;
00206 UINT8 marker;
00207 unsigned int original_length;
00208 unsigned int data_length;
00209 JOCTET FAR * data;
00210
00211 };
00212
00213
00214
00215 typedef enum {
00216 JPROC_SEQUENTIAL,
00217 JPROC_PROGRESSIVE,
00218 JPROC_LOSSLESS
00219 } J_CODEC_PROCESS;
00220
00221
00222
00223 typedef enum {
00224 JCS_UNKNOWN,
00225 JCS_GRAYSCALE,
00226 JCS_RGB,
00227 JCS_YCbCr,
00228 JCS_CMYK,
00229 JCS_YCCK
00230 } J_COLOR_SPACE;
00231
00232
00233
00234 typedef enum {
00235 JDCT_ISLOW,
00236 JDCT_IFAST,
00237 JDCT_FLOAT
00238 } J_DCT_METHOD;
00239
00240 #ifndef JDCT_DEFAULT
00241 #define JDCT_DEFAULT JDCT_ISLOW
00242 #endif
00243 #ifndef JDCT_FASTEST
00244 #define JDCT_FASTEST JDCT_IFAST
00245 #endif
00246
00247
00248
00249 typedef enum {
00250 JDITHER_NONE,
00251 JDITHER_ORDERED,
00252 JDITHER_FS
00253 } J_DITHER_MODE;
00254
00255
00256
00257
00258 #define jpeg_common_fields \
00259 struct jpeg_error_mgr * err; \
00260 struct jpeg_memory_mgr * mem; \
00261 struct jpeg_progress_mgr * progress; \
00262 void * client_data; \
00263 boolean is_decompressor; \
00264 int global_state
00265
00266
00267
00268
00269
00270 struct jpeg_common_struct {
00271 jpeg_common_fields;
00272
00273
00274
00275
00276 };
00277
00278 typedef struct jpeg_common_struct * j_common_ptr;
00279 typedef struct jpeg_compress_struct * j_compress_ptr;
00280 typedef struct jpeg_decompress_struct * j_decompress_ptr;
00281
00282
00283
00284
00285 struct jpeg_compress_struct {
00286 jpeg_common_fields;
00287
00288
00289 struct jpeg_destination_mgr * dest;
00290
00291
00292
00293
00294
00295
00296 JDIMENSION image_width;
00297 JDIMENSION image_height;
00298 int input_components;
00299 J_COLOR_SPACE in_color_space;
00300
00301 double input_gamma;
00302
00303
00304
00305
00306
00307
00308
00309
00310
00311 boolean lossless;
00312
00313 int data_precision;
00314
00315 int num_components;
00316 J_COLOR_SPACE jpeg_color_space;
00317
00318 jpeg_component_info * comp_info;
00319
00320
00321 JQUANT_TBL * quant_tbl_ptrs[NUM_QUANT_TBLS];
00322
00323
00324 JHUFF_TBL * dc_huff_tbl_ptrs[NUM_HUFF_TBLS];
00325 JHUFF_TBL * ac_huff_tbl_ptrs[NUM_HUFF_TBLS];
00326
00327
00328 UINT8 arith_dc_L[NUM_ARITH_TBLS];
00329 UINT8 arith_dc_U[NUM_ARITH_TBLS];
00330 UINT8 arith_ac_K[NUM_ARITH_TBLS];
00331
00332 int num_scans;
00333 const jpeg_scan_info * scan_info;
00334
00335
00336
00337
00338
00339 boolean raw_data_in;
00340 boolean arith_code;
00341 boolean optimize_coding;
00342 boolean CCIR601_sampling;
00343 int smoothing_factor;
00344 J_DCT_METHOD dct_method;
00345
00346
00347
00348
00349
00350
00351 unsigned int restart_interval;
00352 int restart_in_rows;
00353
00354
00355
00356 boolean write_JFIF_header;
00357 UINT8 JFIF_major_version;
00358 UINT8 JFIF_minor_version;
00359
00360
00361
00362
00363 UINT8 density_unit;
00364 UINT16 X_density;
00365 UINT16 Y_density;
00366 boolean write_Adobe_marker;
00367
00368
00369
00370
00371
00372
00373 JDIMENSION next_scanline;
00374
00375
00376
00377
00378
00379
00380
00381
00382 int data_unit;
00383 J_CODEC_PROCESS process;
00384
00385 int max_h_samp_factor;
00386 int max_v_samp_factor;
00387
00388 JDIMENSION total_iMCU_rows;
00389
00390
00391
00392
00393
00394
00395
00396
00397
00398
00399 int comps_in_scan;
00400 jpeg_component_info * cur_comp_info[MAX_COMPS_IN_SCAN];
00401
00402
00403 JDIMENSION MCUs_per_row;
00404 JDIMENSION MCU_rows_in_scan;
00405
00406 int data_units_in_MCU;
00407 int MCU_membership[C_MAX_DATA_UNITS_IN_MCU];
00408
00409
00410
00411 int Ss, Se, Ah, Al;
00412
00413
00414
00415
00416 struct jpeg_comp_master * master;
00417 struct jpeg_c_main_controller * main;
00418 struct jpeg_c_prep_controller * prep;
00419 struct jpeg_c_codec * codec;
00420 struct jpeg_marker_writer * marker;
00421 struct jpeg_color_converter * cconvert;
00422 struct jpeg_downsampler * downsample;
00423 jpeg_scan_info * script_space;
00424 int script_space_size;
00425 };
00426
00427
00428
00429
00430 struct jpeg_decompress_struct {
00431 jpeg_common_fields;
00432
00433
00434 struct jpeg_source_mgr * src;
00435
00436
00437
00438
00439 JDIMENSION image_width;
00440 JDIMENSION image_height;
00441 int num_components;
00442 J_COLOR_SPACE jpeg_color_space;
00443
00444
00445
00446
00447
00448
00449 J_COLOR_SPACE out_color_space;
00450
00451 unsigned int scale_num, scale_denom;
00452
00453 double output_gamma;
00454
00455 boolean buffered_image;
00456 boolean raw_data_out;
00457
00458 J_DCT_METHOD dct_method;
00459 boolean do_fancy_upsampling;
00460 boolean do_block_smoothing;
00461
00462 boolean quantize_colors;
00463
00464 J_DITHER_MODE dither_mode;
00465 boolean two_pass_quantize;
00466 int desired_number_of_colors;
00467
00468 boolean enable_1pass_quant;
00469 boolean enable_external_quant;
00470 boolean enable_2pass_quant;
00471
00472
00473
00474
00475
00476
00477
00478 JDIMENSION output_width;
00479 JDIMENSION output_height;
00480 int out_color_components;
00481 int output_components;
00482
00483
00484
00485 int rec_outbuf_height;
00486
00487
00488
00489
00490
00491
00492
00493
00494
00495
00496
00497 int actual_number_of_colors;
00498 JSAMPARRAY colormap;
00499
00500
00501
00502
00503
00504
00505
00506
00507
00508 JDIMENSION output_scanline;
00509
00510
00511
00512
00513 int input_scan_number;
00514 JDIMENSION input_iMCU_row;
00515
00516
00517
00518
00519
00520 int output_scan_number;
00521 JDIMENSION output_iMCU_row;
00522
00523
00524
00525
00526
00527
00528
00529
00530 int (*coef_bits)[DCTSIZE2];
00531
00532
00533
00534
00535
00536
00537
00538
00539
00540
00541 JQUANT_TBL * quant_tbl_ptrs[NUM_QUANT_TBLS];
00542
00543
00544 JHUFF_TBL * dc_huff_tbl_ptrs[NUM_HUFF_TBLS];
00545 JHUFF_TBL * ac_huff_tbl_ptrs[NUM_HUFF_TBLS];
00546
00547
00548
00549
00550
00551
00552 int data_precision;
00553
00554 jpeg_component_info * comp_info;
00555
00556
00557 boolean arith_code;
00558
00559 UINT8 arith_dc_L[NUM_ARITH_TBLS];
00560 UINT8 arith_dc_U[NUM_ARITH_TBLS];
00561 UINT8 arith_ac_K[NUM_ARITH_TBLS];
00562
00563 unsigned int restart_interval;
00564
00565
00566
00567
00568 boolean saw_JFIF_marker;
00569
00570 UINT8 JFIF_major_version;
00571 UINT8 JFIF_minor_version;
00572 UINT8 density_unit;
00573 UINT16 X_density;
00574 UINT16 Y_density;
00575 boolean saw_Adobe_marker;
00576 UINT8 Adobe_transform;
00577
00578 boolean CCIR601_sampling;
00579
00580
00581
00582
00583
00584 jpeg_saved_marker_ptr marker_list;
00585
00586
00587
00588
00589
00590
00591
00592
00593 int data_unit;
00594 J_CODEC_PROCESS process;
00595
00596 int max_h_samp_factor;
00597 int max_v_samp_factor;
00598
00599 int min_codec_data_unit;
00600
00601 JDIMENSION total_iMCU_rows;
00602
00603
00604
00605
00606
00607
00608
00609
00610 JSAMPLE * sample_range_limit;
00611
00612
00613
00614
00615
00616
00617 int comps_in_scan;
00618 jpeg_component_info * cur_comp_info[MAX_COMPS_IN_SCAN];
00619
00620
00621 JDIMENSION MCUs_per_row;
00622 JDIMENSION MCU_rows_in_scan;
00623
00624 int data_units_in_MCU;
00625 int MCU_membership[D_MAX_DATA_UNITS_IN_MCU];
00626
00627
00628
00629 int Ss, Se, Ah, Al;
00630
00631
00632
00633
00634
00635 int unread_marker;
00636
00637
00638
00639
00640 struct jpeg_decomp_master * master;
00641 struct jpeg_d_main_controller * main;
00642 struct jpeg_d_codec * codec;
00643 struct jpeg_d_post_controller * post;
00644 struct jpeg_input_controller * inputctl;
00645 struct jpeg_marker_reader * marker;
00646 struct jpeg_upsampler * upsample;
00647 struct jpeg_color_deconverter * cconvert;
00648 struct jpeg_color_quantizer * cquantize;
00649 };
00650
00651
00652
00653
00654
00655
00656
00657
00658
00659
00660
00661
00662 struct jpeg_error_mgr {
00663
00664 JMETHOD(void, error_exit, (j_common_ptr cinfo));
00665
00666 JMETHOD(void, emit_message, (j_common_ptr cinfo, int msg_level));
00667
00668 JMETHOD(void, output_message, (j_common_ptr cinfo));
00669
00670 JMETHOD(void, format_message, (j_common_ptr cinfo, char * buffer));
00671 #define JMSG_LENGTH_MAX 200
00672
00673 JMETHOD(void, reset_error_mgr, (j_common_ptr cinfo));
00674
00675
00676
00677
00678 int msg_code;
00679 #define JMSG_STR_PARM_MAX 80
00680 union {
00681 int i[8];
00682 char s[JMSG_STR_PARM_MAX];
00683 } msg_parm;
00684
00685
00686
00687 int trace_level;
00688
00689
00690
00691
00692
00693
00694
00695 long num_warnings;
00696
00697
00698
00699
00700
00701
00702
00703
00704
00705
00706
00707 const char * const * jpeg_message_table;
00708 int last_jpeg_message;
00709
00710
00711
00712 const char * const * addon_message_table;
00713 int first_addon_message;
00714 int last_addon_message;
00715 };
00716
00717
00718
00719
00720 struct jpeg_progress_mgr {
00721 JMETHOD(void, progress_monitor, (j_common_ptr cinfo));
00722
00723 long pass_counter;
00724 long pass_limit;
00725 int completed_passes;
00726 int total_passes;
00727 };
00728
00729
00730
00731
00732 struct jpeg_destination_mgr {
00733 JOCTET * next_output_byte;
00734 size_t free_in_buffer;
00735
00736 JMETHOD(void, init_destination, (j_compress_ptr cinfo));
00737 JMETHOD(boolean, empty_output_buffer, (j_compress_ptr cinfo));
00738 JMETHOD(void, term_destination, (j_compress_ptr cinfo));
00739 };
00740
00741
00742
00743
00744 struct jpeg_source_mgr {
00745 const JOCTET * next_input_byte;
00746 size_t bytes_in_buffer;
00747
00748 JMETHOD(void, init_source, (j_decompress_ptr cinfo));
00749 JMETHOD(boolean, fill_input_buffer, (j_decompress_ptr cinfo));
00750 JMETHOD(void, skip_input_data, (j_decompress_ptr cinfo, long num_bytes));
00751 JMETHOD(boolean, resync_to_restart, (j_decompress_ptr cinfo, int desired));
00752 JMETHOD(void, term_source, (j_decompress_ptr cinfo));
00753 };
00754
00755
00756
00757
00758
00759
00760
00761
00762
00763
00764
00765
00766
00767 #define JPOOL_PERMANENT 0
00768 #define JPOOL_IMAGE 1
00769 #define JPOOL_NUMPOOLS 2
00770
00771 typedef struct jvirt_sarray_control * jvirt_sarray_ptr;
00772 typedef struct jvirt_barray_control * jvirt_barray_ptr;
00773
00774
00775 #ifdef C_LOSSLESS_SUPPORTED
00776 #define NEED_DARRAY
00777 #else
00778 #ifdef D_LOSSLESS_SUPPORTED
00779 #define NEED_DARRAY
00780 #endif
00781 #endif
00782
00783 struct jpeg_memory_mgr {
00784
00785 JMETHOD(void *, alloc_small, (j_common_ptr cinfo, int pool_id,
00786 size_t sizeofobject));
00787 JMETHOD(void FAR *, alloc_large, (j_common_ptr cinfo, int pool_id,
00788 size_t sizeofobject));
00789 JMETHOD(JSAMPARRAY, alloc_sarray, (j_common_ptr cinfo, int pool_id,
00790 JDIMENSION samplesperrow,
00791 JDIMENSION numrows));
00792 JMETHOD(JBLOCKARRAY, alloc_barray, (j_common_ptr cinfo, int pool_id,
00793 JDIMENSION blocksperrow,
00794 JDIMENSION numrows));
00795 #ifdef NEED_DARRAY
00796 JMETHOD(JDIFFARRAY, alloc_darray, (j_common_ptr cinfo, int pool_id,
00797 JDIMENSION diffsperrow,
00798 JDIMENSION numrows));
00799 #endif
00800 JMETHOD(jvirt_sarray_ptr, request_virt_sarray, (j_common_ptr cinfo,
00801 int pool_id,
00802 boolean pre_zero,
00803 JDIMENSION samplesperrow,
00804 JDIMENSION numrows,
00805 JDIMENSION maxaccess));
00806 JMETHOD(jvirt_barray_ptr, request_virt_barray, (j_common_ptr cinfo,
00807 int pool_id,
00808 boolean pre_zero,
00809 JDIMENSION blocksperrow,
00810 JDIMENSION numrows,
00811 JDIMENSION maxaccess));
00812 JMETHOD(void, realize_virt_arrays, (j_common_ptr cinfo));
00813 JMETHOD(JSAMPARRAY, access_virt_sarray, (j_common_ptr cinfo,
00814 jvirt_sarray_ptr ptr,
00815 JDIMENSION start_row,
00816 JDIMENSION num_rows,
00817 boolean writable));
00818 JMETHOD(JBLOCKARRAY, access_virt_barray, (j_common_ptr cinfo,
00819 jvirt_barray_ptr ptr,
00820 JDIMENSION start_row,
00821 JDIMENSION num_rows,
00822 boolean writable));
00823 JMETHOD(void, free_pool, (j_common_ptr cinfo, int pool_id));
00824 JMETHOD(void, self_destruct, (j_common_ptr cinfo));
00825
00826
00827
00828
00829
00830
00831 long max_memory_to_use;
00832
00833
00834 long max_alloc_chunk;
00835 };
00836
00837
00838
00839
00840
00841 typedef JMETHOD(boolean, jpeg_marker_parser_method, (j_decompress_ptr cinfo));
00842
00843
00844
00845
00846
00847
00848
00849 #ifdef HAVE_PROTOTYPES
00850 #define JPP(arglist) arglist
00851 #else
00852 #define JPP(arglist) ()
00853 #endif
00854
00855
00856
00857
00858
00859
00860
00861
00862
00863
00864
00865 #ifdef NEED_SHORT_EXTERNAL_NAMES
00866 #define jcopy_block_row jcopy16_block_row
00867 #define jcopy_sample_rows jcopy16_sample_rows
00868 #define jdiv_round_up jdiv16_round_up
00869 #define jinit_1pass_quantizer jinit16_1pass_quantizer
00870 #define jinit_2pass_quantizer jinit16_2pass_quantizer
00871 #define jinit_arith_decoder jinit16_arith_decoder
00872 #define jinit_arith_encoder jinit16_arith_encoder
00873 #define jinit_c_codec jinit16_c_codec
00874 #define jinit_c_coef_controller jinit16_c_coef_controller
00875 #define jinit_c_diff_controller jinit16_c_diff_controller
00876 #define jinit_c_main_controller jinit16_c_main_controller
00877 #define jinit_c_master_control jinit16_c_master_control
00878 #define jinit_c_prep_controller jinit16_c_prep_controller
00879 #define jinit_c_scaler jinit16_c_scaler
00880 #define jinit_color_converter jinit16_color_converter
00881 #define jinit_color_deconverter jinit16_color_deconverter
00882 #define jinit_compress_master jinit16_compress_master
00883 #define jinit_d_codec jinit16_d_codec
00884 #define jinit_d_coef_controller jinit16_d_coef_controller
00885 #define jinit_d_diff_controller jinit16_d_diff_controller
00886 #define jinit_d_main_controller jinit16_d_main_controller
00887 #define jinit_d_post_controller jinit16_d_post_controller
00888 #define jinit_d_post_controller jinit16_d_post_controller
00889 #define jinit_d_scaler jinit16_d_scaler
00890 #define jinit_differencer jinit16_differencer
00891 #define jinit_downsampler jinit16_downsampler
00892 #define jinit_forward_dct jinit16_forward_dct
00893 #define jinit_input_controller jinit16_input_controller
00894 #define jinit_inverse_dct jinit16_inverse_dct
00895 #define jinit_lhuff_decoder jinit16_lhuff_decoder
00896 #define jinit_lhuff_encoder jinit16_lhuff_encoder
00897 #define jinit_lossless_c_codec jinit16_lossless_c_codec
00898 #define jinit_lossless_d_codec jinit16_lossless_d_codec
00899 #define jinit_lossy_c_codec jinit16_lossy_c_codec
00900 #define jinit_lossy_d_codec jinit16_lossy_d_codec
00901 #define jinit_marker_reader jinit16_marker_reader
00902 #define jinit_marker_writer jinit16_marker_writer
00903 #define jinit_master_decompress jinit16_master_decompress
00904 #define jinit_memory_mgr jinit16_memory_mgr
00905 #define jinit_merged_upsampler jinit16_merged_upsampler
00906 #define jinit_phuff_decoder jinit16_phuff_decoder
00907 #define jinit_phuff_encoder jinit16_phuff_encoder
00908 #define jinit_shuff_decoder jinit16_shuff_decoder
00909 #define jinit_shuff_encoder jinit16_shuff_encoder
00910 #define jinit_undifferencer jinit16_undifferencer
00911 #define jinit_upsampler jinit16_upsampler
00912 #define jpeg_CreateCompress jpeg16_CreateCompress
00913 #define jpeg_CreateDecompress jpeg16_CreateDecompress
00914 #define jpeg_abort jpeg16_abort
00915 #define jpeg_abort_compress jpeg16_abort_compress
00916 #define jpeg_abort_decompress jpeg16_abort_decompress
00917 #define jpeg_add_quant_table jpeg16_add_quant_table
00918 #define jpeg_alloc_huff_table jpeg16_alloc_huff_table
00919 #define jpeg_alloc_quant_table jpeg16_alloc_quant_table
00920 #define jpeg_calc_output_dimensions jpeg16_calc_output_dimensions
00921 #define jpeg_consume_input jpeg16_consume_input
00922 #define jpeg_copy_critical_parameters jpeg16_copy_critical_parameters
00923 #define jpeg_default_colorspace jpeg16_default_colorspace
00924 #define jpeg_destroy jpeg16_destroy
00925 #define jpeg_destroy_compress jpeg16_destroy_compress
00926 #define jpeg_destroy_decompress jpeg16_destroy_decompress
00927 #define jpeg_fdct_float jpeg16_fdct_float
00928 #define jpeg_fdct_ifast jpeg16_fdct_ifast
00929 #define jpeg_fdct_islow jpeg16_fdct_islow
00930 #define jpeg_fill_bit_buffer jpeg16_fill_bit_buffer
00931 #define jpeg_finish_compress jpeg16_finish_compress
00932 #define jpeg_finish_decompress jpeg16_finish_decompress
00933 #define jpeg_finish_output jpeg16_finish_output
00934 #define jpeg_free_large jpeg16_free_large
00935 #define jpeg_free_small jpeg16_free_small
00936 #define jpeg_gen_optimal_table jpeg16_gen_optimal_table
00937 #define jpeg_get_large jpeg16_get_large
00938 #define jpeg_get_small jpeg16_get_small
00939 #define jpeg_has_multiple_scans jpeg16_has_multiple_scans
00940 #define jpeg_huff_decode jpeg16_huff_decode
00941 #define jpeg_idct_1x1 jpeg16_idct_1x1
00942 #define jpeg_idct_2x2 jpeg16_idct_2x2
00943 #define jpeg_idct_4x4 jpeg16_idct_4x4
00944 #define jpeg_idct_float jpeg16_idct_float
00945 #define jpeg_idct_ifast jpeg16_idct_ifast
00946 #define jpeg_idct_islow jpeg16_idct_islow
00947 #define jpeg_input_complete jpeg16_input_complete
00948 #define jpeg_make_c_derived_tbl jpeg16_make_c_derived_tbl
00949 #define jpeg_make_d_derived_tbl jpeg16_make_d_derived_tbl
00950 #define jpeg_mem_available jpeg16_mem_available
00951 #define jpeg_mem_init jpeg16_mem_init
00952 #define jpeg_mem_term jpeg16_mem_term
00953 #define jpeg_new_colormap jpeg16_new_colormap
00954 #define jpeg_open_backing_store jpeg16_open_backing_store
00955 #define jpeg_quality_scaling jpeg16_quality_scaling
00956 #define jpeg_read_coefficients jpeg16_read_coefficients
00957 #define jpeg_read_header jpeg16_read_header
00958 #define jpeg_read_raw_data jpeg16_read_raw_data
00959 #define jpeg_read_scanlines jpeg16_read_scanlines
00960 #define jpeg_resync_to_restart jpeg16_resync_to_restart
00961 #define jpeg_save_markers jpeg16_save_markers
00962 #define jpeg_set_colorspace jpeg16_set_colorspace
00963 #define jpeg_set_defaults jpeg16_set_defaults
00964 #define jpeg_set_linear_quality jpeg16_set_linear_quality
00965 #define jpeg_set_marker_processor jpeg16_set_marker_processor
00966 #define jpeg_set_quality jpeg16_set_quality
00967 #define jpeg_simple_lossless jpeg16_simple_lossless
00968 #define jpeg_simple_progression jpeg16_simple_progression
00969 #define jpeg_start_compress jpeg16_start_compress
00970 #define jpeg_start_decompress jpeg16_start_decompress
00971 #define jpeg_start_output jpeg16_start_output
00972 #define jpeg_std_error jpeg16_std_error
00973 #define jpeg_stdio_dest jpeg16_stdio_dest
00974 #define jpeg_stdio_src jpeg16_stdio_src
00975 #define jpeg_suppress_tables jpeg16_suppress_tables
00976 #define jpeg_write_coefficients jpeg16_write_coefficients
00977 #define jpeg_write_m_byte jpeg16_write_m_byte
00978 #define jpeg_write_m_header jpeg16_write_m_header
00979 #define jpeg_write_marker jpeg16_write_marker
00980 #define jpeg_write_raw_data jpeg16_write_raw_data
00981 #define jpeg_write_scanlines jpeg16_write_scanlines
00982 #define jpeg_write_tables jpeg16_write_tables
00983 #define jround_up jround16_up
00984 #define jzero_far jzero16_far
00985 #endif
00986
00987
00988
00989 EXTERN(struct jpeg_error_mgr *) jpeg_std_error
00990 JPP((struct jpeg_error_mgr * err));
00991
00992
00993
00994
00995
00996
00997
00998
00999 #define jpeg_create_compress(cinfo) \
01000 jpeg_CreateCompress((cinfo), JPEG_LIB_VERSION, \
01001 (size_t) sizeof(struct jpeg_compress_struct))
01002 #define jpeg_create_decompress(cinfo) \
01003 jpeg_CreateDecompress((cinfo), JPEG_LIB_VERSION, \
01004 (size_t) sizeof(struct jpeg_decompress_struct))
01005 EXTERN(void) jpeg_CreateCompress JPP((j_compress_ptr cinfo,
01006 int version, size_t structsize));
01007 EXTERN(void) jpeg_CreateDecompress JPP((j_decompress_ptr cinfo,
01008 int version, size_t structsize));
01009
01010 EXTERN(void) jpeg_destroy_compress JPP((j_compress_ptr cinfo));
01011 EXTERN(void) jpeg_destroy_decompress JPP((j_decompress_ptr cinfo));
01012
01013
01014
01015 EXTERN(void) jpeg_stdio_dest JPP((j_compress_ptr cinfo, FILE * outfile));
01016 EXTERN(void) jpeg_stdio_src JPP((j_decompress_ptr cinfo, FILE * infile));
01017
01018
01019 EXTERN(void) jpeg_set_defaults JPP((j_compress_ptr cinfo));
01020
01021 EXTERN(void) jpeg_set_colorspace JPP((j_compress_ptr cinfo,
01022 J_COLOR_SPACE colorspace));
01023 EXTERN(void) jpeg_default_colorspace JPP((j_compress_ptr cinfo));
01024 EXTERN(void) jpeg_set_quality JPP((j_compress_ptr cinfo, int quality,
01025 boolean force_baseline));
01026 EXTERN(void) jpeg_set_linear_quality JPP((j_compress_ptr cinfo,
01027 int scale_factor,
01028 boolean force_baseline));
01029 EXTERN(void) jpeg_add_quant_table JPP((j_compress_ptr cinfo, int which_tbl,
01030 const unsigned int *basic_table,
01031 int scale_factor,
01032 boolean force_baseline));
01033 EXTERN(int) jpeg_quality_scaling JPP((int quality));
01034 EXTERN(void) jpeg_simple_lossless JPP((j_compress_ptr cinfo,
01035 int predictor, int point_transform));
01036 EXTERN(void) jpeg_simple_progression JPP((j_compress_ptr cinfo));
01037 EXTERN(void) jpeg_suppress_tables JPP((j_compress_ptr cinfo,
01038 boolean suppress));
01039 EXTERN(JQUANT_TBL *) jpeg_alloc_quant_table JPP((j_common_ptr cinfo));
01040 EXTERN(JHUFF_TBL *) jpeg_alloc_huff_table JPP((j_common_ptr cinfo));
01041
01042
01043 EXTERN(void) jpeg_start_compress JPP((j_compress_ptr cinfo,
01044 boolean write_all_tables));
01045 EXTERN(JDIMENSION) jpeg_write_scanlines JPP((j_compress_ptr cinfo,
01046 JSAMPARRAY scanlines,
01047 JDIMENSION num_lines));
01048 EXTERN(void) jpeg_finish_compress JPP((j_compress_ptr cinfo));
01049
01050
01051 EXTERN(JDIMENSION) jpeg_write_raw_data JPP((j_compress_ptr cinfo,
01052 JSAMPIMAGE data,
01053 JDIMENSION num_lines));
01054
01055
01056 EXTERN(void) jpeg_write_marker
01057 JPP((j_compress_ptr cinfo, int marker,
01058 const JOCTET * dataptr, unsigned int datalen));
01059
01060 EXTERN(void) jpeg_write_m_header
01061 JPP((j_compress_ptr cinfo, int marker, unsigned int datalen));
01062 EXTERN(void) jpeg_write_m_byte
01063 JPP((j_compress_ptr cinfo, int val));
01064
01065
01066 EXTERN(void) jpeg_write_tables JPP((j_compress_ptr cinfo));
01067
01068
01069 EXTERN(int) jpeg_read_header JPP((j_decompress_ptr cinfo,
01070 boolean require_image));
01071
01072 #define JPEG_SUSPENDED 0
01073 #define JPEG_HEADER_OK 1
01074 #define JPEG_HEADER_TABLES_ONLY 2
01075
01076
01077
01078
01079
01080
01081
01082 EXTERN(boolean) jpeg_start_decompress JPP((j_decompress_ptr cinfo));
01083 EXTERN(JDIMENSION) jpeg_read_scanlines JPP((j_decompress_ptr cinfo,
01084 JSAMPARRAY scanlines,
01085 JDIMENSION max_lines));
01086 EXTERN(boolean) jpeg_finish_decompress JPP((j_decompress_ptr cinfo));
01087
01088
01089 EXTERN(JDIMENSION) jpeg_read_raw_data JPP((j_decompress_ptr cinfo,
01090 JSAMPIMAGE data,
01091 JDIMENSION max_lines));
01092
01093
01094 EXTERN(boolean) jpeg_has_multiple_scans JPP((j_decompress_ptr cinfo));
01095 EXTERN(boolean) jpeg_start_output JPP((j_decompress_ptr cinfo,
01096 int scan_number));
01097 EXTERN(boolean) jpeg_finish_output JPP((j_decompress_ptr cinfo));
01098 EXTERN(boolean) jpeg_input_complete JPP((j_decompress_ptr cinfo));
01099 EXTERN(void) jpeg_new_colormap JPP((j_decompress_ptr cinfo));
01100 EXTERN(int) jpeg_consume_input JPP((j_decompress_ptr cinfo));
01101
01102
01103 #define JPEG_REACHED_SOS 1
01104 #define JPEG_REACHED_EOI 2
01105 #define JPEG_ROW_COMPLETED 3
01106 #define JPEG_SCAN_COMPLETED 4
01107
01108
01109 EXTERN(void) jpeg_calc_output_dimensions JPP((j_decompress_ptr cinfo));
01110
01111
01112 EXTERN(void) jpeg_save_markers
01113 JPP((j_decompress_ptr cinfo, int marker_code,
01114 unsigned int length_limit));
01115
01116
01117 EXTERN(void) jpeg_set_marker_processor
01118 JPP((j_decompress_ptr cinfo, int marker_code,
01119 jpeg_marker_parser_method routine));
01120
01121
01122 EXTERN(jvirt_barray_ptr *) jpeg_read_coefficients JPP((j_decompress_ptr cinfo));
01123 EXTERN(void) jpeg_write_coefficients JPP((j_compress_ptr cinfo,
01124 jvirt_barray_ptr * coef_arrays));
01125 EXTERN(void) jpeg_copy_critical_parameters JPP((j_decompress_ptr srcinfo,
01126 j_compress_ptr dstinfo));
01127
01128
01129
01130
01131
01132
01133
01134 EXTERN(void) jpeg_abort_compress JPP((j_compress_ptr cinfo));
01135 EXTERN(void) jpeg_abort_decompress JPP((j_decompress_ptr cinfo));
01136
01137
01138
01139
01140 EXTERN(void) jpeg_abort JPP((j_common_ptr cinfo));
01141 EXTERN(void) jpeg_destroy JPP((j_common_ptr cinfo));
01142
01143
01144 EXTERN(boolean) jpeg_resync_to_restart JPP((j_decompress_ptr cinfo,
01145 int desired));
01146
01147
01148
01149
01150
01151
01152 #define JPEG_RST0 0xD0
01153 #define JPEG_EOI 0xD9
01154 #define JPEG_APP0 0xE0
01155 #define JPEG_COM 0xFE
01156
01157
01158
01159
01160
01161
01162
01163 #ifdef INCOMPLETE_TYPES_BROKEN
01164 #ifndef JPEG_INTERNALS
01165 struct jvirt_sarray_control { long dummy; };
01166 struct jvirt_barray_control { long dummy; };
01167 struct jpeg_comp_master { long dummy; };
01168 struct jpeg_c_main_controller { long dummy; };
01169 struct jpeg_c_prep_controller { long dummy; };
01170 struct jpeg_c_coef_controller { long dummy; };
01171 struct jpeg_marker_writer { long dummy; };
01172 struct jpeg_color_converter { long dummy; };
01173 struct jpeg_downsampler { long dummy; };
01174 struct jpeg_forward_dct { long dummy; };
01175 struct jpeg_entropy_encoder { long dummy; };
01176 struct jpeg_decomp_master { long dummy; };
01177 struct jpeg_d_main_controller { long dummy; };
01178 struct jpeg_d_coef_controller { long dummy; };
01179 struct jpeg_d_post_controller { long dummy; };
01180 struct jpeg_input_controller { long dummy; };
01181 struct jpeg_marker_reader { long dummy; };
01182 struct jpeg_entropy_decoder { long dummy; };
01183 struct jpeg_inverse_dct { long dummy; };
01184 struct jpeg_upsampler { long dummy; };
01185 struct jpeg_color_deconverter { long dummy; };
01186 struct jpeg_color_quantizer { long dummy; };
01187 #endif
01188 #endif
01189
01190
01191
01192
01193
01194
01195
01196
01197
01198 #ifdef JPEG_INTERNALS
01199 #include "jpegint16.h"
01200 #include "jerror16.h"
01201 #endif
01202
01203 #endif