sipxmedialib  Version 3.3
HandsetFilterBank.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2006-2007 SIPez LLC.
3 // Licensed to SIPfoundry under a Contributor Agreement.
4 //
5 // Copyright (C) 2004-2007 SIPfoundry Inc.
6 // Licensed by SIPfoundry under the LGPL license.
7 //
8 // Copyright (C) 2004-2006 Pingtel Corp. All rights reserved.
9 // Licensed to SIPfoundry under a Contributor Agreement.
10 //
11 // $$
13 
14 #ifndef _HandsetFilterBank_ /* [ */
15 #define _HandsetFilterBank_
16 
17 #include "mp/dsplib.h"
18 
19 
20 
21 
23 {
24 /* //////////////////////////// PUBLIC //////////////////////////////////// */
25 public:
26 
27  void DoHandsetFilterBank(MpAudioSample *, MpAudioSample *, MpAudioSample *); // (mic_out, mic_in, spkr)
28  void HandsetFilterBankInit();
30 
31 
32 /* ============================ CREATORS ================================== */
34 
36  //:Constructor
37 
38 virtual
40  //:Destructor
41 
42 
43 private:
44 
45 #define HS_M 8 /* decimation ratio */
46 #define HS_TWOM (2*HS_M)
47 #define HS_FRAME_SIZE (80)
48 #define HS_NUM_FRAMES_PER_10MS 10
49 #define HS_WINDOWSIZE (HS_M*6)
50 
51 #define HS_MAX_NUM_TAPS 8
52 
53 #define HS_LOW_BAND 0
54 #define HS_HIGH_BAND HS_M
55 #define HS_NUM_BANDS_PROCESSED ((HS_HIGH_BAND - HS_LOW_BAND) + 1)
56 #define HS_ECDL_SIZE ((HS_NUM_BANDS_PROCESSED+2)*(HS_MAX_NUM_TAPS+HS_NUM_FRAMES_PER_10MS-1)) // Unnecessarily large
57 
58 
60  icomplex ECDL[HS_ECDL_SIZE]; // DEBUG!!! Determine size later.
61 
64  int HS_DoubletalkIndicator; // This should be available for loudspeaker fade
66  int DelayedMic[HS_FRAME_SIZE + 80]; // for now, 80
67  int DelayedLdspkr[HS_FRAME_SIZE + 320+80]; // for now, max sixe of 320
72 
74 
75  int HandsetDoubletalkDetection(icomplex [][HS_M+1], icomplex [][HS_M+1], int [], int []);
76  void MultiFrameHandsetFilterBankAnalysis(icomplex [][HS_M+1], int *, int *, int *, int);
77  void HandsetSubbandECLoop(icomplex [][HS_M+1], icomplex [][HS_M+1], int [], int []);
78 
80  void HandsetEchoSuppress(icomplex [][HS_M+1],int);
81 
83 
84 };
85 
86 
87 #endif /* _HandsetFilterBank_ ] */
int ECDLHighestAddressBandNewestIndex
Definition: HandsetFilterBank.h:63
int ECDLHighestAddressBand
Definition: HandsetFilterBank.h:62
#define HS_FRAME_SIZE
Definition: HandsetFilterBank.h:47
int ThresholdLdspkrDLPow[HS_NUM_BANDS_PROCESSED]
Definition: HandsetFilterBank.h:71
int HS_LdspkrDLPow[HS_NUM_BANDS_PROCESSED]
Definition: HandsetFilterBank.h:65
int HS_EchoDecaydB
Definition: HandsetFilterBank.h:73
int DelayedMic[HS_FRAME_SIZE+80]
Definition: HandsetFilterBank.h:66
icomplex ECDL[HS_ECDL_SIZE]
Definition: HandsetFilterBank.h:60
icomplex EchoCancellerCoef[HS_NUM_BANDS_PROCESSED][HS_MAX_NUM_TAPS]
Definition: HandsetFilterBank.h:59
Definition: dsplib.h:75
#define HS_NUM_BANDS_PROCESSED
Definition: HandsetFilterBank.h:55
int MultiFrameMicAnalysisDL[HS_WINDOWSIZE+HS_M *(HS_NUM_FRAMES_PER_10MS-1)]
Definition: HandsetFilterBank.h:68
int HandsetDoubletalkDetection(icomplex[][HS_M+1], icomplex[][HS_M+1], int[], int[])
Definition: HandsetFilterBank.cpp:913
#define HS_MAX_NUM_TAPS
Definition: HandsetFilterBank.h:51
int HS_DoubletalkIndicator
Definition: HandsetFilterBank.h:64
int16_t MpAudioSample
Definition: MpTypes.h:44
void MultiFrameHandsetFilterBankAnalysis(icomplex[][HS_M+1], int *, int *, int *, int)
Definition: HandsetFilterBank.cpp:823
void DoHandsetFilterBank(MpAudioSample *, MpAudioSample *, MpAudioSample *)
Definition: HandsetFilterBank.cpp:340
void HandsetComputeLoudspeakerFade()
Definition: HandsetFilterBank.cpp:1267
void HandsetSubbandECLoop(icomplex[][HS_M+1], icomplex[][HS_M+1], int[], int[])
Definition: HandsetFilterBank.cpp:1019
#define HS_NUM_FRAMES_PER_10MS
Definition: HandsetFilterBank.h:48
void HandsetFilterBankReinit()
Definition: HandsetFilterBank.cpp:177
#define HS_ECDL_SIZE
Definition: HandsetFilterBank.h:56
HandsetFilterBank()
Definition: HandsetFilterBank.cpp:134
#define HS_WINDOWSIZE
Definition: HandsetFilterBank.h:49
virtual ~HandsetFilterBank()
Definition: HandsetFilterBank.cpp:141
int SynthesisDL[HS_WINDOWSIZE]
Definition: HandsetFilterBank.h:70
void HandsetFilterBankInit()
Definition: HandsetFilterBank.cpp:255
int MultiFrameLdspkrAnalysisDL[HS_WINDOWSIZE+HS_M *(HS_NUM_FRAMES_PER_10MS-1)]
Definition: HandsetFilterBank.h:69
void HandsetEchoSuppress(icomplex[][HS_M+1], int)
Definition: HandsetFilterBank.cpp:1312
int DelayedLdspkr[HS_FRAME_SIZE+320+80]
Definition: HandsetFilterBank.h:67
#define HS_M
Definition: HandsetFilterBank.h:45
Definition: HandsetFilterBank.h:22