1、 ETSI TS 126 104 V13.0.0 (2016-01) Digital cellular telecommunications system (Phase 2+); Universal Mobile Telecommunications System (UMTS); LTE; ANSI-C code for the floating-point Adaptive Multi-Rate (AMR) speech codec (3GPP TS 26.104 version 13.0.0 Release 13) floppy3TECHNICAL SPECIFICATION ETSI E
2、TSI TS 126 104 V13.0.0 (2016-01)13GPP TS 26.104 version 13.0.0 Release 13Reference RTS/TSGS-0426104vd00 Keywords GSM,LTE,UMTS ETSI 650 Route des Lucioles F-06921 Sophia Antipolis Cedex - FRANCE Tel.: +33 4 92 94 42 00 Fax: +33 4 93 65 47 16 Siret N 348 623 562 00017 - NAF 742 C Association but non l
3、ucratif enregistre la Sous-Prfecture de Grasse (06) N 7803/88 Important notice The present document can be downloaded from: http:/www.etsi.org/standards-search The present document may be made available in electronic versions and/or in print. The content of any electronic and/or print versions of th
4、e present document shall not be modified without the prior written authorization of ETSI. In case of any existing or perceived difference in contents between such versions and/or in print, the only prevailing document is the print of the Portable Document Format (PDF) version kept on a specific netw
5、ork drive within ETSI Secretariat. Users of the present document should be aware that the document may be subject to revision or change of status. Information on the current status of this and other ETSI documents is available at http:/portal.etsi.org/tb/status/status.asp If you find errors in the p
6、resent document, please send your comment to one of the following services: https:/portal.etsi.org/People/CommiteeSupportStaff.aspx Copyright Notification No part may be reproduced or utilized in any form or by any means, electronic or mechanical, including photocopying and microfilm except as autho
7、rized by written permission of ETSI. The content of the PDF version shall not be modified without the written authorization of ETSI. The copyright and the foregoing restriction extend to reproduction in all media. European Telecommunications Standards Institute 2016. All rights reserved. DECTTM, PLU
8、GTESTSTM, UMTSTMand the ETSI logo are Trade Marks of ETSI registered for the benefit of its Members. 3GPPTM and LTE are Trade Marks of ETSI registered for the benefit of its Members and of the 3GPP Organizational Partners. GSM and the GSM logo are Trade Marks registered and owned by the GSM Associat
9、ion. ETSI ETSI TS 126 104 V13.0.0 (2016-01)23GPP TS 26.104 version 13.0.0 Release 13Intellectual Property Rights IPRs essential or potentially essential to the present document may have been declared to ETSI. The information pertaining to these essential IPRs, if any, is publicly available for ETSI
10、members and non-members, and can be found in ETSI SR 000 314: “Intellectual Property Rights (IPRs); Essential, or potentially Essential, IPRs notified to ETSI in respect of ETSI standards“, which is available from the ETSI Secretariat. Latest updates are available on the ETSI Web server (https:/ipr.
11、etsi.org/). Pursuant to the ETSI IPR Policy, no investigation, including IPR searches, has been carried out by ETSI. No guarantee can be given as to the existence of other IPRs not referenced in ETSI SR 000 314 (or the updates on the ETSI Web server) which are, or may be, or may become, essential to
12、 the present document. Foreword This Technical Specification (TS) has been produced by ETSI 3rd Generation Partnership Project (3GPP). The present document may refer to technical specifications or reports using their 3GPP identities, UMTS identities or GSM identities. These should be interpreted as
13、being references to the corresponding ETSI deliverables. The cross reference between GSM, UMTS, 3GPP and ETSI identities can be found under http:/webapp.etsi.org/key/queryform.asp. Modal verbs terminology In the present document “shall“, “shall not“, “should“, “should not“, “may“, “need not“, “will“
14、, “will not“, “can“ and “cannot“ are to be interpreted as described in clause 3.2 of the ETSI Drafting Rules (Verbal forms for the expression of provisions). “must“ and “must not“ are NOT allowed in ETSI deliverables except when used in direct citation. ETSI ETSI TS 126 104 V13.0.0 (2016-01)33GPP TS
15、 26.104 version 13.0.0 Release 13Contents Intellectual Property Rights 2g3Foreword . 2g3Modal verbs terminology 2g3Foreword . 4g31 Scope 5g32 Normative references . 5g33 Definitions and abbreviations . 6g33.1 Definitions 6g33.2 Abbreviations . 6g34 C code structure 6g34.1 Contents of the C source co
16、de 6g34.2 Program execution 7g34.3 Coding style 7g34.4 Code hierarchy . 7g34.5 Variables, constants and tables . 10g34.5.1 Description of constants used in the C code . 11g34.5.2 Description of fixed tables used in the C code 11g34.5.3 Static variables used in the C code . 13g35 Homing procedure 16g
17、36 File formats 22g36.1 Speech file (encoder input / decoder output) 22g36.2 Mode control file (encoder input) . 22g36.3 Parameter bitstream file (encoder output / decoder input) . 22g3Annex A (informative): Change History 23g3History 24g3ETSI ETSI TS 126 104 V13.0.0 (2016-01)43GPP TS 26.104 version
18、 13.0.0 Release 13Foreword This Technical Specification (TS) has been produced by the 3rdGeneration Partnership Project (3GPP). The contents of the present document are subject to continuing work within the TSG and may change following formal TSG approval. Should the TSG modify the contents of the p
19、resent document, it will be re-released by the TSG with an identifying change of release date and an increase in version number as follows: Version x.y.z where: x the first digit: 1 presented to TSG for information; 2 presented to TSG for approval; 3 or greater indicates TSG approved document under
20、change control. y the second digit is incremented for all changes of substance, i.e. technical enhancements, corrections, updates, etc. z the third digit is incremented when editorial only changes have been incorporated in the document. ETSI ETSI TS 126 104 V13.0.0 (2016-01)53GPP TS 26.104 version 1
21、3.0.0 Release 131 Scope This Technical Standard (TS) contains an electronic copy of the ANSI-C code for a floating-point implementation of the Adaptive Multi-Rate codec. This floating-point codec specification is mainly targeted to be used in multimedia applications such as the 3G-324M terminal spec
22、ified in 3GPP TS 26.110, or in packet-based (e.g., H.323) applications. The bit-exact fixed-point ANSI-C code in 3GPP TS 26.073 remains the preferred implementation for all applications, but the floating-point codec may be used instead of the fixed-point codec when the implementation platform is bet
23、ter suited for a floating-point implementation. It has been verified that the fixed-point and floating-point codecs interoperate with each other without any artefacts. The floating-point ANSI-C code in this specification is the only standard conforming non-bit-exact implementation of the Adaptive Mu
24、lti Rate speech transcoder (3GPP TS 26.090 2), Voice Activity Detection (3GPP TS 26.094 6), comfort noise generation (3GPP TS 26.092 4), and source controlled rate operation (3GPP TS 26.093 5). The floating-point code also contains example solutions for substituting and muting of lost frames (3GPP T
25、S 26.091 3). The fixed-point specification in 26.073 shall remain the only allowed implementation for the 3G mandatory speech service and the use of the floating-point codec is strictly limited to other services. The floating-point encoder in this specification is a non-bit-exact implementation of t
26、he fixed-point encoder producing quality indistinguishable from that of the fixed-point encoder. The decoder in this specification is functionally a bit-exact implementation of the fixed-point decoder, but the code has been optimized for speed and the standard fixed-point libraries are not used as s
27、uch. 2 Normative references The following documents contain provisions which, through reference in this text, constitute provisions of the present document. References are either specific (identified by date of publication, edition number, version number, etc.) or non-specific. For a specific refere
28、nce, subsequent revisions do not apply. For a non-specific reference, the latest version applies. In the case of a reference to a 3GPP document (including a GSM document), a non-specific reference implicitly refers to the latest version of that document in the same Release as the present document. 1
29、 3GPP TS 26.074: “AMR Speech Codec; Test sequences“. 2 3GPP TS 26.090: “AMR Speech Codec; Speech transcoding“. 3 3GPP TS 26.091: “AMR Speech Codec; Substitution and muting of lost frames“. 4 3GPP TS 26.092: “AMR Speech Codec; Comfort noise aspects“. 5 3GPP TS 26.093: “AMR Speech Codec; Source contro
30、lled rate operation“. 6 3GPP TS 26.094: “AMR Speech Codec; Voice Activity Detection“. 7 3GPP TS 26.073: “ANSI-C code for the Adaptive Multi Rate speech codec“. 8 3GPP TS 26.101: “AMR Speech Codec Frame Structure“. 9 RFC 3267: “A Real-Time Transport Protocol (RTP) Payload Format and File Storage Form
31、at for Adaptive Multi-Rate (AMR) and Adaptive Multi-Rate Wideband (AMR-WB) Audio Codecs“, June 2002. ETSI ETSI TS 126 104 V13.0.0 (2016-01)63GPP TS 26.104 version 13.0.0 Release 133 Definitions and abbreviations 3.1 Definitions Definition of terms used in the present document, can be found in 3GPP T
32、S 26.090 2, 3GPP TS 26.091 3, 3GPP TS 26.092 4, 3GPP TS 26.093 5, and 3GPP TS 26.094 6. 3.2 Abbreviations For the purpose of the present document, the following abbreviations apply: ANSI American National Standards Institute ETS European Telecommunication Standard GSM Global System for Mobile commun
33、ications I/O Input/OutputRAM Random Access Memory ROM Read Only Memory 4 C code structure This clause gives an overview of the structure of the floating-point C code and provides an overview of the contents and organization of the C code attached to this document. The basic structure of the floating
34、-point C code follows that of the bit-exact fixed-point code 7. The C code has been verified on the following systems: - IBM PC/AT compatible computers with Windows NT40 and Microsoft Visual C+ v.5.0 compiler; - HP workstations and GNU gcc compiler; - IBM PC/AT compatible computers with Linux operat
35、ing system and GNU gcc compiler; ANSI-C 9899 was selected as the programming language because portability was desirable 4.1 Contents of the C source code The C code distribution has all files in the root level. The files with suffix “c“ contain the source code and the files with suffix “h“ are the h
36、eader files. The ROM data is contained in “rom“ files with suffix “h“. The C code does not contain any speech coder installation verification data files. Verification for the bit-exact decoder is defined in specification 3GPP TS 26.073 7. Makefiles are provided for the platforms in which the C code
37、has been verified (listed above). Once the software is installed, this directory will have a compiled version of encoder and decoder and all the object files. ETSI ETSI TS 126 104 V13.0.0 (2016-01)73GPP TS 26.104 version 13.0.0 Release 134.2 Program execution The Adaptive Multi-Rate codec is impleme
38、nted in two programs: - (encoder) speech encoder; - (decoder) speech decoder. The programs should be called like: encoder -dtx mode speech_file bitstream_file or encoder -dtx -modefile=mode_file speech_file bitstream_file decoder The speech files contain 16-bit linear encoded PCM speech samples and
39、the parameter files contain encoded speech data and some additional flags. See the file readme.txt for more information on how to run the encoder and decoder programs. 4.3 Coding style The C code has been written according to structuring conventions used in 3GPP TS 26.073 7. Encoder and decoder stat
40、e structures are allocated and initialized with special initializing functions. There are no separate functions for each module, as opposed to the fixed-point implementation in 3GPP TS 26.073 7. 4.4 Code hierarchy The code hierarchy follows the one specified in 3GPP TS 26.073 7. Figures 1 to 4 are c
41、all graphs that show the functions used in the speech codec, including the functions of VAD, DTX, and comfort noise generation. Each column represents a call level and each cell a function. The functions contain calls to the functions in rightwards neighbouring cells. The time order in the call grap
42、hs is from the top downwards as the processing of a frame advances. All standard C functions, such as printf(), fwrite(), etc., have been omitted. The encoder call graph is broken down into three separate call graphs, shown in Tables 1 to 3. ETSI ETSI TS 126 104 V13.0.0 (2016-01)83GPP TS 26.104 vers
43、ion 13.0.0 Release 13Table 1: Speech encoder call structure Speech_Encode_Frame Pre_Process cod_amr vad filter_bank first_filter_stagefilter5 filter3 level_calculation vad_decision complex_estimate_adapt complex_vadnoise_estimate_update update_cntrl hangover_addition tx_dtx_handler lpc AutocorrLevin
44、sonlsp Az_lsp Chebps Q_plsf_5 Lsp_lsfLsf_wtVq_subvecVq_subvec_s Reorder_lsfLsf_lspInt_lpc_1and3_2 Lsp_az Get_lsp_pol Int_lpc_1and3 Lsp_az Get_lsp_polQ_plsf_3 Lsp_lsf Lsf_wtVq_subvec3Vq_subvec4 Reorder_lsf Lsf_lspInt_lpc_1to3_2 Lsp_az Get_lsp_pol Int_lpc_1to3 Lsp_az Get_lsp_poldtx_buffer Dotproduct40
45、 dtx_enc Lsp_lsfReorder_lsf Lsf_lsp Q_plsf_3 Lsp_lsf Lsf_wtVq_subvec3 Vq_subvec4Reorder_lsf Lsf_lspcheck_lsp pre_big Weight_Ai Residu Syn_filtol_ltp Pitch_ol vad_tone_detection_updateLag_max vad_tone_detection comp_corr hp_maxPitch_ol_wgh comp_corr Lag_max_wght vad_tone_detection_update vad_tone_det
46、ectiongmed_n hp_max2vad_pitch_detection subframePreProc Weight_Ai Syn_filtResidu cl_ltp Pitch_fr getRangeNorm_Corr Dotproduct40 searchFrac Interpol_3or6Enc_lag3 Enc_lag6Pred_lt_3or6 G_pitch Dotproduct40 check_gp_clipping q_gain_pitchcbsearch see Table 2 gainQuant see Table 3 update_gp_clipping Copy
47、subframePostProc Syn_filtPred_lt_3or6 Convolve ETSI ETSI TS 126 104 V13.0.0 (2016-01)93GPP TS 26.104 version 13.0.0 Release 13Table 2: cbsearch call structure cbsearch code_2i40_9bits cor_h_x Dotproduct40 set_signcor_h Dotproduct40 search_2i40_9bits build_code_2i40_9bits code_2i40_11bits cor_h_x Dot
48、product40 set_sign cor_h Dotproduct40search_2i40_11bits build_code_2i40_11bitscode_3i40_14bits cor_h_x Dotproduct40 set_signcor_h Dotproduct40 search_3i40 build_code_3i40_14bits code_4i40_17bits cor_h_x Dotproduct40 set_sign cor_h Dotproduct40search_4i40 build_code_4i40 code_8i40_31bits cor_h_x Dotp
49、roduct40 set_sign12k2 Dotproduct40cor_h Dotproduct40 search_8i40 build_code_8i40_31bits compress_code compress10 code_10i40_35bits cor_h_x Dotproduct40 set_sign12k2 Dotproduct40cor_h Dotproduct40 search_10i40 build_code_10i40_35bits q_p Table 3: gainQuant call structure gainQuant gc_pred Dotproduct40 calc_filt_energies Dotproduct40Dotproduct40 MR475_update_unq_predR475_gain_quant gc_pred Dotproduct40 q_gain_code MR795_gain_quant q_gain_pitch MR795_gain_code_quant3 calc_unfilt_energies Dotproduct40 gain_adapt
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1