FreeCalypso > hg > gsm-codec-lib
comparison README @ 451:614ae8dc6807
README: update for libgsmfr2+libgsmefr+libtwamr set
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 10 May 2024 02:36:34 +0000 |
parents | 1b8cb3490d48 |
children |
comparison
equal
deleted
inserted
replaced
450:16bc3036cc84 | 451:614ae8dc6807 |
---|---|
2 =========================================================== | 2 =========================================================== |
3 | 3 |
4 Themyscira Wireless, a technical initiative of the Women's Republic of | 4 Themyscira Wireless, a technical initiative of the Women's Republic of |
5 Themyscira, is proud to present this package of GSM codec libraries and | 5 Themyscira, is proud to present this package of GSM codec libraries and |
6 associated command line test and development utilities. The present package | 6 associated command line test and development utilities. The present package |
7 provides two linkable C libraries, intended to be usable by any application | 7 provides the following linkable C libraries, intended to be usable by any |
8 that needs GSM codec functionality: | 8 application that needs GSM codec functionality: |
9 | 9 |
10 libgsmefr An implementation of EFR codec in the same spirit as classic | 10 libgsmfr2 This library implements the original GSM-FR codec, consisting |
11 libgsm, i.e., like libgsm, but for EFR instead of 06.10. It is | 11 of not only the basic transcoding functions of GSM 06.10, but |
12 based on the reference code from ETSI. | 12 also all Rx DTX handler functions that are required for a speech |
13 decoder receiving a stream of frames from a radio interface, | |
14 either MS or network side. This library is a replacement for | |
15 classic libgsm, providing proper reset logic, homing functions | |
16 and the Rx DTX handler block. | |
13 | 17 |
14 libgsmfrp An Rx DTX handler preprocessor to be invoked prior to | 18 libgsmefr This library implements GSM-EFR codec, based on the reference |
15 gsm_decode() from classic libgsm, implementing GSM 06.11, 06.12 | 19 code from ETSI (GSM 06.53). The bit-exact version of GSM-EFR |
16 and 06.31 functionality in the Rx direction. | 20 implemented here is the original one, not the AMR-EFR hybrid |
21 that was made into a permissible implementation option after | |
22 the development of AMR. | |
17 | 23 |
18 These two libraries are intended primarily for use as part of GSM network | 24 libtwamr This library implements 3GPP AMR-NB codec, based on the official |
19 deployment, i.e., as part of the necessary speech transcoder implementation in | 25 reference code (TS 26.073). Both VAD versions are included, |
20 whichever network-side server process acts as the voice gateway to PSTN or | 26 selected by the user application at run time, and I/O functions |
21 other networks. However, they can also be used as part of development and | 27 are provided for both 3GPP test sequence format and the more |
22 testing on the mobile side of GSM: for example, to decode TCH downlink bits and | 28 practical format of IETF RFC 4867. This library can also be |
23 voice memo recordings read out of FreeCalypso GSM MS devices, or to implement | 29 used to implement AMR-EFR hybrid operation if no DTX is needed |
24 your own lab-oriented GSM MS on top of some other PHY. | 30 in the encoder and if the input to the decoder contains no SID |
31 frames. | |
25 | 32 |
26 Each of these two Themyscira libraries (libgsmefr and libgsmfrp) is free- | 33 The only GSM codec for which no implementation library is currently provided is |
27 standing and independent of the other. libgsmfrp makes use of <gsm.h> header | 34 GSM-HR, also known as HRv1. Librification of HRv1 reference code from ETSI is |
28 file from libgsm (for gsm_byte and gsm_frame defined types) and requires this | 35 a planned work item for future development. |
29 header file in order to compile; libgsmefr has zero dependencies nominally but | 36 |
30 will often be used together with libgsm and libgsmfrp. | 37 The libraries provided here are intended for two primary purposes: |
38 | |
39 1) They are used as part of Themyscira Wireless MGW (media gateway) | |
40 implementation, providing the necessary speech transcoder between a GSM | |
41 network and G.711-based PSTN. | |
42 | |
43 2) They are useful in many varied study and exploration workings, as part of | |
44 experiments where it becomes necessary to model, simulate or replicate | |
45 bit-exact operation of someone else's network element. | |
46 | |
47 Each of our Themyscira core libraries is free-standing and independent of the | |
48 others. The dependency on classic libgsm (by way of <gsm.h> header file) that | |
49 existed in previous versions of Themyscira gsm-codec-lib suite has been | |
50 eliminated; the present version has zero dependencies. | |
31 | 51 |
32 Included command line utilities | 52 Included command line utilities |
33 =============================== | 53 =============================== |
34 | 54 |
35 In addition to the two main libraries, the present package includes a number of | 55 In addition to the set of core libraries, the present package includes a number |
36 command line utilities, falling into the following groups: | 56 of command line utilities, falling into the following groups: |
37 | 57 |
38 * Some utilities specifically exercise and test the two core libraries; | 58 * Some utilities specifically exercise and test our core libraries; |
39 | 59 |
40 * Some utilities are not specifically for library testing but make use of | 60 * Some utilities are not specifically for library testing but make use of |
41 our libraries; | 61 these libraries; |
42 | 62 |
43 * Some utilities are included because they implement some closely related and | 63 * Some utilities are included because they implement some closely related and |
44 relevant debug and development functionality, even though they don't link | 64 relevant debug and development functionality, even though they don't link |
45 with either libgsmefr or libgsmfrp. | 65 with any of the included core libraries. |
46 | 66 |
47 Please see the included documentation in the doc subdirectory. | 67 Please see the included documentation in the doc subdirectory. |