#include "jinclude.h"#include "jpeglib.h"Go to the source code of this file.
Classes | |
| struct | my_cquantizer |
| struct | box |
Defines | |
| #define | JPEG_INTERNALS |
| #define | R_SCALE 2 |
| #define | G_SCALE 3 |
| #define | B_SCALE 1 |
| #define | C0_SCALE R_SCALE |
| #define | C1_SCALE G_SCALE |
| #define | C2_SCALE B_SCALE |
| #define | MAXNUMCOLORS (MAXJSAMPLE+1) |
| #define | HIST_C0_BITS 5 |
| #define | HIST_C1_BITS 6 |
| #define | HIST_C2_BITS 5 |
| #define | HIST_C0_ELEMS (1<<HIST_C0_BITS) |
| #define | HIST_C1_ELEMS (1<<HIST_C1_BITS) |
| #define | HIST_C2_ELEMS (1<<HIST_C2_BITS) |
| #define | C0_SHIFT (BITS_IN_JSAMPLE-HIST_C0_BITS) |
| #define | C1_SHIFT (BITS_IN_JSAMPLE-HIST_C1_BITS) |
| #define | C2_SHIFT (BITS_IN_JSAMPLE-HIST_C2_BITS) |
| #define | BOX_C0_LOG (HIST_C0_BITS-3) |
| #define | BOX_C1_LOG (HIST_C1_BITS-3) |
| #define | BOX_C2_LOG (HIST_C2_BITS-3) |
| #define | BOX_C0_ELEMS (1<<BOX_C0_LOG) |
| #define | BOX_C1_ELEMS (1<<BOX_C1_LOG) |
| #define | BOX_C2_ELEMS (1<<BOX_C2_LOG) |
| #define | BOX_C0_SHIFT (C0_SHIFT + BOX_C0_LOG) |
| #define | BOX_C1_SHIFT (C1_SHIFT + BOX_C1_LOG) |
| #define | BOX_C2_SHIFT (C2_SHIFT + BOX_C2_LOG) |
| #define | STEP_C0 ((1 << C0_SHIFT) * C0_SCALE) |
| #define | STEP_C1 ((1 << C1_SHIFT) * C1_SCALE) |
| #define | STEP_C2 ((1 << C2_SHIFT) * C2_SCALE) |
| #define | STEPSIZE ((MAXJSAMPLE+1)/16) |
Typedefs | |
| typedef UINT16 | histcell |
| typedef histcell FAR * | histptr |
| typedef histcell | hist1d [HIST_C2_ELEMS] |
| typedef hist1d FAR * | hist2d |
| typedef hist2d * | hist3d |
| typedef INT16 | FSERROR |
| typedef int | LOCFSERROR |
| typedef FSERROR FAR * | FSERRPTR |
| typedef my_cquantizer * | my_cquantize_ptr |
| typedef box * | boxptr |
Functions | |
| prescan_quantize (j_decompress_ptr cinfo, JSAMPARRAY input_buf, JSAMPARRAY output_buf, int num_rows) | |
| find_biggest_color_pop (boxptr boxlist, int numboxes) | |
| find_biggest_volume (boxptr boxlist, int numboxes) | |
| update_box (j_decompress_ptr cinfo, boxptr boxp) | |
| median_cut (j_decompress_ptr cinfo, boxptr boxlist, int numboxes, int desired_colors) | |
| compute_color (j_decompress_ptr cinfo, boxptr boxp, int icolor) | |
| select_colors (j_decompress_ptr cinfo, int desired_colors) | |
| find_nearby_colors (j_decompress_ptr cinfo, int minc0, int minc1, int minc2, JSAMPLE colorlist[]) | |
| find_best_colors (j_decompress_ptr cinfo, int minc0, int minc1, int minc2, int numcolors, JSAMPLE colorlist[], JSAMPLE bestcolor[]) | |
| fill_inverse_cmap (j_decompress_ptr cinfo, int c0, int c1, int c2) | |
| pass2_no_dither (j_decompress_ptr cinfo, JSAMPARRAY input_buf, JSAMPARRAY output_buf, int num_rows) | |
| pass2_fs_dither (j_decompress_ptr cinfo, JSAMPARRAY input_buf, JSAMPARRAY output_buf, int num_rows) | |
| init_error_limit (j_decompress_ptr cinfo) | |
| finish_pass1 (j_decompress_ptr cinfo) | |
| finish_pass2 (j_decompress_ptr cinfo) | |
| start_pass_2_quant (j_decompress_ptr cinfo, boolean is_pre_scan) | |
| new_color_map_2_quant (j_decompress_ptr cinfo) | |
| jinit_2pass_quantizer (j_decompress_ptr cinfo) | |
| #define BOX_C0_ELEMS (1<<BOX_C0_LOG) |
Definition at line 628 of file jquant2.c.
Referenced by fill_inverse_cmap(), and find_best_colors().
| #define BOX_C0_LOG (HIST_C0_BITS-3) |
| #define BOX_C0_SHIFT (C0_SHIFT + BOX_C0_LOG) |
Definition at line 632 of file jquant2.c.
Referenced by fill_inverse_cmap(), and find_nearby_colors().
| #define BOX_C1_ELEMS (1<<BOX_C1_LOG) |
Definition at line 629 of file jquant2.c.
Referenced by fill_inverse_cmap(), and find_best_colors().
| #define BOX_C1_LOG (HIST_C1_BITS-3) |
| #define BOX_C1_SHIFT (C1_SHIFT + BOX_C1_LOG) |
| #define BOX_C2_ELEMS (1<<BOX_C2_LOG) |
Definition at line 630 of file jquant2.c.
Referenced by fill_inverse_cmap(), and find_best_colors().
| #define BOX_C2_LOG (HIST_C2_BITS-3) |
| #define BOX_C2_SHIFT (C2_SHIFT + BOX_C2_LOG) |
| #define C0_SCALE R_SCALE |
Definition at line 85 of file jquant2.c.
Referenced by find_best_colors(), find_nearby_colors(), median_cut(), and update_box().
| #define C0_SHIFT (BITS_IN_JSAMPLE-HIST_C0_BITS) |
Definition at line 142 of file jquant2.c.
Referenced by fill_inverse_cmap(), find_nearby_colors(), median_cut(), pass2_fs_dither(), pass2_no_dither(), prescan_quantize(), select_colors(), and update_box().
| #define C1_SCALE G_SCALE |
Definition at line 91 of file jquant2.c.
Referenced by find_best_colors(), find_nearby_colors(), median_cut(), and update_box().
| #define C1_SHIFT (BITS_IN_JSAMPLE-HIST_C1_BITS) |
Definition at line 143 of file jquant2.c.
Referenced by find_nearby_colors(), median_cut(), pass2_fs_dither(), pass2_no_dither(), prescan_quantize(), select_colors(), and update_box().
| #define C2_SCALE B_SCALE |
Definition at line 97 of file jquant2.c.
Referenced by find_best_colors(), find_nearby_colors(), median_cut(), and update_box().
| #define C2_SHIFT (BITS_IN_JSAMPLE-HIST_C2_BITS) |
Definition at line 144 of file jquant2.c.
Referenced by find_nearby_colors(), median_cut(), pass2_fs_dither(), pass2_no_dither(), prescan_quantize(), select_colors(), and update_box().
| #define HIST_C0_ELEMS (1<<HIST_C0_BITS) |
Definition at line 137 of file jquant2.c.
Referenced by jinit_2pass_quantizer(), and start_pass_2_quant().
| #define HIST_C1_ELEMS (1<<HIST_C1_BITS) |
Definition at line 138 of file jquant2.c.
Referenced by jinit_2pass_quantizer(), and start_pass_2_quant().
| #define HIST_C2_ELEMS (1<<HIST_C2_BITS) |
Definition at line 139 of file jquant2.c.
Referenced by jinit_2pass_quantizer(), start_pass_2_quant(), and update_box().
| #define MAXNUMCOLORS (MAXJSAMPLE+1) |
Definition at line 127 of file jquant2.c.
Referenced by fill_inverse_cmap(), find_nearby_colors(), jinit_2pass_quantizer(), and start_pass_2_quant().
| #define STEP_C0 ((1 << C0_SHIFT) * C0_SCALE) |
Referenced by find_best_colors().
| #define STEP_C1 ((1 << C1_SHIFT) * C1_SCALE) |
Referenced by find_best_colors().
| #define STEP_C2 ((1 << C2_SHIFT) * C2_SCALE) |
Referenced by find_best_colors().
| #define STEPSIZE ((MAXJSAMPLE+1)/16) |
Referenced by init_error_limit().
| typedef int LOCFSERROR |
| typedef my_cquantizer* my_cquantize_ptr |
| compute_color | ( | j_decompress_ptr | cinfo, | |
| boxptr | boxp, | |||
| int | icolor | |||
| ) |
Definition at line 499 of file jquant2.c.
References c1, for(), my_cquantizer::histogram, histogram, and total.
Referenced by select_colors().
| fill_inverse_cmap | ( | j_decompress_ptr | cinfo, | |
| int | c0, | |||
| int | c1, | |||
| int | c2 | |||
| ) |
Definition at line 855 of file jquant2.c.
References BOX_C0_ELEMS, BOX_C0_LOG, BOX_C0_SHIFT, BOX_C1_ELEMS, BOX_C1_LOG, BOX_C2_ELEMS, BOX_C2_LOG, C0_SHIFT, find_best_colors(), find_nearby_colors(), GETJSAMPLE, my_cquantizer::histogram, histogram, and MAXNUMCOLORS.
Referenced by pass2_fs_dither(), and pass2_no_dither().
| find_best_colors | ( | j_decompress_ptr | cinfo, | |
| int | minc0, | |||
| int | minc1, | |||
| int | minc2, | |||
| int | numcolors, | |||
| JSAMPLE | colorlist[], | |||
| JSAMPLE | bestcolor[] | |||
| ) |
Definition at line 775 of file jquant2.c.
References BOX_C0_ELEMS, BOX_C1_ELEMS, BOX_C2_ELEMS, C0_SCALE, C1_SCALE, C2_SCALE, GETJSAMPLE, i, STEP_C0, STEP_C1, and STEP_C2.
Referenced by fill_inverse_cmap().
| find_biggest_color_pop | ( | boxptr | boxlist, | |
| int | numboxes | |||
| ) |
Definition at line 273 of file jquant2.c.
References box::colorcount, i, NULL, and box::volume.
Referenced by median_cut().
| find_biggest_volume | ( | boxptr | boxlist, | |
| int | numboxes | |||
| ) |
Definition at line 293 of file jquant2.c.
References i, NULL, and box::volume.
Referenced by median_cut().
| find_nearby_colors | ( | j_decompress_ptr | cinfo, | |
| int | minc0, | |||
| int | minc1, | |||
| int | minc2, | |||
| JSAMPLE | colorlist[] | |||
| ) |
Definition at line 646 of file jquant2.c.
References BOX_C0_SHIFT, BOX_C1_SHIFT, BOX_C2_SHIFT, C0_SCALE, C0_SHIFT, C1_SCALE, C1_SHIFT, C2_SCALE, C2_SHIFT, GETJSAMPLE, i, if(), RooFitShortHand::L(), MAXNUMCOLORS, and x.
Referenced by fill_inverse_cmap().
| finish_pass1 | ( | j_decompress_ptr | cinfo | ) |
Definition at line 1143 of file jquant2.c.
References my_cquantizer::desired, my_cquantizer::needs_zeroed, select_colors(), my_cquantizer::sv_colormap, and TRUE.
Referenced by start_pass_2_quant().
| finish_pass2 | ( | j_decompress_ptr | cinfo | ) |
| init_error_limit | ( | j_decompress_ptr | cinfo | ) |
Definition at line 1108 of file jquant2.c.
References my_cquantizer::error_limiter, JPOOL_IMAGE, MAXJSAMPLE, out, SIZEOF, and STEPSIZE.
Referenced by start_pass_2_quant().
| jinit_2pass_quantizer | ( | j_decompress_ptr | cinfo | ) |
Definition at line 1244 of file jquant2.c.
References my_cquantizer::desired, desired, ERREXIT, ERREXIT1, my_cquantizer::error_limiter, my_cquantizer::fserrors, HIST_C0_ELEMS, HIST_C1_ELEMS, HIST_C2_ELEMS, my_cquantizer::histogram, i, if(), JPOOL_IMAGE, MAXNUMCOLORS, my_cquantizer::needs_zeroed, new_color_map_2_quant(), NULL, my_cquantizer::pub, SIZEOF, start_pass_2_quant(), my_cquantizer::sv_colormap, and TRUE.
Referenced by master_selection().
| median_cut | ( | j_decompress_ptr | cinfo, | |
| boxptr | boxlist, | |||
| int | numboxes, | |||
| int | desired_colors | |||
| ) |
Definition at line 424 of file jquant2.c.
References C0_SCALE, C0_SHIFT, box::c0max, box::c0min, c1, C1_SCALE, C1_SHIFT, box::c1max, box::c1min, C2_SCALE, C2_SHIFT, box::c2max, box::c2min, find_biggest_color_pop(), find_biggest_volume(), n, NULL, and update_box().
Referenced by select_colors().
| new_color_map_2_quant | ( | j_decompress_ptr | cinfo | ) |
Definition at line 1230 of file jquant2.c.
References my_cquantizer::needs_zeroed, and TRUE.
Referenced by jinit_2pass_quantizer().
| pass2_fs_dither | ( | j_decompress_ptr | cinfo, | |
| JSAMPARRAY | input_buf, | |||
| JSAMPARRAY | output_buf, | |||
| int | num_rows | |||
| ) |
Definition at line 949 of file jquant2.c.
References C0_SHIFT, C1_SHIFT, C2_SHIFT, dir(), my_cquantizer::error_limiter, FALSE, fill_inverse_cmap(), for(), my_cquantizer::fserrors, GETJSAMPLE, my_cquantizer::histogram, histogram, my_cquantizer::on_odd_row, RIGHT_SHIFT, row, SHIFT_TEMPS, TRUE, and width.
Referenced by start_pass_2_quant().
| pass2_no_dither | ( | j_decompress_ptr | cinfo, | |
| JSAMPARRAY | input_buf, | |||
| JSAMPARRAY | output_buf, | |||
| int | num_rows | |||
| ) |
Definition at line 915 of file jquant2.c.
References C0_SHIFT, c1, C1_SHIFT, C2_SHIFT, fill_inverse_cmap(), for(), GETJSAMPLE, my_cquantizer::histogram, histogram, row, and width.
Referenced by start_pass_2_quant().
| prescan_quantize | ( | j_decompress_ptr | cinfo, | |
| JSAMPARRAY | input_buf, | |||
| JSAMPARRAY | output_buf, | |||
| int | num_rows | |||
| ) |
Definition at line 224 of file jquant2.c.
References C0_SHIFT, C1_SHIFT, C2_SHIFT, for(), GETJSAMPLE, my_cquantizer::histogram, histogram, ptr, row, and width.
Referenced by start_pass_2_quant().
| select_colors | ( | j_decompress_ptr | cinfo, | |
| int | desired_colors | |||
| ) |
Definition at line 539 of file jquant2.c.
References C0_SHIFT, box::c0max, box::c0min, C1_SHIFT, box::c1max, box::c1min, C2_SHIFT, box::c2max, box::c2min, compute_color(), i, JPOOL_IMAGE, MAXJSAMPLE, median_cut(), SIZEOF, TRACEMS1, and update_box().
Referenced by finish_pass1().
| start_pass_2_quant | ( | j_decompress_ptr | cinfo, | |
| boolean | is_pre_scan | |||
| ) |
Definition at line 1167 of file jquant2.c.
References arraysize, ERREXIT1, my_cquantizer::error_limiter, FALSE, FAR, finish_pass1(), finish_pass2(), my_cquantizer::fserrors, HIST_C0_ELEMS, HIST_C1_ELEMS, HIST_C2_ELEMS, my_cquantizer::histogram, histogram, i, if(), init_error_limit(), JDITHER_FS, JDITHER_NONE, JPOOL_IMAGE, jzero_far(), MAXNUMCOLORS, my_cquantizer::needs_zeroed, NULL, my_cquantizer::on_odd_row, pass2_fs_dither(), pass2_no_dither(), prescan_quantize(), my_cquantizer::pub, size_t, SIZEOF, and TRUE.
Referenced by jinit_2pass_quantizer().
| update_box | ( | j_decompress_ptr | cinfo, | |
| boxptr | boxp | |||
| ) |
Definition at line 313 of file jquant2.c.
References C0_SCALE, C0_SHIFT, c1, C1_SCALE, C1_SHIFT, C2_SCALE, C2_SHIFT, HIST_C2_ELEMS, my_cquantizer::histogram, histogram, and if().
Referenced by median_cut(), and select_colors().
1.5.1