summaryrefslogtreecommitdiff
path: root/libswscale
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-05-12 22:01:18 +0200
committerMichael Niedermayer <michaelni@gmx.at>2013-05-12 22:01:18 +0200
commit145e644aeed44ed22bcb37afe9209d2d42b60e00 (patch)
treeff746aec8fc6a9379e0f7c011482ce769a7bd6d3 /libswscale
parente1746d057b2238c6d954cd7082c50cf956fcfe9d (diff)
sws/output: remove offset/coef for alpha in rgba64
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libswscale')
-rw-r--r--libswscale/output.c38
1 files changed, 10 insertions, 28 deletions
diff --git a/libswscale/output.c b/libswscale/output.c
index c82b04bedf..37219a6932 100644
--- a/libswscale/output.c
+++ b/libswscale/output.c
@@ -707,16 +707,10 @@ yuv2rgba64_X_c_template(SwsContext *c, const int16_t *lumFilter,
A1 += alpSrc[j][i * 2] * (unsigned)lumFilter[j];
A2 += alpSrc[j][i * 2 + 1] * (unsigned)lumFilter[j];
}
- A1 >>= 14; // 10
- A1 += 0x10000;
- A2 >>= 14;
- A2 += 0x10000;
- A1 -= c->yuv2rgb_y_offset;
- A2 -= c->yuv2rgb_y_offset;
- A1 *= c->yuv2rgb_y_coeff;
- A2 *= c->yuv2rgb_y_coeff;
- A1 += 1 << 13; // 21
- A2 += 1 << 13;
+ A1 >>= 1;
+ A1 += 0x20002000;
+ A2 >>= 1;
+ A2 += 0x20002000;
}
// 8bit: 12+15=27; 16-bit: 12+19=31
@@ -789,13 +783,9 @@ yuv2rgba64_2_c_template(SwsContext *c, const int32_t *buf[2],
B = U * c->yuv2rgb_u2b_coeff;
if (hasAlpha) {
- A1 = (abuf0[i * 2 ] * yalpha1 + abuf1[i * 2 ] * yalpha) >> 14;
- A2 = (abuf0[i * 2 + 1] * yalpha1 + abuf1[i * 2 + 1] * yalpha) >> 14;
+ A1 = (abuf0[i * 2 ] * yalpha1 + abuf1[i * 2 ] * yalpha) >> 1;
+ A2 = (abuf0[i * 2 + 1] * yalpha1 + abuf1[i * 2 + 1] * yalpha) >> 1;
- A1 -= c->yuv2rgb_y_offset;
- A2 -= c->yuv2rgb_y_offset;
- A1 *= c->yuv2rgb_y_coeff;
- A2 *= c->yuv2rgb_y_coeff;
A1 += 1 << 13;
A2 += 1 << 13;
}
@@ -838,13 +828,9 @@ yuv2rgba64_1_c_template(SwsContext *c, const int32_t *buf0,
Y2 += 1 << 13;
if (hasAlpha) {
- A1 = abuf0[i * 2 ] >> 2;
- A2 = abuf0[i * 2 + 1] >> 2;
+ A1 = abuf0[i * 2 ] << 11;
+ A2 = abuf0[i * 2 + 1] << 11;
- A1 -= c->yuv2rgb_y_offset;
- A2 -= c->yuv2rgb_y_offset;
- A1 *= c->yuv2rgb_y_coeff;
- A2 *= c->yuv2rgb_y_coeff;
A1 += 1 << 13;
A2 += 1 << 13;
}
@@ -881,13 +867,9 @@ yuv2rgba64_1_c_template(SwsContext *c, const int32_t *buf0,
Y2 += 1 << 13;
if (hasAlpha) {
- A1 = abuf0[i * 2 ] >> 2;
- A2 = abuf0[i * 2 + 1] >> 2;
+ A1 = abuf0[i * 2 ] << 11;
+ A2 = abuf0[i * 2 + 1] << 11;
- A1 -= c->yuv2rgb_y_offset;
- A2 -= c->yuv2rgb_y_offset;
- A1 *= c->yuv2rgb_y_coeff;
- A2 *= c->yuv2rgb_y_coeff;
A1 += 1 << 13;
A2 += 1 << 13;
}