Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(129)

Side by Side Diff: third_party/libjpeg_turbo/jcparam.c

Issue 7554002: Updates libjpeg-turbo to 1.1.90 (r677) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/
Patch Set: '' Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « third_party/libjpeg_turbo/jconfig.h ('k') | third_party/libjpeg_turbo/jctrans.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * jcparam.c 2 * jcparam.c
3 * 3 *
4 * Copyright (C) 1991-1998, Thomas G. Lane. 4 * Copyright (C) 1991-1998, Thomas G. Lane.
5 * Copyright (C) 2009, D. R. Commander. 5 * Modified 2003-2008 by Guido Vollbeding.
6 * Copyright (C) 2009-2010, D. R. Commander.
6 * This file is part of the Independent JPEG Group's software. 7 * This file is part of the Independent JPEG Group's software.
7 * For conditions of distribution and use, see the accompanying README file. 8 * For conditions of distribution and use, see the accompanying README file.
8 * 9 *
9 * This file contains optional default-setting code for the JPEG compressor. 10 * This file contains optional default-setting code for the JPEG compressor.
10 * Applications do not have to use this file, but those that don't use it 11 * Applications do not have to use this file, but those that don't use it
11 * must know a lot more about the innards of the JPEG code. 12 * must know a lot more about the innards of the JPEG code.
12 */ 13 */
13 14
14 #define JPEG_INTERNALS 15 #define JPEG_INTERNALS
15 #include "jinclude.h" 16 #include "jinclude.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 if (force_baseline && temp > 255L) 55 if (force_baseline && temp > 255L)
55 temp = 255L; /* limit to baseline range if requested */ 56 temp = 255L; /* limit to baseline range if requested */
56 (*qtblptr)->quantval[i] = (UINT16) temp; 57 (*qtblptr)->quantval[i] = (UINT16) temp;
57 } 58 }
58 59
59 /* Initialize sent_table FALSE so table will be written to JPEG file. */ 60 /* Initialize sent_table FALSE so table will be written to JPEG file. */
60 (*qtblptr)->sent_table = FALSE; 61 (*qtblptr)->sent_table = FALSE;
61 } 62 }
62 63
63 64
65 /* These are the sample quantization tables given in JPEG spec section K.1.
66 * The spec says that the values given produce "good" quality, and
67 * when divided by 2, "very good" quality.
68 */
69 static const unsigned int std_luminance_quant_tbl[DCTSIZE2] = {
70 16, 11, 10, 16, 24, 40, 51, 61,
71 12, 12, 14, 19, 26, 58, 60, 55,
72 14, 13, 16, 24, 40, 57, 69, 56,
73 14, 17, 22, 29, 51, 87, 80, 62,
74 18, 22, 37, 56, 68, 109, 103, 77,
75 24, 35, 55, 64, 81, 104, 113, 92,
76 49, 64, 78, 87, 103, 121, 120, 101,
77 72, 92, 95, 98, 112, 100, 103, 99
78 };
79 static const unsigned int std_chrominance_quant_tbl[DCTSIZE2] = {
80 17, 18, 24, 47, 99, 99, 99, 99,
81 18, 21, 26, 66, 99, 99, 99, 99,
82 24, 26, 56, 99, 99, 99, 99, 99,
83 47, 66, 99, 99, 99, 99, 99, 99,
84 99, 99, 99, 99, 99, 99, 99, 99,
85 99, 99, 99, 99, 99, 99, 99, 99,
86 99, 99, 99, 99, 99, 99, 99, 99,
87 99, 99, 99, 99, 99, 99, 99, 99
88 };
89
90
91 #if JPEG_LIB_VERSION >= 70
92 GLOBAL(void)
93 jpeg_default_qtables (j_compress_ptr cinfo, boolean force_baseline)
94 /* Set or change the 'quality' (quantization) setting, using default tables
95 * and straight percentage-scaling quality scales.
96 * This entry point allows different scalings for luminance and chrominance.
97 */
98 {
99 /* Set up two quantization tables using the specified scaling */
100 jpeg_add_quant_table(cinfo, 0, std_luminance_quant_tbl,
101 cinfo->q_scale_factor[0], force_baseline);
102 jpeg_add_quant_table(cinfo, 1, std_chrominance_quant_tbl,
103 cinfo->q_scale_factor[1], force_baseline);
104 }
105 #endif
106
107
64 GLOBAL(void) 108 GLOBAL(void)
65 jpeg_set_linear_quality (j_compress_ptr cinfo, int scale_factor, 109 jpeg_set_linear_quality (j_compress_ptr cinfo, int scale_factor,
66 boolean force_baseline) 110 boolean force_baseline)
67 /* Set or change the 'quality' (quantization) setting, using default tables 111 /* Set or change the 'quality' (quantization) setting, using default tables
68 * and a straight percentage-scaling quality scale. In most cases it's better 112 * and a straight percentage-scaling quality scale. In most cases it's better
69 * to use jpeg_set_quality (below); this entry point is provided for 113 * to use jpeg_set_quality (below); this entry point is provided for
70 * applications that insist on a linear percentage scaling. 114 * applications that insist on a linear percentage scaling.
71 */ 115 */
72 { 116 {
73 /* These are the sample quantization tables given in JPEG spec section K.1.
74 * The spec says that the values given produce "good" quality, and
75 * when divided by 2, "very good" quality.
76 */
77 static const unsigned int std_luminance_quant_tbl[DCTSIZE2] = {
78 16, 11, 10, 16, 24, 40, 51, 61,
79 12, 12, 14, 19, 26, 58, 60, 55,
80 14, 13, 16, 24, 40, 57, 69, 56,
81 14, 17, 22, 29, 51, 87, 80, 62,
82 18, 22, 37, 56, 68, 109, 103, 77,
83 24, 35, 55, 64, 81, 104, 113, 92,
84 49, 64, 78, 87, 103, 121, 120, 101,
85 72, 92, 95, 98, 112, 100, 103, 99
86 };
87 static const unsigned int std_chrominance_quant_tbl[DCTSIZE2] = {
88 17, 18, 24, 47, 99, 99, 99, 99,
89 18, 21, 26, 66, 99, 99, 99, 99,
90 24, 26, 56, 99, 99, 99, 99, 99,
91 47, 66, 99, 99, 99, 99, 99, 99,
92 99, 99, 99, 99, 99, 99, 99, 99,
93 99, 99, 99, 99, 99, 99, 99, 99,
94 99, 99, 99, 99, 99, 99, 99, 99,
95 99, 99, 99, 99, 99, 99, 99, 99
96 };
97
98 /* Set up two quantization tables using the specified scaling */ 117 /* Set up two quantization tables using the specified scaling */
99 jpeg_add_quant_table(cinfo, 0, std_luminance_quant_tbl, 118 jpeg_add_quant_table(cinfo, 0, std_luminance_quant_tbl,
100 scale_factor, force_baseline); 119 scale_factor, force_baseline);
101 jpeg_add_quant_table(cinfo, 1, std_chrominance_quant_tbl, 120 jpeg_add_quant_table(cinfo, 1, std_chrominance_quant_tbl,
102 scale_factor, force_baseline); 121 scale_factor, force_baseline);
103 } 122 }
104 123
105 124
106 GLOBAL(int) 125 GLOBAL(int)
107 jpeg_quality_scaling (int quality) 126 jpeg_quality_scaling (int quality)
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 * Array is made permanent in case application wants to compress 297 * Array is made permanent in case application wants to compress
279 * multiple images at same param settings. 298 * multiple images at same param settings.
280 */ 299 */
281 if (cinfo->comp_info == NULL) 300 if (cinfo->comp_info == NULL)
282 cinfo->comp_info = (jpeg_component_info *) 301 cinfo->comp_info = (jpeg_component_info *)
283 (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT, 302 (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT,
284 MAX_COMPONENTS * SIZEOF(jpeg_component_info)); 303 MAX_COMPONENTS * SIZEOF(jpeg_component_info));
285 304
286 /* Initialize everything not dependent on the color space */ 305 /* Initialize everything not dependent on the color space */
287 306
307 #if JPEG_LIB_VERSION >= 70
308 cinfo->scale_num = 1; /* 1:1 scaling */
309 cinfo->scale_denom = 1;
310 #endif
288 cinfo->data_precision = BITS_IN_JSAMPLE; 311 cinfo->data_precision = BITS_IN_JSAMPLE;
289 /* Set up two quantization tables using default quality of 75 */ 312 /* Set up two quantization tables using default quality of 75 */
290 jpeg_set_quality(cinfo, 75, TRUE); 313 jpeg_set_quality(cinfo, 75, TRUE);
291 /* Set up two Huffman tables */ 314 /* Set up two Huffman tables */
292 std_huff_tables(cinfo); 315 std_huff_tables(cinfo);
293 316
294 /* Initialize default arithmetic coding conditioning */ 317 /* Initialize default arithmetic coding conditioning */
295 for (i = 0; i < NUM_ARITH_TBLS; i++) { 318 for (i = 0; i < NUM_ARITH_TBLS; i++) {
296 cinfo->arith_dc_L[i] = 0; 319 cinfo->arith_dc_L[i] = 0;
297 cinfo->arith_dc_U[i] = 1; 320 cinfo->arith_dc_U[i] = 1;
(...skipping 16 matching lines...) Expand all
314 * If the precision is higher, force optimization on so that usable 337 * If the precision is higher, force optimization on so that usable
315 * tables will be computed. This test can be removed if default tables 338 * tables will be computed. This test can be removed if default tables
316 * are supplied that are valid for the desired precision. 339 * are supplied that are valid for the desired precision.
317 */ 340 */
318 if (cinfo->data_precision > 8) 341 if (cinfo->data_precision > 8)
319 cinfo->optimize_coding = TRUE; 342 cinfo->optimize_coding = TRUE;
320 343
321 /* By default, use the simpler non-cosited sampling alignment */ 344 /* By default, use the simpler non-cosited sampling alignment */
322 cinfo->CCIR601_sampling = FALSE; 345 cinfo->CCIR601_sampling = FALSE;
323 346
347 #if JPEG_LIB_VERSION >= 70
348 /* By default, apply fancy downsampling */
349 cinfo->do_fancy_downsampling = TRUE;
350 #endif
351
324 /* No input smoothing */ 352 /* No input smoothing */
325 cinfo->smoothing_factor = 0; 353 cinfo->smoothing_factor = 0;
326 354
327 /* DCT algorithm preference */ 355 /* DCT algorithm preference */
328 cinfo->dct_method = JDCT_DEFAULT; 356 cinfo->dct_method = JDCT_DEFAULT;
329 357
330 /* No restart markers */ 358 /* No restart markers */
331 cinfo->restart_interval = 0; 359 cinfo->restart_interval = 0;
332 cinfo->restart_in_rows = 0; 360 cinfo->restart_in_rows = 0;
333 361
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
608 scanptr = fill_scans(scanptr, ncomps, 6, 63, 0, 2); 636 scanptr = fill_scans(scanptr, ncomps, 6, 63, 0, 2);
609 /* Successive approximation second pass */ 637 /* Successive approximation second pass */
610 scanptr = fill_scans(scanptr, ncomps, 1, 63, 2, 1); 638 scanptr = fill_scans(scanptr, ncomps, 1, 63, 2, 1);
611 /* Successive approximation final pass */ 639 /* Successive approximation final pass */
612 scanptr = fill_dc_scans(scanptr, ncomps, 1, 0); 640 scanptr = fill_dc_scans(scanptr, ncomps, 1, 0);
613 scanptr = fill_scans(scanptr, ncomps, 1, 63, 1, 0); 641 scanptr = fill_scans(scanptr, ncomps, 1, 63, 1, 0);
614 } 642 }
615 } 643 }
616 644
617 #endif /* C_PROGRESSIVE_SUPPORTED */ 645 #endif /* C_PROGRESSIVE_SUPPORTED */
OLDNEW
« no previous file with comments | « third_party/libjpeg_turbo/jconfig.h ('k') | third_party/libjpeg_turbo/jctrans.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698