annotate pirelli/aec @ 377:34490934ff02

compal/audio/reg-read-guide written
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 09 Oct 2021 20:24:03 +0000
parents 0f9606d1f8b8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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)