| 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 |