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>
This commit is contained in:
@@ -2,18 +2,18 @@
|
||||
/*
|
||||
* Copyright (C) 2024, Paul Elder <paul.elder@ideasonboard.com>
|
||||
*
|
||||
* Miscellaneous utility functions specific to rkisp1
|
||||
* Fixed / floating point conversions
|
||||
*/
|
||||
|
||||
#include "utils.h"
|
||||
#include "fixedpoint.h"
|
||||
|
||||
/**
|
||||
* \file utils.h
|
||||
* \file fixedpoint.h
|
||||
*/
|
||||
|
||||
namespace libcamera {
|
||||
|
||||
namespace ipa::rkisp1::utils {
|
||||
namespace ipa {
|
||||
|
||||
/**
|
||||
* \fn R floatingToFixedPoint(T number)
|
||||
@@ -37,6 +37,6 @@ namespace ipa::rkisp1::utils {
|
||||
* \return The converted value
|
||||
*/
|
||||
|
||||
} /* namespace ipa::rkisp1::utils */
|
||||
} /* namespace ipa */
|
||||
|
||||
} /* namespace libcamera */
|
||||
@@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Copyright (C) 2024, Paul Elder <paul.elder@ideasonboard.com>
|
||||
*
|
||||
* Miscellaneous utility functions specific to rkisp1
|
||||
* Fixed / floating point conversions
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
namespace libcamera {
|
||||
|
||||
namespace ipa::rkisp1::utils {
|
||||
namespace ipa {
|
||||
|
||||
#ifndef __DOXYGEN__
|
||||
template<unsigned int I, unsigned int F, typename R, typename T,
|
||||
@@ -60,6 +60,6 @@ constexpr R fixedToFloatingPoint(T number)
|
||||
return static_cast<R>(t) / static_cast<R>(1 << F);
|
||||
}
|
||||
|
||||
} /* namespace ipa::rkisp1::utils */
|
||||
} /* namespace ipa */
|
||||
|
||||
} /* namespace libcamera */
|
||||
@@ -7,6 +7,7 @@ libipa_headers = files([
|
||||
'colours.h',
|
||||
'exposure_mode_helper.h',
|
||||
'fc_queue.h',
|
||||
'fixedpoint.h',
|
||||
'histogram.h',
|
||||
'interpolator.h',
|
||||
'lsc_polynomial.h',
|
||||
@@ -22,6 +23,7 @@ libipa_sources = files([
|
||||
'colours.cpp',
|
||||
'exposure_mode_helper.cpp',
|
||||
'fc_queue.cpp',
|
||||
'fixedpoint.cpp',
|
||||
'histogram.cpp',
|
||||
'interpolator.cpp',
|
||||
'lsc_polynomial.cpp',
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
#include "libcamera/internal/yaml_parser.h"
|
||||
|
||||
#include "../utils.h"
|
||||
#include "libipa/fixedpoint.h"
|
||||
#include "libipa/interpolator.h"
|
||||
|
||||
/**
|
||||
@@ -72,7 +72,7 @@ void Ccm::setParameters(struct rkisp1_cif_isp_ctk_config &config,
|
||||
for (unsigned int i = 0; i < 3; i++) {
|
||||
for (unsigned int j = 0; j < 3; j++)
|
||||
config.coeff[i][j] =
|
||||
utils::floatingToFixedPoint<4, 7, uint16_t, double>(matrix[i][j]);
|
||||
floatingToFixedPoint<4, 7, uint16_t, double>(matrix[i][j]);
|
||||
}
|
||||
|
||||
for (unsigned int i = 0; i < 3; i++)
|
||||
|
||||
@@ -9,7 +9,6 @@ rkisp1_ipa_sources = files([
|
||||
'ipa_context.cpp',
|
||||
'params.cpp',
|
||||
'rkisp1.cpp',
|
||||
'utils.cpp',
|
||||
])
|
||||
|
||||
rkisp1_ipa_sources += rkisp1_ipa_algorithms
|
||||
|
||||
Reference in New Issue
Block a user