15 : mChannelCount(channels)
55 double db = 3.999843853973347;
56 double f0 = 1681.974450955533;
57 double Q = 0.7071752369554196;
58 double K = tan(
M_PI * f0 / fs);
60 double Vh = pow(10.0, db / 20.0);
61 double Vb = pow(Vh, 0.4996667741545416);
63 double a0 = 1.0 + K / Q + K * K;
65 pBiquad[0].fNumerCoeffs[
Biquad::B0] = (Vh + Vb * K / Q + K * K) / a0;
66 pBiquad[0].fNumerCoeffs[
Biquad::B1] = 2.0 * (K * K - Vh) / a0;
67 pBiquad[0].fNumerCoeffs[
Biquad::B2] = (Vh - Vb * K / Q + K * K) / a0;
69 pBiquad[0].fDenomCoeffs[
Biquad::A1] = 2.0 * (K * K - 1.0) / a0;
70 pBiquad[0].fDenomCoeffs[
Biquad::A2] = (1.0 - K / Q + K * K) / a0;
75 f0 = 38.13547087602444;
76 Q = 0.5003270373238773;
77 K = tan(
M_PI * f0 / fs);
83 pBiquad[1].fDenomCoeffs[
Biquad::A1] = 2.0 * (K * K - 1.0) / (1.0 + K / Q + K * K);
84 pBiquad[1].fDenomCoeffs[
Biquad::A2] = (1.0 - K / Q + K * K) / (1.0 + K / Q + K * K);
142 double Gamma_R = log10(sum_v/sum_c) - 1;
151 return 0.8529037031 * sum_v / sum_c;
181 for(
size_t i = 0; i < validLen; ++i)
188 blockVal = log10(blockVal/
double(validLen));
void reinit(Integral count, bool initialize=false)
ArrayOf< long int > mLoudnessHist
void ProcessSampleFromChannel(float x_in, size_t channel)
void HistogramSums(size_t start_idx, double &sum_v, long int &sum_c)
static constexpr double GAMMA_A
EBU R128 absolute threshold.
void AddBlockToHistogram(size_t validLen)
static const size_t HIST_BIN_COUNT
static ArrayOf< Biquad > CalcWeightingFilter(double fs)
double IntegrativeLoudness()
EBUR128(double rate, size_t channels)
ArrayOf< ArrayOf< Biquad > > mWeightingFilter
fastfloat_really_inline void round(adjusted_mantissa &am, callback cb) noexcept
@ A1
Denominator coefficient indices.
@ B0
Numerator coefficient indices.