Skip to content

Commit e2a74c7

Browse files
authored
Merge pull request #158 from openitu/itu_submission_january_2023
Received Consent at ITU-T SG12 meeting - January 2023
2 parents 054411e + 54a9d82 commit e2a74c7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+28403
-503
lines changed

CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
cmake_minimum_required(VERSION 3.1)
2-
project(ITU-T_STL2009)
2+
project(STL2023 VERSION 2023)
3+
add_definitions( -DVERSION_STL="${CMAKE_PROJECT_NAME}" )
34

45
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
56

@@ -41,3 +42,4 @@ add_subdirectory(src/truncate)
4142
add_subdirectory(src/unsup)
4243
add_subdirectory(src/unsup/g728-vt)
4344
add_subdirectory(src/utl)
45+
add_subdirectory(src/wmc_tool)

doc/g191.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,17 @@ Please refer to the official Recommendation ITU-T G.191 for the complete text: [
1212

1313
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.
1414

15-
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 STL2022, incorporates:
15+
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 STL2023, incorporates:
1616

17-
* An implementation of ESDRU (energy-based spatial distortion reference unit) as described in ITU-T P.811.
17+
* An implementation of P.50 fullband MNRU as described in ITU-T P.810.
1818

19-
* An implementation of the loudness measurement algorithm as in ITU-R Rec. BS.1770-4.
19+
* A tool for automatic instrumentation of speech and audio codecs to measure their computational complexity and memory.
2020

21-
Recommendation ITU-T G.191 includes an electronic attachment containing STL2022 and manual.
21+
Recommendation ITU-T G.191 includes an electronic attachment containing STL2023 and manual.
2222

2323
## Keywords
2424

25-
DSP operators, filters, MNRU, open source, reverb, STL2022, G.711, G.722, G.726, G.728, sv56, BS.1770, ESDRU
25+
DSP operators, filters, MNRU, P.50 FB MNRU, open source, reverb, STL2022, G.711, G.722, G.726, G.728, sv56, BS.1770, ESDRU, WMC Tool
2626

2727
## 1. Scope
2828

@@ -55,7 +55,7 @@ The following ITU-T Recommendations and other references contain provisions whic
5555
[ITU-T P.48] Recommendation ITU-T P.48 (1988), *Specification for an intermediate reference system*
5656
[ITU-T P.56] Recommendation ITU-T P.56 (2011), *Objective measurement of active speech level*
5757
[ITU-T P.341] Recommendation ITU-T P.341 (2011), *Transmission characteristics for wideband digital loudspeaking and hands-free telephony terminals*
58-
[ITU-T P.810] Recommendation ITU-T P.810 (1996), *Modulated noise reference unit (MNRU)*
58+
[ITU-T P.810] Recommendation ITU-T P.810 (2023), *Modulated noise reference unit (MNRU)*
5959
[ITU-T P.811] Recommendation ITU-T P.811 (2019), *Subjective test methodology for evaluating Speech oriented stereo communication systems over headphones*
6060
[ITU-R BS.1770] Recommendation ITU-R BS.1770-4 (2015), *Algorithms to measure audio programme loudness and true-peak audio level*
6161
-----------------------------------------------

doc/g191_Annex_A.md

Lines changed: 46 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -11,32 +11,37 @@ Associated header file: `ugstdemo.h`
1111
The following programs are examples of the use of the modules:
1212

1313
|||
14-
|-------|-----------------------------------------------------------|
15-
| `g711demo.c` | on the use of the ITU‑T G.711 module. |
16-
| `g726demo.c` | on the use of the ITU‑T G.726 module. |
17-
| `g727demo.c` | on the use of the ITU‑T G.727 module |
18-
| `g722demo.c` | on the use of the ITU‑T G.722 module. |
19-
| `g728enc.c` | on the use of the ITU‑T G.728 floating-point encoder. |
20-
| `g728dec.c` | on the use of the ITU‑T G.728 floating-point decoder. |
21-
| `g728fpenc.c` | on the use of the ITU‑T G.728 fixed-point encoder. |
22-
| `g728fpdec.c` | on the use of the ITU‑T G.728 fixed-point decoder. |
23-
| `rpedemo.c` | on the use of the full-rate GSM 06.10 speech codec module. |
24-
| `sv56demo.c` | on the use of the speech voltmeter module, and also the gain/loss routine. |
25-
| `eiddemo.c` | on the use of the error insertion device for bit error insertion and frame erasure. |
26-
| `eid-ev.c` | on the use of the error insertion device for bit error insertion for layered bitstreams, which can be used to apply errors to individual layers in layered bitstreams, such as [ITU‑T G.718] or [ITU‑T G.729.1]. |
27-
| `gen-patt.c` | on the use of generating bit error pattern files for error insertion in serial bitstreams encoded files that comply with [ITU‑T G.192]. |
14+
|----------------------|-----------------------------------------------|
15+
| `g711demo.c` | on the use of the ITU‑T G.711 module. |
16+
| `g726demo.c` | on the use of the ITU‑T G.726 module. |
17+
| `g727demo.c` | on the use of the ITU‑T G.727 module |
18+
| `g722demo.c` | on the use of the ITU‑T G.722 module. |
19+
| `g728enc.c` | on the use of the ITU‑T G.728 floating-point encoder. |
20+
| `g728dec.c` | on the use of the ITU‑T G.728 floating-point decoder. |
21+
| `g728fpenc.c` | on the use of the ITU‑T G.728 fixed-point encoder. |
22+
| `g728fpdec.c` | on the use of the ITU‑T G.728 fixed-point decoder. |
23+
| `rpedemo.c` | on the use of the full-rate GSM 06.10 speech codec module. |
24+
| `sv56demo.c` | on the use of the speech voltmeter module, and also the gain/loss routine. |
25+
| `eiddemo.c` | on the use of the error insertion device for bit error insertion and frame erasure. |
26+
| `eid-ev.c` | on the use of the error insertion device for bit error insertion for layered bitstreams, which can be used to apply errors to individual layers in layered bitstreams, such as [ITU‑T G.718] or [ITU‑T G.729.1]. |
27+
| `gen-patt.c` | on the use of generating bit error pattern files for error insertion in serial bitstreams encoded files that comply with [ITU‑T G.192]. |
2828
| `gen_rate_profile.c` | on the use of the fast switching rate profile generation tool. |
29-
| `firdemo.c` | on the use of the finite impulse response (FIR) high-quality low-pass and band-pass filters and of the FIR-IRS filters, associated with the rate change module. |
30-
| `pcmdemo.c` | on the use of the ITU‑T G.712 (standard PCM) IIR (infinite impulse response) filters, associated with the rate change module. |
31-
| `filter.c` | on the use of both the IIR and the FIR filters available in the rate change module. |
32-
| `mnrudemo.c` | on the use of the narrow-band and wideband modulated noise reference unity (ITU‑T P.810) module. |
33-
| `spdemo.c` | on the use of the serialization and parallelization routines of the utility module. |
34-
| `g711iplc.c` | on the use of the packet loss concealment module of Appendix I of [G.711]. |
35-
| `reverb.c` | on the use of the reverberation module. |
36-
| `truncate.c` | on the use of the bitstream truncation module. |
37-
| `freqresp.c` | on the use of the frequency response computation tool. |
38-
| `stereoop.c` | on the use of stereo file operations. |
39-
| `esdru.c` | on the use of energy-based spatial distortion reference unit [ITU-T P.811]. | ||
29+
| `firdemo.c` | on the use of the finite impulse response (FIR) high-quality low-pass and band-pass filters and of the FIR-IRS filters, associated with the rate change module. |
30+
| `pcmdemo.c` | on the use of the ITU‑T G.712 (standard PCM) IIR (infinite impulse response) filters, associated with the rate change module. |
31+
| `filter.c` | on the use of both the IIR and the FIR filters available in the rate change module. |
32+
| `mnrudemo.c` | on the use of the narrow-band and wideband modulated noise reference unity (ITU‑T P.810) module. |
33+
| `p50fbmnru.c` | on the use of the P.50 fullband MNRU.
34+
|
35+
| `spdemo.c` | on the use of the serialization and parallelization routines of the utility module. |
36+
| `g711iplc.c` | on the use of the packet loss concealment module of Appendix I of [G.711]. |
37+
| `reverb.c` | on the use of the reverberation module. |
38+
| `truncate.c` | on the use of the bitstream truncation module. |
39+
| `freqresp.c` | on the use of the frequency response computation tool. |
40+
| `stereoop.c` | on the use of stereo file operations. |
41+
| `esdru.c` | on the use of energy-based spatial distortion reference unit [ITU-T P.811]. |
42+
| `wmc_tool.cpp` | on the use of WMC tool for speech and audio codecs complexity and memory measurement. |
43+
||
44+
4045

4146
NOTE - The module for the basic operators does not have a demo program but it is supplemented by two tools: one to evaluate program read only memory (ROM) complexity for fixed-point code (`basop_cnt.c`), and another to evaluate complexity (including program ROM) of floating-point implementations (`flc_example.c`). Both reside in the basic operators module.
4247

@@ -185,6 +190,7 @@ The functions included are as follows.
185190
|||
186191
|---------------------|-----------------------------------------------------------|
187192
| `MNRU_process` | module for addition of modulated noise to a vector of samples, according to [ITU-T P.810], for both the narrow-band and the wideband models. |
193+
| `P50_MNRU_process` | module for addition of modulated noise to a vector of samples, according to [ITU-T P.810], for P.50 full band model. |
188194

189195
## i) Speech voltmeter module
190196

@@ -689,4 +695,19 @@ The functions included are as follows.
689695
`find_scaling_factor` Iterative process to derive the most appropriate scaling factor.
690696
------------------------------------------------------------------------------------------
691697

698+
699+
## t) WMC Tool
700+
701+
Name: `wmc_tool.cpp`
702+
703+
The main program for WMC Tool. Depends on:
704+
705+
-------------------- --------------------------------------------------------------------
706+
`c_parser.cpp` Routines for parsing C functions.
707+
`text_utils.cpp` Text and string processing functions.
708+
`output.cpp` Warning and error messages.
709+
`wmc_auto_h.txt` Auto-generated header file for inclusion in projects.
710+
`wmc_auto_c.txt` Auto-generated C source file for inclusion in projects.
711+
------------------------------------------------------------------------------------------
712+
692713
-=Pagebreak=-

doc/manual/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
BIBTEX = bibtex
22
PDFLATEX = pdflatex
33

4-
PARTS = STLmanual.tex intro.tex g711.tex g711iplc.tex g726.tex g727.tex g728.tex g722.tex rpe.tex rate.tex eid.tex mnru.tex sv56.tex reverb.tex truncate.tex freqresp.tex stereoop.tex esdru.tex bs1770demo.tex basop.tex utl.tex
4+
PARTS = STLmanual.tex intro.tex g711.tex g711iplc.tex g726.tex g727.tex g728.tex g722.tex rpe.tex rate.tex eid.tex mnru.tex sv56.tex reverb.tex truncate.tex freqresp.tex stereoop.tex esdru.tex bs1770demo.tex basop.tex utl.tex wmc_tool.tex
55

66
STLmanual.pdf : $(PARTS) bibliography.bib
77
$(PDFLATEX) $(PARTS)

doc/manual/STLmanual.tex

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
\addtolength{\itemsep}{-20pt}
1919

2020
% Define headers
21-
\def\ugst_title{ ITU-T Software Tool Library, release 2022}
21+
\def\ugst_title{ ITU-T Software Tool Library, release 2023}
2222
\def\us{$\mu$s}
2323
\markboth{ \hspace{1cm} \hfill \ugst_title }%
2424
{ Version: \today \hfill \hspace{1cm} }
@@ -41,6 +41,8 @@
4141
\usepackage{framed}
4242
\graphicspath{{graphics/}}
4343
\usepackage{microtype}
44+
\usepackage{fancyvrb}
45+
\usepackage{booktabs}
4446

4547
%==============================================================================
4648
\begin{document}
@@ -59,7 +61,7 @@
5961
\pagenumbering{roman}
6062

6163
%==============================================================================
62-
\title{ITU-T Software Tool Library 2022 User's Manual}
64+
\title{ITU-T Software Tool Library 2023 User's Manual}
6365
\author{ITU-T Users' Group on Software Tools}
6466

6567
%------------------------------------------------------------------------------
@@ -69,7 +71,7 @@
6971

7072
\ruley{100mm}
7173

72-
Copyright \copyright~ 2005, 2006, 2009, 2019 and 2022 by the International
74+
Copyright \copyright~ 2005, 2006, 2009, 2019, 2022 and 2023 by the International
7375
Telecommunication Union (ITU)
7476

7577
\ruley{15mm}
@@ -200,6 +202,12 @@
200202
%=============================================================================
201203
\include{esdru}
202204

205+
%=============================================================================
206+
% chapter WMC Tool: Automatic instrumentation of floating-point speech and
207+
% audio codecs for complexity and memory measurements
208+
%=============================================================================
209+
\include{wmc_tool}
210+
203211
%=============================================================================
204212
% chapter UTILITIES: UGST utilities
205213
%=============================================================================

doc/manual/basop.tex

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2667,6 +2667,7 @@ \subsection{Example}
26672667

26682668
%----------------------------------------------------------------------
26692669
\section{Complexity evaluation tool for floating-point C Code}
2670+
\label{ch:cmplx_eval_tool}
26702671
%----------------------------------------------------------------------
26712672

26722673
\subsection{Introduction}
@@ -3403,3 +3404,5 @@ \subsection{Example code}
34033404
EQ\_64 & - & - & - & 1 \\
34043405
NE\_64 & - & - & - & 1 \\
34053406
\end{longtable}
3407+
3408+

doc/manual/bibliography.bib

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,25 @@ @book(P.830
343343
month= "February"
344344
)
345345

346+
@book(P.863,
347+
title= "{Recommendation ITU-T P.863, Perceptual objective listening quality prediction}",
348+
author= ITUT,
349+
publisher= "ITU",
350+
address= "Geneva, Switzerland",
351+
year= 2018,
352+
month= "March"
353+
)
354+
355+
@book(EVS,
356+
title= "{3GPP TS 26.441 - Enhanced Voice Services}",
357+
author= "3GPP",
358+
publisher= "3GPP",
359+
year= 2014,
360+
month= "December"
361+
)
362+
363+
364+
346365
@book(Hndbk-tel,
347366
title= "{Handbook on Telephonometry}",
348367
author= ITUT,
@@ -370,6 +389,17 @@ @book(BS1770
370389
year = 2015
371390
)
372391

392+
@Book{ANSI:1989:PLC,
393+
title = "Programming language, {C}: {ANSI X3.159-1989}",
394+
author = "{American National Standards Institute}",
395+
number = "160",
396+
publisher = "ISO",
397+
pages = "119",
398+
year = "1989",
399+
bibdate = "Mon Feb 24 15:49:20 MST 1997",
400+
bibsource = "http://www.math.utah.edu/pub/tex/bib/ansistd.bib",
401+
}
402+
373403
@techreport(AC-1004-Q10-15,
374404
title= "{Software tool to compute dynamic RAM}",
375405
author="{France Telecom Orange}",
@@ -1061,3 +1091,10 @@ @techreport(AC-0801-Q10-04
10611091
year = 2008,
10621092
date = "28 January - 1 February"
10631093
)
1094+
1095+
@book{C90,
1096+
author = {ISO},
1097+
title = "{ANSI/ISO 9899-1990, Programming languages - C}",
1098+
year = {1990},
1099+
url = {https://www.iso.org/standard/17782.html}
1100+
}
350 KB
Loading

doc/manual/graphics/mnru-p50fb.png

294 KB
Loading

doc/manual/graphics/mnru.drawio

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)