/* Representation of a spatial difference value. *Thisshouldbeasignedvalueofatleast16bits;intisusuallyOK.
*/
typedefint JDIFF;
typedef JDIFF FAR *JDIFFROW; /* pointer to one row of difference values */ typedef JDIFFROW *JDIFFARRAY; /* ptr to some rows (a 2-D diff array) */ typedef JDIFFARRAY *JDIFFIMAGE; /* a 3-D diff array: top index is color */
/* Declarations for both compression & decompression */
typedefenum { /* Operating modes for buffer controllers */
JBUF_PASS_THRU, /* Plain stripwise operation */ /* Remaining modes require a full-image buffer to have been created */
JBUF_SAVE_SOURCE, /* Run source subobject only, save output */
JBUF_CRANK_DEST, /* Run dest subobject only, using saved data */
JBUF_SAVE_AND_PASS /* Run both subobjects, save output */
} J_BUF_MODE;
/* Values of global_state field (jdapi.c has some dependencies on ordering!) */ #define CSTATE_START 100/* after create_compress */ #define CSTATE_SCANNING 101/* start_compress done, write_scanlines OK */ #define CSTATE_RAW_OK 102/* start_compress done, write_raw_data OK */ #define CSTATE_WRCOEFS 103/* jpeg_write_coefficients done */ #define DSTATE_START 200/* after create_decompress */ #define DSTATE_INHEADER 201/* reading header markers, no SOS yet */ #define DSTATE_READY 202/* found SOS, ready for start_decompress */ #define DSTATE_PRELOAD 203/* reading multiscan file in start_decompress*/ #define DSTATE_PRESCAN 204/* performing dummy pass for 2-pass quant */ #define DSTATE_SCANNING 205/* start_decompress done, read_scanlines OK */ #define DSTATE_RAW_OK 206/* start_decompress done, read_raw_data OK */ #define DSTATE_BUFIMAGE 207/* expecting jpeg_start_output */ #define DSTATE_BUFPOST 208/* looking for SOS/EOI in jpeg_finish_output */ #define DSTATE_RDCOEFS 209/* reading file in jpeg_read_coefficients */ #define DSTATE_STOPPING 210/* looking for EOI in jpeg_finish_decompress */
/* JLONG must hold at least signed 32-bit values. */ typedeflong JLONG;
/* State variables made visible to other modules */
boolean call_pass_startup; /* True if pass_startup must be called */
boolean is_last_pass; /* True during last pass */
boolean lossless; /* True if lossless mode is enabled */
};
/* Marker writing */ struct jpeg_marker_writer { void (*write_file_header) (j_compress_ptr cinfo); void (*write_frame_header) (j_compress_ptr cinfo); void (*write_scan_header) (j_compress_ptr cinfo); void (*write_file_trailer) (j_compress_ptr cinfo); void (*write_tables_only) (j_compress_ptr cinfo); /* These routines are exported to allow insertion of extra markers */ /* Probably only COM and APPn markers should be written this way */ void (*write_marker_header) (j_compress_ptr cinfo, int marker, unsignedint datalen); void (*write_marker_byte) (j_compress_ptr cinfo, int val);
};
/* State variables made visible to other modules */
boolean is_dummy_pass; /* True during 1st pass for 2-pass quant */
boolean lossless; /* True if decompressing a lossless image */
/* State variables made visible to other modules */
boolean has_multiple_scans; /* True if file has multiple scans */
boolean eoi_reached; /* True when EOI has been consumed */
};
/* Lossy mode: Coefficient buffer control *Losslessmode:Differencebuffercontrol
*/ struct jpeg_d_coef_controller { void (*start_input_pass) (j_decompress_ptr cinfo); int (*consume_data) (j_decompress_ptr cinfo); void (*start_output_pass) (j_decompress_ptr cinfo); int (*decompress_data) (j_decompress_ptr cinfo, JSAMPIMAGE output_buf); int (*decompress_data_12) (j_decompress_ptr cinfo, J12SAMPIMAGE output_buf); #ifdef D_LOSSLESS_SUPPORTED int (*decompress_data_16) (j_decompress_ptr cinfo, J16SAMPIMAGE output_buf); #endif
/* These variables keep track of the current location of the input side. */ /* cinfo->input_iMCU_row is also used for this. */
JDIMENSION MCU_ctr; /* counts MCUs processed in current row */ int MCU_vert_offset; /* counts MCU rows within iMCU row */ int MCU_rows_per_iMCU_row; /* number of such rows needed */
/* The output side's location is represented by cinfo->output_iMCU_row. */
/* Lossy mode */ /* Pointer to array of coefficient virtual arrays, or NULL if none */
jvirt_barray_ptr *coef_arrays;
};
/* Marker reading & parsing */ struct jpeg_marker_reader { void (*reset_marker_reader) (j_decompress_ptr cinfo); /* Read markers until SOS or EOI. *Returnssamecodesasaredefinedforjpeg_consume_input: *JPEG_SUSPENDED,JPEG_REACHED_SOS,orJPEG_REACHED_EOI.
*/ int (*read_markers) (j_decompress_ptr cinfo); /* Read a restart marker --- exported for use by entropy decoder only */
jpeg_marker_parser_method read_restart_marker;
/* State of marker reader --- nominally internal, but applications *supplyingCOMorAPPnhandlersmightliketoknowthestate.
*/
boolean saw_SOI; /* found SOI? */
boolean saw_SOF; /* found SOF? */ int next_restart_num; /* next restart number expected (0-7) */ unsignedint discarded_bytes; /* # of bytes skipped looking for a marker */
};
/* This is here to share code between baseline and progressive decoders; */ /* other modules probably should not use it */
boolean insufficient_data; /* set TRUE after emitting warning */
};
/* Lossy mode */ /* It is useful to allow each component to have a separate IDCT method. */
inverse_DCT_method_ptr inverse_DCT[MAX_COMPONENTS];
inverse_DCT_12_method_ptr inverse_DCT_12[MAX_COMPONENTS];
};
/* We assume that right shift corresponds to signed division by 2 with *roundingtowardsminusinfinity.Thisiscorrectfortypical"arithmetic *shift"instructionsthatshiftincopiesofthesignbit.Butsome *Ccompilersimplement>>withanunsignedshift.Forthesemachinesyou *mustdefineRIGHT_SHIFT_IS_UNSIGNED. *RIGHT_SHIFTprovidesapropersignedrightshiftofaJLONGquantity. *Itisonlyappliedwithconstantshiftcounts.SHIFT_TEMPSmustbe *includedinthevariablesofanyroutineusingRIGHT_SHIFT.
*/
/* Utility routines in jutils.c */ EXTERN(long) jdiv_round_up(long a, long b); EXTERN(long) jround_up(long a, long b); EXTERN(void) jcopy_sample_rows(JSAMPARRAY input_array, int source_row,
JSAMPARRAY output_array, int dest_row, int num_rows, JDIMENSION num_cols); EXTERN(void) j12copy_sample_rows(J12SAMPARRAY input_array, int source_row,
J12SAMPARRAY output_array, int dest_row, int num_rows, JDIMENSION num_cols); #ifdefined(C_LOSSLESS_SUPPORTED) || defined(D_LOSSLESS_SUPPORTED) EXTERN(void) j16copy_sample_rows(J16SAMPARRAY input_array, int source_row,
J16SAMPARRAY output_array, int dest_row, int num_rows, JDIMENSION num_cols); #endif EXTERN(void) jcopy_block_row(JBLOCKROW input_row, JBLOCKROW output_row,
JDIMENSION num_blocks); EXTERN(void) jzero_far(void *target, size_t bytestozero); /* Constant tables in jutils.c */ #if0/* This table is not actually needed in v6a */ externconstint jpeg_zigzag_order[]; /* natural coef order to zigzag order */ #endif externconstint jpeg_natural_order[]; /* zigzag coef order to natural order */
/* Arithmetic coding probability estimation tables in jaricom.c */ externconst JLONG jpeg_aritab[];
Messung V0.5 in Prozent
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.12Angebot
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.