summaryrefslogtreecommitdiff
path: root/src/ipa/raspberrypi/statistics.h
diff options
context:
space:
mode:
authorNaushir Patuck <naush@raspberrypi.com>2023-05-03 13:20:27 +0100
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2023-05-04 20:47:40 +0300
commit726e9274ea95fa46352556d340c5793a8da51fcd (patch)
tree80f6adcdbf744f9317e09eff3e80c602b384a753 /src/ipa/raspberrypi/statistics.h
parent46aefed208fef4bc8d6f6e8882b92b9af710a60b (diff)
pipeline: ipa: raspberrypi: Refactor and move the Raspberry Pi code
Split the Raspberry Pi pipeline handler and IPA source code into common and VC4/BCM2835 specific file structures. For the pipeline handler, the common code files now live in src/libcamera/pipeline/rpi/common/ and the VC4-specific files in src/libcamera/pipeline/rpi/vc4/. For the IPA, the common code files now live in src/ipa/rpi/{cam_helper,controller}/ and the vc4 specific files in src/ipa/rpi/vc4/. With this change, the camera tuning files are now installed under share/libcamera/ipa/rpi/vc4/. To build the pipeline and IPA, the meson configuration options have now changed from "raspberrypi" to "rpi/vc4": meson setup build -Dipas=rpi/vc4 -Dpipelines=rpi/vc4 Signed-off-by: Naushir Patuck <naush@raspberrypi.com> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/ipa/raspberrypi/statistics.h')
-rw-r--r--src/ipa/raspberrypi/statistics.h78
1 files changed, 0 insertions, 78 deletions
diff --git a/src/ipa/raspberrypi/statistics.h b/src/ipa/raspberrypi/statistics.h
deleted file mode 100644
index 015d4efc..00000000
--- a/src/ipa/raspberrypi/statistics.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* SPDX-License-Identifier: BSD-2-Clause */
-/*
- * Copyright (C) 2022, Raspberry Pi Ltd
- *
- * statistics.h - Raspberry Pi generic statistics structure
- */
-#pragma once
-
-#include <memory>
-#include <stdint.h>
-#include <vector>
-
-#include "histogram.h"
-#include "region_stats.h"
-
-namespace RPiController {
-
-struct RgbySums {
- RgbySums(uint64_t _rSum = 0, uint64_t _gSum = 0, uint64_t _bSum = 0, uint64_t _ySum = 0)
- : rSum(_rSum), gSum(_gSum), bSum(_bSum), ySum(_ySum)
- {
- }
- uint64_t rSum;
- uint64_t gSum;
- uint64_t bSum;
- uint64_t ySum;
-};
-
-using RgbyRegions = RegionStats<RgbySums>;
-using FocusRegions = RegionStats<uint64_t>;
-
-struct Statistics {
- /*
- * All region based statistics are normalised to 16-bits, giving a
- * maximum value of (1 << NormalisationFactorPow2) - 1.
- */
- static constexpr unsigned int NormalisationFactorPow2 = 16;
-
- /*
- * Positioning of the AGC statistics gathering in the pipeline:
- * Pre-WB correction or post-WB correction.
- * Assume this is post-LSC.
- */
- enum class AgcStatsPos { PreWb, PostWb };
- const AgcStatsPos agcStatsPos;
-
- /*
- * Positioning of the AWB/ALSC statistics gathering in the pipeline:
- * Pre-LSC or post-LSC.
- */
- enum class ColourStatsPos { PreLsc, PostLsc };
- const ColourStatsPos colourStatsPos;
-
- Statistics(AgcStatsPos a, ColourStatsPos c)
- : agcStatsPos(a), colourStatsPos(c)
- {
- }
-
- /* Histogram statistics. Not all histograms may be populated! */
- Histogram rHist;
- Histogram gHist;
- Histogram bHist;
- Histogram yHist;
-
- /* Row sums for flicker avoidance. */
- std::vector<RgbySums> rowSums;
-
- /* Region based colour sums. */
- RgbyRegions agcRegions;
- RgbyRegions awbRegions;
-
- /* Region based focus FoM. */
- FocusRegions focusRegions;
-};
-
-using StatisticsPtr = std::shared_ptr<Statistics>;
-
-} /* namespace RPiController */