Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * DCA compatible decoder data
  3.  * Copyright (C) 2004 Gildas Bazin
  4.  * Copyright (c) 2006 Benjamin Larsson
  5.  *
  6.  * This file is part of FFmpeg.
  7.  *
  8.  * FFmpeg is free software; you can redistribute it and/or
  9.  * modify it under the terms of the GNU Lesser General Public
  10.  * License as published by the Free Software Foundation; either
  11.  * version 2.1 of the License, or (at your option) any later version.
  12.  *
  13.  * FFmpeg is distributed in the hope that it will be useful,
  14.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  16.  * Lesser General Public License for more details.
  17.  *
  18.  * You should have received a copy of the GNU Lesser General Public
  19.  * License along with FFmpeg; if not, write to the Free Software
  20.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  21.  */
  22.  
  23. #ifndef AVCODEC_DCADATA_H
  24. #define AVCODEC_DCADATA_H
  25.  
  26. #include <stdint.h>
  27. #include "libavutil/mem.h"
  28.  
  29. /* Generic tables */
  30.  
  31. static const uint32_t dca_bit_rates[32] =
  32. {
  33.     32000, 56000, 64000, 96000, 112000, 128000,
  34.     192000, 224000, 256000, 320000, 384000,
  35.     448000, 512000, 576000, 640000, 768000,
  36.     896000, 1024000, 1152000, 1280000, 1344000,
  37.     1408000, 1411200, 1472000, 1536000, 1920000,
  38.     2048000, 3072000, 3840000, 1/*open*/, 2/*variable*/, 3/*lossless*/
  39. };
  40.  
  41. static const uint8_t dca_channels[16] =
  42. {
  43.     1, 2, 2, 2, 2, 3, 3, 4, 4, 5, 6, 6, 6, 7, 8, 8
  44. };
  45.  
  46. static const uint8_t dca_bits_per_sample[7] =
  47. {
  48.     16, 16, 20, 20, 0, 24, 24
  49. };
  50.  
  51.  
  52. /* Adpcm data */
  53.  
  54. /* 16bits signed fractional Q13 binary codes *//* quantization tables */
  55.  
  56. static const uint32_t scale_factor_quant6[64] = {
  57.         1,       2,       2,       3,       3,       4,       6,       7,
  58.        10,      12,      16,      20,      26,      34,      44,      56,
  59.        72,      93,     120,     155,     200,     257,     331,     427,
  60.       550,     708,     912,    1175,    1514,    1950,    2512,    3236,
  61.      4169,    5370,    6918,    8913,   11482,   14791,   19055,   24547,
  62.     31623,   40738,   52481,   67608,   87096,  112202,  144544,  186209,
  63.    239883,  309030,  398107,  512861,  660693,  851138, 1096478, 1412538,
  64.   1819701, 2344229, 3019952, 3890451, 5011872, 6456542, 8317638,       0
  65. };
  66.  
  67. static const uint32_t scale_factor_quant7[128] = {
  68.         1,       1,       2,       2,       2,       2,       3,       3,
  69.         3,       4,       4,       5,       6,       7,       7,       8,
  70.        10,      11,      12,      14,      16,      18,      20,      23,
  71.        26,      30,      34,      38,      44,      50,      56,      64,
  72.        72,      82,      93,     106,     120,     136,     155,     176,
  73.       200,     226,     257,     292,     331,     376,     427,     484,
  74.       550,     624,     708,     804,     912,    1035,    1175,    1334,
  75.      1514,    1718,    1950,    2213,    2512,    2851,    3236,    3673,
  76.      4169,    4732,    5370,    6095,    6918,    7852,    8913,   10116,
  77.     11482,   13032,   14791,   16788,   19055,   21627,   24547,   27861,
  78.     31623,   35892,   40738,   46238,   52481,   59566,   67608,   76736,
  79.     87096,   98855,  112202,  127350,  144544,  164059,  186209,  211349,
  80.    239883,  272270,  309030,  350752,  398107,  451856,  512861,  582103,
  81.    660693,  749894,  851138,  966051, 1096478, 1244515, 1412538, 1603245,
  82.   1819701, 2065380, 2344229, 2660725, 3019952, 3427678, 3890451, 4415704,
  83.   5011872, 5688529, 6456542, 7328245, 8317638,       0,       0,       0
  84. };
  85.  
  86. /* 20bits unsigned fractional binary codes */
  87. static const uint32_t lossy_quant[32] = {
  88.         0, 6710886, 4194304, 3355443, 2474639, 2097152, 1761608, 1426063,
  89.    796918,  461373,  251658,  146801,   79692,   46137,   27263,   16777,
  90.     10486,    5872,    3355,    1887,    1258,     713,     336,     168,
  91.        84,      42,      21,       0,       0,       0,       0,       0
  92. };
  93.  
  94. static const float lossy_quant_d[32] = {
  95.           0,     1.6,      1.0,     0.8,    0.59,    0.50,    0.42,    0.34,
  96.        0.19,    0.11,     0.06,   0.035,   0.019,   0.011,  0.0065,  0.0040,
  97.      0.0025,  0.0014,   0.0008, 0.00045, 0.00030, 0.00017, 0.00008, 0.00004,
  98.     0.00002, 0.00001, 0.000005,       0,       0,       0,       0,       0
  99. };
  100.  
  101. /* 20bits unsigned fractional binary codes */
  102. static const uint32_t lossless_quant[32] = {
  103.         0, 4194304, 2097152, 1384120, 1048576,  696254,  524288,  348127,
  104.    262144,  131072,   65431,   33026,   16450,    8208,    4100,    2049,
  105.      1024,     512,     256,     128,      64,      32,      16,       8,
  106.         4,       2,       1,       0,       0,       0,       0,       0
  107. };
  108.  
  109. static const float lossless_quant_d[32] = {
  110.     0,             1.0,      0.5,     0.33,     0.25,    0.166,    0.125,
  111.     0.083,      0.0625,  0.03125,   0.0156, 7.874E-3, 3.922E-3, 1.957E-3,
  112.     9.775E-4, 4.885E-4, 2.442E-4, 1.221E-4, 6.104E-5, 3.052E-5, 1.526E-5,
  113.     7.629E-6, 3.815E-6, 1.907E-6, 9.537E-7, 4.768E-7, 2.384E-7,        0,
  114.            0,        0,        0,        0
  115. };
  116.  
  117.  
  118. /* Vector quantization tables *//* FIR filter coefficients, they can be cut on half and maybe use float instead of double*/
  119.  
  120. DECLARE_ALIGNED(16, static const float, fir_32bands_perfect)[] =
  121. {
  122. +1.135985195E-010,
  123. +7.018770981E-011,
  124. -1.608403011E-008,
  125. -5.083275667E-008,
  126. -1.543309907E-007,
  127. -3.961981463E-007,
  128. -7.342250683E-007,
  129. -3.970030775E-007,
  130. -4.741137047E-007,
  131. -6.022448247E-007,
  132. -6.628192182E-007,
  133. -6.982898526E-007,
  134. -7.020648809E-007,
  135. -6.767839409E-007,
  136. -6.262345096E-007,
  137. -5.564140224E-007,
  138. +7.003467317E-007,
  139. +8.419976893E-007,
  140. +9.742954035E-007,
  141. +1.085227950E-006,
  142. +1.162929266E-006,
  143. +1.194632091E-006,
  144. +1.179182050E-006,
  145. +1.033426656E-006,
  146. +9.451737242E-007,
  147. +1.975324267E-006,
  148. +1.190443072E-006,
  149. +5.234479659E-007,
  150. +2.014677420E-007,
  151. +7.834767501E-008,
  152. -6.702406963E-010,
  153. -1.613285505E-009,
  154. -2.682709610E-009,
  155. -3.399493131E-009,
  156. +1.314406006E-008,
  157. +7.506701927E-009,
  158. +2.788728892E-008,
  159. +1.444918922E-007,
  160. +3.132386439E-007,
  161. +1.399798180E-006,
  162. +2.032118118E-006,
  163. +2.715013807E-006,
  164. +3.453840463E-006,
  165. +4.195037945E-006,
  166. +4.896494374E-006,
  167. +5.516381407E-006,
  168. +6.015239251E-006,
  169. +6.361419310E-006,
  170. +8.006985809E-006,
  171. +8.087732567E-006,
  172. +7.941360309E-006,
  173. +7.568834008E-006,
  174. +6.986399967E-006,
  175. +6.225028756E-006,
  176. +5.315936960E-006,
  177. +4.429412002E-006,
  178. +3.332600045E-006,
  179. +8.427224429E-007,
  180. +4.341498823E-007,
  181. +9.458596395E-008,
  182. +2.975164826E-008,
  183. +6.402664354E-008,
  184. -3.246264413E-008,
  185. -3.809887872E-008,
  186. +8.434094667E-008,
  187. +6.437721822E-008,
  188. +1.189317118E-006,
  189. +2.497214155E-006,
  190. +3.617151151E-006,
  191. +3.157242645E-006,
  192. +2.319611212E-006,
  193. +7.869333785E-006,
  194. +9.826449968E-006,
  195. +1.177108606E-005,
  196. +1.379448349E-005,
  197. +1.571428584E-005,
  198. +1.743183020E-005,
  199. +1.884208177E-005,
  200. +1.987093310E-005,
  201. +2.042970118E-005,
  202. -3.144468428E-005,
  203. -3.334947178E-005,
  204. -3.460439257E-005,
  205. -3.515914432E-005,
  206. -3.495384954E-005,
  207. -3.397853652E-005,
  208. -3.225446198E-005,
  209. -2.978993689E-005,
  210. -2.677291741E-005,
  211. -1.806914770E-005,
  212. -1.776598037E-005,
  213. -1.661818715E-005,
  214. -1.207003334E-005,
  215. -6.993315310E-006,
  216. -5.633860383E-007,
  217. -9.984935332E-007,
  218. -1.470520488E-006,
  219. -1.853591357E-006,
  220. +7.198007665E-007,
  221. +3.086857760E-006,
  222. +6.084746474E-006,
  223. +9.561075785E-006,
  224. +1.309637537E-005,
  225. +2.263354872E-005,
  226. +2.847247197E-005,
  227. +3.415624451E-005,
  228. +3.946387005E-005,
  229. +4.425736552E-005,
  230. +4.839275425E-005,
  231. +5.176846025E-005,
  232. +5.429694284E-005,
  233. +5.595519906E-005,
  234. +4.916387297E-006,
  235. +9.299508747E-006,
  236. +1.356193479E-005,
  237. +1.751866148E-005,
  238. +2.093936746E-005,
  239. +2.362549276E-005,
  240. +2.537086584E-005,
  241. +2.618136386E-005,
  242. +2.554462844E-005,
  243. +3.018750249E-005,
  244. +2.570833203E-005,
  245. +1.985177369E-005,
  246. +1.191342653E-005,
  247. +2.525620175E-006,
  248. -1.521241393E-005,
  249. -1.617751332E-005,
  250. +1.992636317E-005,
  251. +1.774702469E-005,
  252. +4.624524081E-005,
  253. +5.610509834E-005,
  254. +6.568001118E-005,
  255. +7.513730816E-005,
  256. +8.413690375E-005,
  257. +8.757545584E-005,
  258. +9.517164290E-005,
  259. +1.020687996E-004,
  260. +1.084438481E-004,
  261. +1.140582463E-004,
  262. +1.187910311E-004,
  263. +1.224978914E-004,
  264. +1.250260248E-004,
  265. +1.262027217E-004,
  266. +1.226499153E-004,
  267. +1.213575742E-004,
  268. +1.180980107E-004,
  269. +1.126275165E-004,
  270. +1.047207043E-004,
  271. +9.417100227E-005,
  272. +8.078388782E-005,
  273. +6.447290798E-005,
  274. +4.491530854E-005,
  275. +2.470704203E-005,
  276. -1.714242217E-006,
  277. -3.193307566E-005,
  278. -6.541742187E-005,
  279. -1.024175072E-004,
  280. -1.312203676E-004,
  281. -1.774113771E-004,
  282. -2.233728592E-004,
  283. -2.682086197E-004,
  284. -3.347633174E-004,
  285. -3.906481725E-004,
  286. -4.490280990E-004,
  287. -5.099929986E-004,
  288. -5.729619297E-004,
  289. -6.358824321E-004,
  290. -7.021900383E-004,
  291. -7.698345580E-004,
  292. -8.385353722E-004,
  293. -9.078957955E-004,
  294. -9.775133803E-004,
  295. -1.046945457E-003,
  296. -1.115717343E-003,
  297. -1.183370827E-003,
  298. -1.252829796E-003,
  299. -1.316190348E-003,
  300. -1.376571832E-003,
  301. -1.433344092E-003,
  302. -1.485876855E-003,
  303. -1.533520175E-003,
  304. -1.575609902E-003,
  305. -1.611457788E-003,
  306. -1.640390139E-003,
  307. -1.661288203E-003,
  308. -1.674512983E-003,
  309. -1.678415807E-003,
  310. -1.672798418E-003,
  311. -1.656501088E-003,
  312. -1.633993932E-003,
  313. -1.593449386E-003,
  314. +1.542080659E-003,
  315. +1.479332102E-003,
  316. +1.395521569E-003,
  317. +1.303116791E-003,
  318. +1.196175464E-003,
  319. +1.073757303E-003,
  320. +9.358961834E-004,
  321. +7.817269652E-004,
  322. +6.114174030E-004,
  323. +4.244441516E-004,
  324. +2.206075296E-004,
  325. -2.719412748E-007,
  326. -2.382978710E-004,
  327. -4.935106263E-004,
  328. -7.658848190E-004,
  329. -1.055365428E-003,
  330. -1.361547387E-003,
  331. -1.684492454E-003,
  332. -2.023874084E-003,
  333. -2.379294252E-003,
  334. -2.750317100E-003,
  335. -3.136433195E-003,
  336. -3.537061159E-003,
  337. -3.951539751E-003,
  338. -4.379155114E-003,
  339. -4.819062538E-003,
  340. -5.270531867E-003,
  341. -5.732392892E-003,
  342. -6.203945260E-003,
  343. -6.683901884E-003,
  344. -7.170005701E-003,
  345. -7.664063945E-003,
  346. -8.162760176E-003,
  347. -8.665001951E-003,
  348. -9.170533158E-003,
  349. -9.676489048E-003,
  350. -1.018219907E-002,
  351. -1.068630442E-002,
  352. -1.118756086E-002,
  353. -1.168460958E-002,
  354. -1.217562053E-002,
  355. -1.265939046E-002,
  356. -1.313448418E-002,
  357. -1.359948888E-002,
  358. -1.405300573E-002,
  359. -1.449365262E-002,
  360. -1.492007636E-002,
  361. -1.533095632E-002,
  362. -1.572482102E-002,
  363. -1.610082202E-002,
  364. -1.645756140E-002,
  365. -1.679391414E-002,
  366. -1.710879989E-002,
  367. -1.740120351E-002,
  368. -1.767017506E-002,
  369. -1.791484281E-002,
  370. -1.813439466E-002,
  371. -1.832821220E-002,
  372. -1.849545911E-002,
  373. -1.863567345E-002,
  374. -1.874836907E-002,
  375. -1.883326657E-002,
  376. -1.889026538E-002,
  377. -1.891860925E-002,
  378. +1.891860925E-002,
  379. +1.889026538E-002,
  380. +1.883326657E-002,
  381. +1.874836907E-002,
  382. +1.863567345E-002,
  383. +1.849545911E-002,
  384. +1.832821220E-002,
  385. +1.813439466E-002,
  386. +1.791484281E-002,
  387. +1.767017506E-002,
  388. +1.740120351E-002,
  389. +1.710879989E-002,
  390. +1.679391414E-002,
  391. +1.645756140E-002,
  392. +1.610082202E-002,
  393. +1.572482102E-002,
  394. +1.533095632E-002,
  395. +1.492007636E-002,
  396. +1.449365262E-002,
  397. +1.405300573E-002,
  398. +1.359948888E-002,
  399. +1.313448418E-002,
  400. +1.265939046E-002,
  401. +1.217562053E-002,
  402. +1.168460958E-002,
  403. +1.118756086E-002,
  404. +1.068630442E-002,
  405. +1.018219907E-002,
  406. +9.676489048E-003,
  407. +9.170533158E-003,
  408. +8.665001951E-003,
  409. +8.162760176E-003,
  410. +7.664063945E-003,
  411. +7.170005701E-003,
  412. +6.683901884E-003,
  413. +6.203945260E-003,
  414. +5.732392892E-003,
  415. +5.270531867E-003,
  416. +4.819062538E-003,
  417. +4.379155114E-003,
  418. +3.951539751E-003,
  419. +3.537061159E-003,
  420. +3.136433195E-003,
  421. +2.750317100E-003,
  422. +2.379294252E-003,
  423. +2.023874084E-003,
  424. +1.684492454E-003,
  425. +1.361547387E-003,
  426. +1.055365428E-003,
  427. +7.658848190E-004,
  428. +4.935106263E-004,
  429. +2.382978710E-004,
  430. +2.719412748E-007,
  431. -2.206075296E-004,
  432. -4.244441516E-004,
  433. -6.114174030E-004,
  434. -7.817269652E-004,
  435. -9.358961834E-004,
  436. -1.073757303E-003,
  437. -1.196175464E-003,
  438. -1.303116791E-003,
  439. -1.395521569E-003,
  440. -1.479332102E-003,
  441. -1.542080659E-003,
  442. +1.593449386E-003,
  443. +1.633993932E-003,
  444. +1.656501088E-003,
  445. +1.672798418E-003,
  446. +1.678415807E-003,
  447. +1.674512983E-003,
  448. +1.661288203E-003,
  449. +1.640390139E-003,
  450. +1.611457788E-003,
  451. +1.575609902E-003,
  452. +1.533520175E-003,
  453. +1.485876855E-003,
  454. +1.433344092E-003,
  455. +1.376571832E-003,
  456. +1.316190348E-003,
  457. +1.252829796E-003,
  458. +1.183370827E-003,
  459. +1.115717343E-003,
  460. +1.046945457E-003,
  461. +9.775133803E-004,
  462. +9.078957955E-004,
  463. +8.385353722E-004,
  464. +7.698345580E-004,
  465. +7.021900383E-004,
  466. +6.358824321E-004,
  467. +5.729619297E-004,
  468. +5.099929986E-004,
  469. +4.490280990E-004,
  470. +3.906481725E-004,
  471. +3.347633174E-004,
  472. +2.682086197E-004,
  473. +2.233728592E-004,
  474. +1.774113771E-004,
  475. +1.312203676E-004,
  476. +1.024175072E-004,
  477. +6.541742187E-005,
  478. +3.193307566E-005,
  479. +1.714242217E-006,
  480. -2.470704203E-005,
  481. -4.491530854E-005,
  482. -6.447290798E-005,
  483. -8.078388782E-005,
  484. -9.417100227E-005,
  485. -1.047207043E-004,
  486. -1.126275165E-004,
  487. -1.180980107E-004,
  488. -1.213575742E-004,
  489. -1.226499153E-004,
  490. -1.262027217E-004,
  491. -1.250260248E-004,
  492. -1.224978914E-004,
  493. -1.187910311E-004,
  494. -1.140582463E-004,
  495. -1.084438481E-004,
  496. -1.020687996E-004,
  497. -9.517164290E-005,
  498. -8.757545584E-005,
  499. -8.413690375E-005,
  500. -7.513730816E-005,
  501. -6.568001118E-005,
  502. -5.610509834E-005,
  503. -4.624524081E-005,
  504. -1.774702469E-005,
  505. -1.992636317E-005,
  506. +1.617751332E-005,
  507. +1.521241393E-005,
  508. -2.525620175E-006,
  509. -1.191342653E-005,
  510. -1.985177369E-005,
  511. -2.570833203E-005,
  512. -3.018750249E-005,
  513. -2.554462844E-005,
  514. -2.618136386E-005,
  515. -2.537086584E-005,
  516. -2.362549276E-005,
  517. -2.093936746E-005,
  518. -1.751866148E-005,
  519. -1.356193479E-005,
  520. -9.299508747E-006,
  521. -4.916387297E-006,
  522. -5.595519906E-005,
  523. -5.429694284E-005,
  524. -5.176846025E-005,
  525. -4.839275425E-005,
  526. -4.425736552E-005,
  527. -3.946387005E-005,
  528. -3.415624451E-005,
  529. -2.847247197E-005,
  530. -2.263354872E-005,
  531. -1.309637537E-005,
  532. -9.561075785E-006,
  533. -6.084746474E-006,
  534. -3.086857760E-006,
  535. -7.198007665E-007,
  536. +1.853591357E-006,
  537. +1.470520488E-006,
  538. +9.984935332E-007,
  539. +5.633860383E-007,
  540. +6.993315310E-006,
  541. +1.207003334E-005,
  542. +1.661818715E-005,
  543. +1.776598037E-005,
  544. +1.806914770E-005,
  545. +2.677291741E-005,
  546. +2.978993689E-005,
  547. +3.225446198E-005,
  548. +3.397853652E-005,
  549. +3.495384954E-005,
  550. +3.515914432E-005,
  551. +3.460439257E-005,
  552. +3.334947178E-005,
  553. +3.144468428E-005,
  554. -2.042970118E-005,
  555. -1.987093310E-005,
  556. -1.884208177E-005,
  557. -1.743183020E-005,
  558. -1.571428584E-005,
  559. -1.379448349E-005,
  560. -1.177108606E-005,
  561. -9.826449968E-006,
  562. -7.869333785E-006,
  563. -2.319611212E-006,
  564. -3.157242645E-006,
  565. -3.617151151E-006,
  566. -2.497214155E-006,
  567. -1.189317118E-006,
  568. -6.437721822E-008,
  569. -8.434094667E-008,
  570. +3.809887872E-008,
  571. +3.246264413E-008,
  572. -6.402664354E-008,
  573. -2.975164826E-008,
  574. -9.458596395E-008,
  575. -4.341498823E-007,
  576. -8.427224429E-007,
  577. -3.332600045E-006,
  578. -4.429412002E-006,
  579. -5.315936960E-006,
  580. -6.225028756E-006,
  581. -6.986399967E-006,
  582. -7.568834008E-006,
  583. -7.941360309E-006,
  584. -8.087732567E-006,
  585. -8.006985809E-006,
  586. -6.361419310E-006,
  587. -6.015239251E-006,
  588. -5.516381407E-006,
  589. -4.896494374E-006,
  590. -4.195037945E-006,
  591. -3.453840463E-006,
  592. -2.715013807E-006,
  593. -2.032118118E-006,
  594. -1.399798180E-006,
  595. -3.132386439E-007,
  596. -1.444918922E-007,
  597. -2.788728892E-008,
  598. -7.506701927E-009,
  599. -1.314406006E-008,
  600. +3.399493131E-009,
  601. +2.682709610E-009,
  602. +1.613285505E-009,
  603. +6.702406963E-010,
  604. -7.834767501E-008,
  605. -2.014677420E-007,
  606. -5.234479659E-007,
  607. -1.190443072E-006,
  608. -1.975324267E-006,
  609. -9.451737242E-007,
  610. -1.033426656E-006,
  611. -1.179182050E-006,
  612. -1.194632091E-006,
  613. -1.162929266E-006,
  614. -1.085227950E-006,
  615. -9.742954035E-007,
  616. -8.419976893E-007,
  617. -7.003467317E-007,
  618. +5.564140224E-007,
  619. +6.262345096E-007,
  620. +6.767839409E-007,
  621. +7.020648809E-007,
  622. +6.982898526E-007,
  623. +6.628192182E-007,
  624. +6.022448247E-007,
  625. +4.741137047E-007,
  626. +3.970030775E-007,
  627. +7.342250683E-007,
  628. +3.961981463E-007,
  629. +1.543309907E-007,
  630. +5.083275667E-008,
  631. +1.608403011E-008,
  632. -7.018770981E-011,
  633. -1.135985195E-010
  634. };
  635.  
  636. DECLARE_ALIGNED(16, static const float, fir_32bands_nonperfect)[] =
  637. {
  638. -1.390191784E-007,
  639. -1.693738625E-007,
  640. -2.030677564E-007,
  641. -2.404238444E-007,
  642. -2.818143514E-007,
  643. -3.276689142E-007,
  644. -3.784752209E-007,
  645. -4.347855338E-007,
  646. -4.972276315E-007,
  647. -5.665120852E-007,
  648. -6.434325428E-007,
  649. -7.288739425E-007,
  650. -8.238164355E-007,
  651. -9.293416952E-007,
  652. -1.046637067E-006,
  653. -1.176999604E-006,
  654. -1.321840614E-006,
  655. -1.482681114E-006,
  656. -1.661159786E-006,
  657. -1.859034001E-006,
  658. -2.078171747E-006,
  659. -2.320550948E-006,
  660. -2.588257530E-006,
  661. -2.883470643E-006,
  662. -3.208459020E-006,
  663. -3.565570978E-006,
  664. -3.957220997E-006,
  665. -4.385879038E-006,
  666. -4.854050530E-006,
  667. -5.364252502E-006,
  668. -5.918994248E-006,
  669. -6.520755960E-006,
  670. -7.171964626E-006,
  671. -7.874960829E-006,
  672. -8.631964192E-006,
  673. -9.445050637E-006,
  674. -1.031611009E-005,
  675. -1.124680875E-005,
  676. -1.223855270E-005,
  677. -1.329243969E-005,
  678. -1.440921824E-005,
  679. -1.558924305E-005,
  680. -1.683242772E-005,
  681. -1.813820381E-005,
  682. -1.950545993E-005,
  683. -2.093250441E-005,
  684. -2.241701623E-005,
  685. -2.395598858E-005,
  686. -2.554569073E-005,
  687. -2.718161704E-005,
  688. -2.885844333E-005,
  689. -3.056998685E-005,
  690. -3.230916263E-005,
  691. -3.406793985E-005,
  692. -3.583733633E-005,
  693. -3.760734762E-005,
  694. -3.936696885E-005,
  695. -4.110412556E-005,
  696. -4.280570283E-005,
  697. -4.445751256E-005,
  698. -4.604430433E-005,
  699. -4.754976908E-005,
  700. -4.895655002E-005,
  701. -5.024627535E-005,
  702. +5.139957648E-005,
  703. +5.239612074E-005,
  704. +5.321469871E-005,
  705. +5.383323878E-005,
  706. +5.422891263E-005,
  707. +5.437819709E-005,
  708. +5.425697600E-005,
  709. +5.384063843E-005,
  710. +5.310418419E-005,
  711. +5.202236207E-005,
  712. +5.056979353E-005,
  713. +4.872112549E-005,
  714. +4.645117951E-005,
  715. +4.373511547E-005,
  716. +4.054862075E-005,
  717. +3.686808850E-005,
  718. +3.267079956E-005,
  719. +2.793515523E-005,
  720. +2.264085742E-005,
  721. +1.676913780E-005,
  722. +1.030297699E-005,
  723. +3.227306706E-006,
  724. -4.470633485E-006,
  725. -1.280130618E-005,
  726. -2.177240640E-005,
  727. -3.138873581E-005,
  728. -4.165195787E-005,
  729. -5.256036457E-005,
  730. -6.410864444E-005,
  731. -7.628766616E-005,
  732. -8.908427117E-005,
  733. -1.024810626E-004,
  734. -1.164562127E-004,
  735. -1.309833024E-004,
  736. -1.460311323E-004,
  737. -1.615635992E-004,
  738. -1.775395358E-004,
  739. -1.939126523E-004,
  740. -2.106313768E-004,
  741. -2.276388550E-004,
  742. -2.448728774E-004,
  743. -2.622658503E-004,
  744. -2.797449124E-004,
  745. -2.972317743E-004,
  746. -3.146430245E-004,
  747. -3.318900708E-004,
  748. -3.488793736E-004,
  749. -3.655125911E-004,
  750. -3.816867538E-004,
  751. -3.972945851E-004,
  752. -4.122247046E-004,
  753. -4.263620067E-004,
  754. -4.395879805E-004,
  755. -4.517810594E-004,
  756. -4.628172028E-004,
  757. -4.725702747E-004,
  758. -4.809123348E-004,
  759. -4.877146275E-004,
  760. -4.928477574E-004,
  761. -4.961824161E-004,
  762. -4.975944757E-004,
  763. -4.969481961E-004,
  764. -4.941228544E-004,
  765. -4.889960401E-004,
  766. +4.814492422E-004,
  767. +4.713678791E-004,
  768. +4.586426076E-004,
  769. +4.431701091E-004,
  770. +4.248536134E-004,
  771. +4.036037717E-004,
  772. +3.793396754E-004,
  773. +3.519894381E-004,
  774. +3.214911267E-004,
  775. +2.877934603E-004,
  776. +2.508567995E-004,
  777. +2.106537577E-004,
  778. +1.671699720E-004,
  779. +1.204049113E-004,
  780. +7.037253090E-005,
  781. +1.710198012E-005,
  782. -3.936182839E-005,
  783. -9.895755647E-005,
  784. -1.616069785E-004,
  785. -2.272142592E-004,
  786. -2.956659591E-004,
  787. -3.668301215E-004,
  788. -4.405563814E-004,
  789. -5.166754709E-004,
  790. -5.949990009E-004,
  791. -6.753197522E-004,
  792. -7.574109477E-004,
  793. -8.410271257E-004,
  794. -9.259034996E-004,
  795. -1.011756598E-003,
  796. -1.098284614E-003,
  797. -1.185167348E-003,
  798. -1.272067428E-003,
  799. -1.358630019E-003,
  800. -1.444484224E-003,
  801. -1.529243193E-003,
  802. -1.612505526E-003,
  803. -1.693855622E-003,
  804. -1.772865304E-003,
  805. -1.849094522E-003,
  806. -1.922092517E-003,
  807. -1.991399564E-003,
  808. -2.056547208E-003,
  809. -2.117061289E-003,
  810. -2.172462177E-003,
  811. -2.222266514E-003,
  812. -2.265989315E-003,
  813. -2.303145360E-003,
  814. -2.333251061E-003,
  815. -2.355825622E-003,
  816. -2.370394068E-003,
  817. -2.376487479E-003,
  818. -2.373647178E-003,
  819. -2.361423569E-003,
  820. -2.339380793E-003,
  821. -2.307097195E-003,
  822. -2.264167881E-003,
  823. -2.210205887E-003,
  824. -2.144844970E-003,
  825. -2.067740774E-003,
  826. -1.978572691E-003,
  827. -1.877046190E-003,
  828. -1.762894331E-003,
  829. -1.635878929E-003,
  830. +1.495792647E-003,
  831. +1.342460280E-003,
  832. +1.175740734E-003,
  833. +9.955273708E-004,
  834. +8.017504588E-004,
  835. +5.943773431E-004,
  836. +3.734139318E-004,
  837. +1.389056415E-004,
  838. -1.090620208E-004,
  839. -3.703625989E-004,
  840. -6.448282511E-004,
  841. -9.322494152E-004,
  842. -1.232374110E-003,
  843. -1.544908970E-003,
  844. -1.869517611E-003,
  845. -2.205822384E-003,
  846. -2.553403843E-003,
  847. -2.911801683E-003,
  848. -3.280514618E-003,
  849. -3.659002949E-003,
  850. -4.046686925E-003,
  851. -4.442950245E-003,
  852. -4.847140983E-003,
  853. -5.258570891E-003,
  854. -5.676518660E-003,
  855. -6.100233644E-003,
  856. -6.528933067E-003,
  857. -6.961807609E-003,
  858. -7.398022339E-003,
  859. -7.836719044E-003,
  860. -8.277016692E-003,
  861. -8.718019351E-003,
  862. -9.158811532E-003,
  863. -9.598465636E-003,
  864. -1.003604382E-002,
  865. -1.047059800E-002,
  866. -1.090117730E-002,
  867. -1.132682897E-002,
  868. -1.174659748E-002,
  869. -1.215953380E-002,
  870. -1.256469358E-002,
  871. -1.296114177E-002,
  872. -1.334795821E-002,
  873. -1.372423489E-002,
  874. -1.408908330E-002,
  875. -1.444163360E-002,
  876. -1.478104480E-002,
  877. -1.510649733E-002,
  878. -1.541720331E-002,
  879. -1.571240649E-002,
  880. -1.599138230E-002,
  881. -1.625344716E-002,
  882. -1.649795473E-002,
  883. -1.672429405E-002,
  884. -1.693190821E-002,
  885. -1.712027565E-002,
  886. -1.728892699E-002,
  887. -1.743743755E-002,
  888. -1.756543480E-002,
  889. -1.767260395E-002,
  890. -1.775865816E-002,
  891. -1.782339066E-002,
  892. -1.786663756E-002,
  893. -1.788828894E-002,
  894. +1.788828894E-002,
  895. +1.786663756E-002,
  896. +1.782339066E-002,
  897. +1.775865816E-002,
  898. +1.767260395E-002,
  899. +1.756543480E-002,
  900. +1.743743755E-002,
  901. +1.728892699E-002,
  902. +1.712027565E-002,
  903. +1.693190821E-002,
  904. +1.672429405E-002,
  905. +1.649795473E-002,
  906. +1.625344716E-002,
  907. +1.599138230E-002,
  908. +1.571240649E-002,
  909. +1.541720331E-002,
  910. +1.510649733E-002,
  911. +1.478104480E-002,
  912. +1.444163360E-002,
  913. +1.408908330E-002,
  914. +1.372423489E-002,
  915. +1.334795821E-002,
  916. +1.296114177E-002,
  917. +1.256469358E-002,
  918. +1.215953380E-002,
  919. +1.174659748E-002,
  920. +1.132682897E-002,
  921. +1.090117730E-002,
  922. +1.047059800E-002,
  923. +1.003604382E-002,
  924. +9.598465636E-003,
  925. +9.158811532E-003,
  926. +8.718019351E-003,
  927. +8.277016692E-003,
  928. +7.836719044E-003,
  929. +7.398022339E-003,
  930. +6.961807609E-003,
  931. +6.528933067E-003,
  932. +6.100233644E-003,
  933. +5.676518660E-003,
  934. +5.258570891E-003,
  935. +4.847140983E-003,
  936. +4.442950245E-003,
  937. +4.046686925E-003,
  938. +3.659002949E-003,
  939. +3.280514618E-003,
  940. +2.911801683E-003,
  941. +2.553403843E-003,
  942. +2.205822384E-003,
  943. +1.869517611E-003,
  944. +1.544908970E-003,
  945. +1.232374110E-003,
  946. +9.322494152E-004,
  947. +6.448282511E-004,
  948. +3.703625989E-004,
  949. +1.090620208E-004,
  950. -1.389056415E-004,
  951. -3.734139318E-004,
  952. -5.943773431E-004,
  953. -8.017504588E-004,
  954. -9.955273708E-004,
  955. -1.175740734E-003,
  956. -1.342460280E-003,
  957. -1.495792647E-003,
  958. +1.635878929E-003,
  959. +1.762894331E-003,
  960. +1.877046190E-003,
  961. +1.978572691E-003,
  962. +2.067740774E-003,
  963. +2.144844970E-003,
  964. +2.210205887E-003,
  965. +2.264167881E-003,
  966. +2.307097195E-003,
  967. +2.339380793E-003,
  968. +2.361423569E-003,
  969. +2.373647178E-003,
  970. +2.376487479E-003,
  971. +2.370394068E-003,
  972. +2.355825622E-003,
  973. +2.333251061E-003,
  974. +2.303145360E-003,
  975. +2.265989315E-003,
  976. +2.222266514E-003,
  977. +2.172462177E-003,
  978. +2.117061289E-003,
  979. +2.056547208E-003,
  980. +1.991399564E-003,
  981. +1.922092517E-003,
  982. +1.849094522E-003,
  983. +1.772865304E-003,
  984. +1.693855622E-003,
  985. +1.612505526E-003,
  986. +1.529243193E-003,
  987. +1.444484224E-003,
  988. +1.358630019E-003,
  989. +1.272067428E-003,
  990. +1.185167348E-003,
  991. +1.098284614E-003,
  992. +1.011756598E-003,
  993. +9.259034996E-004,
  994. +8.410271257E-004,
  995. +7.574109477E-004,
  996. +6.753197522E-004,
  997. +5.949990009E-004,
  998. +5.166754709E-004,
  999. +4.405563814E-004,
  1000. +3.668301215E-004,
  1001. +2.956659591E-004,
  1002. +2.272142592E-004,
  1003. +1.616069785E-004,
  1004. +9.895755647E-005,
  1005. +3.936182839E-005,
  1006. -1.710198012E-005,
  1007. -7.037253090E-005,
  1008. -1.204049113E-004,
  1009. -1.671699720E-004,
  1010. -2.106537577E-004,
  1011. -2.508567995E-004,
  1012. -2.877934603E-004,
  1013. -3.214911267E-004,
  1014. -3.519894381E-004,
  1015. -3.793396754E-004,
  1016. -4.036037717E-004,
  1017. -4.248536134E-004,
  1018. -4.431701091E-004,
  1019. -4.586426076E-004,
  1020. -4.713678791E-004,
  1021. -4.814492422E-004,
  1022. +4.889960401E-004,
  1023. +4.941228544E-004,
  1024. +4.969481961E-004,
  1025. +4.975944757E-004,
  1026. +4.961824161E-004,
  1027. +4.928477574E-004,
  1028. +4.877146275E-004,
  1029. +4.809123348E-004,
  1030. +4.725702747E-004,
  1031. +4.628172028E-004,
  1032. +4.517810594E-004,
  1033. +4.395879805E-004,
  1034. +4.263620067E-004,
  1035. +4.122247046E-004,
  1036. +3.972945851E-004,
  1037. +3.816867538E-004,
  1038. +3.655125911E-004,
  1039. +3.488793736E-004,
  1040. +3.318900708E-004,
  1041. +3.146430245E-004,
  1042. +2.972317743E-004,
  1043. +2.797449124E-004,
  1044. +2.622658503E-004,
  1045. +2.448728774E-004,
  1046. +2.276388550E-004,
  1047. +2.106313768E-004,
  1048. +1.939126523E-004,
  1049. +1.775395358E-004,
  1050. +1.615635992E-004,
  1051. +1.460311323E-004,
  1052. +1.309833024E-004,
  1053. +1.164562127E-004,
  1054. +1.024810626E-004,
  1055. +8.908427117E-005,
  1056. +7.628766616E-005,
  1057. +6.410864444E-005,
  1058. +5.256036457E-005,
  1059. +4.165195787E-005,
  1060. +3.138873581E-005,
  1061. +2.177240640E-005,
  1062. +1.280130618E-005,
  1063. +4.470633485E-006,
  1064. -3.227306706E-006,
  1065. -1.030297699E-005,
  1066. -1.676913780E-005,
  1067. -2.264085742E-005,
  1068. -2.793515523E-005,
  1069. -3.267079956E-005,
  1070. -3.686808850E-005,
  1071. -4.054862075E-005,
  1072. -4.373511547E-005,
  1073. -4.645117951E-005,
  1074. -4.872112549E-005,
  1075. -5.056979353E-005,
  1076. -5.202236207E-005,
  1077. -5.310418419E-005,
  1078. -5.384063843E-005,
  1079. -5.425697600E-005,
  1080. -5.437819709E-005,
  1081. -5.422891263E-005,
  1082. -5.383323878E-005,
  1083. -5.321469871E-005,
  1084. -5.239612074E-005,
  1085. -5.139957648E-005,
  1086. +5.024627535E-005,
  1087. +4.895655002E-005,
  1088. +4.754976908E-005,
  1089. +4.604430433E-005,
  1090. +4.445751256E-005,
  1091. +4.280570283E-005,
  1092. +4.110412556E-005,
  1093. +3.936696885E-005,
  1094. +3.760734762E-005,
  1095. +3.583733633E-005,
  1096. +3.406793985E-005,
  1097. +3.230916263E-005,
  1098. +3.056998685E-005,
  1099. +2.885844333E-005,
  1100. +2.718161704E-005,
  1101. +2.554569073E-005,
  1102. +2.395598858E-005,
  1103. +2.241701623E-005,
  1104. +2.093250441E-005,
  1105. +1.950545993E-005,
  1106. +1.813820381E-005,
  1107. +1.683242772E-005,
  1108. +1.558924305E-005,
  1109. +1.440921824E-005,
  1110. +1.329243969E-005,
  1111. +1.223855270E-005,
  1112. +1.124680875E-005,
  1113. +1.031611009E-005,
  1114. +9.445050637E-006,
  1115. +8.631964192E-006,
  1116. +7.874960829E-006,
  1117. +7.171964626E-006,
  1118. +6.520755960E-006,
  1119. +5.918994248E-006,
  1120. +5.364252502E-006,
  1121. +4.854050530E-006,
  1122. +4.385879038E-006,
  1123. +3.957220997E-006,
  1124. +3.565570978E-006,
  1125. +3.208459020E-006,
  1126. +2.883470643E-006,
  1127. +2.588257530E-006,
  1128. +2.320550948E-006,
  1129. +2.078171747E-006,
  1130. +1.859034001E-006,
  1131. +1.661159786E-006,
  1132. +1.482681114E-006,
  1133. +1.321840614E-006,
  1134. +1.176999604E-006,
  1135. +1.046637067E-006,
  1136. +9.293416952E-007,
  1137. +8.238164355E-007,
  1138. +7.288739425E-007,
  1139. +6.434325428E-007,
  1140. +5.665120852E-007,
  1141. +4.972276315E-007,
  1142. +4.347855338E-007,
  1143. +3.784752209E-007,
  1144. +3.276689142E-007,
  1145. +2.818143514E-007,
  1146. +2.404238444E-007,
  1147. +2.030677564E-007,
  1148. +1.693738625E-007,
  1149. +1.390191784E-007
  1150. };
  1151.  
  1152. DECLARE_ALIGNED(16, static const float, lfe_fir_64)[] =
  1153. {
  1154.     2.658434386830777e-4, 9.029330685734748e-3,
  1155.     7.939263433218002e-2, 2.425158768892288e-1,
  1156.     3.430179357528686e-1, 2.398228943347931e-1,
  1157.     7.746443897485733e-2, 8.622321300208569e-3,
  1158.     8.179365249816328e-5, 9.450953453779220e-3,
  1159.     8.134882897138596e-2, 2.451938837766648e-1,
  1160.     3.429597318172455e-1, 2.371159791946411e-1,
  1161.     7.556436210870743e-2, 8.229630999267101e-3,
  1162.     9.439323912374676e-5, 9.887560270726680e-3,
  1163.     8.333285897970200e-2, 2.478559017181396e-1,
  1164.     3.428434133529663e-1, 2.343961596488952e-1,
  1165.     7.369252294301987e-2, 7.850865833461285e-3,
  1166.     1.082170274457894e-4, 1.033949479460716e-2,
  1167.     8.534456789493561e-2, 2.505008876323700e-1,
  1168.     3.426689505577088e-1, 2.316644787788391e-1,
  1169.     7.184901088476181e-2, 7.485736627131701e-3,
  1170.     1.233371440321207e-4, 1.080708485096693e-2,
  1171.     8.738376945257187e-2, 2.531278133392334e-1,
  1172.     3.424364924430847e-1, 2.289219647645950e-1,
  1173.     7.003392279148102e-2, 7.133882027119398e-3,
  1174.     1.397485757479444e-4, 1.129068247973919e-2,
  1175.     8.945026248693466e-2, 2.557355761528015e-1,
  1176.     3.421461284160614e-1, 2.261696159839630e-1,
  1177.     6.824731826782227e-2, 6.794991903007030e-3,
  1178.     1.575958012836054e-4, 1.179065089672804e-2,
  1179.     9.154383838176728e-2, 2.583232223987580e-1,
  1180.     3.417979776859284e-1, 2.234084606170654e-1,
  1181.     6.648923456668854e-2, 6.468691397458315e-3,
  1182.     1.769922382663936e-4, 1.230732165277004e-2,
  1183.     9.366425126791000e-2, 2.608896791934967e-1,
  1184.     3.413922190666198e-1, 2.206395119428635e-1,
  1185.     6.475970894098282e-2, 6.154712289571762e-3,
  1186.     1.981738605536520e-4, 1.284105982631445e-2,
  1187.     9.581124037504196e-2, 2.634339034557342e-1,
  1188.     3.409290313720703e-1, 2.178637981414795e-1,
  1189.     6.305878609418869e-2, 5.852684378623962e-3,
  1190.     2.211847313446924e-4, 1.339218579232693e-2,
  1191.     9.798453748226166e-2, 2.659549415111542e-1,
  1192.     3.404086530208588e-1, 2.150822728872299e-1,
  1193.     6.138643622398376e-2, 5.562345497310162e-3,
  1194.     2.460231189616024e-4, 1.396108977496624e-2,
  1195.     1.001838669180870e-1, 2.684516608715058e-1,
  1196.     3.398312926292420e-1, 2.122959494590759e-1,
  1197.     5.974265560507774e-2, 5.283284001052380e-3,
  1198.     2.726115926634520e-4, 1.454808749258518e-2,
  1199.     1.024089083075523e-1, 2.709231376647949e-1,
  1200.     3.391972482204438e-1, 2.095058411359787e-1,
  1201.     5.812742188572884e-2, 5.015311297029257e-3,
  1202.     3.013863170053810e-4, 1.515355054289102e-2,
  1203.     1.046593263745308e-1, 2.733682692050934e-1,
  1204.     3.385068178176880e-1, 2.067128717899322e-1,
  1205.     5.654069408774376e-2, 4.758012015372515e-3,
  1206.     3.328395541757345e-4, 1.577781140804291e-2,
  1207.     1.069347932934761e-1, 2.757860720157624e-1,
  1208.     3.377602994441986e-1, 2.039180546998978e-1,
  1209.     5.498242005705833e-2, 4.511159844696522e-3,
  1210.     3.658991190604866e-4, 1.642123050987720e-2,
  1211.     1.092349365353584e-1, 2.781755328178406e-1,
  1212.     3.369580209255218e-1, 2.011223286390304e-1,
  1213.     5.345252528786659e-2, 4.274417180567980e-3,
  1214.     4.018281470052898e-4, 1.708412915468216e-2,
  1215.     1.115593686699867e-1, 2.805356979370117e-1,
  1216.     3.361004292964936e-1, 1.983266174793244e-1,
  1217.     5.195093154907227e-2, 4.047499038279056e-3,
  1218.     4.401875485200435e-4, 1.776690222322941e-2,
  1219.     1.139076948165894e-1, 2.828655838966370e-1,
  1220.     3.351879119873047e-1, 1.955319195985794e-1,
  1221.     5.047753453254700e-2, 3.830091329291463e-3,
  1222.     4.812776169274002e-4, 1.846982724964619e-2,
  1223.     1.162794977426529e-1, 2.851640880107880e-1,
  1224.     3.342207968235016e-1, 1.927391141653061e-1,
  1225.     4.903224110603333e-2, 3.621967276558280e-3,
  1226.     5.252459668554366e-4, 1.919330470263958e-2,
  1227.     1.186743453145027e-1, 2.874303460121155e-1,
  1228.     3.331996202468872e-1, 1.899491697549820e-1,
  1229.     4.761491715908051e-2, 3.422776935622096e-3,
  1230.     5.721592460758984e-4, 1.993762329220772e-2,
  1231.     1.210917681455612e-1, 2.896633744239807e-1,
  1232.     3.321248590946198e-1, 1.871629506349564e-1,
  1233.     4.622544348239899e-2, 3.232272574678064e-3,
  1234.     6.222130032256246e-4, 2.070316113531590e-2,
  1235.     1.235313042998314e-1, 2.918621897697448e-1,
  1236.     3.309969604015350e-1, 1.843813359737396e-1,
  1237.     4.486365616321564e-2, 3.050152910873294e-3,
  1238.     6.755515350960195e-4, 2.149021252989769e-2,
  1239.     1.259924471378326e-1, 2.940258979797364e-1,
  1240.     3.298164308071136e-1, 1.816052496433258e-1,
  1241.     4.352942481637001e-2, 2.876190468668938e-3,
  1242.     7.324148900806904e-4, 2.229913882911205e-2,
  1243.     1.284746825695038e-1, 2.961534857749939e-1,
  1244.     3.285838961601258e-1, 1.788355410099030e-1,
  1245.     4.222255200147629e-2, 2.710093278437853e-3,
  1246.     7.928516715764999e-4, 2.313023805618286e-2,
  1247.     1.309774816036224e-1, 2.982441186904907e-1,
  1248.     3.272998929023742e-1, 1.760730892419815e-1,
  1249.     4.094288870692253e-2, 2.551567042246461e-3,
  1250.     8.570110658183694e-4, 2.398385666310787e-2,
  1251.     1.335003077983856e-1, 3.002967536449432e-1,
  1252.     3.259649574756622e-1, 1.733186990022659e-1,
  1253.     3.969023004174232e-2, 2.400433411821723e-3,
  1254.     9.251192095689476e-4, 2.486028522253036e-2,
  1255.     1.360425949096680e-1, 3.023106753826142e-1,
  1256.     3.245797157287598e-1, 1.705732345581055e-1,
  1257.     3.846437484025955e-2, 2.256359672173858e-3,
  1258.     9.974770946428180e-4, 2.575986087322235e-2,
  1259.     1.386037617921829e-1, 3.042849004268646e-1,
  1260.     3.231448531150818e-1, 1.678375005722046e-1,
  1261.     3.726511076092720e-2, 2.119151875376701e-3,
  1262.     1.073930296115577e-3, 2.668286114931106e-2,
  1263.     1.411831974983215e-1, 3.062185347080230e-1,
  1264.     3.216609656810760e-1, 1.651122719049454e-1,
  1265.     3.609224036335945e-2, 1.988604199141264e-3,
  1266.     1.155023579485714e-3, 2.762960828840732e-2,
  1267.     1.437802612781525e-1, 3.081108033657074e-1,
  1268.     3.201287388801574e-1, 1.623983532190323e-1,
  1269.     3.494550660252571e-2, 1.864377525635064e-3,
  1270.     1.240676851011813e-3, 2.860039286315441e-2,
  1271.     1.463943719863892e-1, 3.099608123302460e-1,
  1272.     3.185488879680634e-1, 1.596965193748474e-1,
  1273.     3.382468968629837e-2, 1.746327499859035e-3,
  1274.     1.331258914433420e-3, 2.959549613296986e-2,
  1275.     1.490248143672943e-1, 3.117676973342896e-1,
  1276.     3.169221282005310e-1, 1.570075154304504e-1,
  1277.     3.272953629493714e-2, 1.634211512282491e-3,
  1278.     1.426893868483603e-3, 3.061520494520664e-2,
  1279.     1.516709625720978e-1, 3.135308027267456e-1,
  1280.     3.152491748332978e-1, 1.543320864439010e-1,
  1281.     3.165979683399200e-2, 1.527829794213176e-3,
  1282. };
  1283.  
  1284. DECLARE_ALIGNED(16, static const float, lfe_fir_128)[] =
  1285. {
  1286.     0.00053168571, 0.15878495574, 0.68603444099, 0.15492856503,
  1287.     0.00016358691, 0.16269733012, 0.68591803312, 0.15112841129,
  1288.     0.00018878609, 0.16666537523, 0.68568539619, 0.14738474786,
  1289.     0.00021643363, 0.17068879306, 0.68533653021, 0.14369773865,
  1290.     0.00024667382, 0.17476719618, 0.68487155437, 0.14006754756,
  1291.     0.00027949660, 0.17890018225, 0.68429082632, 0.13649433851,
  1292.     0.00031519096, 0.18308731914, 0.68359452486, 0.13297818601,
  1293.     0.00035398375, 0.18732811511, 0.68278300762, 0.12951917946,
  1294.     0.00039634691, 0.19162209332, 0.68185669184, 0.12611730397,
  1295.     0.00044236859, 0.19596865773, 0.68081587553, 0.12277261168,
  1296.     0.00049204525, 0.20036731660, 0.67966115475, 0.11948505789,
  1297.     0.00054522208, 0.20481738448, 0.67839306593, 0.11625462025,
  1298.     0.00060277141, 0.20931822062, 0.67701220512, 0.11308115721,
  1299.     0.00066567765, 0.21386915445, 0.67551922798, 0.10996460915,
  1300.     0.00073179678, 0.21846942604, 0.67391467094, 0.10690483451,
  1301.     0.00080365466, 0.22311829031, 0.67219948769, 0.10390164703,
  1302.     0.00088037323, 0.22781492770, 0.67037439346, 0.10095486045,
  1303.     0.00096255314, 0.23255851865, 0.66844022274, 0.09806428105,
  1304.     0.00105048984, 0.23734821379, 0.66639786959, 0.09522963315,
  1305.     0.00114431616, 0.24218304455, 0.66424828768, 0.09245070815,
  1306.     0.00124442333, 0.24706205726, 0.66199249029, 0.08972713351,
  1307.     0.00135110028, 0.25198432803, 0.65963155031, 0.08705867827,
  1308.     0.00146482687, 0.25694879889, 0.65716648102, 0.08444493264,
  1309.     0.00158570008, 0.26195442677, 0.65459835529, 0.08188561350,
  1310.     0.00171401864, 0.26700007915, 0.65192854404, 0.07938029617,
  1311.     0.00185023469, 0.27208462358, 0.64915806055, 0.07692859322,
  1312.     0.00199495023, 0.27720692754, 0.64628833532, 0.07453006506,
  1313.     0.00214785640, 0.28236576915, 0.64332056046, 0.07218432426,
  1314.     0.00231004250, 0.28755992651, 0.64025616646, 0.06989086419,
  1315.     0.00248134881, 0.29278811812, 0.63709646463, 0.06764923781,
  1316.     0.00266251224, 0.29804900289, 0.63384294510, 0.06545893103,
  1317.     0.00285378192, 0.30334126949, 0.63049703836, 0.06331945211,
  1318.     0.00305565330, 0.30866351724, 0.62706029415, 0.06123027951,
  1319.     0.00326841651, 0.31401440501, 0.62353414297, 0.05919086933,
  1320.     0.00349264755, 0.31939238310, 0.61992025375, 0.05720067024,
  1321.     0.00372874714, 0.32479602098, 0.61622029543, 0.05525910854,
  1322.     0.00397720048, 0.33022382855, 0.61243581772, 0.05336561054,
  1323.     0.00423829490, 0.33567428589, 0.60856848955, 0.05151961371,
  1324.     0.00451271003, 0.34114575386, 0.60462015867, 0.04972046614,
  1325.     0.00480085658, 0.34663668275, 0.60059231520, 0.04796761274,
  1326.     0.00510312291, 0.35214546323, 0.59648692608, 0.04626038298,
  1327.     0.00542017492, 0.35767036676, 0.59230577946, 0.04459818453,
  1328.     0.00575236930, 0.36320972443, 0.58805054426, 0.04298033938,
  1329.     0.00610029325, 0.36876192689, 0.58372318745, 0.04140623659,
  1330.     0.00646453211, 0.37432509661, 0.57932555676, 0.03987516090,
  1331.     0.00684553990, 0.37989753485, 0.57485944033, 0.03838652745,
  1332.     0.00724391919, 0.38547745347, 0.57032698393, 0.03693958372,
  1333.     0.00766016589, 0.39106300473, 0.56572991610, 0.03553372994,
  1334.     0.00809498038, 0.39665243030, 0.56107026339, 0.03416819125,
  1335.     0.00854881573, 0.40224379301, 0.55634999275, 0.03284239396,
  1336.     0.00902230106, 0.40783521533, 0.55157101154, 0.03155555204,
  1337.     0.00951600447, 0.41342487931, 0.54673534632, 0.03030703776,
  1338.     0.01003060210, 0.41901078820, 0.54184508324, 0.02909611352,
  1339.     0.01056654565, 0.42459106445, 0.53690224886, 0.02792212367,
  1340.     0.01112466771, 0.43016362190, 0.53190881014, 0.02678431384,
  1341.     0.01170534454, 0.43572667241, 0.52686679363, 0.02568206564,
  1342.     0.01230939943, 0.44127810001, 0.52177828550, 0.02461459488,
  1343.     0.01293735672, 0.44681602716, 0.51664537191, 0.02358125709,
  1344.     0.01358995494, 0.45233830810, 0.51147013903, 0.02258131653,
  1345.     0.01426773332, 0.45784294605, 0.50625455379, 0.02161412500,
  1346.     0.01497144438, 0.46332800388, 0.50100076199, 0.02067894675,
  1347.     0.01570170000, 0.46879136562, 0.49571081996, 0.01977507770,
  1348.     0.01645922661, 0.47423094511, 0.49038675427, 0.01890186779,
  1349.     0.01724460535, 0.47964480519, 0.48503074050, 0.01805862412,
  1350. };
  1351.  
  1352. /* 10^-(dB/20), with dB being a list of dB values ranging from 0 to -72 */
  1353. /* do a 20*log10(dca_downmix_coeffs) to reconvert the values */
  1354.  
  1355. static const float dca_downmix_coeffs[65] = {
  1356.   1.000000000000000, 0.988553094656939, 0.971627951577106, 0.944060876285923, 0.917275935389780, 0.891250938133746,
  1357.   0.865964323360065, 0.841395141645195, 0.817523037943650, 0.794328234724281, 0.771791515585012, 0.749894209332456,
  1358.   0.728618174513228, 0.707945784384138, 0.687859912308808, 0.668343917568615, 0.649381631576211, 0.630957344480193,
  1359.   0.613055792149821, 0.595662143529010, 0.578761988349121, 0.562341325190349, 0.546386549881854, 0.530884444230988,
  1360.   0.515822165072306, 0.501187233627272, 0.446683592150963, 0.398107170553497, 0.354813389233575, 0.316227766016838,
  1361.   0.281838293126445, 0.251188643150958, 0.223872113856834, 0.199526231496888, 0.177827941003892, 0.158489319246111,
  1362.   0.141253754462275, 0.125892541179417, 0.112201845430196, 0.100000000000000, 0.089125093813374, 0.079432823472428,
  1363.   0.070794578438414, 0.063095734448019, 0.053088444423099, 0.044668359215096, 0.037583740428844, 0.031622776601684,
  1364.   0.026607250597988, 0.022387211385683, 0.018836490894898, 0.015848931924611, 0.013335214321633, 0.011220184543020,
  1365.   0.009440608762859, 0.007943282347243, 0.005623413251903, 0.003981071705535, 0.002818382931264, 0.001995262314969,
  1366.   0.001412537544623, 0.001000000000000, 0.000501187233627, 0.000251188643151, 0.000000000000000,
  1367. };
  1368.  
  1369. static const float dca_downmix_scale_factors[241] = {
  1370.     0.001000, 0.001059, 0.001122, 0.001189, 0.001259, 0.001334, 0.001413, 0.001496,
  1371.     0.001585, 0.001679, 0.001778, 0.001884, 0.001995, 0.002113, 0.002239, 0.002371,
  1372.     0.002512, 0.002661, 0.002818, 0.002985, 0.003162, 0.003350, 0.003548, 0.003758,
  1373.     0.003981, 0.004217, 0.004467, 0.004732, 0.005012, 0.005309, 0.005623, 0.005957,
  1374.     0.006310, 0.006683, 0.007079, 0.007499, 0.007943, 0.008414, 0.008913, 0.009441,
  1375.     0.010000, 0.010593, 0.011220, 0.011885, 0.012589, 0.013335, 0.014125, 0.014962,
  1376.     0.015849, 0.016788, 0.017783, 0.018836, 0.019953, 0.021135, 0.022387, 0.023714,
  1377.     0.025119, 0.026607, 0.028184, 0.029854, 0.031623, 0.032546, 0.033497, 0.034475,
  1378.     0.035481, 0.036517, 0.037584, 0.038681, 0.039811, 0.040973, 0.042170, 0.043401,
  1379.     0.044668, 0.045973, 0.047315, 0.048697, 0.050119, 0.051582, 0.053088, 0.054639,
  1380.     0.056234, 0.057876, 0.059566, 0.061306, 0.063096, 0.064938, 0.066834, 0.068786,
  1381.     0.070795, 0.072862, 0.074989, 0.077179, 0.079433, 0.081752, 0.084140, 0.086596,
  1382.     0.089125, 0.091728, 0.094406, 0.097163, 0.100000, 0.102920, 0.105925, 0.109018,
  1383.     0.112202, 0.115478, 0.118850, 0.122321, 0.125893, 0.129569, 0.133352, 0.137246,
  1384.     0.141254, 0.145378, 0.149624, 0.153993, 0.158489, 0.163117, 0.167880, 0.172783,
  1385.     0.177828, 0.180406, 0.183021, 0.185674, 0.188365, 0.191095, 0.193865, 0.196675,
  1386.     0.199526, 0.202418, 0.205353, 0.208329, 0.211349, 0.214412, 0.217520, 0.220673,
  1387.     0.223872, 0.227117, 0.230409, 0.233749, 0.237137, 0.240575, 0.244062, 0.247600,
  1388.     0.251189, 0.254830, 0.258523, 0.262271, 0.266073, 0.269929, 0.273842, 0.277811,
  1389.     0.281838, 0.285924, 0.290068, 0.294273, 0.298538, 0.302866, 0.307256, 0.311709,
  1390.     0.316228, 0.320812, 0.325462, 0.330179, 0.334965, 0.339821, 0.344747, 0.349744,
  1391.     0.354813, 0.359956, 0.365174, 0.370467, 0.375837, 0.381285, 0.386812, 0.392419,
  1392.     0.398107, 0.403878, 0.409732, 0.415671, 0.421697, 0.427809, 0.434010, 0.440301,
  1393.     0.446684, 0.453158, 0.459727, 0.466391, 0.473151, 0.480010, 0.486968, 0.494026,
  1394.     0.501187, 0.508452, 0.515822, 0.523299, 0.530884, 0.538580, 0.546387, 0.554307,
  1395.     0.562341, 0.570493, 0.578762, 0.587151, 0.595662, 0.604296, 0.613056, 0.621942,
  1396.     0.630957, 0.640103, 0.649382, 0.658795, 0.668344, 0.678032, 0.687860, 0.697831,
  1397.     0.707107, 0.718208, 0.728618, 0.739180, 0.749894, 0.760764, 0.771792, 0.782979,
  1398.     0.794328, 0.805842, 0.817523, 0.829373, 0.841395, 0.853591, 0.865964, 0.878517,
  1399.     0.891251, 0.904170, 0.917276, 0.930572, 0.944061, 0.957745, 0.971628, 0.985712,
  1400.     1.000000
  1401. };
  1402.  
  1403. static const uint8_t dca_default_coeffs[10][5][2] = {
  1404.     { { 13, 13 },                                                 },
  1405.     { {  0, 64 }, { 64,  0 },                                     },
  1406.     { {  0, 64 }, { 64,  0 },                                     },
  1407.     { {  0, 64 }, { 64,  0 },                                     },
  1408.     { {  0, 64 }, { 64,  0 },                                     },
  1409.     { {  6,  6 }, {  0, 25 }, { 25,  0 },                         },
  1410.     { {  0, 25 }, { 25,  0 }, { 13, 13 },                         },
  1411.     { {  6,  6 }, {  0, 25 }, { 25,  0 }, { 13, 13 },             },
  1412.     { {  0, 25 }, { 25,  0 }, {  0, 13 }, { 13,  0 },             },
  1413.     { {  6,  6 }, {  0, 25 }, { 25,  0 }, {  0, 13 }, { 13,  0 }, },
  1414. };
  1415.  
  1416. /* downmix coeffs
  1417.  
  1418.  TABLE 9
  1419. ______________________________________
  1420. Down-mix coefficients for 8-channel source
  1421. audio (5 + 3 format)
  1422.  lt
  1423.  cen- rt lt ctr rt
  1424. lt ter ctr center
  1425.  rt srd srd srd
  1426. ______________________________________
  1427. 1 0.71 0.74 1.0 0.71 0.71 0.58 0.58 0.58
  1428. 2 left 1.0 0.89 0.71 0.46 0.71 0.50
  1429.   rt 0.45 0.71 0.89 1.0 0.50 0.71
  1430. 3 lt 1.0 0.89 0.71 0.45
  1431.  rt 0.45 0.71 0.89 1.0
  1432.  srd 0.71 0.71 0.71
  1433. 4 lt 1.0 0.89 0.71 0.45
  1434.  rt 0.45 0.71 0.89 1.0
  1435.  lt srd 1.0 0.71
  1436.  rt srd 0.71 0.71
  1437. 4 lt 1.0 0.5
  1438.  ctr 0.87 1.0 0.87
  1439.  rt 0.5 1.0
  1440.  srd 0.71 0.71 0.71
  1441. 5 lt 1.0 0.5
  1442.  ctr 0.87 1.0 0.87
  1443.  rt 0.5 1.0
  1444.  lt srd 1.0 0.71
  1445.  rt srd 0.71 1.0
  1446. 6 lt 1.0 0.5
  1447.  lt ctr 0.87 0.71
  1448.  rt ctr 0.71 0.87
  1449.  rt 0.5 1.0
  1450.  lt srd 1.0 0.71
  1451.  rt srd 0.71 1.0
  1452. 6 lt 1.0 0.5
  1453.  ctr 0.86 1.0 0.86
  1454.  rt 0.5 1.0
  1455.  lt srd 1.0
  1456.  ctr srd 1.0
  1457.  rt srd 1.0
  1458. 7 lt 1.0
  1459.  lt ctr 1.0
  1460.  ctr 1.0
  1461.  rt ctr 1.0
  1462.  rt 1.0
  1463.  lt srd 1.0 0.71
  1464.  rt srd 0.71 1.0
  1465. 7 lt 1.0 0.5
  1466.  lt ctr 0.87 0.71
  1467.  rt ctr 0.71 0.87
  1468.  rt 0.5 1.0
  1469.  lt srd 1.0
  1470.  ctr srd 1.0
  1471.  rt srd 1.0
  1472. 8 lt 1.0 0.5
  1473.  lt ctr 0.87 0.71
  1474.  rt ctr 0.71 0.87
  1475.  rt 0.5 1.0
  1476.  lt 1 srd 0.87 0.35
  1477.  lt 2 srd 0.5 0.61
  1478.  rt 2 srd 0.61 0.50
  1479.  rt 2 srd 0.35 0.87
  1480.  
  1481.  Generation of Lt Rt
  1482.  
  1483. In the case when the playback system has analog or digital surround multi-channel capability, a down matrix from 5, 4, or 3 channel to Lt Rt may be desirable. In the case when the number of decoded audio channels exceeds 5, 4 or 3 respectively a first stage down mix to 5, 4 or 3 chs should be used as described above.
  1484.  
  1485. The down matrixing equations for 5-channel source audio to a two-channel Lt Rt playback system are given by:
  1486.  
  1487. Left left+0.7*center-0.7*(lt surround+rt surround)
  1488.  
  1489. Right=right+0.7*center+0.7*(lt surround+rt surround)
  1490.  
  1491. Embedded mixing to 2-channel
  1492.  
  1493. One concern arising from the proliferation of multi-channel audio systems is that most home systems presently have only two channel playback capability. To accommodate this a fixed 2-channel down matrix processes is commonly used following the multi-channel decoding stage. However, for music only applications the image quality etc. of the down matrixed signal may not match that of an equivalent stereo recording found on CD.
  1494.  
  1495. The concept of embedded mixing is to allow the producer to dynamically specify the matrixing coefficients within the audio frame itself. In this way the stereo down mix at the decoder may be better matched to a 2-channel playback environment.
  1496.  
  1497. CHS*2, 7-bit down mix indexes (MCOEFFS) are transmitted along with the multi-channel audio once in every frame. The indexes are converted to attenuation factors using a 7 bit LUT. The 2-ch down mix equations are as follows,
  1498.  
  1499. Left Ch=sum (MCOEFF[n]*Ch[n]) for n=1, CHS
  1500.  
  1501. Right Ch sum (MCOEFF[n+CHS]*Ch[n]) for n=1, CHS
  1502.  
  1503. where Ch(n) represents the subband samples in the (n)th audio channel.
  1504.  
  1505.  
  1506. */
  1507.  
  1508. #endif /* AVCODEC_DCADATA_H */
  1509.