diff options
Diffstat (limited to 'src/ipa/raspberrypi/controller/rpi/alsc.hpp')
-rw-r--r-- | src/ipa/raspberrypi/controller/rpi/alsc.hpp | 50 |
1 files changed, 27 insertions, 23 deletions
diff --git a/src/ipa/raspberrypi/controller/rpi/alsc.hpp b/src/ipa/raspberrypi/controller/rpi/alsc.hpp index 7a0949d1..3ffc175d 100644 --- a/src/ipa/raspberrypi/controller/rpi/alsc.hpp +++ b/src/ipa/raspberrypi/controller/rpi/alsc.hpp @@ -15,7 +15,7 @@ namespace RPiController { -// Algorithm to generate automagic LSC (Lens Shading Correction) tables. +/* Algorithm to generate automagic LSC (Lens Shading Correction) tables. */ struct AlscCalibration { double ct; @@ -23,11 +23,11 @@ struct AlscCalibration { }; struct AlscConfig { - // Only repeat the ALSC calculation every "this many" frames + /* Only repeat the ALSC calculation every "this many" frames */ uint16_t framePeriod; - // number of initial frames for which speed taken as 1.0 (maximum) + /* number of initial frames for which speed taken as 1.0 (maximum) */ uint16_t startupFrames; - // IIR filter speed applied to algorithm results + /* IIR filter speed applied to algorithm results */ double speed; double sigmaCr; double sigmaCb; @@ -39,9 +39,9 @@ struct AlscConfig { double luminanceStrength; std::vector<AlscCalibration> calibrationsCr; std::vector<AlscCalibration> calibrationsCb; - double defaultCt; // colour temperature if no metadata found - double threshold; // iteration termination threshold - double lambdaBound; // upper/lower bound for lambda from a value of 1 + double defaultCt; /* colour temperature if no metadata found */ + double threshold; /* iteration termination threshold */ + double lambdaBound; /* upper/lower bound for lambda from a value of 1 */ }; class Alsc : public Algorithm @@ -57,41 +57,45 @@ public: void process(StatisticsPtr &stats, Metadata *imageMetadata) override; private: - // configuration is read-only, and available to both threads + /* configuration is read-only, and available to both threads */ AlscConfig config_; bool firstTime_; CameraMode cameraMode_; double luminanceTable_[ALSC_CELLS_X * ALSC_CELLS_Y]; std::thread asyncThread_; - void asyncFunc(); // asynchronous thread function + void asyncFunc(); /* asynchronous thread function */ std::mutex mutex_; - // condvar for async thread to wait on + /* condvar for async thread to wait on */ std::condition_variable asyncSignal_; - // condvar for synchronous thread to wait on + /* condvar for synchronous thread to wait on */ std::condition_variable syncSignal_; - // for sync thread to check if async thread finished (requires mutex) + /* for sync thread to check if async thread finished (requires mutex) */ bool asyncFinished_; - // for async thread to check if it's been told to run (requires mutex) + /* for async thread to check if it's been told to run (requires mutex) */ bool asyncStart_; - // for async thread to check if it's been told to quit (requires mutex) + /* for async thread to check if it's been told to quit (requires mutex) */ bool asyncAbort_; - // The following are only for the synchronous thread to use: - // for sync thread to note its has asked async thread to run + /* + * The following are only for the synchronous thread to use: + * for sync thread to note its has asked async thread to run + */ bool asyncStarted_; - // counts up to framePeriod before restarting the async thread + /* counts up to framePeriod before restarting the async thread */ int framePhase_; - // counts up to startupFrames + /* counts up to startupFrames */ int frameCount_; - // counts up to startupFrames for Process function + /* counts up to startupFrames for Process function */ int frameCount2_; double syncResults_[3][ALSC_CELLS_Y][ALSC_CELLS_X]; double prevSyncResults_[3][ALSC_CELLS_Y][ALSC_CELLS_X]; void waitForAysncThread(); - // The following are for the asynchronous thread to use, though the main - // thread can set/reset them if the async thread is known to be idle: + /* + * The following are for the asynchronous thread to use, though the main + * thread can set/reset them if the async thread is known to be idle: + */ void restartAsync(StatisticsPtr &stats, Metadata *imageMetadata); - // copy out the results from the async thread so that it can be restarted + /* copy out the results from the async thread so that it can be restarted */ void fetchAsyncResults(); double ct_; bcm2835_isp_stats_region statistics_[ALSC_CELLS_Y * ALSC_CELLS_X]; @@ -103,4 +107,4 @@ private: double lambdaB_[ALSC_CELLS_X * ALSC_CELLS_Y]; }; -} // namespace RPiController +} /* namespace RPiController */ |