1、 International Telecommunication Union ITU-T G.729.1TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU Amendment 5(12/2008) SERIES G: TRANSMISSION SYSTEMS AND MEDIA, DIGITAL SYSTEMS AND NETWORKS Digital terminal equipments Coding of voice and audio signals G.729-based embedded variable bit-rate coder:
2、An 8-32 kbit/s scalable wideband coder bitstream interoperable with G.729 Amendment 5: New Annex D (Reference floating-point implementation for G.729.1 Annex C DTX/CNG) and corrections to the main body and Annex B Recommendation ITU-T G.729.1 (2006) Amendment 5 ITU-T G-SERIES RECOMMENDATIONS TRANSMI
3、SSION SYSTEMS AND MEDIA, DIGITAL SYSTEMS AND NETWORKS INTERNATIONAL TELEPHONE CONNECTIONS AND CIRCUITS G.100G.199 GENERAL CHARACTERISTICS COMMON TO ALL ANALOGUE CARRIER-TRANSMISSION SYSTEMS G.200G.299 INDIVIDUAL CHARACTERISTICS OF INTERNATIONAL CARRIER TELEPHONE SYSTEMS ON METALLIC LINES G.300G.399
4、GENERAL CHARACTERISTICS OF INTERNATIONAL CARRIER TELEPHONE SYSTEMS ON RADIO-RELAY OR SATELLITE LINKS AND INTERCONNECTION WITH METALLIC LINES G.400G.449 COORDINATION OF RADIOTELEPHONY AND LINE TELEPHONY G.450G.499 TRANSMISSION MEDIA AND OPTICAL SYSTEMS CHARACTERISTICS G.600G.699 DIGITAL TERMINAL EQUI
5、PMENTS G.700G.799 General G.700G.709 Coding of voice and audio signals G.710G.729 Principal characteristics of primary multiplex equipment G.730G.739 Principal characteristics of second order multiplex equipment G.740G.749 Principal characteristics of higher order multiplex equipment G.750G.759 Prin
6、cipal characteristics of transcoder and digital multiplication equipment G.760G.769 Operations, administration and maintenance features of transmission equipment G.770G.779 Principal characteristics of multiplexing equipment for the synchronous digital hierarchy G.780G.789 Other terminal equipment G
7、.790G.799 DIGITAL NETWORKS G.800G.899 DIGITAL SECTIONS AND DIGITAL LINE SYSTEM G.900G.999 QUALITY OF SERVICE AND PERFORMANCE GENERIC AND USER-RELATED ASPECTS G.1000G.1999 TRANSMISSION MEDIA CHARACTERISTICS G.6000G.6999 DATA OVER TRANSPORT GENERIC ASPECTS G.7000G.7999 PACKET OVER TRANSPORT ASPECTS G.
8、8000G.8999ACCESS NETWORKS G.9000G.9999 For further details, please refer to the list of ITU-T Recommendations. Rec. ITU-T G.729.1 (2006)/Amd.5 (12/2008) i Recommendation ITU-T G.729.1 G.729-based embedded variable bit-rate coder: An 8-32 kbit/s scalable wideband coder bitstream interoperable with G.
9、729 Amendment 5 New Annex D (Reference floating-point implementation for G.729.1 Annex C DTX/CNG) and corrections to the main body and Annex B Summary New Annex D introduced by Amendment 5 provides an alternative implementation using floating point arithmetic of the discontinuous transmission (DTX)
10、and comfort noise generation (CNG) of Annex C which uses fixed-point arithmetic. Besides this new annex, Amendment 5 to Recommendation ITU-T G.729.1 incorporates changes needed to correct defects identified in the G.729.1 C source code for its main body and Annex B, and provides a revised set of tes
11、t vectors. The corrections bring changes necessary to the existing C code (Release 1.3) of the main body and Annex B of Recommendation ITU-T G.729.1. The corrected C code is labelled as Release 1.4. For completeness, the electronic attachment to this amendment comprises: 1) Complete ANSI C source co
12、de (version 1.4) for G.729.1 main body and Annex B, including updated test vectors. 2) G.729.1 Annex D floating-point DTX/CNG ANSI C source code (version 1.4). Source Amendment 5 to Recommendation ITU-T G.729.1 (2006) was approved on 7 December 2008 by ITU-T Study Group 16 (2009-2012) under Recommen
13、dation ITU-T A.8 procedure. Keywords Comfort noise generation, discontinuous transmission, noise coding, silence compression. ii Rec. ITU-T G.729.1 (2006)/Amd.5 (12/2008) FOREWORD The International Telecommunication Union (ITU) is the United Nations specialized agency in the field of telecommunicati
14、ons, information and communication technologies (ICTs). The ITU Telecommunication Standardization Sector (ITU-T) is a permanent organ of ITU. ITU-T is responsible for studying technical, operating and tariff questions and issuing Recommendations on them with a view to standardizing telecommunication
15、s on a worldwide basis. The World Telecommunication Standardization Assembly (WTSA), which meets every four years, establishes the topics for study by the ITU-T study groups which, in turn, produce Recommendations on these topics. The approval of ITU-T Recommendations is covered by the procedure lai
16、d down in WTSA Resolution 1. In some areas of information technology which fall within ITU-Ts purview, the necessary standards are prepared on a collaborative basis with ISO and IEC. NOTE In this Recommendation, the expression “Administration“ is used for conciseness to indicate both a telecommunica
17、tion administration and a recognized operating agency. Compliance with this Recommendation is voluntary. However, the Recommendation may contain certain mandatory provisions (to ensure e.g. interoperability or applicability) and compliance with the Recommendation is achieved when all of these mandat
18、ory provisions are met. The words “shall“ or some other obligatory language such as “must“ and the negative equivalents are used to express requirements. The use of such words does not suggest that compliance with the Recommendation is required of any party. INTELLECTUAL PROPERTY RIGHTS ITU draws at
19、tention to the possibility that the practice or implementation of this Recommendation may involve the use of a claimed Intellectual Property Right. ITU takes no position concerning the evidence, validity or applicability of claimed Intellectual Property Rights, whether asserted by ITU members or oth
20、ers outside of the Recommendation development process. As of the date of approval of this Recommendation, ITU had received notice of intellectual property, protected by patents, which may be required to implement this Recommendation. However, implementers are cautioned that this may not represent th
21、e latest information and are therefore strongly urged to consult the TSB patent database at http:/www.itu.int/ITU-T/ipr/. ITU 2009 All rights reserved. No part of this publication may be reproduced, by any means whatsoever, without the prior written permission of ITU. Rec. ITU-T G.729.1 (2006)/Amd.5
22、 (12/2008) iii CONTENTS Page 1 Corrections to the C source code for the main body of G.729.1 1 1.1 Correction 1 1 1.2 Correction 2 1 1.3 Correction 3 2 2 Corrections to the C source code for G.729.1 Annex B . 2 2.1 Correction 1 2 2.2 Correction 2 2 2.3 Correction 3 2 2.4 Correction 4 2 2.5 Correctio
23、n 5 3 3 New Annex D . 3 Electronic attachment: C source code and test vectors Rec. ITU-T G.729.1 (2006)/Amd.5 (12/2008) 1 Recommendation ITU-T G.729.1 G.729-based embedded variable bit-rate coder: An 8-32 kbit/s scalable wideband coder bitstream interoperable with G.729 Amendment 5 New Annex D (Refe
24、rence floating-point implementation for G.729.1 Annex C DTX/CNG) and corrections to the main body and Annex B 1 Corrections to the C source code for the main body of Recommendation ITU-T G.729.1 1.1 Correction 1 The following change is proposed in G729EV_CELP2S_decod.c around line 567: #ifdef TDBWE_
25、BUG nb_celp_param-power_fixi0_2sub = L_shl(L_temp2, 2); #else nb_celp_param-power_fixi0_2sub = L_temp2; #endif 1.2 Correction 2 In G729EV_CELP2S_encod.c: IF(sub(pCodStat-rate, 12000) = 0) () G729EV_G729_Syn_filt2(Aq, It is proposed to update the following C-code at line 813. /* at this stage DataSyn
26、th comprises the synthesis at 12k while synth_ptr comprises the synthesis at 8k if the rate is 8k, overwrite DataSynth */ IF(sub(pCodStat-rate, 8000) = 0) G729EV_G729_Copy(synth_ptr, synth, G729EV_G729_L_FRAME); With the following one /* at this stage Synth comprises the synthesis at 12k while synth
27、_ptr comprises the synthesis at 8k if the rate is 8k, overwrite Synth */ IF (sub(pCodStat-rate, 8000) = 0) G729EV_G729_Copy(synth_ptr, synth, G729EV_G729_L_FRAME); G729EV_G729_Copy(pCodStat-mem_syn, pCodStat-mem_synth, G729EV_G729_M); 2 Rec. ITU-T G.729.1 (2006)/Amd.5 (12/2008) 1.3 Correction 3 In t
28、he function G729EV_CELP2S_encod.c the following initialization is done: G729EV_G729_Set_zero(pCodStat-old_speech, G729EV_G729_L_TOTAL); It is proposed to correct it with: G729EV_G729_Set_zero(pCodStat-old_speech, G729EV_G729_MEM_SPEECH); 2 Corrections to the C source code for G.729.1 Annex B 2.1 Cor
29、rection 1 At line 147 in G729EV_G729B_dec_sid.c change the following line: G729EV_G729_Copy(float *) lspcb1PtrTab_1index1, tmpbuf, G729EV_G729_M); with: G729EV_G729_Copy(REAL *) lspcb1PtrTab_1index1, tmpbuf, G729EV_G729_M); 2.2 Correction 2 Update the following C-code at line 607 in G729EV_CELP2S_en
30、cod.c. if (pCodStat-rate = 8000) G729EV_G729_Copy(synth_ptr, DataSynth, G729EV_G729_L_FRAME); With the following one if (pCodStat-rate = 8000) G729EV_G729_Copy(synth_ptr, DataSynth, G729EV_G729_L_FRAME); G729EV_G729_Copy(pCodStat-mem_syn, pCodStat-mem_synth, G729EV_G729_M); 2.3 Correction 3 The chan
31、ge is in G729EV_TDBWE_generate_excitation.c, the following C-code: return (REAL)tmp; is replaced with return (REAL)tmp/(REAL)65536. + (REAL).5; 2.4 Correction 4 In G.729.1 Annex B, in the G.729EV_MAIN_encod.c at line 218, the following initializations are done when the bitrate is higher than 14 kbit
32、/s but the input signal is a narrowband signal (the HB encoding is not done): coder_param_ptr0 = 0; coder_param_ptr1 = 4; coder_param_ptr2 = 4; coder_param_ptr3 = 0; coder_param_ptr4 = 21; coder_param_ptr5 = 8; Aligned with the fixed-point C-code where the following initializations are done: coder_p
33、aram_ptr0 = (Word16) 28; coder_param_ptr1 = (Word16) 71; coder_param_ptr2 = (Word16) 71; coder_param_ptr3 = (Word16) 30; coder_param_ptr4 = (Word16) 26; coder_param_ptr5 = (Word16) 1; Rec. ITU-T G.729.1 (2006)/Amd.5 (12/2008) 3 2.5 Correction 5 In the function G729EV_CELP2S_encod.c the following ini
34、tialization is done: G729EV_G729_Set_zero(pCodStat-old_speech, G729EV_G729_L_TOTAL); It is corrected with: G729EV_G729_Set_zero(pCodStat-old_speech, G729EV_G729_MEM_SPEECH); 4 Rec. ITU-T G.729.1 (2006)/Amd.5 (12/2008) 3 New Annex D Annex D Reference floating-point implementation for G.729.1 Annex C
35、(DTX/CNG) D.1 Scope This annex describes an alternative implementation of G.729.1 Annex C based on floating-point arithmetic. It is fully interoperable with the fixed point version of G.729.1 Annex C. This annex includes an electronic attachment containing reference C-code for floating-point impleme
36、ntation. The design of a set of test vectors remains for further study. D.2 References See clause 2 of Recommendation ITU-T G.729.1. D.3 Overview G.729.1 Annex C provides bit-exact, fixed-point specification of a discontinuous transmission (DTX) and comfort noise generation (CNG) algorithm for 8-32
37、kbit/s scalable wideband coder bitstream interoperable with G.729. Exact details of these specifications are given in bit-exact, fixed-point C-code available as an integral part of G.729.1. This annex describes and defines an alternative implementation of G.729.1 Annex C based on floating-point arit
38、hmetic. D.4 Algorithmic description This floating-point version of G.729.1 Annex C has the same algorithm steps as the fixed-point version. Similarly, the bitstream is identical to that of G.729.1 Annex C. For algorithmic details, see the description in Annex C. D.5 ANSI C-Code The ANSI C-code avail
39、able as an electronic attachment to Annex D represents the normative specification of this annex. This floating-point implementation is based on the fixed-point implementation approved as part of G.729.1 Annex C. The algorithmic description given by the C-code shall take precedence over the texts co
40、ntained in G.729.1 Annex D. More recent versions may become available through Corrigenda or Amendments to G.729, and the latest available version from ITU-T is to be used. The structure of the floating-point source code is related to the corresponding fixed-point source code. The CodecTypedef.h file
41、 contains a statement enabling the definition of all floating-point variables and constants as type either double or single. Tables D.1 to D.2 give the list of the software file names with a brief description. Note that files related to basic operators or mathematical operations are not used for flo
42、ating-point arithmetic. A float-to-short conversion routine has been added to the file G729EV_TDAC_util.c. Rec. ITU-T G.729.1 (2006)/Amd.5 (12/2008) 5 Table D.1 Summary of encoder specific routines Filename Description G729EV_CELP2S_acelp_ca.c CELP2S fixed codebook search G729EV_CELP2S_encod.c CELP2
43、S encoder routine G729EV_FEC_ferenc.c FEC encoder routine G729EV_G729_acelp_ca.c G729EV fixed codebook search G729EV_G729_lpc.c G729 LP analysis G729EV_G729_pitch.c G729EV pitch search G729EV_G729_pwf.c G729 computation of perceptual weighting coefficients G729EV_G729_qua_gain.c G729 gain quantizer
44、G729EV_G729_qua_lsp.c G729 LSP quantizer G729EV_G729B_dtx.c DTX/SID routine with G.729B embedded G729EV_G729B_qsidlsf.c LSF vector quantization routine G729EV_MAIN_encod.c MAIN encoder routine G729EV_TDAC_encod.c TDAC encoder routine G729EV_TDBWE_encoder.c TDBWE encoder routine G729EV_TDBWE_vector_q
45、uantization.c TDBWE vector quantization Table D.2 Summary of decoder specific routines Filename Description G729EV_CELP2S_decod.c CELP2S decoder routine G729EV_CELP2S_syn.c CELP2S core synthesis functions G729EV_CELP2S_post.c CELP2S postfiltering G729EV_FEC_clasdec.c FEC signal classification routin
46、es G729EV_FEC_decbfi.c FEC Frame Erasure Concealment functions G729EV_FEC_ferdec.c FEC information decoder G729EV_FEC_onset.c FEC codebook reconstruction routines G729EV_FEC_pit_updt.c FEC pitch update functions G729EV_G729_de_acelp.c G729 algebraic codebook decoding G729EV_G729_dec_gain.c G729 gain
47、 decoding G729EV_G729_dec_lag3.c G729 adaptive-codebook index decoding G729EV_G729_lspdec.c G729 LSP decoding G729EV_G729_pst.c G729 postfilter routines G729EV_G729B_dec_sid.c G729B SID decoder G729EV_G729B_util.c G729B utility routines G729EV_MAIN_decod.c MAIN decoder routine G729EV_MAIN_envadaptio
48、n.c MAIN pre/post echo reduction routines G729EV_TDAC_decod.c TDAC decoder routine G729EV_TDAC_post.c TDAC post processing 6 Rec. ITU-T G.729.1 (2006)/Amd.5 (12/2008) Table D.2 Summary of decoder specific routines Filename Description G729EV_TDBWE_compression.c TDBWE post processing G729EV_TDBWE_dec
49、oder.c TDBWE decoder routine G729EV_TDBWE_fir.c TDBWE filter functions G729EV_TDBWE_frequency_envelope_shaping.c TDBWE frequency envelope shaping functions G729EV_TDBWE_generate_excitation.c TDBWE excitation generation functions G729EV_TDBWE_time_envelope_shaping.c TDBWE time envelope shaping functions Printed in Switzerland Geneva, 2009 SERIES OF ITU-T RECOMMENDATIONS Series A Organization of the work of ITU-T Series D General tariff principles Series E Overall network operation, telephone servi