MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ compute_energy_values()

template<ComputeData InputType = std::vector<Kakshya::DataVariant>, ComputeData OutputType = Eigen::VectorXd>
std::vector< double > MayaFlux::Yantra::EnergyAnalyzer< InputType, OutputType >::compute_energy_values ( std::span< const double >  data,
EnergyMethod  method 
) const
inlineprivate

Compute energy values using span (zero-copy processing)

Definition at line 555 of file EnergyAnalyzer.hpp.

556 {
557 const size_t num_windows = calculate_num_windows(data.size());
558
559 switch (method) {
561 return compute_peak_energy(data, num_windows, m_hop_size, m_window_size);
563 return compute_zero_crossing_energy(data, num_windows, m_hop_size, m_window_size);
565 return compute_power_energy(data, num_windows, m_hop_size, m_window_size);
567 return compute_dynamic_range_energy(data, num_windows, m_hop_size, m_window_size);
569 return compute_spectral_energy(data, num_windows, m_hop_size, m_window_size);
571 return compute_harmonic_energy(data, num_windows, m_hop_size, m_window_size);
573 default:
574 return compute_rms_energy(data, num_windows, m_hop_size, m_window_size);
575 }
576 }
size_t calculate_num_windows(size_t data_size) const
Calculate number of windows for given data size.
@ SPECTRAL
Spectral energy (FFT-based)
@ DYNAMIC_RANGE
Dynamic range (dB)
@ RMS
Root Mean Square energy.
@ ZERO_CROSSING
Zero-crossing rate.
@ HARMONIC
Harmonic energy (low-frequency content)
@ POWER
Power (sum of squares)
std::vector< double > compute_dynamic_range_energy(std::span< const double > data, const size_t num_windows, const uint32_t hop_size, const uint32_t window_size)
Compute dynamic range energy using zero-copy processing.
std::vector< double > compute_harmonic_energy(std::span< const double > data, const size_t num_windows, const uint32_t hop_size, const uint32_t window_size)
Compute harmonic energy using low-frequency FFT analysis.
std::vector< double > compute_peak_energy(std::span< const double > data, const uint32_t num_windows, const uint32_t hop_size, const uint32_t window_size)
Compute peak energy using zero-copy processing.
std::vector< double > compute_power_energy(std::span< const double > data, const size_t num_windows, const uint32_t hop_size, const uint32_t window_size)
Compute power energy using zero-copy processing.
std::vector< double > compute_rms_energy(std::span< const double > data, const uint32_t num_windows, const uint32_t hop_size, const uint32_t window_size)
Compute RMS energy using zero-copy processing.
std::vector< double > compute_zero_crossing_energy(std::span< const double > data, const size_t num_windows, const uint32_t hop_size, const uint32_t window_size)
Compute zero-crossing energy using zero-copy processing.
std::vector< double > compute_spectral_energy(std::span< const double > data, const size_t num_windows, const uint32_t hop_size, const uint32_t window_size)
Compute spectral energy using FFT-based analysis.

References MayaFlux::Yantra::compute_dynamic_range_energy(), MayaFlux::Yantra::compute_harmonic_energy(), MayaFlux::Yantra::compute_peak_energy(), MayaFlux::Yantra::compute_power_energy(), MayaFlux::Yantra::compute_rms_energy(), MayaFlux::Yantra::compute_spectral_energy(), and MayaFlux::Yantra::compute_zero_crossing_energy().

+ Here is the call graph for this function: