Ignore title parameter for navigator.registerProtocolHandler
[chromium-blink-merge.git] / media / base / simd / yuv_to_rgb_table.cc
blob5bc35aff89aa35a4845127abd87f14c11dc139ce
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "media/base/simd/yuv_to_rgb_table.h"
7 extern "C" {
9 // Defines the R,G,B,A contributions from Y.
10 #define RGBY(i) { \
11 static_cast<int16>(1.164 * 64 * (i - 16) + 0.5), \
12 static_cast<int16>(1.164 * 64 * (i - 16) + 0.5), \
13 static_cast<int16>(1.164 * 64 * (i - 16) + 0.5), \
14 0 \
17 // Defines the R,G,B,A contributions from U.
18 // The contribution to A is the same for any value of U
19 // causing the final A value to be 255 in every conversion.
20 // Android's pixel layout is RGBA, while other platforms
21 // are BGRA.
22 #if defined(OS_ANDROID)
23 #define RGBU(i) { \
24 0, \
25 static_cast<int16>(-0.391 * 64 * (i - 128) + 0.5), \
26 static_cast<int16>(2.018 * 64 * (i - 128) + 0.5), \
27 static_cast<int16>(256 * 64 - 1) \
29 #else
30 #define RGBU(i) { \
31 static_cast<int16>(2.018 * 64 * (i - 128) + 0.5), \
32 static_cast<int16>(-0.391 * 64 * (i - 128) + 0.5), \
33 0, \
34 static_cast<int16>(256 * 64 - 1) \
36 #endif
38 // Defines the R,G,B,A contributions from V.
39 // Android's pixel layout is RGBA, while other platforms
40 // are BGRA.
41 #if defined(OS_ANDROID)
42 #define RGBV(i) { \
43 static_cast<int16>(1.596 * 64 * (i - 128) + 0.5), \
44 static_cast<int16>(-0.813 * 64 * (i - 128) + 0.5), \
45 0, \
46 0 \
48 #else
49 #define RGBV(i) { \
50 0, \
51 static_cast<int16>(-0.813 * 64 * (i - 128) + 0.5), \
52 static_cast<int16>(1.596 * 64 * (i - 128) + 0.5), \
53 0 \
55 #endif
57 // Used to define a set of multiplier words for each alpha level.
58 #define ALPHA(i) { \
59 i, i, i, i \
62 // The following table defines the RGBA contributions
63 // for each component of YUVA. The Y table is first followed
64 // by the U, and V tables. The alpha multiplier table follows.
65 // These tables are aligned and kept adjacent to optimize for
66 // SIMD and cacheing.
68 SIMD_ALIGNED(const int16 kCoefficientsRgbY[256 * 4][4]) = {
69 RGBY(0x00), RGBY(0x01), RGBY(0x02), RGBY(0x03),
70 RGBY(0x04), RGBY(0x05), RGBY(0x06), RGBY(0x07),
71 RGBY(0x08), RGBY(0x09), RGBY(0x0A), RGBY(0x0B),
72 RGBY(0x0C), RGBY(0x0D), RGBY(0x0E), RGBY(0x0F),
73 RGBY(0x10), RGBY(0x11), RGBY(0x12), RGBY(0x13),
74 RGBY(0x14), RGBY(0x15), RGBY(0x16), RGBY(0x17),
75 RGBY(0x18), RGBY(0x19), RGBY(0x1A), RGBY(0x1B),
76 RGBY(0x1C), RGBY(0x1D), RGBY(0x1E), RGBY(0x1F),
77 RGBY(0x20), RGBY(0x21), RGBY(0x22), RGBY(0x23),
78 RGBY(0x24), RGBY(0x25), RGBY(0x26), RGBY(0x27),
79 RGBY(0x28), RGBY(0x29), RGBY(0x2A), RGBY(0x2B),
80 RGBY(0x2C), RGBY(0x2D), RGBY(0x2E), RGBY(0x2F),
81 RGBY(0x30), RGBY(0x31), RGBY(0x32), RGBY(0x33),
82 RGBY(0x34), RGBY(0x35), RGBY(0x36), RGBY(0x37),
83 RGBY(0x38), RGBY(0x39), RGBY(0x3A), RGBY(0x3B),
84 RGBY(0x3C), RGBY(0x3D), RGBY(0x3E), RGBY(0x3F),
85 RGBY(0x40), RGBY(0x41), RGBY(0x42), RGBY(0x43),
86 RGBY(0x44), RGBY(0x45), RGBY(0x46), RGBY(0x47),
87 RGBY(0x48), RGBY(0x49), RGBY(0x4A), RGBY(0x4B),
88 RGBY(0x4C), RGBY(0x4D), RGBY(0x4E), RGBY(0x4F),
89 RGBY(0x50), RGBY(0x51), RGBY(0x52), RGBY(0x53),
90 RGBY(0x54), RGBY(0x55), RGBY(0x56), RGBY(0x57),
91 RGBY(0x58), RGBY(0x59), RGBY(0x5A), RGBY(0x5B),
92 RGBY(0x5C), RGBY(0x5D), RGBY(0x5E), RGBY(0x5F),
93 RGBY(0x60), RGBY(0x61), RGBY(0x62), RGBY(0x63),
94 RGBY(0x64), RGBY(0x65), RGBY(0x66), RGBY(0x67),
95 RGBY(0x68), RGBY(0x69), RGBY(0x6A), RGBY(0x6B),
96 RGBY(0x6C), RGBY(0x6D), RGBY(0x6E), RGBY(0x6F),
97 RGBY(0x70), RGBY(0x71), RGBY(0x72), RGBY(0x73),
98 RGBY(0x74), RGBY(0x75), RGBY(0x76), RGBY(0x77),
99 RGBY(0x78), RGBY(0x79), RGBY(0x7A), RGBY(0x7B),
100 RGBY(0x7C), RGBY(0x7D), RGBY(0x7E), RGBY(0x7F),
101 RGBY(0x80), RGBY(0x81), RGBY(0x82), RGBY(0x83),
102 RGBY(0x84), RGBY(0x85), RGBY(0x86), RGBY(0x87),
103 RGBY(0x88), RGBY(0x89), RGBY(0x8A), RGBY(0x8B),
104 RGBY(0x8C), RGBY(0x8D), RGBY(0x8E), RGBY(0x8F),
105 RGBY(0x90), RGBY(0x91), RGBY(0x92), RGBY(0x93),
106 RGBY(0x94), RGBY(0x95), RGBY(0x96), RGBY(0x97),
107 RGBY(0x98), RGBY(0x99), RGBY(0x9A), RGBY(0x9B),
108 RGBY(0x9C), RGBY(0x9D), RGBY(0x9E), RGBY(0x9F),
109 RGBY(0xA0), RGBY(0xA1), RGBY(0xA2), RGBY(0xA3),
110 RGBY(0xA4), RGBY(0xA5), RGBY(0xA6), RGBY(0xA7),
111 RGBY(0xA8), RGBY(0xA9), RGBY(0xAA), RGBY(0xAB),
112 RGBY(0xAC), RGBY(0xAD), RGBY(0xAE), RGBY(0xAF),
113 RGBY(0xB0), RGBY(0xB1), RGBY(0xB2), RGBY(0xB3),
114 RGBY(0xB4), RGBY(0xB5), RGBY(0xB6), RGBY(0xB7),
115 RGBY(0xB8), RGBY(0xB9), RGBY(0xBA), RGBY(0xBB),
116 RGBY(0xBC), RGBY(0xBD), RGBY(0xBE), RGBY(0xBF),
117 RGBY(0xC0), RGBY(0xC1), RGBY(0xC2), RGBY(0xC3),
118 RGBY(0xC4), RGBY(0xC5), RGBY(0xC6), RGBY(0xC7),
119 RGBY(0xC8), RGBY(0xC9), RGBY(0xCA), RGBY(0xCB),
120 RGBY(0xCC), RGBY(0xCD), RGBY(0xCE), RGBY(0xCF),
121 RGBY(0xD0), RGBY(0xD1), RGBY(0xD2), RGBY(0xD3),
122 RGBY(0xD4), RGBY(0xD5), RGBY(0xD6), RGBY(0xD7),
123 RGBY(0xD8), RGBY(0xD9), RGBY(0xDA), RGBY(0xDB),
124 RGBY(0xDC), RGBY(0xDD), RGBY(0xDE), RGBY(0xDF),
125 RGBY(0xE0), RGBY(0xE1), RGBY(0xE2), RGBY(0xE3),
126 RGBY(0xE4), RGBY(0xE5), RGBY(0xE6), RGBY(0xE7),
127 RGBY(0xE8), RGBY(0xE9), RGBY(0xEA), RGBY(0xEB),
128 RGBY(0xEC), RGBY(0xED), RGBY(0xEE), RGBY(0xEF),
129 RGBY(0xF0), RGBY(0xF1), RGBY(0xF2), RGBY(0xF3),
130 RGBY(0xF4), RGBY(0xF5), RGBY(0xF6), RGBY(0xF7),
131 RGBY(0xF8), RGBY(0xF9), RGBY(0xFA), RGBY(0xFB),
132 RGBY(0xFC), RGBY(0xFD), RGBY(0xFE), RGBY(0xFF),
134 // Chroma U table.
135 RGBU(0x00), RGBU(0x01), RGBU(0x02), RGBU(0x03),
136 RGBU(0x04), RGBU(0x05), RGBU(0x06), RGBU(0x07),
137 RGBU(0x08), RGBU(0x09), RGBU(0x0A), RGBU(0x0B),
138 RGBU(0x0C), RGBU(0x0D), RGBU(0x0E), RGBU(0x0F),
139 RGBU(0x10), RGBU(0x11), RGBU(0x12), RGBU(0x13),
140 RGBU(0x14), RGBU(0x15), RGBU(0x16), RGBU(0x17),
141 RGBU(0x18), RGBU(0x19), RGBU(0x1A), RGBU(0x1B),
142 RGBU(0x1C), RGBU(0x1D), RGBU(0x1E), RGBU(0x1F),
143 RGBU(0x20), RGBU(0x21), RGBU(0x22), RGBU(0x23),
144 RGBU(0x24), RGBU(0x25), RGBU(0x26), RGBU(0x27),
145 RGBU(0x28), RGBU(0x29), RGBU(0x2A), RGBU(0x2B),
146 RGBU(0x2C), RGBU(0x2D), RGBU(0x2E), RGBU(0x2F),
147 RGBU(0x30), RGBU(0x31), RGBU(0x32), RGBU(0x33),
148 RGBU(0x34), RGBU(0x35), RGBU(0x36), RGBU(0x37),
149 RGBU(0x38), RGBU(0x39), RGBU(0x3A), RGBU(0x3B),
150 RGBU(0x3C), RGBU(0x3D), RGBU(0x3E), RGBU(0x3F),
151 RGBU(0x40), RGBU(0x41), RGBU(0x42), RGBU(0x43),
152 RGBU(0x44), RGBU(0x45), RGBU(0x46), RGBU(0x47),
153 RGBU(0x48), RGBU(0x49), RGBU(0x4A), RGBU(0x4B),
154 RGBU(0x4C), RGBU(0x4D), RGBU(0x4E), RGBU(0x4F),
155 RGBU(0x50), RGBU(0x51), RGBU(0x52), RGBU(0x53),
156 RGBU(0x54), RGBU(0x55), RGBU(0x56), RGBU(0x57),
157 RGBU(0x58), RGBU(0x59), RGBU(0x5A), RGBU(0x5B),
158 RGBU(0x5C), RGBU(0x5D), RGBU(0x5E), RGBU(0x5F),
159 RGBU(0x60), RGBU(0x61), RGBU(0x62), RGBU(0x63),
160 RGBU(0x64), RGBU(0x65), RGBU(0x66), RGBU(0x67),
161 RGBU(0x68), RGBU(0x69), RGBU(0x6A), RGBU(0x6B),
162 RGBU(0x6C), RGBU(0x6D), RGBU(0x6E), RGBU(0x6F),
163 RGBU(0x70), RGBU(0x71), RGBU(0x72), RGBU(0x73),
164 RGBU(0x74), RGBU(0x75), RGBU(0x76), RGBU(0x77),
165 RGBU(0x78), RGBU(0x79), RGBU(0x7A), RGBU(0x7B),
166 RGBU(0x7C), RGBU(0x7D), RGBU(0x7E), RGBU(0x7F),
167 RGBU(0x80), RGBU(0x81), RGBU(0x82), RGBU(0x83),
168 RGBU(0x84), RGBU(0x85), RGBU(0x86), RGBU(0x87),
169 RGBU(0x88), RGBU(0x89), RGBU(0x8A), RGBU(0x8B),
170 RGBU(0x8C), RGBU(0x8D), RGBU(0x8E), RGBU(0x8F),
171 RGBU(0x90), RGBU(0x91), RGBU(0x92), RGBU(0x93),
172 RGBU(0x94), RGBU(0x95), RGBU(0x96), RGBU(0x97),
173 RGBU(0x98), RGBU(0x99), RGBU(0x9A), RGBU(0x9B),
174 RGBU(0x9C), RGBU(0x9D), RGBU(0x9E), RGBU(0x9F),
175 RGBU(0xA0), RGBU(0xA1), RGBU(0xA2), RGBU(0xA3),
176 RGBU(0xA4), RGBU(0xA5), RGBU(0xA6), RGBU(0xA7),
177 RGBU(0xA8), RGBU(0xA9), RGBU(0xAA), RGBU(0xAB),
178 RGBU(0xAC), RGBU(0xAD), RGBU(0xAE), RGBU(0xAF),
179 RGBU(0xB0), RGBU(0xB1), RGBU(0xB2), RGBU(0xB3),
180 RGBU(0xB4), RGBU(0xB5), RGBU(0xB6), RGBU(0xB7),
181 RGBU(0xB8), RGBU(0xB9), RGBU(0xBA), RGBU(0xBB),
182 RGBU(0xBC), RGBU(0xBD), RGBU(0xBE), RGBU(0xBF),
183 RGBU(0xC0), RGBU(0xC1), RGBU(0xC2), RGBU(0xC3),
184 RGBU(0xC4), RGBU(0xC5), RGBU(0xC6), RGBU(0xC7),
185 RGBU(0xC8), RGBU(0xC9), RGBU(0xCA), RGBU(0xCB),
186 RGBU(0xCC), RGBU(0xCD), RGBU(0xCE), RGBU(0xCF),
187 RGBU(0xD0), RGBU(0xD1), RGBU(0xD2), RGBU(0xD3),
188 RGBU(0xD4), RGBU(0xD5), RGBU(0xD6), RGBU(0xD7),
189 RGBU(0xD8), RGBU(0xD9), RGBU(0xDA), RGBU(0xDB),
190 RGBU(0xDC), RGBU(0xDD), RGBU(0xDE), RGBU(0xDF),
191 RGBU(0xE0), RGBU(0xE1), RGBU(0xE2), RGBU(0xE3),
192 RGBU(0xE4), RGBU(0xE5), RGBU(0xE6), RGBU(0xE7),
193 RGBU(0xE8), RGBU(0xE9), RGBU(0xEA), RGBU(0xEB),
194 RGBU(0xEC), RGBU(0xED), RGBU(0xEE), RGBU(0xEF),
195 RGBU(0xF0), RGBU(0xF1), RGBU(0xF2), RGBU(0xF3),
196 RGBU(0xF4), RGBU(0xF5), RGBU(0xF6), RGBU(0xF7),
197 RGBU(0xF8), RGBU(0xF9), RGBU(0xFA), RGBU(0xFB),
198 RGBU(0xFC), RGBU(0xFD), RGBU(0xFE), RGBU(0xFF),
200 // Chroma V table.
201 RGBV(0x00), RGBV(0x01), RGBV(0x02), RGBV(0x03),
202 RGBV(0x04), RGBV(0x05), RGBV(0x06), RGBV(0x07),
203 RGBV(0x08), RGBV(0x09), RGBV(0x0A), RGBV(0x0B),
204 RGBV(0x0C), RGBV(0x0D), RGBV(0x0E), RGBV(0x0F),
205 RGBV(0x10), RGBV(0x11), RGBV(0x12), RGBV(0x13),
206 RGBV(0x14), RGBV(0x15), RGBV(0x16), RGBV(0x17),
207 RGBV(0x18), RGBV(0x19), RGBV(0x1A), RGBV(0x1B),
208 RGBV(0x1C), RGBV(0x1D), RGBV(0x1E), RGBV(0x1F),
209 RGBV(0x20), RGBV(0x21), RGBV(0x22), RGBV(0x23),
210 RGBV(0x24), RGBV(0x25), RGBV(0x26), RGBV(0x27),
211 RGBV(0x28), RGBV(0x29), RGBV(0x2A), RGBV(0x2B),
212 RGBV(0x2C), RGBV(0x2D), RGBV(0x2E), RGBV(0x2F),
213 RGBV(0x30), RGBV(0x31), RGBV(0x32), RGBV(0x33),
214 RGBV(0x34), RGBV(0x35), RGBV(0x36), RGBV(0x37),
215 RGBV(0x38), RGBV(0x39), RGBV(0x3A), RGBV(0x3B),
216 RGBV(0x3C), RGBV(0x3D), RGBV(0x3E), RGBV(0x3F),
217 RGBV(0x40), RGBV(0x41), RGBV(0x42), RGBV(0x43),
218 RGBV(0x44), RGBV(0x45), RGBV(0x46), RGBV(0x47),
219 RGBV(0x48), RGBV(0x49), RGBV(0x4A), RGBV(0x4B),
220 RGBV(0x4C), RGBV(0x4D), RGBV(0x4E), RGBV(0x4F),
221 RGBV(0x50), RGBV(0x51), RGBV(0x52), RGBV(0x53),
222 RGBV(0x54), RGBV(0x55), RGBV(0x56), RGBV(0x57),
223 RGBV(0x58), RGBV(0x59), RGBV(0x5A), RGBV(0x5B),
224 RGBV(0x5C), RGBV(0x5D), RGBV(0x5E), RGBV(0x5F),
225 RGBV(0x60), RGBV(0x61), RGBV(0x62), RGBV(0x63),
226 RGBV(0x64), RGBV(0x65), RGBV(0x66), RGBV(0x67),
227 RGBV(0x68), RGBV(0x69), RGBV(0x6A), RGBV(0x6B),
228 RGBV(0x6C), RGBV(0x6D), RGBV(0x6E), RGBV(0x6F),
229 RGBV(0x70), RGBV(0x71), RGBV(0x72), RGBV(0x73),
230 RGBV(0x74), RGBV(0x75), RGBV(0x76), RGBV(0x77),
231 RGBV(0x78), RGBV(0x79), RGBV(0x7A), RGBV(0x7B),
232 RGBV(0x7C), RGBV(0x7D), RGBV(0x7E), RGBV(0x7F),
233 RGBV(0x80), RGBV(0x81), RGBV(0x82), RGBV(0x83),
234 RGBV(0x84), RGBV(0x85), RGBV(0x86), RGBV(0x87),
235 RGBV(0x88), RGBV(0x89), RGBV(0x8A), RGBV(0x8B),
236 RGBV(0x8C), RGBV(0x8D), RGBV(0x8E), RGBV(0x8F),
237 RGBV(0x90), RGBV(0x91), RGBV(0x92), RGBV(0x93),
238 RGBV(0x94), RGBV(0x95), RGBV(0x96), RGBV(0x97),
239 RGBV(0x98), RGBV(0x99), RGBV(0x9A), RGBV(0x9B),
240 RGBV(0x9C), RGBV(0x9D), RGBV(0x9E), RGBV(0x9F),
241 RGBV(0xA0), RGBV(0xA1), RGBV(0xA2), RGBV(0xA3),
242 RGBV(0xA4), RGBV(0xA5), RGBV(0xA6), RGBV(0xA7),
243 RGBV(0xA8), RGBV(0xA9), RGBV(0xAA), RGBV(0xAB),
244 RGBV(0xAC), RGBV(0xAD), RGBV(0xAE), RGBV(0xAF),
245 RGBV(0xB0), RGBV(0xB1), RGBV(0xB2), RGBV(0xB3),
246 RGBV(0xB4), RGBV(0xB5), RGBV(0xB6), RGBV(0xB7),
247 RGBV(0xB8), RGBV(0xB9), RGBV(0xBA), RGBV(0xBB),
248 RGBV(0xBC), RGBV(0xBD), RGBV(0xBE), RGBV(0xBF),
249 RGBV(0xC0), RGBV(0xC1), RGBV(0xC2), RGBV(0xC3),
250 RGBV(0xC4), RGBV(0xC5), RGBV(0xC6), RGBV(0xC7),
251 RGBV(0xC8), RGBV(0xC9), RGBV(0xCA), RGBV(0xCB),
252 RGBV(0xCC), RGBV(0xCD), RGBV(0xCE), RGBV(0xCF),
253 RGBV(0xD0), RGBV(0xD1), RGBV(0xD2), RGBV(0xD3),
254 RGBV(0xD4), RGBV(0xD5), RGBV(0xD6), RGBV(0xD7),
255 RGBV(0xD8), RGBV(0xD9), RGBV(0xDA), RGBV(0xDB),
256 RGBV(0xDC), RGBV(0xDD), RGBV(0xDE), RGBV(0xDF),
257 RGBV(0xE0), RGBV(0xE1), RGBV(0xE2), RGBV(0xE3),
258 RGBV(0xE4), RGBV(0xE5), RGBV(0xE6), RGBV(0xE7),
259 RGBV(0xE8), RGBV(0xE9), RGBV(0xEA), RGBV(0xEB),
260 RGBV(0xEC), RGBV(0xED), RGBV(0xEE), RGBV(0xEF),
261 RGBV(0xF0), RGBV(0xF1), RGBV(0xF2), RGBV(0xF3),
262 RGBV(0xF4), RGBV(0xF5), RGBV(0xF6), RGBV(0xF7),
263 RGBV(0xF8), RGBV(0xF9), RGBV(0xFA), RGBV(0xFB),
264 RGBV(0xFC), RGBV(0xFD), RGBV(0xFE), RGBV(0xFF),
266 // Alpha multipliers for each alpha level.
267 ALPHA(0x00), ALPHA(0x01), ALPHA(0x02), ALPHA(0x03),
268 ALPHA(0x04), ALPHA(0x05), ALPHA(0x06), ALPHA(0x07),
269 ALPHA(0x08), ALPHA(0x09), ALPHA(0x0A), ALPHA(0x0B),
270 ALPHA(0x0C), ALPHA(0x0D), ALPHA(0x0E), ALPHA(0x0F),
271 ALPHA(0x10), ALPHA(0x11), ALPHA(0x12), ALPHA(0x13),
272 ALPHA(0x14), ALPHA(0x15), ALPHA(0x16), ALPHA(0x17),
273 ALPHA(0x18), ALPHA(0x19), ALPHA(0x1A), ALPHA(0x1B),
274 ALPHA(0x1C), ALPHA(0x1D), ALPHA(0x1E), ALPHA(0x1F),
275 ALPHA(0x20), ALPHA(0x21), ALPHA(0x22), ALPHA(0x23),
276 ALPHA(0x24), ALPHA(0x25), ALPHA(0x26), ALPHA(0x27),
277 ALPHA(0x28), ALPHA(0x29), ALPHA(0x2A), ALPHA(0x2B),
278 ALPHA(0x2C), ALPHA(0x2D), ALPHA(0x2E), ALPHA(0x2F),
279 ALPHA(0x30), ALPHA(0x31), ALPHA(0x32), ALPHA(0x33),
280 ALPHA(0x34), ALPHA(0x35), ALPHA(0x36), ALPHA(0x37),
281 ALPHA(0x38), ALPHA(0x39), ALPHA(0x3A), ALPHA(0x3B),
282 ALPHA(0x3C), ALPHA(0x3D), ALPHA(0x3E), ALPHA(0x3F),
283 ALPHA(0x40), ALPHA(0x41), ALPHA(0x42), ALPHA(0x43),
284 ALPHA(0x44), ALPHA(0x45), ALPHA(0x46), ALPHA(0x47),
285 ALPHA(0x48), ALPHA(0x49), ALPHA(0x4A), ALPHA(0x4B),
286 ALPHA(0x4C), ALPHA(0x4D), ALPHA(0x4E), ALPHA(0x4F),
287 ALPHA(0x50), ALPHA(0x51), ALPHA(0x52), ALPHA(0x53),
288 ALPHA(0x54), ALPHA(0x55), ALPHA(0x56), ALPHA(0x57),
289 ALPHA(0x58), ALPHA(0x59), ALPHA(0x5A), ALPHA(0x5B),
290 ALPHA(0x5C), ALPHA(0x5D), ALPHA(0x5E), ALPHA(0x5F),
291 ALPHA(0x60), ALPHA(0x61), ALPHA(0x62), ALPHA(0x63),
292 ALPHA(0x64), ALPHA(0x65), ALPHA(0x66), ALPHA(0x67),
293 ALPHA(0x68), ALPHA(0x69), ALPHA(0x6A), ALPHA(0x6B),
294 ALPHA(0x6C), ALPHA(0x6D), ALPHA(0x6E), ALPHA(0x6F),
295 ALPHA(0x70), ALPHA(0x71), ALPHA(0x72), ALPHA(0x73),
296 ALPHA(0x74), ALPHA(0x75), ALPHA(0x76), ALPHA(0x77),
297 ALPHA(0x78), ALPHA(0x79), ALPHA(0x7A), ALPHA(0x7B),
298 ALPHA(0x7C), ALPHA(0x7D), ALPHA(0x7E), ALPHA(0x7F),
299 ALPHA(0x80), ALPHA(0x81), ALPHA(0x82), ALPHA(0x83),
300 ALPHA(0x84), ALPHA(0x85), ALPHA(0x86), ALPHA(0x87),
301 ALPHA(0x88), ALPHA(0x89), ALPHA(0x8A), ALPHA(0x8B),
302 ALPHA(0x8C), ALPHA(0x8D), ALPHA(0x8E), ALPHA(0x8F),
303 ALPHA(0x90), ALPHA(0x91), ALPHA(0x92), ALPHA(0x93),
304 ALPHA(0x94), ALPHA(0x95), ALPHA(0x96), ALPHA(0x97),
305 ALPHA(0x98), ALPHA(0x99), ALPHA(0x9A), ALPHA(0x9B),
306 ALPHA(0x9C), ALPHA(0x9D), ALPHA(0x9E), ALPHA(0x9F),
307 ALPHA(0xA0), ALPHA(0xA1), ALPHA(0xA2), ALPHA(0xA3),
308 ALPHA(0xA4), ALPHA(0xA5), ALPHA(0xA6), ALPHA(0xA7),
309 ALPHA(0xA8), ALPHA(0xA9), ALPHA(0xAA), ALPHA(0xAB),
310 ALPHA(0xAC), ALPHA(0xAD), ALPHA(0xAE), ALPHA(0xAF),
311 ALPHA(0xB0), ALPHA(0xB1), ALPHA(0xB2), ALPHA(0xB3),
312 ALPHA(0xB4), ALPHA(0xB5), ALPHA(0xB6), ALPHA(0xB7),
313 ALPHA(0xB8), ALPHA(0xB9), ALPHA(0xBA), ALPHA(0xBB),
314 ALPHA(0xBC), ALPHA(0xBD), ALPHA(0xBE), ALPHA(0xBF),
315 ALPHA(0xC0), ALPHA(0xC1), ALPHA(0xC2), ALPHA(0xC3),
316 ALPHA(0xC4), ALPHA(0xC5), ALPHA(0xC6), ALPHA(0xC7),
317 ALPHA(0xC8), ALPHA(0xC9), ALPHA(0xCA), ALPHA(0xCB),
318 ALPHA(0xCC), ALPHA(0xCD), ALPHA(0xCE), ALPHA(0xCF),
319 ALPHA(0xD0), ALPHA(0xD1), ALPHA(0xD2), ALPHA(0xD3),
320 ALPHA(0xD4), ALPHA(0xD5), ALPHA(0xD6), ALPHA(0xD7),
321 ALPHA(0xD8), ALPHA(0xD9), ALPHA(0xDA), ALPHA(0xDB),
322 ALPHA(0xDC), ALPHA(0xDD), ALPHA(0xDE), ALPHA(0xDF),
323 ALPHA(0xE0), ALPHA(0xE1), ALPHA(0xE2), ALPHA(0xE3),
324 ALPHA(0xE4), ALPHA(0xE5), ALPHA(0xE6), ALPHA(0xE7),
325 ALPHA(0xE8), ALPHA(0xE9), ALPHA(0xEA), ALPHA(0xEB),
326 ALPHA(0xEC), ALPHA(0xED), ALPHA(0xEE), ALPHA(0xEF),
327 ALPHA(0xF0), ALPHA(0xF1), ALPHA(0xF2), ALPHA(0xF3),
328 ALPHA(0xF4), ALPHA(0xF5), ALPHA(0xF6), ALPHA(0xF7),
329 ALPHA(0xF8), ALPHA(0xF9), ALPHA(0xFA), ALPHA(0xFB),
330 ALPHA(0xFC), ALPHA(0xFD), ALPHA(0xFE), ALPHA(0xFF),
333 #undef RGBY
334 #undef RGBU
335 #undef RGBV
336 #undef ALPHA
338 // JPEG color range version:
340 // Defines the R,G,B,A contributions from Y.
341 #define RGBY(i) { \
342 static_cast<int16>(64 * i + 0.5), \
343 static_cast<int16>(64 * i + 0.5), \
344 static_cast<int16>(64 * i + 0.5), \
348 // Defines the R,G,B,A contributions from U.
349 // The contribution to A is the same for any value of U
350 // causing the final A value to be 255 in every conversion.
351 // Android's pixel layout is RGBA, while other platforms
352 // are BGRA.
353 #if defined(OS_ANDROID)
354 #define RGBU(i) { \
355 0, \
356 static_cast<int16>(-0.34414 * 64 * (i - 128) + 0.5), \
357 static_cast<int16>(1.772 * 64 * (i - 128) + 0.5), \
358 static_cast<int16>(256 * 64 - 1) \
360 #else
361 #define RGBU(i) { \
362 static_cast<int16>(1.772 * 64 * (i - 128) + 0.5), \
363 static_cast<int16>(-0.34414 * 64 * (i - 128) + 0.5), \
364 0, \
365 static_cast<int16>(256 * 64 - 1) \
367 #endif
369 // Defines the R,G,B,A contributions from V.
370 // Android's pixel layout is RGBA, while other platforms
371 // are BGRA.
372 #if defined(OS_ANDROID)
373 #define RGBV(i) { \
374 static_cast<int16>(1.402 * 64 * (i - 128) + 0.5), \
375 static_cast<int16>(-0.71414 * 64 * (i - 128) + 0.5), \
376 0, \
379 #else
380 #define RGBV(i) { \
381 0, \
382 static_cast<int16>(-0.813 * 64 * (i - 128) + 0.5), \
383 static_cast<int16>(1.402 * 64 * (i - 128) + 0.5), \
386 #endif
388 // Used to define a set of multiplier words for each alpha level.
389 #define ALPHA(i) { \
390 i, i, i, i \
393 // The following table defines the RGBA contributions
394 // for each component of YUVA. The Y table is first followed
395 // by the U, and V tables. The alpha multiplier table follows.
396 // These tables are aligned and kept adjacent to optimize for
397 // SIMD and caching.
399 SIMD_ALIGNED(const int16 kCoefficientsRgbY_JPEG[256 * 4][4]) = {
400 RGBY(0x00), RGBY(0x01), RGBY(0x02), RGBY(0x03),
401 RGBY(0x04), RGBY(0x05), RGBY(0x06), RGBY(0x07),
402 RGBY(0x08), RGBY(0x09), RGBY(0x0A), RGBY(0x0B),
403 RGBY(0x0C), RGBY(0x0D), RGBY(0x0E), RGBY(0x0F),
404 RGBY(0x10), RGBY(0x11), RGBY(0x12), RGBY(0x13),
405 RGBY(0x14), RGBY(0x15), RGBY(0x16), RGBY(0x17),
406 RGBY(0x18), RGBY(0x19), RGBY(0x1A), RGBY(0x1B),
407 RGBY(0x1C), RGBY(0x1D), RGBY(0x1E), RGBY(0x1F),
408 RGBY(0x20), RGBY(0x21), RGBY(0x22), RGBY(0x23),
409 RGBY(0x24), RGBY(0x25), RGBY(0x26), RGBY(0x27),
410 RGBY(0x28), RGBY(0x29), RGBY(0x2A), RGBY(0x2B),
411 RGBY(0x2C), RGBY(0x2D), RGBY(0x2E), RGBY(0x2F),
412 RGBY(0x30), RGBY(0x31), RGBY(0x32), RGBY(0x33),
413 RGBY(0x34), RGBY(0x35), RGBY(0x36), RGBY(0x37),
414 RGBY(0x38), RGBY(0x39), RGBY(0x3A), RGBY(0x3B),
415 RGBY(0x3C), RGBY(0x3D), RGBY(0x3E), RGBY(0x3F),
416 RGBY(0x40), RGBY(0x41), RGBY(0x42), RGBY(0x43),
417 RGBY(0x44), RGBY(0x45), RGBY(0x46), RGBY(0x47),
418 RGBY(0x48), RGBY(0x49), RGBY(0x4A), RGBY(0x4B),
419 RGBY(0x4C), RGBY(0x4D), RGBY(0x4E), RGBY(0x4F),
420 RGBY(0x50), RGBY(0x51), RGBY(0x52), RGBY(0x53),
421 RGBY(0x54), RGBY(0x55), RGBY(0x56), RGBY(0x57),
422 RGBY(0x58), RGBY(0x59), RGBY(0x5A), RGBY(0x5B),
423 RGBY(0x5C), RGBY(0x5D), RGBY(0x5E), RGBY(0x5F),
424 RGBY(0x60), RGBY(0x61), RGBY(0x62), RGBY(0x63),
425 RGBY(0x64), RGBY(0x65), RGBY(0x66), RGBY(0x67),
426 RGBY(0x68), RGBY(0x69), RGBY(0x6A), RGBY(0x6B),
427 RGBY(0x6C), RGBY(0x6D), RGBY(0x6E), RGBY(0x6F),
428 RGBY(0x70), RGBY(0x71), RGBY(0x72), RGBY(0x73),
429 RGBY(0x74), RGBY(0x75), RGBY(0x76), RGBY(0x77),
430 RGBY(0x78), RGBY(0x79), RGBY(0x7A), RGBY(0x7B),
431 RGBY(0x7C), RGBY(0x7D), RGBY(0x7E), RGBY(0x7F),
432 RGBY(0x80), RGBY(0x81), RGBY(0x82), RGBY(0x83),
433 RGBY(0x84), RGBY(0x85), RGBY(0x86), RGBY(0x87),
434 RGBY(0x88), RGBY(0x89), RGBY(0x8A), RGBY(0x8B),
435 RGBY(0x8C), RGBY(0x8D), RGBY(0x8E), RGBY(0x8F),
436 RGBY(0x90), RGBY(0x91), RGBY(0x92), RGBY(0x93),
437 RGBY(0x94), RGBY(0x95), RGBY(0x96), RGBY(0x97),
438 RGBY(0x98), RGBY(0x99), RGBY(0x9A), RGBY(0x9B),
439 RGBY(0x9C), RGBY(0x9D), RGBY(0x9E), RGBY(0x9F),
440 RGBY(0xA0), RGBY(0xA1), RGBY(0xA2), RGBY(0xA3),
441 RGBY(0xA4), RGBY(0xA5), RGBY(0xA6), RGBY(0xA7),
442 RGBY(0xA8), RGBY(0xA9), RGBY(0xAA), RGBY(0xAB),
443 RGBY(0xAC), RGBY(0xAD), RGBY(0xAE), RGBY(0xAF),
444 RGBY(0xB0), RGBY(0xB1), RGBY(0xB2), RGBY(0xB3),
445 RGBY(0xB4), RGBY(0xB5), RGBY(0xB6), RGBY(0xB7),
446 RGBY(0xB8), RGBY(0xB9), RGBY(0xBA), RGBY(0xBB),
447 RGBY(0xBC), RGBY(0xBD), RGBY(0xBE), RGBY(0xBF),
448 RGBY(0xC0), RGBY(0xC1), RGBY(0xC2), RGBY(0xC3),
449 RGBY(0xC4), RGBY(0xC5), RGBY(0xC6), RGBY(0xC7),
450 RGBY(0xC8), RGBY(0xC9), RGBY(0xCA), RGBY(0xCB),
451 RGBY(0xCC), RGBY(0xCD), RGBY(0xCE), RGBY(0xCF),
452 RGBY(0xD0), RGBY(0xD1), RGBY(0xD2), RGBY(0xD3),
453 RGBY(0xD4), RGBY(0xD5), RGBY(0xD6), RGBY(0xD7),
454 RGBY(0xD8), RGBY(0xD9), RGBY(0xDA), RGBY(0xDB),
455 RGBY(0xDC), RGBY(0xDD), RGBY(0xDE), RGBY(0xDF),
456 RGBY(0xE0), RGBY(0xE1), RGBY(0xE2), RGBY(0xE3),
457 RGBY(0xE4), RGBY(0xE5), RGBY(0xE6), RGBY(0xE7),
458 RGBY(0xE8), RGBY(0xE9), RGBY(0xEA), RGBY(0xEB),
459 RGBY(0xEC), RGBY(0xED), RGBY(0xEE), RGBY(0xEF),
460 RGBY(0xF0), RGBY(0xF1), RGBY(0xF2), RGBY(0xF3),
461 RGBY(0xF4), RGBY(0xF5), RGBY(0xF6), RGBY(0xF7),
462 RGBY(0xF8), RGBY(0xF9), RGBY(0xFA), RGBY(0xFB),
463 RGBY(0xFC), RGBY(0xFD), RGBY(0xFE), RGBY(0xFF),
465 // Chroma U table.
466 RGBU(0x00), RGBU(0x01), RGBU(0x02), RGBU(0x03),
467 RGBU(0x04), RGBU(0x05), RGBU(0x06), RGBU(0x07),
468 RGBU(0x08), RGBU(0x09), RGBU(0x0A), RGBU(0x0B),
469 RGBU(0x0C), RGBU(0x0D), RGBU(0x0E), RGBU(0x0F),
470 RGBU(0x10), RGBU(0x11), RGBU(0x12), RGBU(0x13),
471 RGBU(0x14), RGBU(0x15), RGBU(0x16), RGBU(0x17),
472 RGBU(0x18), RGBU(0x19), RGBU(0x1A), RGBU(0x1B),
473 RGBU(0x1C), RGBU(0x1D), RGBU(0x1E), RGBU(0x1F),
474 RGBU(0x20), RGBU(0x21), RGBU(0x22), RGBU(0x23),
475 RGBU(0x24), RGBU(0x25), RGBU(0x26), RGBU(0x27),
476 RGBU(0x28), RGBU(0x29), RGBU(0x2A), RGBU(0x2B),
477 RGBU(0x2C), RGBU(0x2D), RGBU(0x2E), RGBU(0x2F),
478 RGBU(0x30), RGBU(0x31), RGBU(0x32), RGBU(0x33),
479 RGBU(0x34), RGBU(0x35), RGBU(0x36), RGBU(0x37),
480 RGBU(0x38), RGBU(0x39), RGBU(0x3A), RGBU(0x3B),
481 RGBU(0x3C), RGBU(0x3D), RGBU(0x3E), RGBU(0x3F),
482 RGBU(0x40), RGBU(0x41), RGBU(0x42), RGBU(0x43),
483 RGBU(0x44), RGBU(0x45), RGBU(0x46), RGBU(0x47),
484 RGBU(0x48), RGBU(0x49), RGBU(0x4A), RGBU(0x4B),
485 RGBU(0x4C), RGBU(0x4D), RGBU(0x4E), RGBU(0x4F),
486 RGBU(0x50), RGBU(0x51), RGBU(0x52), RGBU(0x53),
487 RGBU(0x54), RGBU(0x55), RGBU(0x56), RGBU(0x57),
488 RGBU(0x58), RGBU(0x59), RGBU(0x5A), RGBU(0x5B),
489 RGBU(0x5C), RGBU(0x5D), RGBU(0x5E), RGBU(0x5F),
490 RGBU(0x60), RGBU(0x61), RGBU(0x62), RGBU(0x63),
491 RGBU(0x64), RGBU(0x65), RGBU(0x66), RGBU(0x67),
492 RGBU(0x68), RGBU(0x69), RGBU(0x6A), RGBU(0x6B),
493 RGBU(0x6C), RGBU(0x6D), RGBU(0x6E), RGBU(0x6F),
494 RGBU(0x70), RGBU(0x71), RGBU(0x72), RGBU(0x73),
495 RGBU(0x74), RGBU(0x75), RGBU(0x76), RGBU(0x77),
496 RGBU(0x78), RGBU(0x79), RGBU(0x7A), RGBU(0x7B),
497 RGBU(0x7C), RGBU(0x7D), RGBU(0x7E), RGBU(0x7F),
498 RGBU(0x80), RGBU(0x81), RGBU(0x82), RGBU(0x83),
499 RGBU(0x84), RGBU(0x85), RGBU(0x86), RGBU(0x87),
500 RGBU(0x88), RGBU(0x89), RGBU(0x8A), RGBU(0x8B),
501 RGBU(0x8C), RGBU(0x8D), RGBU(0x8E), RGBU(0x8F),
502 RGBU(0x90), RGBU(0x91), RGBU(0x92), RGBU(0x93),
503 RGBU(0x94), RGBU(0x95), RGBU(0x96), RGBU(0x97),
504 RGBU(0x98), RGBU(0x99), RGBU(0x9A), RGBU(0x9B),
505 RGBU(0x9C), RGBU(0x9D), RGBU(0x9E), RGBU(0x9F),
506 RGBU(0xA0), RGBU(0xA1), RGBU(0xA2), RGBU(0xA3),
507 RGBU(0xA4), RGBU(0xA5), RGBU(0xA6), RGBU(0xA7),
508 RGBU(0xA8), RGBU(0xA9), RGBU(0xAA), RGBU(0xAB),
509 RGBU(0xAC), RGBU(0xAD), RGBU(0xAE), RGBU(0xAF),
510 RGBU(0xB0), RGBU(0xB1), RGBU(0xB2), RGBU(0xB3),
511 RGBU(0xB4), RGBU(0xB5), RGBU(0xB6), RGBU(0xB7),
512 RGBU(0xB8), RGBU(0xB9), RGBU(0xBA), RGBU(0xBB),
513 RGBU(0xBC), RGBU(0xBD), RGBU(0xBE), RGBU(0xBF),
514 RGBU(0xC0), RGBU(0xC1), RGBU(0xC2), RGBU(0xC3),
515 RGBU(0xC4), RGBU(0xC5), RGBU(0xC6), RGBU(0xC7),
516 RGBU(0xC8), RGBU(0xC9), RGBU(0xCA), RGBU(0xCB),
517 RGBU(0xCC), RGBU(0xCD), RGBU(0xCE), RGBU(0xCF),
518 RGBU(0xD0), RGBU(0xD1), RGBU(0xD2), RGBU(0xD3),
519 RGBU(0xD4), RGBU(0xD5), RGBU(0xD6), RGBU(0xD7),
520 RGBU(0xD8), RGBU(0xD9), RGBU(0xDA), RGBU(0xDB),
521 RGBU(0xDC), RGBU(0xDD), RGBU(0xDE), RGBU(0xDF),
522 RGBU(0xE0), RGBU(0xE1), RGBU(0xE2), RGBU(0xE3),
523 RGBU(0xE4), RGBU(0xE5), RGBU(0xE6), RGBU(0xE7),
524 RGBU(0xE8), RGBU(0xE9), RGBU(0xEA), RGBU(0xEB),
525 RGBU(0xEC), RGBU(0xED), RGBU(0xEE), RGBU(0xEF),
526 RGBU(0xF0), RGBU(0xF1), RGBU(0xF2), RGBU(0xF3),
527 RGBU(0xF4), RGBU(0xF5), RGBU(0xF6), RGBU(0xF7),
528 RGBU(0xF8), RGBU(0xF9), RGBU(0xFA), RGBU(0xFB),
529 RGBU(0xFC), RGBU(0xFD), RGBU(0xFE), RGBU(0xFF),
531 // Chroma V table.
532 RGBV(0x00), RGBV(0x01), RGBV(0x02), RGBV(0x03),
533 RGBV(0x04), RGBV(0x05), RGBV(0x06), RGBV(0x07),
534 RGBV(0x08), RGBV(0x09), RGBV(0x0A), RGBV(0x0B),
535 RGBV(0x0C), RGBV(0x0D), RGBV(0x0E), RGBV(0x0F),
536 RGBV(0x10), RGBV(0x11), RGBV(0x12), RGBV(0x13),
537 RGBV(0x14), RGBV(0x15), RGBV(0x16), RGBV(0x17),
538 RGBV(0x18), RGBV(0x19), RGBV(0x1A), RGBV(0x1B),
539 RGBV(0x1C), RGBV(0x1D), RGBV(0x1E), RGBV(0x1F),
540 RGBV(0x20), RGBV(0x21), RGBV(0x22), RGBV(0x23),
541 RGBV(0x24), RGBV(0x25), RGBV(0x26), RGBV(0x27),
542 RGBV(0x28), RGBV(0x29), RGBV(0x2A), RGBV(0x2B),
543 RGBV(0x2C), RGBV(0x2D), RGBV(0x2E), RGBV(0x2F),
544 RGBV(0x30), RGBV(0x31), RGBV(0x32), RGBV(0x33),
545 RGBV(0x34), RGBV(0x35), RGBV(0x36), RGBV(0x37),
546 RGBV(0x38), RGBV(0x39), RGBV(0x3A), RGBV(0x3B),
547 RGBV(0x3C), RGBV(0x3D), RGBV(0x3E), RGBV(0x3F),
548 RGBV(0x40), RGBV(0x41), RGBV(0x42), RGBV(0x43),
549 RGBV(0x44), RGBV(0x45), RGBV(0x46), RGBV(0x47),
550 RGBV(0x48), RGBV(0x49), RGBV(0x4A), RGBV(0x4B),
551 RGBV(0x4C), RGBV(0x4D), RGBV(0x4E), RGBV(0x4F),
552 RGBV(0x50), RGBV(0x51), RGBV(0x52), RGBV(0x53),
553 RGBV(0x54), RGBV(0x55), RGBV(0x56), RGBV(0x57),
554 RGBV(0x58), RGBV(0x59), RGBV(0x5A), RGBV(0x5B),
555 RGBV(0x5C), RGBV(0x5D), RGBV(0x5E), RGBV(0x5F),
556 RGBV(0x60), RGBV(0x61), RGBV(0x62), RGBV(0x63),
557 RGBV(0x64), RGBV(0x65), RGBV(0x66), RGBV(0x67),
558 RGBV(0x68), RGBV(0x69), RGBV(0x6A), RGBV(0x6B),
559 RGBV(0x6C), RGBV(0x6D), RGBV(0x6E), RGBV(0x6F),
560 RGBV(0x70), RGBV(0x71), RGBV(0x72), RGBV(0x73),
561 RGBV(0x74), RGBV(0x75), RGBV(0x76), RGBV(0x77),
562 RGBV(0x78), RGBV(0x79), RGBV(0x7A), RGBV(0x7B),
563 RGBV(0x7C), RGBV(0x7D), RGBV(0x7E), RGBV(0x7F),
564 RGBV(0x80), RGBV(0x81), RGBV(0x82), RGBV(0x83),
565 RGBV(0x84), RGBV(0x85), RGBV(0x86), RGBV(0x87),
566 RGBV(0x88), RGBV(0x89), RGBV(0x8A), RGBV(0x8B),
567 RGBV(0x8C), RGBV(0x8D), RGBV(0x8E), RGBV(0x8F),
568 RGBV(0x90), RGBV(0x91), RGBV(0x92), RGBV(0x93),
569 RGBV(0x94), RGBV(0x95), RGBV(0x96), RGBV(0x97),
570 RGBV(0x98), RGBV(0x99), RGBV(0x9A), RGBV(0x9B),
571 RGBV(0x9C), RGBV(0x9D), RGBV(0x9E), RGBV(0x9F),
572 RGBV(0xA0), RGBV(0xA1), RGBV(0xA2), RGBV(0xA3),
573 RGBV(0xA4), RGBV(0xA5), RGBV(0xA6), RGBV(0xA7),
574 RGBV(0xA8), RGBV(0xA9), RGBV(0xAA), RGBV(0xAB),
575 RGBV(0xAC), RGBV(0xAD), RGBV(0xAE), RGBV(0xAF),
576 RGBV(0xB0), RGBV(0xB1), RGBV(0xB2), RGBV(0xB3),
577 RGBV(0xB4), RGBV(0xB5), RGBV(0xB6), RGBV(0xB7),
578 RGBV(0xB8), RGBV(0xB9), RGBV(0xBA), RGBV(0xBB),
579 RGBV(0xBC), RGBV(0xBD), RGBV(0xBE), RGBV(0xBF),
580 RGBV(0xC0), RGBV(0xC1), RGBV(0xC2), RGBV(0xC3),
581 RGBV(0xC4), RGBV(0xC5), RGBV(0xC6), RGBV(0xC7),
582 RGBV(0xC8), RGBV(0xC9), RGBV(0xCA), RGBV(0xCB),
583 RGBV(0xCC), RGBV(0xCD), RGBV(0xCE), RGBV(0xCF),
584 RGBV(0xD0), RGBV(0xD1), RGBV(0xD2), RGBV(0xD3),
585 RGBV(0xD4), RGBV(0xD5), RGBV(0xD6), RGBV(0xD7),
586 RGBV(0xD8), RGBV(0xD9), RGBV(0xDA), RGBV(0xDB),
587 RGBV(0xDC), RGBV(0xDD), RGBV(0xDE), RGBV(0xDF),
588 RGBV(0xE0), RGBV(0xE1), RGBV(0xE2), RGBV(0xE3),
589 RGBV(0xE4), RGBV(0xE5), RGBV(0xE6), RGBV(0xE7),
590 RGBV(0xE8), RGBV(0xE9), RGBV(0xEA), RGBV(0xEB),
591 RGBV(0xEC), RGBV(0xED), RGBV(0xEE), RGBV(0xEF),
592 RGBV(0xF0), RGBV(0xF1), RGBV(0xF2), RGBV(0xF3),
593 RGBV(0xF4), RGBV(0xF5), RGBV(0xF6), RGBV(0xF7),
594 RGBV(0xF8), RGBV(0xF9), RGBV(0xFA), RGBV(0xFB),
595 RGBV(0xFC), RGBV(0xFD), RGBV(0xFE), RGBV(0xFF),
597 // Alpha multipliers for each alpha level.
598 ALPHA(0x00), ALPHA(0x01), ALPHA(0x02), ALPHA(0x03),
599 ALPHA(0x04), ALPHA(0x05), ALPHA(0x06), ALPHA(0x07),
600 ALPHA(0x08), ALPHA(0x09), ALPHA(0x0A), ALPHA(0x0B),
601 ALPHA(0x0C), ALPHA(0x0D), ALPHA(0x0E), ALPHA(0x0F),
602 ALPHA(0x10), ALPHA(0x11), ALPHA(0x12), ALPHA(0x13),
603 ALPHA(0x14), ALPHA(0x15), ALPHA(0x16), ALPHA(0x17),
604 ALPHA(0x18), ALPHA(0x19), ALPHA(0x1A), ALPHA(0x1B),
605 ALPHA(0x1C), ALPHA(0x1D), ALPHA(0x1E), ALPHA(0x1F),
606 ALPHA(0x20), ALPHA(0x21), ALPHA(0x22), ALPHA(0x23),
607 ALPHA(0x24), ALPHA(0x25), ALPHA(0x26), ALPHA(0x27),
608 ALPHA(0x28), ALPHA(0x29), ALPHA(0x2A), ALPHA(0x2B),
609 ALPHA(0x2C), ALPHA(0x2D), ALPHA(0x2E), ALPHA(0x2F),
610 ALPHA(0x30), ALPHA(0x31), ALPHA(0x32), ALPHA(0x33),
611 ALPHA(0x34), ALPHA(0x35), ALPHA(0x36), ALPHA(0x37),
612 ALPHA(0x38), ALPHA(0x39), ALPHA(0x3A), ALPHA(0x3B),
613 ALPHA(0x3C), ALPHA(0x3D), ALPHA(0x3E), ALPHA(0x3F),
614 ALPHA(0x40), ALPHA(0x41), ALPHA(0x42), ALPHA(0x43),
615 ALPHA(0x44), ALPHA(0x45), ALPHA(0x46), ALPHA(0x47),
616 ALPHA(0x48), ALPHA(0x49), ALPHA(0x4A), ALPHA(0x4B),
617 ALPHA(0x4C), ALPHA(0x4D), ALPHA(0x4E), ALPHA(0x4F),
618 ALPHA(0x50), ALPHA(0x51), ALPHA(0x52), ALPHA(0x53),
619 ALPHA(0x54), ALPHA(0x55), ALPHA(0x56), ALPHA(0x57),
620 ALPHA(0x58), ALPHA(0x59), ALPHA(0x5A), ALPHA(0x5B),
621 ALPHA(0x5C), ALPHA(0x5D), ALPHA(0x5E), ALPHA(0x5F),
622 ALPHA(0x60), ALPHA(0x61), ALPHA(0x62), ALPHA(0x63),
623 ALPHA(0x64), ALPHA(0x65), ALPHA(0x66), ALPHA(0x67),
624 ALPHA(0x68), ALPHA(0x69), ALPHA(0x6A), ALPHA(0x6B),
625 ALPHA(0x6C), ALPHA(0x6D), ALPHA(0x6E), ALPHA(0x6F),
626 ALPHA(0x70), ALPHA(0x71), ALPHA(0x72), ALPHA(0x73),
627 ALPHA(0x74), ALPHA(0x75), ALPHA(0x76), ALPHA(0x77),
628 ALPHA(0x78), ALPHA(0x79), ALPHA(0x7A), ALPHA(0x7B),
629 ALPHA(0x7C), ALPHA(0x7D), ALPHA(0x7E), ALPHA(0x7F),
630 ALPHA(0x80), ALPHA(0x81), ALPHA(0x82), ALPHA(0x83),
631 ALPHA(0x84), ALPHA(0x85), ALPHA(0x86), ALPHA(0x87),
632 ALPHA(0x88), ALPHA(0x89), ALPHA(0x8A), ALPHA(0x8B),
633 ALPHA(0x8C), ALPHA(0x8D), ALPHA(0x8E), ALPHA(0x8F),
634 ALPHA(0x90), ALPHA(0x91), ALPHA(0x92), ALPHA(0x93),
635 ALPHA(0x94), ALPHA(0x95), ALPHA(0x96), ALPHA(0x97),
636 ALPHA(0x98), ALPHA(0x99), ALPHA(0x9A), ALPHA(0x9B),
637 ALPHA(0x9C), ALPHA(0x9D), ALPHA(0x9E), ALPHA(0x9F),
638 ALPHA(0xA0), ALPHA(0xA1), ALPHA(0xA2), ALPHA(0xA3),
639 ALPHA(0xA4), ALPHA(0xA5), ALPHA(0xA6), ALPHA(0xA7),
640 ALPHA(0xA8), ALPHA(0xA9), ALPHA(0xAA), ALPHA(0xAB),
641 ALPHA(0xAC), ALPHA(0xAD), ALPHA(0xAE), ALPHA(0xAF),
642 ALPHA(0xB0), ALPHA(0xB1), ALPHA(0xB2), ALPHA(0xB3),
643 ALPHA(0xB4), ALPHA(0xB5), ALPHA(0xB6), ALPHA(0xB7),
644 ALPHA(0xB8), ALPHA(0xB9), ALPHA(0xBA), ALPHA(0xBB),
645 ALPHA(0xBC), ALPHA(0xBD), ALPHA(0xBE), ALPHA(0xBF),
646 ALPHA(0xC0), ALPHA(0xC1), ALPHA(0xC2), ALPHA(0xC3),
647 ALPHA(0xC4), ALPHA(0xC5), ALPHA(0xC6), ALPHA(0xC7),
648 ALPHA(0xC8), ALPHA(0xC9), ALPHA(0xCA), ALPHA(0xCB),
649 ALPHA(0xCC), ALPHA(0xCD), ALPHA(0xCE), ALPHA(0xCF),
650 ALPHA(0xD0), ALPHA(0xD1), ALPHA(0xD2), ALPHA(0xD3),
651 ALPHA(0xD4), ALPHA(0xD5), ALPHA(0xD6), ALPHA(0xD7),
652 ALPHA(0xD8), ALPHA(0xD9), ALPHA(0xDA), ALPHA(0xDB),
653 ALPHA(0xDC), ALPHA(0xDD), ALPHA(0xDE), ALPHA(0xDF),
654 ALPHA(0xE0), ALPHA(0xE1), ALPHA(0xE2), ALPHA(0xE3),
655 ALPHA(0xE4), ALPHA(0xE5), ALPHA(0xE6), ALPHA(0xE7),
656 ALPHA(0xE8), ALPHA(0xE9), ALPHA(0xEA), ALPHA(0xEB),
657 ALPHA(0xEC), ALPHA(0xED), ALPHA(0xEE), ALPHA(0xEF),
658 ALPHA(0xF0), ALPHA(0xF1), ALPHA(0xF2), ALPHA(0xF3),
659 ALPHA(0xF4), ALPHA(0xF5), ALPHA(0xF6), ALPHA(0xF7),
660 ALPHA(0xF8), ALPHA(0xF9), ALPHA(0xFA), ALPHA(0xFB),
661 ALPHA(0xFC), ALPHA(0xFD), ALPHA(0xFE), ALPHA(0xFF),
664 #undef RGBY
665 #undef RGBU
666 #undef RGBV
667 #undef ALPHA
669 } // extern "C"