@@ -63,6 +63,17 @@ namespace lsc {
} /* namespace lsc */
#ifndef __DOXYGEN__
+template<>
+void Interpolator<lsc::Components<uint8_t>>::
+ interpolate(const lsc::Components<uint8_t> &a,
+ const lsc::Components<uint8_t> &b,
+ lsc::Components<uint8_t> &dest,
+ double lambda)
+{
+ for (auto const &[k, v] : a)
+ interpolateVector(v, b.at(k), dest[k], lambda);
+}
+
template<>
void Interpolator<lsc::Components<uint16_t>>::
interpolate(const lsc::Components<uint16_t> &a,
@@ -49,6 +49,13 @@ void interpolateVector(const std::vector<T> &a, const std::vector<T> &b,
dest[i] = a[i] * (1.0 - lambda) + b[i] * lambda;
}
+template<>
+void Interpolator<lsc::Components<uint8_t>>::
+ interpolate(const lsc::Components<uint8_t> &a,
+ const lsc::Components<uint8_t> &b,
+ lsc::Components<uint8_t> &dest,
+ double lambda);
+
template<>
void Interpolator<lsc::Components<uint16_t>>::
interpolate(const lsc::Components<uint16_t> &a,
The Mali-C55 LSC algorithm uses 8-bit gain values. Specialize Interpolator<lsc::Components>> for uint8_t to prevent the uint16_t specialization from being selected. Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> --- src/ipa/libipa/lsc_base.cpp | 11 +++++++++++ src/ipa/libipa/lsc_base.h | 7 +++++++ 2 files changed, 18 insertions(+)