1、 ETSI TS 1Digital cellular telecoUniversal Mobile TelExtended Adaptive MultFloatin(3GPP TS 26.3floppy3TECHNICAL SPECIFICATION126 304 V13.0.0 (2016communications system (Phaelecommunications System (LTE; ulti-Rate - Wideband (AMR-WBting-point ANSI-C code .304 version 13.0.0 Release 1316-01) hase 2+);
2、 (UMTS); WB+) codec; 13) ETSI ETSI TS 126 304 V13.0.0 (2016-01)13GPP TS 26.304 version 13.0.0 Release 13Reference RTS/TSGS-0426304vd00 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 -
3、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 of any electro
4、nic 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 Format (PDF)
5、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 http:/portal.etsi.org/tb/status/status.
6、asp 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 mechanical, including photocopyin
7、g 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 Standards Institute 2016. A
8、ll 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 are Trade Marks registere
9、d and owned by the GSM Association. ETSI ETSI TS 126 304 V13.0.0 (2016-01)23GPP TS 26.304 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,
10、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 updates are available on t
11、he 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 server) which are, or may
12、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 identities or GSM identities.
13、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 not“, “should“, “should
14、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 citation. ETSI ETSI TS 12
15、6 304 V13.0.0 (2016-01)33GPP TS 26.304 version 13.0.0 Release 13Contents Intellectual Property Rights 2g3Foreword . 2g3Modal verbs terminology 2g3Foreword . 4g31 Scope 5g32 References 5g33 Definitions, symbols and abbreviations . 5g33.1 Definitions 5g33.2 Abbreviations . 5g34 C code structure 6g34.1
16、 Contents of the C source code 6g34.2 Program execution 6g34.3 Code hierarchy . 6g34.4 Variables, constants and tables . 19g34.4.1 Description of fixed tables used in the C-code . 19g34.4.2 Static variables used in the C-code . 20g35 File formats 24g35.1 Audio file (encoder input/decoder output) . 2
17、4g35.2 Parameter bitstream file (encoder output/decoder input) . 25g3Annex A (informative): AMR-WB+ user guide . 26g3A.1 Encoder usage 26g3A.1.1 Simple mode . 26g3A.1.2 Flexible mode . 27g3A.2 Decoder usage 31g3Annex B (informative): Change history . 32g3History 33g3ETSI ETSI TS 126 304 V13.0.0 (201
18、6-01)43GPP TS 26.304 version 13.0.0 Release 13Foreword 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 modif
19、y the contents of the present 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 a
20、pproved document under 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 304 V13.0.0 (2016-01)53
21、GPP TS 26.304 version 13.0.0 Release 131 Scope The present document contains an electronic copy of the ANSI-C code for the Floating-point Extended Adaptive Multi-Rate Wideband codec. Alternatively, fixed-point ANSI-C code is specified in 3GPP TS 26.273 1. The floating-point codec/encoder/decoder spe
22、cified in this document or the fixed-point codec/encoder/decoder specified in 1 may be used depending on if the implementation platform is better suited for a floating-point or a fixed-point implementation. It has been verified that the fixed-point and floating-point codecs interoperate with each ot
23、her without any artifacts. The floating-point ANSI-C code in the present document defines, besides the fixed-point c-code specified in 1, one valid reference implementation of the Extended Adaptive Multi-Rate Wideband transcoder (3GPP TS 26.290 2). Standard conformance is enforced by meeting the con
24、formance criteria defined in 3. 2 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
25、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 non-specific reference implicitly refers to the latest version of that document in the same Release as the pr
26、esent document. 1 3GPP TS 26.273: “ANSI-C code for the Fixed-point Extended AMR Wideband codec“. 2 3GPP TS 26.290: “ Audio codec processing functions; Extended AMR Wideband codec; Transcoding functions “. 3 3GPP TS 26.274: “ Audio codec processing functions; Extended Adaptive Multi-Rate - Wideband (
27、AMR-WB+) codec; Conformance testing “. 4 3GPP TS 26.244: “Transparent end-to-end packet switched streaming service (PSS); 3GPP file format (3GP)“ 3 Definitions, symbols and abbreviations 3.1 Definitions For the purposes of the present document, the terms and definitions are given in TS 26.290 2. 3.2
28、 Abbreviations For the purposes of the present document, the following abbreviations apply: AMR-WB+ Extended Adaptive Multi-Rate WideBand ANSI American National Standards Institute GSM Global System for Mobile communications I/O Input/OutputRAM Random Access Memory ROM Read Only Memory ETSI ETSI TS
29、126 304 V13.0.0 (2016-01)63GPP TS 26.304 version 13.0.0 Release 134 C code structure This clause gives an overview of the structure of the C code and provides 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 sy
30、stems: - IBM PC/AT compatible computers with Windows 2000 SP4 and Microsoft Visual C+ v.6.0 compiler. ANSI-C was selected as the programming language because portability was desirable. 4.1 Contents of the C source code The C code distribution has the files divided in five different directories, all
31、present in the directory c-code. The directories are: common, decoder, encoder, lib_amr and include. The distributed files with suffix “c“ contain the source code and the files with suffix “h“ are the header files. Project and workspace files are provided in the directory MSVC. 4.2 Program execution
32、 The Extended Adaptive Multi-Rate Wideband codec is implemented in two programs: - (encoder) audio encoder; - (decoder) audio decoder. The programs should be called like: - encoder encoder options if -of ; - decoder decoder options if -of . The input files contain one or two channels of 16-bit linea
33、r encoded PCM audio samples stored in the wav file format and the parameter files contain encoded audio data and some additional flags. The encoder and decoder options will be explained by running the applications without input arguments. See the file readme.txt for more information on how to run th
34、e encoder and decoder programs. 4.3 Code hierarchy Tables 1 and 2 are call graphs that show the functions used in the audio codec. 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 g
35、raphs is from the top downwards as the processing of a frame advances. All standard C functions: memcpy(), fwrite(), etc. have been omitted. The initialization of the static RAM (i.e. calling the _init functions) is also omitted.ETSI ETSI TS 126 304 V13.0.0 (2016-01)73GPP TS 26.304 version 13.0.0 Re
36、lease 13Table 1: Encoder call structure coder_amrwb_plus_stereo decim_12k8 interpol hp50_12k8 mix_ch E_UTIL_f_preemph mvr2r coder_lf mvr2r E_UTIL_autocorr lag_wind E_LPClev_dur E_LPC_a_isp_conversion E_LPC_chebyshev int_lpc_npl E_LPC_f_isp_a_conversion E_LPC_isp_f_pol_get find_wsp E_LPC_a_weight E_U
37、TIL_residu E_UTIL_deemph E_GAIN_lp_decim2 E_GAIN_open_loop_search E_GAIN_olag_med E_GAINsort E_LPC_isp_isf_conversion qpisf_2s_46b VQ_stage1(qpisf_2s.c) sub_VQ(qpisf_2c.c) ETSI ETSI TS 126 304 V13.0.0 (2016-01)83GPP TS 26.304 version 13.0.0 Release 13qpisf_2s_46b E_LPC_isf_reorderPlus isf2isp coder_
38、acelp E_UTIL_residu E_LPC_a_weight E_UTIL_deemph mvr2r set_zro E_UTIL_synthesis E_UTIL_f_preemph E_GAIN_closed_loop_search E_GAIN_norm_corr E_UTIL_f_convolve E_GAIN_norm_corr_interpolate pred_lt4 E_UTIL_f_convolve E_ACELP_xy1_corr E_ACELP_codebook_target_update E_GAIN_f_pitch_sharpening E_ACELP_xh_c
39、orr E_ACELP_4t E_ACELP_h_vec_corr1 E_ACELP_h_vec_corr2 E_ACELP_2pulse_search E_ACELP_quant_4p_4N E_ACELP_quant_1p_N1 E_ACELP_quant_3p_3N1 ETSI ETSI TS 126 304 V13.0.0 (2016-01)93GPP TS 26.304 version 13.0.0 Release 13E_ACELP_quant_2p_2N2 E_ACELP_quant_1p_N1 E_ACELP_quant_4p_4N1 E_ACELP_quant_2p_2N2
40、E_ACELP_quant_2p_2N2 E_ACELP_xy2_corr q_gain2_plus segsnr coder_tcx cos_windo E_LPC_a_weight E_UTIL_residu E_UTIL_deemph fft9 fft_rel adap_low_freq_emph AVQ_cod RE8_PPV nearest_neighbor_2D8 adap_lo_freq_deemph ifft9 ifft_rel get_gain qcx E_UTIL_f_preemph E_UTIL_synthesis mvi2 coder_hf E_UTIL_autocor
41、r lag_wind E_LPClev_dur E_LPC_a_isp_con ETSI ETSI TS 126 304 V13.0.0 (2016-01)103GPP TS 26.304 version 13.0.0 Release 13version E_LPC_chebyshev int_lpc_npl E_LPC_f_isp_a_conversion E_LPC_isp_f_pol_get mvr2r E_LPC_isp_isf_conversion q_isf_hf sub_VQ(q_isf_hf.c) E_LPC_isf_reorderPlus isf2isp match_gain
42、_6k4 set_zro E_UTIL_residu E_UTIL_synthesisPlus int_gain E_UTIL_residu E_UTIL_synthesisPlus E_LPC_a_weight E_UTIL_residuPlus q_gn_hf band_split_taligned_2k interpol coder_stereo_x cod_hi_stereo mvr2r residu cholsolc smooth_ener_filter qua_fil pmsvq msvq ETSI ETSI TS 126 304 V13.0.0 (2016-01)113GPP T
43、S 26.304 version 13.0.0 Release 13m_cbod inmsvq fir_filt my_max quant_gain pmsvq msvq m_cbod cod_tcx_stereo set_zro mvr2r ctcx_stereo cos_windo get_gain q_gain_pan fft3 fft_rel adap_low_freq_emph AVQ_cod RE8_PPV nearest_neighbor_2D8 adap_lo_freq_deemph ifft3 ifft_rel q_gain_tcx segsnr mvi2 int2bin e
44、nc_prm AVQ_encmux split_idx_noovf sort(avq_cod.c) RE8d RE8_vor re8_idntfy_absolute Leader cor ETSI ETSI TS 126 304 V13.0.0 (2016-01)123GPP TS 26.304 version 13.0.0 Release 13re8_k2y RE8_PPV nearest_neighbor_2D8 re8_compute_base_index re8_compute_rank_of_permutation_and_s calc_bits writ_all_nq writ_a
45、ll_i init_pos_i_ovf chk_ovf chk_ writI _ovf int2bin unpack4bits int2bin enc_prm_stereo_x int2bin AVQ_encmux split_idx_noovf sort(avq_cod.c) RE8d RE8_vor re8_idntfy_absolute Leader cor re8_k2y RE8_PPV nearest_neighbor_2D8 re8_compute_base_index re8_compute_rank_of_permutation_and_s ETSI ETSI TS 126 3
46、04 V13.0.0 (2016-01)133GPP TS 26.304 version 13.0.0 Release 13calc_bits writ_all_nq writ_all_i init_pos_i_ovf chk_ovf chk_ writI ovf _k unpack4bits_d int2bin enc_prm_hf int2bin Table 2: Decoder call structure decoder_amrwb_plus in2t dec_prm bin2t pack4bits(dec_prm.c) bin2t dec_prm_stereo_x bin2t pac
47、k4bits_d bin2t AVQ_demuxdec read_all_nq(avq_dec.c) read_nq(avq_dec.c) read_all_i(avq_dec.c) init_pos_i_ovf(avq_dec.c) chk_ovf(aq_dec.) split_n(avq_dec.c) chk_ovf(avq_dec.cETSI ETSI TS 126 304 V13.0.0 (2016-01)143GPP TS 26.304 version 13.0.0 Release 13) read_I(avq_dec.c) read_ovf(avq_dec.c) read_k(av
48、q_dec.c) RE8_dec re8_decode_base_index re8_decode_rank_of_permutation re8_k2y RE8_PPV nearest_neighbor_2D8 dec_prm_hf bin2t decoder_amrwb_plus_1 mvr2 decoder_lfmvr2 qpisf_2s_46b E_LPC_isf_reorderPlus isf2ip nt_lcnlE_LPC_f_isp_a_conversion E_LPC_isp_f_pol_get decodr_tcx AVQ_demuxdec read_lnq(av_dec.c) rea_nq(av_dec.c) read_all_i(avq_dec.c) init_posivf(aq_dec.c) chk_ovf(avq_dec.c) Split_n(avq_dec.) ETSI ETSI TS 126 304 V13.0.0 (2016-01)153GPP TS 26.304 version 13.0.0 Release 13chk_ovf(aq_dec.) read_I(avq_dec.c) red_k(qde.) of_c) RE8_dec re8_decode_base_index r