dcmjpeg/libijg8/jlossy8.h

00001 /*
00002  * jlossy.h
00003  *
00004  * Copyright (C) 1998, Thomas G. Lane.
00005  * This file is part of the Independent JPEG Group's software.
00006  * For conditions of distribution and use, see the accompanying README file.
00007  *
00008  * This include file contains common declarations for the lossy (DCT-based)
00009  * JPEG codec modules.
00010  */
00011 
00012 #ifndef JLOSSY_H
00013 #define JLOSSY_H
00014 
00015 
00016 /* Lossy-specific compression codec (compressor proper) */
00017 typedef struct {
00018   struct jpeg_c_codec pub; /* public fields */
00019 
00020 
00021   /* Coefficient buffer control */
00022   JMETHOD(void, coef_start_pass, (j_compress_ptr cinfo, J_BUF_MODE pass_mode));
00023   /*  JMETHOD(boolean, coef_compress_data, (j_compress_ptr cinfo,
00024                     JSAMPIMAGE input_buf));*/
00025 
00026   /* Pointer to data which is private to coef module */
00027   void *coef_private;
00028 
00029 
00030   /* Forward DCT (also controls coefficient quantization) */
00031   JMETHOD(void, fdct_start_pass, (j_compress_ptr cinfo));
00032   /* perhaps this should be an array??? */
00033   JMETHOD(void, fdct_forward_DCT, (j_compress_ptr cinfo,
00034                    jpeg_component_info * compptr,
00035                    JSAMPARRAY sample_data, JBLOCKROW coef_blocks,
00036                    JDIMENSION start_row, JDIMENSION start_col,
00037                    JDIMENSION num_blocks));
00038 
00039   /* Pointer to data which is private to fdct module */
00040   void *fdct_private;
00041 
00042 
00043   /* Entropy encoding */
00044   JMETHOD(boolean, entropy_encode_mcu, (j_compress_ptr cinfo,
00045                     JBLOCKROW *MCU_data));
00046 
00047   /* Pointer to data which is private to entropy module */
00048   void *entropy_private;
00049 
00050 } jpeg_lossy_c_codec;
00051 
00052 typedef jpeg_lossy_c_codec * j_lossy_c_ptr;
00053 
00054 
00055 
00056 typedef JMETHOD(void, inverse_DCT_method_ptr,
00057         (j_decompress_ptr cinfo, jpeg_component_info * compptr,
00058          JCOEFPTR coef_block,
00059          JSAMPARRAY output_buf, JDIMENSION output_col));
00060 
00061 /* Lossy-specific decompression codec (decompressor proper) */
00062 typedef struct {
00063   struct jpeg_d_codec pub; /* public fields */
00064 
00065 
00066   /* Coefficient buffer control */
00067   JMETHOD(void, coef_start_input_pass, (j_decompress_ptr cinfo));
00068   JMETHOD(void, coef_start_output_pass, (j_decompress_ptr cinfo));
00069 
00070   /* Pointer to array of coefficient virtual arrays, or NULL if none */
00071   jvirt_barray_ptr *coef_arrays;
00072 
00073   /* Pointer to data which is private to coef module */
00074   void *coef_private;
00075 
00076 
00077   /* Entropy decoding */
00078   JMETHOD(void, entropy_start_pass, (j_decompress_ptr cinfo));
00079   JMETHOD(boolean, entropy_decode_mcu, (j_decompress_ptr cinfo,
00080                     JBLOCKROW *MCU_data));
00081 
00082   /* This is here to share code between baseline and progressive decoders; */
00083   /* other modules probably should not use it */
00084   boolean entropy_insufficient_data;    /* set TRUE after emitting warning */
00085 
00086   /* Pointer to data which is private to entropy module */
00087   void *entropy_private;
00088 
00089 
00090   /* Inverse DCT (also performs dequantization) */
00091   JMETHOD(void, idct_start_pass, (j_decompress_ptr cinfo));
00092 
00093   /* It is useful to allow each component to have a separate IDCT method. */
00094   inverse_DCT_method_ptr inverse_DCT[MAX_COMPONENTS];
00095 
00096   /* Pointer to data which is private to idct module */
00097   void *idct_private;
00098 
00099 } jpeg_lossy_d_codec;
00100 
00101 typedef jpeg_lossy_d_codec * j_lossy_d_ptr;
00102 
00103 
00104 /* Compression module initialization routines */
00105 EXTERN(void) jinit_lossy_c_codec JPP((j_compress_ptr cinfo));
00106 EXTERN(void) jinit_c_coef_controller JPP((j_compress_ptr cinfo,
00107                       boolean need_full_buffer));
00108 EXTERN(void) jinit_forward_dct JPP((j_compress_ptr cinfo));
00109 EXTERN(void) jinit_shuff_encoder JPP((j_compress_ptr cinfo));
00110 EXTERN(void) jinit_phuff_encoder JPP((j_compress_ptr cinfo));
00111 
00112 /* Decompression module initialization routines */
00113 EXTERN(void) jinit_lossy_d_codec JPP((j_decompress_ptr cinfo));
00114 EXTERN(void) jinit_d_coef_controller JPP((j_decompress_ptr cinfo,
00115                       boolean need_full_buffer));
00116 EXTERN(void) jinit_shuff_decoder JPP((j_decompress_ptr cinfo));
00117 EXTERN(void) jinit_phuff_decoder JPP((j_decompress_ptr cinfo));
00118 EXTERN(void) jinit_inverse_dct JPP((j_decompress_ptr cinfo));
00119 
00120 #endif /* JLOSSY_H */


Generated on 6 Jan 2011 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.5.1