1、ITU-T Software Tool Library 2009 Users ManualITU-T Users Group on Software ToolsGeneva, November 2009Copyright c 2005, 2006, 2009 by the International Telecommunication Union (ITU)This is edition 1.0 of the “ITU-T Software Tool Library Manual”, for the 2009 release of theITU-T Software Tool Library,
2、 distribution 1.0, November 2009, generated using LATEX on Febru-ary 15, 2010Published by the ITU. Copies of this manual are available as part of the STL2009 distribution.STL2009 copies can be acquired :ITU General SecretariatSales ServicePlace du NationsCH-1211 Geneve 20SwitzerlandAlso freely downl
3、oadable via the Internet from:http:/www.itu.int/rec/T-REC-G.191/enPermission is granted to make and distribute verbatim copies of this manual provided the copy-right notice and this permission notice are preserved on all copies.Contents1 Introduction 11.1 Organization of the Software Library . . . .
4、 . . . . . . . . . . . . . . . . . . . 21.2 Whom to contact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Tutorial 72.1 Acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5、. . . . . . 72.2 Definition of terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2.1 Overload point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2.2 Signal power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2.3 Signal level . . . . . . . .
6、 . . . . . . . . . . . . . . . . . . . . . . . . 92.2.4 Relation between overload and maximum levels . . . . . . . . . . . . . 92.2.5 Saturation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.2.6 Data representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.2.
7、7 Data justification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.2.8 Equivalent results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.2.9 Little- and big-endian data ordering . . . . . . . . . . . . . . . . . . . 112.3 Guidelines for software tool development . . .
8、. . . . . . . . . . . . . . . . . 132.4 Software module I/O signal representation . . . . . . . . . . . . . . . . . . . . 162.5 Tool specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 G.711: The ITU-T 64 kbit/s log-PCM algorithm 213.1 Description of the algorithm . .
9、. . . . . . . . . . . . . . . . . . . . . . . . . 213.2 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.2.1 alaw compress and ulaw compress . . . . . . . . . . . . . . . . . . 233.2.2 alaw expand and ulaw expand . . . . . . . . . . . . . . . . . . . . . 243.3 T
10、ests and portability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.4 Example code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24iii ITU-T Software Tool Library, release 20093.4.1 Description of the demonstration program . . . . . . . . . . . . . . . .
11、243.4.2 Simple example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 G.711 Appendix I: A high quality low-complexity algorithm for packet loss con-cealment with G.711. 274.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.2 Description of th
12、e algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.3 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.3.2 PLC Algorithm Implementation . . . . . . . . . . . .
13、 . . . . . . . . . 284.3.3 Test Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.3.4 Loss Pattern Conversion Utility . . . . . . . . . . . . . . . . . . . . . 325 G.726: The ITU-T ADPCM algorithm at 40, 32, 24, and 16 kbit/s 355.1 Description of the 32 kbit/s ADPCM . . . . .
14、 . . . . . . . . . . . . . . . . . . 365.1.1 PCM format conversion . . . . . . . . . . . . . . . . . . . . . . . . . 365.1.2 Di erence Signal Computation . . . . . . . . . . . . . . . . . . . . . . 365.1.3 Adaptive Quantizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365.1.4 Inverse Ada
15、ptive Quantizer . . . . . . . . . . . . . . . . . . . . . . . . 375.1.5 Quantizer Scale Factor Adaptation . . . . . . . . . . . . . . . . . . . . 375.1.6 Adaptation Speed Control . . . . . . . . . . . . . . . . . . . . . . . . 375.1.7 Adaptive Predictor and Reconstructed Signal Calculator . . . . .
16、. . . 385.1.8 Tone Transition and Detector . . . . . . . . . . . . . . . . . . . . . . . 385.1.9 Output PCM Format Conversion . . . . . . . . . . . . . . . . . . . . . 385.1.10 Synchronous Coding Adjustment . . . . . . . . . . . . . . . . . . . . 385.1.11 Extension for linear input and output signal
17、s . . . . . . . . . . . . . . 385.2 ITU-T STL G.726 Implementation . . . . . . . . . . . . . . . . . . . . . . . . 395.2.1 G726 encode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405.2.2 G726 decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415.3 Portability and
18、 compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425.4 Example code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435.4.1 Description of the demonstration programs . . . . . . . . . . . . . . . 435.4.2 Simple example . . . . . . . . . . . . . . . . . . . .
19、. . . . . . . . . . 436 G.727: The ITU-T embedded ADPCM algorithm at 40, 32, 24, and 16 kbit/s 456.1 Description of the Embedded ADPCM . . . . . . . . . . . . . . . . . . . . . . 456.1.1 Extension for linear input and output signals . . . . . . . . . . . . . . 45Version: November 30, 2009 iii6.2 ITU
20、-T STL G.727 Implementation . . . . . . . . . . . . . . . . . . . . . . . . 456.2.1 G727 reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476.2.2 G727 encode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476.2.3 G727 decode . . . . . . . . . . . . . . . . . . . . .
21、 . . . . . . . . . . 486.3 Portability and compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486.4 Example code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496.4.1 Description of the demonstration program . . . . . . . . . . . . . . . . 496.4.2 Simple examp
22、le . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 G.728: The ITU-T low-delay CELP algorithm at 16 kbit/s 517.1 General overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537.1.1 General characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . 537.1
23、.2 Type of algorithm specification . . . . . . . . . . . . . . . . . . . . . 537.1.3 Delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547.1.4 Backward adaptation . . . . . . . . . . . . . . . . . . . . . . . . . . . 547.1.5 Windowing used in the adaptation . . . . . . . .
24、. . . . . . . . . . . . 547.1.6 White noise correction . . . . . . . . . . . . . . . . . . . . . . . . . . 567.1.7 Bandwidth expansion . . . . . . . . . . . . . . . . . . . . . . . . . . . 577.1.8 Input and output formats . . . . . . . . . . . . . . . . . . . . . . . . . 587.2 Encoder structures . .
25、 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587.2.1 LPC synthesis filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587.2.2 Perceptual weighting filter . . . . . . . . . . . . . . . . . . . . . . . . 597.2.3 Search of optimal excitation codevector . . . . . . . . . . .
26、. . . . . . 597.2.4 Denormalizing quantized excitation . . . . . . . . . . . . . . . . . . . 607.2.5 Adaptation of excitation gain . . . . . . . . . . . . . . . . . . . . . . . 607.2.6 Adaptation of perceptual adaptation filter . . . . . . . . . . . . . . . . 617.2.7 Adaptation of LPC synthesis filt
27、er . . . . . . . . . . . . . . . . . . . . 617.3 Decoder structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617.3.1 Post-filter and its adaptation . . . . . . . . . . . . . . . . . . . . . . . 617.4 ITU-T STL G.728 Implementation . . . . . . . . . . . . . . . . . . . . . . .
28、. 637.4.1 Floating-point G.728 . . . . . . . . . . . . . . . . . . . . . . . . . . . 637.4.2 G.728 Floating-point Encoder . . . . . . . . . . . . . . . . . . . . . . 647.4.3 G.728 Floating-point Decoder . . . . . . . . . . . . . . . . . . . . . . 657.4.4 G.728 Floating-point Encoder/Decoder . . . .
29、. . . . . . . . . . . . . 667.4.5 G.728 Floating-point Decoder with Packet Loss Concealment . . . . . 677.4.6 Fixed-point G.728 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68iv ITU-T Software Tool Library, release 20097.4.7 G.728 Fixed-point Encoder/Decoder . . . . . . . . . . . . . . .
30、. . . . 697.4.8 G.728 Demonstration Program . . . . . . . . . . . . . . . . . . . . . . 697.4.9 G.728 Demonstration Program Modes . . . . . . . . . . . . . . . . . . 707.4.10 G.728 Demonstration Program with Test Vectors . . . . . . . . . . . . 718 G.722: The ITU-T 64, 56, and 48 kbit/s wideband spe
31、ech coding algorithm 738.1 Description of the 64, 56, and 48 kbit/s G.722 algorithm . . . . . . . . . . . . 758.1.1 Functional description of the SB-ADPCM encoder . . . . . . . . . . . 758.1.2 Functional description of the SB-ADPCM decoder . . . . . . . . . . . 778.1.3 Functional description of the
32、basic Packet Loss Concealment functionality 808.2 Standalone G.192 compatible G.722 encoder and decoder tool . . . . . . . . . 808.2.1 G.192 bit stream format for standalone G.722 encoder and decoder . . 808.2.2 Standalone G.722 Encoder specific operation . . . . . . . . . . . . . . 828.3 ITU-T STL
33、G.722 Implementation . . . . . . . . . . . . . . . . . . . . . . . . 838.3.1 g722 encode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 848.3.2 g722 decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 868.3.3 g722 reset encoder . . . . . . . . . . . . . . . . . . . .
34、. . . . . . 878.3.4 g722 reset decoder . . . . . . . . . . . . . . . . . . . . . . . . . . 878.4 Portability and compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 888.5 Encoder(encg722) tool command line options . . . . . . . . . . . . . . . . . . 888.6 Decoder (decg722) tool comman
35、d line options . . . . . . . . . . . . . . . . . . 888.7 Example code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898.7.1 Description of the demonstration programs . . . . . . . . . . . . . . . 898.7.2 Simple example . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36、 . 908.7.3 Example operation of encoder (encg722) . . . . . . . . . . . . . . . . 918.7.4 Example operation of decoder (decg722) . . . . . . . . . . . . . . . . 919 RPE-LTP: The full-rate GSM codec 939.1 Description of the 13 kbit/s RPE-LTP algorithm . . . . . . . . . . . . . . . . . 939.1.1 RPE-LTP
37、 Encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . 939.1.2 RPE-LTP Decoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . 959.2 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 959.2.1 rpeltp encode . . . . . . . . . . . . . . . . . . . . . .
38、. . . . . . . 969.2.2 rpeltp decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 989.2.3 rpeltp init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 999.2.4 rpeltp delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99Version: November 30, 2009 v9.3 Portabilit
39、y and compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 999.4 Example code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1009.4.1 Description of the demonstration program . . . . . . . . . . . . . . . . 1009.4.2 Simple example . . . . . . . . . . . . . . . .
40、. . . . . . . . . . . . . . 10010 RATE-CHANGE: Up- and down-sampling module 10310.1 Description of the Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . 10310.1.1 High-quality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10410.1.2 Narrowband weighting . . . . . . . . .
41、 . . . . . . . . . . . . . . . . . 10510.1.3 Wideband weighting . . . . . . . . . . . . . . . . . . . . . . . . . . . 10710.1.4 Greater wideband weightings . . . . . . . . . . . . . . . . . . . . . . 10810.1.5 Noise weighting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10810.1.6 PCM Qu
42、ality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10910.2 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10910.2.1 FIR module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11110.2.2 IIR Module . . . . . . . . . . . . . . . . . .
43、 . . . . . . . . . . . . . . 14510.3 Tests and portability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15510.4 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15510.4.1 Description of the demonstration programs . . . . . . . . . . . . . . . 1551
44、0.4.2 Example: Calculating frequency responses . . . . . . . . . . . . . . . 15611 EID: Error Insertion Device 16111.1 Description of Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16111.1.1 Simple Channel Model . . . . . . . . . . . . . . . . . . . . . . . . . . 16111.1.2 Bellc
45、ore Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16311.1.3 Error insertion for layered bitstreams . . . . . . . . . . . . . . . . . . 16511.2 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16611.2.1 Bitstream format . . . . . . . . . . . . . .
46、 . . . . . . . . . . . . . . . 16711.2.2 open eid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16811.2.3 open burst eid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16811.2.4 reset burst eid . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16911.2.5 close eid
47、 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16911.2.6 BER generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17011.2.7 FER generator random . . . . . . . . . . . . . . . . . . . . . . . . . 17011.2.8 FER generator burst . . . . . . . . . . . . . . . . . . . . .
48、. . . . 17011.2.9 BER insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171vi ITU-T Software Tool Library, release 200911.2.10 FER module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17211.3 Tests and portability . . . . . . . . . . . . . . . . . . . . . . . . . .
49、. . . . . . 17311.4 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17311.4.1 Description of demonstration programs . . . . . . . . . . . . . . . . . 17311.4.2 Using bit-error insertion routine . . . . . . . . . . . . . . . . . . . . . 17411.4.3 Using frame erasure routine . . . . . . . . . . . . . . . . . . . . . . . 17611.4.4 Using layered bitstream error routine (eid-ev) . . . . . . . . . . . . . . 17712 Duo-MNRU: The Dual-mode Modulated Noise Reference Unit 18312.1 Description of the Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . 18412