Support 48kHz in Noise Suppression

Doing the same for the 16-24kHz band than was done in the 8-16kHz.
Results look and sound as nice.

BUG=webrtc:3146
R=andrew@webrtc.org, bjornv@webrtc.org, kwiberg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/29139004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7865 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
aluebs@webrtc.org
2014-12-10 19:30:57 +00:00
parent d8ca723de7
commit c5ebbd98f5
17 changed files with 240 additions and 219 deletions

View File

@ -27,6 +27,7 @@ namespace webrtc {
class PushSincResampler;
class IFChannelBuffer;
static const int kMaxNumBands = 3;
enum Band {
kBand0To8kHz = 0,
kBand8To16kHz = 1,
@ -47,6 +48,7 @@ class AudioBuffer {
int samples_per_channel() const;
int samples_per_split_channel() const;
int samples_per_keyboard_channel() const;
int num_bands() const;
// Sample array accessors. Channels are guaranteed to be stored contiguously
// in memory. Prefer to use the const variants of each accessor when
@ -55,8 +57,8 @@ class AudioBuffer {
const int16_t* data_const(int channel) const;
int16_t* const* channels();
const int16_t* const* channels_const() const;
int16_t* split_data(int channel, Band band);
const int16_t* split_data_const(int channel, Band band) const;
int16_t* const* split_bands(int channel);
const int16_t* const* split_bands_const(int channel) const;
int16_t* const* split_channels(Band band);
const int16_t* const* split_channels_const(Band band) const;
@ -71,8 +73,8 @@ class AudioBuffer {
const float* data_const_f(int channel) const;
float* const* channels_f();
const float* const* channels_const_f() const;
float* split_data_f(int channel, Band band);
const float* split_data_const_f(int channel, Band band) const;
float* const* split_bands_f(int channel);
const float* const* split_bands_const_f(int channel) const;
float* const* split_channels_f(Band band);
const float* const* split_channels_const_f(Band band) const;
@ -110,6 +112,7 @@ class AudioBuffer {
const int proc_samples_per_channel_;
const int num_proc_channels_;
const int output_samples_per_channel_;
int num_bands_;
int samples_per_split_channel_;
bool mixed_low_pass_valid_;
bool reference_copied_;
@ -118,6 +121,8 @@ class AudioBuffer {
const float* keyboard_data_;
scoped_ptr<IFChannelBuffer> channels_;
ScopedVector<IFChannelBuffer> split_channels_;
scoped_ptr<int16_t*[]> bands_;
scoped_ptr<float*[]> bands_f_;
scoped_ptr<SplittingFilter> splitting_filter_;
scoped_ptr<ChannelBuffer<int16_t> > mixed_low_pass_channels_;
scoped_ptr<ChannelBuffer<int16_t> > low_pass_reference_channels_;