From 046f348d4ea4c4d122b5b8f9361441e760a0a828 Mon Sep 17 00:00:00 2001 From: BearOso Date: Mon, 13 Mar 2023 17:59:00 -0500 Subject: [PATCH] Update hqxx filters to adapted version from FFmpeg. Compiles much faster and is roughly the same speed. --- filter/hq2x.cpp | 12212 ++-------------------------------------------- filter/hq2x.h | 12 +- 2 files changed, 456 insertions(+), 11768 deletions(-) diff --git a/filter/hq2x.cpp b/filter/hq2x.cpp index ff363f48..5855e9b5 100644 --- a/filter/hq2x.cpp +++ b/filter/hq2x.cpp @@ -1,11795 +1,481 @@ -/*****************************************************************************\ - Snes9x - Portable Super Nintendo Entertainment System (TM) emulator. - This file is licensed under the Snes9x License. - For further information, consult the LICENSE file in the root directory. -\*****************************************************************************/ +/* + * Copyright (c) 2014 Clément Bœsch + * + * This file is part of FFmpeg. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ -#include "snes9x.h" -#include "gfx.h" -#include "hq2x.h" +/** + * @file + * hqx magnification filters (hq2x, hq3x, hq4x) + * + * Originally designed by Maxim Stephin. + * + * @see http://en.wikipedia.org/wiki/Hqx + * @see http://web.archive.org/web/20131114143602/http://www.hiend3d.com/hq3x.html + * @see http://blog.pkh.me/p/19-butchering-hqx-scaling-filters.html + */ -#define Ymask 0xFF0000 -#define Umask 0x00FF00 -#define Vmask 0x0000FF -#define trY 0x300000 -#define trU 0x000700 -#define trV 0x000006 + /* Modified to 16-bit R5G6B5 for Snes9x */ -#define Mask_2 SECOND_COLOR_MASK -#define Mask13 FIRST_THIRD_COLOR_MASK +#include +#include -#define Interp01(c1, c2) \ -(c1 == c2) ? c1 : \ -(((((c1 & Mask_2) * 3 + (c2 & Mask_2) ) >> 2) & Mask_2) + \ - ((((c1 & Mask13) * 3 + (c2 & Mask13) ) >> 2) & Mask13)) +static uint32_t yuvtable[65536]; -#define Interp02(c1, c2, c3) \ -(((((c1 & Mask_2) * 2 + (c2 & Mask_2) + (c3 & Mask_2) ) >> 2) & Mask_2) + \ - ((((c1 & Mask13) * 2 + (c2 & Mask13) + (c3 & Mask13) ) >> 2) & Mask13)) - -#define Interp03(c1, c2) \ -(c1 == c2) ? c1 : \ -(((((c1 & Mask_2) * 7 + (c2 & Mask_2) ) >> 3) & Mask_2) + \ - ((((c1 & Mask13) * 7 + (c2 & Mask13) ) >> 3) & Mask13)) - -#define Interp04(c1, c2, c3) \ -(((((c1 & Mask_2) * 2 + (c2 & Mask_2) * 7 + (c3 & Mask_2) * 7) >> 4) & Mask_2) + \ - ((((c1 & Mask13) * 2 + (c2 & Mask13) * 7 + (c3 & Mask13) * 7) >> 4) & Mask13)) - -#define Interp05(c1, c2) \ -(c1 == c2) ? c1 : \ -(((((c1 & Mask_2) + (c2 & Mask_2)) >> 1) & Mask_2) + \ - ((((c1 & Mask13) + (c2 & Mask13)) >> 1) & Mask13)) - -#define Interp06(c1, c2, c3) \ -(((((c1 & Mask_2) * 5 + (c2 & Mask_2) * 2 + (c3 & Mask_2) ) >> 3) & Mask_2) + \ - ((((c1 & Mask13) * 5 + (c2 & Mask13) * 2 + (c3 & Mask13) ) >> 3) & Mask13)) - -#define Interp07(c1, c2, c3) \ -(((((c1 & Mask_2) * 6 + (c2 & Mask_2) + (c3 & Mask_2) ) >> 3) & Mask_2) + \ - ((((c1 & Mask13) * 6 + (c2 & Mask13) + (c3 & Mask13) ) >> 3) & Mask13)) - -#define Interp08(c1, c2) \ -(c1 == c2) ? c1 : \ -(((((c1 & Mask_2) * 5 + (c2 & Mask_2) * 3) >> 3) & Mask_2) + \ - ((((c1 & Mask13) * 5 + (c2 & Mask13) * 3) >> 3) & Mask13)) - -#define Interp09(c1, c2, c3) \ -(((((c1 & Mask_2) * 2 + (c2 & Mask_2) * 3 + (c3 & Mask_2) * 3) >> 3) & Mask_2) + \ - ((((c1 & Mask13) * 2 + (c2 & Mask13) * 3 + (c3 & Mask13) * 3) >> 3) & Mask13)) - -#define Interp10(c1, c2, c3) \ -(((((c1 & Mask_2) * 14 + (c2 & Mask_2) + (c3 & Mask_2) ) >> 4) & Mask_2) + \ - ((((c1 & Mask13) * 14 + (c2 & Mask13) + (c3 & Mask13) ) >> 4) & Mask13)) - -#define X2PIXEL00_0 *(dp) = w5; -#define X2PIXEL00_10 *(dp) = Interp01(w5, w1); -#define X2PIXEL00_11 *(dp) = Interp01(w5, w4); -#define X2PIXEL00_12 *(dp) = Interp01(w5, w2); -#define X2PIXEL00_20 *(dp) = Interp02(w5, w4, w2); -#define X2PIXEL00_21 *(dp) = Interp02(w5, w1, w2); -#define X2PIXEL00_22 *(dp) = Interp02(w5, w1, w4); -#define X2PIXEL00_60 *(dp) = Interp06(w5, w2, w4); -#define X2PIXEL00_61 *(dp) = Interp06(w5, w4, w2); -#define X2PIXEL00_70 *(dp) = Interp07(w5, w4, w2); -#define X2PIXEL00_90 *(dp) = Interp09(w5, w4, w2); -#define X2PIXEL00_100 *(dp) = Interp10(w5, w4, w2); - -#define X2PIXEL01_0 *(dp + 1) = w5; -#define X2PIXEL01_10 *(dp + 1) = Interp01(w5, w3); -#define X2PIXEL01_11 *(dp + 1) = Interp01(w5, w2); -#define X2PIXEL01_12 *(dp + 1) = Interp01(w5, w6); -#define X2PIXEL01_20 *(dp + 1) = Interp02(w5, w2, w6); -#define X2PIXEL01_21 *(dp + 1) = Interp02(w5, w3, w6); -#define X2PIXEL01_22 *(dp + 1) = Interp02(w5, w3, w2); -#define X2PIXEL01_60 *(dp + 1) = Interp06(w5, w6, w2); -#define X2PIXEL01_61 *(dp + 1) = Interp06(w5, w2, w6); -#define X2PIXEL01_70 *(dp + 1) = Interp07(w5, w2, w6); -#define X2PIXEL01_90 *(dp + 1) = Interp09(w5, w2, w6); -#define X2PIXEL01_100 *(dp + 1) = Interp10(w5, w2, w6); - -#define X2PIXEL10_0 *(dp + dst1line) = w5; -#define X2PIXEL10_10 *(dp + dst1line) = Interp01(w5, w7); -#define X2PIXEL10_11 *(dp + dst1line) = Interp01(w5, w8); -#define X2PIXEL10_12 *(dp + dst1line) = Interp01(w5, w4); -#define X2PIXEL10_20 *(dp + dst1line) = Interp02(w5, w8, w4); -#define X2PIXEL10_21 *(dp + dst1line) = Interp02(w5, w7, w4); -#define X2PIXEL10_22 *(dp + dst1line) = Interp02(w5, w7, w8); -#define X2PIXEL10_60 *(dp + dst1line) = Interp06(w5, w4, w8); -#define X2PIXEL10_61 *(dp + dst1line) = Interp06(w5, w8, w4); -#define X2PIXEL10_70 *(dp + dst1line) = Interp07(w5, w8, w4); -#define X2PIXEL10_90 *(dp + dst1line) = Interp09(w5, w8, w4); -#define X2PIXEL10_100 *(dp + dst1line) = Interp10(w5, w8, w4); - -#define X2PIXEL11_0 *(dp + dst1line + 1) = w5; -#define X2PIXEL11_10 *(dp + dst1line + 1) = Interp01(w5, w9); -#define X2PIXEL11_11 *(dp + dst1line + 1) = Interp01(w5, w6); -#define X2PIXEL11_12 *(dp + dst1line + 1) = Interp01(w5, w8); -#define X2PIXEL11_20 *(dp + dst1line + 1) = Interp02(w5, w6, w8); -#define X2PIXEL11_21 *(dp + dst1line + 1) = Interp02(w5, w9, w8); -#define X2PIXEL11_22 *(dp + dst1line + 1) = Interp02(w5, w9, w6); -#define X2PIXEL11_60 *(dp + dst1line + 1) = Interp06(w5, w8, w6); -#define X2PIXEL11_61 *(dp + dst1line + 1) = Interp06(w5, w6, w8); -#define X2PIXEL11_70 *(dp + dst1line + 1) = Interp07(w5, w6, w8); -#define X2PIXEL11_90 *(dp + dst1line + 1) = Interp09(w5, w6, w8); -#define X2PIXEL11_100 *(dp + dst1line + 1) = Interp10(w5, w6, w8); - -#define X3PIXEL00_1M *(dp) = Interp01(w5, w1); -#define X3PIXEL00_1U *(dp) = Interp01(w5, w2); -#define X3PIXEL00_1L *(dp) = Interp01(w5, w4); -#define X3PIXEL00_2 *(dp) = Interp02(w5, w4, w2); -#define X3PIXEL00_4 *(dp) = Interp04(w5, w4, w2); -#define X3PIXEL00_5 *(dp) = Interp05(w4, w2); -#define X3PIXEL00_C *(dp) = w5; - -#define X3PIXEL01_1 *(dp + 1) = Interp01(w5, w2); -#define X3PIXEL01_3 *(dp + 1) = Interp03(w5, w2); -#define X3PIXEL01_6 *(dp + 1) = Interp01(w2, w5); -#define X3PIXEL01_C *(dp + 1) = w5; - -#define X3PIXEL02_1M *(dp + 2) = Interp01(w5, w3); -#define X3PIXEL02_1U *(dp + 2) = Interp01(w5, w2); -#define X3PIXEL02_1R *(dp + 2) = Interp01(w5, w6); -#define X3PIXEL02_2 *(dp + 2) = Interp02(w5, w2, w6); -#define X3PIXEL02_4 *(dp + 2) = Interp04(w5, w2, w6); -#define X3PIXEL02_5 *(dp + 2) = Interp05(w2, w6); -#define X3PIXEL02_C *(dp + 2) = w5; - -#define X3PIXEL10_1 *(dp + dst1line) = Interp01(w5, w4); -#define X3PIXEL10_3 *(dp + dst1line) = Interp03(w5, w4); -#define X3PIXEL10_6 *(dp + dst1line) = Interp01(w4, w5); -#define X3PIXEL10_C *(dp + dst1line) = w5; - -#define X3PIXEL11 *(dp + dst1line + 1) = w5; - -#define X3PIXEL12_1 *(dp + dst1line + 2) = Interp01(w5, w6); -#define X3PIXEL12_3 *(dp + dst1line + 2) = Interp03(w5, w6); -#define X3PIXEL12_6 *(dp + dst1line + 2) = Interp01(w6, w5); -#define X3PIXEL12_C *(dp + dst1line + 2) = w5; - -#define X3PIXEL20_1M *(dp + dst1line + dst1line) = Interp01(w5, w7); -#define X3PIXEL20_1D *(dp + dst1line + dst1line) = Interp01(w5, w8); -#define X3PIXEL20_1L *(dp + dst1line + dst1line) = Interp01(w5, w4); -#define X3PIXEL20_2 *(dp + dst1line + dst1line) = Interp02(w5, w8, w4); -#define X3PIXEL20_4 *(dp + dst1line + dst1line) = Interp04(w5, w8, w4); -#define X3PIXEL20_5 *(dp + dst1line + dst1line) = Interp05(w8, w4); -#define X3PIXEL20_C *(dp + dst1line + dst1line) = w5; - -#define X3PIXEL21_1 *(dp + dst1line + dst1line + 1) = Interp01(w5, w8); -#define X3PIXEL21_3 *(dp + dst1line + dst1line + 1) = Interp03(w5, w8); -#define X3PIXEL21_6 *(dp + dst1line + dst1line + 1) = Interp01(w8, w5); -#define X3PIXEL21_C *(dp + dst1line + dst1line + 1) = w5; - -#define X3PIXEL22_1M *(dp + dst1line + dst1line + 2) = Interp01(w5, w9); -#define X3PIXEL22_1D *(dp + dst1line + dst1line + 2) = Interp01(w5, w8); -#define X3PIXEL22_1R *(dp + dst1line + dst1line + 2) = Interp01(w5, w6); -#define X3PIXEL22_2 *(dp + dst1line + dst1line + 2) = Interp02(w5, w6, w8); -#define X3PIXEL22_4 *(dp + dst1line + dst1line + 2) = Interp04(w5, w6, w8); -#define X3PIXEL22_5 *(dp + dst1line + dst1line + 2) = Interp05(w6, w8); -#define X3PIXEL22_C *(dp + dst1line + dst1line + 2) = w5; - -#define X4PIXEL00_0 *(dp) = w5; -#define X4PIXEL00_11 *(dp) = Interp01(w5, w4); -#define X4PIXEL00_12 *(dp) = Interp01(w5, w2); -#define X4PIXEL00_20 *(dp) = Interp02(w5, w2, w4); -#define X4PIXEL00_50 *(dp) = Interp05(w2, w4); -#define X4PIXEL00_80 *(dp) = Interp08(w5, w1); -#define X4PIXEL00_81 *(dp) = Interp08(w5, w4); -#define X4PIXEL00_82 *(dp) = Interp08(w5, w2); - -#define X4PIXEL01_0 *(dp + 1) = w5; -#define X4PIXEL01_10 *(dp + 1) = Interp01(w5, w1); -#define X4PIXEL01_12 *(dp + 1) = Interp01(w5, w2); -#define X4PIXEL01_14 *(dp + 1) = Interp01(w2, w5); -#define X4PIXEL01_21 *(dp + 1) = Interp02(w2, w5, w4); -#define X4PIXEL01_31 *(dp + 1) = Interp03(w5, w4); -#define X4PIXEL01_50 *(dp + 1) = Interp05(w2, w5); -#define X4PIXEL01_60 *(dp + 1) = Interp06(w5, w2, w4); -#define X4PIXEL01_61 *(dp + 1) = Interp06(w5, w2, w1); -#define X4PIXEL01_82 *(dp + 1) = Interp08(w5, w2); -#define X4PIXEL01_83 *(dp + 1) = Interp08(w2, w4); - -#define X4PIXEL02_0 *(dp + 2) = w5; -#define X4PIXEL02_10 *(dp + 2) = Interp01(w5, w3); -#define X4PIXEL02_11 *(dp + 2) = Interp01(w5, w2); -#define X4PIXEL02_13 *(dp + 2) = Interp01(w2, w5); -#define X4PIXEL02_21 *(dp + 2) = Interp02(w2, w5, w6); -#define X4PIXEL02_32 *(dp + 2) = Interp03(w5, w6); -#define X4PIXEL02_50 *(dp + 2) = Interp05(w2, w5); -#define X4PIXEL02_60 *(dp + 2) = Interp06(w5, w2, w6); -#define X4PIXEL02_61 *(dp + 2) = Interp06(w5, w2, w3); -#define X4PIXEL02_81 *(dp + 2) = Interp08(w5, w2); -#define X4PIXEL02_83 *(dp + 2) = Interp08(w2, w6); - -#define X4PIXEL03_0 *(dp + 3) = w5; -#define X4PIXEL03_11 *(dp + 3) = Interp01(w5, w2); -#define X4PIXEL03_12 *(dp + 3) = Interp01(w5, w6); -#define X4PIXEL03_20 *(dp + 3) = Interp02(w5, w2, w6); -#define X4PIXEL03_50 *(dp + 3) = Interp05(w2, w6); -#define X4PIXEL03_80 *(dp + 3) = Interp08(w5, w3); -#define X4PIXEL03_81 *(dp + 3) = Interp08(w5, w2); -#define X4PIXEL03_82 *(dp + 3) = Interp08(w5, w6); - -#define X4PIXEL10_0 *(dp + dst1line) = w5; -#define X4PIXEL10_10 *(dp + dst1line) = Interp01(w5, w1); -#define X4PIXEL10_11 *(dp + dst1line) = Interp01(w5, w4); -#define X4PIXEL10_13 *(dp + dst1line) = Interp01(w4, w5); -#define X4PIXEL10_21 *(dp + dst1line) = Interp02(w4, w5, w2); -#define X4PIXEL10_32 *(dp + dst1line) = Interp03(w5, w2); -#define X4PIXEL10_50 *(dp + dst1line) = Interp05(w4, w5); -#define X4PIXEL10_60 *(dp + dst1line) = Interp06(w5, w4, w2); -#define X4PIXEL10_61 *(dp + dst1line) = Interp06(w5, w4, w1); -#define X4PIXEL10_81 *(dp + dst1line) = Interp08(w5, w4); -#define X4PIXEL10_83 *(dp + dst1line) = Interp08(w4, w2); - -#define X4PIXEL11_0 *(dp + dst1line + 1) = w5; -#define X4PIXEL11_30 *(dp + dst1line + 1) = Interp03(w5, w1); -#define X4PIXEL11_31 *(dp + dst1line + 1) = Interp03(w5, w4); -#define X4PIXEL11_32 *(dp + dst1line + 1) = Interp03(w5, w2); -#define X4PIXEL11_70 *(dp + dst1line + 1) = Interp07(w5, w4, w2); - -#define X4PIXEL12_0 *(dp + dst1line + 2) = w5; -#define X4PIXEL12_30 *(dp + dst1line + 2) = Interp03(w5, w3); -#define X4PIXEL12_31 *(dp + dst1line + 2) = Interp03(w5, w2); -#define X4PIXEL12_32 *(dp + dst1line + 2) = Interp03(w5, w6); -#define X4PIXEL12_70 *(dp + dst1line + 2) = Interp07(w5, w6, w2); - -#define X4PIXEL13_0 *(dp + dst1line + 3) = w5; -#define X4PIXEL13_10 *(dp + dst1line + 3) = Interp01(w5, w3); -#define X4PIXEL13_12 *(dp + dst1line + 3) = Interp01(w5, w6); -#define X4PIXEL13_14 *(dp + dst1line + 3) = Interp01(w6, w5); -#define X4PIXEL13_21 *(dp + dst1line + 3) = Interp02(w6, w5, w2); -#define X4PIXEL13_31 *(dp + dst1line + 3) = Interp03(w5, w2); -#define X4PIXEL13_50 *(dp + dst1line + 3) = Interp05(w6, w5); -#define X4PIXEL13_60 *(dp + dst1line + 3) = Interp06(w5, w6, w2); -#define X4PIXEL13_61 *(dp + dst1line + 3) = Interp06(w5, w6, w3); -#define X4PIXEL13_82 *(dp + dst1line + 3) = Interp08(w5, w6); -#define X4PIXEL13_83 *(dp + dst1line + 3) = Interp08(w6, w2); - -#define X4PIXEL20_0 *(dp + dst1line + dst1line) = w5; -#define X4PIXEL20_10 *(dp + dst1line + dst1line) = Interp01(w5, w7); -#define X4PIXEL20_12 *(dp + dst1line + dst1line) = Interp01(w5, w4); -#define X4PIXEL20_14 *(dp + dst1line + dst1line) = Interp01(w4, w5); -#define X4PIXEL20_21 *(dp + dst1line + dst1line) = Interp02(w4, w5, w8); -#define X4PIXEL20_31 *(dp + dst1line + dst1line) = Interp03(w5, w8); -#define X4PIXEL20_50 *(dp + dst1line + dst1line) = Interp05(w4, w5); -#define X4PIXEL20_60 *(dp + dst1line + dst1line) = Interp06(w5, w4, w8); -#define X4PIXEL20_61 *(dp + dst1line + dst1line) = Interp06(w5, w4, w7); -#define X4PIXEL20_82 *(dp + dst1line + dst1line) = Interp08(w5, w4); -#define X4PIXEL20_83 *(dp + dst1line + dst1line) = Interp08(w4, w8); - -#define X4PIXEL21_0 *(dp + dst1line + dst1line + 1) = w5; -#define X4PIXEL21_30 *(dp + dst1line + dst1line + 1) = Interp03(w5, w7); -#define X4PIXEL21_31 *(dp + dst1line + dst1line + 1) = Interp03(w5, w8); -#define X4PIXEL21_32 *(dp + dst1line + dst1line + 1) = Interp03(w5, w4); -#define X4PIXEL21_70 *(dp + dst1line + dst1line + 1) = Interp07(w5, w4, w8); - -#define X4PIXEL22_0 *(dp + dst1line + dst1line + 2) = w5; -#define X4PIXEL22_30 *(dp + dst1line + dst1line + 2) = Interp03(w5, w9); -#define X4PIXEL22_31 *(dp + dst1line + dst1line + 2) = Interp03(w5, w6); -#define X4PIXEL22_32 *(dp + dst1line + dst1line + 2) = Interp03(w5, w8); -#define X4PIXEL22_70 *(dp + dst1line + dst1line + 2) = Interp07(w5, w6, w8); - -#define X4PIXEL23_0 *(dp + dst1line + dst1line + 3) = w5; -#define X4PIXEL23_10 *(dp + dst1line + dst1line + 3) = Interp01(w5, w9); -#define X4PIXEL23_11 *(dp + dst1line + dst1line + 3) = Interp01(w5, w6); -#define X4PIXEL23_13 *(dp + dst1line + dst1line + 3) = Interp01(w6, w5); -#define X4PIXEL23_21 *(dp + dst1line + dst1line + 3) = Interp02(w6, w5, w8); -#define X4PIXEL23_32 *(dp + dst1line + dst1line + 3) = Interp03(w5, w8); -#define X4PIXEL23_50 *(dp + dst1line + dst1line + 3) = Interp05(w6, w5); -#define X4PIXEL23_60 *(dp + dst1line + dst1line + 3) = Interp06(w5, w6, w8); -#define X4PIXEL23_61 *(dp + dst1line + dst1line + 3) = Interp06(w5, w6, w9); -#define X4PIXEL23_81 *(dp + dst1line + dst1line + 3) = Interp08(w5, w6); -#define X4PIXEL23_83 *(dp + dst1line + dst1line + 3) = Interp08(w6, w8); - -#define X4PIXEL30_0 *(dp + dst1line + dst1line + dst1line) = w5; -#define X4PIXEL30_11 *(dp + dst1line + dst1line + dst1line) = Interp01(w5, w8); -#define X4PIXEL30_12 *(dp + dst1line + dst1line + dst1line) = Interp01(w5, w4); -#define X4PIXEL30_20 *(dp + dst1line + dst1line + dst1line) = Interp02(w5, w8, w4); -#define X4PIXEL30_50 *(dp + dst1line + dst1line + dst1line) = Interp05(w8, w4); -#define X4PIXEL30_80 *(dp + dst1line + dst1line + dst1line) = Interp08(w5, w7); -#define X4PIXEL30_81 *(dp + dst1line + dst1line + dst1line) = Interp08(w5, w8); -#define X4PIXEL30_82 *(dp + dst1line + dst1line + dst1line) = Interp08(w5, w4); - -#define X4PIXEL31_0 *(dp + dst1line + dst1line + dst1line + 1) = w5; -#define X4PIXEL31_10 *(dp + dst1line + dst1line + dst1line + 1) = Interp01(w5, w7); -#define X4PIXEL31_11 *(dp + dst1line + dst1line + dst1line + 1) = Interp01(w5, w8); -#define X4PIXEL31_13 *(dp + dst1line + dst1line + dst1line + 1) = Interp01(w8, w5); -#define X4PIXEL31_21 *(dp + dst1line + dst1line + dst1line + 1) = Interp02(w8, w5, w4); -#define X4PIXEL31_32 *(dp + dst1line + dst1line + dst1line + 1) = Interp03(w5, w4); -#define X4PIXEL31_50 *(dp + dst1line + dst1line + dst1line + 1) = Interp05(w8, w5); -#define X4PIXEL31_60 *(dp + dst1line + dst1line + dst1line + 1) = Interp06(w5, w8, w4); -#define X4PIXEL31_61 *(dp + dst1line + dst1line + dst1line + 1) = Interp06(w5, w8, w7); -#define X4PIXEL31_81 *(dp + dst1line + dst1line + dst1line + 1) = Interp08(w5, w8); -#define X4PIXEL31_83 *(dp + dst1line + dst1line + dst1line + 1) = Interp08(w8, w4); - -#define X4PIXEL32_0 *(dp + dst1line + dst1line + dst1line + 2) = w5; -#define X4PIXEL32_10 *(dp + dst1line + dst1line + dst1line + 2) = Interp01(w5, w9); -#define X4PIXEL32_12 *(dp + dst1line + dst1line + dst1line + 2) = Interp01(w5, w8); -#define X4PIXEL32_14 *(dp + dst1line + dst1line + dst1line + 2) = Interp01(w8, w5); -#define X4PIXEL32_21 *(dp + dst1line + dst1line + dst1line + 2) = Interp02(w8, w5, w6); -#define X4PIXEL32_31 *(dp + dst1line + dst1line + dst1line + 2) = Interp03(w5, w6); -#define X4PIXEL32_50 *(dp + dst1line + dst1line + dst1line + 2) = Interp05(w8, w5); -#define X4PIXEL32_60 *(dp + dst1line + dst1line + dst1line + 2) = Interp06(w5, w8, w6); -#define X4PIXEL32_61 *(dp + dst1line + dst1line + dst1line + 2) = Interp06(w5, w8, w9); -#define X4PIXEL32_82 *(dp + dst1line + dst1line + dst1line + 2) = Interp08(w5, w8); -#define X4PIXEL32_83 *(dp + dst1line + dst1line + dst1line + 2) = Interp08(w8, w6); - -#define X4PIXEL33_0 *(dp + dst1line + dst1line + dst1line + 3) = w5; -#define X4PIXEL33_11 *(dp + dst1line + dst1line + dst1line + 3) = Interp01(w5, w6); -#define X4PIXEL33_12 *(dp + dst1line + dst1line + dst1line + 3) = Interp01(w5, w8); -#define X4PIXEL33_20 *(dp + dst1line + dst1line + dst1line + 3) = Interp02(w5, w8, w6); -#define X4PIXEL33_50 *(dp + dst1line + dst1line + dst1line + 3) = Interp05(w8, w6); -#define X4PIXEL33_80 *(dp + dst1line + dst1line + dst1line + 3) = Interp08(w5, w9); -#define X4PIXEL33_81 *(dp + dst1line + dst1line + dst1line + 3) = Interp08(w5, w6); -#define X4PIXEL33_82 *(dp + dst1line + dst1line + dst1line + 3) = Interp08(w5, w8); - -#define Absolute(c) \ -(!(c & (1 << 31)) ? c : (~c + 1)) - -static int *RGBtoYUV = NULL; - -static void InitLUTs (void); -static inline bool Diff (int, int); - - -bool8 S9xBlitHQ2xFilterInit (void) +static void init() { - uint32 n = 1 << ((FIRST_COLOR_MASK & 0x8000) ? 16 : 15); - RGBtoYUV = new int[n]; - if (!RGBtoYUV) - return (FALSE); + static bool initialized = false; + if (initialized) + return; + initialized = true; - InitLUTs(); + for (unsigned i = 0; i < 65536; i++) + { + uint8_t R = (i >> 0) & 31; + uint8_t G = (i >> 5) & 31; + uint8_t B = (i >> 11) & 31; - return (TRUE); + // bgr555->bgr888 + double r = (R << 3) | (R >> 2); + double g = (G << 2) | (G >> 4); + double b = (B << 3) | (B >> 2); + + // bgr888->yuv888 + double y = (r + g + b) * (0.25f * (63.5f / 48.0f)); + double u = ((r - b) * 0.25f + 128.0f) * (7.5f / 7.0f); + double v = ((g * 2.0f - r - b) * 0.125f + 128.0f) * (7.5f / 6.0f); + + yuvtable[i] = ((unsigned)y << 16) + ((unsigned)u << 8) + ((unsigned)v); + } } -void S9xBlitHQ2xFilterDeinit (void) +static inline uint32_t rgb2yuv(const uint32_t *table, uint16_t color) { - if (RGBtoYUV) - { - delete[] RGBtoYUV; - RGBtoYUV = NULL; - } + return (table[color]); } -static void InitLUTs (void) +static inline int yuv_diff(uint32_t yuv1, uint32_t yuv2) { - uint32 r, g, b; - int y, u, v; +#define YMASK 0xff0000 +#define UMASK 0x00ff00 +#define VMASK 0x0000ff +#define ABSDIFF(a, b) (abs((int)(a) - (int)(b))) - uint32 n = 1 << ((FIRST_COLOR_MASK & 0x8000) ? 16 : 15); - for (uint32 c = 0 ; c < n ; c++) - { - DECOMPOSE_PIXEL(c, r, g, b); - r <<= 3; - g <<= 3; - b <<= 3; - - y = (int) ( 0.256788f * r + 0.504129f * g + 0.097906f * b + 0.5f) + 16; - u = (int) (-0.148223f * r - 0.290993f * g + 0.439216f * b + 0.5f) + 128; - v = (int) ( 0.439216f * r - 0.367788f * g - 0.071427f * b + 0.5f) + 128; - - RGBtoYUV[c] = (y << 16) + (u << 8) + v; - } + return ABSDIFF(yuv1 & YMASK, yuv2 & YMASK) > (48 << 16) || + ABSDIFF(yuv1 & UMASK, yuv2 & UMASK) > (7 << 8) || + ABSDIFF(yuv1 & VMASK, yuv2 & VMASK) > (6 << 0); } -static inline bool Diff (int c1, int c2) +static inline uint32_t interp_2px(uint16_t c1, int w1, uint16_t c2, int w2, int s) { - int c1y = (c1 & Ymask) - (c2 & Ymask); - if (Absolute(c1y) > trY) - return (true); - - int c1u = (c1 & Umask) - (c2 & Umask); - if (Absolute(c1u) > trU) - return (true); - - int c1v = (c1 & Vmask) - (c2 & Vmask); - if (Absolute(c1v) > trV) - return (true); - - return (false); + return (((((c1 & 0x07e0) >> 5) * w1 + ((c2 & 0x07e0) >> 5) * w2) << (5 - s)) & 0x07e0) | + (((((c1 & 0xf81f)) * w1 + ((c2 & 0xf81f)) * w2) >> s) & 0xf81f); } -void HQ2X_16 (uint8 *srcPtr, int srcPitch, uint8 *dstPtr, int dstPitch, int width, int height) +static inline uint32_t interp_3px(uint16_t c1, int w1, uint16_t c2, int w2, uint16_t c3, int w3, int s) { - int w1, w2, w3, w4, w5, w6, w7, w8, w9; - uint32 src1line = srcPitch >> 1; - uint32 dst1line = dstPitch >> 1; - uint16 *sp = (uint16 *) srcPtr; - uint16 *dp = (uint16 *) dstPtr; - - uint32 pattern; - int l, y; - - while (height--) - { - sp--; - - w1 = *(sp - src1line); - w4 = *(sp); - w7 = *(sp + src1line); - - sp++; - - w2 = *(sp - src1line); - w5 = *(sp); - w8 = *(sp + src1line); - - for (l = width; l; l--) - { - sp++; - - w3 = *(sp - src1line); - w6 = *(sp); - w9 = *(sp + src1line); - - y = RGBtoYUV[w5]; - pattern = 0; - - if ((w1 != w5) && (Diff(y, RGBtoYUV[w1]))) pattern |= (1 << 0); - if ((w2 != w5) && (Diff(y, RGBtoYUV[w2]))) pattern |= (1 << 1); - if ((w3 != w5) && (Diff(y, RGBtoYUV[w3]))) pattern |= (1 << 2); - if ((w4 != w5) && (Diff(y, RGBtoYUV[w4]))) pattern |= (1 << 3); - if ((w6 != w5) && (Diff(y, RGBtoYUV[w6]))) pattern |= (1 << 4); - if ((w7 != w5) && (Diff(y, RGBtoYUV[w7]))) pattern |= (1 << 5); - if ((w8 != w5) && (Diff(y, RGBtoYUV[w8]))) pattern |= (1 << 6); - if ((w9 != w5) && (Diff(y, RGBtoYUV[w9]))) pattern |= (1 << 7); - - switch (pattern) - { - case 0: - case 1: - case 4: - case 32: - case 128: - case 5: - case 132: - case 160: - case 33: - case 129: - case 36: - case 133: - case 164: - case 161: - case 37: - case 165: - { - X2PIXEL00_20 - X2PIXEL01_20 - X2PIXEL10_20 - X2PIXEL11_20 - break; - } - case 2: - case 34: - case 130: - case 162: - { - X2PIXEL00_22 - X2PIXEL01_21 - X2PIXEL10_20 - X2PIXEL11_20 - break; - } - case 16: - case 17: - case 48: - case 49: - { - X2PIXEL00_20 - X2PIXEL01_22 - X2PIXEL10_20 - X2PIXEL11_21 - break; - } - case 64: - case 65: - case 68: - case 69: - { - X2PIXEL00_20 - X2PIXEL01_20 - X2PIXEL10_21 - X2PIXEL11_22 - break; - } - case 8: - case 12: - case 136: - case 140: - { - X2PIXEL00_21 - X2PIXEL01_20 - X2PIXEL10_22 - X2PIXEL11_20 - break; - } - case 3: - case 35: - case 131: - case 163: - { - X2PIXEL00_11 - X2PIXEL01_21 - X2PIXEL10_20 - X2PIXEL11_20 - break; - } - case 6: - case 38: - case 134: - case 166: - { - X2PIXEL00_22 - X2PIXEL01_12 - X2PIXEL10_20 - X2PIXEL11_20 - break; - } - case 20: - case 21: - case 52: - case 53: - { - X2PIXEL00_20 - X2PIXEL01_11 - X2PIXEL10_20 - X2PIXEL11_21 - break; - } - case 144: - case 145: - case 176: - case 177: - { - X2PIXEL00_20 - X2PIXEL01_22 - X2PIXEL10_20 - X2PIXEL11_12 - break; - } - case 192: - case 193: - case 196: - case 197: - { - X2PIXEL00_20 - X2PIXEL01_20 - X2PIXEL10_21 - X2PIXEL11_11 - break; - } - case 96: - case 97: - case 100: - case 101: - { - X2PIXEL00_20 - X2PIXEL01_20 - X2PIXEL10_12 - X2PIXEL11_22 - break; - } - case 40: - case 44: - case 168: - case 172: - { - X2PIXEL00_21 - X2PIXEL01_20 - X2PIXEL10_11 - X2PIXEL11_20 - break; - } - case 9: - case 13: - case 137: - case 141: - { - X2PIXEL00_12 - X2PIXEL01_20 - X2PIXEL10_22 - X2PIXEL11_20 - break; - } - case 18: - case 50: - { - X2PIXEL00_22 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_10 - } - else - { - X2PIXEL01_20 - } - X2PIXEL10_20 - X2PIXEL11_21 - break; - } - case 80: - case 81: - { - X2PIXEL00_20 - X2PIXEL01_22 - X2PIXEL10_21 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_10 - } - else - { - X2PIXEL11_20 - } - break; - } - case 72: - case 76: - { - X2PIXEL00_21 - X2PIXEL01_20 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_10 - } - else - { - X2PIXEL10_20 - } - X2PIXEL11_22 - break; - } - case 10: - case 138: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_10 - } - else - { - X2PIXEL00_20 - } - X2PIXEL01_21 - X2PIXEL10_22 - X2PIXEL11_20 - break; - } - case 66: - { - X2PIXEL00_22 - X2PIXEL01_21 - X2PIXEL10_21 - X2PIXEL11_22 - break; - } - case 24: - { - X2PIXEL00_21 - X2PIXEL01_22 - X2PIXEL10_22 - X2PIXEL11_21 - break; - } - case 7: - case 39: - case 135: - { - X2PIXEL00_11 - X2PIXEL01_12 - X2PIXEL10_20 - X2PIXEL11_20 - break; - } - case 148: - case 149: - case 180: - { - X2PIXEL00_20 - X2PIXEL01_11 - X2PIXEL10_20 - X2PIXEL11_12 - break; - } - case 224: - case 228: - case 225: - { - X2PIXEL00_20 - X2PIXEL01_20 - X2PIXEL10_12 - X2PIXEL11_11 - break; - } - case 41: - case 169: - case 45: - { - X2PIXEL00_12 - X2PIXEL01_20 - X2PIXEL10_11 - X2PIXEL11_20 - break; - } - case 22: - case 54: - { - X2PIXEL00_22 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_0 - } - else - { - X2PIXEL01_20 - } - X2PIXEL10_20 - X2PIXEL11_21 - break; - } - case 208: - case 209: - { - X2PIXEL00_20 - X2PIXEL01_22 - X2PIXEL10_21 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_0 - } - else - { - X2PIXEL11_20 - } - break; - } - case 104: - case 108: - { - X2PIXEL00_21 - X2PIXEL01_20 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_0 - } - else - { - X2PIXEL10_20 - } - X2PIXEL11_22 - break; - } - case 11: - case 139: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - } - else - { - X2PIXEL00_20 - } - X2PIXEL01_21 - X2PIXEL10_22 - X2PIXEL11_20 - break; - } - case 19: - case 51: - { - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL00_11 - X2PIXEL01_10 - } - else - { - X2PIXEL00_60 - X2PIXEL01_90 - } - X2PIXEL10_20 - X2PIXEL11_21 - break; - } - case 146: - case 178: - { - X2PIXEL00_22 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_10 - X2PIXEL11_12 - } - else - { - X2PIXEL01_90 - X2PIXEL11_61 - } - X2PIXEL10_20 - break; - } - case 84: - case 85: - { - X2PIXEL00_20 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL01_11 - X2PIXEL11_10 - } - else - { - X2PIXEL01_60 - X2PIXEL11_90 - } - X2PIXEL10_21 - break; - } - case 112: - case 113: - { - X2PIXEL00_20 - X2PIXEL01_22 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL10_12 - X2PIXEL11_10 - } - else - { - X2PIXEL10_61 - X2PIXEL11_90 - } - break; - } - case 200: - case 204: - { - X2PIXEL00_21 - X2PIXEL01_20 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_10 - X2PIXEL11_11 - } - else - { - X2PIXEL10_90 - X2PIXEL11_60 - } - break; - } - case 73: - case 77: - { - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL00_12 - X2PIXEL10_10 - } - else - { - X2PIXEL00_61 - X2PIXEL10_90 - } - X2PIXEL01_20 - X2PIXEL11_22 - break; - } - case 42: - case 170: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_10 - X2PIXEL10_11 - } - else - { - X2PIXEL00_90 - X2PIXEL10_60 - } - X2PIXEL01_21 - X2PIXEL11_20 - break; - } - case 14: - case 142: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_10 - X2PIXEL01_12 - } - else - { - X2PIXEL00_90 - X2PIXEL01_61 - } - X2PIXEL10_22 - X2PIXEL11_20 - break; - } - case 67: - { - X2PIXEL00_11 - X2PIXEL01_21 - X2PIXEL10_21 - X2PIXEL11_22 - break; - } - case 70: - { - X2PIXEL00_22 - X2PIXEL01_12 - X2PIXEL10_21 - X2PIXEL11_22 - break; - } - case 28: - { - X2PIXEL00_21 - X2PIXEL01_11 - X2PIXEL10_22 - X2PIXEL11_21 - break; - } - case 152: - { - X2PIXEL00_21 - X2PIXEL01_22 - X2PIXEL10_22 - X2PIXEL11_12 - break; - } - case 194: - { - X2PIXEL00_22 - X2PIXEL01_21 - X2PIXEL10_21 - X2PIXEL11_11 - break; - } - case 98: - { - X2PIXEL00_22 - X2PIXEL01_21 - X2PIXEL10_12 - X2PIXEL11_22 - break; - } - case 56: - { - X2PIXEL00_21 - X2PIXEL01_22 - X2PIXEL10_11 - X2PIXEL11_21 - break; - } - case 25: - { - X2PIXEL00_12 - X2PIXEL01_22 - X2PIXEL10_22 - X2PIXEL11_21 - break; - } - case 26: - case 31: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - } - else - { - X2PIXEL00_20 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_0 - } - else - { - X2PIXEL01_20 - } - X2PIXEL10_22 - X2PIXEL11_21 - break; - } - case 82: - case 214: - { - X2PIXEL00_22 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_0 - } - else - { - X2PIXEL01_20 - } - X2PIXEL10_21 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_0 - } - else - { - X2PIXEL11_20 - } - break; - } - case 88: - case 248: - { - X2PIXEL00_21 - X2PIXEL01_22 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_0 - } - else - { - X2PIXEL10_20 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_0 - } - else - { - X2PIXEL11_20 - } - break; - } - case 74: - case 107: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - } - else - { - X2PIXEL00_20 - } - X2PIXEL01_21 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_0 - } - else - { - X2PIXEL10_20 - } - X2PIXEL11_22 - break; - } - case 27: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - } - else - { - X2PIXEL00_20 - } - X2PIXEL01_10 - X2PIXEL10_22 - X2PIXEL11_21 - break; - } - case 86: - { - X2PIXEL00_22 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_0 - } - else - { - X2PIXEL01_20 - } - X2PIXEL10_21 - X2PIXEL11_10 - break; - } - case 216: - { - X2PIXEL00_21 - X2PIXEL01_22 - X2PIXEL10_10 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_0 - } - else - { - X2PIXEL11_20 - } - break; - } - case 106: - { - X2PIXEL00_10 - X2PIXEL01_21 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_0 - } - else - { - X2PIXEL10_20 - } - X2PIXEL11_22 - break; - } - case 30: - { - X2PIXEL00_10 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_0 - } - else - { - X2PIXEL01_20 - } - X2PIXEL10_22 - X2PIXEL11_21 - break; - } - case 210: - { - X2PIXEL00_22 - X2PIXEL01_10 - X2PIXEL10_21 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_0 - } - else - { - X2PIXEL11_20 - } - break; - } - case 120: - { - X2PIXEL00_21 - X2PIXEL01_22 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_0 - } - else - { - X2PIXEL10_20 - } - X2PIXEL11_10 - break; - } - case 75: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - } - else - { - X2PIXEL00_20 - } - X2PIXEL01_21 - X2PIXEL10_10 - X2PIXEL11_22 - break; - } - case 29: - { - X2PIXEL00_12 - X2PIXEL01_11 - X2PIXEL10_22 - X2PIXEL11_21 - break; - } - case 198: - { - X2PIXEL00_22 - X2PIXEL01_12 - X2PIXEL10_21 - X2PIXEL11_11 - break; - } - case 184: - { - X2PIXEL00_21 - X2PIXEL01_22 - X2PIXEL10_11 - X2PIXEL11_12 - break; - } - case 99: - { - X2PIXEL00_11 - X2PIXEL01_21 - X2PIXEL10_12 - X2PIXEL11_22 - break; - } - case 57: - { - X2PIXEL00_12 - X2PIXEL01_22 - X2PIXEL10_11 - X2PIXEL11_21 - break; - } - case 71: - { - X2PIXEL00_11 - X2PIXEL01_12 - X2PIXEL10_21 - X2PIXEL11_22 - break; - } - case 156: - { - X2PIXEL00_21 - X2PIXEL01_11 - X2PIXEL10_22 - X2PIXEL11_12 - break; - } - case 226: - { - X2PIXEL00_22 - X2PIXEL01_21 - X2PIXEL10_12 - X2PIXEL11_11 - break; - } - case 60: - { - X2PIXEL00_21 - X2PIXEL01_11 - X2PIXEL10_11 - X2PIXEL11_21 - break; - } - case 195: - { - X2PIXEL00_11 - X2PIXEL01_21 - X2PIXEL10_21 - X2PIXEL11_11 - break; - } - case 102: - { - X2PIXEL00_22 - X2PIXEL01_12 - X2PIXEL10_12 - X2PIXEL11_22 - break; - } - case 153: - { - X2PIXEL00_12 - X2PIXEL01_22 - X2PIXEL10_22 - X2PIXEL11_12 - break; - } - case 58: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_10 - } - else - { - X2PIXEL00_70 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_10 - } - else - { - X2PIXEL01_70 - } - X2PIXEL10_11 - X2PIXEL11_21 - break; - } - case 83: - { - X2PIXEL00_11 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_10 - } - else - { - X2PIXEL01_70 - } - X2PIXEL10_21 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_10 - } - else - { - X2PIXEL11_70 - } - break; - } - case 92: - { - X2PIXEL00_21 - X2PIXEL01_11 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_10 - } - else - { - X2PIXEL10_70 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_10 - } - else - { - X2PIXEL11_70 - } - break; - } - case 202: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_10 - } - else - { - X2PIXEL00_70 - } - X2PIXEL01_21 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_10 - } - else - { - X2PIXEL10_70 - } - X2PIXEL11_11 - break; - } - case 78: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_10 - } - else - { - X2PIXEL00_70 - } - X2PIXEL01_12 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_10 - } - else - { - X2PIXEL10_70 - } - X2PIXEL11_22 - break; - } - case 154: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_10 - } - else - { - X2PIXEL00_70 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_10 - } - else - { - X2PIXEL01_70 - } - X2PIXEL10_22 - X2PIXEL11_12 - break; - } - case 114: - { - X2PIXEL00_22 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_10 - } - else - { - X2PIXEL01_70 - } - X2PIXEL10_12 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_10 - } - else - { - X2PIXEL11_70 - } - break; - } - case 89: - { - X2PIXEL00_12 - X2PIXEL01_22 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_10 - } - else - { - X2PIXEL10_70 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_10 - } - else - { - X2PIXEL11_70 - } - break; - } - case 90: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_10 - } - else - { - X2PIXEL00_70 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_10 - } - else - { - X2PIXEL01_70 - } - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_10 - } - else - { - X2PIXEL10_70 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_10 - } - else - { - X2PIXEL11_70 - } - break; - } - case 55: - case 23: - { - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL00_11 - X2PIXEL01_0 - } - else - { - X2PIXEL00_60 - X2PIXEL01_90 - } - X2PIXEL10_20 - X2PIXEL11_21 - break; - } - case 182: - case 150: - { - X2PIXEL00_22 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_0 - X2PIXEL11_12 - } - else - { - X2PIXEL01_90 - X2PIXEL11_61 - } - X2PIXEL10_20 - break; - } - case 213: - case 212: - { - X2PIXEL00_20 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL01_11 - X2PIXEL11_0 - } - else - { - X2PIXEL01_60 - X2PIXEL11_90 - } - X2PIXEL10_21 - break; - } - case 241: - case 240: - { - X2PIXEL00_20 - X2PIXEL01_22 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL10_12 - X2PIXEL11_0 - } - else - { - X2PIXEL10_61 - X2PIXEL11_90 - } - break; - } - case 236: - case 232: - { - X2PIXEL00_21 - X2PIXEL01_20 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_0 - X2PIXEL11_11 - } - else - { - X2PIXEL10_90 - X2PIXEL11_60 - } - break; - } - case 109: - case 105: - { - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL00_12 - X2PIXEL10_0 - } - else - { - X2PIXEL00_61 - X2PIXEL10_90 - } - X2PIXEL01_20 - X2PIXEL11_22 - break; - } - case 171: - case 43: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - X2PIXEL10_11 - } - else - { - X2PIXEL00_90 - X2PIXEL10_60 - } - X2PIXEL01_21 - X2PIXEL11_20 - break; - } - case 143: - case 15: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - X2PIXEL01_12 - } - else - { - X2PIXEL00_90 - X2PIXEL01_61 - } - X2PIXEL10_22 - X2PIXEL11_20 - break; - } - case 124: - { - X2PIXEL00_21 - X2PIXEL01_11 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_0 - } - else - { - X2PIXEL10_20 - } - X2PIXEL11_10 - break; - } - case 203: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - } - else - { - X2PIXEL00_20 - } - X2PIXEL01_21 - X2PIXEL10_10 - X2PIXEL11_11 - break; - } - case 62: - { - X2PIXEL00_10 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_0 - } - else - { - X2PIXEL01_20 - } - X2PIXEL10_11 - X2PIXEL11_21 - break; - } - case 211: - { - X2PIXEL00_11 - X2PIXEL01_10 - X2PIXEL10_21 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_0 - } - else - { - X2PIXEL11_20 - } - break; - } - case 118: - { - X2PIXEL00_22 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_0 - } - else - { - X2PIXEL01_20 - } - X2PIXEL10_12 - X2PIXEL11_10 - break; - } - case 217: - { - X2PIXEL00_12 - X2PIXEL01_22 - X2PIXEL10_10 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_0 - } - else - { - X2PIXEL11_20 - } - break; - } - case 110: - { - X2PIXEL00_10 - X2PIXEL01_12 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_0 - } - else - { - X2PIXEL10_20 - } - X2PIXEL11_22 - break; - } - case 155: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - } - else - { - X2PIXEL00_20 - } - X2PIXEL01_10 - X2PIXEL10_22 - X2PIXEL11_12 - break; - } - case 188: - { - X2PIXEL00_21 - X2PIXEL01_11 - X2PIXEL10_11 - X2PIXEL11_12 - break; - } - case 185: - { - X2PIXEL00_12 - X2PIXEL01_22 - X2PIXEL10_11 - X2PIXEL11_12 - break; - } - case 61: - { - X2PIXEL00_12 - X2PIXEL01_11 - X2PIXEL10_11 - X2PIXEL11_21 - break; - } - case 157: - { - X2PIXEL00_12 - X2PIXEL01_11 - X2PIXEL10_22 - X2PIXEL11_12 - break; - } - case 103: - { - X2PIXEL00_11 - X2PIXEL01_12 - X2PIXEL10_12 - X2PIXEL11_22 - break; - } - case 227: - { - X2PIXEL00_11 - X2PIXEL01_21 - X2PIXEL10_12 - X2PIXEL11_11 - break; - } - case 230: - { - X2PIXEL00_22 - X2PIXEL01_12 - X2PIXEL10_12 - X2PIXEL11_11 - break; - } - case 199: - { - X2PIXEL00_11 - X2PIXEL01_12 - X2PIXEL10_21 - X2PIXEL11_11 - break; - } - case 220: - { - X2PIXEL00_21 - X2PIXEL01_11 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_10 - } - else - { - X2PIXEL10_70 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_0 - } - else - { - X2PIXEL11_20 - } - break; - } - case 158: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_10 - } - else - { - X2PIXEL00_70 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_0 - } - else - { - X2PIXEL01_20 - } - X2PIXEL10_22 - X2PIXEL11_12 - break; - } - case 234: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_10 - } - else - { - X2PIXEL00_70 - } - X2PIXEL01_21 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_0 - } - else - { - X2PIXEL10_20 - } - X2PIXEL11_11 - break; - } - case 242: - { - X2PIXEL00_22 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_10 - } - else - { - X2PIXEL01_70 - } - X2PIXEL10_12 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_0 - } - else - { - X2PIXEL11_20 - } - break; - } - case 59: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - } - else - { - X2PIXEL00_20 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_10 - } - else - { - X2PIXEL01_70 - } - X2PIXEL10_11 - X2PIXEL11_21 - break; - } - case 121: - { - X2PIXEL00_12 - X2PIXEL01_22 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_0 - } - else - { - X2PIXEL10_20 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_10 - } - else - { - X2PIXEL11_70 - } - break; - } - case 87: - { - X2PIXEL00_11 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_0 - } - else - { - X2PIXEL01_20 - } - X2PIXEL10_21 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_10 - } - else - { - X2PIXEL11_70 - } - break; - } - case 79: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - } - else - { - X2PIXEL00_20 - } - X2PIXEL01_12 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_10 - } - else - { - X2PIXEL10_70 - } - X2PIXEL11_22 - break; - } - case 122: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_10 - } - else - { - X2PIXEL00_70 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_10 - } - else - { - X2PIXEL01_70 - } - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_0 - } - else - { - X2PIXEL10_20 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_10 - } - else - { - X2PIXEL11_70 - } - break; - } - case 94: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_10 - } - else - { - X2PIXEL00_70 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_0 - } - else - { - X2PIXEL01_20 - } - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_10 - } - else - { - X2PIXEL10_70 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_10 - } - else - { - X2PIXEL11_70 - } - break; - } - case 218: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_10 - } - else - { - X2PIXEL00_70 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_10 - } - else - { - X2PIXEL01_70 - } - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_10 - } - else - { - X2PIXEL10_70 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_0 - } - else - { - X2PIXEL11_20 - } - break; - } - case 91: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - } - else - { - X2PIXEL00_20 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_10 - } - else - { - X2PIXEL01_70 - } - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_10 - } - else - { - X2PIXEL10_70 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_10 - } - else - { - X2PIXEL11_70 - } - break; - } - case 229: - { - X2PIXEL00_20 - X2PIXEL01_20 - X2PIXEL10_12 - X2PIXEL11_11 - break; - } - case 167: - { - X2PIXEL00_11 - X2PIXEL01_12 - X2PIXEL10_20 - X2PIXEL11_20 - break; - } - case 173: - { - X2PIXEL00_12 - X2PIXEL01_20 - X2PIXEL10_11 - X2PIXEL11_20 - break; - } - case 181: - { - X2PIXEL00_20 - X2PIXEL01_11 - X2PIXEL10_20 - X2PIXEL11_12 - break; - } - case 186: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_10 - } - else - { - X2PIXEL00_70 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_10 - } - else - { - X2PIXEL01_70 - } - X2PIXEL10_11 - X2PIXEL11_12 - break; - } - case 115: - { - X2PIXEL00_11 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_10 - } - else - { - X2PIXEL01_70 - } - X2PIXEL10_12 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_10 - } - else - { - X2PIXEL11_70 - } - break; - } - case 93: - { - X2PIXEL00_12 - X2PIXEL01_11 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_10 - } - else - { - X2PIXEL10_70 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_10 - } - else - { - X2PIXEL11_70 - } - break; - } - case 206: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_10 - } - else - { - X2PIXEL00_70 - } - X2PIXEL01_12 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_10 - } - else - { - X2PIXEL10_70 - } - X2PIXEL11_11 - break; - } - case 205: - case 201: - { - X2PIXEL00_12 - X2PIXEL01_20 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_10 - } - else - { - X2PIXEL10_70 - } - X2PIXEL11_11 - break; - } - case 174: - case 46: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_10 - } - else - { - X2PIXEL00_70 - } - X2PIXEL01_12 - X2PIXEL10_11 - X2PIXEL11_20 - break; - } - case 179: - case 147: - { - X2PIXEL00_11 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_10 - } - else - { - X2PIXEL01_70 - } - X2PIXEL10_20 - X2PIXEL11_12 - break; - } - case 117: - case 116: - { - X2PIXEL00_20 - X2PIXEL01_11 - X2PIXEL10_12 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_10 - } - else - { - X2PIXEL11_70 - } - break; - } - case 189: - { - X2PIXEL00_12 - X2PIXEL01_11 - X2PIXEL10_11 - X2PIXEL11_12 - break; - } - case 231: - { - X2PIXEL00_11 - X2PIXEL01_12 - X2PIXEL10_12 - X2PIXEL11_11 - break; - } - case 126: - { - X2PIXEL00_10 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_0 - } - else - { - X2PIXEL01_20 - } - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_0 - } - else - { - X2PIXEL10_20 - } - X2PIXEL11_10 - break; - } - case 219: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - } - else - { - X2PIXEL00_20 - } - X2PIXEL01_10 - X2PIXEL10_10 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_0 - } - else - { - X2PIXEL11_20 - } - break; - } - case 125: - { - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL00_12 - X2PIXEL10_0 - } - else - { - X2PIXEL00_61 - X2PIXEL10_90 - } - X2PIXEL01_11 - X2PIXEL11_10 - break; - } - case 221: - { - X2PIXEL00_12 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL01_11 - X2PIXEL11_0 - } - else - { - X2PIXEL01_60 - X2PIXEL11_90 - } - X2PIXEL10_10 - break; - } - case 207: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - X2PIXEL01_12 - } - else - { - X2PIXEL00_90 - X2PIXEL01_61 - } - X2PIXEL10_10 - X2PIXEL11_11 - break; - } - case 238: - { - X2PIXEL00_10 - X2PIXEL01_12 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_0 - X2PIXEL11_11 - } - else - { - X2PIXEL10_90 - X2PIXEL11_60 - } - break; - } - case 190: - { - X2PIXEL00_10 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_0 - X2PIXEL11_12 - } - else - { - X2PIXEL01_90 - X2PIXEL11_61 - } - X2PIXEL10_11 - break; - } - case 187: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - X2PIXEL10_11 - } - else - { - X2PIXEL00_90 - X2PIXEL10_60 - } - X2PIXEL01_10 - X2PIXEL11_12 - break; - } - case 243: - { - X2PIXEL00_11 - X2PIXEL01_10 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL10_12 - X2PIXEL11_0 - } - else - { - X2PIXEL10_61 - X2PIXEL11_90 - } - break; - } - case 119: - { - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL00_11 - X2PIXEL01_0 - } - else - { - X2PIXEL00_60 - X2PIXEL01_90 - } - X2PIXEL10_12 - X2PIXEL11_10 - break; - } - case 237: - case 233: - { - X2PIXEL00_12 - X2PIXEL01_20 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_0 - } - else - { - X2PIXEL10_100 - } - X2PIXEL11_11 - break; - } - case 175: - case 47: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - } - else - { - X2PIXEL00_100 - } - X2PIXEL01_12 - X2PIXEL10_11 - X2PIXEL11_20 - break; - } - case 183: - case 151: - { - X2PIXEL00_11 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_0 - } - else - { - X2PIXEL01_100 - } - X2PIXEL10_20 - X2PIXEL11_12 - break; - } - case 245: - case 244: - { - X2PIXEL00_20 - X2PIXEL01_11 - X2PIXEL10_12 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_0 - } - else - { - X2PIXEL11_100 - } - break; - } - case 250: - { - X2PIXEL00_10 - X2PIXEL01_10 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_0 - } - else - { - X2PIXEL10_20 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_0 - } - else - { - X2PIXEL11_20 - } - break; - } - case 123: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - } - else - { - X2PIXEL00_20 - } - X2PIXEL01_10 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_0 - } - else - { - X2PIXEL10_20 - } - X2PIXEL11_10 - break; - } - case 95: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - } - else - { - X2PIXEL00_20 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_0 - } - else - { - X2PIXEL01_20 - } - X2PIXEL10_10 - X2PIXEL11_10 - break; - } - case 222: - { - X2PIXEL00_10 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_0 - } - else - { - X2PIXEL01_20 - } - X2PIXEL10_10 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_0 - } - else - { - X2PIXEL11_20 - } - break; - } - case 252: - { - X2PIXEL00_21 - X2PIXEL01_11 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_0 - } - else - { - X2PIXEL10_20 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_0 - } - else - { - X2PIXEL11_100 - } - break; - } - case 249: - { - X2PIXEL00_12 - X2PIXEL01_22 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_0 - } - else - { - X2PIXEL10_100 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_0 - } - else - { - X2PIXEL11_20 - } - break; - } - case 235: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - } - else - { - X2PIXEL00_20 - } - X2PIXEL01_21 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_0 - } - else - { - X2PIXEL10_100 - } - X2PIXEL11_11 - break; - } - case 111: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - } - else - { - X2PIXEL00_100 - } - X2PIXEL01_12 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_0 - } - else - { - X2PIXEL10_20 - } - X2PIXEL11_22 - break; - } - case 63: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - } - else - { - X2PIXEL00_100 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_0 - } - else - { - X2PIXEL01_20 - } - X2PIXEL10_11 - X2PIXEL11_21 - break; - } - case 159: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - } - else - { - X2PIXEL00_20 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_0 - } - else - { - X2PIXEL01_100 - } - X2PIXEL10_22 - X2PIXEL11_12 - break; - } - case 215: - { - X2PIXEL00_11 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_0 - } - else - { - X2PIXEL01_100 - } - X2PIXEL10_21 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_0 - } - else - { - X2PIXEL11_20 - } - break; - } - case 246: - { - X2PIXEL00_22 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_0 - } - else - { - X2PIXEL01_20 - } - X2PIXEL10_12 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_0 - } - else - { - X2PIXEL11_100 - } - break; - } - case 254: - { - X2PIXEL00_10 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_0 - } - else - { - X2PIXEL01_20 - } - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_0 - } - else - { - X2PIXEL10_20 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_0 - } - else - { - X2PIXEL11_100 - } - break; - } - case 253: - { - X2PIXEL00_12 - X2PIXEL01_11 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_0 - } - else - { - X2PIXEL10_100 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_0 - } - else - { - X2PIXEL11_100 - } - break; - } - case 251: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - } - else - { - X2PIXEL00_20 - } - X2PIXEL01_10 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_0 - } - else - { - X2PIXEL10_100 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_0 - } - else - { - X2PIXEL11_20 - } - break; - } - case 239: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - } - else - { - X2PIXEL00_100 - } - X2PIXEL01_12 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_0 - } - else - { - X2PIXEL10_100 - } - X2PIXEL11_11 - break; - } - case 127: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - } - else - { - X2PIXEL00_100 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_0 - } - else - { - X2PIXEL01_20 - } - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_0 - } - else - { - X2PIXEL10_20 - } - X2PIXEL11_10 - break; - } - case 191: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - } - else - { - X2PIXEL00_100 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_0 - } - else - { - X2PIXEL01_100 - } - X2PIXEL10_11 - X2PIXEL11_12 - break; - } - case 223: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - } - else - { - X2PIXEL00_20 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_0 - } - else - { - X2PIXEL01_100 - } - X2PIXEL10_10 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_0 - } - else - { - X2PIXEL11_20 - } - break; - } - case 247: - { - X2PIXEL00_11 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_0 - } - else - { - X2PIXEL01_100 - } - X2PIXEL10_12 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_0 - } - else - { - X2PIXEL11_100 - } - break; - } - case 255: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X2PIXEL00_0 - } - else - { - X2PIXEL00_100 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X2PIXEL01_0 - } - else - { - X2PIXEL01_100 - } - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X2PIXEL10_0 - } - else - { - X2PIXEL10_100 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X2PIXEL11_0 - } - else - { - X2PIXEL11_100 - } - break; - } - } - - w1 = w2; w4 = w5; w7 = w8; - w2 = w3; w5 = w6; w8 = w9; - - dp += 2; - } - - dp += (dst1line - width) * 2; - sp += (src1line - width); - } + return (((((c1 & 0x07e0) >> 5) * w1 + ((c2 & 0x07e0) >> 5) * w2 + ((c3 & 0x07e0) >> 5) * w3) << (5 - s)) & 0x07e0) | + (((((c1 & 0xf81f)) * w1 + ((c2 & 0xf81f)) * w2 + ((c3 & 0xf81f)) * w3) >> s) & 0xf81f); } -void HQ3X_16 (uint8 *srcPtr, int srcPitch, uint8 *dstPtr, int dstPitch, int width, int height) +/* m is the mask of diff with the center pixel that matters in the pattern, and + * r is the expected result (bit set to 1 if there is difference with the + * center, 0 otherwise) */ +#define P(m, r) ((k_shuffled & (m)) == (r)) + +/* adjust 012345678 to 01235678: the mask doesn't contain the (null) diff + * between the center/current pixel and itself */ +#define DROP4(z) ((z) > 4 ? (z)-1 : (z)) + +/* shuffle the input mask: move bit n (4-adjusted) to position stored in p */ +#define SHF(x, rot, n) (((x) >> ((rot) ? 7 - DROP4(n) : DROP4(n)) & 1) << DROP4(p##n)) + +/* used to check if there is YUV difference between 2 pixels */ +#define WDIFF(c1, c2) yuv_diff(rgb2yuv(r2y, c1), rgb2yuv(r2y, c2)) + +/* bootstrap template for every interpolation code. It defines the shuffled + * masks and surrounding pixels. The rot flag is used to indicate if it's a + * rotation; its basic effect is to shuffle k using p8..p0 instead of p0..p8 */ +#define INTERP_BOOTSTRAP(rot) \ + const int k_shuffled = SHF(k, rot, 0) | SHF(k, rot, 1) | SHF(k, rot, 2) | SHF(k, rot, 3) | 0 | SHF(k, rot, 5) | SHF(k, rot, 6) | SHF(k, rot, 7) | SHF(k, rot, 8); \ + \ + const uint32_t w0 = w[p0], w1 = w[p1], \ + w3 = w[p3], w4 = w[p4], w5 = w[p5], \ + w7 = w[p7] + +/* Assuming p0..p8 is mapped to pixels 0..8, this function interpolates the + * top-left pixel in the total of the 2x2 pixels to interpolates. The function + * is also used for the 3 other pixels */ +static inline uint32_t hq2x_interp_1x1(const uint32_t *r2y, int k, + const uint16_t *w, + int p0, int p1, int p2, + int p3, int p4, int p5, + int p6, int p7, int p8) { - int w1, w2, w3, w4, w5, w6, w7, w8, w9; - uint32 src1line = srcPitch >> 1; - uint32 dst1line = dstPitch >> 1; - uint16 *sp = (uint16 *) srcPtr; - uint16 *dp = (uint16 *) dstPtr; + INTERP_BOOTSTRAP(0); - uint32 pattern; - int l, y; - - while (height--) - { - sp--; - - w1 = *(sp - src1line); - w4 = *(sp); - w7 = *(sp + src1line); - - sp++; - - w2 = *(sp - src1line); - w5 = *(sp); - w8 = *(sp + src1line); - - for (l = width; l; l--) - { - sp++; - - w3 = *(sp - src1line); - w6 = *(sp); - w9 = *(sp + src1line); - - y = RGBtoYUV[w5]; - pattern = 0; - - if ((w1 != w5) && (Diff(y, RGBtoYUV[w1]))) pattern |= (1 << 0); - if ((w2 != w5) && (Diff(y, RGBtoYUV[w2]))) pattern |= (1 << 1); - if ((w3 != w5) && (Diff(y, RGBtoYUV[w3]))) pattern |= (1 << 2); - if ((w4 != w5) && (Diff(y, RGBtoYUV[w4]))) pattern |= (1 << 3); - if ((w6 != w5) && (Diff(y, RGBtoYUV[w6]))) pattern |= (1 << 4); - if ((w7 != w5) && (Diff(y, RGBtoYUV[w7]))) pattern |= (1 << 5); - if ((w8 != w5) && (Diff(y, RGBtoYUV[w8]))) pattern |= (1 << 6); - if ((w9 != w5) && (Diff(y, RGBtoYUV[w9]))) pattern |= (1 << 7); - - switch (pattern) - { - case 0: - case 1: - case 4: - case 32: - case 128: - case 5: - case 132: - case 160: - case 33: - case 129: - case 36: - case 133: - case 164: - case 161: - case 37: - case 165: - { - X3PIXEL00_2 - X3PIXEL01_1 - X3PIXEL02_2 - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_2 - X3PIXEL21_1 - X3PIXEL22_2 - break; - } - case 2: - case 34: - case 130: - case 162: - { - X3PIXEL00_1M - X3PIXEL01_C - X3PIXEL02_1M - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_2 - X3PIXEL21_1 - X3PIXEL22_2 - break; - } - case 16: - case 17: - case 48: - case 49: - { - X3PIXEL00_2 - X3PIXEL01_1 - X3PIXEL02_1M - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_2 - X3PIXEL21_1 - X3PIXEL22_1M - break; - } - case 64: - case 65: - case 68: - case 69: - { - X3PIXEL00_2 - X3PIXEL01_1 - X3PIXEL02_2 - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1M - X3PIXEL21_C - X3PIXEL22_1M - break; - } - case 8: - case 12: - case 136: - case 140: - { - X3PIXEL00_1M - X3PIXEL01_1 - X3PIXEL02_2 - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1M - X3PIXEL21_1 - X3PIXEL22_2 - break; - } - case 3: - case 35: - case 131: - case 163: - { - X3PIXEL00_1L - X3PIXEL01_C - X3PIXEL02_1M - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_2 - X3PIXEL21_1 - X3PIXEL22_2 - break; - } - case 6: - case 38: - case 134: - case 166: - { - X3PIXEL00_1M - X3PIXEL01_C - X3PIXEL02_1R - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_2 - X3PIXEL21_1 - X3PIXEL22_2 - break; - } - case 20: - case 21: - case 52: - case 53: - { - X3PIXEL00_2 - X3PIXEL01_1 - X3PIXEL02_1U - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_2 - X3PIXEL21_1 - X3PIXEL22_1M - break; - } - case 144: - case 145: - case 176: - case 177: - { - X3PIXEL00_2 - X3PIXEL01_1 - X3PIXEL02_1M - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_2 - X3PIXEL21_1 - X3PIXEL22_1D - break; - } - case 192: - case 193: - case 196: - case 197: - { - X3PIXEL00_2 - X3PIXEL01_1 - X3PIXEL02_2 - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1M - X3PIXEL21_C - X3PIXEL22_1R - break; - } - case 96: - case 97: - case 100: - case 101: - { - X3PIXEL00_2 - X3PIXEL01_1 - X3PIXEL02_2 - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1L - X3PIXEL21_C - X3PIXEL22_1M - break; - } - case 40: - case 44: - case 168: - case 172: - { - X3PIXEL00_1M - X3PIXEL01_1 - X3PIXEL02_2 - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1D - X3PIXEL21_1 - X3PIXEL22_2 - break; - } - case 9: - case 13: - case 137: - case 141: - { - X3PIXEL00_1U - X3PIXEL01_1 - X3PIXEL02_2 - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1M - X3PIXEL21_1 - X3PIXEL22_2 - break; - } - case 18: - case 50: - { - X3PIXEL00_1M - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL01_C - X3PIXEL02_1M - X3PIXEL12_C - } - else - { - X3PIXEL01_3 - X3PIXEL02_4 - X3PIXEL12_3 - } - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL20_2 - X3PIXEL21_1 - X3PIXEL22_1M - break; - } - case 80: - case 81: - { - X3PIXEL00_2 - X3PIXEL01_1 - X3PIXEL02_1M - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL20_1M - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL12_C - X3PIXEL21_C - X3PIXEL22_1M - } - else - { - X3PIXEL12_3 - X3PIXEL21_3 - X3PIXEL22_4 - } - break; - } - case 72: - case 76: - { - X3PIXEL00_1M - X3PIXEL01_1 - X3PIXEL02_2 - X3PIXEL11 - X3PIXEL12_1 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL10_C - X3PIXEL20_1M - X3PIXEL21_C - } - else - { - X3PIXEL10_3 - X3PIXEL20_4 - X3PIXEL21_3 - } - X3PIXEL22_1M - break; - } - case 10: - case 138: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_1M - X3PIXEL01_C - X3PIXEL10_C - } - else - { - X3PIXEL00_4 - X3PIXEL01_3 - X3PIXEL10_3 - } - X3PIXEL02_1M - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1M - X3PIXEL21_1 - X3PIXEL22_2 - break; - } - case 66: - { - X3PIXEL00_1M - X3PIXEL01_C - X3PIXEL02_1M - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1M - X3PIXEL21_C - X3PIXEL22_1M - break; - } - case 24: - { - X3PIXEL00_1M - X3PIXEL01_1 - X3PIXEL02_1M - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1M - X3PIXEL21_1 - X3PIXEL22_1M - break; - } - case 7: - case 39: - case 135: - { - X3PIXEL00_1L - X3PIXEL01_C - X3PIXEL02_1R - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_2 - X3PIXEL21_1 - X3PIXEL22_2 - break; - } - case 148: - case 149: - case 180: - { - X3PIXEL00_2 - X3PIXEL01_1 - X3PIXEL02_1U - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_2 - X3PIXEL21_1 - X3PIXEL22_1D - break; - } - case 224: - case 228: - case 225: - { - X3PIXEL00_2 - X3PIXEL01_1 - X3PIXEL02_2 - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1L - X3PIXEL21_C - X3PIXEL22_1R - break; - } - case 41: - case 169: - case 45: - { - X3PIXEL00_1U - X3PIXEL01_1 - X3PIXEL02_2 - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1D - X3PIXEL21_1 - X3PIXEL22_2 - break; - } - case 22: - case 54: - { - X3PIXEL00_1M - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL01_C - X3PIXEL02_C - X3PIXEL12_C - } - else - { - X3PIXEL01_3 - X3PIXEL02_4 - X3PIXEL12_3 - } - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL20_2 - X3PIXEL21_1 - X3PIXEL22_1M - break; - } - case 208: - case 209: - { - X3PIXEL00_2 - X3PIXEL01_1 - X3PIXEL02_1M - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL20_1M - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL12_C - X3PIXEL21_C - X3PIXEL22_C - } - else - { - X3PIXEL12_3 - X3PIXEL21_3 - X3PIXEL22_4 - } - break; - } - case 104: - case 108: - { - X3PIXEL00_1M - X3PIXEL01_1 - X3PIXEL02_2 - X3PIXEL11 - X3PIXEL12_1 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL10_C - X3PIXEL20_C - X3PIXEL21_C - } - else - { - X3PIXEL10_3 - X3PIXEL20_4 - X3PIXEL21_3 - } - X3PIXEL22_1M - break; - } - case 11: - case 139: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - X3PIXEL01_C - X3PIXEL10_C - } - else - { - X3PIXEL00_4 - X3PIXEL01_3 - X3PIXEL10_3 - } - X3PIXEL02_1M - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1M - X3PIXEL21_1 - X3PIXEL22_2 - break; - } - case 19: - case 51: - { - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL00_1L - X3PIXEL01_C - X3PIXEL02_1M - X3PIXEL12_C - } - else - { - X3PIXEL00_2 - X3PIXEL01_6 - X3PIXEL02_5 - X3PIXEL12_1 - } - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL20_2 - X3PIXEL21_1 - X3PIXEL22_1M - break; - } - case 146: - case 178: - { - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL01_C - X3PIXEL02_1M - X3PIXEL12_C - X3PIXEL22_1D - } - else - { - X3PIXEL01_1 - X3PIXEL02_5 - X3PIXEL12_6 - X3PIXEL22_2 - } - X3PIXEL00_1M - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL20_2 - X3PIXEL21_1 - break; - } - case 84: - case 85: - { - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL02_1U - X3PIXEL12_C - X3PIXEL21_C - X3PIXEL22_1M - } - else - { - X3PIXEL02_2 - X3PIXEL12_6 - X3PIXEL21_1 - X3PIXEL22_5 - } - X3PIXEL00_2 - X3PIXEL01_1 - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL20_1M - break; - } - case 112: - case 113: - { - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL12_C - X3PIXEL20_1L - X3PIXEL21_C - X3PIXEL22_1M - } - else - { - X3PIXEL12_1 - X3PIXEL20_2 - X3PIXEL21_6 - X3PIXEL22_5 - } - X3PIXEL00_2 - X3PIXEL01_1 - X3PIXEL02_1M - X3PIXEL10_1 - X3PIXEL11 - break; - } - case 200: - case 204: - { - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL10_C - X3PIXEL20_1M - X3PIXEL21_C - X3PIXEL22_1R - } - else - { - X3PIXEL10_1 - X3PIXEL20_5 - X3PIXEL21_6 - X3PIXEL22_2 - } - X3PIXEL00_1M - X3PIXEL01_1 - X3PIXEL02_2 - X3PIXEL11 - X3PIXEL12_1 - break; - } - case 73: - case 77: - { - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL00_1U - X3PIXEL10_C - X3PIXEL20_1M - X3PIXEL21_C - } - else - { - X3PIXEL00_2 - X3PIXEL10_6 - X3PIXEL20_5 - X3PIXEL21_1 - } - X3PIXEL01_1 - X3PIXEL02_2 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL22_1M - break; - } - case 42: - case 170: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_1M - X3PIXEL01_C - X3PIXEL10_C - X3PIXEL20_1D - } - else - { - X3PIXEL00_5 - X3PIXEL01_1 - X3PIXEL10_6 - X3PIXEL20_2 - } - X3PIXEL02_1M - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL21_1 - X3PIXEL22_2 - break; - } - case 14: - case 142: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_1M - X3PIXEL01_C - X3PIXEL02_1R - X3PIXEL10_C - } - else - { - X3PIXEL00_5 - X3PIXEL01_6 - X3PIXEL02_2 - X3PIXEL10_1 - } - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1M - X3PIXEL21_1 - X3PIXEL22_2 - break; - } - case 67: - { - X3PIXEL00_1L - X3PIXEL01_C - X3PIXEL02_1M - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1M - X3PIXEL21_C - X3PIXEL22_1M - break; - } - case 70: - { - X3PIXEL00_1M - X3PIXEL01_C - X3PIXEL02_1R - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1M - X3PIXEL21_C - X3PIXEL22_1M - break; - } - case 28: - { - X3PIXEL00_1M - X3PIXEL01_1 - X3PIXEL02_1U - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1M - X3PIXEL21_1 - X3PIXEL22_1M - break; - } - case 152: - { - X3PIXEL00_1M - X3PIXEL01_1 - X3PIXEL02_1M - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1M - X3PIXEL21_1 - X3PIXEL22_1D - break; - } - case 194: - { - X3PIXEL00_1M - X3PIXEL01_C - X3PIXEL02_1M - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1M - X3PIXEL21_C - X3PIXEL22_1R - break; - } - case 98: - { - X3PIXEL00_1M - X3PIXEL01_C - X3PIXEL02_1M - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1L - X3PIXEL21_C - X3PIXEL22_1M - break; - } - case 56: - { - X3PIXEL00_1M - X3PIXEL01_1 - X3PIXEL02_1M - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1D - X3PIXEL21_1 - X3PIXEL22_1M - break; - } - case 25: - { - X3PIXEL00_1U - X3PIXEL01_1 - X3PIXEL02_1M - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1M - X3PIXEL21_1 - X3PIXEL22_1M - break; - } - case 26: - case 31: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - X3PIXEL10_C - } - else - { - X3PIXEL00_4 - X3PIXEL10_3 - } - X3PIXEL01_C - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL02_C - X3PIXEL12_C - } - else - { - X3PIXEL02_4 - X3PIXEL12_3 - } - X3PIXEL11 - X3PIXEL20_1M - X3PIXEL21_1 - X3PIXEL22_1M - break; - } - case 82: - case 214: - { - X3PIXEL00_1M - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL01_C - X3PIXEL02_C - } - else - { - X3PIXEL01_3 - X3PIXEL02_4 - } - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1M - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL21_C - X3PIXEL22_C - } - else - { - X3PIXEL21_3 - X3PIXEL22_4 - } - break; - } - case 88: - case 248: - { - X3PIXEL00_1M - X3PIXEL01_1 - X3PIXEL02_1M - X3PIXEL11 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL10_C - X3PIXEL20_C - } - else - { - X3PIXEL10_3 - X3PIXEL20_4 - } - X3PIXEL21_C - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL12_C - X3PIXEL22_C - } - else - { - X3PIXEL12_3 - X3PIXEL22_4 - } - break; - } - case 74: - case 107: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - X3PIXEL01_C - } - else - { - X3PIXEL00_4 - X3PIXEL01_3 - } - X3PIXEL02_1M - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_1 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL20_C - X3PIXEL21_C - } - else - { - X3PIXEL20_4 - X3PIXEL21_3 - } - X3PIXEL22_1M - break; - } - case 27: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - X3PIXEL01_C - X3PIXEL10_C - } - else - { - X3PIXEL00_4 - X3PIXEL01_3 - X3PIXEL10_3 - } - X3PIXEL02_1M - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1M - X3PIXEL21_1 - X3PIXEL22_1M - break; - } - case 86: - { - X3PIXEL00_1M - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL01_C - X3PIXEL02_C - X3PIXEL12_C - } - else - { - X3PIXEL01_3 - X3PIXEL02_4 - X3PIXEL12_3 - } - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL20_1M - X3PIXEL21_C - X3PIXEL22_1M - break; - } - case 216: - { - X3PIXEL00_1M - X3PIXEL01_1 - X3PIXEL02_1M - X3PIXEL10_C - X3PIXEL11 - X3PIXEL20_1M - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL12_C - X3PIXEL21_C - X3PIXEL22_C - } - else - { - X3PIXEL12_3 - X3PIXEL21_3 - X3PIXEL22_4 - } - break; - } - case 106: - { - X3PIXEL00_1M - X3PIXEL01_C - X3PIXEL02_1M - X3PIXEL11 - X3PIXEL12_1 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL10_C - X3PIXEL20_C - X3PIXEL21_C - } - else - { - X3PIXEL10_3 - X3PIXEL20_4 - X3PIXEL21_3 - } - X3PIXEL22_1M - break; - } - case 30: - { - X3PIXEL00_1M - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL01_C - X3PIXEL02_C - X3PIXEL12_C - } - else - { - X3PIXEL01_3 - X3PIXEL02_4 - X3PIXEL12_3 - } - X3PIXEL10_C - X3PIXEL11 - X3PIXEL20_1M - X3PIXEL21_1 - X3PIXEL22_1M - break; - } - case 210: - { - X3PIXEL00_1M - X3PIXEL01_C - X3PIXEL02_1M - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL20_1M - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL12_C - X3PIXEL21_C - X3PIXEL22_C - } - else - { - X3PIXEL12_3 - X3PIXEL21_3 - X3PIXEL22_4 - } - break; - } - case 120: - { - X3PIXEL00_1M - X3PIXEL01_1 - X3PIXEL02_1M - X3PIXEL11 - X3PIXEL12_C - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL10_C - X3PIXEL20_C - X3PIXEL21_C - } - else - { - X3PIXEL10_3 - X3PIXEL20_4 - X3PIXEL21_3 - } - X3PIXEL22_1M - break; - } - case 75: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - X3PIXEL01_C - X3PIXEL10_C - } - else - { - X3PIXEL00_4 - X3PIXEL01_3 - X3PIXEL10_3 - } - X3PIXEL02_1M - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1M - X3PIXEL21_C - X3PIXEL22_1M - break; - } - case 29: - { - X3PIXEL00_1U - X3PIXEL01_1 - X3PIXEL02_1U - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1M - X3PIXEL21_1 - X3PIXEL22_1M - break; - } - case 198: - { - X3PIXEL00_1M - X3PIXEL01_C - X3PIXEL02_1R - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1M - X3PIXEL21_C - X3PIXEL22_1R - break; - } - case 184: - { - X3PIXEL00_1M - X3PIXEL01_1 - X3PIXEL02_1M - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1D - X3PIXEL21_1 - X3PIXEL22_1D - break; - } - case 99: - { - X3PIXEL00_1L - X3PIXEL01_C - X3PIXEL02_1M - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1L - X3PIXEL21_C - X3PIXEL22_1M - break; - } - case 57: - { - X3PIXEL00_1U - X3PIXEL01_1 - X3PIXEL02_1M - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1D - X3PIXEL21_1 - X3PIXEL22_1M - break; - } - case 71: - { - X3PIXEL00_1L - X3PIXEL01_C - X3PIXEL02_1R - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1M - X3PIXEL21_C - X3PIXEL22_1M - break; - } - case 156: - { - X3PIXEL00_1M - X3PIXEL01_1 - X3PIXEL02_1U - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1M - X3PIXEL21_1 - X3PIXEL22_1D - break; - } - case 226: - { - X3PIXEL00_1M - X3PIXEL01_C - X3PIXEL02_1M - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1L - X3PIXEL21_C - X3PIXEL22_1R - break; - } - case 60: - { - X3PIXEL00_1M - X3PIXEL01_1 - X3PIXEL02_1U - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1D - X3PIXEL21_1 - X3PIXEL22_1M - break; - } - case 195: - { - X3PIXEL00_1L - X3PIXEL01_C - X3PIXEL02_1M - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1M - X3PIXEL21_C - X3PIXEL22_1R - break; - } - case 102: - { - X3PIXEL00_1M - X3PIXEL01_C - X3PIXEL02_1R - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1L - X3PIXEL21_C - X3PIXEL22_1M - break; - } - case 153: - { - X3PIXEL00_1U - X3PIXEL01_1 - X3PIXEL02_1M - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1M - X3PIXEL21_1 - X3PIXEL22_1D - break; - } - case 58: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_1M - } - else - { - X3PIXEL00_2 - } - X3PIXEL01_C - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL02_1M - } - else - { - X3PIXEL02_2 - } - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1D - X3PIXEL21_1 - X3PIXEL22_1M - break; - } - case 83: - { - X3PIXEL00_1L - X3PIXEL01_C - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL02_1M - } - else - { - X3PIXEL02_2 - } - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1M - X3PIXEL21_C - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL22_1M - } - else - { - X3PIXEL22_2 - } - break; - } - case 92: - { - X3PIXEL00_1M - X3PIXEL01_1 - X3PIXEL02_1U - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL20_1M - } - else - { - X3PIXEL20_2 - } - X3PIXEL21_C - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL22_1M - } - else - { - X3PIXEL22_2 - } - break; - } - case 202: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_1M - } - else - { - X3PIXEL00_2 - } - X3PIXEL01_C - X3PIXEL02_1M - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_1 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL20_1M - } - else - { - X3PIXEL20_2 - } - X3PIXEL21_C - X3PIXEL22_1R - break; - } - case 78: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_1M - } - else - { - X3PIXEL00_2 - } - X3PIXEL01_C - X3PIXEL02_1R - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_1 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL20_1M - } - else - { - X3PIXEL20_2 - } - X3PIXEL21_C - X3PIXEL22_1M - break; - } - case 154: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_1M - } - else - { - X3PIXEL00_2 - } - X3PIXEL01_C - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL02_1M - } - else - { - X3PIXEL02_2 - } - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1M - X3PIXEL21_1 - X3PIXEL22_1D - break; - } - case 114: - { - X3PIXEL00_1M - X3PIXEL01_C - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL02_1M - } - else - { - X3PIXEL02_2 - } - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1L - X3PIXEL21_C - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL22_1M - } - else - { - X3PIXEL22_2 - } - break; - } - case 89: - { - X3PIXEL00_1U - X3PIXEL01_1 - X3PIXEL02_1M - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL20_1M - } - else - { - X3PIXEL20_2 - } - X3PIXEL21_C - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL22_1M - } - else - { - X3PIXEL22_2 - } - break; - } - case 90: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_1M - } - else - { - X3PIXEL00_2 - } - X3PIXEL01_C - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL02_1M - } - else - { - X3PIXEL02_2 - } - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL20_1M - } - else - { - X3PIXEL20_2 - } - X3PIXEL21_C - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL22_1M - } - else - { - X3PIXEL22_2 - } - break; - } - case 55: - case 23: - { - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL00_1L - X3PIXEL01_C - X3PIXEL02_C - X3PIXEL12_C - } - else - { - X3PIXEL00_2 - X3PIXEL01_6 - X3PIXEL02_5 - X3PIXEL12_1 - } - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL20_2 - X3PIXEL21_1 - X3PIXEL22_1M - break; - } - case 182: - case 150: - { - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL01_C - X3PIXEL02_C - X3PIXEL12_C - X3PIXEL22_1D - } - else - { - X3PIXEL01_1 - X3PIXEL02_5 - X3PIXEL12_6 - X3PIXEL22_2 - } - X3PIXEL00_1M - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL20_2 - X3PIXEL21_1 - break; - } - case 213: - case 212: - { - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL02_1U - X3PIXEL12_C - X3PIXEL21_C - X3PIXEL22_C - } - else - { - X3PIXEL02_2 - X3PIXEL12_6 - X3PIXEL21_1 - X3PIXEL22_5 - } - X3PIXEL00_2 - X3PIXEL01_1 - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL20_1M - break; - } - case 241: - case 240: - { - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL12_C - X3PIXEL20_1L - X3PIXEL21_C - X3PIXEL22_C - } - else - { - X3PIXEL12_1 - X3PIXEL20_2 - X3PIXEL21_6 - X3PIXEL22_5 - } - X3PIXEL00_2 - X3PIXEL01_1 - X3PIXEL02_1M - X3PIXEL10_1 - X3PIXEL11 - break; - } - case 236: - case 232: - { - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL10_C - X3PIXEL20_C - X3PIXEL21_C - X3PIXEL22_1R - } - else - { - X3PIXEL10_1 - X3PIXEL20_5 - X3PIXEL21_6 - X3PIXEL22_2 - } - X3PIXEL00_1M - X3PIXEL01_1 - X3PIXEL02_2 - X3PIXEL11 - X3PIXEL12_1 - break; - } - case 109: - case 105: - { - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL00_1U - X3PIXEL10_C - X3PIXEL20_C - X3PIXEL21_C - } - else - { - X3PIXEL00_2 - X3PIXEL10_6 - X3PIXEL20_5 - X3PIXEL21_1 - } - X3PIXEL01_1 - X3PIXEL02_2 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL22_1M - break; - } - case 171: - case 43: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - X3PIXEL01_C - X3PIXEL10_C - X3PIXEL20_1D - } - else - { - X3PIXEL00_5 - X3PIXEL01_1 - X3PIXEL10_6 - X3PIXEL20_2 - } - X3PIXEL02_1M - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL21_1 - X3PIXEL22_2 - break; - } - case 143: - case 15: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - X3PIXEL01_C - X3PIXEL02_1R - X3PIXEL10_C - } - else - { - X3PIXEL00_5 - X3PIXEL01_6 - X3PIXEL02_2 - X3PIXEL10_1 - } - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1M - X3PIXEL21_1 - X3PIXEL22_2 - break; - } - case 124: - { - X3PIXEL00_1M - X3PIXEL01_1 - X3PIXEL02_1U - X3PIXEL11 - X3PIXEL12_C - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL10_C - X3PIXEL20_C - X3PIXEL21_C - } - else - { - X3PIXEL10_3 - X3PIXEL20_4 - X3PIXEL21_3 - } - X3PIXEL22_1M - break; - } - case 203: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - X3PIXEL01_C - X3PIXEL10_C - } - else - { - X3PIXEL00_4 - X3PIXEL01_3 - X3PIXEL10_3 - } - X3PIXEL02_1M - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1M - X3PIXEL21_C - X3PIXEL22_1R - break; - } - case 62: - { - X3PIXEL00_1M - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL01_C - X3PIXEL02_C - X3PIXEL12_C - } - else - { - X3PIXEL01_3 - X3PIXEL02_4 - X3PIXEL12_3 - } - X3PIXEL10_C - X3PIXEL11 - X3PIXEL20_1D - X3PIXEL21_1 - X3PIXEL22_1M - break; - } - case 211: - { - X3PIXEL00_1L - X3PIXEL01_C - X3PIXEL02_1M - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL20_1M - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL12_C - X3PIXEL21_C - X3PIXEL22_C - } - else - { - X3PIXEL12_3 - X3PIXEL21_3 - X3PIXEL22_4 - } - break; - } - case 118: - { - X3PIXEL00_1M - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL01_C - X3PIXEL02_C - X3PIXEL12_C - } - else - { - X3PIXEL01_3 - X3PIXEL02_4 - X3PIXEL12_3 - } - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL20_1L - X3PIXEL21_C - X3PIXEL22_1M - break; - } - case 217: - { - X3PIXEL00_1U - X3PIXEL01_1 - X3PIXEL02_1M - X3PIXEL10_C - X3PIXEL11 - X3PIXEL20_1M - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL12_C - X3PIXEL21_C - X3PIXEL22_C - } - else - { - X3PIXEL12_3 - X3PIXEL21_3 - X3PIXEL22_4 - } - break; - } - case 110: - { - X3PIXEL00_1M - X3PIXEL01_C - X3PIXEL02_1R - X3PIXEL11 - X3PIXEL12_1 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL10_C - X3PIXEL20_C - X3PIXEL21_C - } - else - { - X3PIXEL10_3 - X3PIXEL20_4 - X3PIXEL21_3 - } - X3PIXEL22_1M - break; - } - case 155: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - X3PIXEL01_C - X3PIXEL10_C - } - else - { - X3PIXEL00_4 - X3PIXEL01_3 - X3PIXEL10_3 - } - X3PIXEL02_1M - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1M - X3PIXEL21_1 - X3PIXEL22_1D - break; - } - case 188: - { - X3PIXEL00_1M - X3PIXEL01_1 - X3PIXEL02_1U - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1D - X3PIXEL21_1 - X3PIXEL22_1D - break; - } - case 185: - { - X3PIXEL00_1U - X3PIXEL01_1 - X3PIXEL02_1M - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1D - X3PIXEL21_1 - X3PIXEL22_1D - break; - } - case 61: - { - X3PIXEL00_1U - X3PIXEL01_1 - X3PIXEL02_1U - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1D - X3PIXEL21_1 - X3PIXEL22_1M - break; - } - case 157: - { - X3PIXEL00_1U - X3PIXEL01_1 - X3PIXEL02_1U - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1M - X3PIXEL21_1 - X3PIXEL22_1D - break; - } - case 103: - { - X3PIXEL00_1L - X3PIXEL01_C - X3PIXEL02_1R - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1L - X3PIXEL21_C - X3PIXEL22_1M - break; - } - case 227: - { - X3PIXEL00_1L - X3PIXEL01_C - X3PIXEL02_1M - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1L - X3PIXEL21_C - X3PIXEL22_1R - break; - } - case 230: - { - X3PIXEL00_1M - X3PIXEL01_C - X3PIXEL02_1R - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1L - X3PIXEL21_C - X3PIXEL22_1R - break; - } - case 199: - { - X3PIXEL00_1L - X3PIXEL01_C - X3PIXEL02_1R - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1M - X3PIXEL21_C - X3PIXEL22_1R - break; - } - case 220: - { - X3PIXEL00_1M - X3PIXEL01_1 - X3PIXEL02_1U - X3PIXEL10_C - X3PIXEL11 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL20_1M - } - else - { - X3PIXEL20_2 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL12_C - X3PIXEL21_C - X3PIXEL22_C - } - else - { - X3PIXEL12_3 - X3PIXEL21_3 - X3PIXEL22_4 - } - break; - } - case 158: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_1M - } - else - { - X3PIXEL00_2 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL01_C - X3PIXEL02_C - X3PIXEL12_C - } - else - { - X3PIXEL01_3 - X3PIXEL02_4 - X3PIXEL12_3 - } - X3PIXEL10_C - X3PIXEL11 - X3PIXEL20_1M - X3PIXEL21_1 - X3PIXEL22_1D - break; - } - case 234: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_1M - } - else - { - X3PIXEL00_2 - } - X3PIXEL01_C - X3PIXEL02_1M - X3PIXEL11 - X3PIXEL12_1 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL10_C - X3PIXEL20_C - X3PIXEL21_C - } - else - { - X3PIXEL10_3 - X3PIXEL20_4 - X3PIXEL21_3 - } - X3PIXEL22_1R - break; - } - case 242: - { - X3PIXEL00_1M - X3PIXEL01_C - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL02_1M - } - else - { - X3PIXEL02_2 - } - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL20_1L - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL12_C - X3PIXEL21_C - X3PIXEL22_C - } - else - { - X3PIXEL12_3 - X3PIXEL21_3 - X3PIXEL22_4 - } - break; - } - case 59: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - X3PIXEL01_C - X3PIXEL10_C - } - else - { - X3PIXEL00_4 - X3PIXEL01_3 - X3PIXEL10_3 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL02_1M - } - else - { - X3PIXEL02_2 - } - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1D - X3PIXEL21_1 - X3PIXEL22_1M - break; - } - case 121: - { - X3PIXEL00_1U - X3PIXEL01_1 - X3PIXEL02_1M - X3PIXEL11 - X3PIXEL12_C - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL10_C - X3PIXEL20_C - X3PIXEL21_C - } - else - { - X3PIXEL10_3 - X3PIXEL20_4 - X3PIXEL21_3 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL22_1M - } - else - { - X3PIXEL22_2 - } - break; - } - case 87: - { - X3PIXEL00_1L - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL01_C - X3PIXEL02_C - X3PIXEL12_C - } - else - { - X3PIXEL01_3 - X3PIXEL02_4 - X3PIXEL12_3 - } - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL20_1M - X3PIXEL21_C - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL22_1M - } - else - { - X3PIXEL22_2 - } - break; - } - case 79: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - X3PIXEL01_C - X3PIXEL10_C - } - else - { - X3PIXEL00_4 - X3PIXEL01_3 - X3PIXEL10_3 - } - X3PIXEL02_1R - X3PIXEL11 - X3PIXEL12_1 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL20_1M - } - else - { - X3PIXEL20_2 - } - X3PIXEL21_C - X3PIXEL22_1M - break; - } - case 122: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_1M - } - else - { - X3PIXEL00_2 - } - X3PIXEL01_C - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL02_1M - } - else - { - X3PIXEL02_2 - } - X3PIXEL11 - X3PIXEL12_C - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL10_C - X3PIXEL20_C - X3PIXEL21_C - } - else - { - X3PIXEL10_3 - X3PIXEL20_4 - X3PIXEL21_3 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL22_1M - } - else - { - X3PIXEL22_2 - } - break; - } - case 94: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_1M - } - else - { - X3PIXEL00_2 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL01_C - X3PIXEL02_C - X3PIXEL12_C - } - else - { - X3PIXEL01_3 - X3PIXEL02_4 - X3PIXEL12_3 - } - X3PIXEL10_C - X3PIXEL11 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL20_1M - } - else - { - X3PIXEL20_2 - } - X3PIXEL21_C - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL22_1M - } - else - { - X3PIXEL22_2 - } - break; - } - case 218: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_1M - } - else - { - X3PIXEL00_2 - } - X3PIXEL01_C - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL02_1M - } - else - { - X3PIXEL02_2 - } - X3PIXEL10_C - X3PIXEL11 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL20_1M - } - else - { - X3PIXEL20_2 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL12_C - X3PIXEL21_C - X3PIXEL22_C - } - else - { - X3PIXEL12_3 - X3PIXEL21_3 - X3PIXEL22_4 - } - break; - } - case 91: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - X3PIXEL01_C - X3PIXEL10_C - } - else - { - X3PIXEL00_4 - X3PIXEL01_3 - X3PIXEL10_3 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL02_1M - } - else - { - X3PIXEL02_2 - } - X3PIXEL11 - X3PIXEL12_C - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL20_1M - } - else - { - X3PIXEL20_2 - } - X3PIXEL21_C - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL22_1M - } - else - { - X3PIXEL22_2 - } - break; - } - case 229: - { - X3PIXEL00_2 - X3PIXEL01_1 - X3PIXEL02_2 - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1L - X3PIXEL21_C - X3PIXEL22_1R - break; - } - case 167: - { - X3PIXEL00_1L - X3PIXEL01_C - X3PIXEL02_1R - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_2 - X3PIXEL21_1 - X3PIXEL22_2 - break; - } - case 173: - { - X3PIXEL00_1U - X3PIXEL01_1 - X3PIXEL02_2 - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1D - X3PIXEL21_1 - X3PIXEL22_2 - break; - } - case 181: - { - X3PIXEL00_2 - X3PIXEL01_1 - X3PIXEL02_1U - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_2 - X3PIXEL21_1 - X3PIXEL22_1D - break; - } - case 186: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_1M - } - else - { - X3PIXEL00_2 - } - X3PIXEL01_C - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL02_1M - } - else - { - X3PIXEL02_2 - } - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1D - X3PIXEL21_1 - X3PIXEL22_1D - break; - } - case 115: - { - X3PIXEL00_1L - X3PIXEL01_C - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL02_1M - } - else - { - X3PIXEL02_2 - } - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1L - X3PIXEL21_C - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL22_1M - } - else - { - X3PIXEL22_2 - } - break; - } - case 93: - { - X3PIXEL00_1U - X3PIXEL01_1 - X3PIXEL02_1U - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL20_1M - } - else - { - X3PIXEL20_2 - } - X3PIXEL21_C - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL22_1M - } - else - { - X3PIXEL22_2 - } - break; - } - case 206: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_1M - } - else - { - X3PIXEL00_2 - } - X3PIXEL01_C - X3PIXEL02_1R - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_1 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL20_1M - } - else - { - X3PIXEL20_2 - } - X3PIXEL21_C - X3PIXEL22_1R - break; - } - case 205: - case 201: - { - X3PIXEL00_1U - X3PIXEL01_1 - X3PIXEL02_2 - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_1 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL20_1M - } - else - { - X3PIXEL20_2 - } - X3PIXEL21_C - X3PIXEL22_1R - break; - } - case 174: - case 46: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_1M - } - else - { - X3PIXEL00_2 - } - X3PIXEL01_C - X3PIXEL02_1R - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1D - X3PIXEL21_1 - X3PIXEL22_2 - break; - } - case 179: - case 147: - { - X3PIXEL00_1L - X3PIXEL01_C - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL02_1M - } - else - { - X3PIXEL02_2 - } - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_2 - X3PIXEL21_1 - X3PIXEL22_1D - break; - } - case 117: - case 116: - { - X3PIXEL00_2 - X3PIXEL01_1 - X3PIXEL02_1U - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1L - X3PIXEL21_C - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL22_1M - } - else - { - X3PIXEL22_2 - } - break; - } - case 189: - { - X3PIXEL00_1U - X3PIXEL01_1 - X3PIXEL02_1U - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1D - X3PIXEL21_1 - X3PIXEL22_1D - break; - } - case 231: - { - X3PIXEL00_1L - X3PIXEL01_C - X3PIXEL02_1R - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1L - X3PIXEL21_C - X3PIXEL22_1R - break; - } - case 126: - { - X3PIXEL00_1M - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL01_C - X3PIXEL02_C - X3PIXEL12_C - } - else - { - X3PIXEL01_3 - X3PIXEL02_4 - X3PIXEL12_3 - } - X3PIXEL11 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL10_C - X3PIXEL20_C - X3PIXEL21_C - } - else - { - X3PIXEL10_3 - X3PIXEL20_4 - X3PIXEL21_3 - } - X3PIXEL22_1M - break; - } - case 219: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - X3PIXEL01_C - X3PIXEL10_C - } - else - { - X3PIXEL00_4 - X3PIXEL01_3 - X3PIXEL10_3 - } - X3PIXEL02_1M - X3PIXEL11 - X3PIXEL20_1M - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL12_C - X3PIXEL21_C - X3PIXEL22_C - } - else - { - X3PIXEL12_3 - X3PIXEL21_3 - X3PIXEL22_4 - } - break; - } - case 125: - { - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL00_1U - X3PIXEL10_C - X3PIXEL20_C - X3PIXEL21_C - } - else - { - X3PIXEL00_2 - X3PIXEL10_6 - X3PIXEL20_5 - X3PIXEL21_1 - } - X3PIXEL01_1 - X3PIXEL02_1U - X3PIXEL11 - X3PIXEL12_C - X3PIXEL22_1M - break; - } - case 221: - { - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL02_1U - X3PIXEL12_C - X3PIXEL21_C - X3PIXEL22_C - } - else - { - X3PIXEL02_2 - X3PIXEL12_6 - X3PIXEL21_1 - X3PIXEL22_5 - } - X3PIXEL00_1U - X3PIXEL01_1 - X3PIXEL10_C - X3PIXEL11 - X3PIXEL20_1M - break; - } - case 207: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - X3PIXEL01_C - X3PIXEL02_1R - X3PIXEL10_C - } - else - { - X3PIXEL00_5 - X3PIXEL01_6 - X3PIXEL02_2 - X3PIXEL10_1 - } - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1M - X3PIXEL21_C - X3PIXEL22_1R - break; - } - case 238: - { - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL10_C - X3PIXEL20_C - X3PIXEL21_C - X3PIXEL22_1R - } - else - { - X3PIXEL10_1 - X3PIXEL20_5 - X3PIXEL21_6 - X3PIXEL22_2 - } - X3PIXEL00_1M - X3PIXEL01_C - X3PIXEL02_1R - X3PIXEL11 - X3PIXEL12_1 - break; - } - case 190: - { - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL01_C - X3PIXEL02_C - X3PIXEL12_C - X3PIXEL22_1D - } - else - { - X3PIXEL01_1 - X3PIXEL02_5 - X3PIXEL12_6 - X3PIXEL22_2 - } - X3PIXEL00_1M - X3PIXEL10_C - X3PIXEL11 - X3PIXEL20_1D - X3PIXEL21_1 - break; - } - case 187: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - X3PIXEL01_C - X3PIXEL10_C - X3PIXEL20_1D - } - else - { - X3PIXEL00_5 - X3PIXEL01_1 - X3PIXEL10_6 - X3PIXEL20_2 - } - X3PIXEL02_1M - X3PIXEL11 - X3PIXEL12_C - X3PIXEL21_1 - X3PIXEL22_1D - break; - } - case 243: - { - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL12_C - X3PIXEL20_1L - X3PIXEL21_C - X3PIXEL22_C - } - else - { - X3PIXEL12_1 - X3PIXEL20_2 - X3PIXEL21_6 - X3PIXEL22_5 - } - X3PIXEL00_1L - X3PIXEL01_C - X3PIXEL02_1M - X3PIXEL10_1 - X3PIXEL11 - break; - } - case 119: - { - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL00_1L - X3PIXEL01_C - X3PIXEL02_C - X3PIXEL12_C - } - else - { - X3PIXEL00_2 - X3PIXEL01_6 - X3PIXEL02_5 - X3PIXEL12_1 - } - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL20_1L - X3PIXEL21_C - X3PIXEL22_1M - break; - } - case 237: - case 233: - { - X3PIXEL00_1U - X3PIXEL01_1 - X3PIXEL02_2 - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_1 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL20_C - } - else - { - X3PIXEL20_2 - } - X3PIXEL21_C - X3PIXEL22_1R - break; - } - case 175: - case 47: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - } - else - { - X3PIXEL00_2 - } - X3PIXEL01_C - X3PIXEL02_1R - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_1 - X3PIXEL20_1D - X3PIXEL21_1 - X3PIXEL22_2 - break; - } - case 183: - case 151: - { - X3PIXEL00_1L - X3PIXEL01_C - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL02_C - } - else - { - X3PIXEL02_2 - } - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_2 - X3PIXEL21_1 - X3PIXEL22_1D - break; - } - case 245: - case 244: - { - X3PIXEL00_2 - X3PIXEL01_1 - X3PIXEL02_1U - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1L - X3PIXEL21_C - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL22_C - } - else - { - X3PIXEL22_2 - } - break; - } - case 250: - { - X3PIXEL00_1M - X3PIXEL01_C - X3PIXEL02_1M - X3PIXEL11 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL10_C - X3PIXEL20_C - } - else - { - X3PIXEL10_3 - X3PIXEL20_4 - } - X3PIXEL21_C - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL12_C - X3PIXEL22_C - } - else - { - X3PIXEL12_3 - X3PIXEL22_4 - } - break; - } - case 123: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - X3PIXEL01_C - } - else - { - X3PIXEL00_4 - X3PIXEL01_3 - } - X3PIXEL02_1M - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL20_C - X3PIXEL21_C - } - else - { - X3PIXEL20_4 - X3PIXEL21_3 - } - X3PIXEL22_1M - break; - } - case 95: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - X3PIXEL10_C - } - else - { - X3PIXEL00_4 - X3PIXEL10_3 - } - X3PIXEL01_C - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL02_C - X3PIXEL12_C - } - else - { - X3PIXEL02_4 - X3PIXEL12_3 - } - X3PIXEL11 - X3PIXEL20_1M - X3PIXEL21_C - X3PIXEL22_1M - break; - } - case 222: - { - X3PIXEL00_1M - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL01_C - X3PIXEL02_C - } - else - { - X3PIXEL01_3 - X3PIXEL02_4 - } - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1M - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL21_C - X3PIXEL22_C - } - else - { - X3PIXEL21_3 - X3PIXEL22_4 - } - break; - } - case 252: - { - X3PIXEL00_1M - X3PIXEL01_1 - X3PIXEL02_1U - X3PIXEL11 - X3PIXEL12_C - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL10_C - X3PIXEL20_C - } - else - { - X3PIXEL10_3 - X3PIXEL20_4 - } - X3PIXEL21_C - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL22_C - } - else - { - X3PIXEL22_2 - } - break; - } - case 249: - { - X3PIXEL00_1U - X3PIXEL01_1 - X3PIXEL02_1M - X3PIXEL10_C - X3PIXEL11 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL20_C - } - else - { - X3PIXEL20_2 - } - X3PIXEL21_C - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL12_C - X3PIXEL22_C - } - else - { - X3PIXEL12_3 - X3PIXEL22_4 - } - break; - } - case 235: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - X3PIXEL01_C - } - else - { - X3PIXEL00_4 - X3PIXEL01_3 - } - X3PIXEL02_1M - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_1 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL20_C - } - else - { - X3PIXEL20_2 - } - X3PIXEL21_C - X3PIXEL22_1R - break; - } - case 111: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - } - else - { - X3PIXEL00_2 - } - X3PIXEL01_C - X3PIXEL02_1R - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_1 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL20_C - X3PIXEL21_C - } - else - { - X3PIXEL20_4 - X3PIXEL21_3 - } - X3PIXEL22_1M - break; - } - case 63: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - } - else - { - X3PIXEL00_2 - } - X3PIXEL01_C - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL02_C - X3PIXEL12_C - } - else - { - X3PIXEL02_4 - X3PIXEL12_3 - } - X3PIXEL10_C - X3PIXEL11 - X3PIXEL20_1D - X3PIXEL21_1 - X3PIXEL22_1M - break; - } - case 159: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - X3PIXEL10_C - } - else - { - X3PIXEL00_4 - X3PIXEL10_3 - } - X3PIXEL01_C - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL02_C - } - else - { - X3PIXEL02_2 - } - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1M - X3PIXEL21_1 - X3PIXEL22_1D - break; - } - case 215: - { - X3PIXEL00_1L - X3PIXEL01_C - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL02_C - } - else - { - X3PIXEL02_2 - } - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1M - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL21_C - X3PIXEL22_C - } - else - { - X3PIXEL21_3 - X3PIXEL22_4 - } - break; - } - case 246: - { - X3PIXEL00_1M - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL01_C - X3PIXEL02_C - } - else - { - X3PIXEL01_3 - X3PIXEL02_4 - } - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1L - X3PIXEL21_C - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL22_C - } - else - { - X3PIXEL22_2 - } - break; - } - case 254: - { - X3PIXEL00_1M - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL01_C - X3PIXEL02_C - } - else - { - X3PIXEL01_3 - X3PIXEL02_4 - } - X3PIXEL11 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL10_C - X3PIXEL20_C - } - else - { - X3PIXEL10_3 - X3PIXEL20_4 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL12_C - X3PIXEL21_C - X3PIXEL22_C - } - else - { - X3PIXEL12_3 - X3PIXEL21_3 - X3PIXEL22_2 - } - break; - } - case 253: - { - X3PIXEL00_1U - X3PIXEL01_1 - X3PIXEL02_1U - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL20_C - } - else - { - X3PIXEL20_2 - } - X3PIXEL21_C - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL22_C - } - else - { - X3PIXEL22_2 - } - break; - } - case 251: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - X3PIXEL01_C - } - else - { - X3PIXEL00_4 - X3PIXEL01_3 - } - X3PIXEL02_1M - X3PIXEL11 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL10_C - X3PIXEL20_C - X3PIXEL21_C - } - else - { - X3PIXEL10_3 - X3PIXEL20_2 - X3PIXEL21_3 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL12_C - X3PIXEL22_C - } - else - { - X3PIXEL12_3 - X3PIXEL22_4 - } - break; - } - case 239: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - } - else - { - X3PIXEL00_2 - } - X3PIXEL01_C - X3PIXEL02_1R - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_1 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL20_C - } - else - { - X3PIXEL20_2 - } - X3PIXEL21_C - X3PIXEL22_1R - break; - } - case 127: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - X3PIXEL01_C - X3PIXEL10_C - } - else - { - X3PIXEL00_2 - X3PIXEL01_3 - X3PIXEL10_3 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL02_C - X3PIXEL12_C - } - else - { - X3PIXEL02_4 - X3PIXEL12_3 - } - X3PIXEL11 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL20_C - X3PIXEL21_C - } - else - { - X3PIXEL20_4 - X3PIXEL21_3 - } - X3PIXEL22_1M - break; - } - case 191: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - } - else - { - X3PIXEL00_2 - } - X3PIXEL01_C - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL02_C - } - else - { - X3PIXEL02_2 - } - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1D - X3PIXEL21_1 - X3PIXEL22_1D - break; - } - case 223: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - X3PIXEL10_C - } - else - { - X3PIXEL00_4 - X3PIXEL10_3 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL01_C - X3PIXEL02_C - X3PIXEL12_C - } - else - { - X3PIXEL01_3 - X3PIXEL02_2 - X3PIXEL12_3 - } - X3PIXEL11 - X3PIXEL20_1M - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL21_C - X3PIXEL22_C - } - else - { - X3PIXEL21_3 - X3PIXEL22_4 - } - break; - } - case 247: - { - X3PIXEL00_1L - X3PIXEL01_C - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL02_C - } - else - { - X3PIXEL02_2 - } - X3PIXEL10_1 - X3PIXEL11 - X3PIXEL12_C - X3PIXEL20_1L - X3PIXEL21_C - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL22_C - } - else - { - X3PIXEL22_2 - } - break; - } - case 255: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X3PIXEL00_C - } - else - { - X3PIXEL00_2 - } - X3PIXEL01_C - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X3PIXEL02_C - } - else - { - X3PIXEL02_2 - } - X3PIXEL10_C - X3PIXEL11 - X3PIXEL12_C - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X3PIXEL20_C - } - else - { - X3PIXEL20_2 - } - X3PIXEL21_C - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X3PIXEL22_C - } - else - { - X3PIXEL22_2 - } - break; - } - } - - w1 = w2; w4 = w5; w7 = w8; - w2 = w3; w5 = w6; w8 = w9; - - dp += 3; - } - - dp += (dst1line - width) * 3; - sp += (src1line - width); - } + if ((P(0xbf, 0x37) || P(0xdb, 0x13)) && WDIFF(w1, w5)) + return interp_2px(w4, 3, w3, 1, 2); + if ((P(0xdb, 0x49) || P(0xef, 0x6d)) && WDIFF(w7, w3)) + return interp_2px(w4, 3, w1, 1, 2); + if ((P(0x0b, 0x0b) || P(0xfe, 0x4a) || P(0xfe, 0x1a)) && WDIFF(w3, w1)) + return w4; + if ((P(0x6f, 0x2a) || P(0x5b, 0x0a) || P(0xbf, 0x3a) || P(0xdf, 0x5a) || + P(0x9f, 0x8a) || P(0xcf, 0x8a) || P(0xef, 0x4e) || P(0x3f, 0x0e) || + P(0xfb, 0x5a) || P(0xbb, 0x8a) || P(0x7f, 0x5a) || P(0xaf, 0x8a) || + P(0xeb, 0x8a)) && + WDIFF(w3, w1)) + return interp_2px(w4, 3, w0, 1, 2); + if (P(0x0b, 0x08)) + return interp_3px(w4, 2, w0, 1, w1, 1, 2); + if (P(0x0b, 0x02)) + return interp_3px(w4, 2, w0, 1, w3, 1, 2); + if (P(0x2f, 0x2f)) + return interp_3px(w4, 14, w3, 1, w1, 1, 4); + if (P(0xbf, 0x37) || P(0xdb, 0x13)) + return interp_3px(w4, 5, w1, 2, w3, 1, 3); + if (P(0xdb, 0x49) || P(0xef, 0x6d)) + return interp_3px(w4, 5, w3, 2, w1, 1, 3); + if (P(0x1b, 0x03) || P(0x4f, 0x43) || P(0x8b, 0x83) || P(0x6b, 0x43)) + return interp_2px(w4, 3, w3, 1, 2); + if (P(0x4b, 0x09) || P(0x8b, 0x89) || P(0x1f, 0x19) || P(0x3b, 0x19)) + return interp_2px(w4, 3, w1, 1, 2); + if (P(0x7e, 0x2a) || P(0xef, 0xab) || P(0xbf, 0x8f) || P(0x7e, 0x0e)) + return interp_3px(w4, 2, w3, 3, w1, 3, 3); + if (P(0xfb, 0x6a) || P(0x6f, 0x6e) || P(0x3f, 0x3e) || P(0xfb, 0xfa) || + P(0xdf, 0xde) || P(0xdf, 0x1e)) + return interp_2px(w4, 3, w0, 1, 2); + if (P(0x0a, 0x00) || P(0x4f, 0x4b) || P(0x9f, 0x1b) || P(0x2f, 0x0b) || + P(0xbe, 0x0a) || P(0xee, 0x0a) || P(0x7e, 0x0a) || P(0xeb, 0x4b) || + P(0x3b, 0x1b)) + return interp_3px(w4, 2, w3, 1, w1, 1, 2); + return interp_3px(w4, 6, w3, 1, w1, 1, 3); } -void HQ4X_16 (uint8 *srcPtr, int srcPitch, uint8 *dstPtr, int dstPitch, int width, int height) +/* Assuming p0..p8 is mapped to pixels 0..8, this function interpolates the + * top-left and top-center pixel in the total of the 3x3 pixels to + * interpolates. The function is also used for the 3 other couples of pixels + * defining the outline. The center pixel is not defined through this function, + * since it's just the same as the original value. */ +static inline void hq3x_interp_2x1(uint16_t *dst, int dst_linesize, + const uint32_t *r2y, int k, + const uint16_t *w, + int pos00, int pos01, + int p0, int p1, int p2, + int p3, int p4, int p5, + int p6, int p7, int p8, + int rotate) { - int w1, w2, w3, w4, w5, w6, w7, w8, w9; - uint32 src1line = srcPitch >> 1; - uint32 dst1line = dstPitch >> 1; - uint16 *sp = (uint16 *) srcPtr; - uint16 *dp = (uint16 *) dstPtr; + INTERP_BOOTSTRAP(rotate); - uint32 pattern; - int l, y; + uint16_t *dst00 = &dst[dst_linesize * (pos00 >> 1) + (pos00 & 1)]; + uint16_t *dst01 = &dst[dst_linesize * (pos01 >> 1) + (pos01 & 1)]; - while (height--) - { - sp--; + if ((P(0xdb, 0x49) || P(0xef, 0x6d)) && WDIFF(w7, w3)) + *dst00 = interp_2px(w4, 3, w1, 1, 2); + else if ((P(0xbf, 0x37) || P(0xdb, 0x13)) && WDIFF(w1, w5)) + *dst00 = interp_2px(w4, 3, w3, 1, 2); + else if ((P(0x0b, 0x0b) || P(0xfe, 0x4a) || P(0xfe, 0x1a)) && WDIFF(w3, w1)) + *dst00 = w4; + else if ((P(0x6f, 0x2a) || P(0x5b, 0x0a) || P(0xbf, 0x3a) || P(0xdf, 0x5a) || + P(0x9f, 0x8a) || P(0xcf, 0x8a) || P(0xef, 0x4e) || P(0x3f, 0x0e) || + P(0xfb, 0x5a) || P(0xbb, 0x8a) || P(0x7f, 0x5a) || P(0xaf, 0x8a) || + P(0xeb, 0x8a)) && + WDIFF(w3, w1)) + *dst00 = interp_2px(w4, 3, w0, 1, 2); + else if (P(0x4b, 0x09) || P(0x8b, 0x89) || P(0x1f, 0x19) || P(0x3b, 0x19)) + *dst00 = interp_2px(w4, 3, w1, 1, 2); + else if (P(0x1b, 0x03) || P(0x4f, 0x43) || P(0x8b, 0x83) || P(0x6b, 0x43)) + *dst00 = interp_2px(w4, 3, w3, 1, 2); + else if (P(0x7e, 0x2a) || P(0xef, 0xab) || P(0xbf, 0x8f) || P(0x7e, 0x0e)) + *dst00 = interp_2px(w3, 1, w1, 1, 1); + else if (P(0x4f, 0x4b) || P(0x9f, 0x1b) || P(0x2f, 0x0b) || P(0xbe, 0x0a) || + P(0xee, 0x0a) || P(0x7e, 0x0a) || P(0xeb, 0x4b) || P(0x3b, 0x1b)) + *dst00 = interp_3px(w4, 2, w3, 7, w1, 7, 4); + else if (P(0x0b, 0x08) || P(0xf9, 0x68) || P(0xf3, 0x62) || P(0x6d, 0x6c) || + P(0x67, 0x66) || P(0x3d, 0x3c) || P(0x37, 0x36) || P(0xf9, 0xf8) || + P(0xdd, 0xdc) || P(0xf3, 0xf2) || P(0xd7, 0xd6) || P(0xdd, 0x1c) || + P(0xd7, 0x16) || P(0x0b, 0x02)) + *dst00 = interp_2px(w4, 3, w0, 1, 2); + else + *dst00 = interp_3px(w4, 2, w3, 1, w1, 1, 2); - w1 = *(sp - src1line); - w4 = *(sp); - w7 = *(sp + src1line); - - sp++; - - w2 = *(sp - src1line); - w5 = *(sp); - w8 = *(sp + src1line); - - for (l = width; l; l--) - { - sp++; - - w3 = *(sp - src1line); - w6 = *(sp); - w9 = *(sp + src1line); - - y = RGBtoYUV[w5]; - pattern = 0; - - if ((w1 != w5) && (Diff(y, RGBtoYUV[w1]))) pattern |= (1 << 0); - if ((w2 != w5) && (Diff(y, RGBtoYUV[w2]))) pattern |= (1 << 1); - if ((w3 != w5) && (Diff(y, RGBtoYUV[w3]))) pattern |= (1 << 2); - if ((w4 != w5) && (Diff(y, RGBtoYUV[w4]))) pattern |= (1 << 3); - if ((w6 != w5) && (Diff(y, RGBtoYUV[w6]))) pattern |= (1 << 4); - if ((w7 != w5) && (Diff(y, RGBtoYUV[w7]))) pattern |= (1 << 5); - if ((w8 != w5) && (Diff(y, RGBtoYUV[w8]))) pattern |= (1 << 6); - if ((w9 != w5) && (Diff(y, RGBtoYUV[w9]))) pattern |= (1 << 7); - - switch (pattern) - { - case 0: - case 1: - case 4: - case 32: - case 128: - case 5: - case 132: - case 160: - case 33: - case 129: - case 36: - case 133: - case 164: - case 161: - case 37: - case 165: - { - X4PIXEL00_20 - X4PIXEL01_60 - X4PIXEL02_60 - X4PIXEL03_20 - X4PIXEL10_60 - X4PIXEL11_70 - X4PIXEL12_70 - X4PIXEL13_60 - X4PIXEL20_60 - X4PIXEL21_70 - X4PIXEL22_70 - X4PIXEL23_60 - X4PIXEL30_20 - X4PIXEL31_60 - X4PIXEL32_60 - X4PIXEL33_20 - break; - } - case 2: - case 34: - case 130: - case 162: - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL10_61 - X4PIXEL11_30 - X4PIXEL12_30 - X4PIXEL13_61 - X4PIXEL20_60 - X4PIXEL21_70 - X4PIXEL22_70 - X4PIXEL23_60 - X4PIXEL30_20 - X4PIXEL31_60 - X4PIXEL32_60 - X4PIXEL33_20 - break; - } - case 16: - case 17: - case 48: - case 49: - { - X4PIXEL00_20 - X4PIXEL01_60 - X4PIXEL02_61 - X4PIXEL03_80 - X4PIXEL10_60 - X4PIXEL11_70 - X4PIXEL12_30 - X4PIXEL13_10 - X4PIXEL20_60 - X4PIXEL21_70 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL30_20 - X4PIXEL31_60 - X4PIXEL32_61 - X4PIXEL33_80 - break; - } - case 64: - case 65: - case 68: - case 69: - { - X4PIXEL00_20 - X4PIXEL01_60 - X4PIXEL02_60 - X4PIXEL03_20 - X4PIXEL10_60 - X4PIXEL11_70 - X4PIXEL12_70 - X4PIXEL13_60 - X4PIXEL20_61 - X4PIXEL21_30 - X4PIXEL22_30 - X4PIXEL23_61 - X4PIXEL30_80 - X4PIXEL31_10 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 8: - case 12: - case 136: - case 140: - { - X4PIXEL00_80 - X4PIXEL01_61 - X4PIXEL02_60 - X4PIXEL03_20 - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_70 - X4PIXEL13_60 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_70 - X4PIXEL23_60 - X4PIXEL30_80 - X4PIXEL31_61 - X4PIXEL32_60 - X4PIXEL33_20 - break; - } - case 3: - case 35: - case 131: - case 163: - { - X4PIXEL00_81 - X4PIXEL01_31 - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL10_81 - X4PIXEL11_31 - X4PIXEL12_30 - X4PIXEL13_61 - X4PIXEL20_60 - X4PIXEL21_70 - X4PIXEL22_70 - X4PIXEL23_60 - X4PIXEL30_20 - X4PIXEL31_60 - X4PIXEL32_60 - X4PIXEL33_20 - break; - } - case 6: - case 38: - case 134: - case 166: - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL02_32 - X4PIXEL03_82 - X4PIXEL10_61 - X4PIXEL11_30 - X4PIXEL12_32 - X4PIXEL13_82 - X4PIXEL20_60 - X4PIXEL21_70 - X4PIXEL22_70 - X4PIXEL23_60 - X4PIXEL30_20 - X4PIXEL31_60 - X4PIXEL32_60 - X4PIXEL33_20 - break; - } - case 20: - case 21: - case 52: - case 53: - { - X4PIXEL00_20 - X4PIXEL01_60 - X4PIXEL02_81 - X4PIXEL03_81 - X4PIXEL10_60 - X4PIXEL11_70 - X4PIXEL12_31 - X4PIXEL13_31 - X4PIXEL20_60 - X4PIXEL21_70 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL30_20 - X4PIXEL31_60 - X4PIXEL32_61 - X4PIXEL33_80 - break; - } - case 144: - case 145: - case 176: - case 177: - { - X4PIXEL00_20 - X4PIXEL01_60 - X4PIXEL02_61 - X4PIXEL03_80 - X4PIXEL10_60 - X4PIXEL11_70 - X4PIXEL12_30 - X4PIXEL13_10 - X4PIXEL20_60 - X4PIXEL21_70 - X4PIXEL22_32 - X4PIXEL23_32 - X4PIXEL30_20 - X4PIXEL31_60 - X4PIXEL32_82 - X4PIXEL33_82 - break; - } - case 192: - case 193: - case 196: - case 197: - { - X4PIXEL00_20 - X4PIXEL01_60 - X4PIXEL02_60 - X4PIXEL03_20 - X4PIXEL10_60 - X4PIXEL11_70 - X4PIXEL12_70 - X4PIXEL13_60 - X4PIXEL20_61 - X4PIXEL21_30 - X4PIXEL22_31 - X4PIXEL23_81 - X4PIXEL30_80 - X4PIXEL31_10 - X4PIXEL32_31 - X4PIXEL33_81 - break; - } - case 96: - case 97: - case 100: - case 101: - { - X4PIXEL00_20 - X4PIXEL01_60 - X4PIXEL02_60 - X4PIXEL03_20 - X4PIXEL10_60 - X4PIXEL11_70 - X4PIXEL12_70 - X4PIXEL13_60 - X4PIXEL20_82 - X4PIXEL21_32 - X4PIXEL22_30 - X4PIXEL23_61 - X4PIXEL30_82 - X4PIXEL31_32 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 40: - case 44: - case 168: - case 172: - { - X4PIXEL00_80 - X4PIXEL01_61 - X4PIXEL02_60 - X4PIXEL03_20 - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_70 - X4PIXEL13_60 - X4PIXEL20_31 - X4PIXEL21_31 - X4PIXEL22_70 - X4PIXEL23_60 - X4PIXEL30_81 - X4PIXEL31_81 - X4PIXEL32_60 - X4PIXEL33_20 - break; - } - case 9: - case 13: - case 137: - case 141: - { - X4PIXEL00_82 - X4PIXEL01_82 - X4PIXEL02_60 - X4PIXEL03_20 - X4PIXEL10_32 - X4PIXEL11_32 - X4PIXEL12_70 - X4PIXEL13_60 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_70 - X4PIXEL23_60 - X4PIXEL30_80 - X4PIXEL31_61 - X4PIXEL32_60 - X4PIXEL33_20 - break; - } - case 18: - case 50: - { - X4PIXEL00_80 - X4PIXEL01_10 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL12_30 - X4PIXEL13_10 - } - else - { - X4PIXEL02_50 - X4PIXEL03_50 - X4PIXEL12_0 - X4PIXEL13_50 - } - X4PIXEL10_61 - X4PIXEL11_30 - X4PIXEL20_60 - X4PIXEL21_70 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL30_20 - X4PIXEL31_60 - X4PIXEL32_61 - X4PIXEL33_80 - break; - } - case 80: - case 81: - { - X4PIXEL00_20 - X4PIXEL01_60 - X4PIXEL02_61 - X4PIXEL03_80 - X4PIXEL10_60 - X4PIXEL11_70 - X4PIXEL12_30 - X4PIXEL13_10 - X4PIXEL20_61 - X4PIXEL21_30 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL32_10 - X4PIXEL33_80 - } - else - { - X4PIXEL22_0 - X4PIXEL23_50 - X4PIXEL32_50 - X4PIXEL33_50 - } - X4PIXEL30_80 - X4PIXEL31_10 - break; - } - case 72: - case 76: - { - X4PIXEL00_80 - X4PIXEL01_61 - X4PIXEL02_60 - X4PIXEL03_20 - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_70 - X4PIXEL13_60 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL30_80 - X4PIXEL31_10 - } - else - { - X4PIXEL20_50 - X4PIXEL21_0 - X4PIXEL30_50 - X4PIXEL31_50 - } - X4PIXEL22_30 - X4PIXEL23_61 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 10: - case 138: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL10_10 - X4PIXEL11_30 - } - else - { - X4PIXEL00_50 - X4PIXEL01_50 - X4PIXEL10_50 - X4PIXEL11_0 - } - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL12_30 - X4PIXEL13_61 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_70 - X4PIXEL23_60 - X4PIXEL30_80 - X4PIXEL31_61 - X4PIXEL32_60 - X4PIXEL33_20 - break; - } - case 66: - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL10_61 - X4PIXEL11_30 - X4PIXEL12_30 - X4PIXEL13_61 - X4PIXEL20_61 - X4PIXEL21_30 - X4PIXEL22_30 - X4PIXEL23_61 - X4PIXEL30_80 - X4PIXEL31_10 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 24: - { - X4PIXEL00_80 - X4PIXEL01_61 - X4PIXEL02_61 - X4PIXEL03_80 - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_30 - X4PIXEL13_10 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL30_80 - X4PIXEL31_61 - X4PIXEL32_61 - X4PIXEL33_80 - break; - } - case 7: - case 39: - case 135: - { - X4PIXEL00_81 - X4PIXEL01_31 - X4PIXEL02_32 - X4PIXEL03_82 - X4PIXEL10_81 - X4PIXEL11_31 - X4PIXEL12_32 - X4PIXEL13_82 - X4PIXEL20_60 - X4PIXEL21_70 - X4PIXEL22_70 - X4PIXEL23_60 - X4PIXEL30_20 - X4PIXEL31_60 - X4PIXEL32_60 - X4PIXEL33_20 - break; - } - case 148: - case 149: - case 180: - { - X4PIXEL00_20 - X4PIXEL01_60 - X4PIXEL02_81 - X4PIXEL03_81 - X4PIXEL10_60 - X4PIXEL11_70 - X4PIXEL12_31 - X4PIXEL13_31 - X4PIXEL20_60 - X4PIXEL21_70 - X4PIXEL22_32 - X4PIXEL23_32 - X4PIXEL30_20 - X4PIXEL31_60 - X4PIXEL32_82 - X4PIXEL33_82 - break; - } - case 224: - case 228: - case 225: - { - X4PIXEL00_20 - X4PIXEL01_60 - X4PIXEL02_60 - X4PIXEL03_20 - X4PIXEL10_60 - X4PIXEL11_70 - X4PIXEL12_70 - X4PIXEL13_60 - X4PIXEL20_82 - X4PIXEL21_32 - X4PIXEL22_31 - X4PIXEL23_81 - X4PIXEL30_82 - X4PIXEL31_32 - X4PIXEL32_31 - X4PIXEL33_81 - break; - } - case 41: - case 169: - case 45: - { - X4PIXEL00_82 - X4PIXEL01_82 - X4PIXEL02_60 - X4PIXEL03_20 - X4PIXEL10_32 - X4PIXEL11_32 - X4PIXEL12_70 - X4PIXEL13_60 - X4PIXEL20_31 - X4PIXEL21_31 - X4PIXEL22_70 - X4PIXEL23_60 - X4PIXEL30_81 - X4PIXEL31_81 - X4PIXEL32_60 - X4PIXEL33_20 - break; - } - case 22: - case 54: - { - X4PIXEL00_80 - X4PIXEL01_10 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_0 - X4PIXEL03_0 - X4PIXEL13_0 - } - else - { - X4PIXEL02_50 - X4PIXEL03_50 - X4PIXEL13_50 - } - X4PIXEL10_61 - X4PIXEL11_30 - X4PIXEL12_0 - X4PIXEL20_60 - X4PIXEL21_70 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL30_20 - X4PIXEL31_60 - X4PIXEL32_61 - X4PIXEL33_80 - break; - } - case 208: - case 209: - { - X4PIXEL00_20 - X4PIXEL01_60 - X4PIXEL02_61 - X4PIXEL03_80 - X4PIXEL10_60 - X4PIXEL11_70 - X4PIXEL12_30 - X4PIXEL13_10 - X4PIXEL20_61 - X4PIXEL21_30 - X4PIXEL22_0 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL23_0 - X4PIXEL32_0 - X4PIXEL33_0 - } - else - { - X4PIXEL23_50 - X4PIXEL32_50 - X4PIXEL33_50 - } - X4PIXEL30_80 - X4PIXEL31_10 - break; - } - case 104: - case 108: - { - X4PIXEL00_80 - X4PIXEL01_61 - X4PIXEL02_60 - X4PIXEL03_20 - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_70 - X4PIXEL13_60 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_0 - X4PIXEL30_0 - X4PIXEL31_0 - } - else - { - X4PIXEL20_50 - X4PIXEL30_50 - X4PIXEL31_50 - } - X4PIXEL21_0 - X4PIXEL22_30 - X4PIXEL23_61 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 11: - case 139: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - X4PIXEL01_0 - X4PIXEL10_0 - } - else - { - X4PIXEL00_50 - X4PIXEL01_50 - X4PIXEL10_50 - } - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL11_0 - X4PIXEL12_30 - X4PIXEL13_61 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_70 - X4PIXEL23_60 - X4PIXEL30_80 - X4PIXEL31_61 - X4PIXEL32_60 - X4PIXEL33_20 - break; - } - case 19: - case 51: - { - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL00_81 - X4PIXEL01_31 - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL12_30 - X4PIXEL13_10 - } - else - { - X4PIXEL00_12 - X4PIXEL01_14 - X4PIXEL02_83 - X4PIXEL03_50 - X4PIXEL12_70 - X4PIXEL13_21 - } - X4PIXEL10_81 - X4PIXEL11_31 - X4PIXEL20_60 - X4PIXEL21_70 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL30_20 - X4PIXEL31_60 - X4PIXEL32_61 - X4PIXEL33_80 - break; - } - case 146: - case 178: - { - X4PIXEL00_80 - X4PIXEL01_10 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL12_30 - X4PIXEL13_10 - X4PIXEL23_32 - X4PIXEL33_82 - } - else - { - X4PIXEL02_21 - X4PIXEL03_50 - X4PIXEL12_70 - X4PIXEL13_83 - X4PIXEL23_13 - X4PIXEL33_11 - } - X4PIXEL10_61 - X4PIXEL11_30 - X4PIXEL20_60 - X4PIXEL21_70 - X4PIXEL22_32 - X4PIXEL30_20 - X4PIXEL31_60 - X4PIXEL32_82 - break; - } - case 84: - case 85: - { - X4PIXEL00_20 - X4PIXEL01_60 - X4PIXEL02_81 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL03_81 - X4PIXEL13_31 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL32_10 - X4PIXEL33_80 - } - else - { - X4PIXEL03_12 - X4PIXEL13_14 - X4PIXEL22_70 - X4PIXEL23_83 - X4PIXEL32_21 - X4PIXEL33_50 - } - X4PIXEL10_60 - X4PIXEL11_70 - X4PIXEL12_31 - X4PIXEL20_61 - X4PIXEL21_30 - X4PIXEL30_80 - X4PIXEL31_10 - break; - } - case 112: - case 113: - { - X4PIXEL00_20 - X4PIXEL01_60 - X4PIXEL02_61 - X4PIXEL03_80 - X4PIXEL10_60 - X4PIXEL11_70 - X4PIXEL12_30 - X4PIXEL13_10 - X4PIXEL20_82 - X4PIXEL21_32 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL30_82 - X4PIXEL31_32 - X4PIXEL32_10 - X4PIXEL33_80 - } - else - { - X4PIXEL22_70 - X4PIXEL23_21 - X4PIXEL30_11 - X4PIXEL31_13 - X4PIXEL32_83 - X4PIXEL33_50 - } - break; - } - case 200: - case 204: - { - X4PIXEL00_80 - X4PIXEL01_61 - X4PIXEL02_60 - X4PIXEL03_20 - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_70 - X4PIXEL13_60 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL30_80 - X4PIXEL31_10 - X4PIXEL32_31 - X4PIXEL33_81 - } - else - { - X4PIXEL20_21 - X4PIXEL21_70 - X4PIXEL30_50 - X4PIXEL31_83 - X4PIXEL32_14 - X4PIXEL33_12 - } - X4PIXEL22_31 - X4PIXEL23_81 - break; - } - case 73: - case 77: - { - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL00_82 - X4PIXEL10_32 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL30_80 - X4PIXEL31_10 - } - else - { - X4PIXEL00_11 - X4PIXEL10_13 - X4PIXEL20_83 - X4PIXEL21_70 - X4PIXEL30_50 - X4PIXEL31_21 - } - X4PIXEL01_82 - X4PIXEL02_60 - X4PIXEL03_20 - X4PIXEL11_32 - X4PIXEL12_70 - X4PIXEL13_60 - X4PIXEL22_30 - X4PIXEL23_61 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 42: - case 170: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL20_31 - X4PIXEL30_81 - } - else - { - X4PIXEL00_50 - X4PIXEL01_21 - X4PIXEL10_83 - X4PIXEL11_70 - X4PIXEL20_14 - X4PIXEL30_12 - } - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL12_30 - X4PIXEL13_61 - X4PIXEL21_31 - X4PIXEL22_70 - X4PIXEL23_60 - X4PIXEL31_81 - X4PIXEL32_60 - X4PIXEL33_20 - break; - } - case 14: - case 142: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL02_32 - X4PIXEL03_82 - X4PIXEL10_10 - X4PIXEL11_30 - } - else - { - X4PIXEL00_50 - X4PIXEL01_83 - X4PIXEL02_13 - X4PIXEL03_11 - X4PIXEL10_21 - X4PIXEL11_70 - } - X4PIXEL12_32 - X4PIXEL13_82 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_70 - X4PIXEL23_60 - X4PIXEL30_80 - X4PIXEL31_61 - X4PIXEL32_60 - X4PIXEL33_20 - break; - } - case 67: - { - X4PIXEL00_81 - X4PIXEL01_31 - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL10_81 - X4PIXEL11_31 - X4PIXEL12_30 - X4PIXEL13_61 - X4PIXEL20_61 - X4PIXEL21_30 - X4PIXEL22_30 - X4PIXEL23_61 - X4PIXEL30_80 - X4PIXEL31_10 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 70: - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL02_32 - X4PIXEL03_82 - X4PIXEL10_61 - X4PIXEL11_30 - X4PIXEL12_32 - X4PIXEL13_82 - X4PIXEL20_61 - X4PIXEL21_30 - X4PIXEL22_30 - X4PIXEL23_61 - X4PIXEL30_80 - X4PIXEL31_10 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 28: - { - X4PIXEL00_80 - X4PIXEL01_61 - X4PIXEL02_81 - X4PIXEL03_81 - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_31 - X4PIXEL13_31 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL30_80 - X4PIXEL31_61 - X4PIXEL32_61 - X4PIXEL33_80 - break; - } - case 152: - { - X4PIXEL00_80 - X4PIXEL01_61 - X4PIXEL02_61 - X4PIXEL03_80 - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_30 - X4PIXEL13_10 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_32 - X4PIXEL23_32 - X4PIXEL30_80 - X4PIXEL31_61 - X4PIXEL32_82 - X4PIXEL33_82 - break; - } - case 194: - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL10_61 - X4PIXEL11_30 - X4PIXEL12_30 - X4PIXEL13_61 - X4PIXEL20_61 - X4PIXEL21_30 - X4PIXEL22_31 - X4PIXEL23_81 - X4PIXEL30_80 - X4PIXEL31_10 - X4PIXEL32_31 - X4PIXEL33_81 - break; - } - case 98: - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL10_61 - X4PIXEL11_30 - X4PIXEL12_30 - X4PIXEL13_61 - X4PIXEL20_82 - X4PIXEL21_32 - X4PIXEL22_30 - X4PIXEL23_61 - X4PIXEL30_82 - X4PIXEL31_32 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 56: - { - X4PIXEL00_80 - X4PIXEL01_61 - X4PIXEL02_61 - X4PIXEL03_80 - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_30 - X4PIXEL13_10 - X4PIXEL20_31 - X4PIXEL21_31 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL30_81 - X4PIXEL31_81 - X4PIXEL32_61 - X4PIXEL33_80 - break; - } - case 25: - { - X4PIXEL00_82 - X4PIXEL01_82 - X4PIXEL02_61 - X4PIXEL03_80 - X4PIXEL10_32 - X4PIXEL11_32 - X4PIXEL12_30 - X4PIXEL13_10 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL30_80 - X4PIXEL31_61 - X4PIXEL32_61 - X4PIXEL33_80 - break; - } - case 26: - case 31: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - X4PIXEL01_0 - X4PIXEL10_0 - } - else - { - X4PIXEL00_50 - X4PIXEL01_50 - X4PIXEL10_50 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_0 - X4PIXEL03_0 - X4PIXEL13_0 - } - else - { - X4PIXEL02_50 - X4PIXEL03_50 - X4PIXEL13_50 - } - X4PIXEL11_0 - X4PIXEL12_0 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL30_80 - X4PIXEL31_61 - X4PIXEL32_61 - X4PIXEL33_80 - break; - } - case 82: - case 214: - { - X4PIXEL00_80 - X4PIXEL01_10 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_0 - X4PIXEL03_0 - X4PIXEL13_0 - } - else - { - X4PIXEL02_50 - X4PIXEL03_50 - X4PIXEL13_50 - } - X4PIXEL10_61 - X4PIXEL11_30 - X4PIXEL12_0 - X4PIXEL20_61 - X4PIXEL21_30 - X4PIXEL22_0 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL23_0 - X4PIXEL32_0 - X4PIXEL33_0 - } - else - { - X4PIXEL23_50 - X4PIXEL32_50 - X4PIXEL33_50 - } - X4PIXEL30_80 - X4PIXEL31_10 - break; - } - case 88: - case 248: - { - X4PIXEL00_80 - X4PIXEL01_61 - X4PIXEL02_61 - X4PIXEL03_80 - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_30 - X4PIXEL13_10 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_0 - X4PIXEL30_0 - X4PIXEL31_0 - } - else - { - X4PIXEL20_50 - X4PIXEL30_50 - X4PIXEL31_50 - } - X4PIXEL21_0 - X4PIXEL22_0 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL23_0 - X4PIXEL32_0 - X4PIXEL33_0 - } - else - { - X4PIXEL23_50 - X4PIXEL32_50 - X4PIXEL33_50 - } - break; - } - case 74: - case 107: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - X4PIXEL01_0 - X4PIXEL10_0 - } - else - { - X4PIXEL00_50 - X4PIXEL01_50 - X4PIXEL10_50 - } - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL11_0 - X4PIXEL12_30 - X4PIXEL13_61 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_0 - X4PIXEL30_0 - X4PIXEL31_0 - } - else - { - X4PIXEL20_50 - X4PIXEL30_50 - X4PIXEL31_50 - } - X4PIXEL21_0 - X4PIXEL22_30 - X4PIXEL23_61 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 27: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - X4PIXEL01_0 - X4PIXEL10_0 - } - else - { - X4PIXEL00_50 - X4PIXEL01_50 - X4PIXEL10_50 - } - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL11_0 - X4PIXEL12_30 - X4PIXEL13_10 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL30_80 - X4PIXEL31_61 - X4PIXEL32_61 - X4PIXEL33_80 - break; - } - case 86: - { - X4PIXEL00_80 - X4PIXEL01_10 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_0 - X4PIXEL03_0 - X4PIXEL13_0 - } - else - { - X4PIXEL02_50 - X4PIXEL03_50 - X4PIXEL13_50 - } - X4PIXEL10_61 - X4PIXEL11_30 - X4PIXEL12_0 - X4PIXEL20_61 - X4PIXEL21_30 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL30_80 - X4PIXEL31_10 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 216: - { - X4PIXEL00_80 - X4PIXEL01_61 - X4PIXEL02_61 - X4PIXEL03_80 - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_30 - X4PIXEL13_10 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_0 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL23_0 - X4PIXEL32_0 - X4PIXEL33_0 - } - else - { - X4PIXEL23_50 - X4PIXEL32_50 - X4PIXEL33_50 - } - X4PIXEL30_80 - X4PIXEL31_10 - break; - } - case 106: - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_30 - X4PIXEL13_61 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_0 - X4PIXEL30_0 - X4PIXEL31_0 - } - else - { - X4PIXEL20_50 - X4PIXEL30_50 - X4PIXEL31_50 - } - X4PIXEL21_0 - X4PIXEL22_30 - X4PIXEL23_61 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 30: - { - X4PIXEL00_80 - X4PIXEL01_10 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_0 - X4PIXEL03_0 - X4PIXEL13_0 - } - else - { - X4PIXEL02_50 - X4PIXEL03_50 - X4PIXEL13_50 - } - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_0 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL30_80 - X4PIXEL31_61 - X4PIXEL32_61 - X4PIXEL33_80 - break; - } - case 210: - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL10_61 - X4PIXEL11_30 - X4PIXEL12_30 - X4PIXEL13_10 - X4PIXEL20_61 - X4PIXEL21_30 - X4PIXEL22_0 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL23_0 - X4PIXEL32_0 - X4PIXEL33_0 - } - else - { - X4PIXEL23_50 - X4PIXEL32_50 - X4PIXEL33_50 - } - X4PIXEL30_80 - X4PIXEL31_10 - break; - } - case 120: - { - X4PIXEL00_80 - X4PIXEL01_61 - X4PIXEL02_61 - X4PIXEL03_80 - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_30 - X4PIXEL13_10 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_0 - X4PIXEL30_0 - X4PIXEL31_0 - } - else - { - X4PIXEL20_50 - X4PIXEL30_50 - X4PIXEL31_50 - } - X4PIXEL21_0 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 75: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - X4PIXEL01_0 - X4PIXEL10_0 - } - else - { - X4PIXEL00_50 - X4PIXEL01_50 - X4PIXEL10_50 - } - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL11_0 - X4PIXEL12_30 - X4PIXEL13_61 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_30 - X4PIXEL23_61 - X4PIXEL30_80 - X4PIXEL31_10 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 29: - { - X4PIXEL00_82 - X4PIXEL01_82 - X4PIXEL02_81 - X4PIXEL03_81 - X4PIXEL10_32 - X4PIXEL11_32 - X4PIXEL12_31 - X4PIXEL13_31 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL30_80 - X4PIXEL31_61 - X4PIXEL32_61 - X4PIXEL33_80 - break; - } - case 198: - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL02_32 - X4PIXEL03_82 - X4PIXEL10_61 - X4PIXEL11_30 - X4PIXEL12_32 - X4PIXEL13_82 - X4PIXEL20_61 - X4PIXEL21_30 - X4PIXEL22_31 - X4PIXEL23_81 - X4PIXEL30_80 - X4PIXEL31_10 - X4PIXEL32_31 - X4PIXEL33_81 - break; - } - case 184: - { - X4PIXEL00_80 - X4PIXEL01_61 - X4PIXEL02_61 - X4PIXEL03_80 - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_30 - X4PIXEL13_10 - X4PIXEL20_31 - X4PIXEL21_31 - X4PIXEL22_32 - X4PIXEL23_32 - X4PIXEL30_81 - X4PIXEL31_81 - X4PIXEL32_82 - X4PIXEL33_82 - break; - } - case 99: - { - X4PIXEL00_81 - X4PIXEL01_31 - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL10_81 - X4PIXEL11_31 - X4PIXEL12_30 - X4PIXEL13_61 - X4PIXEL20_82 - X4PIXEL21_32 - X4PIXEL22_30 - X4PIXEL23_61 - X4PIXEL30_82 - X4PIXEL31_32 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 57: - { - X4PIXEL00_82 - X4PIXEL01_82 - X4PIXEL02_61 - X4PIXEL03_80 - X4PIXEL10_32 - X4PIXEL11_32 - X4PIXEL12_30 - X4PIXEL13_10 - X4PIXEL20_31 - X4PIXEL21_31 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL30_81 - X4PIXEL31_81 - X4PIXEL32_61 - X4PIXEL33_80 - break; - } - case 71: - { - X4PIXEL00_81 - X4PIXEL01_31 - X4PIXEL02_32 - X4PIXEL03_82 - X4PIXEL10_81 - X4PIXEL11_31 - X4PIXEL12_32 - X4PIXEL13_82 - X4PIXEL20_61 - X4PIXEL21_30 - X4PIXEL22_30 - X4PIXEL23_61 - X4PIXEL30_80 - X4PIXEL31_10 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 156: - { - X4PIXEL00_80 - X4PIXEL01_61 - X4PIXEL02_81 - X4PIXEL03_81 - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_31 - X4PIXEL13_31 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_32 - X4PIXEL23_32 - X4PIXEL30_80 - X4PIXEL31_61 - X4PIXEL32_82 - X4PIXEL33_82 - break; - } - case 226: - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL10_61 - X4PIXEL11_30 - X4PIXEL12_30 - X4PIXEL13_61 - X4PIXEL20_82 - X4PIXEL21_32 - X4PIXEL22_31 - X4PIXEL23_81 - X4PIXEL30_82 - X4PIXEL31_32 - X4PIXEL32_31 - X4PIXEL33_81 - break; - } - case 60: - { - X4PIXEL00_80 - X4PIXEL01_61 - X4PIXEL02_81 - X4PIXEL03_81 - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_31 - X4PIXEL13_31 - X4PIXEL20_31 - X4PIXEL21_31 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL30_81 - X4PIXEL31_81 - X4PIXEL32_61 - X4PIXEL33_80 - break; - } - case 195: - { - X4PIXEL00_81 - X4PIXEL01_31 - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL10_81 - X4PIXEL11_31 - X4PIXEL12_30 - X4PIXEL13_61 - X4PIXEL20_61 - X4PIXEL21_30 - X4PIXEL22_31 - X4PIXEL23_81 - X4PIXEL30_80 - X4PIXEL31_10 - X4PIXEL32_31 - X4PIXEL33_81 - break; - } - case 102: - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL02_32 - X4PIXEL03_82 - X4PIXEL10_61 - X4PIXEL11_30 - X4PIXEL12_32 - X4PIXEL13_82 - X4PIXEL20_82 - X4PIXEL21_32 - X4PIXEL22_30 - X4PIXEL23_61 - X4PIXEL30_82 - X4PIXEL31_32 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 153: - { - X4PIXEL00_82 - X4PIXEL01_82 - X4PIXEL02_61 - X4PIXEL03_80 - X4PIXEL10_32 - X4PIXEL11_32 - X4PIXEL12_30 - X4PIXEL13_10 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_32 - X4PIXEL23_32 - X4PIXEL30_80 - X4PIXEL31_61 - X4PIXEL32_82 - X4PIXEL33_82 - break; - } - case 58: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL10_10 - X4PIXEL11_30 - } - else - { - X4PIXEL00_20 - X4PIXEL01_12 - X4PIXEL10_11 - X4PIXEL11_0 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL12_30 - X4PIXEL13_10 - } - else - { - X4PIXEL02_11 - X4PIXEL03_20 - X4PIXEL12_0 - X4PIXEL13_12 - } - X4PIXEL20_31 - X4PIXEL21_31 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL30_81 - X4PIXEL31_81 - X4PIXEL32_61 - X4PIXEL33_80 - break; - } - case 83: - { - X4PIXEL00_81 - X4PIXEL01_31 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL12_30 - X4PIXEL13_10 - } - else - { - X4PIXEL02_11 - X4PIXEL03_20 - X4PIXEL12_0 - X4PIXEL13_12 - } - X4PIXEL10_81 - X4PIXEL11_31 - X4PIXEL20_61 - X4PIXEL21_30 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL32_10 - X4PIXEL33_80 - } - else - { - X4PIXEL22_0 - X4PIXEL23_11 - X4PIXEL32_12 - X4PIXEL33_20 - } - X4PIXEL30_80 - X4PIXEL31_10 - break; - } - case 92: - { - X4PIXEL00_80 - X4PIXEL01_61 - X4PIXEL02_81 - X4PIXEL03_81 - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_31 - X4PIXEL13_31 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL30_80 - X4PIXEL31_10 - } - else - { - X4PIXEL20_12 - X4PIXEL21_0 - X4PIXEL30_20 - X4PIXEL31_11 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL32_10 - X4PIXEL33_80 - } - else - { - X4PIXEL22_0 - X4PIXEL23_11 - X4PIXEL32_12 - X4PIXEL33_20 - } - break; - } - case 202: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL10_10 - X4PIXEL11_30 - } - else - { - X4PIXEL00_20 - X4PIXEL01_12 - X4PIXEL10_11 - X4PIXEL11_0 - } - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL12_30 - X4PIXEL13_61 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL30_80 - X4PIXEL31_10 - } - else - { - X4PIXEL20_12 - X4PIXEL21_0 - X4PIXEL30_20 - X4PIXEL31_11 - } - X4PIXEL22_31 - X4PIXEL23_81 - X4PIXEL32_31 - X4PIXEL33_81 - break; - } - case 78: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL10_10 - X4PIXEL11_30 - } - else - { - X4PIXEL00_20 - X4PIXEL01_12 - X4PIXEL10_11 - X4PIXEL11_0 - } - X4PIXEL02_32 - X4PIXEL03_82 - X4PIXEL12_32 - X4PIXEL13_82 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL30_80 - X4PIXEL31_10 - } - else - { - X4PIXEL20_12 - X4PIXEL21_0 - X4PIXEL30_20 - X4PIXEL31_11 - } - X4PIXEL22_30 - X4PIXEL23_61 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 154: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL10_10 - X4PIXEL11_30 - } - else - { - X4PIXEL00_20 - X4PIXEL01_12 - X4PIXEL10_11 - X4PIXEL11_0 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL12_30 - X4PIXEL13_10 - } - else - { - X4PIXEL02_11 - X4PIXEL03_20 - X4PIXEL12_0 - X4PIXEL13_12 - } - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_32 - X4PIXEL23_32 - X4PIXEL30_80 - X4PIXEL31_61 - X4PIXEL32_82 - X4PIXEL33_82 - break; - } - case 114: - { - X4PIXEL00_80 - X4PIXEL01_10 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL12_30 - X4PIXEL13_10 - } - else - { - X4PIXEL02_11 - X4PIXEL03_20 - X4PIXEL12_0 - X4PIXEL13_12 - } - X4PIXEL10_61 - X4PIXEL11_30 - X4PIXEL20_82 - X4PIXEL21_32 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL32_10 - X4PIXEL33_80 - } - else - { - X4PIXEL22_0 - X4PIXEL23_11 - X4PIXEL32_12 - X4PIXEL33_20 - } - X4PIXEL30_82 - X4PIXEL31_32 - break; - } - case 89: - { - X4PIXEL00_82 - X4PIXEL01_82 - X4PIXEL02_61 - X4PIXEL03_80 - X4PIXEL10_32 - X4PIXEL11_32 - X4PIXEL12_30 - X4PIXEL13_10 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL30_80 - X4PIXEL31_10 - } - else - { - X4PIXEL20_12 - X4PIXEL21_0 - X4PIXEL30_20 - X4PIXEL31_11 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL32_10 - X4PIXEL33_80 - } - else - { - X4PIXEL22_0 - X4PIXEL23_11 - X4PIXEL32_12 - X4PIXEL33_20 - } - break; - } - case 90: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL10_10 - X4PIXEL11_30 - } - else - { - X4PIXEL00_20 - X4PIXEL01_12 - X4PIXEL10_11 - X4PIXEL11_0 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL12_30 - X4PIXEL13_10 - } - else - { - X4PIXEL02_11 - X4PIXEL03_20 - X4PIXEL12_0 - X4PIXEL13_12 - } - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL30_80 - X4PIXEL31_10 - } - else - { - X4PIXEL20_12 - X4PIXEL21_0 - X4PIXEL30_20 - X4PIXEL31_11 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL32_10 - X4PIXEL33_80 - } - else - { - X4PIXEL22_0 - X4PIXEL23_11 - X4PIXEL32_12 - X4PIXEL33_20 - } - break; - } - case 55: - case 23: - { - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL00_81 - X4PIXEL01_31 - X4PIXEL02_0 - X4PIXEL03_0 - X4PIXEL12_0 - X4PIXEL13_0 - } - else - { - X4PIXEL00_12 - X4PIXEL01_14 - X4PIXEL02_83 - X4PIXEL03_50 - X4PIXEL12_70 - X4PIXEL13_21 - } - X4PIXEL10_81 - X4PIXEL11_31 - X4PIXEL20_60 - X4PIXEL21_70 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL30_20 - X4PIXEL31_60 - X4PIXEL32_61 - X4PIXEL33_80 - break; - } - case 182: - case 150: - { - X4PIXEL00_80 - X4PIXEL01_10 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_0 - X4PIXEL03_0 - X4PIXEL12_0 - X4PIXEL13_0 - X4PIXEL23_32 - X4PIXEL33_82 - } - else - { - X4PIXEL02_21 - X4PIXEL03_50 - X4PIXEL12_70 - X4PIXEL13_83 - X4PIXEL23_13 - X4PIXEL33_11 - } - X4PIXEL10_61 - X4PIXEL11_30 - X4PIXEL20_60 - X4PIXEL21_70 - X4PIXEL22_32 - X4PIXEL30_20 - X4PIXEL31_60 - X4PIXEL32_82 - break; - } - case 213: - case 212: - { - X4PIXEL00_20 - X4PIXEL01_60 - X4PIXEL02_81 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL03_81 - X4PIXEL13_31 - X4PIXEL22_0 - X4PIXEL23_0 - X4PIXEL32_0 - X4PIXEL33_0 - } - else - { - X4PIXEL03_12 - X4PIXEL13_14 - X4PIXEL22_70 - X4PIXEL23_83 - X4PIXEL32_21 - X4PIXEL33_50 - } - X4PIXEL10_60 - X4PIXEL11_70 - X4PIXEL12_31 - X4PIXEL20_61 - X4PIXEL21_30 - X4PIXEL30_80 - X4PIXEL31_10 - break; - } - case 241: - case 240: - { - X4PIXEL00_20 - X4PIXEL01_60 - X4PIXEL02_61 - X4PIXEL03_80 - X4PIXEL10_60 - X4PIXEL11_70 - X4PIXEL12_30 - X4PIXEL13_10 - X4PIXEL20_82 - X4PIXEL21_32 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL22_0 - X4PIXEL23_0 - X4PIXEL30_82 - X4PIXEL31_32 - X4PIXEL32_0 - X4PIXEL33_0 - } - else - { - X4PIXEL22_70 - X4PIXEL23_21 - X4PIXEL30_11 - X4PIXEL31_13 - X4PIXEL32_83 - X4PIXEL33_50 - } - break; - } - case 236: - case 232: - { - X4PIXEL00_80 - X4PIXEL01_61 - X4PIXEL02_60 - X4PIXEL03_20 - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_70 - X4PIXEL13_60 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_0 - X4PIXEL21_0 - X4PIXEL30_0 - X4PIXEL31_0 - X4PIXEL32_31 - X4PIXEL33_81 - } - else - { - X4PIXEL20_21 - X4PIXEL21_70 - X4PIXEL30_50 - X4PIXEL31_83 - X4PIXEL32_14 - X4PIXEL33_12 - } - X4PIXEL22_31 - X4PIXEL23_81 - break; - } - case 109: - case 105: - { - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL00_82 - X4PIXEL10_32 - X4PIXEL20_0 - X4PIXEL21_0 - X4PIXEL30_0 - X4PIXEL31_0 - } - else - { - X4PIXEL00_11 - X4PIXEL10_13 - X4PIXEL20_83 - X4PIXEL21_70 - X4PIXEL30_50 - X4PIXEL31_21 - } - X4PIXEL01_82 - X4PIXEL02_60 - X4PIXEL03_20 - X4PIXEL11_32 - X4PIXEL12_70 - X4PIXEL13_60 - X4PIXEL22_30 - X4PIXEL23_61 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 171: - case 43: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - X4PIXEL01_0 - X4PIXEL10_0 - X4PIXEL11_0 - X4PIXEL20_31 - X4PIXEL30_81 - } - else - { - X4PIXEL00_50 - X4PIXEL01_21 - X4PIXEL10_83 - X4PIXEL11_70 - X4PIXEL20_14 - X4PIXEL30_12 - } - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL12_30 - X4PIXEL13_61 - X4PIXEL21_31 - X4PIXEL22_70 - X4PIXEL23_60 - X4PIXEL31_81 - X4PIXEL32_60 - X4PIXEL33_20 - break; - } - case 143: - case 15: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - X4PIXEL01_0 - X4PIXEL02_32 - X4PIXEL03_82 - X4PIXEL10_0 - X4PIXEL11_0 - } - else - { - X4PIXEL00_50 - X4PIXEL01_83 - X4PIXEL02_13 - X4PIXEL03_11 - X4PIXEL10_21 - X4PIXEL11_70 - } - X4PIXEL12_32 - X4PIXEL13_82 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_70 - X4PIXEL23_60 - X4PIXEL30_80 - X4PIXEL31_61 - X4PIXEL32_60 - X4PIXEL33_20 - break; - } - case 124: - { - X4PIXEL00_80 - X4PIXEL01_61 - X4PIXEL02_81 - X4PIXEL03_81 - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_31 - X4PIXEL13_31 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_0 - X4PIXEL30_0 - X4PIXEL31_0 - } - else - { - X4PIXEL20_50 - X4PIXEL30_50 - X4PIXEL31_50 - } - X4PIXEL21_0 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 203: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - X4PIXEL01_0 - X4PIXEL10_0 - } - else - { - X4PIXEL00_50 - X4PIXEL01_50 - X4PIXEL10_50 - } - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL11_0 - X4PIXEL12_30 - X4PIXEL13_61 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_31 - X4PIXEL23_81 - X4PIXEL30_80 - X4PIXEL31_10 - X4PIXEL32_31 - X4PIXEL33_81 - break; - } - case 62: - { - X4PIXEL00_80 - X4PIXEL01_10 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_0 - X4PIXEL03_0 - X4PIXEL13_0 - } - else - { - X4PIXEL02_50 - X4PIXEL03_50 - X4PIXEL13_50 - } - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_0 - X4PIXEL20_31 - X4PIXEL21_31 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL30_81 - X4PIXEL31_81 - X4PIXEL32_61 - X4PIXEL33_80 - break; - } - case 211: - { - X4PIXEL00_81 - X4PIXEL01_31 - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL10_81 - X4PIXEL11_31 - X4PIXEL12_30 - X4PIXEL13_10 - X4PIXEL20_61 - X4PIXEL21_30 - X4PIXEL22_0 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL23_0 - X4PIXEL32_0 - X4PIXEL33_0 - } - else - { - X4PIXEL23_50 - X4PIXEL32_50 - X4PIXEL33_50 - } - X4PIXEL30_80 - X4PIXEL31_10 - break; - } - case 118: - { - X4PIXEL00_80 - X4PIXEL01_10 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_0 - X4PIXEL03_0 - X4PIXEL13_0 - } - else - { - X4PIXEL02_50 - X4PIXEL03_50 - X4PIXEL13_50 - } - X4PIXEL10_61 - X4PIXEL11_30 - X4PIXEL12_0 - X4PIXEL20_82 - X4PIXEL21_32 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL30_82 - X4PIXEL31_32 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 217: - { - X4PIXEL00_82 - X4PIXEL01_82 - X4PIXEL02_61 - X4PIXEL03_80 - X4PIXEL10_32 - X4PIXEL11_32 - X4PIXEL12_30 - X4PIXEL13_10 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_0 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL23_0 - X4PIXEL32_0 - X4PIXEL33_0 - } - else - { - X4PIXEL23_50 - X4PIXEL32_50 - X4PIXEL33_50 - } - X4PIXEL30_80 - X4PIXEL31_10 - break; - } - case 110: - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL02_32 - X4PIXEL03_82 - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_32 - X4PIXEL13_82 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_0 - X4PIXEL30_0 - X4PIXEL31_0 - } - else - { - X4PIXEL20_50 - X4PIXEL30_50 - X4PIXEL31_50 - } - X4PIXEL21_0 - X4PIXEL22_30 - X4PIXEL23_61 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 155: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - X4PIXEL01_0 - X4PIXEL10_0 - } - else - { - X4PIXEL00_50 - X4PIXEL01_50 - X4PIXEL10_50 - } - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL11_0 - X4PIXEL12_30 - X4PIXEL13_10 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_32 - X4PIXEL23_32 - X4PIXEL30_80 - X4PIXEL31_61 - X4PIXEL32_82 - X4PIXEL33_82 - break; - } - case 188: - { - X4PIXEL00_80 - X4PIXEL01_61 - X4PIXEL02_81 - X4PIXEL03_81 - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_31 - X4PIXEL13_31 - X4PIXEL20_31 - X4PIXEL21_31 - X4PIXEL22_32 - X4PIXEL23_32 - X4PIXEL30_81 - X4PIXEL31_81 - X4PIXEL32_82 - X4PIXEL33_82 - break; - } - case 185: - { - X4PIXEL00_82 - X4PIXEL01_82 - X4PIXEL02_61 - X4PIXEL03_80 - X4PIXEL10_32 - X4PIXEL11_32 - X4PIXEL12_30 - X4PIXEL13_10 - X4PIXEL20_31 - X4PIXEL21_31 - X4PIXEL22_32 - X4PIXEL23_32 - X4PIXEL30_81 - X4PIXEL31_81 - X4PIXEL32_82 - X4PIXEL33_82 - break; - } - case 61: - { - X4PIXEL00_82 - X4PIXEL01_82 - X4PIXEL02_81 - X4PIXEL03_81 - X4PIXEL10_32 - X4PIXEL11_32 - X4PIXEL12_31 - X4PIXEL13_31 - X4PIXEL20_31 - X4PIXEL21_31 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL30_81 - X4PIXEL31_81 - X4PIXEL32_61 - X4PIXEL33_80 - break; - } - case 157: - { - X4PIXEL00_82 - X4PIXEL01_82 - X4PIXEL02_81 - X4PIXEL03_81 - X4PIXEL10_32 - X4PIXEL11_32 - X4PIXEL12_31 - X4PIXEL13_31 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_32 - X4PIXEL23_32 - X4PIXEL30_80 - X4PIXEL31_61 - X4PIXEL32_82 - X4PIXEL33_82 - break; - } - case 103: - { - X4PIXEL00_81 - X4PIXEL01_31 - X4PIXEL02_32 - X4PIXEL03_82 - X4PIXEL10_81 - X4PIXEL11_31 - X4PIXEL12_32 - X4PIXEL13_82 - X4PIXEL20_82 - X4PIXEL21_32 - X4PIXEL22_30 - X4PIXEL23_61 - X4PIXEL30_82 - X4PIXEL31_32 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 227: - { - X4PIXEL00_81 - X4PIXEL01_31 - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL10_81 - X4PIXEL11_31 - X4PIXEL12_30 - X4PIXEL13_61 - X4PIXEL20_82 - X4PIXEL21_32 - X4PIXEL22_31 - X4PIXEL23_81 - X4PIXEL30_82 - X4PIXEL31_32 - X4PIXEL32_31 - X4PIXEL33_81 - break; - } - case 230: - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL02_32 - X4PIXEL03_82 - X4PIXEL10_61 - X4PIXEL11_30 - X4PIXEL12_32 - X4PIXEL13_82 - X4PIXEL20_82 - X4PIXEL21_32 - X4PIXEL22_31 - X4PIXEL23_81 - X4PIXEL30_82 - X4PIXEL31_32 - X4PIXEL32_31 - X4PIXEL33_81 - break; - } - case 199: - { - X4PIXEL00_81 - X4PIXEL01_31 - X4PIXEL02_32 - X4PIXEL03_82 - X4PIXEL10_81 - X4PIXEL11_31 - X4PIXEL12_32 - X4PIXEL13_82 - X4PIXEL20_61 - X4PIXEL21_30 - X4PIXEL22_31 - X4PIXEL23_81 - X4PIXEL30_80 - X4PIXEL31_10 - X4PIXEL32_31 - X4PIXEL33_81 - break; - } - case 220: - { - X4PIXEL00_80 - X4PIXEL01_61 - X4PIXEL02_81 - X4PIXEL03_81 - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_31 - X4PIXEL13_31 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL30_80 - X4PIXEL31_10 - } - else - { - X4PIXEL20_12 - X4PIXEL21_0 - X4PIXEL30_20 - X4PIXEL31_11 - } - X4PIXEL22_0 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL23_0 - X4PIXEL32_0 - X4PIXEL33_0 - } - else - { - X4PIXEL23_50 - X4PIXEL32_50 - X4PIXEL33_50 - } - break; - } - case 158: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL10_10 - X4PIXEL11_30 - } - else - { - X4PIXEL00_20 - X4PIXEL01_12 - X4PIXEL10_11 - X4PIXEL11_0 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_0 - X4PIXEL03_0 - X4PIXEL13_0 - } - else - { - X4PIXEL02_50 - X4PIXEL03_50 - X4PIXEL13_50 - } - X4PIXEL12_0 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_32 - X4PIXEL23_32 - X4PIXEL30_80 - X4PIXEL31_61 - X4PIXEL32_82 - X4PIXEL33_82 - break; - } - case 234: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL10_10 - X4PIXEL11_30 - } - else - { - X4PIXEL00_20 - X4PIXEL01_12 - X4PIXEL10_11 - X4PIXEL11_0 - } - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL12_30 - X4PIXEL13_61 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_0 - X4PIXEL30_0 - X4PIXEL31_0 - } - else - { - X4PIXEL20_50 - X4PIXEL30_50 - X4PIXEL31_50 - } - X4PIXEL21_0 - X4PIXEL22_31 - X4PIXEL23_81 - X4PIXEL32_31 - X4PIXEL33_81 - break; - } - case 242: - { - X4PIXEL00_80 - X4PIXEL01_10 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL12_30 - X4PIXEL13_10 - } - else - { - X4PIXEL02_11 - X4PIXEL03_20 - X4PIXEL12_0 - X4PIXEL13_12 - } - X4PIXEL10_61 - X4PIXEL11_30 - X4PIXEL20_82 - X4PIXEL21_32 - X4PIXEL22_0 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL23_0 - X4PIXEL32_0 - X4PIXEL33_0 - } - else - { - X4PIXEL23_50 - X4PIXEL32_50 - X4PIXEL33_50 - } - X4PIXEL30_82 - X4PIXEL31_32 - break; - } - case 59: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - X4PIXEL01_0 - X4PIXEL10_0 - } - else - { - X4PIXEL00_50 - X4PIXEL01_50 - X4PIXEL10_50 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL12_30 - X4PIXEL13_10 - } - else - { - X4PIXEL02_11 - X4PIXEL03_20 - X4PIXEL12_0 - X4PIXEL13_12 - } - X4PIXEL11_0 - X4PIXEL20_31 - X4PIXEL21_31 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL30_81 - X4PIXEL31_81 - X4PIXEL32_61 - X4PIXEL33_80 - break; - } - case 121: - { - X4PIXEL00_82 - X4PIXEL01_82 - X4PIXEL02_61 - X4PIXEL03_80 - X4PIXEL10_32 - X4PIXEL11_32 - X4PIXEL12_30 - X4PIXEL13_10 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_0 - X4PIXEL30_0 - X4PIXEL31_0 - } - else - { - X4PIXEL20_50 - X4PIXEL30_50 - X4PIXEL31_50 - } - X4PIXEL21_0 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL32_10 - X4PIXEL33_80 - } - else - { - X4PIXEL22_0 - X4PIXEL23_11 - X4PIXEL32_12 - X4PIXEL33_20 - } - break; - } - case 87: - { - X4PIXEL00_81 - X4PIXEL01_31 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_0 - X4PIXEL03_0 - X4PIXEL13_0 - } - else - { - X4PIXEL02_50 - X4PIXEL03_50 - X4PIXEL13_50 - } - X4PIXEL10_81 - X4PIXEL11_31 - X4PIXEL12_0 - X4PIXEL20_61 - X4PIXEL21_30 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL32_10 - X4PIXEL33_80 - } - else - { - X4PIXEL22_0 - X4PIXEL23_11 - X4PIXEL32_12 - X4PIXEL33_20 - } - X4PIXEL30_80 - X4PIXEL31_10 - break; - } - case 79: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - X4PIXEL01_0 - X4PIXEL10_0 - } - else - { - X4PIXEL00_50 - X4PIXEL01_50 - X4PIXEL10_50 - } - X4PIXEL02_32 - X4PIXEL03_82 - X4PIXEL11_0 - X4PIXEL12_32 - X4PIXEL13_82 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL30_80 - X4PIXEL31_10 - } - else - { - X4PIXEL20_12 - X4PIXEL21_0 - X4PIXEL30_20 - X4PIXEL31_11 - } - X4PIXEL22_30 - X4PIXEL23_61 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 122: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL10_10 - X4PIXEL11_30 - } - else - { - X4PIXEL00_20 - X4PIXEL01_12 - X4PIXEL10_11 - X4PIXEL11_0 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL12_30 - X4PIXEL13_10 - } - else - { - X4PIXEL02_11 - X4PIXEL03_20 - X4PIXEL12_0 - X4PIXEL13_12 - } - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_0 - X4PIXEL30_0 - X4PIXEL31_0 - } - else - { - X4PIXEL20_50 - X4PIXEL30_50 - X4PIXEL31_50 - } - X4PIXEL21_0 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL32_10 - X4PIXEL33_80 - } - else - { - X4PIXEL22_0 - X4PIXEL23_11 - X4PIXEL32_12 - X4PIXEL33_20 - } - break; - } - case 94: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL10_10 - X4PIXEL11_30 - } - else - { - X4PIXEL00_20 - X4PIXEL01_12 - X4PIXEL10_11 - X4PIXEL11_0 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_0 - X4PIXEL03_0 - X4PIXEL13_0 - } - else - { - X4PIXEL02_50 - X4PIXEL03_50 - X4PIXEL13_50 - } - X4PIXEL12_0 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL30_80 - X4PIXEL31_10 - } - else - { - X4PIXEL20_12 - X4PIXEL21_0 - X4PIXEL30_20 - X4PIXEL31_11 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL32_10 - X4PIXEL33_80 - } - else - { - X4PIXEL22_0 - X4PIXEL23_11 - X4PIXEL32_12 - X4PIXEL33_20 - } - break; - } - case 218: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL10_10 - X4PIXEL11_30 - } - else - { - X4PIXEL00_20 - X4PIXEL01_12 - X4PIXEL10_11 - X4PIXEL11_0 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL12_30 - X4PIXEL13_10 - } - else - { - X4PIXEL02_11 - X4PIXEL03_20 - X4PIXEL12_0 - X4PIXEL13_12 - } - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL30_80 - X4PIXEL31_10 - } - else - { - X4PIXEL20_12 - X4PIXEL21_0 - X4PIXEL30_20 - X4PIXEL31_11 - } - X4PIXEL22_0 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL23_0 - X4PIXEL32_0 - X4PIXEL33_0 - } - else - { - X4PIXEL23_50 - X4PIXEL32_50 - X4PIXEL33_50 - } - break; - } - case 91: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - X4PIXEL01_0 - X4PIXEL10_0 - } - else - { - X4PIXEL00_50 - X4PIXEL01_50 - X4PIXEL10_50 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL12_30 - X4PIXEL13_10 - } - else - { - X4PIXEL02_11 - X4PIXEL03_20 - X4PIXEL12_0 - X4PIXEL13_12 - } - X4PIXEL11_0 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL30_80 - X4PIXEL31_10 - } - else - { - X4PIXEL20_12 - X4PIXEL21_0 - X4PIXEL30_20 - X4PIXEL31_11 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL32_10 - X4PIXEL33_80 - } - else - { - X4PIXEL22_0 - X4PIXEL23_11 - X4PIXEL32_12 - X4PIXEL33_20 - } - break; - } - case 229: - { - X4PIXEL00_20 - X4PIXEL01_60 - X4PIXEL02_60 - X4PIXEL03_20 - X4PIXEL10_60 - X4PIXEL11_70 - X4PIXEL12_70 - X4PIXEL13_60 - X4PIXEL20_82 - X4PIXEL21_32 - X4PIXEL22_31 - X4PIXEL23_81 - X4PIXEL30_82 - X4PIXEL31_32 - X4PIXEL32_31 - X4PIXEL33_81 - break; - } - case 167: - { - X4PIXEL00_81 - X4PIXEL01_31 - X4PIXEL02_32 - X4PIXEL03_82 - X4PIXEL10_81 - X4PIXEL11_31 - X4PIXEL12_32 - X4PIXEL13_82 - X4PIXEL20_60 - X4PIXEL21_70 - X4PIXEL22_70 - X4PIXEL23_60 - X4PIXEL30_20 - X4PIXEL31_60 - X4PIXEL32_60 - X4PIXEL33_20 - break; - } - case 173: - { - X4PIXEL00_82 - X4PIXEL01_82 - X4PIXEL02_60 - X4PIXEL03_20 - X4PIXEL10_32 - X4PIXEL11_32 - X4PIXEL12_70 - X4PIXEL13_60 - X4PIXEL20_31 - X4PIXEL21_31 - X4PIXEL22_70 - X4PIXEL23_60 - X4PIXEL30_81 - X4PIXEL31_81 - X4PIXEL32_60 - X4PIXEL33_20 - break; - } - case 181: - { - X4PIXEL00_20 - X4PIXEL01_60 - X4PIXEL02_81 - X4PIXEL03_81 - X4PIXEL10_60 - X4PIXEL11_70 - X4PIXEL12_31 - X4PIXEL13_31 - X4PIXEL20_60 - X4PIXEL21_70 - X4PIXEL22_32 - X4PIXEL23_32 - X4PIXEL30_20 - X4PIXEL31_60 - X4PIXEL32_82 - X4PIXEL33_82 - break; - } - case 186: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL10_10 - X4PIXEL11_30 - } - else - { - X4PIXEL00_20 - X4PIXEL01_12 - X4PIXEL10_11 - X4PIXEL11_0 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL12_30 - X4PIXEL13_10 - } - else - { - X4PIXEL02_11 - X4PIXEL03_20 - X4PIXEL12_0 - X4PIXEL13_12 - } - X4PIXEL20_31 - X4PIXEL21_31 - X4PIXEL22_32 - X4PIXEL23_32 - X4PIXEL30_81 - X4PIXEL31_81 - X4PIXEL32_82 - X4PIXEL33_82 - break; - } - case 115: - { - X4PIXEL00_81 - X4PIXEL01_31 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL12_30 - X4PIXEL13_10 - } - else - { - X4PIXEL02_11 - X4PIXEL03_20 - X4PIXEL12_0 - X4PIXEL13_12 - } - X4PIXEL10_81 - X4PIXEL11_31 - X4PIXEL20_82 - X4PIXEL21_32 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL32_10 - X4PIXEL33_80 - } - else - { - X4PIXEL22_0 - X4PIXEL23_11 - X4PIXEL32_12 - X4PIXEL33_20 - } - X4PIXEL30_82 - X4PIXEL31_32 - break; - } - case 93: - { - X4PIXEL00_82 - X4PIXEL01_82 - X4PIXEL02_81 - X4PIXEL03_81 - X4PIXEL10_32 - X4PIXEL11_32 - X4PIXEL12_31 - X4PIXEL13_31 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL30_80 - X4PIXEL31_10 - } - else - { - X4PIXEL20_12 - X4PIXEL21_0 - X4PIXEL30_20 - X4PIXEL31_11 - } - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL32_10 - X4PIXEL33_80 - } - else - { - X4PIXEL22_0 - X4PIXEL23_11 - X4PIXEL32_12 - X4PIXEL33_20 - } - break; - } - case 206: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL10_10 - X4PIXEL11_30 - } - else - { - X4PIXEL00_20 - X4PIXEL01_12 - X4PIXEL10_11 - X4PIXEL11_0 - } - X4PIXEL02_32 - X4PIXEL03_82 - X4PIXEL12_32 - X4PIXEL13_82 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL30_80 - X4PIXEL31_10 - } - else - { - X4PIXEL20_12 - X4PIXEL21_0 - X4PIXEL30_20 - X4PIXEL31_11 - } - X4PIXEL22_31 - X4PIXEL23_81 - X4PIXEL32_31 - X4PIXEL33_81 - break; - } - case 205: - case 201: - { - X4PIXEL00_82 - X4PIXEL01_82 - X4PIXEL02_60 - X4PIXEL03_20 - X4PIXEL10_32 - X4PIXEL11_32 - X4PIXEL12_70 - X4PIXEL13_60 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL30_80 - X4PIXEL31_10 - } - else - { - X4PIXEL20_12 - X4PIXEL21_0 - X4PIXEL30_20 - X4PIXEL31_11 - } - X4PIXEL22_31 - X4PIXEL23_81 - X4PIXEL32_31 - X4PIXEL33_81 - break; - } - case 174: - case 46: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL10_10 - X4PIXEL11_30 - } - else - { - X4PIXEL00_20 - X4PIXEL01_12 - X4PIXEL10_11 - X4PIXEL11_0 - } - X4PIXEL02_32 - X4PIXEL03_82 - X4PIXEL12_32 - X4PIXEL13_82 - X4PIXEL20_31 - X4PIXEL21_31 - X4PIXEL22_70 - X4PIXEL23_60 - X4PIXEL30_81 - X4PIXEL31_81 - X4PIXEL32_60 - X4PIXEL33_20 - break; - } - case 179: - case 147: - { - X4PIXEL00_81 - X4PIXEL01_31 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL12_30 - X4PIXEL13_10 - } - else - { - X4PIXEL02_11 - X4PIXEL03_20 - X4PIXEL12_0 - X4PIXEL13_12 - } - X4PIXEL10_81 - X4PIXEL11_31 - X4PIXEL20_60 - X4PIXEL21_70 - X4PIXEL22_32 - X4PIXEL23_32 - X4PIXEL30_20 - X4PIXEL31_60 - X4PIXEL32_82 - X4PIXEL33_82 - break; - } - case 117: - case 116: - { - X4PIXEL00_20 - X4PIXEL01_60 - X4PIXEL02_81 - X4PIXEL03_81 - X4PIXEL10_60 - X4PIXEL11_70 - X4PIXEL12_31 - X4PIXEL13_31 - X4PIXEL20_82 - X4PIXEL21_32 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL32_10 - X4PIXEL33_80 - } - else - { - X4PIXEL22_0 - X4PIXEL23_11 - X4PIXEL32_12 - X4PIXEL33_20 - } - X4PIXEL30_82 - X4PIXEL31_32 - break; - } - case 189: - { - X4PIXEL00_82 - X4PIXEL01_82 - X4PIXEL02_81 - X4PIXEL03_81 - X4PIXEL10_32 - X4PIXEL11_32 - X4PIXEL12_31 - X4PIXEL13_31 - X4PIXEL20_31 - X4PIXEL21_31 - X4PIXEL22_32 - X4PIXEL23_32 - X4PIXEL30_81 - X4PIXEL31_81 - X4PIXEL32_82 - X4PIXEL33_82 - break; - } - case 231: - { - X4PIXEL00_81 - X4PIXEL01_31 - X4PIXEL02_32 - X4PIXEL03_82 - X4PIXEL10_81 - X4PIXEL11_31 - X4PIXEL12_32 - X4PIXEL13_82 - X4PIXEL20_82 - X4PIXEL21_32 - X4PIXEL22_31 - X4PIXEL23_81 - X4PIXEL30_82 - X4PIXEL31_32 - X4PIXEL32_31 - X4PIXEL33_81 - break; - } - case 126: - { - X4PIXEL00_80 - X4PIXEL01_10 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_0 - X4PIXEL03_0 - X4PIXEL13_0 - } - else - { - X4PIXEL02_50 - X4PIXEL03_50 - X4PIXEL13_50 - } - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_0 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_0 - X4PIXEL30_0 - X4PIXEL31_0 - } - else - { - X4PIXEL20_50 - X4PIXEL30_50 - X4PIXEL31_50 - } - X4PIXEL21_0 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 219: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - X4PIXEL01_0 - X4PIXEL10_0 - } - else - { - X4PIXEL00_50 - X4PIXEL01_50 - X4PIXEL10_50 - } - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL11_0 - X4PIXEL12_30 - X4PIXEL13_10 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_0 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL23_0 - X4PIXEL32_0 - X4PIXEL33_0 - } - else - { - X4PIXEL23_50 - X4PIXEL32_50 - X4PIXEL33_50 - } - X4PIXEL30_80 - X4PIXEL31_10 - break; - } - case 125: - { - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL00_82 - X4PIXEL10_32 - X4PIXEL20_0 - X4PIXEL21_0 - X4PIXEL30_0 - X4PIXEL31_0 - } - else - { - X4PIXEL00_11 - X4PIXEL10_13 - X4PIXEL20_83 - X4PIXEL21_70 - X4PIXEL30_50 - X4PIXEL31_21 - } - X4PIXEL01_82 - X4PIXEL02_81 - X4PIXEL03_81 - X4PIXEL11_32 - X4PIXEL12_31 - X4PIXEL13_31 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 221: - { - X4PIXEL00_82 - X4PIXEL01_82 - X4PIXEL02_81 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL03_81 - X4PIXEL13_31 - X4PIXEL22_0 - X4PIXEL23_0 - X4PIXEL32_0 - X4PIXEL33_0 - } - else - { - X4PIXEL03_12 - X4PIXEL13_14 - X4PIXEL22_70 - X4PIXEL23_83 - X4PIXEL32_21 - X4PIXEL33_50 - } - X4PIXEL10_32 - X4PIXEL11_32 - X4PIXEL12_31 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL30_80 - X4PIXEL31_10 - break; - } - case 207: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - X4PIXEL01_0 - X4PIXEL02_32 - X4PIXEL03_82 - X4PIXEL10_0 - X4PIXEL11_0 - } - else - { - X4PIXEL00_50 - X4PIXEL01_83 - X4PIXEL02_13 - X4PIXEL03_11 - X4PIXEL10_21 - X4PIXEL11_70 - } - X4PIXEL12_32 - X4PIXEL13_82 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_31 - X4PIXEL23_81 - X4PIXEL30_80 - X4PIXEL31_10 - X4PIXEL32_31 - X4PIXEL33_81 - break; - } - case 238: - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL02_32 - X4PIXEL03_82 - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_32 - X4PIXEL13_82 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_0 - X4PIXEL21_0 - X4PIXEL30_0 - X4PIXEL31_0 - X4PIXEL32_31 - X4PIXEL33_81 - } - else - { - X4PIXEL20_21 - X4PIXEL21_70 - X4PIXEL30_50 - X4PIXEL31_83 - X4PIXEL32_14 - X4PIXEL33_12 - } - X4PIXEL22_31 - X4PIXEL23_81 - break; - } - case 190: - { - X4PIXEL00_80 - X4PIXEL01_10 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_0 - X4PIXEL03_0 - X4PIXEL12_0 - X4PIXEL13_0 - X4PIXEL23_32 - X4PIXEL33_82 - } - else - { - X4PIXEL02_21 - X4PIXEL03_50 - X4PIXEL12_70 - X4PIXEL13_83 - X4PIXEL23_13 - X4PIXEL33_11 - } - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL20_31 - X4PIXEL21_31 - X4PIXEL22_32 - X4PIXEL30_81 - X4PIXEL31_81 - X4PIXEL32_82 - break; - } - case 187: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - X4PIXEL01_0 - X4PIXEL10_0 - X4PIXEL11_0 - X4PIXEL20_31 - X4PIXEL30_81 - } - else - { - X4PIXEL00_50 - X4PIXEL01_21 - X4PIXEL10_83 - X4PIXEL11_70 - X4PIXEL20_14 - X4PIXEL30_12 - } - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL12_30 - X4PIXEL13_10 - X4PIXEL21_31 - X4PIXEL22_32 - X4PIXEL23_32 - X4PIXEL31_81 - X4PIXEL32_82 - X4PIXEL33_82 - break; - } - case 243: - { - X4PIXEL00_81 - X4PIXEL01_31 - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL10_81 - X4PIXEL11_31 - X4PIXEL12_30 - X4PIXEL13_10 - X4PIXEL20_82 - X4PIXEL21_32 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL22_0 - X4PIXEL23_0 - X4PIXEL30_82 - X4PIXEL31_32 - X4PIXEL32_0 - X4PIXEL33_0 - } - else - { - X4PIXEL22_70 - X4PIXEL23_21 - X4PIXEL30_11 - X4PIXEL31_13 - X4PIXEL32_83 - X4PIXEL33_50 - } - break; - } - case 119: - { - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL00_81 - X4PIXEL01_31 - X4PIXEL02_0 - X4PIXEL03_0 - X4PIXEL12_0 - X4PIXEL13_0 - } - else - { - X4PIXEL00_12 - X4PIXEL01_14 - X4PIXEL02_83 - X4PIXEL03_50 - X4PIXEL12_70 - X4PIXEL13_21 - } - X4PIXEL10_81 - X4PIXEL11_31 - X4PIXEL20_82 - X4PIXEL21_32 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL30_82 - X4PIXEL31_32 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 237: - case 233: - { - X4PIXEL00_82 - X4PIXEL01_82 - X4PIXEL02_60 - X4PIXEL03_20 - X4PIXEL10_32 - X4PIXEL11_32 - X4PIXEL12_70 - X4PIXEL13_60 - X4PIXEL20_0 - X4PIXEL21_0 - X4PIXEL22_31 - X4PIXEL23_81 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL30_0 - } - else - { - X4PIXEL30_20 - } - X4PIXEL31_0 - X4PIXEL32_31 - X4PIXEL33_81 - break; - } - case 175: - case 47: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - } - else - { - X4PIXEL00_20 - } - X4PIXEL01_0 - X4PIXEL02_32 - X4PIXEL03_82 - X4PIXEL10_0 - X4PIXEL11_0 - X4PIXEL12_32 - X4PIXEL13_82 - X4PIXEL20_31 - X4PIXEL21_31 - X4PIXEL22_70 - X4PIXEL23_60 - X4PIXEL30_81 - X4PIXEL31_81 - X4PIXEL32_60 - X4PIXEL33_20 - break; - } - case 183: - case 151: - { - X4PIXEL00_81 - X4PIXEL01_31 - X4PIXEL02_0 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL03_0 - } - else - { - X4PIXEL03_20 - } - X4PIXEL10_81 - X4PIXEL11_31 - X4PIXEL12_0 - X4PIXEL13_0 - X4PIXEL20_60 - X4PIXEL21_70 - X4PIXEL22_32 - X4PIXEL23_32 - X4PIXEL30_20 - X4PIXEL31_60 - X4PIXEL32_82 - X4PIXEL33_82 - break; - } - case 245: - case 244: - { - X4PIXEL00_20 - X4PIXEL01_60 - X4PIXEL02_81 - X4PIXEL03_81 - X4PIXEL10_60 - X4PIXEL11_70 - X4PIXEL12_31 - X4PIXEL13_31 - X4PIXEL20_82 - X4PIXEL21_32 - X4PIXEL22_0 - X4PIXEL23_0 - X4PIXEL30_82 - X4PIXEL31_32 - X4PIXEL32_0 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL33_0 - } - else - { - X4PIXEL33_20 - } - break; - } - case 250: - { - X4PIXEL00_80 - X4PIXEL01_10 - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_30 - X4PIXEL13_10 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_0 - X4PIXEL30_0 - X4PIXEL31_0 - } - else - { - X4PIXEL20_50 - X4PIXEL30_50 - X4PIXEL31_50 - } - X4PIXEL21_0 - X4PIXEL22_0 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL23_0 - X4PIXEL32_0 - X4PIXEL33_0 - } - else - { - X4PIXEL23_50 - X4PIXEL32_50 - X4PIXEL33_50 - } - break; - } - case 123: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - X4PIXEL01_0 - X4PIXEL10_0 - } - else - { - X4PIXEL00_50 - X4PIXEL01_50 - X4PIXEL10_50 - } - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL11_0 - X4PIXEL12_30 - X4PIXEL13_10 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_0 - X4PIXEL30_0 - X4PIXEL31_0 - } - else - { - X4PIXEL20_50 - X4PIXEL30_50 - X4PIXEL31_50 - } - X4PIXEL21_0 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 95: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - X4PIXEL01_0 - X4PIXEL10_0 - } - else - { - X4PIXEL00_50 - X4PIXEL01_50 - X4PIXEL10_50 - } - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_0 - X4PIXEL03_0 - X4PIXEL13_0 - } - else - { - X4PIXEL02_50 - X4PIXEL03_50 - X4PIXEL13_50 - } - X4PIXEL11_0 - X4PIXEL12_0 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL30_80 - X4PIXEL31_10 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 222: - { - X4PIXEL00_80 - X4PIXEL01_10 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_0 - X4PIXEL03_0 - X4PIXEL13_0 - } - else - { - X4PIXEL02_50 - X4PIXEL03_50 - X4PIXEL13_50 - } - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_0 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_0 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL23_0 - X4PIXEL32_0 - X4PIXEL33_0 - } - else - { - X4PIXEL23_50 - X4PIXEL32_50 - X4PIXEL33_50 - } - X4PIXEL30_80 - X4PIXEL31_10 - break; - } - case 252: - { - X4PIXEL00_80 - X4PIXEL01_61 - X4PIXEL02_81 - X4PIXEL03_81 - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_31 - X4PIXEL13_31 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_0 - X4PIXEL30_0 - X4PIXEL31_0 - } - else - { - X4PIXEL20_50 - X4PIXEL30_50 - X4PIXEL31_50 - } - X4PIXEL21_0 - X4PIXEL22_0 - X4PIXEL23_0 - X4PIXEL32_0 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL33_0 - } - else - { - X4PIXEL33_20 - } - break; - } - case 249: - { - X4PIXEL00_82 - X4PIXEL01_82 - X4PIXEL02_61 - X4PIXEL03_80 - X4PIXEL10_32 - X4PIXEL11_32 - X4PIXEL12_30 - X4PIXEL13_10 - X4PIXEL20_0 - X4PIXEL21_0 - X4PIXEL22_0 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL23_0 - X4PIXEL32_0 - X4PIXEL33_0 - } - else - { - X4PIXEL23_50 - X4PIXEL32_50 - X4PIXEL33_50 - } - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL30_0 - } - else - { - X4PIXEL30_20 - } - X4PIXEL31_0 - break; - } - case 235: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - X4PIXEL01_0 - X4PIXEL10_0 - } - else - { - X4PIXEL00_50 - X4PIXEL01_50 - X4PIXEL10_50 - } - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL11_0 - X4PIXEL12_30 - X4PIXEL13_61 - X4PIXEL20_0 - X4PIXEL21_0 - X4PIXEL22_31 - X4PIXEL23_81 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL30_0 - } - else - { - X4PIXEL30_20 - } - X4PIXEL31_0 - X4PIXEL32_31 - X4PIXEL33_81 - break; - } - case 111: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - } - else - { - X4PIXEL00_20 - } - X4PIXEL01_0 - X4PIXEL02_32 - X4PIXEL03_82 - X4PIXEL10_0 - X4PIXEL11_0 - X4PIXEL12_32 - X4PIXEL13_82 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_0 - X4PIXEL30_0 - X4PIXEL31_0 - } - else - { - X4PIXEL20_50 - X4PIXEL30_50 - X4PIXEL31_50 - } - X4PIXEL21_0 - X4PIXEL22_30 - X4PIXEL23_61 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 63: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - } - else - { - X4PIXEL00_20 - } - X4PIXEL01_0 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_0 - X4PIXEL03_0 - X4PIXEL13_0 - } - else - { - X4PIXEL02_50 - X4PIXEL03_50 - X4PIXEL13_50 - } - X4PIXEL10_0 - X4PIXEL11_0 - X4PIXEL12_0 - X4PIXEL20_31 - X4PIXEL21_31 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL30_81 - X4PIXEL31_81 - X4PIXEL32_61 - X4PIXEL33_80 - break; - } - case 159: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - X4PIXEL01_0 - X4PIXEL10_0 - } - else - { - X4PIXEL00_50 - X4PIXEL01_50 - X4PIXEL10_50 - } - X4PIXEL02_0 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL03_0 - } - else - { - X4PIXEL03_20 - } - X4PIXEL11_0 - X4PIXEL12_0 - X4PIXEL13_0 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_32 - X4PIXEL23_32 - X4PIXEL30_80 - X4PIXEL31_61 - X4PIXEL32_82 - X4PIXEL33_82 - break; - } - case 215: - { - X4PIXEL00_81 - X4PIXEL01_31 - X4PIXEL02_0 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL03_0 - } - else - { - X4PIXEL03_20 - } - X4PIXEL10_81 - X4PIXEL11_31 - X4PIXEL12_0 - X4PIXEL13_0 - X4PIXEL20_61 - X4PIXEL21_30 - X4PIXEL22_0 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL23_0 - X4PIXEL32_0 - X4PIXEL33_0 - } - else - { - X4PIXEL23_50 - X4PIXEL32_50 - X4PIXEL33_50 - } - X4PIXEL30_80 - X4PIXEL31_10 - break; - } - case 246: - { - X4PIXEL00_80 - X4PIXEL01_10 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_0 - X4PIXEL03_0 - X4PIXEL13_0 - } - else - { - X4PIXEL02_50 - X4PIXEL03_50 - X4PIXEL13_50 - } - X4PIXEL10_61 - X4PIXEL11_30 - X4PIXEL12_0 - X4PIXEL20_82 - X4PIXEL21_32 - X4PIXEL22_0 - X4PIXEL23_0 - X4PIXEL30_82 - X4PIXEL31_32 - X4PIXEL32_0 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL33_0 - } - else - { - X4PIXEL33_20 - } - break; - } - case 254: - { - X4PIXEL00_80 - X4PIXEL01_10 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_0 - X4PIXEL03_0 - X4PIXEL13_0 - } - else - { - X4PIXEL02_50 - X4PIXEL03_50 - X4PIXEL13_50 - } - X4PIXEL10_10 - X4PIXEL11_30 - X4PIXEL12_0 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_0 - X4PIXEL30_0 - X4PIXEL31_0 - } - else - { - X4PIXEL20_50 - X4PIXEL30_50 - X4PIXEL31_50 - } - X4PIXEL21_0 - X4PIXEL22_0 - X4PIXEL23_0 - X4PIXEL32_0 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL33_0 - } - else - { - X4PIXEL33_20 - } - break; - } - case 253: - { - X4PIXEL00_82 - X4PIXEL01_82 - X4PIXEL02_81 - X4PIXEL03_81 - X4PIXEL10_32 - X4PIXEL11_32 - X4PIXEL12_31 - X4PIXEL13_31 - X4PIXEL20_0 - X4PIXEL21_0 - X4PIXEL22_0 - X4PIXEL23_0 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL30_0 - } - else - { - X4PIXEL30_20 - } - X4PIXEL31_0 - X4PIXEL32_0 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL33_0 - } - else - { - X4PIXEL33_20 - } - break; - } - case 251: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - X4PIXEL01_0 - X4PIXEL10_0 - } - else - { - X4PIXEL00_50 - X4PIXEL01_50 - X4PIXEL10_50 - } - X4PIXEL02_10 - X4PIXEL03_80 - X4PIXEL11_0 - X4PIXEL12_30 - X4PIXEL13_10 - X4PIXEL20_0 - X4PIXEL21_0 - X4PIXEL22_0 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL23_0 - X4PIXEL32_0 - X4PIXEL33_0 - } - else - { - X4PIXEL23_50 - X4PIXEL32_50 - X4PIXEL33_50 - } - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL30_0 - } - else - { - X4PIXEL30_20 - } - X4PIXEL31_0 - break; - } - case 239: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - } - else - { - X4PIXEL00_20 - } - X4PIXEL01_0 - X4PIXEL02_32 - X4PIXEL03_82 - X4PIXEL10_0 - X4PIXEL11_0 - X4PIXEL12_32 - X4PIXEL13_82 - X4PIXEL20_0 - X4PIXEL21_0 - X4PIXEL22_31 - X4PIXEL23_81 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL30_0 - } - else - { - X4PIXEL30_20 - } - X4PIXEL31_0 - X4PIXEL32_31 - X4PIXEL33_81 - break; - } - case 127: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - } - else - { - X4PIXEL00_20 - } - X4PIXEL01_0 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL02_0 - X4PIXEL03_0 - X4PIXEL13_0 - } - else - { - X4PIXEL02_50 - X4PIXEL03_50 - X4PIXEL13_50 - } - X4PIXEL10_0 - X4PIXEL11_0 - X4PIXEL12_0 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL20_0 - X4PIXEL30_0 - X4PIXEL31_0 - } - else - { - X4PIXEL20_50 - X4PIXEL30_50 - X4PIXEL31_50 - } - X4PIXEL21_0 - X4PIXEL22_30 - X4PIXEL23_10 - X4PIXEL32_10 - X4PIXEL33_80 - break; - } - case 191: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - } - else - { - X4PIXEL00_20 - } - X4PIXEL01_0 - X4PIXEL02_0 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL03_0 - } - else - { - X4PIXEL03_20 - } - X4PIXEL10_0 - X4PIXEL11_0 - X4PIXEL12_0 - X4PIXEL13_0 - X4PIXEL20_31 - X4PIXEL21_31 - X4PIXEL22_32 - X4PIXEL23_32 - X4PIXEL30_81 - X4PIXEL31_81 - X4PIXEL32_82 - X4PIXEL33_82 - break; - } - case 223: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - X4PIXEL01_0 - X4PIXEL10_0 - } - else - { - X4PIXEL00_50 - X4PIXEL01_50 - X4PIXEL10_50 - } - X4PIXEL02_0 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL03_0 - } - else - { - X4PIXEL03_20 - } - X4PIXEL11_0 - X4PIXEL12_0 - X4PIXEL13_0 - X4PIXEL20_10 - X4PIXEL21_30 - X4PIXEL22_0 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL23_0 - X4PIXEL32_0 - X4PIXEL33_0 - } - else - { - X4PIXEL23_50 - X4PIXEL32_50 - X4PIXEL33_50 - } - X4PIXEL30_80 - X4PIXEL31_10 - break; - } - case 247: - { - X4PIXEL00_81 - X4PIXEL01_31 - X4PIXEL02_0 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL03_0 - } - else - { - X4PIXEL03_20 - } - X4PIXEL10_81 - X4PIXEL11_31 - X4PIXEL12_0 - X4PIXEL13_0 - X4PIXEL20_82 - X4PIXEL21_32 - X4PIXEL22_0 - X4PIXEL23_0 - X4PIXEL30_82 - X4PIXEL31_32 - X4PIXEL32_0 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL33_0 - } - else - { - X4PIXEL33_20 - } - break; - } - case 255: - { - if (Diff(RGBtoYUV[w4], RGBtoYUV[w2])) - { - X4PIXEL00_0 - } - else - { - X4PIXEL00_20 - } - X4PIXEL01_0 - X4PIXEL02_0 - if (Diff(RGBtoYUV[w2], RGBtoYUV[w6])) - { - X4PIXEL03_0 - } - else - { - X4PIXEL03_20 - } - X4PIXEL10_0 - X4PIXEL11_0 - X4PIXEL12_0 - X4PIXEL13_0 - X4PIXEL20_0 - X4PIXEL21_0 - X4PIXEL22_0 - X4PIXEL23_0 - if (Diff(RGBtoYUV[w8], RGBtoYUV[w4])) - { - X4PIXEL30_0 - } - else - { - X4PIXEL30_20 - } - X4PIXEL31_0 - X4PIXEL32_0 - if (Diff(RGBtoYUV[w6], RGBtoYUV[w8])) - { - X4PIXEL33_0 - } - else - { - X4PIXEL33_20 - } - break; - } - } - - w1 = w2; w4 = w5; w7 = w8; - w2 = w3; w5 = w6; w8 = w9; - - dp += 4; - } - - dp += (dst1line - width) * 4; - sp += (src1line - width); - } + if ((P(0xfe, 0xde) || P(0x9e, 0x16) || P(0xda, 0x12) || P(0x17, 0x16) || + P(0x5b, 0x12) || P(0xbb, 0x12)) && + WDIFF(w1, w5)) + *dst01 = w4; + else if ((P(0x0f, 0x0b) || P(0x5e, 0x0a) || P(0xfb, 0x7b) || P(0x3b, 0x0b) || + P(0xbe, 0x0a) || P(0x7a, 0x0a)) && + WDIFF(w3, w1)) + *dst01 = w4; + else if (P(0xbf, 0x8f) || P(0x7e, 0x0e) || P(0xbf, 0x37) || P(0xdb, 0x13)) + *dst01 = interp_2px(w1, 3, w4, 1, 2); + else if (P(0x02, 0x00) || P(0x7c, 0x28) || P(0xed, 0xa9) || P(0xf5, 0xb4) || + P(0xd9, 0x90)) + *dst01 = interp_2px(w4, 3, w1, 1, 2); + else if (P(0x4f, 0x4b) || P(0xfb, 0x7b) || P(0xfe, 0x7e) || P(0x9f, 0x1b) || + P(0x2f, 0x0b) || P(0xbe, 0x0a) || P(0x7e, 0x0a) || P(0xfb, 0x4b) || + P(0xfb, 0xdb) || P(0xfe, 0xde) || P(0xfe, 0x56) || P(0x57, 0x56) || + P(0x97, 0x16) || P(0x3f, 0x1e) || P(0xdb, 0x12) || P(0xbb, 0x12)) + *dst01 = interp_2px(w4, 7, w1, 1, 3); + else + *dst01 = w4; } + +/* Assuming p0..p8 is mapped to pixels 0..8, this function interpolates the + * top-left block of 2x2 pixels in the total of the 4x4 pixels (or 4 blocks) to + * interpolates. The function is also used for the 3 other blocks of 2x2 + * pixels. */ +static inline void hq4x_interp_2x2(uint16_t *dst, int dst_linesize, + const uint32_t *r2y, int k, + const uint16_t *w, + int pos00, int pos01, + int pos10, int pos11, + int p0, int p1, int p2, + int p3, int p4, int p5, + int p6, int p7, int p8) +{ + INTERP_BOOTSTRAP(0); + + uint16_t *dst00 = &dst[dst_linesize * (pos00 >> 1) + (pos00 & 1)]; + uint16_t *dst01 = &dst[dst_linesize * (pos01 >> 1) + (pos01 & 1)]; + uint16_t *dst10 = &dst[dst_linesize * (pos10 >> 1) + (pos10 & 1)]; + uint16_t *dst11 = &dst[dst_linesize * (pos11 >> 1) + (pos11 & 1)]; + + const int cond00 = (P(0xbf, 0x37) || P(0xdb, 0x13)) && WDIFF(w1, w5); + const int cond01 = (P(0xdb, 0x49) || P(0xef, 0x6d)) && WDIFF(w7, w3); + const int cond02 = (P(0x6f, 0x2a) || P(0x5b, 0x0a) || P(0xbf, 0x3a) || + P(0xdf, 0x5a) || P(0x9f, 0x8a) || P(0xcf, 0x8a) || + P(0xef, 0x4e) || P(0x3f, 0x0e) || P(0xfb, 0x5a) || + P(0xbb, 0x8a) || P(0x7f, 0x5a) || P(0xaf, 0x8a) || + P(0xeb, 0x8a)) && + WDIFF(w3, w1); + const int cond03 = P(0xdb, 0x49) || P(0xef, 0x6d); + const int cond04 = P(0xbf, 0x37) || P(0xdb, 0x13); + const int cond05 = P(0x1b, 0x03) || P(0x4f, 0x43) || P(0x8b, 0x83) || + P(0x6b, 0x43); + const int cond06 = P(0x4b, 0x09) || P(0x8b, 0x89) || P(0x1f, 0x19) || + P(0x3b, 0x19); + const int cond07 = P(0x0b, 0x08) || P(0xf9, 0x68) || P(0xf3, 0x62) || + P(0x6d, 0x6c) || P(0x67, 0x66) || P(0x3d, 0x3c) || + P(0x37, 0x36) || P(0xf9, 0xf8) || P(0xdd, 0xdc) || + P(0xf3, 0xf2) || P(0xd7, 0xd6) || P(0xdd, 0x1c) || + P(0xd7, 0x16) || P(0x0b, 0x02); + const int cond08 = (P(0x0f, 0x0b) || P(0x2b, 0x0b) || P(0xfe, 0x4a) || + P(0xfe, 0x1a)) && + WDIFF(w3, w1); + const int cond09 = P(0x2f, 0x2f); + const int cond10 = P(0x0a, 0x00); + const int cond11 = P(0x0b, 0x09); + const int cond12 = P(0x7e, 0x2a) || P(0xef, 0xab); + const int cond13 = P(0xbf, 0x8f) || P(0x7e, 0x0e); + const int cond14 = P(0x4f, 0x4b) || P(0x9f, 0x1b) || P(0x2f, 0x0b) || + P(0xbe, 0x0a) || P(0xee, 0x0a) || P(0x7e, 0x0a) || + P(0xeb, 0x4b) || P(0x3b, 0x1b); + const int cond15 = P(0x0b, 0x03); + + if (cond00) + *dst00 = interp_2px(w4, 5, w3, 3, 3); + else if (cond01) + *dst00 = interp_2px(w4, 5, w1, 3, 3); + else if ((P(0x0b, 0x0b) || P(0xfe, 0x4a) || P(0xfe, 0x1a)) && WDIFF(w3, w1)) + *dst00 = w4; + else if (cond02) + *dst00 = interp_2px(w4, 5, w0, 3, 3); + else if (cond03) + *dst00 = interp_2px(w4, 3, w3, 1, 2); + else if (cond04) + *dst00 = interp_2px(w4, 3, w1, 1, 2); + else if (cond05) + *dst00 = interp_2px(w4, 5, w3, 3, 3); + else if (cond06) + *dst00 = interp_2px(w4, 5, w1, 3, 3); + else if (P(0x0f, 0x0b) || P(0x5e, 0x0a) || P(0x2b, 0x0b) || P(0xbe, 0x0a) || + P(0x7a, 0x0a) || P(0xee, 0x0a)) + *dst00 = interp_2px(w1, 1, w3, 1, 1); + else if (cond07) + *dst00 = interp_2px(w4, 5, w0, 3, 3); + else + *dst00 = interp_3px(w4, 2, w1, 1, w3, 1, 2); + + if (cond00) + *dst01 = interp_2px(w4, 7, w3, 1, 3); + else if (cond08) + *dst01 = w4; + else if (cond02) + *dst01 = interp_2px(w4, 3, w0, 1, 2); + else if (cond09) + *dst01 = w4; + else if (cond10) + *dst01 = interp_3px(w4, 5, w1, 2, w3, 1, 3); + else if (P(0x0b, 0x08)) + *dst01 = interp_3px(w4, 5, w1, 2, w0, 1, 3); + else if (cond11) + *dst01 = interp_2px(w4, 5, w1, 3, 3); + else if (cond04) + *dst01 = interp_2px(w1, 3, w4, 1, 2); + else if (cond12) + *dst01 = interp_3px(w1, 2, w4, 1, w3, 1, 2); + else if (cond13) + *dst01 = interp_2px(w1, 5, w3, 3, 3); + else if (cond05) + *dst01 = interp_2px(w4, 7, w3, 1, 3); + else if (P(0xf3, 0x62) || P(0x67, 0x66) || P(0x37, 0x36) || P(0xf3, 0xf2) || + P(0xd7, 0xd6) || P(0xd7, 0x16) || P(0x0b, 0x02)) + *dst01 = interp_2px(w4, 3, w0, 1, 2); + else if (cond14) + *dst01 = interp_2px(w1, 1, w4, 1, 1); + else + *dst01 = interp_2px(w4, 3, w1, 1, 2); + + if (cond01) + *dst10 = interp_2px(w4, 7, w1, 1, 3); + else if (cond08) + *dst10 = w4; + else if (cond02) + *dst10 = interp_2px(w4, 3, w0, 1, 2); + else if (cond09) + *dst10 = w4; + else if (cond10) + *dst10 = interp_3px(w4, 5, w3, 2, w1, 1, 3); + else if (P(0x0b, 0x02)) + *dst10 = interp_3px(w4, 5, w3, 2, w0, 1, 3); + else if (cond15) + *dst10 = interp_2px(w4, 5, w3, 3, 3); + else if (cond03) + *dst10 = interp_2px(w3, 3, w4, 1, 2); + else if (cond13) + *dst10 = interp_3px(w3, 2, w4, 1, w1, 1, 2); + else if (cond12) + *dst10 = interp_2px(w3, 5, w1, 3, 3); + else if (cond06) + *dst10 = interp_2px(w4, 7, w1, 1, 3); + else if (P(0x0b, 0x08) || P(0xf9, 0x68) || P(0x6d, 0x6c) || P(0x3d, 0x3c) || + P(0xf9, 0xf8) || P(0xdd, 0xdc) || P(0xdd, 0x1c)) + *dst10 = interp_2px(w4, 3, w0, 1, 2); + else if (cond14) + *dst10 = interp_2px(w3, 1, w4, 1, 1); + else + *dst10 = interp_2px(w4, 3, w3, 1, 2); + + if ((P(0x7f, 0x2b) || P(0xef, 0xab) || P(0xbf, 0x8f) || P(0x7f, 0x0f)) && + WDIFF(w3, w1)) + *dst11 = w4; + else if (cond02) + *dst11 = interp_2px(w4, 7, w0, 1, 3); + else if (cond15) + *dst11 = interp_2px(w4, 7, w3, 1, 3); + else if (cond11) + *dst11 = interp_2px(w4, 7, w1, 1, 3); + else if (P(0x0a, 0x00) || P(0x7e, 0x2a) || P(0xef, 0xab) || P(0xbf, 0x8f) || + P(0x7e, 0x0e)) + *dst11 = interp_3px(w4, 6, w3, 1, w1, 1, 3); + else if (cond07) + *dst11 = interp_2px(w4, 7, w0, 1, 3); + else + *dst11 = w4; +} + +static inline void hqx_filter(uint16_t *in, int in_pitch, uint16_t *out, int out_pitch, int width, int height, int n) +{ + int x, y; + const uint32_t *r2y = yuvtable; + const int dst_linesize = out_pitch; + const int src_linesize = in_pitch; + uint8_t *dst = (uint8_t *)out; + const uint8_t *src = (uint8_t *)in; + + const int dst16_linesize = dst_linesize >> 1; + const int src16_linesize = src_linesize >> 1; + + init(); + + for (y = 0; y < height; y++) + { + const uint16_t *src16 = (const uint16_t *)src; + uint16_t *dst16 = (uint16_t *)dst; + const int prevline = y > 0 ? -src16_linesize : 0; + const int nextline = y < height - 1 ? src16_linesize : 0; + + for (x = 0; x < width; x++) + { + const int prevcol = x > 0 ? -1 : 0; + const int nextcol = x < width - 1 ? 1 : 0; + const uint16_t w[3 * 3] = { + src16[prevcol + prevline], src16[prevline], src16[prevline + nextcol], + src16[prevcol], src16[0], src16[nextcol], + src16[prevcol + nextline], src16[nextline], src16[nextline + nextcol] + }; + const uint32_t yuv1 = rgb2yuv(r2y, w[4]); + const int pattern = (w[4] != w[0] ? (yuv_diff(yuv1, rgb2yuv(r2y, w[0]))) : 0) | (w[4] != w[1] ? (yuv_diff(yuv1, rgb2yuv(r2y, w[1]))) : 0) << 1 | (w[4] != w[2] ? (yuv_diff(yuv1, rgb2yuv(r2y, w[2]))) : 0) << 2 | (w[4] != w[3] ? (yuv_diff(yuv1, rgb2yuv(r2y, w[3]))) : 0) << 3 | (w[4] != w[5] ? (yuv_diff(yuv1, rgb2yuv(r2y, w[5]))) : 0) << 4 | (w[4] != w[6] ? (yuv_diff(yuv1, rgb2yuv(r2y, w[6]))) : 0) << 5 | (w[4] != w[7] ? (yuv_diff(yuv1, rgb2yuv(r2y, w[7]))) : 0) << 6 | (w[4] != w[8] ? (yuv_diff(yuv1, rgb2yuv(r2y, w[8]))) : 0) << 7; + + if (n == 2) + { + dst16[dst16_linesize * 0 + 0] = hq2x_interp_1x1(r2y, pattern, w, 0, 1, 2, 3, 4, 5, 6, 7, 8); // 00 + dst16[dst16_linesize * 0 + 1] = hq2x_interp_1x1(r2y, pattern, w, 2, 1, 0, 5, 4, 3, 8, 7, 6); // 01 (vert mirrored) + dst16[dst16_linesize * 1 + 0] = hq2x_interp_1x1(r2y, pattern, w, 6, 7, 8, 3, 4, 5, 0, 1, 2); // 10 (horiz mirrored) + dst16[dst16_linesize * 1 + 1] = hq2x_interp_1x1(r2y, pattern, w, 8, 7, 6, 5, 4, 3, 2, 1, 0); // 11 (center mirrored) + } + else if (n == 3) + { + hq3x_interp_2x1(dst16, dst16_linesize, r2y, pattern, w, 0, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0); // 00 01 + hq3x_interp_2x1(dst16 + 1, dst16_linesize, r2y, pattern, w, 1, 3, 2, 5, 8, 1, 4, 7, 0, 3, 6, 1); // 02 12 (rotated to the right) + hq3x_interp_2x1(dst16 + 1 * dst16_linesize, dst16_linesize, r2y, pattern, w, 2, 0, 6, 3, 0, 7, 4, 1, 8, 5, 2, 1); // 20 10 (rotated to the left) + hq3x_interp_2x1(dst16 + 1 * dst16_linesize + 1, dst16_linesize, r2y, pattern, w, 3, 2, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0); // 22 21 (center mirrored) + dst16[dst16_linesize + 1] = w[4]; // 11 + } + else if (n == 4) + { + hq4x_interp_2x2(dst16, dst16_linesize, r2y, pattern, w, 0, 1, 2, 3, 0, 1, 2, 3, 4, 5, 6, 7, 8); // 00 01 10 11 + hq4x_interp_2x2(dst16 + 2, dst16_linesize, r2y, pattern, w, 1, 0, 3, 2, 2, 1, 0, 5, 4, 3, 8, 7, 6); // 02 03 12 13 (vert mirrored) + hq4x_interp_2x2(dst16 + 2 * dst16_linesize, dst16_linesize, r2y, pattern, w, 2, 3, 0, 1, 6, 7, 8, 3, 4, 5, 0, 1, 2); // 20 21 30 31 (horiz mirrored) + hq4x_interp_2x2(dst16 + 2 * dst16_linesize + 2, dst16_linesize, r2y, pattern, w, 3, 2, 1, 0, 8, 7, 6, 5, 4, 3, 2, 1, 0); // 22 23 32 33 (center mirrored) + } + else + { + } + + src16 += 1; + dst16 += n; + } + + src += src_linesize; + dst += dst_linesize * n; + } +} + +bool S9xBlitHQ2xFilterInit(void) +{ + return true; +} + +void S9xBlitHQ2xFilterDeinit(void) +{ +} + +void HQ2X_16(uint8_t *in, int in_pitch, uint8_t *out, int out_pitch, int width, int height) +{ + hqx_filter((uint16_t *)in, in_pitch, (uint16_t *)out, out_pitch, width, height, 2); +} + +void HQ3X_16(uint8_t *in, int in_pitch, uint8_t *out, int out_pitch, int width, int height) +{ + hqx_filter((uint16_t *)in, in_pitch, (uint16_t *)out, out_pitch, width, height, 3); +} + +void HQ4X_16(uint8_t *in, int in_pitch, uint8_t *out, int out_pitch, int width, int height) +{ + hqx_filter((uint16_t *)in, in_pitch, (uint16_t *)out, out_pitch, width, height, 4); +} \ No newline at end of file diff --git a/filter/hq2x.h b/filter/hq2x.h index f7561d8a..4950cc4e 100644 --- a/filter/hq2x.h +++ b/filter/hq2x.h @@ -4,13 +4,15 @@ For further information, consult the LICENSE file in the root directory. \*****************************************************************************/ +#include + #ifndef _hq2x_h_ #define _hq2x_h_ -bool8 S9xBlitHQ2xFilterInit (void); -void S9xBlitHQ2xFilterDeinit (void); -void HQ2X_16 (uint8 *, int, uint8 *, int, int, int); -void HQ3X_16 (uint8 *, int, uint8 *, int, int, int); -void HQ4X_16 (uint8 *, int, uint8 *, int, int, int); +bool S9xBlitHQ2xFilterInit(void); +void S9xBlitHQ2xFilterDeinit(void); +void HQ2X_16 (uint8_t *, int, uint8_t *, int, int, int); +void HQ3X_16 (uint8_t *, int, uint8_t *, int, int, int); +void HQ4X_16 (uint8_t *, int, uint8_t *, int, int, int); #endif