dct4_a.h 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728
  1. /****************************************************************************
  2. **
  3. ** ITU-T G.722.1 (2005-05) - Fixed point implementation for main body and Annex C
  4. ** > Software Release 2.1 (2008-06)
  5. ** (Simple repackaging; no change from 2005-05 Release 2.0 code)
  6. **
  7. ** © 2004 Polycom, Inc.
  8. **
  9. ** All rights reserved.
  10. **
  11. ****************************************************************************/
  12. /****************************************************************************
  13. Filename: dct4_a.h
  14. Purpose: Contains tables used by dct4_a.c
  15. Design Notes:
  16. ****************************************************************************/
  17. /***************************************************************************
  18. Include files
  19. ***************************************************************************/
  20. #include <stdio.h>
  21. #include <math.h>
  22. typedef struct
  23. {
  24. Word16 cosine;
  25. Word16 minus_sine;
  26. } cos_msin_t;
  27. cos_msin_t a_cos_msin_2[10] = {
  28. { 29805 , -1171 } ,
  29. { 29621 , -3506 } ,
  30. { 29255 , -5819 } ,
  31. { 28708 , -8097 } ,
  32. { 27984 , -10324 } ,
  33. { 27088 , -12488 } ,
  34. { 26025 , -14575 } ,
  35. { 24801 , -16572 } ,
  36. { 23425 , -18466 } ,
  37. { 21903 , -20247 }
  38. };
  39. cos_msin_t a_cos_msin_4[20] = {
  40. { 29822 , -586 } ,
  41. { 29776 , -1756 } ,
  42. { 29684 , -2924 } ,
  43. { 29547 , -4087 } ,
  44. { 29364 , -5244 } ,
  45. { 29135 , -6392 } ,
  46. { 28862 , -7531 } ,
  47. { 28544 , -8659 } ,
  48. { 28182 , -9773 } ,
  49. { 27776 , -10871 } ,
  50. { 27328 , -11954 } ,
  51. { 26838 , -13017 } ,
  52. { 26306 , -14061 } ,
  53. { 25734 , -15083 } ,
  54. { 25122 , -16081 } ,
  55. { 24471 , -17055 } ,
  56. { 23783 , -18003 } ,
  57. { 23057 , -18923 } ,
  58. { 22297 , -19813 } ,
  59. { 21502 , -20673 }
  60. };
  61. cos_msin_t a_cos_msin_8[40] = {
  62. { 29827 , -293 } ,
  63. { 29815 , -878 } ,
  64. { 29792 , -1464 } ,
  65. { 29758 , -2048 } ,
  66. { 29712 , -2632 } ,
  67. { 29654 , -3215 } ,
  68. { 29586 , -3797 } ,
  69. { 29505 , -4377 } ,
  70. { 29414 , -4955 } ,
  71. { 29311 , -5532 } ,
  72. { 29196 , -6106 } ,
  73. { 29071 , -6678 } ,
  74. { 28934 , -7248 } ,
  75. { 28786 , -7814 } ,
  76. { 28627 , -8378 } ,
  77. { 28457 , -8938 } ,
  78. { 28276 , -9495 } ,
  79. { 28084 , -10049 } ,
  80. { 27882 , -10598 } ,
  81. { 27668 , -11144 } ,
  82. { 27444 , -11685 } ,
  83. { 27209 , -12221 } ,
  84. { 26964 , -12753 } ,
  85. { 26709 , -13280 } ,
  86. { 26443 , -13802 } ,
  87. { 26167 , -14318 } ,
  88. { 25881 , -14829 } ,
  89. { 25584 , -15335 } ,
  90. { 25278 , -15834 } ,
  91. { 24963 , -16327 } ,
  92. { 24637 , -16814 } ,
  93. { 24302 , -17295 } ,
  94. { 23958 , -17769 } ,
  95. { 23605 , -18236 } ,
  96. { 23242 , -18695 } ,
  97. { 22871 , -19148 } ,
  98. { 22490 , -19594 } ,
  99. { 22101 , -20031 } ,
  100. { 21704 , -20461 } ,
  101. { 21298 , -20884 }
  102. };
  103. cos_msin_t a_cos_msin_16[80] = {
  104. { 29828 , -146 } ,
  105. { 29825 , -439 } ,
  106. { 29819 , -732 } ,
  107. { 29811 , -1025 } ,
  108. { 29799 , -1317 } ,
  109. { 29785 , -1610 } ,
  110. { 29767 , -1902 } ,
  111. { 29747 , -2194 } ,
  112. { 29724 , -2486 } ,
  113. { 29698 , -2778 } ,
  114. { 29670 , -3069 } ,
  115. { 29638 , -3360 } ,
  116. { 29604 , -3651 } ,
  117. { 29567 , -3942 } ,
  118. { 29526 , -4232 } ,
  119. { 29483 , -4521 } ,
  120. { 29438 , -4811 } ,
  121. { 29389 , -5099 } ,
  122. { 29338 , -5388 } ,
  123. { 29283 , -5676 } ,
  124. { 29226 , -5963 } ,
  125. { 29166 , -6249 } ,
  126. { 29103 , -6535 } ,
  127. { 29038 , -6821 } ,
  128. { 28969 , -7106 } ,
  129. { 28898 , -7390 } ,
  130. { 28824 , -7673 } ,
  131. { 28748 , -7956 } ,
  132. { 28668 , -8237 } ,
  133. { 28586 , -8518 } ,
  134. { 28501 , -8799 } ,
  135. { 28413 , -9078 } ,
  136. { 28323 , -9357 } ,
  137. { 28229 , -9634 } ,
  138. { 28133 , -9911 } ,
  139. { 28035 , -10187 } ,
  140. { 27933 , -10461 } ,
  141. { 27829 , -10735 } ,
  142. { 27723 , -11008 } ,
  143. { 27613 , -11279 } ,
  144. { 27501 , -11550 } ,
  145. { 27387 , -11819 } ,
  146. { 27269 , -12088 } ,
  147. { 27149 , -12355 } ,
  148. { 27027 , -12621 } ,
  149. { 26901 , -12885 } ,
  150. { 26774 , -13149 } ,
  151. { 26643 , -13411 } ,
  152. { 26510 , -13672 } ,
  153. { 26375 , -13932 } ,
  154. { 26237 , -14190 } ,
  155. { 26096 , -14447 } ,
  156. { 25953 , -14702 } ,
  157. { 25807 , -14956 } ,
  158. { 25659 , -15209 } ,
  159. { 25509 , -15460 } ,
  160. { 25356 , -15710 } ,
  161. { 25200 , -15958 } ,
  162. { 25043 , -16205 } ,
  163. { 24882 , -16450 } ,
  164. { 24720 , -16693 } ,
  165. { 24554 , -16935 } ,
  166. { 24387 , -17175 } ,
  167. { 24217 , -17414 } ,
  168. { 24045 , -17651 } ,
  169. { 23871 , -17886 } ,
  170. { 23694 , -18119 } ,
  171. { 23515 , -18351 } ,
  172. { 23334 , -18581 } ,
  173. { 23150 , -18809 } ,
  174. { 22964 , -19036 } ,
  175. { 22776 , -19260 } ,
  176. { 22586 , -19483 } ,
  177. { 22394 , -19704 } ,
  178. { 22199 , -19923 } ,
  179. { 22003 , -20140 } ,
  180. { 21804 , -20355 } ,
  181. { 21603 , -20568 } ,
  182. { 21400 , -20779 } ,
  183. { 21195 , -20988 }
  184. };
  185. cos_msin_t a_cos_msin_32[160]= {
  186. { 29828 , -73 } ,
  187. { 29827 , -220 } ,
  188. { 29826 , -366 } ,
  189. { 29824 , -512 } ,
  190. { 29821 , -659 } ,
  191. { 29817 , -805 } ,
  192. { 29813 , -952 } ,
  193. { 29808 , -1098 } ,
  194. { 29802 , -1244 } ,
  195. { 29796 , -1390 } ,
  196. { 29789 , -1537 } ,
  197. { 29781 , -1683 } ,
  198. { 29772 , -1829 } ,
  199. { 29763 , -1975 } ,
  200. { 29753 , -2121 } ,
  201. { 29742 , -2267 } ,
  202. { 29730 , -2413 } ,
  203. { 29718 , -2559 } ,
  204. { 29705 , -2705 } ,
  205. { 29692 , -2851 } ,
  206. { 29677 , -2997 } ,
  207. { 29662 , -3142 } ,
  208. { 29646 , -3288 } ,
  209. { 29630 , -3433 } ,
  210. { 29613 , -3579 } ,
  211. { 29595 , -3724 } ,
  212. { 29576 , -3869 } ,
  213. { 29557 , -4014 } ,
  214. { 29537 , -4159 } ,
  215. { 29516 , -4304 } ,
  216. { 29494 , -4449 } ,
  217. { 29472 , -4594 } ,
  218. { 29449 , -4738 } ,
  219. { 29426 , -4883 } ,
  220. { 29401 , -5027 } ,
  221. { 29376 , -5172 } ,
  222. { 29351 , -5316 } ,
  223. { 29324 , -5460 } ,
  224. { 29297 , -5604 } ,
  225. { 29269 , -5747 } ,
  226. { 29241 , -5891 } ,
  227. { 29211 , -6034 } ,
  228. { 29181 , -6178 } ,
  229. { 29151 , -6321 } ,
  230. { 29119 , -6464 } ,
  231. { 29087 , -6607 } ,
  232. { 29054 , -6749 } ,
  233. { 29021 , -6892 } ,
  234. { 28987 , -7034 } ,
  235. { 28952 , -7177 } ,
  236. { 28916 , -7319 } ,
  237. { 28880 , -7460 } ,
  238. { 28843 , -7602 } ,
  239. { 28805 , -7744 } ,
  240. { 28767 , -7885 } ,
  241. { 28728 , -8026 } ,
  242. { 28688 , -8167 } ,
  243. { 28648 , -8308 } ,
  244. { 28607 , -8448 } ,
  245. { 28565 , -8589 } ,
  246. { 28522 , -8729 } ,
  247. { 28479 , -8869 } ,
  248. { 28435 , -9008 } ,
  249. { 28391 , -9148 } ,
  250. { 28346 , -9287 } ,
  251. { 28300 , -9426 } ,
  252. { 28253 , -9565 } ,
  253. { 28206 , -9703 } ,
  254. { 28158 , -9842 } ,
  255. { 28109 , -9980 } ,
  256. { 28060 , -10118 } ,
  257. { 28010 , -10255 } ,
  258. { 27959 , -10393 } ,
  259. { 27908 , -10530 } ,
  260. { 27856 , -10667 } ,
  261. { 27803 , -10803 } ,
  262. { 27750 , -10940 } ,
  263. { 27696 , -11076 } ,
  264. { 27641 , -11212 } ,
  265. { 27586 , -11347 } ,
  266. { 27529 , -11482 } ,
  267. { 27473 , -11617 } ,
  268. { 27415 , -11752 } ,
  269. { 27357 , -11886 } ,
  270. { 27299 , -12021 } ,
  271. { 27239 , -12154 } ,
  272. { 27179 , -12288 } ,
  273. { 27119 , -12421 } ,
  274. { 27057 , -12554 } ,
  275. { 26996 , -12687 } ,
  276. { 26933 , -12819 } ,
  277. { 26870 , -12951 } ,
  278. { 26806 , -13083 } ,
  279. { 26741 , -13215 } ,
  280. { 26676 , -13346 } ,
  281. { 26610 , -13476 } ,
  282. { 26544 , -13607 } ,
  283. { 26477 , -13737 } ,
  284. { 26409 , -13867 } ,
  285. { 26340 , -13996 } ,
  286. { 26271 , -14125 } ,
  287. { 26202 , -14254 } ,
  288. { 26132 , -14383 } ,
  289. { 26061 , -14511 } ,
  290. { 25989 , -14638 } ,
  291. { 25917 , -14766 } ,
  292. { 25844 , -14893 } ,
  293. { 25771 , -15020 } ,
  294. { 25697 , -15146 } ,
  295. { 25622 , -15272 } ,
  296. { 25547 , -15397 } ,
  297. { 25471 , -15523 } ,
  298. { 25394 , -15648 } ,
  299. { 25317 , -15772 } ,
  300. { 25239 , -15896 } ,
  301. { 25161 , -16020 } ,
  302. { 25082 , -16143 } ,
  303. { 25003 , -16266 } ,
  304. { 24923 , -16389 } ,
  305. { 24842 , -16511 } ,
  306. { 24760 , -16632 } ,
  307. { 24678 , -16754 } ,
  308. { 24596 , -16875 } ,
  309. { 24513 , -16995 } ,
  310. { 24429 , -17115 } ,
  311. { 24345 , -17235 } ,
  312. { 24260 , -17354 } ,
  313. { 24174 , -17473 } ,
  314. { 24088 , -17592 } ,
  315. { 24002 , -17710 } ,
  316. { 23914 , -17827 } ,
  317. { 23827 , -17945 } ,
  318. { 23738 , -18061 } ,
  319. { 23649 , -18178 } ,
  320. { 23560 , -18293 } ,
  321. { 23470 , -18409 } ,
  322. { 23379 , -18524 } ,
  323. { 23288 , -18638 } ,
  324. { 23196 , -18752 } ,
  325. { 23104 , -18866 } ,
  326. { 23011 , -18979 } ,
  327. { 22917 , -19092 } ,
  328. { 22824 , -19204 } ,
  329. { 22729 , -19316 } ,
  330. { 22634 , -19427 } ,
  331. { 22538 , -19538 } ,
  332. { 22442 , -19649 } ,
  333. { 22345 , -19759 } ,
  334. { 22248 , -19868 } ,
  335. { 22150 , -19977 } ,
  336. { 22052 , -20086 } ,
  337. { 21953 , -20194 } ,
  338. { 21854 , -20301 } ,
  339. { 21754 , -20408 } ,
  340. { 21653 , -20515 } ,
  341. { 21552 , -20621 } ,
  342. { 21451 , -20726 } ,
  343. { 21349 , -20831 } ,
  344. { 21246 , -20936 } ,
  345. { 21143 , -21040 }
  346. };
  347. cos_msin_t a_cos_msin_64[320] = {
  348. {29827, -34},
  349. {29827, -106},
  350. {29827, -177},
  351. {29827, -249},
  352. {29826, -320},
  353. {29825, -392},
  354. {29824, -463},
  355. {29823, -535},
  356. {29821, -606},
  357. {29819, -678},
  358. {29818, -750},
  359. {29816, -821},
  360. {29814, -893},
  361. {29812, -964},
  362. {29809, -1035},
  363. {29807, -1106},
  364. {29804, -1177},
  365. {29801, -1249},
  366. {29797, -1320},
  367. {29795, -1392},
  368. {29791, -1463},
  369. {29787, -1535},
  370. {29784, -1606},
  371. {29780, -1678},
  372. {29776, -1749},
  373. {29771, -1820},
  374. {29767, -1892},
  375. {29763, -1963},
  376. {29758, -2035},
  377. {29753, -2106},
  378. {29748, -2177},
  379. {29742, -2249},
  380. {29737, -2320},
  381. {29731, -2391},
  382. {29726, -2462},
  383. {29719, -2534},
  384. {29713, -2605},
  385. {29707, -2676},
  386. {29701, -2747},
  387. {29694, -2819},
  388. {29686, -2890},
  389. {29680, -2961},
  390. {29673, -3032},
  391. {29665, -3103},
  392. {29658, -3174},
  393. {29650, -3245},
  394. {29643, -3316},
  395. {29635, -3387},
  396. {29626, -3459},
  397. {29618, -3529},
  398. {29610, -3600},
  399. {29601, -3671},
  400. {29592, -3742},
  401. {29583, -3813},
  402. {29574, -3884},
  403. {29564, -3955},
  404. {29554, -4026},
  405. {29544, -4097},
  406. {29535, -4167},
  407. {29525, -4238},
  408. {29514, -4309},
  409. {29504, -4380},
  410. {29493, -4450},
  411. {29483, -4521},
  412. {29472, -4591},
  413. {29461, -4662},
  414. {29450, -4733},
  415. {29439, -4803},
  416. {29427, -4874},
  417. {29415, -4944},
  418. {29403, -5015},
  419. {29391, -5085},
  420. {29379, -5155},
  421. {29366, -5226},
  422. {29353, -5296},
  423. {29341, -5367},
  424. {29328, -5438},
  425. {29314, -5508},
  426. {29301, -5578},
  427. {29289, -5648},
  428. {29274, -5718},
  429. {29260, -5788},
  430. {29247, -5858},
  431. {29232, -5928},
  432. {29218, -5998},
  433. {29204, -6068},
  434. {29188, -6139},
  435. {29175, -6209},
  436. {29159, -6279},
  437. {29145, -6348},
  438. {29128, -6418},
  439. {29114, -6488},
  440. {29097, -6557},
  441. {29082, -6627},
  442. {29066, -6697},
  443. {29050, -6767},
  444. {29034, -6837},
  445. {29017, -6906},
  446. {29001, -6975},
  447. {28984, -7045},
  448. {28966, -7114},
  449. {28950, -7184},
  450. {28933, -7254},
  451. {28915, -7323},
  452. {28897, -7392},
  453. {28880, -7461},
  454. {28862, -7530},
  455. {28843, -7600},
  456. {28825, -7669},
  457. {28807, -7738},
  458. {28788, -7806},
  459. {28769, -7875},
  460. {28751, -7944},
  461. {28732, -8014},
  462. {28712, -8082},
  463. {28692, -8151},
  464. {28672, -8219},
  465. {28653, -8289},
  466. {28633, -8357},
  467. {28613, -8425},
  468. {28593, -8494},
  469. {28572, -8563},
  470. {28551, -8632},
  471. {28531, -8700},
  472. {28510, -8768},
  473. {28488, -8837},
  474. {28468, -8905},
  475. {28447, -8973},
  476. {28425, -9041},
  477. {28403, -9109},
  478. {28381, -9177},
  479. {28359, -9245},
  480. {28336, -9313},
  481. {28315, -9381},
  482. {28292, -9448},
  483. {28269, -9517},
  484. {28246, -9584},
  485. {28223, -9652},
  486. {28200, -9720},
  487. {28176, -9787},
  488. {28153, -9854},
  489. {28129, -9922},
  490. {28105, -9990},
  491. {28082, -10056},
  492. {28057, -10124},
  493. {28032, -10191},
  494. {28009, -10258},
  495. {27984, -10326},
  496. {27959, -10392},
  497. {27934, -10460},
  498. {27909, -10526},
  499. {27883, -10593},
  500. {27858, -10661},
  501. {27832, -10727},
  502. {27807, -10794},
  503. {27780, -10860},
  504. {27754, -10927},
  505. {27728, -10993},
  506. {27701, -11059},
  507. {27676, -11126},
  508. {27648, -11192},
  509. {27622, -11259},
  510. {27595, -11324},
  511. {27567, -11391},
  512. {27540, -11456},
  513. {27512, -11523},
  514. {27484, -11588},
  515. {27456, -11655},
  516. {27429, -11720},
  517. {27401, -11786},
  518. {27372, -11852},
  519. {27344, -11917},
  520. {27315, -11982},
  521. {27286, -12049},
  522. {27257, -12114},
  523. {27229, -12179},
  524. {27199, -12244},
  525. {27169, -12309},
  526. {27140, -12375},
  527. {27110, -12439},
  528. {27080, -12505},
  529. {27050, -12570},
  530. {27019, -12634},
  531. {26990, -12699},
  532. {26958, -12764},
  533. {26928, -12828},
  534. {26897, -12892},
  535. {26866, -12956},
  536. {26835, -13021},
  537. {26804, -13086},
  538. {26773, -13149},
  539. {26741, -13214},
  540. {26709, -13278},
  541. {26677, -13342},
  542. {26645, -13406},
  543. {26613, -13470},
  544. {26581, -13534},
  545. {26549, -13597},
  546. {26515, -13661},
  547. {26483, -13725},
  548. {26450, -13788},
  549. {26417, -13851},
  550. {26384, -13915},
  551. {26350, -13978},
  552. {26316, -14041},
  553. {26283, -14103},
  554. {26248, -14166},
  555. {26215, -14229},
  556. {26180, -14292},
  557. {26146, -14355},
  558. {26112, -14417},
  559. {26077, -14480},
  560. {26042, -14543},
  561. {26008, -14605},
  562. {25972, -14667},
  563. {25937, -14730},
  564. {25901, -14792},
  565. {25866, -14854},
  566. {25830, -14916},
  567. {25794, -14977},
  568. {25759, -15039},
  569. {25723, -15101},
  570. {25687, -15162},
  571. {25650, -15224},
  572. {25613, -15286},
  573. {25577, -15347},
  574. {25540, -15408},
  575. {25503, -15470},
  576. {25465, -15531},
  577. {25428, -15592},
  578. {25391, -15653},
  579. {25353, -15714},
  580. {25315, -15774},
  581. {25277, -15834},
  582. {25240, -15895},
  583. {25201, -15956},
  584. {25162, -16016},
  585. {25124, -16076},
  586. {25086, -16136},
  587. {25047, -16196},
  588. {25008, -16256},
  589. {24969, -16316},
  590. {24930, -16375},
  591. {24891, -16436},
  592. {24851, -16496},
  593. {24811, -16555},
  594. {24772, -16615},
  595. {24732, -16674},
  596. {24692, -16732},
  597. {24652, -16791},
  598. {24612, -16852},
  599. {24572, -16911},
  600. {24531, -16969},
  601. {24490, -17027},
  602. {24449, -17086},
  603. {24408, -17145},
  604. {24367, -17203},
  605. {24325, -17261},
  606. {24284, -17320},
  607. {24242, -17379},
  608. {24200, -17436},
  609. {24158, -17494},
  610. {24116, -17552},
  611. {24075, -17610},
  612. {24032, -17668},
  613. {23990, -17725},
  614. {23947, -17782},
  615. {23904, -17840},
  616. {23862, -17897},
  617. {23819, -17954},
  618. {23775, -18011},
  619. {23732, -18068},
  620. {23689, -18125},
  621. {23645, -18181},
  622. {23602, -18238},
  623. {23558, -18294},
  624. {23514, -18351},
  625. {23470, -18407},
  626. {23426, -18464},
  627. {23381, -18520},
  628. {23337, -18576},
  629. {23293, -18632},
  630. {23248, -18688},
  631. {23202, -18743},
  632. {23158, -18799},
  633. {23112, -18854},
  634. {23068, -18910},
  635. {23022, -18964},
  636. {22977, -19020},
  637. {22931, -19074},
  638. {22885, -19129},
  639. {22839, -19185},
  640. {22793, -19239},
  641. {22747, -19294},
  642. {22700, -19348},
  643. {22655, -19403},
  644. {22607, -19457},
  645. {22561, -19511},
  646. {22514, -19565},
  647. {22467, -19619},
  648. {22421, -19673},
  649. {22373, -19726},
  650. {22326, -19780},
  651. {22279, -19834},
  652. {22230, -19887},
  653. {22183, -19940},
  654. {22135, -19993},
  655. {22087, -20047},
  656. {22039, -20099},
  657. {21991, -20152},
  658. {21942, -20205},
  659. {21894, -20257},
  660. {21845, -20309},
  661. {21797, -20362},
  662. {21748, -20413},
  663. {21699, -20466},
  664. {21650, -20518},
  665. {21601, -20570},
  666. {21551, -20621},
  667. {21502, -20674}
  668. };
  669. cos_msin_t *a_cos_msin_table[] = {a_cos_msin_2, a_cos_msin_4,
  670. a_cos_msin_8, a_cos_msin_16,
  671. a_cos_msin_32,a_cos_msin_64
  672. };
  673. Word16 dct_core_a[10][10] = {
  674. { 10453, 10196, 9688, 8941, 7973, 6810, 5479, 4013, 2448, 823 },
  675. { 10196, 7973, 4013, -823, -5479, -8941, -10453, -9688, -6810, -2448 },
  676. { 9688 , 4013, -4013, -9688, -9688, -4013, 4013, 9688, 9688, 4013 },
  677. { 8941 , -823, -9688, -7973, 2448, 10196, 6810, -4013, -10453, -5479 },
  678. { 7973 , -5479, -9688, 2448, 10453, 823, -10196, -4013, 8941, 6810 },
  679. { 6810 , -8941, -4013, 10196, 823, -10453, 2448, 9688, -5479, -7973 },
  680. { 5479 , -10453, 4013, 6810, -10196, 2448, 7973, -9688, 823, 8941 },
  681. { 4013 , -9688, 9688, -4013, -4013, 9688, -9688, 4013, 4013, -9688 },
  682. { 2448 , -6810, 9688, -10453, 8941, -5479, 823, 4013, -7973, 10196 },
  683. { 823 , -2448, 4013, -5479, 6810, -7973, 8941, -9688, 10196, -10453 }};
  684. Word16 anal_bias[320] = {
  685. 1, 1, 3, 1, 4, 1, 3, -2, 4, 3,
  686. 4, 1, 3, 0, 2, -3, 0, 0, 2, 2,
  687. 4, 1, 1, -5, 4, 1, 2, -1, 0, -1,
  688. 1, -2, 0, 2, 2, 2, 4, 1, 3, 0,
  689. 5, 3, 2, 0, 3, 0, 1, -4, 1, 1,
  690. 2, 0, 4, 0, 1, -4, 6, 1, 3, -1,
  691. 1, 0, 0, -4, 1, 1, 3, 1, 3, 2,
  692. 4, -2, 4, 3, 5, 1, 3, 0, 1, -3,
  693. 1, 1, 2, 0, 4, 1, 2, -4, 4, 2,
  694. 2, -1, 1, -1, 1, -4, 0, 0, 3, 0,
  695. 5, 2, 3, -1, 6, 2, 5, 0, 4, 0,
  696. 1, -3, 1, 0, 3, 0, 4, 0, 1, -3,
  697. 4, 1, 3, -1, 1, -2, 1, -4, 0, 1,
  698. 2, 1, 3, 2, 2, -2, 4, 3, 3, 0,
  699. 3, 0, 0, -2, 1, 0, 2, 0, 5, -1,
  700. 1, -3, 4, 2, 2, 0, 2, -3, 1, -4,
  701. -1, 1, 2, 2, 4, 1, 3, -1, 5, 2,
  702. 2, 0, 3, -1, 2, -3, 0, 1, 2, 2,
  703. 4, 0, 1, -5, 5, 1, 3, 0, 2, -1,
  704. 0, -2, 1, 2, 2, 2, 4, 1, 0, 0,
  705. 4, 2, 4, 1, 4, -1, 1, -4, 0, 1,
  706. 3, 1, 5, 1, 1, -2, 4, 0, 2, 0,
  707. 2, -1, 0, -2, 0, 1, 1, 1, 4, 2,
  708. 3, -2, 5, 4, 4, 0, 3, 0, 3, -4,
  709. 1, 2, 2, 0, 4, 1, 0, -3, 4, 2,
  710. 3, -1, 1, -1, 1, -4, 0, 2, 3, 1,
  711. 4, 1, 3, 0, 3, 3, 4, 1, 2, 0,
  712. 1, -3, 2, 2, 2, 1, 5, 0, 1, -4,
  713. 4, 1, 3, -2, 3, -1, 0, -2, 0, 2,
  714. 2, 0, 5, 1, 4, -1, 4, 3, 4, 1,
  715. 3, 0, 1, -4, 2, 0, 3, 1, 5, 0,
  716. 1, -5, 5, 2, 2, 0, 0, 0, 0, -4};