[v2,12/15] ipa: rkisp1: lsc: Pass crop rectangle as parameter
diff mbox series

Message ID 20260108-sklug-lsc-resampling-v2-dev-v2-12-e682ec4b9893@ideasonboard.com
State New
Headers show
Series
  • Add resampling support for polynomial LSC data
Related show

Commit Message

Stefan Klug Jan. 8, 2026, 4:05 p.m. UTC
In preparation for the upcoming rework, pass the crop rectangle as
parameter to samplePolynomial(). This patch contains no functional
change.

Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>
Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>
Reviewed-by: Rui Wang <rui.wang@ideasonboard.com>

---

Changes in v2:
- Collected tags
---
 src/ipa/rkisp1/algorithms/lsc.cpp | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

Patch
diff mbox series

diff --git a/src/ipa/rkisp1/algorithms/lsc.cpp b/src/ipa/rkisp1/algorithms/lsc.cpp
index 7505307bfbaa02710b36b47d00d88a582886c1c0..a5855f8a0a67a6b5ad95635454f3716d07c86e6f 100644
--- a/src/ipa/rkisp1/algorithms/lsc.cpp
+++ b/src/ipa/rkisp1/algorithms/lsc.cpp
@@ -93,7 +93,8 @@  private:
 	std::vector<double> sizesListToPositions(const std::vector<double> &sizes);
 	std::vector<uint16_t> samplePolynomial(const LscPolynomial &poly,
 					       Span<const double> xPositions,
-					       Span<const double> yPositions);
+					       Span<const double> yPositions,
+					       const Rectangle &cropRectangle);
 
 	Size sensorSize_;
 	Rectangle cropRectangle_;
@@ -136,10 +137,10 @@  int LscPolynomialLoader::parseLscData(const YamlObject &yamlSets,
 
 		std::vector<double> xPos = sizesListToPositions(xSizes_);
 		std::vector<double> yPos = sizesListToPositions(ySizes_);
-		set.r = samplePolynomial(*pr, xPos, yPos);
-		set.gr = samplePolynomial(*pgr, xPos, yPos);
-		set.gb = samplePolynomial(*pgb, xPos, yPos);
-		set.b = samplePolynomial(*pb, xPos, yPos);
+		set.r = samplePolynomial(*pr, xPos, yPos, cropRectangle_);
+		set.gr = samplePolynomial(*pgr, xPos, yPos, cropRectangle_);
+		set.gb = samplePolynomial(*pgb, xPos, yPos, cropRectangle_);
+		set.b = samplePolynomial(*pb, xPos, yPos, cropRectangle_);
 	}
 
 	if (lscData.empty()) {
@@ -178,13 +179,14 @@  std::vector<double> LscPolynomialLoader::sizesListToPositions(const std::vector<
 
 std::vector<uint16_t> LscPolynomialLoader::samplePolynomial(const LscPolynomial &poly,
 							    Span<const double> xPositions,
-							    Span<const double> yPositions)
+							    Span<const double> yPositions,
+							    const Rectangle &cropRectangle)
 {
 	double m = poly.getM();
-	double x0 = cropRectangle_.x / m;
-	double y0 = cropRectangle_.y / m;
-	double w = cropRectangle_.width / m;
-	double h = cropRectangle_.height / m;
+	double x0 = cropRectangle.x / m;
+	double y0 = cropRectangle.y / m;
+	double w = cropRectangle.width / m;
+	double h = cropRectangle.height / m;
 	std::vector<uint16_t> samples;
 
 	samples.reserve(xPositions.size() * yPositions.size());