summaryrefslogtreecommitdiffstats
path: root/tests/RenderScriptTests
diff options
context:
space:
mode:
authorJason Sams <jsams@google.com>2012-12-11 14:27:51 -0800
committerJason Sams <jsams@google.com>2012-12-11 14:28:21 -0800
commitf914db7c42108de15c75e6e7a4396b440549b2ca (patch)
treee0801483c438b1efdb630b13bed8c6b6fd941940 /tests/RenderScriptTests
parent7da613fd5db532f47a9d8ffa9269d8d53b3b2ad5 (diff)
downloadframeworks_base-f914db7c42108de15c75e6e7a4396b440549b2ca.zip
frameworks_base-f914db7c42108de15c75e6e7a4396b440549b2ca.tar.gz
frameworks_base-f914db7c42108de15c75e6e7a4396b440549b2ca.tar.bz2
Minor cleanup of a few RS filter ports.
on Manta these reduce the times from Contrast: 180ms to 21ms Exposure: 177ms to 19ms Change-Id: I1224ecaeaee22dc49069383e2f000a193c331b4c
Diffstat (limited to 'tests/RenderScriptTests')
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Contrast.java2
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Exposure.java2
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/bwfilter.rs2
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/contrast.rs31
-rw-r--r--tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/exposure.rs22
5 files changed, 25 insertions, 34 deletions
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Contrast.java b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Contrast.java
index 80e0f1a..f3cf1b7 100644
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Contrast.java
+++ b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Contrast.java
@@ -28,7 +28,7 @@ public class Contrast extends TestBase {
}
public void runTest() {
- mScript.set_bright(50.f);
+ mScript.invoke_setBright(50.f);
mScript.forEach_contrast(mInPixelsAllocation, mOutPixelsAllocation);
}
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Exposure.java b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Exposure.java
index 6aad4be..bec53ab 100644
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Exposure.java
+++ b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Exposure.java
@@ -28,7 +28,7 @@ public class Exposure extends TestBase {
}
public void runTest() {
- mScript.set_bright(50.f);
+ mScript.invoke_setBright(50.f);
mScript.forEach_exposure(mInPixelsAllocation, mOutPixelsAllocation);
}
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/bwfilter.rs b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/bwfilter.rs
index 80a626a..2818bf5 100644
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/bwfilter.rs
+++ b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/bwfilter.rs
@@ -48,6 +48,6 @@ void bwFilterKernel(const uchar4 *in, uchar4 *out) {
localMin = fmin(r,localMin);
localMax = fmax(g,b);
localMax = fmax(r,localMax);
- avg =(localMin+localMax)/2;
+ avg = (localMin+localMax) * 0.5f;
out->r = out->g = out->b = rsClamp(avg, 0, 255);
}
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/contrast.rs b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/contrast.rs
index 987315e..5fd7be1 100644
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/contrast.rs
+++ b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/contrast.rs
@@ -16,27 +16,24 @@
#pragma version(1)
#pragma rs java_package_name(com.android.rs.image)
-#pragma rs_fp_relaxed
+#pragma rs_fp_full
-float bright = 0.f;
+static float brightM = 0.f;
+static float brightC = 0.f;
-static unsigned char contrastClamp(int c)
-{
- int N = 255;
- c &= ~(c >> 31);
- c -= N;
- c &= (c >> 31);
- c += N;
- return (unsigned char) c;
+void setBright(float v) {
+ brightM = pow(2.f, v / 100.f);
+ brightC = 127.f - brightM * 127.f;
}
void contrast(const uchar4 *in, uchar4 *out)
{
- float m = (float)pow(2, bright/100.f);
- float c = 127-m*127;
-
- out->r = contrastClamp((int)(m*in->r+c));
- out->g = contrastClamp((int)(m*in->g+c));
- out->b = contrastClamp((int)(m*in->b+c));
-
+#if 0
+ out->r = rsClamp((int)(brightM * in->r + brightC), 0, 255);
+ out->g = rsClamp((int)(brightM * in->g + brightC), 0, 255);
+ out->b = rsClamp((int)(brightM * in->b + brightC), 0, 255);
+#else
+ float3 v = convert_float3(in->rgb) * brightM + brightC;
+ out->rgb = convert_uchar3(clamp(v, 0.f, 255.f));
+#endif
}
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/exposure.rs b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/exposure.rs
index d15fd87..adfae4a 100644
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/exposure.rs
+++ b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/exposure.rs
@@ -16,24 +16,18 @@
#pragma version(1)
#pragma rs java_package_name(com.android.rs.image)
-#pragma rs_fp_relaxed
+#pragma rs_fp_full
-float bright = 0.f;
+static float bright = 0.f;
-static unsigned char contrastClamp(int c)
-{
- int N = 255;
- c &= ~(c >> 31);
- c -= N;
- c &= (c >> 31);
- c += N;
- return (unsigned char) c;
+void setBright(float v) {
+ bright = 255.f / (255.f - v);
}
void exposure(const uchar4 *in, uchar4 *out)
{
- int m = 255 - bright;
- out->r = contrastClamp((255 * in->r)/m);
- out->g = contrastClamp((255 * in->g)/m);
- out->b = contrastClamp((255 * in->b)/m);
+ out->r = rsClamp((int)(bright * in->r), 0, 255);
+ out->g = rsClamp((int)(bright * in->g), 0, 255);
+ out->b = rsClamp((int)(bright * in->b), 0, 255);
}
+