summaryrefslogtreecommitdiff
path: root/test/ipa
diff options
context:
space:
mode:
authorDaniel Scally <dan.scally@ideasonboard.com>2024-11-15 12:25:30 +0000
committerDaniel Scally <dan.scally@ideasonboard.com>2024-12-17 22:35:58 +0000
commit3dd5725a84f5ac71c384431ffc4929962aeaf6b2 (patch)
tree562c6e6f3338091e5e588cd24fa38161d03e04e2 /test/ipa
parente4178d7943e16ffb18074a24e6c4fe0143f6c730 (diff)
libipa: Centralise Fixed / Floating point convertors
The rkisp1 IPA has some utility functions to convert between fixed and floating point numbers. Move those to libipa so they're available for use in other IPA modules too. Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'test/ipa')
-rw-r--r--test/ipa/libipa/fixedpoint.cpp (renamed from test/ipa/rkisp1/rkisp1-utils.cpp)16
-rw-r--r--test/ipa/libipa/meson.build1
-rw-r--r--test/ipa/meson.build1
-rw-r--r--test/ipa/rkisp1/meson.build15
4 files changed, 9 insertions, 24 deletions
diff --git a/test/ipa/rkisp1/rkisp1-utils.cpp b/test/ipa/libipa/fixedpoint.cpp
index b1863894..99eb662d 100644
--- a/test/ipa/rkisp1/rkisp1-utils.cpp
+++ b/test/ipa/libipa/fixedpoint.cpp
@@ -2,7 +2,7 @@
/*
* Copyright (C) 2024, Paul Elder <paul.elder@ideasonboard.com>
*
- * Miscellaneous utility tests
+ * Fixed / Floating point utility tests
*/
#include <cmath>
@@ -10,22 +10,22 @@
#include <map>
#include <stdint.h>
-#include "../src/ipa/rkisp1/utils.h"
+#include "../src/ipa/libipa/fixedpoint.h"
#include "test.h"
using namespace std;
using namespace libcamera;
-using namespace ipa::rkisp1;
+using namespace ipa;
-class RkISP1UtilsTest : public Test
+class FixedPointUtilsTest : public Test
{
protected:
/* R for real, I for integer */
template<unsigned int IntPrec, unsigned int FracPrec, typename I, typename R>
int testFixedToFloat(I input, R expected)
{
- R out = utils::fixedToFloatingPoint<IntPrec, FracPrec, R>(input);
+ R out = fixedToFloatingPoint<IntPrec, FracPrec, R>(input);
R prec = 1.0 / (1 << FracPrec);
if (std::abs(out - expected) > prec) {
cerr << "Reverse conversion expected " << input
@@ -40,7 +40,7 @@ protected:
template<unsigned int IntPrec, unsigned int FracPrec, typename T>
int testSingleFixedPoint(double input, T expected)
{
- T ret = utils::floatingToFixedPoint<IntPrec, FracPrec, T>(input);
+ T ret = floatingToFixedPoint<IntPrec, FracPrec, T>(input);
if (ret != expected) {
cerr << "Expected " << input << " to convert to "
<< expected << ", got " << ret << std::endl;
@@ -51,7 +51,7 @@ protected:
* The precision check is fairly arbitrary but is based on what
* the rkisp1 is capable of in the crosstalk module.
*/
- double f = utils::fixedToFloatingPoint<IntPrec, FracPrec, double>(ret);
+ double f = fixedToFloatingPoint<IntPrec, FracPrec, double>(ret);
if (std::abs(f - input) > 0.005) {
cerr << "Reverse conversion expected " << ret
<< " to convert to " << input
@@ -105,4 +105,4 @@ protected:
}
};
-TEST_REGISTER(RkISP1UtilsTest)
+TEST_REGISTER(FixedPointUtilsTest)
diff --git a/test/ipa/libipa/meson.build b/test/ipa/libipa/meson.build
index f9b3c46d..0f4155d2 100644
--- a/test/ipa/libipa/meson.build
+++ b/test/ipa/libipa/meson.build
@@ -1,6 +1,7 @@
# SPDX-License-Identifier: CC0-1.0
libipa_test = [
+ {'name': 'fixedpoint', 'sources': ['fixedpoint.cpp']},
{'name': 'interpolator', 'sources': ['interpolator.cpp']},
{'name': 'vector', 'sources': ['vector.cpp']},
]
diff --git a/test/ipa/meson.build b/test/ipa/meson.build
index 63820de5..ceed15ba 100644
--- a/test/ipa/meson.build
+++ b/test/ipa/meson.build
@@ -1,7 +1,6 @@
# SPDX-License-Identifier: CC0-1.0
subdir('libipa')
-subdir('rkisp1')
ipa_test = [
{'name': 'ipa_module_test', 'sources': ['ipa_module_test.cpp']},
diff --git a/test/ipa/rkisp1/meson.build b/test/ipa/rkisp1/meson.build
deleted file mode 100644
index 894523da..00000000
--- a/test/ipa/rkisp1/meson.build
+++ /dev/null
@@ -1,15 +0,0 @@
-# SPDX-License-Identifier: CC0-1.0
-
-rkisp1_ipa_test = [
- {'name': 'rkisp1-utils', 'sources': ['rkisp1-utils.cpp']},
-]
-
-foreach test : rkisp1_ipa_test
- exe = executable(test['name'], test['sources'],
- dependencies : [libcamera_private, libipa_dep],
- link_with : [test_libraries],
- include_directories : [test_includes_internal,
- '../../../src/ipa/rkisp1/'])
-
- test(test['name'], exe, suite : 'ipa')
-endforeach