#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().