FreeCalypso > hg > freecalypso-reveng
annotate pirelli/aec @ 408:14302e075f37 default tip
hr-bits: further conditionalize SID-1-diff
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Mon, 22 Jul 2024 10:06:38 +0000 | 
| parents | 0f9606d1f8b8 | 
| children | 
| rev | line source | 
|---|---|
| 
372
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1 Reverse eng question: what does Pirelli's fw do with the AEC feature | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
2 of Calypso DSP? | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
3 | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
4 Seeking an answer to this question, I sent an aur 12 command to Pirelli's fw | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
5 via fc-tmsh. The response came back with 48 bytes of data, consistent | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
6 with our reference TCS211 code with L1_NEW_AEC enabled. Here is the raw | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
7 response in non-loudspeaker-call state: | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
8 | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
9 aur 12: 48 bytes | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
10 offset 00: 02 00 01 00 14 00 CC 0C AD 59 00 40 32 00 00 10 | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
11 offset 10: 00 10 00 00 04 00 00 00 9E FE 43 06 E5 16 34 36 | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
12 offset 20: E5 16 43 06 9E FE B4 FC BA FE 0F 01 40 00 C7 FF | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
13 | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
14 In an active loudspeaker call, two settings change: | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
15 | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
16 aur 12: 48 bytes | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
17 offset 00: 02 00 01 00 14 00 CC 0C FF 0F 00 40 32 00 00 10 | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
18 offset 10: 00 10 00 00 04 00 60 00 9E FE 43 06 E5 16 34 36 | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
19 offset 20: E5 16 43 06 9E FE B4 FC BA FE 0F 01 40 00 C7 FF | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
20 | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
21 Due to a misdesign in ETM (apparently unchanged between reference TCS211 and | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
22 Pirelli's fw), the 48 bytes that come back are actually just 24 bytes of real | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
23 data (new AEC config is 12 16-bit words) followed by 24 bytes of garbage | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
24 padding. Decoding the returned 12 words of new AEC config, we get: | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
25 | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
26 aec_enable = 0x0002 | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
27 continuous_filtering = 0x0001 | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
28 granularity_attenuation = 0x0014 | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
29 smoothing_coefficient = 0x0CCC | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
30 max_echo_suppression_level = 0x59AD (handheld mode) or 0x0FFF (loudspeaker) | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
31 vad_factor = 0x4000 | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
32 absolute_threshold = 0x0032 | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
33 factor_asd_filtering = 0x1000 | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
34 factor_asd_muting = 0x1000 | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
35 aec_visibility = 0 | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
36 noise_suppression_enable = 0x0004 | 
| 
 
0f9606d1f8b8
pirelli/aec: results of investigation into Pirelli's AEC config
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
37 noise_suppression_level = 0 (handheld mode) or 0x0060 (loudspeaker) | 
