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

Side by Side Diff: trunk/src/media/base/simd/yuv_to_rgb_table.cc

Issue 13972014: Revert 194465 "media: Add support for playback for VP8 Alpha vid..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 years, 8 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 | « trunk/src/media/base/simd/yuv_to_rgb_table.h ('k') | trunk/src/media/base/video_frame.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/base/simd/yuv_to_rgb_table.h" 5 #include "media/base/simd/yuv_to_rgb_table.h"
6 6
7 extern "C" { 7 extern "C" {
8 8
9 // Defines the R,G,B,A contributions from Y.
10 #define RGBY(i) { \ 9 #define RGBY(i) { \
11 static_cast<int16>(1.164 * 64 * (i - 16) + 0.5), \ 10 static_cast<int16>(1.164 * 64 * (i - 16) + 0.5), \
12 static_cast<int16>(1.164 * 64 * (i - 16) + 0.5), \ 11 static_cast<int16>(1.164 * 64 * (i - 16) + 0.5), \
13 static_cast<int16>(1.164 * 64 * (i - 16) + 0.5), \ 12 static_cast<int16>(1.164 * 64 * (i - 16) + 0.5), \
14 0 \ 13 0 \
15 } 14 }
16 15
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 #define RGBU(i) { \ 16 #define RGBU(i) { \
21 static_cast<int16>(2.018 * 64 * (i - 128) + 0.5), \ 17 static_cast<int16>(2.018 * 64 * (i - 128) + 0.5), \
22 static_cast<int16>(-0.391 * 64 * (i - 128) + 0.5), \ 18 static_cast<int16>(-0.391 * 64 * (i - 128) + 0.5), \
23 0, \ 19 0, \
24 static_cast<int16>(256 * 64 - 1) \ 20 static_cast<int16>(256 * 64 - 1) \
25 } 21 }
26 22
27 // Defines the R,G,B,A contributions from V.
28 #define RGBV(i) { \ 23 #define RGBV(i) { \
29 0, \ 24 0, \
30 static_cast<int16>(-0.813 * 64 * (i - 128) + 0.5), \ 25 static_cast<int16>(-0.813 * 64 * (i - 128) + 0.5), \
31 static_cast<int16>(1.596 * 64 * (i - 128) + 0.5), \ 26 static_cast<int16>(1.596 * 64 * (i - 128) + 0.5), \
32 0 \ 27 0 \
33 } 28 }
34 29
35 // Used to define a set of multiplier words for each alpha level. 30 SIMD_ALIGNED(int16 kCoefficientsRgbY[256 * 3][4]) = {
36 #define ALPHA(i) { \
37 i, i, i, i \
38 }
39
40 // The following table defines the RGBA contributions
41 // for each component of YUVA. The Y table is first followed
42 // by the U, and V tables. The alpha multiplier table follows.
43 // These tables are aligned and kept adjacent to optimize for
44 // SIMD and cacheing.
45
46 SIMD_ALIGNED(int16 kCoefficientsRgbY[256 * 4][4]) = {
47 RGBY(0x00), RGBY(0x01), RGBY(0x02), RGBY(0x03), 31 RGBY(0x00), RGBY(0x01), RGBY(0x02), RGBY(0x03),
48 RGBY(0x04), RGBY(0x05), RGBY(0x06), RGBY(0x07), 32 RGBY(0x04), RGBY(0x05), RGBY(0x06), RGBY(0x07),
49 RGBY(0x08), RGBY(0x09), RGBY(0x0A), RGBY(0x0B), 33 RGBY(0x08), RGBY(0x09), RGBY(0x0A), RGBY(0x0B),
50 RGBY(0x0C), RGBY(0x0D), RGBY(0x0E), RGBY(0x0F), 34 RGBY(0x0C), RGBY(0x0D), RGBY(0x0E), RGBY(0x0F),
51 RGBY(0x10), RGBY(0x11), RGBY(0x12), RGBY(0x13), 35 RGBY(0x10), RGBY(0x11), RGBY(0x12), RGBY(0x13),
52 RGBY(0x14), RGBY(0x15), RGBY(0x16), RGBY(0x17), 36 RGBY(0x14), RGBY(0x15), RGBY(0x16), RGBY(0x17),
53 RGBY(0x18), RGBY(0x19), RGBY(0x1A), RGBY(0x1B), 37 RGBY(0x18), RGBY(0x19), RGBY(0x1A), RGBY(0x1B),
54 RGBY(0x1C), RGBY(0x1D), RGBY(0x1E), RGBY(0x1F), 38 RGBY(0x1C), RGBY(0x1D), RGBY(0x1E), RGBY(0x1F),
55 RGBY(0x20), RGBY(0x21), RGBY(0x22), RGBY(0x23), 39 RGBY(0x20), RGBY(0x21), RGBY(0x22), RGBY(0x23),
56 RGBY(0x24), RGBY(0x25), RGBY(0x26), RGBY(0x27), 40 RGBY(0x24), RGBY(0x25), RGBY(0x26), RGBY(0x27),
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 RGBV(0xD8), RGBV(0xD9), RGBV(0xDA), RGBV(0xDB), 217 RGBV(0xD8), RGBV(0xD9), RGBV(0xDA), RGBV(0xDB),
234 RGBV(0xDC), RGBV(0xDD), RGBV(0xDE), RGBV(0xDF), 218 RGBV(0xDC), RGBV(0xDD), RGBV(0xDE), RGBV(0xDF),
235 RGBV(0xE0), RGBV(0xE1), RGBV(0xE2), RGBV(0xE3), 219 RGBV(0xE0), RGBV(0xE1), RGBV(0xE2), RGBV(0xE3),
236 RGBV(0xE4), RGBV(0xE5), RGBV(0xE6), RGBV(0xE7), 220 RGBV(0xE4), RGBV(0xE5), RGBV(0xE6), RGBV(0xE7),
237 RGBV(0xE8), RGBV(0xE9), RGBV(0xEA), RGBV(0xEB), 221 RGBV(0xE8), RGBV(0xE9), RGBV(0xEA), RGBV(0xEB),
238 RGBV(0xEC), RGBV(0xED), RGBV(0xEE), RGBV(0xEF), 222 RGBV(0xEC), RGBV(0xED), RGBV(0xEE), RGBV(0xEF),
239 RGBV(0xF0), RGBV(0xF1), RGBV(0xF2), RGBV(0xF3), 223 RGBV(0xF0), RGBV(0xF1), RGBV(0xF2), RGBV(0xF3),
240 RGBV(0xF4), RGBV(0xF5), RGBV(0xF6), RGBV(0xF7), 224 RGBV(0xF4), RGBV(0xF5), RGBV(0xF6), RGBV(0xF7),
241 RGBV(0xF8), RGBV(0xF9), RGBV(0xFA), RGBV(0xFB), 225 RGBV(0xF8), RGBV(0xF9), RGBV(0xFA), RGBV(0xFB),
242 RGBV(0xFC), RGBV(0xFD), RGBV(0xFE), RGBV(0xFF), 226 RGBV(0xFC), RGBV(0xFD), RGBV(0xFE), RGBV(0xFF),
243
244 // Alpha multipliers for each alpha level.
245 ALPHA(0x00), ALPHA(0x01), ALPHA(0x02), ALPHA(0x03),
246 ALPHA(0x04), ALPHA(0x05), ALPHA(0x06), ALPHA(0x07),
247 ALPHA(0x08), ALPHA(0x09), ALPHA(0x0A), ALPHA(0x0B),
248 ALPHA(0x0C), ALPHA(0x0D), ALPHA(0x0E), ALPHA(0x0F),
249 ALPHA(0x10), ALPHA(0x11), ALPHA(0x12), ALPHA(0x13),
250 ALPHA(0x14), ALPHA(0x15), ALPHA(0x16), ALPHA(0x17),
251 ALPHA(0x18), ALPHA(0x19), ALPHA(0x1A), ALPHA(0x1B),
252 ALPHA(0x1C), ALPHA(0x1D), ALPHA(0x1E), ALPHA(0x1F),
253 ALPHA(0x20), ALPHA(0x21), ALPHA(0x22), ALPHA(0x23),
254 ALPHA(0x24), ALPHA(0x25), ALPHA(0x26), ALPHA(0x27),
255 ALPHA(0x28), ALPHA(0x29), ALPHA(0x2A), ALPHA(0x2B),
256 ALPHA(0x2C), ALPHA(0x2D), ALPHA(0x2E), ALPHA(0x2F),
257 ALPHA(0x30), ALPHA(0x31), ALPHA(0x32), ALPHA(0x33),
258 ALPHA(0x34), ALPHA(0x35), ALPHA(0x36), ALPHA(0x37),
259 ALPHA(0x38), ALPHA(0x39), ALPHA(0x3A), ALPHA(0x3B),
260 ALPHA(0x3C), ALPHA(0x3D), ALPHA(0x3E), ALPHA(0x3F),
261 ALPHA(0x40), ALPHA(0x41), ALPHA(0x42), ALPHA(0x43),
262 ALPHA(0x44), ALPHA(0x45), ALPHA(0x46), ALPHA(0x47),
263 ALPHA(0x48), ALPHA(0x49), ALPHA(0x4A), ALPHA(0x4B),
264 ALPHA(0x4C), ALPHA(0x4D), ALPHA(0x4E), ALPHA(0x4F),
265 ALPHA(0x50), ALPHA(0x51), ALPHA(0x52), ALPHA(0x53),
266 ALPHA(0x54), ALPHA(0x55), ALPHA(0x56), ALPHA(0x57),
267 ALPHA(0x58), ALPHA(0x59), ALPHA(0x5A), ALPHA(0x5B),
268 ALPHA(0x5C), ALPHA(0x5D), ALPHA(0x5E), ALPHA(0x5F),
269 ALPHA(0x60), ALPHA(0x61), ALPHA(0x62), ALPHA(0x63),
270 ALPHA(0x64), ALPHA(0x65), ALPHA(0x66), ALPHA(0x67),
271 ALPHA(0x68), ALPHA(0x69), ALPHA(0x6A), ALPHA(0x6B),
272 ALPHA(0x6C), ALPHA(0x6D), ALPHA(0x6E), ALPHA(0x6F),
273 ALPHA(0x70), ALPHA(0x71), ALPHA(0x72), ALPHA(0x73),
274 ALPHA(0x74), ALPHA(0x75), ALPHA(0x76), ALPHA(0x77),
275 ALPHA(0x78), ALPHA(0x79), ALPHA(0x7A), ALPHA(0x7B),
276 ALPHA(0x7C), ALPHA(0x7D), ALPHA(0x7E), ALPHA(0x7F),
277 ALPHA(0x80), ALPHA(0x81), ALPHA(0x82), ALPHA(0x83),
278 ALPHA(0x84), ALPHA(0x85), ALPHA(0x86), ALPHA(0x87),
279 ALPHA(0x88), ALPHA(0x89), ALPHA(0x8A), ALPHA(0x8B),
280 ALPHA(0x8C), ALPHA(0x8D), ALPHA(0x8E), ALPHA(0x8F),
281 ALPHA(0x90), ALPHA(0x91), ALPHA(0x92), ALPHA(0x93),
282 ALPHA(0x94), ALPHA(0x95), ALPHA(0x96), ALPHA(0x97),
283 ALPHA(0x98), ALPHA(0x99), ALPHA(0x9A), ALPHA(0x9B),
284 ALPHA(0x9C), ALPHA(0x9D), ALPHA(0x9E), ALPHA(0x9F),
285 ALPHA(0xA0), ALPHA(0xA1), ALPHA(0xA2), ALPHA(0xA3),
286 ALPHA(0xA4), ALPHA(0xA5), ALPHA(0xA6), ALPHA(0xA7),
287 ALPHA(0xA8), ALPHA(0xA9), ALPHA(0xAA), ALPHA(0xAB),
288 ALPHA(0xAC), ALPHA(0xAD), ALPHA(0xAE), ALPHA(0xAF),
289 ALPHA(0xB0), ALPHA(0xB1), ALPHA(0xB2), ALPHA(0xB3),
290 ALPHA(0xB4), ALPHA(0xB5), ALPHA(0xB6), ALPHA(0xB7),
291 ALPHA(0xB8), ALPHA(0xB9), ALPHA(0xBA), ALPHA(0xBB),
292 ALPHA(0xBC), ALPHA(0xBD), ALPHA(0xBE), ALPHA(0xBF),
293 ALPHA(0xC0), ALPHA(0xC1), ALPHA(0xC2), ALPHA(0xC3),
294 ALPHA(0xC4), ALPHA(0xC5), ALPHA(0xC6), ALPHA(0xC7),
295 ALPHA(0xC8), ALPHA(0xC9), ALPHA(0xCA), ALPHA(0xCB),
296 ALPHA(0xCC), ALPHA(0xCD), ALPHA(0xCE), ALPHA(0xCF),
297 ALPHA(0xD0), ALPHA(0xD1), ALPHA(0xD2), ALPHA(0xD3),
298 ALPHA(0xD4), ALPHA(0xD5), ALPHA(0xD6), ALPHA(0xD7),
299 ALPHA(0xD8), ALPHA(0xD9), ALPHA(0xDA), ALPHA(0xDB),
300 ALPHA(0xDC), ALPHA(0xDD), ALPHA(0xDE), ALPHA(0xDF),
301 ALPHA(0xE0), ALPHA(0xE1), ALPHA(0xE2), ALPHA(0xE3),
302 ALPHA(0xE4), ALPHA(0xE5), ALPHA(0xE6), ALPHA(0xE7),
303 ALPHA(0xE8), ALPHA(0xE9), ALPHA(0xEA), ALPHA(0xEB),
304 ALPHA(0xEC), ALPHA(0xED), ALPHA(0xEE), ALPHA(0xEF),
305 ALPHA(0xF0), ALPHA(0xF1), ALPHA(0xF2), ALPHA(0xF3),
306 ALPHA(0xF4), ALPHA(0xF5), ALPHA(0xF6), ALPHA(0xF7),
307 ALPHA(0xF8), ALPHA(0xF9), ALPHA(0xFA), ALPHA(0xFB),
308 ALPHA(0xFC), ALPHA(0xFD), ALPHA(0xFE), ALPHA(0xFF),
309 }; 227 };
310 228
311 #undef RGBY 229 #undef RGBY
312 #undef RGBU 230 #undef RGBU
313 #undef RGBV 231 #undef RGBV
314 #undef ALPHA
315 232
316 } // extern "C" 233 } // extern "C"
OLDNEW
« no previous file with comments | « trunk/src/media/base/simd/yuv_to_rgb_table.h ('k') | trunk/src/media/base/video_frame.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698