[babl] sse2-float: use same TRC for "leftover" samples
- From: N/A <ell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [babl] sse2-float: use same TRC for "leftover" samples
- Date: Sat, 13 Jan 2018 09:10:41 +0000 (UTC)
commit e721f297d1df25664aa6b28b83c085607fe6c1b0
Author: Ell <ell_se yahoo com>
Date: Sat Jan 13 04:02:24 2018 -0500
sse2-float: use same TRC for "leftover" samples
The SSE2 versions of the gamma <-> linear TRC functions can produce
slightly different results than the scalar ones. Consequently,
last commit didn't resolve all discrepancies between the main and
leftover samples (and didn't address the gamma -> linear
direction).
Use the same SSE2 TRC functions for converting the leftover
samples, rather than the scalar functions, to fix that.
extensions/sse2-float.c | 12 ++++++++----
1 files changed, 8 insertions(+), 4 deletions(-)
---
diff --git a/extensions/sse2-float.c b/extensions/sse2-float.c
index bb9f72e..800ac97 100644
--- a/extensions/sse2-float.c
+++ b/extensions/sse2-float.c
@@ -432,7 +432,8 @@ conv_yaF_linear_yaF_gamma (const Babl *conversion,const float *src, float *dst,
while (samples--)
{
- *dst++ = babl_linear_to_gamma_2_2f (*src++);
+ float y = *src++;
+ *dst++ = linear_to_gamma_2_2_sse2 (splat4f (y))[0];
*dst++ = *src++;
}
}
@@ -466,7 +467,8 @@ conv_yaF_gamma_yaF_linear (const Babl *conversion,const float *src, float *dst,
while (samples--)
{
- *dst++ = babl_gamma_2_2_to_linear (*src++);
+ float y = *src++;
+ *dst++ = gamma_2_2_to_linear_sse2 (splat4f (y))[0];
*dst++ = *src++;
}
}
@@ -503,7 +505,8 @@ conv_yF_linear_yF_gamma (const Babl *conversion,const float *src, float *dst, lo
while (samples--)
{
- *dst++ = babl_linear_to_gamma_2_2f (*src++);
+ float y = *src++;
+ *dst++ = linear_to_gamma_2_2_sse2 (splat4f (y))[0];
}
}
@@ -539,7 +542,8 @@ conv_yF_gamma_yF_linear (const Babl *conversion,const float *src, float *dst, lo
while (samples--)
{
- *dst++ = babl_gamma_2_2_to_linear (*src++);
+ float y = *src++;
+ *dst++ = gamma_2_2_to_linear_sse2 (splat4f (y))[0];
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]