Home | History | Annotate | Download | only in simd
      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.
      4 
      5 #include "media/base/simd/yuv_to_rgb_table.h"
      6 
      7 extern "C" {
      8 
      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 \
     15 }
     16 
     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) { \
     21   static_cast<int16>(2.018 * 64 * (i - 128) + 0.5), \
     22   static_cast<int16>(-0.391 * 64 * (i - 128) + 0.5), \
     23   0, \
     24   static_cast<int16>(256 * 64 - 1) \
     25 }
     26 
     27 // Defines the R,G,B,A contributions from V.
     28 #define RGBV(i) { \
     29   0, \
     30   static_cast<int16>(-0.813 * 64 * (i - 128) + 0.5), \
     31   static_cast<int16>(1.596 * 64 * (i - 128) + 0.5), \
     32   0 \
     33 }
     34 
     35 // Used to define a set of multiplier words for each alpha level.
     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(const int16 kCoefficientsRgbY[256 * 4][4]) = {
     47   RGBY(0x00), RGBY(0x01), RGBY(0x02), RGBY(0x03),
     48   RGBY(0x04), RGBY(0x05), RGBY(0x06), RGBY(0x07),
     49   RGBY(0x08), RGBY(0x09), RGBY(0x0A), RGBY(0x0B),
     50   RGBY(0x0C), RGBY(0x0D), RGBY(0x0E), RGBY(0x0F),
     51   RGBY(0x10), RGBY(0x11), RGBY(0x12), RGBY(0x13),
     52   RGBY(0x14), RGBY(0x15), RGBY(0x16), RGBY(0x17),
     53   RGBY(0x18), RGBY(0x19), RGBY(0x1A), RGBY(0x1B),
     54   RGBY(0x1C), RGBY(0x1D), RGBY(0x1E), RGBY(0x1F),
     55   RGBY(0x20), RGBY(0x21), RGBY(0x22), RGBY(0x23),
     56   RGBY(0x24), RGBY(0x25), RGBY(0x26), RGBY(0x27),
     57   RGBY(0x28), RGBY(0x29), RGBY(0x2A), RGBY(0x2B),
     58   RGBY(0x2C), RGBY(0x2D), RGBY(0x2E), RGBY(0x2F),
     59   RGBY(0x30), RGBY(0x31), RGBY(0x32), RGBY(0x33),
     60   RGBY(0x34), RGBY(0x35), RGBY(0x36), RGBY(0x37),
     61   RGBY(0x38), RGBY(0x39), RGBY(0x3A), RGBY(0x3B),
     62   RGBY(0x3C), RGBY(0x3D), RGBY(0x3E), RGBY(0x3F),
     63   RGBY(0x40), RGBY(0x41), RGBY(0x42), RGBY(0x43),
     64   RGBY(0x44), RGBY(0x45), RGBY(0x46), RGBY(0x47),
     65   RGBY(0x48), RGBY(0x49), RGBY(0x4A), RGBY(0x4B),
     66   RGBY(0x4C), RGBY(0x4D), RGBY(0x4E), RGBY(0x4F),
     67   RGBY(0x50), RGBY(0x51), RGBY(0x52), RGBY(0x53),
     68   RGBY(0x54), RGBY(0x55), RGBY(0x56), RGBY(0x57),
     69   RGBY(0x58), RGBY(0x59), RGBY(0x5A), RGBY(0x5B),
     70   RGBY(0x5C), RGBY(0x5D), RGBY(0x5E), RGBY(0x5F),
     71   RGBY(0x60), RGBY(0x61), RGBY(0x62), RGBY(0x63),
     72   RGBY(0x64), RGBY(0x65), RGBY(0x66), RGBY(0x67),
     73   RGBY(0x68), RGBY(0x69), RGBY(0x6A), RGBY(0x6B),
     74   RGBY(0x6C), RGBY(0x6D), RGBY(0x6E), RGBY(0x6F),
     75   RGBY(0x70), RGBY(0x71), RGBY(0x72), RGBY(0x73),
     76   RGBY(0x74), RGBY(0x75), RGBY(0x76), RGBY(0x77),
     77   RGBY(0x78), RGBY(0x79), RGBY(0x7A), RGBY(0x7B),
     78   RGBY(0x7C), RGBY(0x7D), RGBY(0x7E), RGBY(0x7F),
     79   RGBY(0x80), RGBY(0x81), RGBY(0x82), RGBY(0x83),
     80   RGBY(0x84), RGBY(0x85), RGBY(0x86), RGBY(0x87),
     81   RGBY(0x88), RGBY(0x89), RGBY(0x8A), RGBY(0x8B),
     82   RGBY(0x8C), RGBY(0x8D), RGBY(0x8E), RGBY(0x8F),
     83   RGBY(0x90), RGBY(0x91), RGBY(0x92), RGBY(0x93),
     84   RGBY(0x94), RGBY(0x95), RGBY(0x96), RGBY(0x97),
     85   RGBY(0x98), RGBY(0x99), RGBY(0x9A), RGBY(0x9B),
     86   RGBY(0x9C), RGBY(0x9D), RGBY(0x9E), RGBY(0x9F),
     87   RGBY(0xA0), RGBY(0xA1), RGBY(0xA2), RGBY(0xA3),
     88   RGBY(0xA4), RGBY(0xA5), RGBY(0xA6), RGBY(0xA7),
     89   RGBY(0xA8), RGBY(0xA9), RGBY(0xAA), RGBY(0xAB),
     90   RGBY(0xAC), RGBY(0xAD), RGBY(0xAE), RGBY(0xAF),
     91   RGBY(0xB0), RGBY(0xB1), RGBY(0xB2), RGBY(0xB3),
     92   RGBY(0xB4), RGBY(0xB5), RGBY(0xB6), RGBY(0xB7),
     93   RGBY(0xB8), RGBY(0xB9), RGBY(0xBA), RGBY(0xBB),
     94   RGBY(0xBC), RGBY(0xBD), RGBY(0xBE), RGBY(0xBF),
     95   RGBY(0xC0), RGBY(0xC1), RGBY(0xC2), RGBY(0xC3),
     96   RGBY(0xC4), RGBY(0xC5), RGBY(0xC6), RGBY(0xC7),
     97   RGBY(0xC8), RGBY(0xC9), RGBY(0xCA), RGBY(0xCB),
     98   RGBY(0xCC), RGBY(0xCD), RGBY(0xCE), RGBY(0xCF),
     99   RGBY(0xD0), RGBY(0xD1), RGBY(0xD2), RGBY(0xD3),
    100   RGBY(0xD4), RGBY(0xD5), RGBY(0xD6), RGBY(0xD7),
    101   RGBY(0xD8), RGBY(0xD9), RGBY(0xDA), RGBY(0xDB),
    102   RGBY(0xDC), RGBY(0xDD), RGBY(0xDE), RGBY(0xDF),
    103   RGBY(0xE0), RGBY(0xE1), RGBY(0xE2), RGBY(0xE3),
    104   RGBY(0xE4), RGBY(0xE5), RGBY(0xE6), RGBY(0xE7),
    105   RGBY(0xE8), RGBY(0xE9), RGBY(0xEA), RGBY(0xEB),
    106   RGBY(0xEC), RGBY(0xED), RGBY(0xEE), RGBY(0xEF),
    107   RGBY(0xF0), RGBY(0xF1), RGBY(0xF2), RGBY(0xF3),
    108   RGBY(0xF4), RGBY(0xF5), RGBY(0xF6), RGBY(0xF7),
    109   RGBY(0xF8), RGBY(0xF9), RGBY(0xFA), RGBY(0xFB),
    110   RGBY(0xFC), RGBY(0xFD), RGBY(0xFE), RGBY(0xFF),
    111 
    112   // Chroma U table.
    113   RGBU(0x00), RGBU(0x01), RGBU(0x02), RGBU(0x03),
    114   RGBU(0x04), RGBU(0x05), RGBU(0x06), RGBU(0x07),
    115   RGBU(0x08), RGBU(0x09), RGBU(0x0A), RGBU(0x0B),
    116   RGBU(0x0C), RGBU(0x0D), RGBU(0x0E), RGBU(0x0F),
    117   RGBU(0x10), RGBU(0x11), RGBU(0x12), RGBU(0x13),
    118   RGBU(0x14), RGBU(0x15), RGBU(0x16), RGBU(0x17),
    119   RGBU(0x18), RGBU(0x19), RGBU(0x1A), RGBU(0x1B),
    120   RGBU(0x1C), RGBU(0x1D), RGBU(0x1E), RGBU(0x1F),
    121   RGBU(0x20), RGBU(0x21), RGBU(0x22), RGBU(0x23),
    122   RGBU(0x24), RGBU(0x25), RGBU(0x26), RGBU(0x27),
    123   RGBU(0x28), RGBU(0x29), RGBU(0x2A), RGBU(0x2B),
    124   RGBU(0x2C), RGBU(0x2D), RGBU(0x2E), RGBU(0x2F),
    125   RGBU(0x30), RGBU(0x31), RGBU(0x32), RGBU(0x33),
    126   RGBU(0x34), RGBU(0x35), RGBU(0x36), RGBU(0x37),
    127   RGBU(0x38), RGBU(0x39), RGBU(0x3A), RGBU(0x3B),
    128   RGBU(0x3C), RGBU(0x3D), RGBU(0x3E), RGBU(0x3F),
    129   RGBU(0x40), RGBU(0x41), RGBU(0x42), RGBU(0x43),
    130   RGBU(0x44), RGBU(0x45), RGBU(0x46), RGBU(0x47),
    131   RGBU(0x48), RGBU(0x49), RGBU(0x4A), RGBU(0x4B),
    132   RGBU(0x4C), RGBU(0x4D), RGBU(0x4E), RGBU(0x4F),
    133   RGBU(0x50), RGBU(0x51), RGBU(0x52), RGBU(0x53),
    134   RGBU(0x54), RGBU(0x55), RGBU(0x56), RGBU(0x57),
    135   RGBU(0x58), RGBU(0x59), RGBU(0x5A), RGBU(0x5B),
    136   RGBU(0x5C), RGBU(0x5D), RGBU(0x5E), RGBU(0x5F),
    137   RGBU(0x60), RGBU(0x61), RGBU(0x62), RGBU(0x63),
    138   RGBU(0x64), RGBU(0x65), RGBU(0x66), RGBU(0x67),
    139   RGBU(0x68), RGBU(0x69), RGBU(0x6A), RGBU(0x6B),
    140   RGBU(0x6C), RGBU(0x6D), RGBU(0x6E), RGBU(0x6F),
    141   RGBU(0x70), RGBU(0x71), RGBU(0x72), RGBU(0x73),
    142   RGBU(0x74), RGBU(0x75), RGBU(0x76), RGBU(0x77),
    143   RGBU(0x78), RGBU(0x79), RGBU(0x7A), RGBU(0x7B),
    144   RGBU(0x7C), RGBU(0x7D), RGBU(0x7E), RGBU(0x7F),
    145   RGBU(0x80), RGBU(0x81), RGBU(0x82), RGBU(0x83),
    146   RGBU(0x84), RGBU(0x85), RGBU(0x86), RGBU(0x87),
    147   RGBU(0x88), RGBU(0x89), RGBU(0x8A), RGBU(0x8B),
    148   RGBU(0x8C), RGBU(0x8D), RGBU(0x8E), RGBU(0x8F),
    149   RGBU(0x90), RGBU(0x91), RGBU(0x92), RGBU(0x93),
    150   RGBU(0x94), RGBU(0x95), RGBU(0x96), RGBU(0x97),
    151   RGBU(0x98), RGBU(0x99), RGBU(0x9A), RGBU(0x9B),
    152   RGBU(0x9C), RGBU(0x9D), RGBU(0x9E), RGBU(0x9F),
    153   RGBU(0xA0), RGBU(0xA1), RGBU(0xA2), RGBU(0xA3),
    154   RGBU(0xA4), RGBU(0xA5), RGBU(0xA6), RGBU(0xA7),
    155   RGBU(0xA8), RGBU(0xA9), RGBU(0xAA), RGBU(0xAB),
    156   RGBU(0xAC), RGBU(0xAD), RGBU(0xAE), RGBU(0xAF),
    157   RGBU(0xB0), RGBU(0xB1), RGBU(0xB2), RGBU(0xB3),
    158   RGBU(0xB4), RGBU(0xB5), RGBU(0xB6), RGBU(0xB7),
    159   RGBU(0xB8), RGBU(0xB9), RGBU(0xBA), RGBU(0xBB),
    160   RGBU(0xBC), RGBU(0xBD), RGBU(0xBE), RGBU(0xBF),
    161   RGBU(0xC0), RGBU(0xC1), RGBU(0xC2), RGBU(0xC3),
    162   RGBU(0xC4), RGBU(0xC5), RGBU(0xC6), RGBU(0xC7),
    163   RGBU(0xC8), RGBU(0xC9), RGBU(0xCA), RGBU(0xCB),
    164   RGBU(0xCC), RGBU(0xCD), RGBU(0xCE), RGBU(0xCF),
    165   RGBU(0xD0), RGBU(0xD1), RGBU(0xD2), RGBU(0xD3),
    166   RGBU(0xD4), RGBU(0xD5), RGBU(0xD6), RGBU(0xD7),
    167   RGBU(0xD8), RGBU(0xD9), RGBU(0xDA), RGBU(0xDB),
    168   RGBU(0xDC), RGBU(0xDD), RGBU(0xDE), RGBU(0xDF),
    169   RGBU(0xE0), RGBU(0xE1), RGBU(0xE2), RGBU(0xE3),
    170   RGBU(0xE4), RGBU(0xE5), RGBU(0xE6), RGBU(0xE7),
    171   RGBU(0xE8), RGBU(0xE9), RGBU(0xEA), RGBU(0xEB),
    172   RGBU(0xEC), RGBU(0xED), RGBU(0xEE), RGBU(0xEF),
    173   RGBU(0xF0), RGBU(0xF1), RGBU(0xF2), RGBU(0xF3),
    174   RGBU(0xF4), RGBU(0xF5), RGBU(0xF6), RGBU(0xF7),
    175   RGBU(0xF8), RGBU(0xF9), RGBU(0xFA), RGBU(0xFB),
    176   RGBU(0xFC), RGBU(0xFD), RGBU(0xFE), RGBU(0xFF),
    177 
    178   // Chroma V table.
    179   RGBV(0x00), RGBV(0x01), RGBV(0x02), RGBV(0x03),
    180   RGBV(0x04), RGBV(0x05), RGBV(0x06), RGBV(0x07),
    181   RGBV(0x08), RGBV(0x09), RGBV(0x0A), RGBV(0x0B),
    182   RGBV(0x0C), RGBV(0x0D), RGBV(0x0E), RGBV(0x0F),
    183   RGBV(0x10), RGBV(0x11), RGBV(0x12), RGBV(0x13),
    184   RGBV(0x14), RGBV(0x15), RGBV(0x16), RGBV(0x17),
    185   RGBV(0x18), RGBV(0x19), RGBV(0x1A), RGBV(0x1B),
    186   RGBV(0x1C), RGBV(0x1D), RGBV(0x1E), RGBV(0x1F),
    187   RGBV(0x20), RGBV(0x21), RGBV(0x22), RGBV(0x23),
    188   RGBV(0x24), RGBV(0x25), RGBV(0x26), RGBV(0x27),
    189   RGBV(0x28), RGBV(0x29), RGBV(0x2A), RGBV(0x2B),
    190   RGBV(0x2C), RGBV(0x2D), RGBV(0x2E), RGBV(0x2F),
    191   RGBV(0x30), RGBV(0x31), RGBV(0x32), RGBV(0x33),
    192   RGBV(0x34), RGBV(0x35), RGBV(0x36), RGBV(0x37),
    193   RGBV(0x38), RGBV(0x39), RGBV(0x3A), RGBV(0x3B),
    194   RGBV(0x3C), RGBV(0x3D), RGBV(0x3E), RGBV(0x3F),
    195   RGBV(0x40), RGBV(0x41), RGBV(0x42), RGBV(0x43),
    196   RGBV(0x44), RGBV(0x45), RGBV(0x46), RGBV(0x47),
    197   RGBV(0x48), RGBV(0x49), RGBV(0x4A), RGBV(0x4B),
    198   RGBV(0x4C), RGBV(0x4D), RGBV(0x4E), RGBV(0x4F),
    199   RGBV(0x50), RGBV(0x51), RGBV(0x52), RGBV(0x53),
    200   RGBV(0x54), RGBV(0x55), RGBV(0x56), RGBV(0x57),
    201   RGBV(0x58), RGBV(0x59), RGBV(0x5A), RGBV(0x5B),
    202   RGBV(0x5C), RGBV(0x5D), RGBV(0x5E), RGBV(0x5F),
    203   RGBV(0x60), RGBV(0x61), RGBV(0x62), RGBV(0x63),
    204   RGBV(0x64), RGBV(0x65), RGBV(0x66), RGBV(0x67),
    205   RGBV(0x68), RGBV(0x69), RGBV(0x6A), RGBV(0x6B),
    206   RGBV(0x6C), RGBV(0x6D), RGBV(0x6E), RGBV(0x6F),
    207   RGBV(0x70), RGBV(0x71), RGBV(0x72), RGBV(0x73),
    208   RGBV(0x74), RGBV(0x75), RGBV(0x76), RGBV(0x77),
    209   RGBV(0x78), RGBV(0x79), RGBV(0x7A), RGBV(0x7B),
    210   RGBV(0x7C), RGBV(0x7D), RGBV(0x7E), RGBV(0x7F),
    211   RGBV(0x80), RGBV(0x81), RGBV(0x82), RGBV(0x83),
    212   RGBV(0x84), RGBV(0x85), RGBV(0x86), RGBV(0x87),
    213   RGBV(0x88), RGBV(0x89), RGBV(0x8A), RGBV(0x8B),
    214   RGBV(0x8C), RGBV(0x8D), RGBV(0x8E), RGBV(0x8F),
    215   RGBV(0x90), RGBV(0x91), RGBV(0x92), RGBV(0x93),
    216   RGBV(0x94), RGBV(0x95), RGBV(0x96), RGBV(0x97),
    217   RGBV(0x98), RGBV(0x99), RGBV(0x9A), RGBV(0x9B),
    218   RGBV(0x9C), RGBV(0x9D), RGBV(0x9E), RGBV(0x9F),
    219   RGBV(0xA0), RGBV(0xA1), RGBV(0xA2), RGBV(0xA3),
    220   RGBV(0xA4), RGBV(0xA5), RGBV(0xA6), RGBV(0xA7),
    221   RGBV(0xA8), RGBV(0xA9), RGBV(0xAA), RGBV(0xAB),
    222   RGBV(0xAC), RGBV(0xAD), RGBV(0xAE), RGBV(0xAF),
    223   RGBV(0xB0), RGBV(0xB1), RGBV(0xB2), RGBV(0xB3),
    224   RGBV(0xB4), RGBV(0xB5), RGBV(0xB6), RGBV(0xB7),
    225   RGBV(0xB8), RGBV(0xB9), RGBV(0xBA), RGBV(0xBB),
    226   RGBV(0xBC), RGBV(0xBD), RGBV(0xBE), RGBV(0xBF),
    227   RGBV(0xC0), RGBV(0xC1), RGBV(0xC2), RGBV(0xC3),
    228   RGBV(0xC4), RGBV(0xC5), RGBV(0xC6), RGBV(0xC7),
    229   RGBV(0xC8), RGBV(0xC9), RGBV(0xCA), RGBV(0xCB),
    230   RGBV(0xCC), RGBV(0xCD), RGBV(0xCE), RGBV(0xCF),
    231   RGBV(0xD0), RGBV(0xD1), RGBV(0xD2), RGBV(0xD3),
    232   RGBV(0xD4), RGBV(0xD5), RGBV(0xD6), RGBV(0xD7),
    233   RGBV(0xD8), RGBV(0xD9), RGBV(0xDA), RGBV(0xDB),
    234   RGBV(0xDC), RGBV(0xDD), RGBV(0xDE), RGBV(0xDF),
    235   RGBV(0xE0), RGBV(0xE1), RGBV(0xE2), RGBV(0xE3),
    236   RGBV(0xE4), RGBV(0xE5), RGBV(0xE6), RGBV(0xE7),
    237   RGBV(0xE8), RGBV(0xE9), RGBV(0xEA), RGBV(0xEB),
    238   RGBV(0xEC), RGBV(0xED), RGBV(0xEE), RGBV(0xEF),
    239   RGBV(0xF0), RGBV(0xF1), RGBV(0xF2), RGBV(0xF3),
    240   RGBV(0xF4), RGBV(0xF5), RGBV(0xF6), RGBV(0xF7),
    241   RGBV(0xF8), RGBV(0xF9), RGBV(0xFA), RGBV(0xFB),
    242   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 };
    310 
    311 #undef RGBY
    312 #undef RGBU
    313 #undef RGBV
    314 #undef ALPHA
    315 
    316 }  // extern "C"
    317