tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

yuv_row_table.cpp (10495B)


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