#include <zr300.h>
Classes | |
struct | histogram_metric |
Public Member Functions | |
bool | analyze_image (const rs_frame_ref *image) |
auto_exposure_algorithm (fisheye_auto_exposure_state auto_exposure_state) | |
void | modify_exposure (float &exposure_value, bool &exp_modified, float &gain_value, bool &gain_modified) |
void | update_options (const fisheye_auto_exposure_state &options) |
Private Types | |
enum | rounding_mode_type { round, ceil, floor } |
Private Member Functions | |
void | anti_flicker_decrease_exposure_gain (const float &target_exposure, const float &target_exposure0, float &exposure, float &gain) |
void | anti_flicker_increase_exposure_gain (const float &target_exposure, const float &target_exposure0, float &exposure, float &gain) |
void | decrease_exposure_gain (const float &target_exposure, const float &target_exposure0, float &exposure, float &gain) |
void | decrease_exposure_target (float mult, float &target_exposure) |
float | exposure_to_value (float exp_ms, rounding_mode_type rounding_mode) |
float | gain_to_value (float gain, rounding_mode_type rounding_mode) |
void | histogram_score (std::vector< int > &h, const int total_weight, histogram_metric &score) |
void | hybrid_decrease_exposure_gain (const float &target_exposure, const float &target_exposure0, float &exposure, float &gain) |
void | hybrid_increase_exposure_gain (const float &target_exposure, const float &target_exposure0, float &exposure, float &gain) |
void | im_hist (const uint8_t *data, const int width, const int height, const int rowStep, int h[]) |
void | increase_exposure_gain (const float &target_exposure, const float &target_exposure0, float &exposure, float &gain) |
void | increase_exposure_target (float mult, float &target_exposure) |
float | round (float x) |
template<typename T > | |
T | sqr (const T &x) |
void | static_decrease_exposure_gain (const float &target_exposure, const float &target_exposure0, float &exposure, float &gain) |
void | static_increase_exposure_gain (const float &target_exposure, const float &target_exposure0, float &exposure, float &gain) |
Private Attributes | |
bool | anti_flicker_mode = true |
float | base_gain = 2.0f |
int | direction = 0 |
float | eps = 0.01f |
float | exposure = 10.0f |
float | exposure_step = 0.1f |
float | flicker_cycle |
float | gain = 2.0f |
float | gain_limit = 15.0f |
float | hysteresis = 0.075f |
float | maximal_exposure = 20.f |
float | minimal_exposure = 0.1f |
float | minimal_exposure_step = 0.01f |
uint8_t | over_exposure_limit = 250 |
int | over_exposure_noise_limit = 50 |
int | prev_direction = 0 |
fisheye_auto_exposure_state | state |
std::recursive_mutex | state_mutex |
float | target_exposure = 0.0f |
uint8_t | under_exposure_limit = 5 |
int | under_exposure_noise_limit = 50 |
enum rsimpl::auto_exposure_algorithm::rounding_mode_type [private] |
rsimpl::auto_exposure_algorithm::auto_exposure_algorithm | ( | fisheye_auto_exposure_state | auto_exposure_state | ) |
bool rsimpl::auto_exposure_algorithm::analyze_image | ( | const rs_frame_ref * | image | ) |
void rsimpl::auto_exposure_algorithm::anti_flicker_decrease_exposure_gain | ( | const float & | target_exposure, |
const float & | target_exposure0, | ||
float & | exposure, | ||
float & | gain | ||
) | [private] |
void rsimpl::auto_exposure_algorithm::anti_flicker_increase_exposure_gain | ( | const float & | target_exposure, |
const float & | target_exposure0, | ||
float & | exposure, | ||
float & | gain | ||
) | [private] |
void rsimpl::auto_exposure_algorithm::decrease_exposure_gain | ( | const float & | target_exposure, |
const float & | target_exposure0, | ||
float & | exposure, | ||
float & | gain | ||
) | [private] |
void rsimpl::auto_exposure_algorithm::decrease_exposure_target | ( | float | mult, |
float & | target_exposure | ||
) | [private] |
float rsimpl::auto_exposure_algorithm::exposure_to_value | ( | float | exp_ms, |
rounding_mode_type | rounding_mode | ||
) | [private] |
float rsimpl::auto_exposure_algorithm::gain_to_value | ( | float | gain, |
rounding_mode_type | rounding_mode | ||
) | [private] |
void rsimpl::auto_exposure_algorithm::histogram_score | ( | std::vector< int > & | h, |
const int | total_weight, | ||
histogram_metric & | score | ||
) | [private] |
void rsimpl::auto_exposure_algorithm::hybrid_decrease_exposure_gain | ( | const float & | target_exposure, |
const float & | target_exposure0, | ||
float & | exposure, | ||
float & | gain | ||
) | [private] |
void rsimpl::auto_exposure_algorithm::hybrid_increase_exposure_gain | ( | const float & | target_exposure, |
const float & | target_exposure0, | ||
float & | exposure, | ||
float & | gain | ||
) | [private] |
void rsimpl::auto_exposure_algorithm::increase_exposure_gain | ( | const float & | target_exposure, |
const float & | target_exposure0, | ||
float & | exposure, | ||
float & | gain | ||
) | [private] |
void rsimpl::auto_exposure_algorithm::increase_exposure_target | ( | float | mult, |
float & | target_exposure | ||
) | [private] |
void rsimpl::auto_exposure_algorithm::modify_exposure | ( | float & | exposure_value, |
bool & | exp_modified, | ||
float & | gain_value, | ||
bool & | gain_modified | ||
) |
float rsimpl::auto_exposure_algorithm::round | ( | float | x | ) | [inline, private] |
T rsimpl::auto_exposure_algorithm::sqr | ( | const T & | x | ) | [inline, private] |
void rsimpl::auto_exposure_algorithm::static_decrease_exposure_gain | ( | const float & | target_exposure, |
const float & | target_exposure0, | ||
float & | exposure, | ||
float & | gain | ||
) | [private] |
void rsimpl::auto_exposure_algorithm::static_increase_exposure_gain | ( | const float & | target_exposure, |
const float & | target_exposure0, | ||
float & | exposure, | ||
float & | gain | ||
) | [private] |
void rsimpl::auto_exposure_algorithm::update_options | ( | const fisheye_auto_exposure_state & | options | ) |
bool rsimpl::auto_exposure_algorithm::anti_flicker_mode = true [private] |
float rsimpl::auto_exposure_algorithm::base_gain = 2.0f [private] |
int rsimpl::auto_exposure_algorithm::direction = 0 [private] |
float rsimpl::auto_exposure_algorithm::eps = 0.01f [private] |
float rsimpl::auto_exposure_algorithm::exposure = 10.0f [private] |
float rsimpl::auto_exposure_algorithm::exposure_step = 0.1f [private] |
float rsimpl::auto_exposure_algorithm::flicker_cycle [private] |
float rsimpl::auto_exposure_algorithm::gain = 2.0f [private] |
float rsimpl::auto_exposure_algorithm::gain_limit = 15.0f [private] |
float rsimpl::auto_exposure_algorithm::hysteresis = 0.075f [private] |
float rsimpl::auto_exposure_algorithm::maximal_exposure = 20.f [private] |
float rsimpl::auto_exposure_algorithm::minimal_exposure = 0.1f [private] |
float rsimpl::auto_exposure_algorithm::minimal_exposure_step = 0.01f [private] |
uint8_t rsimpl::auto_exposure_algorithm::over_exposure_limit = 250 [private] |
int rsimpl::auto_exposure_algorithm::over_exposure_noise_limit = 50 [private] |
int rsimpl::auto_exposure_algorithm::prev_direction = 0 [private] |
std::recursive_mutex rsimpl::auto_exposure_algorithm::state_mutex [private] |
float rsimpl::auto_exposure_algorithm::target_exposure = 0.0f [private] |
uint8_t rsimpl::auto_exposure_algorithm::under_exposure_limit = 5 [private] |
int rsimpl::auto_exposure_algorithm::under_exposure_noise_limit = 50 [private] |