5 File formats
26.4103GPPEnhanced aacPlus general audio codecFloating-point ANSI-C codeGeneral audio codec audio processing functionsRelease 17TS
This clause describes the file formats used by the encoder and decoder programs.
5.1 Audio input file (encoder input/decoder output)
The audio input files read by the encoder and written by the decoder are 16-bit PCM wave files. For convenient handling of wave files a precompiled audio-fileformat library is used.
5.2 Bitstream file format (encoder output/decoder input)
The encoder program writes and the decoder program reads raw frames packetized in access units as described by 3GPP TS 26.244. For packetization the ISO media library is used. A precompiled library is used.
5.3 Error pattern file (decoder input)
The decoder program can optionally process an additional input file which describes an error pattern. The format of the error pattern file is 1 character per line. Each line corresponds to one frame, where a "0" indicates that the respective frame has been transmitted without errors, while a "1" indicates that the corresponding frame has been lost and error concealment shall be applied by the decoder.
Annex A (informative):
Weighted MOPS and PROM
The complexity numbers for the Enhanced aacPlus audio codec can be found in the following table, the numbers have been derived using the "allcat.wav" item, which holds all the material from the selection test concatenated in one single item. For every test case the average and worst frame weighted MOPS figure has been derived. The worst case wMOPS figure over all test cases has been marked in blue.
Table A.1 : Weighted MOPS and PROM figures
Test Case |
Mono Encoder |
Stereo Encoder |
Decoder |
Decoder, mono only |
|
wMOPS [average / |
14m |
15.23 / 16.98 |
15.36 / 17.21 |
9.38 / 10.07 |
8.07 / 8.78 |
18s |
— |
25.79 / 28.36 |
19.48 / 20.35 |
8.31 / 9.17 |
|
24m |
16.72 / 18.93 |
16.86 / 19.14 |
10.30 / 11.39 |
8.89 / 9.94 |
|
24s |
— |
27.01 / 29.85 |
20.45 / 21.63 |
8.82 / 9.93 |
|
32s |
— |
27.49 / 29.97 |
21.08 / 22.42 |
9.28 / 10.58 |
|
48s |
— |
35.22 / 42.22 |
17.96 / 20.26 |
12.42 / 14.32 |
|
14m, 16 kHz |
15.42 / 18.41 |
15.47 / 18.46 |
7.85 / 8.61 |
7.85 / 8.60 |
|
14m, 3% FER |
— |
— |
9.38 / 10.07 |
8.07 / 8.78 |
|
24s, 3% FER |
— |
— |
20.45 / 21.63 |
8.81 / 9.93 |
|
32s, 1%FER |
— |
— |
21.08 / 22.42 |
9.28 / 10.58 |
|
32s, 3%FER |
— |
— |
21.08 / 22.38 |
9.27 / 10.58 |
|
Program ROM [ops] |
— |
12540 |
14365 |
8048 |
6209 |
Annex B (informative):
Change history
Change history |
|||||||
Date |
TSG SA# |
TSG Doc. |
CR |
Rev |
Subject/Comment |
Old |
New |
2004-09 |
25 |
SP-040638 |
Approved at SA#25 |
2.0.0 |
6.0.0 |
||
2004-12 |
26 |
SP-040840 |
001 |
Correction to C-code to increase error robustness |
6.0.0 |
6.1.0 |
|
2004-12 |
26 |
SP-040840 |
002 |
Correction to C-code: Missing memory re-initialization |
6.0.0 |
6.1.0 |
|
2004-12 |
26 |
SP-040840 |
003 |
Correction to C-code: Memory initialization added |
6.0.0 |
6.1.0 |
|
2004-12 |
26 |
SP-040840 |
004 |
Correction to C-code: Wrong calculation of sine levels |
6.0.0 |
6.1.0 |
|
2004-12 |
26 |
SP-040840 |
005 |
Correction to C-code: Prevent multiple reading of bitstream elements |
6.0.0 |
6.1.0 |
|
2004-12 |
26 |
SP-040840 |
006 |
2 |
Correction to C-code: Corrected wrong table values |
6.0.0 |
6.1.0 |
2004-12 |
26 |
SP-040840 |
007 |
Correction to C-code: Modify instrumentation |
6.0.0 |
6.1.0 |
|
2004-12 |
26 |
SP-040840 |
008 |
1 |
Correction of C-code: Output data was copied into wrong array |
6.0.0 |
6.1.0 |
2004-12 |
26 |
SP-040840 |
009 |
1 |
Correction to C-code: Bug in resampler |
6.0.0 |
6.1.0 |
2004-12 |
26 |
SP-040840 |
010 |
1 |
Correction to C-code: Modify data types for FFT |
6.0.0 |
6.1.0 |
2004-12 |
26 |
SP-040840 |
011 |
1 |
Correction to decoder C-Code: Alignment with MPEG specification |
6.0.0 |
6.1.0 |
2004-12 |
26 |
SP-040840 |
012 |
Correction to C-code: Reset of Missing Harmonics flags during concealment added |
6.0.0 |
6.1.0 |
|
2004-12 |
26 |
SP-040840 |
013 |
Removal of Complexity counters |
6.0.0 |
6.1.0 |
|
2005-01 |
File "env_calc.c" replaced in the attached ANSI-C code |
6.1.0 |
6.1.1 |
||||
2005-03 |
27 |
SP-050095 |
014 |
1 |
Correction to C-code: 3GPP file format wrong writing of brand |
6.1.1 |
6.2.0 |
2005-03 |
27 |
SP-050095 |
015 |
1 |
Correction to C-code: remove copyright notice from 3GPP file format header files |
6.1.1 |
6.2.0 |
2005-03 |
27 |
SP-050095 |
016 |
1 |
Correction to C-code: add capability for 10 kbit/s, mono encoding |
6.1.1 |
6.2.0 |
2005-03 |
27 |
SP-050095 |
017 |
1 |
Correction to C-code: add capability for data stream element parsing |
6.1.1 |
6.2.0 |
2005-03 |
27 |
SP-050095 |
018 |
1 |
Correction to C-code: PNS decoding algorithm not conform to MPEG |
6.1.1 |
6.2.0 |
2005-03 |
27 |
SP-050095 |
019 |
1 |
Correction to C-code: the decoder mono only compile target not working correctly |
6.1.1 |
6.2.0 |
2005-03 |
27 |
SP-050095 |
020 |
1 |
Correction to C-code: PS-decoding with varying upper frequency border not working correctly |
6.1.1 |
6.2.0 |
2005-03 |
27 |
SP-050095 |
021 |
1 |
Correction to C-code: PS-decoding with variable framing not working correctly |
6.1.1 |
6.2.0 |
2005-03 |
27 |
SP-050095 |
022 |
Correction to written specification: move WMOPS numbers to informative Annex |
6.1.1 |
6.2.0 |
|
2005-06 |
28 |
SP-050251 |
023 |
Correction to C-code: 10 kbit/s mono encoding with stereo input files failed |
6.2.0 |
6.3.0 |
|
2005-09 |
29 |
SP-050426 |
0024 |
Correction to C-Code: Enable 44.1 kHz input material encoding (floating-point code) |
6.3.0 |
6.4.0 |
|
2005-09 |
29 |
SP-050426 |
0025 |
Correction of C-Code: removal of obsolete table (floating-point code) |
6.3.0 |
6.4.0 |
|
2005-12 |
30 |
SP-050786 |
0027 |
Correction to C-code: encoder bitrate switching simulation toolset |
6.4.0 |
6.5.0 |
|
2005-12 |
30 |
SP-050786 |
0028 |
Correction to C-code: encoder tuning table entry for 44.1 kHz was wrong |
6.4.0 |
6.5.0 |
|
2005-12 |
30 |
SP-050786 |
0029 |
Correction to C-code: fix to make decoder more robust against corrupt input data |
6.4.0 |
6.5.0 |
|
2005-12 |
30 |
SP-050786 |
0030 |
Correction to C-code: removal of unused coefficients in resampler |
6.4.0 |
6.5.0 |
|
2006-03 |
31 |
SP-060013 |
0031 |
Correction to C-code: encoder switch is wrong |
6.5.0 |
6.6.0 |
|
2006-09 |
33 |
SP-060595 |
0034 |
1 |
Correction of written specification: correct memory tables (floating-point code) |
6.6.0 |
6.7.0 |
2006-09 |
33 |
SP-060601 |
0032 |
2 |
Modification of C-code: Change of encoder bitrate border for Parametric Stereo usage (floating-point code) |
6.7.0 |
7.0.0 |
2006-12 |
34 |
SP-060849 |
0035 |
Correction to C-code: Correct the maximum possible SBR payload size (floating point code) |
7.0.0 |
7.1.0 |
|
2007-09 |
37 |
SP-070628 |
0038 |
1 |
Adding safety code to avoid encoder runtime-assertion |
7.1.0 |
7.2.0 |
2008-12 |
42 |
Version for Release 8 |
7.2.0 |
8.0.0 |
|||
2009-12 |
46 |
Version for Release 9 |
8.0.0 |
9.0.0 |
|||
2011-03 |
51 |
Version for Release 10 |
9.0.0 |
10.0.0 |
|||
2012-09 |
57 |
Version for Release 11 |
10.0.0 |
11.0.0 |
|||
2014-09 |
65 |
Version for Release 12 |
11.0.0 |
12.0.0 |
|||
2015-12 |
70 |
Version for Release 13 |
12.0.0 |
13.0.0 |
Change history |
|||||||
Date |
Meeting |
TDoc |
CR |
Rev |
Cat |
Subject/Comment |
New version |
2017-03 |
75 |
Version for Release 14 |
14.0.0 |
||||
2018-06 |
80 |
Version for Release 15 |
15.0.0 |
||||
2020-07 |
– |
– |
– |
– |
– |
Update to Rel-16 version (MCC) |
16.0.0 |
2022-04 |
– |
– |
– |
– |
– |
Update to Rel-17 version (MCC) |
17.0.0 |
2022-12 |
Update to attach the source code files (MCC) |
17.0.1 |