1、 ETSI TS 126 410 V14.0.0 (2017-04) Digital cellular telecommunications system (Phase 2+) (GSM); Universal Mobile Telecommunications System (UMTS); LTE; General audio codec audio processing functions; Enhanced aacPlus general audio codec; Floating-point ANSI-C code (3GPP TS 26.410 version 14.0.0 Rele
2、ase 14) floppy3TECHNICAL SPECIFICATION ETSI ETSI TS 126 410 V14.0.0 (2017-04)13GPP TS 26.410 version 14.0.0 Release 14Reference RTS/TSGS-0426410ve00 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 62
3、3 562 00017 - NAF 742 C Association but non lucratif 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
4、of any electronic and/or print versions of the 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
5、 Format (PDF) version kept on a specific network 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 https:/portal.etsi.org/TB
6、/ETSIDeliverableStatus.aspx If you find errors in the present 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 mechanica
7、l, including photocopying and microfilm except as authorized 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 Sta
8、ndards Institute 2017. All rights reserved. DECTTM, PLUGTESTSTM, 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 a
9、re Trade Marks registered and owned by the GSM Association. ETSI ETSI TS 126 410 V14.0.0 (2017-04)23GPP TS 26.410 version 14.0.0 Release 14Intellectual Property Rights IPRs essential or potentially essential to the present document may have been declared to ETSI. The information pertaining to these
10、essential IPRs, if any, is publicly available for ETSI 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 up
11、dates are available on the ETSI Web server (https:/ipr.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 se
12、rver) which are, or may be, or may become, essential to 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 identi
13、ties or GSM identities. These should be interpreted as 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
14、not“, “should“, “should not“, “may“, “need not“, “will“, “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 c
15、itation. ETSI ETSI TS 126 410 V14.0.0 (2017-04)33GPP TS 26.410 version 14.0.0 Release 14Contents Intellectual Property Rights 2g3Foreword . 2g3Modal verbs terminology 2g3Foreword . 4g31 Scope 5g32 References 5g33 Definitions and abbreviations . 5g33.1 Definitions 5g33.2 Abbreviations . 5g34 Floating
16、 point ANSI-C code structure 6g34.1 Contents of the floating point ANSI-C source code . 6g34.2 Program execution 8g34.3 Memory requirements 9g34.3.1 Constants and tables 9g34.3.2 Static memory . 15g34.3.3 Dynamic memory . 16g34.3.4 Maximum stack size . 17g35 File formats 23g35.1 Audio input file (en
17、coder input/decoder output) 23g35.2 Bitstream file format (encoder output/decoder input) 23g35.3 Error pattern file (decoder input) 23g3Annex A (informative): Weighted MOPS and PROM 24g3Annex B (informative): Change history . 25g3History 28g3ETSI ETSI TS 126 410 V14.0.0 (2017-04)43GPP TS 26.410 vers
18、ion 14.0.0 Release 14Foreword This Technical Specification 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 pre
19、sent 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 ch
20、ange 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 410 V14.0.0 (2017-04)53GPP TS 26.410 version 14.
21、0.0 Release 141 Scope The present document contains an electronic copy of the ANSI-C code for the Floating-point Enhanced aacPlus codec 1. 2 References The following documents contain provisions which, through reference in this text, constitute provisions of the present document. References are eith
22、er specific (identified by date of publication, edition number, version number, etc.) or non-specific. For a specific reference, 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 no
23、n-specific reference implicitly refers to the latest version of that document in the same Release as the present document. 1 3GPP TS 26.401: “Enhanced aacPlus general audio codec; General Description“. 2 3GPP TS 26.403: “Enhanced aacPlus general audio codec; Encoder Specification AAC part“. 3 3GPP T
24、S 26.404: “Enhanced aacPlus general audio codec; Encoder Specification SBR part“. 4 3GPP TS 26.405: “Enhanced aacPlus general audio codec; Encoder Specification Parametric Stereo part“. 5 ISO/IEC 14496-3:2001: “Information technology - Coding of audio-visual objects - Part 3: Audio“. 6 ISO/IEC 14496
25、-3:2001/Amd.1:2003: “Bandwidth Extension“. 7 ISO/IEC 14496-3:2001/Amd.1:2003/DCOR1“. 8 ISO/IEC 14496-3:2001/ Amd.2:2004: “Parametric Coding for High Quality Audio. 9 3GPP TS 26.402: Enhanced aacPlus general audio codec; Additional Decoder Tools“. 3 Definitions and abbreviations 3.1 Definitions For t
26、he purposes of the present document, the terms and definitions given in TS 26.401 1, TS 26.403 2, TS 26.404 3, TS 26.405 4 and TS 26.402 9 apply. 3.2 Abbreviations For the purposes of the present document, the following abbreviations apply: AAC Advanced Audio Coding aacPlus Combination of MPEG-4 AAC
27、 and MPEG-4 Bandwidth extension (SBR) Enhanced aacPlus Combination of MPEG-4 AAC, MPEG-4 Bandwidth extension (SBR) and MPEG-4 Parametric Stereo MDCT Modified Discrete Cosine Transform QMF Quadrature Mirror Filter SBR Spectral Band Replication ANSI American National Standards Institute ETSI ETSI TS 1
28、26 410 V14.0.0 (2017-04)63GPP TS 26.410 version 14.0.0 Release 14GSM Global System for Mobile communications I/O Input/OutputRAM Random Access Memory ROM Read Only Memory 4 Floating point ANSI-C code structure This clause gives an overview of the structure of the floating point ANSI-C code and provi
29、des an overview of the contents and organization of the C code attached to the present document. The C code has been verified on the following systems: - IBM PC/AT compatible computers with Windows XP, 2000 and Microsoft Visual C+ v.6.0 compiler. - IBM PC/AT compatible computers with Linux OS and GC
30、C v.3.3 compiler. ANSI-C was selected as the programming language because portability was desirable. 4.1 Contents of the floating point ANSI-C source code The C code distribution is organised in two directories for encoder and decoder and further into several subdirectories, reflecting the major bui
31、lding blocks of the Enhanced aacPlus codec. The file descriptions on root level as well as the directory structure is given as follows: Table 1: Source code directory structure for the encoder (FloatFR_aacPlusenc) Directory Description README.txt information on how to compile Makefile UNIX style enc
32、oder Makefile FloatFR_aacPlusEnc.dsw Win32 MSVC 6.0 encoder workspace FloatFR_aacPlusEnc.dsp Win32 MSVC 6.0 encoder makefile src/ directory for the encoder frontend FloatFR_fastaacenc/ AAC encoder library FloatFR_resamplib/ resampler library FloatFR_sbrenclib/ SBR encoder library Table 2: Source cod
33、e directory structure for the decoder (FloatFR_aacPlusdec) Directory Description README.txt information on how to compile Makefile UNIX style encoder Makefile FloatFR_aacPlusdec_mpeg4.dsw Win32 MSVC 6.0 decoder workspace FloatFR_aacPlusdec_mpeg4.dsp Win32 MSVC 6.0 decodec makefile src/ directory for
34、 the decoder frontend FloatFR_aacdec AAC decoder library FloatFR_sbrdeclib/ SBR decoder library Table 3: Source code directory structure common for encoder and decoder Directory Description FloatFR_bitbuflib/ bitstream reading/writing library FloatFRlib/ general purpose functionalities lib/ precompi
35、led libraries for audio and bitstream file format handling ETSI ETSI TS 126 410 V14.0.0 (2017-04)73GPP TS 26.410 version 14.0.0 Release 14The distributed files with suffix “c“ contain the source code and the files with suffix “h“ are the header files. Within the respective libraries, the RAM data is
36、 contained in “xxx_ram“ files with suffix “c“, the ROM data is contained in “xxx_rom“ files with suffix “c“. Makefiles are provided for the platforms in which the C code has been verified (listed above). Note that the FloatFRlib/, FloatFR_bitbuflib/ and lib/ directory are identical for encoder and d
37、ecoder. A list of source code files with the respective lines of code (pure C instructions) is given below: Table 4: Encoder source code files and lines of code Directory Module Lines of code src/ main.c 332mp4file.c 255FloatFR_fastaacenclib/ qc_main.c 224 aacenc.c 136ms_stereo.c 50spreading.c 10int
38、erface.c 44 bit_cnt.c 588adj_thr.c 592quantize.c 56psy_configuration.c 175 sf_estim.c 508tns_param.c 45grp_data.c 114pre_echo_control.c 22 stprepro.c 149tns.c 358dyn_bits.c 281psy_main.c 232 channel_map.c 52block_switch.c 201band_nrg.c 34transform.c 151 bitenc.c 262line_pe.c 55stat_bits.c 107FloatFR
39、_sbrenclib/ qmf_enc.c 565 ton_corr.c 287fram_gen.c 688env_bit.c 56env_est.c 630 mh_det.c 515hybrid.c 139bit_sbr.c 375ps_bitenc.c 225 sbr_main.c 355tran_det.c 183sbr_misc.c 49code_env.c 290 nf_est.c 195freq_sca.c 309invf_est.c 140ps_enc.c 299 FloatFR_resamplib/ iir32resample.c 71 resampler.c 68ETSI E
40、TSI TS 126 410 V14.0.0 (2017-04)83GPP TS 26.410 version 14.0.0 Release 14Table 5: Decoder source code files and lines of code Directory Module Lines of code src/ main.c 299fileifc.c 173spline_resampler.c 172 FloatFR_aacdec/ aacdecoder.c 172 streaminfo.c 10 channelinfo.c 102stereo.c 78longblock.c 234
41、 shortblock.c 241pulsedata.c 24block.c 163 pns.c 89imdct.c 50tns.c 137 bitstream.c 15channel.c 92conceal.c 245 dse.c 9 FloatFR_sbrdeclib/ env_dec.c 370FFR_aacPLUScheck.c 32 sbr_bitb.c 37env_calc.c 775lpp_tran.c 504 sbrdecoder.c 514sbr_dec.c 218sbr_crc.c 45 sbr_fft.c 615hybrid.c 140ps_bitdec.c 223 hu
42、ff_dec.c 9 env_extr.c 655freq_sca.c 337 ps_dec.c 317qmf_dec.c 526Table 6: Common source code files and lines of code Directory Module Lines of code FloatFR_bitbuflib/ bitbuffer.c 111 FloatFRlib/ cfftn.c 649transcendent.c 15 4.2 Program execution The Enhanced aacPlus codec is implemented in two progr
43、ams: - enhAacPlusEnc.exe - enhAacPlusDec.exe The programs should be called like: - enhAacPlusEnc.exe - enhAacPlusDec.exe error_pattern_file The audio files contain 16-bit linear encoded PCM samples with wav header, the bitstream files are of 3GPP type an the error patter file is a ASCII file, see se
44、ction 5. The encoder and decoder command line handling is also explained by running the applications without input arguments. ETSI ETSI TS 126 410 V14.0.0 (2017-04)93GPP TS 26.410 version 14.0.0 Release 144.3 Memory requirements The data types of variables and tables used in the floating-point imple
45、mentation are plain ANSI-C data types, the following types are used: - char - unsigned char - short - int - unsigned int - float 4.3.1 Constants and tables This clause contains a listing of all constants and tables contributing to the ROM requirements of the encoder and decoder. ETSI ETSI TS 126 410
46、 V14.0.0 (2017-04)103GPP TS 26.410 version 14.0.0 Release 14Table 7: Encoder constants and tables ETSI ETSI TS 126 410 V14.0.0 (2017-04)113GPP TS 26.410 version 14.0.0 Release 14Name Data type Size word Allocated in Source File Description LongWindowSine float 1024 aac_rom.c Window coefficients Shor
47、tWindowSine float 128 aac_rom.c Window coefficients LongWindowKBD float 1024 aac_rom.c Window coefficients fftTwiddleTab float 513 aac_rom.c FFT twiddle coefficients quantTableQ float 16 aac_rom.c Quantizer table, used for efficient pow () implementation quantTableE float 17 aac_rom.c Quantizer tabl
48、e, used for efficient pow () implementation invQuantTableQ float 16 aac_rom.c Quantizer table, used for efficient pow () implementation invQuantTableE float 17 aac_rom.c Quantizer table, used for efficient pow () implementation pow4_3_tab float 64 aac_rom.c Quantizer table, used for efficient pow ()
49、 implementation p_8000_mono_long float 4 aac_rom.c TNS tuning parameters p_8000_stereo_long float 4 aac_rom.c TNS tuning parameters p_8000_mono_short float 4 aac_rom.c TNS tuning parameters p_8000_stereo_short float 4 aac_rom.c TNS tuning parameters p_16000_mono_long float 4 aac_rom.c TNS tuning parameters p_16000_stereo_long float 4 aac_rom.c TNS tuning parameters p_16000_mono_short float 4 aac_rom.c TNS tuning parameters p_16000_stereo_short float 4 aac_rom.c TNS tuning parameters p_24000_mono_long float 4 aac_