OLD | NEW |
1 /* | 1 /* |
2 * jdmerge.c | 2 * jdmerge.c |
3 * | 3 * |
4 * Copyright (C) 1994-1996, Thomas G. Lane. | 4 * Copyright (C) 1994-1996, Thomas G. Lane. |
5 * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB | 5 * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB |
6 * Copyright (C) 2009, 2011, D. R. Commander. | 6 * Copyright (C) 2009, 2011, D. R. Commander. |
7 * This file is part of the Independent JPEG Group's software. | 7 * This file is part of the Independent JPEG Group's software. |
8 * For conditions of distribution and use, see the accompanying README file. | 8 * For conditions of distribution and use, see the accompanying README file. |
9 * | 9 * |
10 * This file contains code for merged upsampling/color conversion. | 10 * This file contains code for merged upsampling/color conversion. |
(...skipping 20 matching lines...) Expand all Loading... |
31 * Corner-aligned (non-CCIR601) sampling alignment. | 31 * Corner-aligned (non-CCIR601) sampling alignment. |
32 * Other special cases could be added, but in most applications these are | 32 * Other special cases could be added, but in most applications these are |
33 * the only common cases. (For uncommon cases we fall back on the more | 33 * the only common cases. (For uncommon cases we fall back on the more |
34 * general code in jdsample.c and jdcolor.c.) | 34 * general code in jdsample.c and jdcolor.c.) |
35 */ | 35 */ |
36 | 36 |
37 #define JPEG_INTERNALS | 37 #define JPEG_INTERNALS |
38 #include "jinclude.h" | 38 #include "jinclude.h" |
39 #include "jpeglib.h" | 39 #include "jpeglib.h" |
40 #include "jsimd.h" | 40 #include "jsimd.h" |
| 41 #include "config.h" |
41 | 42 |
42 #ifdef UPSAMPLE_MERGING_SUPPORTED | 43 #ifdef UPSAMPLE_MERGING_SUPPORTED |
43 | 44 |
44 | 45 |
45 /* Private subobject */ | 46 /* Private subobject */ |
46 | 47 |
47 typedef struct { | 48 typedef struct { |
48 struct jpeg_upsampler pub; /* public fields */ | 49 struct jpeg_upsampler pub; /* public fields */ |
49 | 50 |
50 /* Pointer to routine to do actual upsampling/conversion of one row group */ | 51 /* Pointer to routine to do actual upsampling/conversion of one row group */ |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 #undef RGB_RED | 96 #undef RGB_RED |
96 #undef RGB_GREEN | 97 #undef RGB_GREEN |
97 #undef RGB_BLUE | 98 #undef RGB_BLUE |
98 #undef RGB_PIXELSIZE | 99 #undef RGB_PIXELSIZE |
99 #undef h2v1_merged_upsample_internal | 100 #undef h2v1_merged_upsample_internal |
100 #undef h2v2_merged_upsample_internal | 101 #undef h2v2_merged_upsample_internal |
101 | 102 |
102 #define RGB_RED EXT_RGBX_RED | 103 #define RGB_RED EXT_RGBX_RED |
103 #define RGB_GREEN EXT_RGBX_GREEN | 104 #define RGB_GREEN EXT_RGBX_GREEN |
104 #define RGB_BLUE EXT_RGBX_BLUE | 105 #define RGB_BLUE EXT_RGBX_BLUE |
| 106 #define RGB_ALPHA 3 |
105 #define RGB_PIXELSIZE EXT_RGBX_PIXELSIZE | 107 #define RGB_PIXELSIZE EXT_RGBX_PIXELSIZE |
106 #define h2v1_merged_upsample_internal extrgbx_h2v1_merged_upsample_internal | 108 #define h2v1_merged_upsample_internal extrgbx_h2v1_merged_upsample_internal |
107 #define h2v2_merged_upsample_internal extrgbx_h2v2_merged_upsample_internal | 109 #define h2v2_merged_upsample_internal extrgbx_h2v2_merged_upsample_internal |
108 #include "jdmrgext.c" | 110 #include "jdmrgext.c" |
109 #undef RGB_RED | 111 #undef RGB_RED |
110 #undef RGB_GREEN | 112 #undef RGB_GREEN |
111 #undef RGB_BLUE | 113 #undef RGB_BLUE |
| 114 #undef RGB_ALPHA |
112 #undef RGB_PIXELSIZE | 115 #undef RGB_PIXELSIZE |
113 #undef h2v1_merged_upsample_internal | 116 #undef h2v1_merged_upsample_internal |
114 #undef h2v2_merged_upsample_internal | 117 #undef h2v2_merged_upsample_internal |
115 | 118 |
116 #define RGB_RED EXT_BGR_RED | 119 #define RGB_RED EXT_BGR_RED |
117 #define RGB_GREEN EXT_BGR_GREEN | 120 #define RGB_GREEN EXT_BGR_GREEN |
118 #define RGB_BLUE EXT_BGR_BLUE | 121 #define RGB_BLUE EXT_BGR_BLUE |
119 #define RGB_PIXELSIZE EXT_BGR_PIXELSIZE | 122 #define RGB_PIXELSIZE EXT_BGR_PIXELSIZE |
120 #define h2v1_merged_upsample_internal extbgr_h2v1_merged_upsample_internal | 123 #define h2v1_merged_upsample_internal extbgr_h2v1_merged_upsample_internal |
121 #define h2v2_merged_upsample_internal extbgr_h2v2_merged_upsample_internal | 124 #define h2v2_merged_upsample_internal extbgr_h2v2_merged_upsample_internal |
122 #include "jdmrgext.c" | 125 #include "jdmrgext.c" |
123 #undef RGB_RED | 126 #undef RGB_RED |
124 #undef RGB_GREEN | 127 #undef RGB_GREEN |
125 #undef RGB_BLUE | 128 #undef RGB_BLUE |
126 #undef RGB_PIXELSIZE | 129 #undef RGB_PIXELSIZE |
127 #undef h2v1_merged_upsample_internal | 130 #undef h2v1_merged_upsample_internal |
128 #undef h2v2_merged_upsample_internal | 131 #undef h2v2_merged_upsample_internal |
129 | 132 |
130 #define RGB_RED EXT_BGRX_RED | 133 #define RGB_RED EXT_BGRX_RED |
131 #define RGB_GREEN EXT_BGRX_GREEN | 134 #define RGB_GREEN EXT_BGRX_GREEN |
132 #define RGB_BLUE EXT_BGRX_BLUE | 135 #define RGB_BLUE EXT_BGRX_BLUE |
| 136 #define RGB_ALPHA 3 |
133 #define RGB_PIXELSIZE EXT_BGRX_PIXELSIZE | 137 #define RGB_PIXELSIZE EXT_BGRX_PIXELSIZE |
134 #define h2v1_merged_upsample_internal extbgrx_h2v1_merged_upsample_internal | 138 #define h2v1_merged_upsample_internal extbgrx_h2v1_merged_upsample_internal |
135 #define h2v2_merged_upsample_internal extbgrx_h2v2_merged_upsample_internal | 139 #define h2v2_merged_upsample_internal extbgrx_h2v2_merged_upsample_internal |
136 #include "jdmrgext.c" | 140 #include "jdmrgext.c" |
137 #undef RGB_RED | 141 #undef RGB_RED |
138 #undef RGB_GREEN | 142 #undef RGB_GREEN |
139 #undef RGB_BLUE | 143 #undef RGB_BLUE |
| 144 #undef RGB_ALPHA |
140 #undef RGB_PIXELSIZE | 145 #undef RGB_PIXELSIZE |
141 #undef h2v1_merged_upsample_internal | 146 #undef h2v1_merged_upsample_internal |
142 #undef h2v2_merged_upsample_internal | 147 #undef h2v2_merged_upsample_internal |
143 | 148 |
144 #define RGB_RED EXT_XBGR_RED | 149 #define RGB_RED EXT_XBGR_RED |
145 #define RGB_GREEN EXT_XBGR_GREEN | 150 #define RGB_GREEN EXT_XBGR_GREEN |
146 #define RGB_BLUE EXT_XBGR_BLUE | 151 #define RGB_BLUE EXT_XBGR_BLUE |
| 152 #define RGB_ALPHA 0 |
147 #define RGB_PIXELSIZE EXT_XBGR_PIXELSIZE | 153 #define RGB_PIXELSIZE EXT_XBGR_PIXELSIZE |
148 #define h2v1_merged_upsample_internal extxbgr_h2v1_merged_upsample_internal | 154 #define h2v1_merged_upsample_internal extxbgr_h2v1_merged_upsample_internal |
149 #define h2v2_merged_upsample_internal extxbgr_h2v2_merged_upsample_internal | 155 #define h2v2_merged_upsample_internal extxbgr_h2v2_merged_upsample_internal |
150 #include "jdmrgext.c" | 156 #include "jdmrgext.c" |
151 #undef RGB_RED | 157 #undef RGB_RED |
152 #undef RGB_GREEN | 158 #undef RGB_GREEN |
153 #undef RGB_BLUE | 159 #undef RGB_BLUE |
| 160 #undef RGB_ALPHA |
154 #undef RGB_PIXELSIZE | 161 #undef RGB_PIXELSIZE |
155 #undef h2v1_merged_upsample_internal | 162 #undef h2v1_merged_upsample_internal |
156 #undef h2v2_merged_upsample_internal | 163 #undef h2v2_merged_upsample_internal |
157 | 164 |
158 #define RGB_RED EXT_XRGB_RED | 165 #define RGB_RED EXT_XRGB_RED |
159 #define RGB_GREEN EXT_XRGB_GREEN | 166 #define RGB_GREEN EXT_XRGB_GREEN |
160 #define RGB_BLUE EXT_XRGB_BLUE | 167 #define RGB_BLUE EXT_XRGB_BLUE |
| 168 #define RGB_ALPHA 0 |
161 #define RGB_PIXELSIZE EXT_XRGB_PIXELSIZE | 169 #define RGB_PIXELSIZE EXT_XRGB_PIXELSIZE |
162 #define h2v1_merged_upsample_internal extxrgb_h2v1_merged_upsample_internal | 170 #define h2v1_merged_upsample_internal extxrgb_h2v1_merged_upsample_internal |
163 #define h2v2_merged_upsample_internal extxrgb_h2v2_merged_upsample_internal | 171 #define h2v2_merged_upsample_internal extxrgb_h2v2_merged_upsample_internal |
164 #include "jdmrgext.c" | 172 #include "jdmrgext.c" |
165 #undef RGB_RED | 173 #undef RGB_RED |
166 #undef RGB_GREEN | 174 #undef RGB_GREEN |
167 #undef RGB_BLUE | 175 #undef RGB_BLUE |
| 176 #undef RGB_ALPHA |
168 #undef RGB_PIXELSIZE | 177 #undef RGB_PIXELSIZE |
169 #undef h2v1_merged_upsample_internal | 178 #undef h2v1_merged_upsample_internal |
170 #undef h2v2_merged_upsample_internal | 179 #undef h2v2_merged_upsample_internal |
171 | 180 |
172 | 181 |
173 /* | 182 /* |
174 * Initialize tables for YCC->RGB colorspace conversion. | 183 * Initialize tables for YCC->RGB colorspace conversion. |
175 * This is taken directly from jdcolor.c; see that file for more info. | 184 * This is taken directly from jdcolor.c; see that file for more info. |
176 */ | 185 */ |
177 | 186 |
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
445 else | 454 else |
446 upsample->upmethod = h2v1_merged_upsample; | 455 upsample->upmethod = h2v1_merged_upsample; |
447 /* No spare row needed */ | 456 /* No spare row needed */ |
448 upsample->spare_row = NULL; | 457 upsample->spare_row = NULL; |
449 } | 458 } |
450 | 459 |
451 build_ycc_rgb_table(cinfo); | 460 build_ycc_rgb_table(cinfo); |
452 } | 461 } |
453 | 462 |
454 #endif /* UPSAMPLE_MERGING_SUPPORTED */ | 463 #endif /* UPSAMPLE_MERGING_SUPPORTED */ |
OLD | NEW |