summaryrefslogtreecommitdiffstats
path: root/tests/RenderScriptTests/ImageProcessing2/src/com/android/rs/image/ImageProcessingActivity2.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/RenderScriptTests/ImageProcessing2/src/com/android/rs/image/ImageProcessingActivity2.java')
-rw-r--r--tests/RenderScriptTests/ImageProcessing2/src/com/android/rs/image/ImageProcessingActivity2.java470
1 files changed, 0 insertions, 470 deletions
diff --git a/tests/RenderScriptTests/ImageProcessing2/src/com/android/rs/image/ImageProcessingActivity2.java b/tests/RenderScriptTests/ImageProcessing2/src/com/android/rs/image/ImageProcessingActivity2.java
deleted file mode 100644
index 4b0e2dd..0000000
--- a/tests/RenderScriptTests/ImageProcessing2/src/com/android/rs/image/ImageProcessingActivity2.java
+++ /dev/null
@@ -1,470 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.rs.image2;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.graphics.BitmapFactory;
-import android.graphics.Bitmap;
-import android.graphics.Canvas;
-import android.support.v8.renderscript.*;
-import android.view.SurfaceView;
-import android.view.SurfaceHolder;
-import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
-import android.widget.ImageView;
-import android.widget.SeekBar;
-import android.widget.Spinner;
-import android.widget.TextView;
-import android.view.View;
-import android.util.Log;
-import java.lang.Math;
-
-import android.os.Environment;
-import android.app.Instrumentation;
-import android.content.Context;
-import android.content.Intent;
-import android.net.Uri;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-
-public class ImageProcessingActivity2 extends Activity
- implements SeekBar.OnSeekBarChangeListener {
- private final String TAG = "Img";
- public final String RESULT_FILE = "image_processing_result.csv";
-
- RenderScript mRS;
- Allocation mInPixelsAllocation;
- Allocation mInPixelsAllocation2;
- Allocation mOutPixelsAllocation;
-
- /**
- * Define enum type for test names
- */
- public enum TestName {
- // totally there are 38 test cases
- LEVELS_VEC3_RELAXED ("Levels Vec3 Relaxed"),
- LEVELS_VEC4_RELAXED ("Levels Vec4 Relaxed"),
- LEVELS_VEC3_FULL ("Levels Vec3 Full"),
- LEVELS_VEC4_FULL ("Levels Vec4 Full"),
- BLUR_RADIUS_25 ("Blur radius 25"),
- INTRINSIC_BLUE_RADIUS_25 ("Intrinsic Blur radius 25"),
- GREYSCALE ("Greyscale"),
- GRAIN ("Grain"),
- FISHEYE_FULL ("Fisheye Full"),
- FISHEYE_RELAXED ("Fisheye Relaxed"),
- FISHEYE_APPROXIMATE_FULL ("Fisheye Approximate Full"),
- FISHEYE_APPROXIMATE_RELAXED ("Fisheye Approximate Relaxed"),
- VIGNETTE_FULL ("Vignette Full"),
- VIGNETTE_RELAXED ("Vignette Relaxed"),
- VIGNETTE_APPROXIMATE_FULL ("Vignette Approximate Full"),
- VIGNETTE_APPROXIMATE_RELAXED ("Vignette Approximate Relaxed"),
- GROUP_TEST_EMULATED ("Group Test (emulated)"),
- GROUP_TEST_NATIVE ("Group Test (native)"),
- CONVOLVE_3X3 ("Convolve 3x3"),
- INTRINSICS_CONVOLVE_3X3 ("Intrinsics Convolve 3x3"),
- COLOR_MATRIX ("ColorMatrix"),
- INTRINSICS_COLOR_MATRIX ("Intrinsics ColorMatrix"),
- INTRINSICS_COLOR_MATRIX_GREY ("Intrinsics ColorMatrix Grey"),
- COPY ("Copy"),
- CROSS_PROCESS_USING_LUT ("CrossProcess (using LUT)"),
- CONVOLVE_5X5 ("Convolve 5x5"),
- INTRINSICS_CONVOLVE_5X5 ("Intrinsics Convolve 5x5"),
- MANDELBROT ("Mandelbrot"),
- INTRINSICS_BLEND ("Intrinsics Blend"),
- INTRINSICS_BLUR_25G ("Intrinsics Blur 25 uchar"),
- VIBRANCE ("Vibrance"),
- BW_FILTER ("BW Filter"),
- SHADOWS ("Shadows"),
- CONTRAST ("Contrast"),
- EXPOSURE ("Exposure"),
- WHITE_BALANCE ("White Balance"),
- COLOR_CUBE ("Color Cube"),
- COLOR_CUBE_3D_INTRINSIC ("Color Cube (3D LUT intrinsic)");
-
-
- private final String name;
-
- private TestName(String s) {
- name = s;
- }
-
- // return quoted string as displayed test name
- public String toString() {
- return name;
- }
- }
-
- Bitmap mBitmapIn;
- Bitmap mBitmapIn2;
- Bitmap mBitmapOut;
-
- private Spinner mSpinner;
- private SeekBar mBar1;
- private SeekBar mBar2;
- private SeekBar mBar3;
- private SeekBar mBar4;
- private SeekBar mBar5;
- private TextView mText1;
- private TextView mText2;
- private TextView mText3;
- private TextView mText4;
- private TextView mText5;
-
- private float mSaturation = 1.0f;
-
- private TextView mBenchmarkResult;
- private Spinner mTestSpinner;
-
- private SurfaceView mSurfaceView;
- private ImageView mDisplayView;
-
- private boolean mDoingBenchmark;
-
- private TestBase mTest;
- private int mRunCount;
-
- public void updateDisplay() {
- mTest.updateBitmap(mBitmapOut);
- mDisplayView.invalidate();
- }
-
- public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
- if (fromUser) {
-
- if (seekBar == mBar1) {
- mTest.onBar1Changed(progress);
- } else if (seekBar == mBar2) {
- mTest.onBar2Changed(progress);
- } else if (seekBar == mBar3) {
- mTest.onBar3Changed(progress);
- } else if (seekBar == mBar4) {
- mTest.onBar4Changed(progress);
- } else if (seekBar == mBar5) {
- mTest.onBar5Changed(progress);
- }
-
- mTest.runTest();
- updateDisplay();
- }
- }
-
- public void onStartTrackingTouch(SeekBar seekBar) {
- }
-
- public void onStopTrackingTouch(SeekBar seekBar) {
- }
-
- void setupBars() {
- mSpinner.setVisibility(View.VISIBLE);
- mTest.onSpinner1Setup(mSpinner);
-
- mBar1.setVisibility(View.VISIBLE);
- mText1.setVisibility(View.VISIBLE);
- mTest.onBar1Setup(mBar1, mText1);
-
- mBar2.setVisibility(View.VISIBLE);
- mText2.setVisibility(View.VISIBLE);
- mTest.onBar2Setup(mBar2, mText2);
-
- mBar3.setVisibility(View.VISIBLE);
- mText3.setVisibility(View.VISIBLE);
- mTest.onBar3Setup(mBar3, mText3);
-
- mBar4.setVisibility(View.VISIBLE);
- mText4.setVisibility(View.VISIBLE);
- mTest.onBar4Setup(mBar4, mText4);
-
- mBar5.setVisibility(View.VISIBLE);
- mText5.setVisibility(View.VISIBLE);
- mTest.onBar5Setup(mBar5, mText5);
- }
-
-
- void changeTest(TestName testName) {
- if (mTest != null) {
- mTest.destroy();
- }
- switch(testName) {
- case LEVELS_VEC3_RELAXED:
- mTest = new LevelsV4(false, false);
- break;
- case LEVELS_VEC4_RELAXED:
- mTest = new LevelsV4(false, true);
- break;
- case LEVELS_VEC3_FULL:
- mTest = new LevelsV4(true, false);
- break;
- case LEVELS_VEC4_FULL:
- mTest = new LevelsV4(true, true);
- break;
- case BLUR_RADIUS_25:
- mTest = new Blur25(false);
- break;
- case INTRINSIC_BLUE_RADIUS_25:
- mTest = new Blur25(true);
- break;
- case GREYSCALE:
- mTest = new Greyscale();
- break;
- case GRAIN:
- mTest = new Grain();
- break;
- case FISHEYE_FULL:
- mTest = new Fisheye(false, false);
- break;
- case FISHEYE_RELAXED:
- mTest = new Fisheye(false, true);
- break;
- case FISHEYE_APPROXIMATE_FULL:
- mTest = new Fisheye(true, false);
- break;
- case FISHEYE_APPROXIMATE_RELAXED:
- mTest = new Fisheye(true, true);
- break;
- case VIGNETTE_FULL:
- mTest = new Vignette(false, false);
- break;
- case VIGNETTE_RELAXED:
- mTest = new Vignette(false, true);
- break;
- case VIGNETTE_APPROXIMATE_FULL:
- mTest = new Vignette(true, false);
- break;
- case VIGNETTE_APPROXIMATE_RELAXED:
- mTest = new Vignette(true, true);
- break;
- case GROUP_TEST_EMULATED:
- mTest = new GroupTest(false);
- break;
- case GROUP_TEST_NATIVE:
- mTest = new GroupTest(true);
- break;
- case CONVOLVE_3X3:
- mTest = new Convolve3x3(false);
- break;
- case INTRINSICS_CONVOLVE_3X3:
- mTest = new Convolve3x3(true);
- break;
- case COLOR_MATRIX:
- mTest = new ColorMatrix(false, false);
- break;
- case INTRINSICS_COLOR_MATRIX:
- mTest = new ColorMatrix(true, false);
- break;
- case INTRINSICS_COLOR_MATRIX_GREY:
- mTest = new ColorMatrix(true, true);
- break;
- case COPY:
- mTest = new Copy();
- break;
- case CROSS_PROCESS_USING_LUT:
- mTest = new CrossProcess();
- break;
- case CONVOLVE_5X5:
- mTest = new Convolve5x5(false);
- break;
- case INTRINSICS_CONVOLVE_5X5:
- mTest = new Convolve5x5(true);
- break;
- case MANDELBROT:
- mTest = new Mandelbrot();
- break;
- case INTRINSICS_BLEND:
- mTest = new Blend();
- break;
- case INTRINSICS_BLUR_25G:
- mTest = new Blur25G();
- break;
- case VIBRANCE:
- mTest = new Vibrance();
- break;
- case BW_FILTER:
- mTest = new BWFilter();
- break;
- case SHADOWS:
- mTest = new Shadows();
- break;
- case CONTRAST:
- mTest = new Contrast();
- break;
- case EXPOSURE:
- mTest = new Exposure();
- break;
- case WHITE_BALANCE:
- mTest = new WhiteBalance();
- break;
- case COLOR_CUBE:
- mTest = new ColorCube(false);
- break;
- case COLOR_CUBE_3D_INTRINSIC:
- mTest = new ColorCube(true);
- break;
- }
-
- mTest.createBaseTest(this, mBitmapIn, mBitmapIn2, mBitmapOut);
- setupBars();
-
- mTest.runTest();
- updateDisplay();
- mBenchmarkResult.setText("Result: not run");
- }
-
- void setupTests() {
- mTestSpinner.setAdapter(new ArrayAdapter<TestName>(
- this, R.layout.spinner_layout, TestName.values()));
- }
-
- private AdapterView.OnItemSelectedListener mTestSpinnerListener =
- new AdapterView.OnItemSelectedListener() {
- public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
- changeTest(TestName.values()[pos]);
- }
-
- public void onNothingSelected(AdapterView parent) {
-
- }
- };
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
-
- mBitmapIn = loadBitmap(R.drawable.img1600x1067);
- mBitmapIn2 = loadBitmap(R.drawable.img1600x1067b);
- mBitmapOut = Bitmap.createBitmap(mBitmapIn.getWidth(), mBitmapIn.getHeight(),
- mBitmapIn.getConfig());
-
- mSurfaceView = (SurfaceView) findViewById(R.id.surface);
-
- mDisplayView = (ImageView) findViewById(R.id.display);
- mDisplayView.setImageBitmap(mBitmapOut);
-
- mSpinner = (Spinner) findViewById(R.id.spinner1);
-
- mBar1 = (SeekBar) findViewById(R.id.slider1);
- mBar2 = (SeekBar) findViewById(R.id.slider2);
- mBar3 = (SeekBar) findViewById(R.id.slider3);
- mBar4 = (SeekBar) findViewById(R.id.slider4);
- mBar5 = (SeekBar) findViewById(R.id.slider5);
-
- mBar1.setOnSeekBarChangeListener(this);
- mBar2.setOnSeekBarChangeListener(this);
- mBar3.setOnSeekBarChangeListener(this);
- mBar4.setOnSeekBarChangeListener(this);
- mBar5.setOnSeekBarChangeListener(this);
-
- mText1 = (TextView) findViewById(R.id.slider1Text);
- mText2 = (TextView) findViewById(R.id.slider2Text);
- mText3 = (TextView) findViewById(R.id.slider3Text);
- mText4 = (TextView) findViewById(R.id.slider4Text);
- mText5 = (TextView) findViewById(R.id.slider5Text);
-
- mTestSpinner = (Spinner) findViewById(R.id.filterselection);
- mTestSpinner.setOnItemSelectedListener(mTestSpinnerListener);
-
- mBenchmarkResult = (TextView) findViewById(R.id.benchmarkText);
- mBenchmarkResult.setText("Result: not run");
-
-
- mRS = RenderScript.create(this);
- mInPixelsAllocation = Allocation.createFromBitmap(mRS, mBitmapIn);
- mInPixelsAllocation2 = Allocation.createFromBitmap(mRS, mBitmapIn2);
- mOutPixelsAllocation = Allocation.createFromBitmap(mRS, mBitmapOut);
-
-
- setupTests();
- changeTest(TestName.LEVELS_VEC3_RELAXED);
- }
-
-
- private Bitmap loadBitmap(int resource) {
- final BitmapFactory.Options options = new BitmapFactory.Options();
- options.inPreferredConfig = Bitmap.Config.ARGB_8888;
- return BitmapFactory.decodeResource(getResources(), resource, options);
- }
-
- // button hook
- public void benchmark(View v) {
- float t = getBenchmark();
- //long javaTime = javaFilter();
- //mBenchmarkResult.setText("RS: " + t + " ms Java: " + javaTime + " ms");
- mBenchmarkResult.setText("Result: " + t + " ms");
- Log.v(TAG, "getBenchmark: Renderscript frame time core ms " + t);
- }
-
- public void benchmark_all(View v) {
- // write result into a file
- File externalStorage = Environment.getExternalStorageDirectory();
- if (!externalStorage.canWrite()) {
- Log.v(TAG, "sdcard is not writable");
- return;
- }
- File resultFile = new File(externalStorage, RESULT_FILE);
- //resultFile.setWritable(true, false);
- try {
- BufferedWriter rsWriter = new BufferedWriter(new FileWriter(resultFile));
- Log.v(TAG, "Saved results in: " + resultFile.getAbsolutePath());
- for (TestName tn: TestName.values()) {
- changeTest(tn);
- float t = getBenchmark();
- String s = new String("" + tn.toString() + ", " + t);
- rsWriter.write(s + "\n");
- Log.v(TAG, "Test " + s + "ms\n");
- }
- rsWriter.close();
- } catch (IOException e) {
- Log.v(TAG, "Unable to write result file " + e.getMessage());
- }
- changeTest(TestName.LEVELS_VEC3_RELAXED);
- }
-
- // For benchmark test
- public float getBenchmark() {
- mDoingBenchmark = true;
-
- mTest.setupBenchmark();
- long result = 0;
-
- //Log.v(TAG, "Warming");
- long t = java.lang.System.currentTimeMillis() + 250;
- do {
- mTest.runTest();
- mTest.finish();
- } while (t > java.lang.System.currentTimeMillis());
-
- //Log.v(TAG, "Benchmarking");
- int ct = 0;
- t = java.lang.System.currentTimeMillis();
- do {
- mTest.runTest();
- mTest.finish();
- ct++;
- } while ((t+1000) > java.lang.System.currentTimeMillis());
- t = java.lang.System.currentTimeMillis() - t;
- float ft = (float)t;
- ft /= ct;
-
- mTest.exitBenchmark();
- mDoingBenchmark = false;
-
- return ft;
- }
-}