annotate libfaad2/sbr_huff.c @ 13593:e2dca00374f2

add new control message, that is send after end of stream, to flush all remaining frames in the video system required by xvid4 encoder.
author iive
date Sat, 09 Oct 2004 13:07:18 +0000
parents 6d50ef45a058
children 2ae5ab4331ca
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
1 /*
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
2 ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
3 ** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
4 **
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
5 ** This program is free software; you can redistribute it and/or modify
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
6 ** it under the terms of the GNU General Public License as published by
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
7 ** the Free Software Foundation; either version 2 of the License, or
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
8 ** (at your option) any later version.
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
9 **
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
10 ** This program is distributed in the hope that it will be useful,
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
11 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
12 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
13 ** GNU General Public License for more details.
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
14 **
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
15 ** You should have received a copy of the GNU General Public License
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
16 ** along with this program; if not, write to the Free Software
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
17 ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
18 **
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
19 ** Any non-GPL usage of this software or parts of this software is strictly
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
20 ** forbidden.
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
21 **
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
22 ** Commercial non-GPL licensing of this software is possible.
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
23 ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
24 **
12625
d81145997036 More information about modifications to comply more closely with GPL 2a.
diego
parents: 12527
diff changeset
25 ** Initially modified for use with MPlayer by Arpad Gereöffy on 2003/08/30
13453
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
26 ** $Id: sbr_huff.c,v 1.4 2004/06/23 13:50:52 diego Exp $
12625
d81145997036 More information about modifications to comply more closely with GPL 2a.
diego
parents: 12527
diff changeset
27 ** detailed CVS changelog at http://www.mplayerhq.hu/cgi-bin/cvsweb.cgi/main/
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
28 **/
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
29
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
30 #include "common.h"
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
31 #include "structs.h"
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
32
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
33 #ifdef SBR_DEC
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
34
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
35 #include "sbr_syntax.h"
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
36 #include "bits.h"
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
37 #include "sbr_huff.h"
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
38 #include "sbr_e_nf.h"
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
39
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
40
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
41 typedef const int8_t (*sbr_huff_tab)[2];
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
42
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
43 static const int8_t t_huffman_env_1_5dB[120][2] = {
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
44 { 1, 2 }, { -64, -65 }, { 3, 4 }, { -63, -66 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
45 { 5, 6 }, { -62, -67 }, { 7, 8 }, { -61, -68 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
46 { 9, 10 }, { -60, -69 }, { 11, 12 }, { -59, -70 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
47 { 13, 14 }, { -58, -71 }, { 15, 16 }, { -57, -72 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
48 { 17, 18 }, { -73, -56 }, { 19, 21 }, { -74, 20 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
49 { -55, -75 }, { 22, 26 }, { 23, 24 }, { -54, -76 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
50 { -77, 25 }, { -53, -78 }, { 27, 34 }, { 28, 29 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
51 { -52, -79 }, { 30, 31 }, { -80, -51 }, { 32, 33 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
52 { -83, -82 }, { -81, -50 }, { 35, 57 }, { 36, 40 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
53 { 37, 38 }, { -88, -84 }, { -48, 39 }, { -90, -85 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
54 { 41, 46 }, { 42, 43 }, { -49, -87 }, { 44, 45 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
55 { -89, -86 }, {-124,-123 }, { 47, 50 }, { 48, 49 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
56 {-122,-121 }, {-120,-119 }, { 51, 54 }, { 52, 53 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
57 {-118,-117 }, {-116,-115 }, { 55, 56 }, {-114,-113 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
58 {-112,-111 }, { 58, 89 }, { 59, 74 }, { 60, 67 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
59 { 61, 64 }, { 62, 63 }, {-110,-109 }, {-108,-107 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
60 { 65, 66 }, {-106,-105 }, {-104,-103 }, { 68, 71 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
61 { 69, 70 }, {-102,-101 }, {-100, -99 }, { 72, 73 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
62 { -98, -97 }, { -96, -95 }, { 75, 82 }, { 76, 79 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
63 { 77, 78 }, { -94, -93 }, { -92, -91 }, { 80, 81 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
64 { -47, -46 }, { -45, -44 }, { 83, 86 }, { 84, 85 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
65 { -43, -42 }, { -41, -40 }, { 87, 88 }, { -39, -38 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
66 { -37, -36 }, { 90, 105 }, { 91, 98 }, { 92, 95 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
67 { 93, 94 }, { -35, -34 }, { -33, -32 }, { 96, 97 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
68 { -31, -30 }, { -29, -28 }, { 99, 102 }, { 100, 101 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
69 { -27, -26 }, { -25, -24 }, { 103, 104 }, { -23, -22 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
70 { -21, -20 }, { 106, 113 }, { 107, 110 }, { 108, 109 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
71 { -19, -18 }, { -17, -16 }, { 111, 112 }, { -15, -14 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
72 { -13, -12 }, { 114, 117 }, { 115, 116 }, { -11, -10 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
73 { -9, -8 }, { 118, 119 }, { -7, -6 }, { -5, -4 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
74 };
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
75
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
76 static const int8_t f_huffman_env_1_5dB[120][2] = {
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
77 { 1, 2 }, { -64, -65 }, { 3, 4 }, { -63, -66 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
78 { 5, 6 }, { -67, -62 }, { 7, 8 }, { -68, -61 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
79 { 9, 10 }, { -69, -60 }, { 11, 13 }, { -70, 12 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
80 { -59, -71 }, { 14, 16 }, { -58, 15 }, { -72, -57 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
81 { 17, 19 }, { -73, 18 }, { -56, -74 }, { 20, 23 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
82 { 21, 22 }, { -55, -75 }, { -54, -53 }, { 24, 27 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
83 { 25, 26 }, { -76, -52 }, { -77, -51 }, { 28, 31 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
84 { 29, 30 }, { -50, -78 }, { -79, -49 }, { 32, 36 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
85 { 33, 34 }, { -48, -47 }, { -80, 35 }, { -81, -82 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
86 { 37, 47 }, { 38, 41 }, { 39, 40 }, { -83, -46 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
87 { -45, -84 }, { 42, 44 }, { -85, 43 }, { -44, -43 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
88 { 45, 46 }, { -88, -87 }, { -86, -90 }, { 48, 66 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
89 { 49, 56 }, { 50, 53 }, { 51, 52 }, { -92, -42 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
90 { -41, -39 }, { 54, 55 }, {-105, -89 }, { -38, -37 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
91 { 57, 60 }, { 58, 59 }, { -94, -91 }, { -40, -36 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
92 { 61, 63 }, { -20, 62 }, {-115,-110 }, { 64, 65 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
93 {-108,-107 }, {-101, -97 }, { 67, 89 }, { 68, 75 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
94 { 69, 72 }, { 70, 71 }, { -95, -93 }, { -34, -27 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
95 { 73, 74 }, { -22, -17 }, { -16,-124 }, { 76, 82 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
96 { 77, 79 }, {-123, 78 }, {-122,-121 }, { 80, 81 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
97 {-120,-119 }, {-118,-117 }, { 83, 86 }, { 84, 85 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
98 {-116,-114 }, {-113,-112 }, { 87, 88 }, {-111,-109 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
99 {-106,-104 }, { 90, 105 }, { 91, 98 }, { 92, 95 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
100 { 93, 94 }, {-103,-102 }, {-100, -99 }, { 96, 97 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
101 { -98, -96 }, { -35, -33 }, { 99, 102 }, { 100, 101 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
102 { -32, -31 }, { -30, -29 }, { 103, 104 }, { -28, -26 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
103 { -25, -24 }, { 106, 113 }, { 107, 110 }, { 108, 109 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
104 { -23, -21 }, { -19, -18 }, { 111, 112 }, { -15, -14 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
105 { -13, -12 }, { 114, 117 }, { 115, 116 }, { -11, -10 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
106 { -9, -8 }, { 118, 119 }, { -7, -6 }, { -5, -4 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
107 };
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
108
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
109 static const int8_t t_huffman_env_bal_1_5dB[48][2] = {
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
110 { -64, 1 }, { -63, 2 }, { -65, 3 }, { -62, 4 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
111 { -66, 5 }, { -61, 6 }, { -67, 7 }, { -60, 8 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
112 { -68, 9 }, { 10, 11 }, { -69, -59 }, { 12, 13 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
113 { -70, -58 }, { 14, 28 }, { 15, 21 }, { 16, 18 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
114 { -57, 17 }, { -71, -56 }, { 19, 20 }, { -88, -87 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
115 { -86, -85 }, { 22, 25 }, { 23, 24 }, { -84, -83 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
116 { -82, -81 }, { 26, 27 }, { -80, -79 }, { -78, -77 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
117 { 29, 36 }, { 30, 33 }, { 31, 32 }, { -76, -75 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
118 { -74, -73 }, { 34, 35 }, { -72, -55 }, { -54, -53 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
119 { 37, 41 }, { 38, 39 }, { -52, -51 }, { -50, 40 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
120 { -49, -48 }, { 42, 45 }, { 43, 44 }, { -47, -46 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
121 { -45, -44 }, { 46, 47 }, { -43, -42 }, { -41, -40 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
122 };
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
123
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
124 static const int8_t f_huffman_env_bal_1_5dB[48][2] = {
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
125 { -64, 1 }, { -65, 2 }, { -63, 3 }, { -66, 4 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
126 { -62, 5 }, { -61, 6 }, { -67, 7 }, { -68, 8 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
127 { -60, 9 }, { 10, 11 }, { -69, -59 }, { -70, 12 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
128 { -58, 13 }, { 14, 17 }, { -71, 15 }, { -57, 16 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
129 { -56, -73 }, { 18, 32 }, { 19, 25 }, { 20, 22 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
130 { -72, 21 }, { -88, -87 }, { 23, 24 }, { -86, -85 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
131 { -84, -83 }, { 26, 29 }, { 27, 28 }, { -82, -81 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
132 { -80, -79 }, { 30, 31 }, { -78, -77 }, { -76, -75 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
133 { 33, 40 }, { 34, 37 }, { 35, 36 }, { -74, -55 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
134 { -54, -53 }, { 38, 39 }, { -52, -51 }, { -50, -49 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
135 { 41, 44 }, { 42, 43 }, { -48, -47 }, { -46, -45 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
136 { 45, 46 }, { -44, -43 }, { -42, 47 }, { -41, -40 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
137 };
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
138
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
139 static const int8_t t_huffman_env_3_0dB[62][2] = {
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
140 { -64, 1 }, { -65, 2 }, { -63, 3 }, { -66, 4 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
141 { -62, 5 }, { -67, 6 }, { -61, 7 }, { -68, 8 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
142 { -60, 9 }, { 10, 11 }, { -69, -59 }, { 12, 14 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
143 { -70, 13 }, { -71, -58 }, { 15, 18 }, { 16, 17 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
144 { -72, -57 }, { -73, -74 }, { 19, 22 }, { -56, 20 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
145 { -55, 21 }, { -54, -77 }, { 23, 31 }, { 24, 25 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
146 { -75, -76 }, { 26, 27 }, { -78, -53 }, { 28, 29 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
147 { -52, -95 }, { -94, 30 }, { -93, -92 }, { 32, 47 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
148 { 33, 40 }, { 34, 37 }, { 35, 36 }, { -91, -90 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
149 { -89, -88 }, { 38, 39 }, { -87, -86 }, { -85, -84 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
150 { 41, 44 }, { 42, 43 }, { -83, -82 }, { -81, -80 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
151 { 45, 46 }, { -79, -51 }, { -50, -49 }, { 48, 55 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
152 { 49, 52 }, { 50, 51 }, { -48, -47 }, { -46, -45 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
153 { 53, 54 }, { -44, -43 }, { -42, -41 }, { 56, 59 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
154 { 57, 58 }, { -40, -39 }, { -38, -37 }, { 60, 61 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
155 { -36, -35 }, { -34, -33 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
156 };
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
157
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
158 static const int8_t f_huffman_env_3_0dB[62][2] = {
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
159 { -64, 1 }, { -65, 2 }, { -63, 3 }, { -66, 4 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
160 { -62, 5 }, { -67, 6 }, { 7, 8 }, { -61, -68 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
161 { 9, 10 }, { -60, -69 }, { 11, 12 }, { -59, -70 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
162 { 13, 14 }, { -58, -71 }, { 15, 16 }, { -57, -72 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
163 { 17, 19 }, { -56, 18 }, { -55, -73 }, { 20, 24 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
164 { 21, 22 }, { -74, -54 }, { -53, 23 }, { -75, -76 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
165 { 25, 30 }, { 26, 27 }, { -52, -51 }, { 28, 29 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
166 { -77, -79 }, { -50, -49 }, { 31, 39 }, { 32, 35 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
167 { 33, 34 }, { -78, -46 }, { -82, -88 }, { 36, 37 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
168 { -83, -48 }, { -47, 38 }, { -86, -85 }, { 40, 47 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
169 { 41, 44 }, { 42, 43 }, { -80, -44 }, { -43, -42 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
170 { 45, 46 }, { -39, -87 }, { -84, -40 }, { 48, 55 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
171 { 49, 52 }, { 50, 51 }, { -95, -94 }, { -93, -92 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
172 { 53, 54 }, { -91, -90 }, { -89, -81 }, { 56, 59 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
173 { 57, 58 }, { -45, -41 }, { -38, -37 }, { 60, 61 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
174 { -36, -35 }, { -34, -33 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
175 };
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
176
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
177 static const int8_t t_huffman_env_bal_3_0dB[24][2] = {
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
178 { -64, 1 }, { -63, 2 }, { -65, 3 }, { -66, 4 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
179 { -62, 5 }, { -61, 6 }, { -67, 7 }, { -68, 8 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
180 { -60, 9 }, { 10, 16 }, { 11, 13 }, { -69, 12 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
181 { -76, -75 }, { 14, 15 }, { -74, -73 }, { -72, -71 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
182 { 17, 20 }, { 18, 19 }, { -70, -59 }, { -58, -57 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
183 { 21, 22 }, { -56, -55 }, { -54, 23 }, { -53, -52 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
184 };
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
185
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
186 static const int8_t f_huffman_env_bal_3_0dB[24][2] = {
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
187 { -64, 1 }, { -65, 2 }, { -63, 3 }, { -66, 4 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
188 { -62, 5 }, { -61, 6 }, { -67, 7 }, { -68, 8 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
189 { -60, 9 }, { 10, 13 }, { -69, 11 }, { -59, 12 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
190 { -58, -76 }, { 14, 17 }, { 15, 16 }, { -75, -74 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
191 { -73, -72 }, { 18, 21 }, { 19, 20 }, { -71, -70 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
192 { -57, -56 }, { 22, 23 }, { -55, -54 }, { -53, -52 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
193 };
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
194
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
195 static const int8_t t_huffman_noise_3_0dB[62][2] = {
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
196 { -64, 1 }, { -63, 2 }, { -65, 3 }, { -66, 4 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
197 { -62, 5 }, { -67, 6 }, { 7, 8 }, { -61, -68 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
198 { 9, 30 }, { 10, 15 }, { -60, 11 }, { -69, 12 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
199 { 13, 14 }, { -59, -53 }, { -95, -94 }, { 16, 23 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
200 { 17, 20 }, { 18, 19 }, { -93, -92 }, { -91, -90 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
201 { 21, 22 }, { -89, -88 }, { -87, -86 }, { 24, 27 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
202 { 25, 26 }, { -85, -84 }, { -83, -82 }, { 28, 29 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
203 { -81, -80 }, { -79, -78 }, { 31, 46 }, { 32, 39 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
204 { 33, 36 }, { 34, 35 }, { -77, -76 }, { -75, -74 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
205 { 37, 38 }, { -73, -72 }, { -71, -70 }, { 40, 43 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
206 { 41, 42 }, { -58, -57 }, { -56, -55 }, { 44, 45 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
207 { -54, -52 }, { -51, -50 }, { 47, 54 }, { 48, 51 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
208 { 49, 50 }, { -49, -48 }, { -47, -46 }, { 52, 53 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
209 { -45, -44 }, { -43, -42 }, { 55, 58 }, { 56, 57 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
210 { -41, -40 }, { -39, -38 }, { 59, 60 }, { -37, -36 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
211 { -35, 61 }, { -34, -33 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
212 };
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
213
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
214 static const int8_t t_huffman_noise_bal_3_0dB[24][2] = {
10725
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
215 { -64, 1 }, { -65, 2 }, { -63, 3 }, { 4, 9 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
216 { -66, 5 }, { -62, 6 }, { 7, 8 }, { -76, -75 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
217 { -74, -73 }, { 10, 17 }, { 11, 14 }, { 12, 13 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
218 { -72, -71 }, { -70, -69 }, { 15, 16 }, { -68, -67 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
219 { -61, -60 }, { 18, 21 }, { 19, 20 }, { -59, -58 },
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
220 { -57, -56 }, { 22, 23 }, { -55, -54 }, { -53, -52 }
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
221 };
e989150f8216 libfaad2 v2.0rc1 imported
arpi
parents:
diff changeset
222
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
223
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
224 static INLINE int16_t sbr_huff_dec(bitfile *ld, sbr_huff_tab t_huff)
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
225 {
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
226 uint8_t bit;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
227 int16_t index = 0;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
228
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
229 while (index >= 0)
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
230 {
13453
6d50ef45a058 Update FAAD to a 2.1 beta CVS snapshot from 2004.07.12.
diego
parents: 12625
diff changeset
231 bit = (uint8_t)faad_get1bit(ld);
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
232 index = t_huff[index][bit];
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
233 }
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
234
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
235 return index + 64;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
236 }
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
237
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
238 /* table 10 */
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
239 void sbr_envelope(bitfile *ld, sbr_info *sbr, uint8_t ch)
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
240 {
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
241 uint8_t env, band;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
242 int8_t delta = 0;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
243 sbr_huff_tab t_huff, f_huff;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
244
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
245 if ((sbr->L_E[ch] == 1) && (sbr->bs_frame_class[ch] == FIXFIX))
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
246 sbr->amp_res[ch] = 0;
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
247 else
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
248 sbr->amp_res[ch] = sbr->bs_amp_res;
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
249
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
250 if ((sbr->bs_coupling) && (ch == 1))
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
251 {
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
252 delta = 1;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
253 if (sbr->amp_res[ch])
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
254 {
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
255 t_huff = t_huffman_env_bal_3_0dB;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
256 f_huff = f_huffman_env_bal_3_0dB;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
257 } else {
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
258 t_huff = t_huffman_env_bal_1_5dB;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
259 f_huff = f_huffman_env_bal_1_5dB;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
260 }
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
261 } else {
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
262 delta = 0;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
263 if (sbr->amp_res[ch])
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
264 {
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
265 t_huff = t_huffman_env_3_0dB;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
266 f_huff = f_huffman_env_3_0dB;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
267 } else {
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
268 t_huff = t_huffman_env_1_5dB;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
269 f_huff = f_huffman_env_1_5dB;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
270 }
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
271 }
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
272
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
273 for (env = 0; env < sbr->L_E[ch]; env++)
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
274 {
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
275 if (sbr->bs_df_env[ch][env] == 0)
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
276 {
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
277 if ((sbr->bs_coupling == 1) && (ch == 1))
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
278 {
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
279 if (sbr->amp_res[ch])
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
280 {
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
281 sbr->E[ch][0][env] = (uint16_t)(faad_getbits(ld, 5
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
282 DEBUGVAR(1,272,"sbr_envelope(): bs_data_env")) << delta);
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
283 } else {
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
284 sbr->E[ch][0][env] = (uint16_t)(faad_getbits(ld, 6
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
285 DEBUGVAR(1,273,"sbr_envelope(): bs_data_env")) << delta);
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
286 }
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
287 } else {
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
288 if (sbr->amp_res[ch])
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
289 {
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
290 sbr->E[ch][0][env] = (uint16_t)(faad_getbits(ld, 6
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
291 DEBUGVAR(1,274,"sbr_envelope(): bs_data_env")) << delta);
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
292 } else {
12527
4a370c80fe5c update to the 2.0 release of faad, patch by adland
diego
parents: 10989
diff changeset
293 sbr->E[ch][0][env] = (uint16_t)(faad_getbits(ld, 7
10989
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
294 DEBUGVAR(1,275,"sbr_envelope(): bs_data_env")) << delta);
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
295 }
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
296 }
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
297
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
298 for (band = 1; band < sbr->n[sbr->f[ch][env]]; band++)
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
299 {
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
300 sbr->E[ch][band][env] = (sbr_huff_dec(ld, f_huff) << delta);
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
301 }
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
302
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
303 } else {
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
304 for (band = 0; band < sbr->n[sbr->f[ch][env]]; band++)
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
305 {
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
306 sbr->E[ch][band][env] = (sbr_huff_dec(ld, t_huff) << delta);
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
307 }
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
308 }
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
309 }
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
310
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
311 extract_envelope_data(sbr, ch);
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
312 }
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
313
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
314 /* table 11 */
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
315 void sbr_noise(bitfile *ld, sbr_info *sbr, uint8_t ch)
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
316 {
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
317 uint8_t noise, band;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
318 int8_t delta = 0;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
319 sbr_huff_tab t_huff, f_huff;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
320
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
321 if ((sbr->bs_coupling == 1) && (ch == 1))
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
322 {
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
323 delta = 1;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
324 t_huff = t_huffman_noise_bal_3_0dB;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
325 f_huff = f_huffman_env_bal_3_0dB;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
326 } else {
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
327 delta = 0;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
328 t_huff = t_huffman_noise_3_0dB;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
329 f_huff = f_huffman_env_3_0dB;
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
330 }
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
331
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
332 for (noise = 0; noise < sbr->L_Q[ch]; noise++)
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
333 {
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
334 if(sbr->bs_df_noise[ch][noise] == 0)
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
335 {
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
336 if ((sbr->bs_coupling == 1) && (ch == 1))
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
337 {
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
338 sbr->Q[ch][0][noise] = (faad_getbits(ld, 5
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
339 DEBUGVAR(1,276,"sbr_noise(): bs_data_noise")) << delta);
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
340 } else {
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
341 sbr->Q[ch][0][noise] = (faad_getbits(ld, 5
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
342 DEBUGVAR(1,277,"sbr_noise(): bs_data_noise")) << delta);
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
343 }
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
344 for (band = 1; band < sbr->N_Q; band++)
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
345 {
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
346 sbr->Q[ch][band][noise] = (sbr_huff_dec(ld, f_huff) << delta);
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
347 }
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
348 } else {
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
349 for (band = 0; band < sbr->N_Q; band++)
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
350 {
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
351 sbr->Q[ch][band][noise] = (sbr_huff_dec(ld, t_huff) << delta);
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
352 }
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
353 }
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
354 }
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
355
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
356 extract_noise_floor_data(sbr, ch);
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
357 }
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
358
3185f64f6350 synced with current cvs
alex
parents: 10725
diff changeset
359 #endif