Skip to content

Commit

Permalink
STL2019 - Merged official code and documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
Ludovic Malfait committed Oct 28, 2019
2 parents f8a0202 + 4aee06b commit 08571c1
Show file tree
Hide file tree
Showing 37 changed files with 2,564 additions and 1,774 deletions.
71 changes: 43 additions & 28 deletions doc/g191.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,34 @@
# Draft Recommendation ITU-T G.191 - Software tools for speech and audio coding standardization

**IMPORTANT NOTE:** This markdown document is a working text in preparation to the standardization of the next release of the Software Tool Library. The official text for Recommendation ITU-T G.191 is available here: [https://www.itu.int/rec/T-REC-G.191](https://www.itu.int/rec/T-REC-G.191)
**IMPORTANT NOTE:**
This markdown document provides the main text of Recommendation ITU-T G.191, the Software Tool Library, but it does not reflect the entire text of the Recommendation. Please refer to the official Recommendation ITU-T G.191 for the complete text: [https://www.itu.int/rec/T-REC-G.191](https://www.itu.int/rec/T-REC-G.191)

# Recommendation ITU-T G.191 - Software tools for speech and audio coding standardization

## Summary

This Recommendation provides source code for speech and audio processing modules for narrowband, wideband and super-wideband telephony applications. The set includes codecs, filters, noise generators, etc.
Recommendation ITU-T G.191 provides source code for speech and audio processing modules for narrowband, wideband and super-wideband telephony applications. The set includes codecs, filters, noise generators.

This revision introduces changes to ITU-T G.191 Annex A, which describes the ITU-T Software Tools (STL) containing a high-quality, portable C code library for speech processing applications. This new release of the STL, also known as STL2018, incorporates new basic operators to accommodate state-of-the-art processor architectures which supports wide accumulators, SIMD (Single Instruction Multiple Data) and VLIW (Very Long Instruction Word). Thus the new operators provides support for 64-bit accumulator, complex numbers, enhanced 32-bit operations and additional control code operators.
This edition introduces changes to Annex A, which describes the ITU-T Software Tools (STL) containing a high-quality, portable C code library for speech processing applications. This release of the STL, also known as STL2019, incorporates new basic operators to accommodate state-of-the-art processor architectures which supports wide accumulators, SIMD (Single Instruction Multiple Data) and VLIW (Very Long Instruction Word). Thus, the new operators provides support for 64-bit accumulator, complex numbers, enhanced 32-bit operations and additional control code operators.

The software package was reworked to make it available as a truly open-source project and is therefore hosted on an open-source collaboration platform. The build toolchain is now using CMake to generate platform-dependent and tool-dependent build scripts as well as to execute regression tests for each module in the STL.
The software package was reworked to make it available as a truly open-source project and is therefore hosted on an open-source collaboration platform. The build toolchain uses CMake to generate platform-dependent and tool-dependent build scripts as well as to execute regression tests for each module in the STL.

This Recommendation includes an electronic attachment containing STL2018 Software Tool Library and manual.
Recommendation ITU-T G.191 includes an electronic attachment containing STL2019 and manual.

## Keywords

G.711, G.722, G.726, G.728, sv56, MNRU, reverb, filters, DSP operators, open source
DSP operators, filters, MNRU, open source, reverb, STL2019, G.711, G.722, G.726, G.728, sv56.

## 1. Scope

The purpose of this Recommendation is to provide a set of common, coherent and portable signal processing tools to facilitate the development of speech and audio coding algorithms, in particular within the standardization environment where the following situations often happen:
This Recommendation provides a set of common, coherent and portable signal processing tools to facilitate the development of speech and audio coding algorithms, in particular within the standardization environment where the following situations often happen:

* In many cases, experimental results generated with different software tools may not be directly compared.
* experimental results generated with different software tools may not be directly compared;

* Software tools used by different organizations may not perfectly conform to related ITU‑T Recommendations, which may delay ITU-T standardization processes.
* software tools used by different organizations may not perfectly conform to related ITU‑T Recommendations, which may delay ITU-T standardization processes;

* ITU-T Recommendations may leave scope for different implementations.
* ITU-T Recommendations may leave scope for different implementations;

* New speech and audio coding standards are increasing in complexity, leading to non‑bitexact specifications; furthermore, appropriate testing procedures to assure interoperability of different implementations are needed.
* new speech and audio coding standards are increasing in complexity, leading to non‑bitexact specifications; furthermore, appropriate testing procedures to assure interoperability of different implementations are needed.


## 2. References
Expand All @@ -38,11 +39,9 @@ The following ITU-T Recommendations and other references contain provisions whic
|--------------|-------------------------------------------|
| [ITU-T G.192] | Recommendation ITU-T G.192 (1996), *A common digital parallel interface for speech standardization activities* |
| [ITU-T G.711] | Recommendation ITU-T G.711 (1988), *Pulse code modulation (PCM) of voice frequencies* |
| [ITU-T G.711.1] | Recommendation ITU-T G.711 (2012), *Wideband embedded extension for ITU-T G.711 pulse code modulation* |
| [ITU-T G.712] | Recommendation ITU-T G.712 (2001), *Transmission performance characteristics of pulse code modulation channels* |
| [ITU-T G.718] | Recommendation ITU-T G.718 (2008), *Frame error robust narrow-band and wideband embedded variable bit-rate coding of speech and audio from 8-32 kbit/s* |
| [ITU-T G.721] | Recommendation ITU-T G.722 (1988), *32 kbit/s adaptive differential pulse code modulation (ADPCM)* |
| [ITU-T G.722] | Recommendation ITU-T G.722 (1988), *7 kHz audio-coding within 64 kbit/s* |
| [ITU-T G.722] | Recommendation ITU-T G.722 (2012), *7 kHz audio-coding within 64 kbit/s* |
| [ITU-T G.726] | Recommendation ITU-T G.722 (1990), *40, 32, 24, 16 kbit/s Adaptive Differential Pulse Code Modulation (ADPCM)* |
| [ITU-T G.727] | Recommendation ITU-T G.727 (1990), *5-, 4-, 3- and 2-bit/sample embedded adaptive differential pulse code modulation (ADPCM)* |
| [ITU-T G.728] | Recommendation ITU-T G.728 (2012), *Coding of speech at 16 kbit/s using low-delay code excited linear prediction* |
Expand All @@ -52,21 +51,36 @@ The following ITU-T Recommendations and other references contain provisions whic
| [ITU-T P.56] | Recommendation ITU-T P.56 (2011), *Objective measurement of active speech level* |
| [ITU-T P.341] | Recommendation ITU-T P.341 (2011), *Transmission characteristics for wideband digital loudspeaking and hands-free telephony terminals* |
| [ITU-T P.810] | Recommendation ITU-T P.810 (1996), *Modulated noise reference unit (MNRU)* |
| [ITU-T P.830] | Recommendation ITU-T P.830 (1996), *Subjective performance assessment of telephone-band and wideband digital codecs* |

## 3. Abbreviations and acronyms
## 3. Definitions

None.

## 4. Abbreviations and acronyms

This Recommendation uses the following abbreviations and acronyms:

|||
|------|-----------------------------------------------------------|
| STL | Software Tool Library |
| SIMD | Single Instruction Multiple Data |
| VLIW | Very Long Instruction Word |
| FFT | Fast Fourier Transform |
| FIR | Finite Impulse Response |
| FIR-IRS | Finite Impulse Response-Intermediate Reference System |
| IIR | Infinite Impulse Response |
| PCM | Pulse Code Modulation |
| ROM | Read Only Memory |
| RPE-LTP | Regular Pulse Excitation-Long Term Prediction |
| STL | Software Tool Library |
| STL | Software Tool Library |
| SIMD | Single Instruction Multiple Data |
| VLIW | Very Long Instruction Word |

## 5. Conventions

## 4. Software tools
None.

To clarify the use of the set of software tools, arranged as a software tool library, the ITU-T makes the following recommendations:
## 6. Software tools

To clarify the use of the set of software tools, arranged as a software tool library (STL), ITU-T makes the following recommendations:

1) The software tools specified in Annex A should be used as building modules of signal processing blocks to be used in the process of generation of ITU-T Recommendations, particularly those concerned with speech and audio coding algorithms.

Expand All @@ -76,17 +90,18 @@ To clarify the use of the set of software tools, arranged as a software tool lib

The software tools are maintained on an open-source collaboration platform [b-STLgit]. The build toolchain is implemented using the CMake framework [b-CMake] to generate build scripts crafted for the target platform and to execute regression tests for each module in the STL.

## 3. License and copyright
## 7. License and copyright

The modules in the ITU-T Software Tool Library (STL) are free software; they can be redistributed and/or modified under the terms of the "ITU-T software tools General Public License" of Annex B, as published by the ITU-T; this applies to any of the versions of the modules in the STL.
The modules in the ITU-T STL are free software; they can be redistributed or modified under the terms of Annex B; this applies to any of the versions of the modules in the STL.

The STL has been carefully tested and it is believed that both the modules and the example programs on their usage conform to their description documents. Nevertheless, the ITU-T STL is provided "as is", in the hope that it will be useful, but without any warranty.

The STL is intended to help the scientific community to achieve new standards in telecommunications more efficiently, and for such must not be sold, entirely or in parts. The original developers, except where otherwise noted, retain ownership of their copyright, and allow their use under the terms and conditions of the "ITU-T software tools General Public License".

The STL is intended to help the scientific community to achieve new standards in telecommunications more efficiently, and for such must not be sold, entirely or in parts. The original developers, except where otherwise noted, retain ownership of their copyright, and allow their use under the terms and conditions of Annex B.
## Bibliography

|||
|--------------|-------------------------------------------|
| [b-STLgit] | ITU (2018), *ITU-T Software Tool Library*, GitHub repository, https://github.com/openitu/STL. |
| [b-CMake] | Kitware (2018), *CMake*, https://cmake.org/. |
| [b-CMake] | Kitware (2018), CMake, https://cmake.org/. |
| [b-GSM 06.10] | ETSI Recommendation GSM 06.10 (1992), GSM full-rate speech transcoding. |
| [b-STLgit] | ITU (2018), ITU-T Software Tool Library, GitHub repository, https://github.com/openitu/STL. |
Loading

0 comments on commit 08571c1

Please sign in to comment.