
This reverts commit 518c683f3e413523a458a94b533274bd7f29992d. Breaks Linux-Asan bot https://uberchromegw.corp.google.com/i/client.webrtc/builders/Linux%20Asan/builds/4348/steps/libjingle_peerconnection_unittest/logs/stdio BUG= TBR=aluebs@webrtc.org Review URL: https://codereview.webrtc.org/1208793002. Cr-Commit-Position: refs/heads/master@{#9503}
46 lines
1.7 KiB
C++
46 lines
1.7 KiB
C++
/*
|
|
* Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
#ifndef WEBRTC_MODULES_AUDIO_PROCESSING_AGC_GMM_H_
|
|
#define WEBRTC_MODULES_AUDIO_PROCESSING_AGC_GMM_H_
|
|
|
|
namespace webrtc {
|
|
|
|
// A structure that specifies a GMM.
|
|
// A GMM is formulated as
|
|
// f(x) = w[0] * mixture[0] + w[1] * mixture[1] + ... +
|
|
// w[num_mixtures - 1] * mixture[num_mixtures - 1];
|
|
// Where a 'mixture' is a Gaussian density.
|
|
|
|
struct GmmParameters {
|
|
// weight[n] = log(w[n]) - |dimension|/2 * log(2*pi) - 1/2 * log(det(cov[n]));
|
|
// where cov[n] is the covariance matrix of mixture n;
|
|
const double* weight;
|
|
// pointer to the first element of a |num_mixtures|x|dimension| matrix
|
|
// where kth row is the mean of the kth mixture.
|
|
const double* mean;
|
|
// pointer to the first element of a |num_mixtures|x|dimension|x|dimension|
|
|
// 3D-matrix, where the kth 2D-matrix is the inverse of the covariance
|
|
// matrix of the kth mixture.
|
|
const double* covar_inverse;
|
|
// Dimensionality of the mixtures.
|
|
int dimension;
|
|
// number of the mixtures.
|
|
int num_mixtures;
|
|
};
|
|
|
|
// Evaluate the given GMM, according to |gmm_parameters|, at the given point
|
|
// |x|. If the dimensionality of the given GMM is larger that the maximum
|
|
// acceptable dimension by the following function -1 is returned.
|
|
double EvaluateGmm(const double* x, const GmmParameters& gmm_parameters);
|
|
|
|
} // namespace webrtc
|
|
#endif // WEBRTC_MODULES_AUDIO_PROCESSING_AGC_GMM_H_
|