00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00027 #include "ac3tab.h"
00028
00033 const uint16_t ff_ac3_frame_size_tab[38][3] = {
00034 { 64, 69, 96 },
00035 { 64, 70, 96 },
00036 { 80, 87, 120 },
00037 { 80, 88, 120 },
00038 { 96, 104, 144 },
00039 { 96, 105, 144 },
00040 { 112, 121, 168 },
00041 { 112, 122, 168 },
00042 { 128, 139, 192 },
00043 { 128, 140, 192 },
00044 { 160, 174, 240 },
00045 { 160, 175, 240 },
00046 { 192, 208, 288 },
00047 { 192, 209, 288 },
00048 { 224, 243, 336 },
00049 { 224, 244, 336 },
00050 { 256, 278, 384 },
00051 { 256, 279, 384 },
00052 { 320, 348, 480 },
00053 { 320, 349, 480 },
00054 { 384, 417, 576 },
00055 { 384, 418, 576 },
00056 { 448, 487, 672 },
00057 { 448, 488, 672 },
00058 { 512, 557, 768 },
00059 { 512, 558, 768 },
00060 { 640, 696, 960 },
00061 { 640, 697, 960 },
00062 { 768, 835, 1152 },
00063 { 768, 836, 1152 },
00064 { 896, 975, 1344 },
00065 { 896, 976, 1344 },
00066 { 1024, 1114, 1536 },
00067 { 1024, 1115, 1536 },
00068 { 1152, 1253, 1728 },
00069 { 1152, 1254, 1728 },
00070 { 1280, 1393, 1920 },
00071 { 1280, 1394, 1920 },
00072 };
00073
00078 const uint8_t ff_ac3_channels_tab[8] = {
00079 2, 1, 2, 3, 3, 4, 4, 5
00080 };
00081
00082
00083 const uint16_t ff_ac3_sample_rate_tab[3] = { 48000, 44100, 32000 };
00084
00085
00086 const uint16_t ff_ac3_bitrate_tab[19] = {
00087 32, 40, 48, 56, 64, 80, 96, 112, 128,
00088 160, 192, 224, 256, 320, 384, 448, 512, 576, 640
00089 };
00090
00091
00092
00093
00094 const int16_t ff_ac3_window[256] = {
00095 4, 7, 12, 16, 21, 28, 34, 42,
00096 51, 61, 72, 84, 97, 111, 127, 145,
00097 164, 184, 207, 231, 257, 285, 315, 347,
00098 382, 419, 458, 500, 544, 591, 641, 694,
00099 750, 810, 872, 937, 1007, 1079, 1155, 1235,
00100 1318, 1406, 1497, 1593, 1692, 1796, 1903, 2016,
00101 2132, 2253, 2379, 2509, 2644, 2783, 2927, 3076,
00102 3230, 3389, 3552, 3721, 3894, 4072, 4255, 4444,
00103 4637, 4835, 5038, 5246, 5459, 5677, 5899, 6127,
00104 6359, 6596, 6837, 7083, 7334, 7589, 7848, 8112,
00105 8380, 8652, 8927, 9207, 9491, 9778,10069,10363,
00106 10660,10960,11264,11570,11879,12190,12504,12820,
00107 13138,13458,13780,14103,14427,14753,15079,15407,
00108 15735,16063,16392,16720,17049,17377,17705,18032,
00109 18358,18683,19007,19330,19651,19970,20287,20602,
00110 20914,21225,21532,21837,22139,22438,22733,23025,
00111 23314,23599,23880,24157,24430,24699,24964,25225,
00112 25481,25732,25979,26221,26459,26691,26919,27142,
00113 27359,27572,27780,27983,28180,28373,28560,28742,
00114 28919,29091,29258,29420,29577,29729,29876,30018,
00115 30155,30288,30415,30538,30657,30771,30880,30985,
00116 31086,31182,31274,31363,31447,31528,31605,31678,
00117 31747,31814,31877,31936,31993,32046,32097,32145,
00118 32190,32232,32272,32310,32345,32378,32409,32438,
00119 32465,32490,32513,32535,32556,32574,32592,32608,
00120 32623,32636,32649,32661,32671,32681,32690,32698,
00121 32705,32712,32718,32724,32729,32733,32737,32741,
00122 32744,32747,32750,32752,32754,32756,32757,32759,
00123 32760,32761,32762,32763,32764,32764,32765,32765,
00124 32766,32766,32766,32766,32767,32767,32767,32767,
00125 32767,32767,32767,32767,32767,32767,32767,32767,
00126 32767,32767,32767,32767,32767,32767,32767,32767,
00127 };
00128
00129 const uint8_t ff_ac3_log_add_tab[260]= {
00130 0x40,0x3f,0x3e,0x3d,0x3c,0x3b,0x3a,0x39,0x38,0x37,
00131 0x36,0x35,0x34,0x34,0x33,0x32,0x31,0x30,0x2f,0x2f,
00132 0x2e,0x2d,0x2c,0x2c,0x2b,0x2a,0x29,0x29,0x28,0x27,
00133 0x26,0x26,0x25,0x24,0x24,0x23,0x23,0x22,0x21,0x21,
00134 0x20,0x20,0x1f,0x1e,0x1e,0x1d,0x1d,0x1c,0x1c,0x1b,
00135 0x1b,0x1a,0x1a,0x19,0x19,0x18,0x18,0x17,0x17,0x16,
00136 0x16,0x15,0x15,0x15,0x14,0x14,0x13,0x13,0x13,0x12,
00137 0x12,0x12,0x11,0x11,0x11,0x10,0x10,0x10,0x0f,0x0f,
00138 0x0f,0x0e,0x0e,0x0e,0x0d,0x0d,0x0d,0x0d,0x0c,0x0c,
00139 0x0c,0x0c,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,
00140 0x0a,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x08,
00141 0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x06,
00142 0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x05,0x05,
00143 0x05,0x05,0x05,0x05,0x04,0x04,0x04,0x04,0x04,0x04,
00144 0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,
00145 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x02,
00146 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
00147 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x01,
00148 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
00149 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
00150 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
00151 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
00152 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
00153 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
00154 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
00155 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
00156 };
00157
00158 const uint16_t ff_ac3_hearing_threshold_tab[50][3]= {
00159 { 0x04d0,0x04f0,0x0580 },
00160 { 0x04d0,0x04f0,0x0580 },
00161 { 0x0440,0x0460,0x04b0 },
00162 { 0x0400,0x0410,0x0450 },
00163 { 0x03e0,0x03e0,0x0420 },
00164 { 0x03c0,0x03d0,0x03f0 },
00165 { 0x03b0,0x03c0,0x03e0 },
00166 { 0x03b0,0x03b0,0x03d0 },
00167 { 0x03a0,0x03b0,0x03c0 },
00168 { 0x03a0,0x03a0,0x03b0 },
00169 { 0x03a0,0x03a0,0x03b0 },
00170 { 0x03a0,0x03a0,0x03b0 },
00171 { 0x03a0,0x03a0,0x03a0 },
00172 { 0x0390,0x03a0,0x03a0 },
00173 { 0x0390,0x0390,0x03a0 },
00174 { 0x0390,0x0390,0x03a0 },
00175 { 0x0380,0x0390,0x03a0 },
00176 { 0x0380,0x0380,0x03a0 },
00177 { 0x0370,0x0380,0x03a0 },
00178 { 0x0370,0x0380,0x03a0 },
00179 { 0x0360,0x0370,0x0390 },
00180 { 0x0360,0x0370,0x0390 },
00181 { 0x0350,0x0360,0x0390 },
00182 { 0x0350,0x0360,0x0390 },
00183 { 0x0340,0x0350,0x0380 },
00184 { 0x0340,0x0350,0x0380 },
00185 { 0x0330,0x0340,0x0380 },
00186 { 0x0320,0x0340,0x0370 },
00187 { 0x0310,0x0320,0x0360 },
00188 { 0x0300,0x0310,0x0350 },
00189 { 0x02f0,0x0300,0x0340 },
00190 { 0x02f0,0x02f0,0x0330 },
00191 { 0x02f0,0x02f0,0x0320 },
00192 { 0x02f0,0x02f0,0x0310 },
00193 { 0x0300,0x02f0,0x0300 },
00194 { 0x0310,0x0300,0x02f0 },
00195 { 0x0340,0x0320,0x02f0 },
00196 { 0x0390,0x0350,0x02f0 },
00197 { 0x03e0,0x0390,0x0300 },
00198 { 0x0420,0x03e0,0x0310 },
00199 { 0x0460,0x0420,0x0330 },
00200 { 0x0490,0x0450,0x0350 },
00201 { 0x04a0,0x04a0,0x03c0 },
00202 { 0x0460,0x0490,0x0410 },
00203 { 0x0440,0x0460,0x0470 },
00204 { 0x0440,0x0440,0x04a0 },
00205 { 0x0520,0x0480,0x0460 },
00206 { 0x0800,0x0630,0x0440 },
00207 { 0x0840,0x0840,0x0450 },
00208 { 0x0840,0x0840,0x04e0 },
00209 };
00210
00211 const uint8_t ff_ac3_bap_tab[64]= {
00212 0, 1, 1, 1, 1, 1, 2, 2, 3, 3,
00213 3, 4, 4, 5, 5, 6, 6, 6, 6, 7,
00214 7, 7, 7, 8, 8, 8, 8, 9, 9, 9,
00215 9, 10, 10, 10, 10, 11, 11, 11, 11, 12,
00216 12, 12, 12, 13, 13, 13, 13, 14, 14, 14,
00217 14, 14, 14, 14, 14, 15, 15, 15, 15, 15,
00218 15, 15, 15, 15,
00219 };
00220
00221 const uint8_t ff_ac3_slow_decay_tab[4]={
00222 0x0f, 0x11, 0x13, 0x15,
00223 };
00224
00225 const uint8_t ff_ac3_fast_decay_tab[4]={
00226 0x3f, 0x53, 0x67, 0x7b,
00227 };
00228
00229 const uint16_t ff_ac3_slow_gain_tab[4]= {
00230 0x540, 0x4d8, 0x478, 0x410,
00231 };
00232
00233 const uint16_t ff_ac3_db_per_bit_tab[4]= {
00234 0x000, 0x700, 0x900, 0xb00,
00235 };
00236
00237 const int16_t ff_ac3_floor_tab[8]= {
00238 0x2f0, 0x2b0, 0x270, 0x230, 0x1f0, 0x170, 0x0f0, 0xf800,
00239 };
00240
00241 const uint16_t ff_ac3_fast_gain_tab[8]= {
00242 0x080, 0x100, 0x180, 0x200, 0x280, 0x300, 0x380, 0x400,
00243 };
00244
00245 const uint8_t ff_ac3_critical_band_size_tab[50]={
00246 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00247 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3,
00248 3, 6, 6, 6, 6, 6, 6, 12, 12, 12, 12, 24, 24, 24, 24, 24
00249 };
00253 const uint16_t ff_eac3_default_chmap[8] = {
00254 AC3_CHMAP_L | AC3_CHMAP_R,
00255 AC3_CHMAP_C,
00256 AC3_CHMAP_L | AC3_CHMAP_R,
00257 AC3_CHMAP_L | AC3_CHMAP_C | AC3_CHMAP_R,
00258 AC3_CHMAP_L | AC3_CHMAP_R | AC3_CHMAP_C_SUR,
00259 AC3_CHMAP_L | AC3_CHMAP_C | AC3_CHMAP_R | AC3_CHMAP_C_SUR,
00260 AC3_CHMAP_L | AC3_CHMAP_R | AC3_CHMAP_L_SUR | AC3_CHMAP_R_SUR,
00261 AC3_CHMAP_L | AC3_CHMAP_C | AC3_CHMAP_R | AC3_CHMAP_L_SUR | AC3_CHMAP_R_SUR
00262 };