diff options
author | Max Horn | 2003-09-29 23:34:43 +0000 |
---|---|---|
committer | Max Horn | 2003-09-29 23:34:43 +0000 |
commit | 7ccafa467cf2d913a8c11a0b440f40c7ba06adf2 (patch) | |
tree | 9c5232f7e27b34c5ccec6cb06a704a7fbdcc5f8b /common | |
parent | e75eba1a1fbdf2dd025bca6086d1c8b59d5f252f (diff) | |
download | scummvm-rg350-7ccafa467cf2d913a8c11a0b440f40c7ba06adf2.tar.gz scummvm-rg350-7ccafa467cf2d913a8c11a0b440f40c7ba06adf2.tar.bz2 scummvm-rg350-7ccafa467cf2d913a8c11a0b440f40c7ba06adf2.zip |
synced hq2x with upstream changes; some performance tweaks to hq2x/hq3x (I think for bigger speed improvement we'd have to use ASM (with C++ fallback of course)...
svn-id: r10494
Diffstat (limited to 'common')
-rw-r--r-- | common/scaler.cpp | 5 | ||||
-rw-r--r-- | common/scaler/hq2x.cpp | 1084 | ||||
-rw-r--r-- | common/scaler/hq3x.cpp | 404 | ||||
-rw-r--r-- | common/scaler/intern.h | 19 |
4 files changed, 768 insertions, 744 deletions
diff --git a/common/scaler.cpp b/common/scaler.cpp index 4bb51cc84e..d8522440af 100644 --- a/common/scaler.cpp +++ b/common/scaler.cpp @@ -175,10 +175,9 @@ void AdvMame2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPi A = B; B = C; C = *(p - nextlineSrc); D = E; E = F; F = *(p); G = H; H = I; I = *(p + nextlineSrc); - - *(q) = D == B && B != F && D != H ? D : E; + *(q + 0) = D == B && B != F && D != H ? D : E; *(q + 1) = B == F && B != D && F != H ? F : E; - *(q + nextlineDst) = D == H && D != B && H != F ? D : E; + *(q + nextlineDst + 0) = D == H && D != B && H != F ? D : E; *(q + nextlineDst + 1) = H == F && D != H && B != F ? F : E; q += 2; } diff --git a/common/scaler/hq2x.cpp b/common/scaler/hq2x.cpp index de134373dd..4eef8679e1 100644 --- a/common/scaler/hq2x.cpp +++ b/common/scaler/hq2x.cpp @@ -22,49 +22,59 @@ #include "common/scaler/intern.h" -#define PIXEL00_0 *(q) = w[5]; -#define PIXEL00_10 *(q) = interpolate16_2<bitFormat,3,1>(w[5], w[1]); -#define PIXEL00_11 *(q) = interpolate16_2<bitFormat,3,1>(w[5], w[4]); -#define PIXEL00_12 *(q) = interpolate16_2<bitFormat,3,1>(w[5], w[2]); -#define PIXEL00_20 *(q) = interpolate16_3<bitFormat,2,1,1>(w[5], w[4], w[2]); -#define PIXEL00_30 *(q) = interpolate16_3<bitFormat,6,1,1>(w[5], w[4], w[2]); -#define PIXEL00_40 *(q) = interpolate16_3<bitFormat,14,1,1>(w[5], w[4], w[2]); -#define PIXEL00_50 *(q) = interpolate16_3<bitFormat,5,2,1>(w[5], w[2], w[4]); -#define PIXEL00_51 *(q) = interpolate16_3<bitFormat,5,2,1>(w[5], w[4], w[2]); -#define PIXEL00_60 *(q) = interpolate16_3<bitFormat,2,3,3>(w[5], w[4], w[2]); +#define PIXEL00_0 *(q) = w[5]; +#define PIXEL00_10 *(q) = interpolate16_2<bitFormat,3,1>(w[5], w[1]); +#define PIXEL00_11 *(q) = interpolate16_2<bitFormat,3,1>(w[5], w[4]); +#define PIXEL00_12 *(q) = interpolate16_2<bitFormat,3,1>(w[5], w[2]); +#define PIXEL00_20 *(q) = interpolate16_3<bitFormat,2,1,1>(w[5], w[4], w[2]); +#define PIXEL00_21 *(q) = interpolate16_3<bitFormat,2,1,1>(w[5], w[1], w[2]); +#define PIXEL00_22 *(q) = interpolate16_3<bitFormat,2,1,1>(w[5], w[1], w[4]); +#define PIXEL00_60 *(q) = interpolate16_3<bitFormat,5,2,1>(w[5], w[2], w[4]); +#define PIXEL00_61 *(q) = interpolate16_3<bitFormat,5,2,1>(w[5], w[4], w[2]); +#define PIXEL00_70 *(q) = interpolate16_3<bitFormat,6,1,1>(w[5], w[4], w[2]); +#define PIXEL00_90 *(q) = interpolate16_3<bitFormat,2,3,3>(w[5], w[4], w[2]); +#define PIXEL00_100 *(q) = interpolate16_3<bitFormat,14,1,1>(w[5], w[4], w[2]); -#define PIXEL01_0 *(q+1) = w[5]; -#define PIXEL01_10 *(q+1) = interpolate16_2<bitFormat,3,1>(w[5], w[3]); -#define PIXEL01_11 *(q+1) = interpolate16_2<bitFormat,3,1>(w[5], w[2]); -#define PIXEL01_12 *(q+1) = interpolate16_2<bitFormat,3,1>(w[5], w[6]); -#define PIXEL01_20 *(q+1) = interpolate16_3<bitFormat,2,1,1>(w[5], w[2], w[6]); -#define PIXEL01_30 *(q+1) = interpolate16_3<bitFormat,6,1,1>(w[5], w[2], w[6]); -#define PIXEL01_40 *(q+1) = interpolate16_3<bitFormat,14,1,1>(w[5], w[2], w[6]); -#define PIXEL01_50 *(q+1) = interpolate16_3<bitFormat,5,2,1>(w[5], w[6], w[2]); -#define PIXEL01_51 *(q+1) = interpolate16_3<bitFormat,5,2,1>(w[5], w[2], w[6]); -#define PIXEL01_60 *(q+1) = interpolate16_3<bitFormat,2,3,3>(w[5], w[2], w[6]); +#define PIXEL01_0 *(q+1) = w[5]; +#define PIXEL01_10 *(q+1) = interpolate16_2<bitFormat,3,1>(w[5], w[3]); +#define PIXEL01_11 *(q+1) = interpolate16_2<bitFormat,3,1>(w[5], w[2]); +#define PIXEL01_12 *(q+1) = interpolate16_2<bitFormat,3,1>(w[5], w[6]); +#define PIXEL01_20 *(q+1) = interpolate16_3<bitFormat,2,1,1>(w[5], w[2], w[6]); +#define PIXEL01_21 *(q+1) = interpolate16_3<bitFormat,2,1,1>(w[5], w[3], w[6]); +#define PIXEL01_22 *(q+1) = interpolate16_3<bitFormat,2,1,1>(w[5], w[3], w[2]); +#define PIXEL01_60 *(q+1) = interpolate16_3<bitFormat,5,2,1>(w[5], w[6], w[2]); +#define PIXEL01_61 *(q+1) = interpolate16_3<bitFormat,5,2,1>(w[5], w[2], w[6]); +#define PIXEL01_70 *(q+1) = interpolate16_3<bitFormat,6,1,1>(w[5], w[2], w[6]); +#define PIXEL01_90 *(q+1) = interpolate16_3<bitFormat,2,3,3>(w[5], w[2], w[6]); +#define PIXEL01_100 *(q+1) = interpolate16_3<bitFormat,14,1,1>(w[5], w[2], w[6]); -#define PIXEL10_0 *(q+nextlineDst) = w[5]; -#define PIXEL10_10 *(q+nextlineDst) = interpolate16_2<bitFormat,3,1>(w[5], w[7]); -#define PIXEL10_11 *(q+nextlineDst) = interpolate16_2<bitFormat,3,1>(w[5], w[8]); -#define PIXEL10_12 *(q+nextlineDst) = interpolate16_2<bitFormat,3,1>(w[5], w[4]); -#define PIXEL10_20 *(q+nextlineDst) = interpolate16_3<bitFormat,2,1,1>(w[5], w[8], w[4]); -#define PIXEL10_30 *(q+nextlineDst) = interpolate16_3<bitFormat,6,1,1>(w[5], w[8], w[4]); -#define PIXEL10_40 *(q+nextlineDst) = interpolate16_3<bitFormat,14,1,1>(w[5], w[8], w[4]); -#define PIXEL10_50 *(q+nextlineDst) = interpolate16_3<bitFormat,5,2,1>(w[5], w[4], w[8]); -#define PIXEL10_51 *(q+nextlineDst) = interpolate16_3<bitFormat,5,2,1>(w[5], w[8], w[4]); -#define PIXEL10_60 *(q+nextlineDst) = interpolate16_3<bitFormat,2,3,3>(w[5], w[8], w[4]); +#define PIXEL10_0 *(q+nextlineDst) = w[5]; +#define PIXEL10_10 *(q+nextlineDst) = interpolate16_2<bitFormat,3,1>(w[5], w[7]); +#define PIXEL10_11 *(q+nextlineDst) = interpolate16_2<bitFormat,3,1>(w[5], w[8]); +#define PIXEL10_12 *(q+nextlineDst) = interpolate16_2<bitFormat,3,1>(w[5], w[4]); +#define PIXEL10_20 *(q+nextlineDst) = interpolate16_3<bitFormat,2,1,1>(w[5], w[8], w[4]); +#define PIXEL10_21 *(q+nextlineDst) = interpolate16_3<bitFormat,2,1,1>(w[5], w[7], w[4]); +#define PIXEL10_22 *(q+nextlineDst) = interpolate16_3<bitFormat,2,1,1>(w[5], w[7], w[8]); +#define PIXEL10_60 *(q+nextlineDst) = interpolate16_3<bitFormat,5,2,1>(w[5], w[4], w[8]); +#define PIXEL10_61 *(q+nextlineDst) = interpolate16_3<bitFormat,5,2,1>(w[5], w[8], w[4]); +#define PIXEL10_70 *(q+nextlineDst) = interpolate16_3<bitFormat,6,1,1>(w[5], w[8], w[4]); +#define PIXEL10_90 *(q+nextlineDst) = interpolate16_3<bitFormat,2,3,3>(w[5], w[8], w[4]); +#define PIXEL10_100 *(q+nextlineDst) = interpolate16_3<bitFormat,14,1,1>(w[5], w[8], w[4]); -#define PIXEL11_0 *(q+1+nextlineDst) = w[5]; -#define PIXEL11_10 *(q+1+nextlineDst) = interpolate16_2<bitFormat,3,1>(w[5], w[9]); -#define PIXEL11_11 *(q+1+nextlineDst) = interpolate16_2<bitFormat,3,1>(w[5], w[6]); -#define PIXEL11_12 *(q+1+nextlineDst) = interpolate16_2<bitFormat,3,1>(w[5], w[8]); -#define PIXEL11_20 *(q+1+nextlineDst) = interpolate16_3<bitFormat,2,1,1>(w[5], w[6], w[8]); -#define PIXEL11_30 *(q+1+nextlineDst) = interpolate16_3<bitFormat,6,1,1>(w[5], w[6], w[8]); -#define PIXEL11_40 *(q+1+nextlineDst) = interpolate16_3<bitFormat,14,1,1>(w[5], w[6], w[8]); -#define PIXEL11_50 *(q+1+nextlineDst) = interpolate16_3<bitFormat,5,2,1>(w[5], w[8], w[6]); -#define PIXEL11_51 *(q+1+nextlineDst) = interpolate16_3<bitFormat,5,2,1>(w[5], w[6], w[8]); -#define PIXEL11_60 *(q+1+nextlineDst) = interpolate16_3<bitFormat,2,3,3>(w[5], w[6], w[8]); +#define PIXEL11_0 *(q+1+nextlineDst) = w[5]; +#define PIXEL11_10 *(q+1+nextlineDst) = interpolate16_2<bitFormat,3,1>(w[5], w[9]); +#define PIXEL11_11 *(q+1+nextlineDst) = interpolate16_2<bitFormat,3,1>(w[5], w[6]); +#define PIXEL11_12 *(q+1+nextlineDst) = interpolate16_2<bitFormat,3,1>(w[5], w[8]); +#define PIXEL11_20 *(q+1+nextlineDst) = interpolate16_3<bitFormat,2,1,1>(w[5], w[6], w[8]); +#define PIXEL11_21 *(q+1+nextlineDst) = interpolate16_3<bitFormat,2,1,1>(w[5], w[9], w[8]); +#define PIXEL11_22 *(q+1+nextlineDst) = interpolate16_3<bitFormat,2,1,1>(w[5], w[9], w[6]); +#define PIXEL11_60 *(q+1+nextlineDst) = interpolate16_3<bitFormat,5,2,1>(w[5], w[8], w[6]); +#define PIXEL11_61 *(q+1+nextlineDst) = interpolate16_3<bitFormat,5,2,1>(w[5], w[6], w[8]); +#define PIXEL11_70 *(q+1+nextlineDst) = interpolate16_3<bitFormat,6,1,1>(w[5], w[6], w[8]); +#define PIXEL11_90 *(q+1+nextlineDst) = interpolate16_3<bitFormat,2,3,3>(w[5], w[6], w[8]); +#define PIXEL11_100 *(q+1+nextlineDst) = interpolate16_3<bitFormat,14,1,1>(w[5], w[6], w[8]); + +#define YUV(x) RGBtoYUV[w[x]] /** * The HQ2x high quality 2x graphics filter. @@ -74,7 +84,6 @@ template<int bitFormat> void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, int width, int height) { int w[10]; - int yuv[10]; const uint32 nextlineSrc = srcPitch / sizeof(uint16); const uint16 *p = (const uint16 *)srcPtr; @@ -94,42 +103,41 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, // +----+----+----+ while (height--) { - w[2] = *(p - 1 - nextlineSrc); yuv[2] = RGBtoYUV[w[2]]; - w[5] = *(p - 1); yuv[5] = RGBtoYUV[w[5]]; - w[8] = *(p - 1 + nextlineSrc); yuv[8] = RGBtoYUV[w[8]]; + w[2] = *(p - 1 - nextlineSrc); + w[5] = *(p - 1); + w[8] = *(p - 1 + nextlineSrc); - w[3] = *(p - nextlineSrc); yuv[3] = RGBtoYUV[w[3]]; - w[6] = *(p); yuv[6] = RGBtoYUV[w[6]]; - w[9] = *(p + nextlineSrc); yuv[9] = RGBtoYUV[w[9]]; + w[3] = *(p - nextlineSrc); + w[6] = *(p); + w[9] = *(p + nextlineSrc); int tmpWidth = width; while (tmpWidth--) { p++; - w[1] = w[2]; yuv[1] = yuv[2]; - w[4] = w[5]; yuv[4] = yuv[5]; - w[7] = w[8]; yuv[7] = yuv[8]; + w[1] = w[2]; + w[4] = w[5]; + w[7] = w[8]; - w[2] = w[3]; yuv[2] = yuv[3]; - w[5] = w[6]; yuv[5] = yuv[6]; - w[8] = w[9]; yuv[8] = yuv[9]; + w[2] = w[3]; + w[5] = w[6]; + w[8] = w[9]; - w[3] = *(p - nextlineSrc); yuv[3] = RGBtoYUV[w[3]]; - w[6] = *(p); yuv[6] = RGBtoYUV[w[6]]; - w[9] = *(p + nextlineSrc); yuv[9] = RGBtoYUV[w[9]]; + w[3] = *(p - nextlineSrc); + w[6] = *(p); + w[9] = *(p + nextlineSrc); int pattern = 0; - int flag = 1; - - for (int k = 1; k <= 9; k++) { - if (k == 5) continue; + const int yuv5 = YUV(5); - if (w[k] != w[5]) { - if (diffYUV(yuv[5], yuv[k])) - pattern |= flag; - } - flag <<= 1; - } + if (w[5] != w[1] && diffYUV(yuv5, YUV(1))) pattern |= 0x0001; + if (w[5] != w[2] && diffYUV(yuv5, YUV(2))) pattern |= 0x0002; + if (w[5] != w[3] && diffYUV(yuv5, YUV(3))) pattern |= 0x0004; + if (w[5] != w[4] && diffYUV(yuv5, YUV(4))) pattern |= 0x0008; + if (w[5] != w[6] && diffYUV(yuv5, YUV(6))) pattern |= 0x0010; + if (w[5] != w[7] && diffYUV(yuv5, YUV(7))) pattern |= 0x0020; + if (w[5] != w[8] && diffYUV(yuv5, YUV(8))) pattern |= 0x0040; + if (w[5] != w[9] && diffYUV(yuv5, YUV(9))) pattern |= 0x0080; switch (pattern) { case 0: @@ -157,8 +165,8 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, case 34: case 130: case 162: - PIXEL00_10 - PIXEL01_10 + PIXEL00_22 + PIXEL01_21 PIXEL10_20 PIXEL11_20 break; @@ -167,9 +175,9 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, case 48: case 49: PIXEL00_20 - PIXEL01_10 + PIXEL01_22 PIXEL10_20 - PIXEL11_10 + PIXEL11_21 break; case 64: case 65: @@ -177,16 +185,16 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, case 69: PIXEL00_20 PIXEL01_20 - PIXEL10_10 - PIXEL11_10 + PIXEL10_21 + PIXEL11_22 break; case 8: case 12: case 136: case 140: - PIXEL00_10 + PIXEL00_21 PIXEL01_20 - PIXEL10_10 + PIXEL10_22 PIXEL11_20 break; case 3: @@ -194,7 +202,7 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, case 131: case 163: PIXEL00_11 - PIXEL01_10 + PIXEL01_21 PIXEL10_20 PIXEL11_20 break; @@ -202,7 +210,7 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, case 38: case 134: case 166: - PIXEL00_10 + PIXEL00_22 PIXEL01_12 PIXEL10_20 PIXEL11_20 @@ -214,14 +222,14 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL00_20 PIXEL01_11 PIXEL10_20 - PIXEL11_10 + PIXEL11_21 break; case 144: case 145: case 176: case 177: PIXEL00_20 - PIXEL01_10 + PIXEL01_22 PIXEL10_20 PIXEL11_12 break; @@ -231,7 +239,7 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, case 197: PIXEL00_20 PIXEL01_20 - PIXEL10_10 + PIXEL10_21 PIXEL11_11 break; case 96: @@ -241,13 +249,13 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL00_20 PIXEL01_20 PIXEL10_12 - PIXEL11_10 + PIXEL11_22 break; case 40: case 44: case 168: case 172: - PIXEL00_10 + PIXEL00_21 PIXEL01_20 PIXEL10_11 PIXEL11_20 @@ -258,26 +266,26 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, case 141: PIXEL00_12 PIXEL01_20 - PIXEL10_10 + PIXEL10_22 PIXEL11_20 break; case 18: case 50: - PIXEL00_10 - if (diffYUV(yuv[2], yuv[6])) { + PIXEL00_22 + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_10 } else { PIXEL01_20 } PIXEL10_20 - PIXEL11_10 + PIXEL11_21 break; case 80: case 81: PIXEL00_20 - PIXEL01_10 - PIXEL10_10 - if (diffYUV(yuv[6], yuv[8])) { + PIXEL01_22 + PIXEL10_21 + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_10 } else { PIXEL11_20 @@ -285,37 +293,37 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 72: case 76: - PIXEL00_10 + PIXEL00_21 PIXEL01_20 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_10 } else { PIXEL10_20 } - PIXEL11_10 + PIXEL11_22 break; case 10: case 138: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_10 } else { PIXEL00_20 } - PIXEL01_10 - PIXEL10_10 + PIXEL01_21 + PIXEL10_22 PIXEL11_20 break; case 66: - PIXEL00_10 - PIXEL01_10 - PIXEL10_10 - PIXEL11_10 + PIXEL00_22 + PIXEL01_21 + PIXEL10_21 + PIXEL11_22 break; case 24: - PIXEL00_10 - PIXEL01_10 - PIXEL10_10 - PIXEL11_10 + PIXEL00_21 + PIXEL01_22 + PIXEL10_22 + PIXEL11_21 break; case 7: case 39: @@ -351,21 +359,21 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 22: case 54: - PIXEL00_10 - if (diffYUV(yuv[2], yuv[6])) { + PIXEL00_22 + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_0 } else { PIXEL01_20 } PIXEL10_20 - PIXEL11_10 + PIXEL11_21 break; case 208: case 209: PIXEL00_20 - PIXEL01_10 - PIXEL10_10 - if (diffYUV(yuv[6], yuv[8])) { + PIXEL01_22 + PIXEL10_21 + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_0 } else { PIXEL11_20 @@ -373,195 +381,195 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 104: case 108: - PIXEL00_10 + PIXEL00_21 PIXEL01_20 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_0 } else { PIXEL10_20 } - PIXEL11_10 + PIXEL11_22 break; case 11: case 139: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 } else { PIXEL00_20 } - PIXEL01_10 - PIXEL10_10 + PIXEL01_21 + PIXEL10_22 PIXEL11_20 break; case 19: case 51: - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL00_11 PIXEL01_10 } else { - PIXEL00_50 - PIXEL01_60 + PIXEL00_60 + PIXEL01_90 } PIXEL10_20 - PIXEL11_10 + PIXEL11_21 break; case 146: case 178: - PIXEL00_10 - if (diffYUV(yuv[2], yuv[6])) { + PIXEL00_22 + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_10 PIXEL11_12 } else { - PIXEL01_60 - PIXEL11_51 + PIXEL01_90 + PIXEL11_61 } PIXEL10_20 break; case 84: case 85: PIXEL00_20 - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL01_11 PIXEL11_10 } else { - PIXEL01_50 - PIXEL11_60 + PIXEL01_60 + PIXEL11_90 } - PIXEL10_10 + PIXEL10_21 break; case 112: case 113: PIXEL00_20 - PIXEL01_10 - if (diffYUV(yuv[6], yuv[8])) { + PIXEL01_22 + if (diffYUV(YUV(6), YUV(8))) { PIXEL10_12 PIXEL11_10 } else { - PIXEL10_51 - PIXEL11_60 + PIXEL10_61 + PIXEL11_90 } break; case 200: case 204: - PIXEL00_10 + PIXEL00_21 PIXEL01_20 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_10 PIXEL11_11 } else { - PIXEL10_60 - PIXEL11_50 + PIXEL10_90 + PIXEL11_60 } break; case 73: case 77: - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL00_12 PIXEL10_10 } else { - PIXEL00_51 - PIXEL10_60 + PIXEL00_61 + PIXEL10_90 } PIXEL01_20 - PIXEL11_10 + PIXEL11_22 break; case 42: case 170: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_10 PIXEL10_11 } else { - PIXEL00_60 - PIXEL10_50 + PIXEL00_90 + PIXEL10_60 } - PIXEL01_10 + PIXEL01_21 PIXEL11_20 break; case 14: case 142: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_10 PIXEL01_12 } else { - PIXEL00_60 - PIXEL01_51 + PIXEL00_90 + PIXEL01_61 } - PIXEL10_10 + PIXEL10_22 PIXEL11_20 break; case 67: PIXEL00_11 - PIXEL01_10 - PIXEL10_10 - PIXEL11_10 + PIXEL01_21 + PIXEL10_21 + PIXEL11_22 break; case 70: - PIXEL00_10 + PIXEL00_22 PIXEL01_12 - PIXEL10_10 - PIXEL11_10 + PIXEL10_21 + PIXEL11_22 break; case 28: - PIXEL00_10 + PIXEL00_21 PIXEL01_11 - PIXEL10_10 - PIXEL11_10 + PIXEL10_22 + PIXEL11_21 break; case 152: - PIXEL00_10 - PIXEL01_10 - PIXEL10_10 + PIXEL00_21 + PIXEL01_22 + PIXEL10_22 PIXEL11_12 break; case 194: - PIXEL00_10 - PIXEL01_10 - PIXEL10_10 + PIXEL00_22 + PIXEL01_21 + PIXEL10_21 PIXEL11_11 break; case 98: - PIXEL00_10 - PIXEL01_10 + PIXEL00_22 + PIXEL01_21 PIXEL10_12 - PIXEL11_10 + PIXEL11_22 break; case 56: - PIXEL00_10 - PIXEL01_10 + PIXEL00_21 + PIXEL01_22 PIXEL10_11 - PIXEL11_10 + PIXEL11_21 break; case 25: PIXEL00_12 - PIXEL01_10 - PIXEL10_10 - PIXEL11_10 + PIXEL01_22 + PIXEL10_22 + PIXEL11_21 break; case 26: case 31: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 } else { PIXEL00_20 } - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_0 } else { PIXEL01_20 } - PIXEL10_10 - PIXEL11_10 + PIXEL10_22 + PIXEL11_21 break; case 82: case 214: - PIXEL00_10 - if (diffYUV(yuv[2], yuv[6])) { + PIXEL00_22 + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_0 } else { PIXEL01_20 } - PIXEL10_10 - if (diffYUV(yuv[6], yuv[8])) { + PIXEL10_21 + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_0 } else { PIXEL11_20 @@ -569,14 +577,14 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 88: case 248: - PIXEL00_10 - PIXEL01_10 - if (diffYUV(yuv[8], yuv[4])) { + PIXEL00_21 + PIXEL01_22 + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_0 } else { PIXEL10_20 } - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_0 } else { PIXEL11_20 @@ -584,44 +592,44 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 74: case 107: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 } else { PIXEL00_20 } - PIXEL01_10 - if (diffYUV(yuv[8], yuv[4])) { + PIXEL01_21 + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_0 } else { PIXEL10_20 } - PIXEL11_10 + PIXEL11_22 break; case 27: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 } else { PIXEL00_20 } PIXEL01_10 - PIXEL10_10 - PIXEL11_10 + PIXEL10_22 + PIXEL11_21 break; case 86: - PIXEL00_10 - if (diffYUV(yuv[2], yuv[6])) { + PIXEL00_22 + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_0 } else { PIXEL01_20 } - PIXEL10_10 + PIXEL10_21 PIXEL11_10 break; case 216: - PIXEL00_10 - PIXEL01_10 + PIXEL00_21 + PIXEL01_22 PIXEL10_10 - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_0 } else { PIXEL11_20 @@ -629,38 +637,38 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 106: PIXEL00_10 - PIXEL01_10 - if (diffYUV(yuv[8], yuv[4])) { + PIXEL01_21 + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_0 } else { PIXEL10_20 } - PIXEL11_10 + PIXEL11_22 break; case 30: PIXEL00_10 - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_0 } else { PIXEL01_20 } - PIXEL10_10 - PIXEL11_10 + PIXEL10_22 + PIXEL11_21 break; case 210: - PIXEL00_10 + PIXEL00_22 PIXEL01_10 - PIXEL10_10 - if (diffYUV(yuv[6], yuv[8])) { + PIXEL10_21 + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_0 } else { PIXEL11_20 } break; case 120: - PIXEL00_10 - PIXEL01_10 - if (diffYUV(yuv[8], yuv[4])) { + PIXEL00_21 + PIXEL01_22 + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_0 } else { PIXEL10_20 @@ -668,321 +676,321 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL11_10 break; case 75: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 } else { PIXEL00_20 } - PIXEL01_10 + PIXEL01_21 PIXEL10_10 - PIXEL11_10 + PIXEL11_22 break; case 29: PIXEL00_12 PIXEL01_11 - PIXEL10_10 - PIXEL11_10 + PIXEL10_22 + PIXEL11_21 break; case 198: - PIXEL00_10 + PIXEL00_22 PIXEL01_12 - PIXEL10_10 + PIXEL10_21 PIXEL11_11 break; case 184: - PIXEL00_10 - PIXEL01_10 + PIXEL00_21 + PIXEL01_22 PIXEL10_11 PIXEL11_12 break; case 99: PIXEL00_11 - PIXEL01_10 + PIXEL01_21 PIXEL10_12 - PIXEL11_10 + PIXEL11_22 break; case 57: PIXEL00_12 - PIXEL01_10 + PIXEL01_22 PIXEL10_11 - PIXEL11_10 + PIXEL11_21 break; case 71: PIXEL00_11 PIXEL01_12 - PIXEL10_10 - PIXEL11_10 + PIXEL10_21 + PIXEL11_22 break; case 156: - PIXEL00_10 + PIXEL00_21 PIXEL01_11 - PIXEL10_10 + PIXEL10_22 PIXEL11_12 break; case 226: - PIXEL00_10 - PIXEL01_10 + PIXEL00_22 + PIXEL01_21 PIXEL10_12 PIXEL11_11 break; case 60: - PIXEL00_10 + PIXEL00_21 PIXEL01_11 PIXEL10_11 - PIXEL11_10 + PIXEL11_21 break; case 195: PIXEL00_11 - PIXEL01_10 - PIXEL10_10 + PIXEL01_21 + PIXEL10_21 PIXEL11_11 break; case 102: - PIXEL00_10 + PIXEL00_22 PIXEL01_12 PIXEL10_12 - PIXEL11_10 + PIXEL11_22 break; case 153: PIXEL00_12 - PIXEL01_10 - PIXEL10_10 + PIXEL01_22 + PIXEL10_22 PIXEL11_12 break; case 58: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_10 } else { - PIXEL00_30 + PIXEL00_70 } - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_10 } else { - PIXEL01_30 + PIXEL01_70 } PIXEL10_11 - PIXEL11_10 + PIXEL11_21 break; case 83: PIXEL00_11 - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_10 } else { - PIXEL01_30 + PIXEL01_70 } - PIXEL10_10 - if (diffYUV(yuv[6], yuv[8])) { + PIXEL10_21 + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_10 } else { - PIXEL11_30 + PIXEL11_70 } break; case 92: - PIXEL00_10 + PIXEL00_21 PIXEL01_11 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_10 } else { - PIXEL10_30 + PIXEL10_70 } - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_10 } else { - PIXEL11_30 + PIXEL11_70 } break; case 202: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_10 } else { - PIXEL00_30 + PIXEL00_70 } - PIXEL01_10 - if (diffYUV(yuv[8], yuv[4])) { + PIXEL01_21 + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_10 } else { - PIXEL10_30 + PIXEL10_70 } PIXEL11_11 break; case 78: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_10 } else { - PIXEL00_30 + PIXEL00_70 } PIXEL01_12 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_10 } else { - PIXEL10_30 + PIXEL10_70 } - PIXEL11_10 + PIXEL11_22 break; case 154: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_10 } else { - PIXEL00_30 + PIXEL00_70 } - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_10 } else { - PIXEL01_30 + PIXEL01_70 } - PIXEL10_10 + PIXEL10_22 PIXEL11_12 break; case 114: - PIXEL00_10 - if (diffYUV(yuv[2], yuv[6])) { + PIXEL00_22 + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_10 } else { - PIXEL01_30 + PIXEL01_70 } PIXEL10_12 - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_10 } else { - PIXEL11_30 + PIXEL11_70 } break; case 89: PIXEL00_12 - PIXEL01_10 - if (diffYUV(yuv[8], yuv[4])) { + PIXEL01_22 + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_10 } else { - PIXEL10_30 + PIXEL10_70 } - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_10 } else { - PIXEL11_30 + PIXEL11_70 } break; case 90: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_10 } else { - PIXEL00_30 + PIXEL00_70 } - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_10 } else { - PIXEL01_30 + PIXEL01_70 } - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_10 } else { - PIXEL10_30 + PIXEL10_70 } - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_10 } else { - PIXEL11_30 + PIXEL11_70 } break; case 55: case 23: - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL00_11 PIXEL01_0 } else { - PIXEL00_50 - PIXEL01_60 + PIXEL00_60 + PIXEL01_90 } PIXEL10_20 - PIXEL11_10 + PIXEL11_21 break; case 182: case 150: - PIXEL00_10 - if (diffYUV(yuv[2], yuv[6])) { + PIXEL00_22 + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_0 PIXEL11_12 } else { - PIXEL01_60 - PIXEL11_51 + PIXEL01_90 + PIXEL11_61 } PIXEL10_20 break; case 213: case 212: PIXEL00_20 - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL01_11 PIXEL11_0 } else { - PIXEL01_50 - PIXEL11_60 + PIXEL01_60 + PIXEL11_90 } - PIXEL10_10 + PIXEL10_21 break; case 241: case 240: PIXEL00_20 - PIXEL01_10 - if (diffYUV(yuv[6], yuv[8])) { + PIXEL01_22 + if (diffYUV(YUV(6), YUV(8))) { PIXEL10_12 PIXEL11_0 } else { - PIXEL10_51 - PIXEL11_60 + PIXEL10_61 + PIXEL11_90 } break; case 236: case 232: - PIXEL00_10 + PIXEL00_21 PIXEL01_20 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_0 PIXEL11_11 } else { - PIXEL10_60 - PIXEL11_50 + PIXEL10_90 + PIXEL11_60 } break; case 109: case 105: - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL00_12 PIXEL10_0 } else { - PIXEL00_51 - PIXEL10_60 + PIXEL00_61 + PIXEL10_90 } PIXEL01_20 - PIXEL11_10 + PIXEL11_22 break; case 171: case 43: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 PIXEL10_11 } else { - PIXEL00_60 - PIXEL10_50 + PIXEL00_90 + PIXEL10_60 } - PIXEL01_10 + PIXEL01_21 PIXEL11_20 break; case 143: case 15: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 PIXEL01_12 } else { - PIXEL00_60 - PIXEL01_51 + PIXEL00_90 + PIXEL01_61 } - PIXEL10_10 + PIXEL10_22 PIXEL11_20 break; case 124: - PIXEL00_10 + PIXEL00_21 PIXEL01_11 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_0 } else { PIXEL10_20 @@ -990,38 +998,38 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL11_10 break; case 203: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 } else { PIXEL00_20 } - PIXEL01_10 + PIXEL01_21 PIXEL10_10 PIXEL11_11 break; case 62: PIXEL00_10 - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_0 } else { PIXEL01_20 } PIXEL10_11 - PIXEL11_10 + PIXEL11_21 break; case 211: PIXEL00_11 PIXEL01_10 - PIXEL10_10 - if (diffYUV(yuv[6], yuv[8])) { + PIXEL10_21 + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_0 } else { PIXEL11_20 } break; case 118: - PIXEL00_10 - if (diffYUV(yuv[2], yuv[6])) { + PIXEL00_22 + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_0 } else { PIXEL01_20 @@ -1031,9 +1039,9 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 217: PIXEL00_12 - PIXEL01_10 + PIXEL01_22 PIXEL10_10 - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_0 } else { PIXEL11_20 @@ -1042,32 +1050,32 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, case 110: PIXEL00_10 PIXEL01_12 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_0 } else { PIXEL10_20 } - PIXEL11_10 + PIXEL11_22 break; case 155: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 } else { PIXEL00_20 } PIXEL01_10 - PIXEL10_10 + PIXEL10_22 PIXEL11_12 break; case 188: - PIXEL00_10 + PIXEL00_21 PIXEL01_11 PIXEL10_11 PIXEL11_12 break; case 185: PIXEL00_12 - PIXEL01_10 + PIXEL01_22 PIXEL10_11 PIXEL11_12 break; @@ -1075,28 +1083,28 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL00_12 PIXEL01_11 PIXEL10_11 - PIXEL11_10 + PIXEL11_21 break; case 157: PIXEL00_12 PIXEL01_11 - PIXEL10_10 + PIXEL10_22 PIXEL11_12 break; case 103: PIXEL00_11 PIXEL01_12 PIXEL10_12 - PIXEL11_10 + PIXEL11_22 break; case 227: PIXEL00_11 - PIXEL01_10 + PIXEL01_21 PIXEL10_12 PIXEL11_11 break; case 230: - PIXEL00_10 + PIXEL00_22 PIXEL01_12 PIXEL10_12 PIXEL11_11 @@ -1104,45 +1112,45 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, case 199: PIXEL00_11 PIXEL01_12 - PIXEL10_10 + PIXEL10_21 PIXEL11_11 break; case 220: - PIXEL00_10 + PIXEL00_21 PIXEL01_11 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_10 } else { - PIXEL10_30 + PIXEL10_70 } - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_0 } else { PIXEL11_20 } break; case 158: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_10 } else { - PIXEL00_30 + PIXEL00_70 } - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_0 } else { PIXEL01_20 } - PIXEL10_10 + PIXEL10_22 PIXEL11_12 break; case 234: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_10 } else { - PIXEL00_30 + PIXEL00_70 } - PIXEL01_10 - if (diffYUV(yuv[8], yuv[4])) { + PIXEL01_21 + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_0 } else { PIXEL10_20 @@ -1150,161 +1158,161 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL11_11 break; case 242: - PIXEL00_10 - if (diffYUV(yuv[2], yuv[6])) { + PIXEL00_22 + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_10 } else { - PIXEL01_30 + PIXEL01_70 } PIXEL10_12 - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_0 } else { PIXEL11_20 } break; case 59: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 } else { PIXEL00_20 } - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_10 } else { - PIXEL01_30 + PIXEL01_70 } PIXEL10_11 - PIXEL11_10 + PIXEL11_21 break; case 121: PIXEL00_12 - PIXEL01_10 - if (diffYUV(yuv[8], yuv[4])) { + PIXEL01_22 + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_0 } else { PIXEL10_20 } - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_10 } else { - PIXEL11_30 + PIXEL11_70 } break; case 87: PIXEL00_11 - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_0 } else { PIXEL01_20 } - PIXEL10_10 - if (diffYUV(yuv[6], yuv[8])) { + PIXEL10_21 + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_10 } else { - PIXEL11_30 + PIXEL11_70 } break; case 79: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 } else { PIXEL00_20 } PIXEL01_12 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_10 } else { - PIXEL10_30 + PIXEL10_70 } - PIXEL11_10 + PIXEL11_22 break; case 122: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_10 } else { - PIXEL00_30 + PIXEL00_70 } - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_10 } else { - PIXEL01_30 + PIXEL01_70 } - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_0 } else { PIXEL10_20 } - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_10 } else { - PIXEL11_30 + PIXEL11_70 } break; case 94: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_10 } else { - PIXEL00_30 + PIXEL00_70 } - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_0 } else { PIXEL01_20 } - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_10 } else { - PIXEL10_30 + PIXEL10_70 } - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_10 } else { - PIXEL11_30 + PIXEL11_70 } break; case 218: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_10 } else { - PIXEL00_30 + PIXEL00_70 } - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_10 } else { - PIXEL01_30 + PIXEL01_70 } - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_10 } else { - PIXEL10_30 + PIXEL10_70 } - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_0 } else { PIXEL11_20 } break; case 91: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 } else { PIXEL00_20 } - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_10 } else { - PIXEL01_30 + PIXEL01_70 } - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_10 } else { - PIXEL10_30 + PIXEL10_70 } - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_10 } else { - PIXEL11_30 + PIXEL11_70 } break; case 229: @@ -1332,58 +1340,58 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL11_12 break; case 186: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_10 } else { - PIXEL00_30 + PIXEL00_70 } - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_10 } else { - PIXEL01_30 + PIXEL01_70 } PIXEL10_11 PIXEL11_12 break; case 115: PIXEL00_11 - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_10 } else { - PIXEL01_30 + PIXEL01_70 } PIXEL10_12 - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_10 } else { - PIXEL11_30 + PIXEL11_70 } break; case 93: PIXEL00_12 PIXEL01_11 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_10 } else { - PIXEL10_30 + PIXEL10_70 } - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_10 } else { - PIXEL11_30 + PIXEL11_70 } break; case 206: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_10 } else { - PIXEL00_30 + PIXEL00_70 } PIXEL01_12 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_10 } else { - PIXEL10_30 + PIXEL10_70 } PIXEL11_11 break; @@ -1391,19 +1399,19 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, case 201: PIXEL00_12 PIXEL01_20 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_10 } else { - PIXEL10_30 + PIXEL10_70 } PIXEL11_11 break; case 174: case 46: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_10 } else { - PIXEL00_30 + PIXEL00_70 } PIXEL01_12 PIXEL10_11 @@ -1412,10 +1420,10 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, case 179: case 147: PIXEL00_11 - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_10 } else { - PIXEL01_30 + PIXEL01_70 } PIXEL10_20 PIXEL11_12 @@ -1425,10 +1433,10 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL00_20 PIXEL01_11 PIXEL10_12 - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_10 } else { - PIXEL11_30 + PIXEL11_70 } break; case 189: @@ -1445,12 +1453,12 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 126: PIXEL00_10 - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_0 } else { PIXEL01_20 } - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_0 } else { PIXEL10_20 @@ -1458,48 +1466,48 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL11_10 break; case 219: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 } else { PIXEL00_20 } PIXEL01_10 PIXEL10_10 - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_0 } else { PIXEL11_20 } break; case 125: - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL00_12 PIXEL10_0 } else { - PIXEL00_51 - PIXEL10_60 + PIXEL00_61 + PIXEL10_90 } PIXEL01_11 PIXEL11_10 break; case 221: PIXEL00_12 - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL01_11 PIXEL11_0 } else { - PIXEL01_50 - PIXEL11_60 + PIXEL01_60 + PIXEL11_90 } PIXEL10_10 break; case 207: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 PIXEL01_12 } else { - PIXEL00_60 - PIXEL01_51 + PIXEL00_90 + PIXEL01_61 } PIXEL10_10 PIXEL11_11 @@ -1507,32 +1515,32 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, case 238: PIXEL00_10 PIXEL01_12 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_0 PIXEL11_11 } else { - PIXEL10_60 - PIXEL11_50 + PIXEL10_90 + PIXEL11_60 } break; case 190: PIXEL00_10 - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_0 PIXEL11_12 } else { - PIXEL01_60 - PIXEL11_51 + PIXEL01_90 + PIXEL11_61 } PIXEL10_11 break; case 187: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 PIXEL10_11 } else { - PIXEL00_60 - PIXEL10_50 + PIXEL00_90 + PIXEL10_60 } PIXEL01_10 PIXEL11_12 @@ -1540,21 +1548,21 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, case 243: PIXEL00_11 PIXEL01_10 - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL10_12 PIXEL11_0 } else { - PIXEL10_51 - PIXEL11_60 + PIXEL10_61 + PIXEL11_90 } break; case 119: - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL00_11 PIXEL01_0 } else { - PIXEL00_50 - PIXEL01_60 + PIXEL00_60 + PIXEL01_90 } PIXEL10_12 PIXEL11_10 @@ -1563,19 +1571,19 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, case 233: PIXEL00_12 PIXEL01_20 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_0 } else { - PIXEL10_40 + PIXEL10_100 } PIXEL11_11 break; case 175: case 47: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 } else { - PIXEL00_40 + PIXEL00_100 } PIXEL01_12 PIXEL10_11 @@ -1584,10 +1592,10 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, case 183: case 151: PIXEL00_11 - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_0 } else { - PIXEL01_40 + PIXEL01_100 } PIXEL10_20 PIXEL11_12 @@ -1597,34 +1605,34 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL00_20 PIXEL01_11 PIXEL10_12 - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_0 } else { - PIXEL11_40 + PIXEL11_100 } break; case 250: PIXEL00_10 PIXEL01_10 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_0 } else { PIXEL10_20 } - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_0 } else { PIXEL11_20 } break; case 123: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 } else { PIXEL00_20 } PIXEL01_10 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_0 } else { PIXEL10_20 @@ -1632,12 +1640,12 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL11_10 break; case 95: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 } else { PIXEL00_20 } - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_0 } else { PIXEL01_20 @@ -1647,206 +1655,206 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 222: PIXEL00_10 - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_0 } else { PIXEL01_20 } PIXEL10_10 - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_0 } else { PIXEL11_20 } break; case 252: - PIXEL00_10 + PIXEL00_21 PIXEL01_11 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_0 } else { PIXEL10_20 } - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_0 } else { - PIXEL11_40 + PIXEL11_100 } break; case 249: PIXEL00_12 - PIXEL01_10 - if (diffYUV(yuv[8], yuv[4])) { + PIXEL01_22 + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_0 } else { - PIXEL10_40 + PIXEL10_100 } - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_0 } else { PIXEL11_20 } break; case 235: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 } else { PIXEL00_20 } - PIXEL01_10 - if (diffYUV(yuv[8], yuv[4])) { + PIXEL01_21 + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_0 } else { - PIXEL10_40 + PIXEL10_100 } PIXEL11_11 break; case 111: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 } else { - PIXEL00_40 + PIXEL00_100 } PIXEL01_12 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_0 } else { PIXEL10_20 } - PIXEL11_10 + PIXEL11_22 break; case 63: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 } else { - PIXEL00_40 + PIXEL00_100 } - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_0 } else { PIXEL01_20 } PIXEL10_11 - PIXEL11_10 + PIXEL11_21 break; case 159: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 } else { PIXEL00_20 } - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_0 } else { - PIXEL01_40 + PIXEL01_100 } - PIXEL10_10 + PIXEL10_22 PIXEL11_12 break; case 215: PIXEL00_11 - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_0 } else { - PIXEL01_40 + PIXEL01_100 } - PIXEL10_10 - if (diffYUV(yuv[6], yuv[8])) { + PIXEL10_21 + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_0 } else { PIXEL11_20 } break; case 246: - PIXEL00_10 - if (diffYUV(yuv[2], yuv[6])) { + PIXEL00_22 + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_0 } else { PIXEL01_20 } PIXEL10_12 - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_0 } else { - PIXEL11_40 + PIXEL11_100 } break; case 254: PIXEL00_10 - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_0 } else { PIXEL01_20 } - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_0 } else { PIXEL10_20 } - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_0 } else { - PIXEL11_40 + PIXEL11_100 } break; case 253: PIXEL00_12 PIXEL01_11 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_0 } else { - PIXEL10_40 + PIXEL10_100 } - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_0 } else { - PIXEL11_40 + PIXEL11_100 } break; case 251: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 } else { PIXEL00_20 } PIXEL01_10 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_0 } else { - PIXEL10_40 + PIXEL10_100 } - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_0 } else { PIXEL11_20 } break; case 239: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 } else { - PIXEL00_40 + PIXEL00_100 } PIXEL01_12 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_0 } else { - PIXEL10_40 + PIXEL10_100 } PIXEL11_11 break; case 127: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 } else { - PIXEL00_40 + PIXEL00_100 } - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_0 } else { PIXEL01_20 } - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_0 } else { PIXEL10_20 @@ -1854,32 +1862,32 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL11_10 break; case 191: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 } else { - PIXEL00_40 + PIXEL00_100 } - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_0 } else { - PIXEL01_40 + PIXEL01_100 } PIXEL10_11 PIXEL11_12 break; case 223: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 } else { PIXEL00_20 } - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_0 } else { - PIXEL01_40 + PIXEL01_100 } PIXEL10_10 - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_0 } else { PIXEL11_20 @@ -1887,38 +1895,38 @@ void HQ2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 247: PIXEL00_11 - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_0 } else { - PIXEL01_40 + PIXEL01_100 } PIXEL10_12 - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_0 } else { - PIXEL11_40 + PIXEL11_100 } break; case 255: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_0 } else { - PIXEL00_40 + PIXEL00_100 } - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_0 } else { - PIXEL01_40 + PIXEL01_100 } - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_0 } else { - PIXEL10_40 + PIXEL10_100 } - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL11_0 } else { - PIXEL11_40 + PIXEL11_100 } break; } diff --git a/common/scaler/hq3x.cpp b/common/scaler/hq3x.cpp index 6b40f676e2..864b8c31cf 100644 --- a/common/scaler/hq3x.cpp +++ b/common/scaler/hq3x.cpp @@ -77,6 +77,8 @@ #define PIXEL22_5 *(q+2+nextlineDst2) = interpolate16_2<bitFormat,1,1>(w[6], w[8]); #define PIXEL22_C *(q+2+nextlineDst2) = w[5]; +#define YUV(x) RGBtoYUV[w[x]] + /** * The HQ3x high quality 3x graphics filter. * Original author Maxim Stepin (see http://www.hiend3d.com/hq3x.html). @@ -85,7 +87,6 @@ template<int bitFormat> void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, int width, int height) { int w[10]; - int yuv[10]; const uint32 nextlineSrc = srcPitch / sizeof(uint16); const uint16 *p = (const uint16 *)srcPtr; @@ -119,42 +120,41 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, // +----+----+----+ while (height--) { - w[2] = *(p - 1 - nextlineSrc); yuv[2] = RGBtoYUV[w[2]]; - w[5] = *(p - 1); yuv[5] = RGBtoYUV[w[5]]; - w[8] = *(p - 1 + nextlineSrc); yuv[8] = RGBtoYUV[w[8]]; + w[2] = *(p - 1 - nextlineSrc); + w[5] = *(p - 1); + w[8] = *(p - 1 + nextlineSrc); - w[3] = *(p - nextlineSrc); yuv[3] = RGBtoYUV[w[3]]; - w[6] = *(p); yuv[6] = RGBtoYUV[w[6]]; - w[9] = *(p + nextlineSrc); yuv[9] = RGBtoYUV[w[9]]; + w[3] = *(p - nextlineSrc); + w[6] = *(p); + w[9] = *(p + nextlineSrc); int tmpWidth = width; while (tmpWidth--) { p++; - w[1] = w[2]; yuv[1] = yuv[2]; - w[4] = w[5]; yuv[4] = yuv[5]; - w[7] = w[8]; yuv[7] = yuv[8]; + w[1] = w[2]; + w[4] = w[5]; + w[7] = w[8]; - w[2] = w[3]; yuv[2] = yuv[3]; - w[5] = w[6]; yuv[5] = yuv[6]; - w[8] = w[9]; yuv[8] = yuv[9]; + w[2] = w[3]; + w[5] = w[6]; + w[8] = w[9]; - w[3] = *(p - nextlineSrc); yuv[3] = RGBtoYUV[w[3]]; - w[6] = *(p); yuv[6] = RGBtoYUV[w[6]]; - w[9] = *(p + nextlineSrc); yuv[9] = RGBtoYUV[w[9]]; + w[3] = *(p - nextlineSrc); + w[6] = *(p); + w[9] = *(p + nextlineSrc); int pattern = 0; - int flag = 1; - - for (int k = 1; k <= 9; k++) { - if (k == 5) continue; + const int yuv5 = YUV(5); - if (w[k] != w[5]) { - if (diffYUV(yuv[5], yuv[k])) - pattern |= flag; - } - flag <<= 1; - } + if (w[5] != w[1] && diffYUV(yuv5, YUV(1))) pattern |= 0x0001; + if (w[5] != w[2] && diffYUV(yuv5, YUV(2))) pattern |= 0x0002; + if (w[5] != w[3] && diffYUV(yuv5, YUV(3))) pattern |= 0x0004; + if (w[5] != w[4] && diffYUV(yuv5, YUV(4))) pattern |= 0x0008; + if (w[5] != w[6] && diffYUV(yuv5, YUV(6))) pattern |= 0x0010; + if (w[5] != w[7] && diffYUV(yuv5, YUV(7))) pattern |= 0x0020; + if (w[5] != w[8] && diffYUV(yuv5, YUV(8))) pattern |= 0x0040; + if (w[5] != w[9] && diffYUV(yuv5, YUV(9))) pattern |= 0x0080; switch (pattern) { case 0: @@ -354,7 +354,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, case 18: case 50: PIXEL00_1M - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_C PIXEL02_1M PIXEL12_C @@ -377,7 +377,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL10_1 PIXEL11 PIXEL20_1M - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL12_C PIXEL21_C PIXEL22_1M @@ -394,7 +394,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL02_2 PIXEL11 PIXEL12_1 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_C PIXEL20_1M PIXEL21_C @@ -407,7 +407,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 10: case 138: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_1M PIXEL01_C PIXEL10_C @@ -500,7 +500,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, case 22: case 54: PIXEL00_1M - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_C PIXEL02_C PIXEL12_C @@ -523,7 +523,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL10_1 PIXEL11 PIXEL20_1M - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL12_C PIXEL21_C PIXEL22_C @@ -540,7 +540,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL02_2 PIXEL11 PIXEL12_1 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_C PIXEL20_C PIXEL21_C @@ -553,7 +553,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 11: case 139: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C PIXEL01_C PIXEL10_C @@ -571,7 +571,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 19: case 51: - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL00_1L PIXEL01_C PIXEL02_1M @@ -590,7 +590,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 146: case 178: - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_C PIXEL02_1M PIXEL12_C @@ -609,7 +609,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 84: case 85: - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL02_1U PIXEL12_C PIXEL21_C @@ -628,7 +628,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 112: case 113: - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL12_C PIXEL20_1L PIXEL21_C @@ -647,7 +647,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 200: case 204: - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_C PIXEL20_1M PIXEL21_C @@ -666,7 +666,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 73: case 77: - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL00_1U PIXEL10_C PIXEL20_1M @@ -685,7 +685,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 42: case 170: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_1M PIXEL01_C PIXEL10_C @@ -704,7 +704,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 14: case 142: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_1M PIXEL01_C PIXEL02_1R @@ -811,7 +811,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 26: case 31: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C PIXEL10_C } else { @@ -819,7 +819,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL10_3 } PIXEL01_C - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL02_C PIXEL12_C } else { @@ -834,7 +834,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, case 82: case 214: PIXEL00_1M - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_C PIXEL02_C } else { @@ -845,7 +845,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL11 PIXEL12_C PIXEL20_1M - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL21_C PIXEL22_C } else { @@ -859,7 +859,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL01_1 PIXEL02_1M PIXEL11 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_C PIXEL20_C } else { @@ -867,7 +867,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL20_4 } PIXEL21_C - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL12_C PIXEL22_C } else { @@ -877,7 +877,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 74: case 107: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C PIXEL01_C } else { @@ -888,7 +888,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL10_C PIXEL11 PIXEL12_1 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL20_C PIXEL21_C } else { @@ -898,7 +898,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL22_1M break; case 27: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C PIXEL01_C PIXEL10_C @@ -916,7 +916,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 86: PIXEL00_1M - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_C PIXEL02_C PIXEL12_C @@ -938,7 +938,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL10_C PIXEL11 PIXEL20_1M - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL12_C PIXEL21_C PIXEL22_C @@ -954,7 +954,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL02_1M PIXEL11 PIXEL12_1 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_C PIXEL20_C PIXEL21_C @@ -967,7 +967,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 30: PIXEL00_1M - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_C PIXEL02_C PIXEL12_C @@ -989,7 +989,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL10_1 PIXEL11 PIXEL20_1M - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL12_C PIXEL21_C PIXEL22_C @@ -1005,7 +1005,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL02_1M PIXEL11 PIXEL12_C - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_C PIXEL20_C PIXEL21_C @@ -1017,7 +1017,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL22_1M break; case 75: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C PIXEL01_C PIXEL10_C @@ -1166,13 +1166,13 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL22_1D break; case 58: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_1M } else { PIXEL00_2 } PIXEL01_C - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL02_1M } else { PIXEL02_2 @@ -1187,7 +1187,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, case 83: PIXEL00_1L PIXEL01_C - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL02_1M } else { PIXEL02_2 @@ -1197,7 +1197,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL12_C PIXEL20_1M PIXEL21_C - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL22_1M } else { PIXEL22_2 @@ -1210,20 +1210,20 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL10_C PIXEL11 PIXEL12_C - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL20_1M } else { PIXEL20_2 } PIXEL21_C - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL22_1M } else { PIXEL22_2 } break; case 202: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_1M } else { PIXEL00_2 @@ -1233,7 +1233,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL10_C PIXEL11 PIXEL12_1 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL20_1M } else { PIXEL20_2 @@ -1242,7 +1242,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL22_1R break; case 78: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_1M } else { PIXEL00_2 @@ -1252,7 +1252,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL10_C PIXEL11 PIXEL12_1 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL20_1M } else { PIXEL20_2 @@ -1261,13 +1261,13 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL22_1M break; case 154: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_1M } else { PIXEL00_2 } PIXEL01_C - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL02_1M } else { PIXEL02_2 @@ -1282,7 +1282,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, case 114: PIXEL00_1M PIXEL01_C - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL02_1M } else { PIXEL02_2 @@ -1292,7 +1292,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL12_C PIXEL20_1L PIXEL21_C - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL22_1M } else { PIXEL22_2 @@ -1305,26 +1305,26 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL10_C PIXEL11 PIXEL12_C - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL20_1M } else { PIXEL20_2 } PIXEL21_C - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL22_1M } else { PIXEL22_2 } break; case 90: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_1M } else { PIXEL00_2 } PIXEL01_C - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL02_1M } else { PIXEL02_2 @@ -1332,13 +1332,13 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL10_C PIXEL11 PIXEL12_C - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL20_1M } else { PIXEL20_2 } PIXEL21_C - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL22_1M } else { PIXEL22_2 @@ -1346,7 +1346,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 55: case 23: - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL00_1L PIXEL01_C PIXEL02_C @@ -1365,7 +1365,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 182: case 150: - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_C PIXEL02_C PIXEL12_C @@ -1384,7 +1384,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 213: case 212: - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL02_1U PIXEL12_C PIXEL21_C @@ -1403,7 +1403,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 241: case 240: - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL12_C PIXEL20_1L PIXEL21_C @@ -1422,7 +1422,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 236: case 232: - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_C PIXEL20_C PIXEL21_C @@ -1441,7 +1441,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 109: case 105: - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL00_1U PIXEL10_C PIXEL20_C @@ -1460,7 +1460,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 171: case 43: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C PIXEL01_C PIXEL10_C @@ -1479,7 +1479,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 143: case 15: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C PIXEL01_C PIXEL02_1R @@ -1502,7 +1502,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL02_1U PIXEL11 PIXEL12_C - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_C PIXEL20_C PIXEL21_C @@ -1514,7 +1514,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL22_1M break; case 203: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C PIXEL01_C PIXEL10_C @@ -1532,7 +1532,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 62: PIXEL00_1M - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_C PIXEL02_C PIXEL12_C @@ -1554,7 +1554,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL10_1 PIXEL11 PIXEL20_1M - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL12_C PIXEL21_C PIXEL22_C @@ -1566,7 +1566,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 118: PIXEL00_1M - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_C PIXEL02_C PIXEL12_C @@ -1588,7 +1588,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL10_C PIXEL11 PIXEL20_1M - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL12_C PIXEL21_C PIXEL22_C @@ -1604,7 +1604,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL02_1R PIXEL11 PIXEL12_1 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_C PIXEL20_C PIXEL21_C @@ -1616,7 +1616,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL22_1M break; case 155: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C PIXEL01_C PIXEL10_C @@ -1726,12 +1726,12 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL02_1U PIXEL10_C PIXEL11 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL20_1M } else { PIXEL20_2 } - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL12_C PIXEL21_C PIXEL22_C @@ -1742,12 +1742,12 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, } break; case 158: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_1M } else { PIXEL00_2 } - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_C PIXEL02_C PIXEL12_C @@ -1763,7 +1763,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL22_1D break; case 234: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_1M } else { PIXEL00_2 @@ -1772,7 +1772,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL02_1M PIXEL11 PIXEL12_1 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_C PIXEL20_C PIXEL21_C @@ -1786,7 +1786,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, case 242: PIXEL00_1M PIXEL01_C - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL02_1M } else { PIXEL02_2 @@ -1794,7 +1794,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL10_1 PIXEL11 PIXEL20_1L - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL12_C PIXEL21_C PIXEL22_C @@ -1805,7 +1805,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, } break; case 59: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C PIXEL01_C PIXEL10_C @@ -1814,7 +1814,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL01_3 PIXEL10_3 } - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL02_1M } else { PIXEL02_2 @@ -1831,7 +1831,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL02_1M PIXEL11 PIXEL12_C - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_C PIXEL20_C PIXEL21_C @@ -1840,7 +1840,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL20_4 PIXEL21_3 } - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL22_1M } else { PIXEL22_2 @@ -1848,7 +1848,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 87: PIXEL00_1L - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_C PIXEL02_C PIXEL12_C @@ -1861,14 +1861,14 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL11 PIXEL20_1M PIXEL21_C - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL22_1M } else { PIXEL22_2 } break; case 79: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C PIXEL01_C PIXEL10_C @@ -1880,7 +1880,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL02_1R PIXEL11 PIXEL12_1 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL20_1M } else { PIXEL20_2 @@ -1889,20 +1889,20 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL22_1M break; case 122: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_1M } else { PIXEL00_2 } PIXEL01_C - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL02_1M } else { PIXEL02_2 } PIXEL11 PIXEL12_C - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_C PIXEL20_C PIXEL21_C @@ -1911,19 +1911,19 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL20_4 PIXEL21_3 } - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL22_1M } else { PIXEL22_2 } break; case 94: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_1M } else { PIXEL00_2 } - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_C PIXEL02_C PIXEL12_C @@ -1934,38 +1934,38 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, } PIXEL10_C PIXEL11 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL20_1M } else { PIXEL20_2 } PIXEL21_C - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL22_1M } else { PIXEL22_2 } break; case 218: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_1M } else { PIXEL00_2 } PIXEL01_C - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL02_1M } else { PIXEL02_2 } PIXEL10_C PIXEL11 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL20_1M } else { PIXEL20_2 } - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL12_C PIXEL21_C PIXEL22_C @@ -1976,7 +1976,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, } break; case 91: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C PIXEL01_C PIXEL10_C @@ -1985,20 +1985,20 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL01_3 PIXEL10_3 } - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL02_1M } else { PIXEL02_2 } PIXEL11 PIXEL12_C - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL20_1M } else { PIXEL20_2 } PIXEL21_C - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL22_1M } else { PIXEL22_2 @@ -2049,13 +2049,13 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL22_1D break; case 186: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_1M } else { PIXEL00_2 } PIXEL01_C - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL02_1M } else { PIXEL02_2 @@ -2070,7 +2070,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, case 115: PIXEL00_1L PIXEL01_C - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL02_1M } else { PIXEL02_2 @@ -2080,7 +2080,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL12_C PIXEL20_1L PIXEL21_C - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL22_1M } else { PIXEL22_2 @@ -2093,20 +2093,20 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL10_C PIXEL11 PIXEL12_C - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL20_1M } else { PIXEL20_2 } PIXEL21_C - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL22_1M } else { PIXEL22_2 } break; case 206: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_1M } else { PIXEL00_2 @@ -2116,7 +2116,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL10_C PIXEL11 PIXEL12_1 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL20_1M } else { PIXEL20_2 @@ -2132,7 +2132,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL10_C PIXEL11 PIXEL12_1 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL20_1M } else { PIXEL20_2 @@ -2142,7 +2142,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 174: case 46: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_1M } else { PIXEL00_2 @@ -2160,7 +2160,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, case 147: PIXEL00_1L PIXEL01_C - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL02_1M } else { PIXEL02_2 @@ -2182,7 +2182,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL12_C PIXEL20_1L PIXEL21_C - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL22_1M } else { PIXEL22_2 @@ -2212,7 +2212,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 126: PIXEL00_1M - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_C PIXEL02_C PIXEL12_C @@ -2222,7 +2222,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL12_3 } PIXEL11 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_C PIXEL20_C PIXEL21_C @@ -2234,7 +2234,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL22_1M break; case 219: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C PIXEL01_C PIXEL10_C @@ -2246,7 +2246,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL02_1M PIXEL11 PIXEL20_1M - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL12_C PIXEL21_C PIXEL22_C @@ -2257,7 +2257,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, } break; case 125: - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL00_1U PIXEL10_C PIXEL20_C @@ -2275,7 +2275,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL22_1M break; case 221: - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL02_1U PIXEL12_C PIXEL21_C @@ -2293,7 +2293,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL20_1M break; case 207: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C PIXEL01_C PIXEL02_1R @@ -2311,7 +2311,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL22_1R break; case 238: - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_C PIXEL20_C PIXEL21_C @@ -2329,7 +2329,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL12_1 break; case 190: - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_C PIXEL02_C PIXEL12_C @@ -2347,7 +2347,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL21_1 break; case 187: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C PIXEL01_C PIXEL10_C @@ -2365,7 +2365,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL22_1D break; case 243: - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL12_C PIXEL20_1L PIXEL21_C @@ -2383,7 +2383,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL11 break; case 119: - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL00_1L PIXEL01_C PIXEL02_C @@ -2408,7 +2408,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL10_C PIXEL11 PIXEL12_1 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL20_C } else { PIXEL20_2 @@ -2418,7 +2418,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 175: case 47: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C } else { PIXEL00_2 @@ -2436,7 +2436,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, case 151: PIXEL00_1L PIXEL01_C - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL02_C } else { PIXEL02_2 @@ -2458,7 +2458,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL12_C PIXEL20_1L PIXEL21_C - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL22_C } else { PIXEL22_2 @@ -2469,7 +2469,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL01_C PIXEL02_1M PIXEL11 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_C PIXEL20_C } else { @@ -2477,7 +2477,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL20_4 } PIXEL21_C - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL12_C PIXEL22_C } else { @@ -2486,7 +2486,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, } break; case 123: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C PIXEL01_C } else { @@ -2497,7 +2497,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL10_C PIXEL11 PIXEL12_C - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL20_C PIXEL21_C } else { @@ -2507,7 +2507,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL22_1M break; case 95: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C PIXEL10_C } else { @@ -2515,7 +2515,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL10_3 } PIXEL01_C - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL02_C PIXEL12_C } else { @@ -2529,7 +2529,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 222: PIXEL00_1M - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_C PIXEL02_C } else { @@ -2540,7 +2540,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL11 PIXEL12_C PIXEL20_1M - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL21_C PIXEL22_C } else { @@ -2554,7 +2554,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL02_1U PIXEL11 PIXEL12_C - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_C PIXEL20_C } else { @@ -2562,7 +2562,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL20_4 } PIXEL21_C - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL22_C } else { PIXEL22_2 @@ -2574,13 +2574,13 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL02_1M PIXEL10_C PIXEL11 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL20_C } else { PIXEL20_2 } PIXEL21_C - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL12_C PIXEL22_C } else { @@ -2589,7 +2589,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, } break; case 235: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C PIXEL01_C } else { @@ -2600,7 +2600,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL10_C PIXEL11 PIXEL12_1 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL20_C } else { PIXEL20_2 @@ -2609,7 +2609,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL22_1R break; case 111: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C } else { PIXEL00_2 @@ -2619,7 +2619,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL10_C PIXEL11 PIXEL12_1 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL20_C PIXEL21_C } else { @@ -2629,13 +2629,13 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL22_1M break; case 63: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C } else { PIXEL00_2 } PIXEL01_C - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL02_C PIXEL12_C } else { @@ -2649,7 +2649,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL22_1M break; case 159: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C PIXEL10_C } else { @@ -2657,7 +2657,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL10_3 } PIXEL01_C - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL02_C } else { PIXEL02_2 @@ -2671,7 +2671,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, case 215: PIXEL00_1L PIXEL01_C - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL02_C } else { PIXEL02_2 @@ -2680,7 +2680,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL11 PIXEL12_C PIXEL20_1M - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL21_C PIXEL22_C } else { @@ -2690,7 +2690,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 246: PIXEL00_1M - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_C PIXEL02_C } else { @@ -2702,7 +2702,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL12_C PIXEL20_1L PIXEL21_C - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL22_C } else { PIXEL22_2 @@ -2710,7 +2710,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, break; case 254: PIXEL00_1M - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_C PIXEL02_C } else { @@ -2718,14 +2718,14 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL02_4 } PIXEL11 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_C PIXEL20_C } else { PIXEL10_3 PIXEL20_4 } - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL12_C PIXEL21_C PIXEL22_C @@ -2742,20 +2742,20 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL10_C PIXEL11 PIXEL12_C - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL20_C } else { PIXEL20_2 } PIXEL21_C - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL22_C } else { PIXEL22_2 } break; case 251: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C PIXEL01_C } else { @@ -2764,7 +2764,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, } PIXEL02_1M PIXEL11 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL10_C PIXEL20_C PIXEL21_C @@ -2773,7 +2773,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL20_2 PIXEL21_3 } - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL12_C PIXEL22_C } else { @@ -2782,7 +2782,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, } break; case 239: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C } else { PIXEL00_2 @@ -2792,7 +2792,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL10_C PIXEL11 PIXEL12_1 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL20_C } else { PIXEL20_2 @@ -2801,7 +2801,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL22_1R break; case 127: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C PIXEL01_C PIXEL10_C @@ -2810,7 +2810,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL01_3 PIXEL10_3 } - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL02_C PIXEL12_C } else { @@ -2818,7 +2818,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL12_3 } PIXEL11 - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL20_C PIXEL21_C } else { @@ -2828,13 +2828,13 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL22_1M break; case 191: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C } else { PIXEL00_2 } PIXEL01_C - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL02_C } else { PIXEL02_2 @@ -2847,14 +2847,14 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL22_1D break; case 223: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C PIXEL10_C } else { PIXEL00_4 PIXEL10_3 } - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL01_C PIXEL02_C PIXEL12_C @@ -2865,7 +2865,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, } PIXEL11 PIXEL20_1M - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL21_C PIXEL22_C } else { @@ -2876,7 +2876,7 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, case 247: PIXEL00_1L PIXEL01_C - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL02_C } else { PIXEL02_2 @@ -2886,20 +2886,20 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL12_C PIXEL20_1L PIXEL21_C - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL22_C } else { PIXEL22_2 } break; case 255: - if (diffYUV(yuv[4], yuv[2])) { + if (diffYUV(YUV(4), YUV(2))) { PIXEL00_C } else { PIXEL00_2 } PIXEL01_C - if (diffYUV(yuv[2], yuv[6])) { + if (diffYUV(YUV(2), YUV(6))) { PIXEL02_C } else { PIXEL02_2 @@ -2907,13 +2907,13 @@ void HQ3x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, PIXEL10_C PIXEL11 PIXEL12_C - if (diffYUV(yuv[8], yuv[4])) { + if (diffYUV(YUV(8), YUV(4))) { PIXEL20_C } else { PIXEL20_2 } PIXEL21_C - if (diffYUV(yuv[6], yuv[8])) { + if (diffYUV(YUV(6), YUV(8))) { PIXEL22_C } else { PIXEL22_2 diff --git a/common/scaler/intern.h b/common/scaler/intern.h index e65e6f311a..02773bca93 100644 --- a/common/scaler/intern.h +++ b/common/scaler/intern.h @@ -95,11 +95,28 @@ static inline bool diffYUV(int yuv1, int yuv2) { static const int trY = 0x00300000; static const int trU = 0x00000700; static const int trV = 0x00000006; - + + int diff; + + diff = ((yuv1 & Ymask) - (yuv2 & Ymask)); + if (diff < 0) diff = - diff; + if (diff > trY) return true; + + diff = ((yuv1 & Umask) - (yuv2 & Umask)); + if (diff < 0) diff = - diff; + if (diff > trU) return true; + + diff = ((yuv1 & Vmask) - (yuv2 & Vmask)); + if (diff < 0) diff = - diff; + if (diff > trV) return true; + + return false; +/* return ( ( ABS((yuv1 & Ymask) - (yuv2 & Ymask)) > trY ) || ( ABS((yuv1 & Umask) - (yuv2 & Umask)) > trU ) || ( ABS((yuv1 & Vmask) - (yuv2 & Vmask)) > trV ) ); +*/ } /** |