OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // A set of utility functions to perform WSOLA. | 5 // A set of utility functions to perform WSOLA. |
6 | 6 |
7 #ifndef MEDIA_FILTERS_WSOLA_INTERNALS_H_ | 7 #ifndef MEDIA_FILTERS_WSOLA_INTERNALS_H_ |
8 #define MEDIA_FILTERS_WSOLA_INTERNALS_H_ | 8 #define MEDIA_FILTERS_WSOLA_INTERNALS_H_ |
9 | 9 |
10 #include <utility> | 10 #include <utility> |
(...skipping 30 matching lines...) Expand all Loading... |
41 // | 41 // |
42 // f(-1) = |y[0]| | 42 // f(-1) = |y[0]| |
43 // f(0) = |y[1]| | 43 // f(0) = |y[1]| |
44 // f(1) = |y[2]|. | 44 // f(1) = |y[2]|. |
45 // | 45 // |
46 // Then compute the |extremum| point -b / (2*a) and |extremum_value| | 46 // Then compute the |extremum| point -b / (2*a) and |extremum_value| |
47 // b^2 / (4*a) - b^2 / (2*a) + c. | 47 // b^2 / (4*a) - b^2 / (2*a) + c. |
48 // | 48 // |
49 // It is not expected that this function is called with | 49 // It is not expected that this function is called with |
50 // y[0] == y[1] == y[2]. | 50 // y[0] == y[1] == y[2]. |
51 MEDIA_EXPORT void CubicInterpolation(const float* y_values, | 51 MEDIA_EXPORT void QuadraticInterpolation(const float* y_values, |
52 float* extremum, | 52 float* extremum, |
53 float* extremum_value); | 53 float* extremum_value); |
54 | 54 |
55 // Search a subset of all candid blocks. The search is performed every | 55 // Search a subset of all candid blocks. The search is performed every |
56 // |decimation| frames. This reduces complexity by a factor of about | 56 // |decimation| frames. This reduces complexity by a factor of about |
57 // 1 / |decimation|. A cubic interpolation is used to have a better estimate of | 57 // 1 / |decimation|. A cubic interpolation is used to have a better estimate of |
58 // the best match. | 58 // the best match. |
59 MEDIA_EXPORT int DecimatedSearch(int decimation, | 59 MEDIA_EXPORT int DecimatedSearch(int decimation, |
60 Interval exclude_interval, | 60 Interval exclude_interval, |
61 const AudioBus* target_block, | 61 const AudioBus* target_block, |
62 const AudioBus* search_segment, | 62 const AudioBus* search_segment, |
63 const float* energy_target_block, | 63 const float* energy_target_block, |
(...skipping 20 matching lines...) Expand all Loading... |
84 | 84 |
85 // Return a "periodic" Hann window. This is the first L samples of an L+1 | 85 // Return a "periodic" Hann window. This is the first L samples of an L+1 |
86 // Hann window. It is perfect reconstruction for overlap-and-add. | 86 // Hann window. It is perfect reconstruction for overlap-and-add. |
87 MEDIA_EXPORT void GetSymmetricHanningWindow(int window_length, float* window); | 87 MEDIA_EXPORT void GetSymmetricHanningWindow(int window_length, float* window); |
88 | 88 |
89 } // namespace internal | 89 } // namespace internal |
90 | 90 |
91 } // namespace media | 91 } // namespace media |
92 | 92 |
93 #endif // MEDIA_FILTERS_WSOLA_INTERNALS_H_ | 93 #endif // MEDIA_FILTERS_WSOLA_INTERNALS_H_ |
OLD | NEW |