// Copyright (c) 2010 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "yuv_row.h"
extern "C" {
#define RGBY(i) { \
static_cast <int16_t>(1 .164 * 64 * (i - 16 ) + 0 .5 ), \
static_cast <int16_t>(1 .164 * 64 * (i - 16 ) + 0 .5 ), \
static_cast <int16_t>(1 .164 * 64 * (i - 16 ) + 0 .5 ), \
0 \
}
#define RGBU(i) { \
static_cast <int16_t>(2 .018 * 64 * (i - 128 ) + 0 .5 ), \
static_cast <int16_t>(-0 .391 * 64 * (i - 128 ) + 0 .5 ), \
0 , \
static_cast <int16_t>(256 * 64 - 1 ) \
}
#define RGBV(i) { \
0 , \
static_cast <int16_t>(-0 .813 * 64 * (i - 128 ) + 0 .5 ), \
static_cast <int16_t>(1 .596 * 64 * (i - 128 ) + 0 .5 ), \
0 \
}
SIMD_ALIGNED(const int16_t kCoefficientsRgbY[256 * 3 ][4 ]) = {
RGBY(0 x00), RGBY(0 x01), RGBY(0 x02), RGBY(0 x03),
RGBY(0 x04), RGBY(0 x05), RGBY(0 x06), RGBY(0 x07),
RGBY(0 x08), RGBY(0 x09), RGBY(0 x0A), RGBY(0 x0B),
RGBY(0 x0C), RGBY(0 x0D), RGBY(0 x0E), RGBY(0 x0F),
RGBY(0 x10), RGBY(0 x11), RGBY(0 x12), RGBY(0 x13),
RGBY(0 x14), RGBY(0 x15), RGBY(0 x16), RGBY(0 x17),
RGBY(0 x18), RGBY(0 x19), RGBY(0 x1A), RGBY(0 x1B),
RGBY(0 x1C), RGBY(0 x1D), RGBY(0 x1E), RGBY(0 x1F),
RGBY(0 x20), RGBY(0 x21), RGBY(0 x22), RGBY(0 x23),
RGBY(0 x24), RGBY(0 x25), RGBY(0 x26), RGBY(0 x27),
RGBY(0 x28), RGBY(0 x29), RGBY(0 x2A), RGBY(0 x2B),
RGBY(0 x2C), RGBY(0 x2D), RGBY(0 x2E), RGBY(0 x2F),
RGBY(0 x30), RGBY(0 x31), RGBY(0 x32), RGBY(0 x33),
RGBY(0 x34), RGBY(0 x35), RGBY(0 x36), RGBY(0 x37),
RGBY(0 x38), RGBY(0 x39), RGBY(0 x3A), RGBY(0 x3B),
RGBY(0 x3C), RGBY(0 x3D), RGBY(0 x3E), RGBY(0 x3F),
RGBY(0 x40), RGBY(0 x41), RGBY(0 x42), RGBY(0 x43),
RGBY(0 x44), RGBY(0 x45), RGBY(0 x46), RGBY(0 x47),
RGBY(0 x48), RGBY(0 x49), RGBY(0 x4A), RGBY(0 x4B),
RGBY(0 x4C), RGBY(0 x4D), RGBY(0 x4E), RGBY(0 x4F),
RGBY(0 x50), RGBY(0 x51), RGBY(0 x52), RGBY(0 x53),
RGBY(0 x54), RGBY(0 x55), RGBY(0 x56), RGBY(0 x57),
RGBY(0 x58), RGBY(0 x59), RGBY(0 x5A), RGBY(0 x5B),
RGBY(0 x5C), RGBY(0 x5D), RGBY(0 x5E), RGBY(0 x5F),
RGBY(0 x60), RGBY(0 x61), RGBY(0 x62), RGBY(0 x63),
RGBY(0 x64), RGBY(0 x65), RGBY(0 x66), RGBY(0 x67),
RGBY(0 x68), RGBY(0 x69), RGBY(0 x6A), RGBY(0 x6B),
RGBY(0 x6C), RGBY(0 x6D), RGBY(0 x6E), RGBY(0 x6F),
RGBY(0 x70), RGBY(0 x71), RGBY(0 x72), RGBY(0 x73),
RGBY(0 x74), RGBY(0 x75), RGBY(0 x76), RGBY(0 x77),
RGBY(0 x78), RGBY(0 x79), RGBY(0 x7A), RGBY(0 x7B),
RGBY(0 x7C), RGBY(0 x7D), RGBY(0 x7E), RGBY(0 x7F),
RGBY(0 x80), RGBY(0 x81), RGBY(0 x82), RGBY(0 x83),
RGBY(0 x84), RGBY(0 x85), RGBY(0 x86), RGBY(0 x87),
RGBY(0 x88), RGBY(0 x89), RGBY(0 x8A), RGBY(0 x8B),
RGBY(0 x8C), RGBY(0 x8D), RGBY(0 x8E), RGBY(0 x8F),
RGBY(0 x90), RGBY(0 x91), RGBY(0 x92), RGBY(0 x93),
RGBY(0 x94), RGBY(0 x95), RGBY(0 x96), RGBY(0 x97),
RGBY(0 x98), RGBY(0 x99), RGBY(0 x9A), RGBY(0 x9B),
RGBY(0 x9C), RGBY(0 x9D), RGBY(0 x9E), RGBY(0 x9F),
RGBY(0 xA0), RGBY(0 xA1), RGBY(0 xA2), RGBY(0 xA3),
RGBY(0 xA4), RGBY(0 xA5), RGBY(0 xA6), RGBY(0 xA7),
RGBY(0 xA8), RGBY(0 xA9), RGBY(0 xAA), RGBY(0 xAB),
RGBY(0 xAC), RGBY(0 xAD), RGBY(0 xAE), RGBY(0 xAF),
RGBY(0 xB0), RGBY(0 xB1), RGBY(0 xB2), RGBY(0 xB3),
RGBY(0 xB4), RGBY(0 xB5), RGBY(0 xB6), RGBY(0 xB7),
RGBY(0 xB8), RGBY(0 xB9), RGBY(0 xBA), RGBY(0 xBB),
RGBY(0 xBC), RGBY(0 xBD), RGBY(0 xBE), RGBY(0 xBF),
RGBY(0 xC0), RGBY(0 xC1), RGBY(0 xC2), RGBY(0 xC3),
RGBY(0 xC4), RGBY(0 xC5), RGBY(0 xC6), RGBY(0 xC7),
RGBY(0 xC8), RGBY(0 xC9), RGBY(0 xCA), RGBY(0 xCB),
RGBY(0 xCC), RGBY(0 xCD), RGBY(0 xCE), RGBY(0 xCF),
RGBY(0 xD0), RGBY(0 xD1), RGBY(0 xD2), RGBY(0 xD3),
RGBY(0 xD4), RGBY(0 xD5), RGBY(0 xD6), RGBY(0 xD7),
RGBY(0 xD8), RGBY(0 xD9), RGBY(0 xDA), RGBY(0 xDB),
RGBY(0 xDC), RGBY(0 xDD), RGBY(0 xDE), RGBY(0 xDF),
RGBY(0 xE0), RGBY(0 xE1), RGBY(0 xE2), RGBY(0 xE3),
RGBY(0 xE4), RGBY(0 xE5), RGBY(0 xE6), RGBY(0 xE7),
RGBY(0 xE8), RGBY(0 xE9), RGBY(0 xEA), RGBY(0 xEB),
RGBY(0 xEC), RGBY(0 xED), RGBY(0 xEE), RGBY(0 xEF),
RGBY(0 xF0), RGBY(0 xF1), RGBY(0 xF2), RGBY(0 xF3),
RGBY(0 xF4), RGBY(0 xF5), RGBY(0 xF6), RGBY(0 xF7),
RGBY(0 xF8), RGBY(0 xF9), RGBY(0 xFA), RGBY(0 xFB),
RGBY(0 xFC), RGBY(0 xFD), RGBY(0 xFE), RGBY(0 xFF),
// Chroma U table.
RGBU(0 x00), RGBU(0 x01), RGBU(0 x02), RGBU(0 x03),
RGBU(0 x04), RGBU(0 x05), RGBU(0 x06), RGBU(0 x07),
RGBU(0 x08), RGBU(0 x09), RGBU(0 x0A), RGBU(0 x0B),
RGBU(0 x0C), RGBU(0 x0D), RGBU(0 x0E), RGBU(0 x0F),
RGBU(0 x10), RGBU(0 x11), RGBU(0 x12), RGBU(0 x13),
RGBU(0 x14), RGBU(0 x15), RGBU(0 x16), RGBU(0 x17),
RGBU(0 x18), RGBU(0 x19), RGBU(0 x1A), RGBU(0 x1B),
RGBU(0 x1C), RGBU(0 x1D), RGBU(0 x1E), RGBU(0 x1F),
RGBU(0 x20), RGBU(0 x21), RGBU(0 x22), RGBU(0 x23),
RGBU(0 x24), RGBU(0 x25), RGBU(0 x26), RGBU(0 x27),
RGBU(0 x28), RGBU(0 x29), RGBU(0 x2A), RGBU(0 x2B),
RGBU(0 x2C), RGBU(0 x2D), RGBU(0 x2E), RGBU(0 x2F),
RGBU(0 x30), RGBU(0 x31), RGBU(0 x32), RGBU(0 x33),
RGBU(0 x34), RGBU(0 x35), RGBU(0 x36), RGBU(0 x37),
RGBU(0 x38), RGBU(0 x39), RGBU(0 x3A), RGBU(0 x3B),
RGBU(0 x3C), RGBU(0 x3D), RGBU(0 x3E), RGBU(0 x3F),
RGBU(0 x40), RGBU(0 x41), RGBU(0 x42), RGBU(0 x43),
RGBU(0 x44), RGBU(0 x45), RGBU(0 x46), RGBU(0 x47),
RGBU(0 x48), RGBU(0 x49), RGBU(0 x4A), RGBU(0 x4B),
RGBU(0 x4C), RGBU(0 x4D), RGBU(0 x4E), RGBU(0 x4F),
RGBU(0 x50), RGBU(0 x51), RGBU(0 x52), RGBU(0 x53),
RGBU(0 x54), RGBU(0 x55), RGBU(0 x56), RGBU(0 x57),
RGBU(0 x58), RGBU(0 x59), RGBU(0 x5A), RGBU(0 x5B),
RGBU(0 x5C), RGBU(0 x5D), RGBU(0 x5E), RGBU(0 x5F),
RGBU(0 x60), RGBU(0 x61), RGBU(0 x62), RGBU(0 x63),
RGBU(0 x64), RGBU(0 x65), RGBU(0 x66), RGBU(0 x67),
RGBU(0 x68), RGBU(0 x69), RGBU(0 x6A), RGBU(0 x6B),
RGBU(0 x6C), RGBU(0 x6D), RGBU(0 x6E), RGBU(0 x6F),
RGBU(0 x70), RGBU(0 x71), RGBU(0 x72), RGBU(0 x73),
RGBU(0 x74), RGBU(0 x75), RGBU(0 x76), RGBU(0 x77),
RGBU(0 x78), RGBU(0 x79), RGBU(0 x7A), RGBU(0 x7B),
RGBU(0 x7C), RGBU(0 x7D), RGBU(0 x7E), RGBU(0 x7F),
RGBU(0 x80), RGBU(0 x81), RGBU(0 x82), RGBU(0 x83),
RGBU(0 x84), RGBU(0 x85), RGBU(0 x86), RGBU(0 x87),
RGBU(0 x88), RGBU(0 x89), RGBU(0 x8A), RGBU(0 x8B),
RGBU(0 x8C), RGBU(0 x8D), RGBU(0 x8E), RGBU(0 x8F),
RGBU(0 x90), RGBU(0 x91), RGBU(0 x92), RGBU(0 x93),
RGBU(0 x94), RGBU(0 x95), RGBU(0 x96), RGBU(0 x97),
RGBU(0 x98), RGBU(0 x99), RGBU(0 x9A), RGBU(0 x9B),
RGBU(0 x9C), RGBU(0 x9D), RGBU(0 x9E), RGBU(0 x9F),
RGBU(0 xA0), RGBU(0 xA1), RGBU(0 xA2), RGBU(0 xA3),
RGBU(0 xA4), RGBU(0 xA5), RGBU(0 xA6), RGBU(0 xA7),
RGBU(0 xA8), RGBU(0 xA9), RGBU(0 xAA), RGBU(0 xAB),
RGBU(0 xAC), RGBU(0 xAD), RGBU(0 xAE), RGBU(0 xAF),
RGBU(0 xB0), RGBU(0 xB1), RGBU(0 xB2), RGBU(0 xB3),
RGBU(0 xB4), RGBU(0 xB5), RGBU(0 xB6), RGBU(0 xB7),
RGBU(0 xB8), RGBU(0 xB9), RGBU(0 xBA), RGBU(0 xBB),
RGBU(0 xBC), RGBU(0 xBD), RGBU(0 xBE), RGBU(0 xBF),
RGBU(0 xC0), RGBU(0 xC1), RGBU(0 xC2), RGBU(0 xC3),
RGBU(0 xC4), RGBU(0 xC5), RGBU(0 xC6), RGBU(0 xC7),
RGBU(0 xC8), RGBU(0 xC9), RGBU(0 xCA), RGBU(0 xCB),
RGBU(0 xCC), RGBU(0 xCD), RGBU(0 xCE), RGBU(0 xCF),
RGBU(0 xD0), RGBU(0 xD1), RGBU(0 xD2), RGBU(0 xD3),
RGBU(0 xD4), RGBU(0 xD5), RGBU(0 xD6), RGBU(0 xD7),
RGBU(0 xD8), RGBU(0 xD9), RGBU(0 xDA), RGBU(0 xDB),
RGBU(0 xDC), RGBU(0 xDD), RGBU(0 xDE), RGBU(0 xDF),
RGBU(0 xE0), RGBU(0 xE1), RGBU(0 xE2), RGBU(0 xE3),
RGBU(0 xE4), RGBU(0 xE5), RGBU(0 xE6), RGBU(0 xE7),
RGBU(0 xE8), RGBU(0 xE9), RGBU(0 xEA), RGBU(0 xEB),
RGBU(0 xEC), RGBU(0 xED), RGBU(0 xEE), RGBU(0 xEF),
RGBU(0 xF0), RGBU(0 xF1), RGBU(0 xF2), RGBU(0 xF3),
RGBU(0 xF4), RGBU(0 xF5), RGBU(0 xF6), RGBU(0 xF7),
RGBU(0 xF8), RGBU(0 xF9), RGBU(0 xFA), RGBU(0 xFB),
RGBU(0 xFC), RGBU(0 xFD), RGBU(0 xFE), RGBU(0 xFF),
// Chroma V table.
RGBV(0 x00), RGBV(0 x01), RGBV(0 x02), RGBV(0 x03),
RGBV(0 x04), RGBV(0 x05), RGBV(0 x06), RGBV(0 x07),
RGBV(0 x08), RGBV(0 x09), RGBV(0 x0A), RGBV(0 x0B),
RGBV(0 x0C), RGBV(0 x0D), RGBV(0 x0E), RGBV(0 x0F),
RGBV(0 x10), RGBV(0 x11), RGBV(0 x12), RGBV(0 x13),
RGBV(0 x14), RGBV(0 x15), RGBV(0 x16), RGBV(0 x17),
RGBV(0 x18), RGBV(0 x19), RGBV(0 x1A), RGBV(0 x1B),
RGBV(0 x1C), RGBV(0 x1D), RGBV(0 x1E), RGBV(0 x1F),
RGBV(0 x20), RGBV(0 x21), RGBV(0 x22), RGBV(0 x23),
RGBV(0 x24), RGBV(0 x25), RGBV(0 x26), RGBV(0 x27),
RGBV(0 x28), RGBV(0 x29), RGBV(0 x2A), RGBV(0 x2B),
RGBV(0 x2C), RGBV(0 x2D), RGBV(0 x2E), RGBV(0 x2F),
RGBV(0 x30), RGBV(0 x31), RGBV(0 x32), RGBV(0 x33),
RGBV(0 x34), RGBV(0 x35), RGBV(0 x36), RGBV(0 x37),
RGBV(0 x38), RGBV(0 x39), RGBV(0 x3A), RGBV(0 x3B),
RGBV(0 x3C), RGBV(0 x3D), RGBV(0 x3E), RGBV(0 x3F),
RGBV(0 x40), RGBV(0 x41), RGBV(0 x42), RGBV(0 x43),
RGBV(0 x44), RGBV(0 x45), RGBV(0 x46), RGBV(0 x47),
RGBV(0 x48), RGBV(0 x49), RGBV(0 x4A), RGBV(0 x4B),
RGBV(0 x4C), RGBV(0 x4D), RGBV(0 x4E), RGBV(0 x4F),
RGBV(0 x50), RGBV(0 x51), RGBV(0 x52), RGBV(0 x53),
RGBV(0 x54), RGBV(0 x55), RGBV(0 x56), RGBV(0 x57),
RGBV(0 x58), RGBV(0 x59), RGBV(0 x5A), RGBV(0 x5B),
RGBV(0 x5C), RGBV(0 x5D), RGBV(0 x5E), RGBV(0 x5F),
RGBV(0 x60), RGBV(0 x61), RGBV(0 x62), RGBV(0 x63),
RGBV(0 x64), RGBV(0 x65), RGBV(0 x66), RGBV(0 x67),
RGBV(0 x68), RGBV(0 x69), RGBV(0 x6A), RGBV(0 x6B),
RGBV(0 x6C), RGBV(0 x6D), RGBV(0 x6E), RGBV(0 x6F),
RGBV(0 x70), RGBV(0 x71), RGBV(0 x72), RGBV(0 x73),
RGBV(0 x74), RGBV(0 x75), RGBV(0 x76), RGBV(0 x77),
RGBV(0 x78), RGBV(0 x79), RGBV(0 x7A), RGBV(0 x7B),
RGBV(0 x7C), RGBV(0 x7D), RGBV(0 x7E), RGBV(0 x7F),
RGBV(0 x80), RGBV(0 x81), RGBV(0 x82), RGBV(0 x83),
RGBV(0 x84), RGBV(0 x85), RGBV(0 x86), RGBV(0 x87),
RGBV(0 x88), RGBV(0 x89), RGBV(0 x8A), RGBV(0 x8B),
RGBV(0 x8C), RGBV(0 x8D), RGBV(0 x8E), RGBV(0 x8F),
RGBV(0 x90), RGBV(0 x91), RGBV(0 x92), RGBV(0 x93),
RGBV(0 x94), RGBV(0 x95), RGBV(0 x96), RGBV(0 x97),
RGBV(0 x98), RGBV(0 x99), RGBV(0 x9A), RGBV(0 x9B),
RGBV(0 x9C), RGBV(0 x9D), RGBV(0 x9E), RGBV(0 x9F),
RGBV(0 xA0), RGBV(0 xA1), RGBV(0 xA2), RGBV(0 xA3),
RGBV(0 xA4), RGBV(0 xA5), RGBV(0 xA6), RGBV(0 xA7),
RGBV(0 xA8), RGBV(0 xA9), RGBV(0 xAA), RGBV(0 xAB),
RGBV(0 xAC), RGBV(0 xAD), RGBV(0 xAE), RGBV(0 xAF),
RGBV(0 xB0), RGBV(0 xB1), RGBV(0 xB2), RGBV(0 xB3),
RGBV(0 xB4), RGBV(0 xB5), RGBV(0 xB6), RGBV(0 xB7),
RGBV(0 xB8), RGBV(0 xB9), RGBV(0 xBA), RGBV(0 xBB),
RGBV(0 xBC), RGBV(0 xBD), RGBV(0 xBE), RGBV(0 xBF),
RGBV(0 xC0), RGBV(0 xC1), RGBV(0 xC2), RGBV(0 xC3),
RGBV(0 xC4), RGBV(0 xC5), RGBV(0 xC6), RGBV(0 xC7),
RGBV(0 xC8), RGBV(0 xC9), RGBV(0 xCA), RGBV(0 xCB),
RGBV(0 xCC), RGBV(0 xCD), RGBV(0 xCE), RGBV(0 xCF),
RGBV(0 xD0), RGBV(0 xD1), RGBV(0 xD2), RGBV(0 xD3),
RGBV(0 xD4), RGBV(0 xD5), RGBV(0 xD6), RGBV(0 xD7),
RGBV(0 xD8), RGBV(0 xD9), RGBV(0 xDA), RGBV(0 xDB),
RGBV(0 xDC), RGBV(0 xDD), RGBV(0 xDE), RGBV(0 xDF),
RGBV(0 xE0), RGBV(0 xE1), RGBV(0 xE2), RGBV(0 xE3),
RGBV(0 xE4), RGBV(0 xE5), RGBV(0 xE6), RGBV(0 xE7),
RGBV(0 xE8), RGBV(0 xE9), RGBV(0 xEA), RGBV(0 xEB),
RGBV(0 xEC), RGBV(0 xED), RGBV(0 xEE), RGBV(0 xEF),
RGBV(0 xF0), RGBV(0 xF1), RGBV(0 xF2), RGBV(0 xF3),
RGBV(0 xF4), RGBV(0 xF5), RGBV(0 xF6), RGBV(0 xF7),
RGBV(0 xF8), RGBV(0 xF9), RGBV(0 xFA), RGBV(0 xFB),
RGBV(0 xFC), RGBV(0 xFD), RGBV(0 xFE), RGBV(0 xFF),
};
#undef RGBY
#undef RGBU
#undef RGBV
} // extern "C"
Messung V0.5 in Prozent C=98 H=99 G=98