ic_predict.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:14k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /*
  2. ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
  3. ** Copyright (C) 2003-2005 M. Bakker, Ahead Software AG, http://www.nero.com
  4. **  
  5. ** This program is free software; you can redistribute it and/or modify
  6. ** it under the terms of the GNU General Public License as published by
  7. ** the Free Software Foundation; either version 2 of the License, or
  8. ** (at your option) any later version.
  9. ** 
  10. ** This program is distributed in the hope that it will be useful,
  11. ** but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13. ** GNU General Public License for more details.
  14. ** 
  15. ** You should have received a copy of the GNU General Public License
  16. ** along with this program; if not, write to the Free Software 
  17. ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  18. **
  19. ** Any non-GPL usage of this software or parts of this software is strictly
  20. ** forbidden.
  21. **
  22. ** Software using this code must display the following message visibly in the
  23. ** software:
  24. ** "FAAD2 AAC/HE-AAC/HE-AACv2/DRM decoder (c) Ahead Software, www.nero.com"
  25. ** in, for example, the about-box or help/startup screen.
  26. **
  27. ** Commercial non-GPL licensing of this software is possible.
  28. ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
  29. **
  30. ** $Id: ic_predict.h,v 1.2 2005/11/01 21:41:43 gabest Exp $
  31. **/
  32. #ifdef MAIN_DEC
  33. #ifndef __IC_PREDICT_H__
  34. #define __IC_PREDICT_H__
  35. #ifdef __cplusplus
  36. extern "C" {
  37. #endif
  38. #define ALPHA      REAL_CONST(0.90625)
  39. #define A          REAL_CONST(0.953125)
  40. void pns_reset_pred_state(ic_stream *ics, pred_state *state);
  41. void reset_all_predictors(pred_state *state, uint16_t frame_len);
  42. void ic_prediction(ic_stream *ics, real_t *spec, pred_state *state,
  43.                    uint16_t frame_len, uint8_t sf_index);
  44. ALIGN static const real_t mnt_table[128] = {
  45.     COEF_CONST(0.9531250000), COEF_CONST(0.9453125000),
  46.     COEF_CONST(0.9375000000), COEF_CONST(0.9296875000),
  47.     COEF_CONST(0.9257812500), COEF_CONST(0.9179687500),
  48.     COEF_CONST(0.9101562500), COEF_CONST(0.9023437500),
  49.     COEF_CONST(0.8984375000), COEF_CONST(0.8906250000),
  50.     COEF_CONST(0.8828125000), COEF_CONST(0.8789062500),
  51.     COEF_CONST(0.8710937500), COEF_CONST(0.8671875000),
  52.     COEF_CONST(0.8593750000), COEF_CONST(0.8515625000),
  53.     COEF_CONST(0.8476562500), COEF_CONST(0.8398437500),
  54.     COEF_CONST(0.8359375000), COEF_CONST(0.8281250000),
  55.     COEF_CONST(0.8242187500), COEF_CONST(0.8203125000),
  56.     COEF_CONST(0.8125000000), COEF_CONST(0.8085937500),
  57.     COEF_CONST(0.8007812500), COEF_CONST(0.7968750000),
  58.     COEF_CONST(0.7929687500), COEF_CONST(0.7851562500),
  59.     COEF_CONST(0.7812500000), COEF_CONST(0.7773437500),
  60.     COEF_CONST(0.7734375000), COEF_CONST(0.7656250000),
  61.     COEF_CONST(0.7617187500), COEF_CONST(0.7578125000),
  62.     COEF_CONST(0.7539062500), COEF_CONST(0.7500000000),
  63.     COEF_CONST(0.7421875000), COEF_CONST(0.7382812500),
  64.     COEF_CONST(0.7343750000), COEF_CONST(0.7304687500),
  65.     COEF_CONST(0.7265625000), COEF_CONST(0.7226562500),
  66.     COEF_CONST(0.7187500000), COEF_CONST(0.7148437500),
  67.     COEF_CONST(0.7109375000), COEF_CONST(0.7070312500),
  68.     COEF_CONST(0.6992187500), COEF_CONST(0.6953125000),
  69.     COEF_CONST(0.6914062500), COEF_CONST(0.6875000000),
  70.     COEF_CONST(0.6835937500), COEF_CONST(0.6796875000),
  71.     COEF_CONST(0.6796875000), COEF_CONST(0.6757812500),
  72.     COEF_CONST(0.6718750000), COEF_CONST(0.6679687500),
  73.     COEF_CONST(0.6640625000), COEF_CONST(0.6601562500),
  74.     COEF_CONST(0.6562500000), COEF_CONST(0.6523437500),
  75.     COEF_CONST(0.6484375000), COEF_CONST(0.6445312500),
  76.     COEF_CONST(0.6406250000), COEF_CONST(0.6406250000),
  77.     COEF_CONST(0.6367187500), COEF_CONST(0.6328125000),
  78.     COEF_CONST(0.6289062500), COEF_CONST(0.6250000000),
  79.     COEF_CONST(0.6210937500), COEF_CONST(0.6210937500),
  80.     COEF_CONST(0.6171875000), COEF_CONST(0.6132812500),
  81.     COEF_CONST(0.6093750000), COEF_CONST(0.6054687500),
  82.     COEF_CONST(0.6054687500), COEF_CONST(0.6015625000),
  83.     COEF_CONST(0.5976562500), COEF_CONST(0.5937500000),
  84.     COEF_CONST(0.5937500000), COEF_CONST(0.5898437500),
  85.     COEF_CONST(0.5859375000), COEF_CONST(0.5820312500),
  86.     COEF_CONST(0.5820312500), COEF_CONST(0.5781250000),
  87.     COEF_CONST(0.5742187500), COEF_CONST(0.5742187500),
  88.     COEF_CONST(0.5703125000), COEF_CONST(0.5664062500),
  89.     COEF_CONST(0.5664062500), COEF_CONST(0.5625000000),
  90.     COEF_CONST(0.5585937500), COEF_CONST(0.5585937500),
  91.     COEF_CONST(0.5546875000), COEF_CONST(0.5507812500),
  92.     COEF_CONST(0.5507812500), COEF_CONST(0.5468750000),
  93.     COEF_CONST(0.5429687500), COEF_CONST(0.5429687500),
  94.     COEF_CONST(0.5390625000), COEF_CONST(0.5390625000),
  95.     COEF_CONST(0.5351562500), COEF_CONST(0.5312500000),
  96.     COEF_CONST(0.5312500000), COEF_CONST(0.5273437500),
  97.     COEF_CONST(0.5273437500), COEF_CONST(0.5234375000),
  98.     COEF_CONST(0.5195312500), COEF_CONST(0.5195312500),
  99.     COEF_CONST(0.5156250000), COEF_CONST(0.5156250000),
  100.     COEF_CONST(0.5117187500), COEF_CONST(0.5117187500),
  101.     COEF_CONST(0.5078125000), COEF_CONST(0.5078125000),
  102.     COEF_CONST(0.5039062500), COEF_CONST(0.5039062500),
  103.     COEF_CONST(0.5000000000), COEF_CONST(0.4980468750),
  104.     COEF_CONST(0.4960937500), COEF_CONST(0.4941406250),
  105.     COEF_CONST(0.4921875000), COEF_CONST(0.4902343750),
  106.     COEF_CONST(0.4882812500), COEF_CONST(0.4863281250),
  107.     COEF_CONST(0.4843750000), COEF_CONST(0.4824218750),
  108.     COEF_CONST(0.4804687500), COEF_CONST(0.4785156250)
  109. };
  110. ALIGN static const real_t exp_table[128] = {
  111.     COEF_CONST(0.50000000000000000000000000000000000000000000000000),
  112.     COEF_CONST(0.25000000000000000000000000000000000000000000000000),
  113.     COEF_CONST(0.12500000000000000000000000000000000000000000000000),
  114.     COEF_CONST(0.06250000000000000000000000000000000000000000000000),
  115.     COEF_CONST(0.03125000000000000000000000000000000000000000000000),
  116.     COEF_CONST(0.01562500000000000000000000000000000000000000000000),
  117.     COEF_CONST(0.00781250000000000000000000000000000000000000000000),
  118.     COEF_CONST(0.00390625000000000000000000000000000000000000000000),
  119.     COEF_CONST(0.00195312500000000000000000000000000000000000000000),
  120.     COEF_CONST(0.00097656250000000000000000000000000000000000000000),
  121.     COEF_CONST(0.00048828125000000000000000000000000000000000000000),
  122.     COEF_CONST(0.00024414062500000000000000000000000000000000000000),
  123.     COEF_CONST(0.00012207031250000000000000000000000000000000000000),
  124.     COEF_CONST(0.00006103515625000000000000000000000000000000000000),
  125.     COEF_CONST(0.00003051757812500000000000000000000000000000000000),
  126.     COEF_CONST(0.00001525878906250000000000000000000000000000000000),
  127.     COEF_CONST(0.00000762939453125000000000000000000000000000000000),
  128.     COEF_CONST(0.00000381469726562500000000000000000000000000000000),
  129.     COEF_CONST(0.00000190734863281250000000000000000000000000000000),
  130.     COEF_CONST(0.00000095367431640625000000000000000000000000000000),
  131.     COEF_CONST(0.00000047683715820312500000000000000000000000000000),
  132.     COEF_CONST(0.00000023841857910156250000000000000000000000000000),
  133.     COEF_CONST(0.00000011920928955078125000000000000000000000000000),
  134.     COEF_CONST(0.00000005960464477539062500000000000000000000000000),
  135.     COEF_CONST(0.00000002980232238769531300000000000000000000000000),
  136.     COEF_CONST(0.00000001490116119384765600000000000000000000000000),
  137.     COEF_CONST(0.00000000745058059692382810000000000000000000000000),
  138.     COEF_CONST(0.00000000372529029846191410000000000000000000000000),
  139.     COEF_CONST(0.00000000186264514923095700000000000000000000000000),
  140.     COEF_CONST(0.00000000093132257461547852000000000000000000000000),
  141.     COEF_CONST(0.00000000046566128730773926000000000000000000000000),
  142.     COEF_CONST(0.00000000023283064365386963000000000000000000000000),
  143.     COEF_CONST(0.00000000011641532182693481000000000000000000000000),
  144.     COEF_CONST(0.00000000005820766091346740700000000000000000000000),
  145.     COEF_CONST(0.00000000002910383045673370400000000000000000000000),
  146.     COEF_CONST(0.00000000001455191522836685200000000000000000000000),
  147.     COEF_CONST(0.00000000000727595761418342590000000000000000000000),
  148.     COEF_CONST(0.00000000000363797880709171300000000000000000000000),
  149.     COEF_CONST(0.00000000000181898940354585650000000000000000000000),
  150.     COEF_CONST(0.00000000000090949470177292824000000000000000000000),
  151.     COEF_CONST(0.00000000000045474735088646412000000000000000000000),
  152.     COEF_CONST(0.00000000000022737367544323206000000000000000000000),
  153.     COEF_CONST(0.00000000000011368683772161603000000000000000000000),
  154.     COEF_CONST(0.00000000000005684341886080801500000000000000000000),
  155.     COEF_CONST(0.00000000000002842170943040400700000000000000000000),
  156.     COEF_CONST(0.00000000000001421085471520200400000000000000000000),
  157.     COEF_CONST(0.00000000000000710542735760100190000000000000000000),
  158.     COEF_CONST(0.00000000000000355271367880050090000000000000000000),
  159.     COEF_CONST(0.00000000000000177635683940025050000000000000000000),
  160.     COEF_CONST(0.00000000000000088817841970012523000000000000000000),
  161.     COEF_CONST(0.00000000000000044408920985006262000000000000000000),
  162.     COEF_CONST(0.00000000000000022204460492503131000000000000000000),
  163.     COEF_CONST(0.00000000000000011102230246251565000000000000000000),
  164.     COEF_CONST(0.00000000000000005551115123125782700000000000000000),
  165.     COEF_CONST(0.00000000000000002775557561562891400000000000000000),
  166.     COEF_CONST(0.00000000000000001387778780781445700000000000000000),
  167.     COEF_CONST(0.00000000000000000693889390390722840000000000000000),
  168.     COEF_CONST(0.00000000000000000346944695195361420000000000000000),
  169.     COEF_CONST(0.00000000000000000173472347597680710000000000000000),
  170.     COEF_CONST(0.00000000000000000086736173798840355000000000000000),
  171.     COEF_CONST(0.00000000000000000043368086899420177000000000000000),
  172.     COEF_CONST(0.00000000000000000021684043449710089000000000000000),
  173.     COEF_CONST(0.00000000000000000010842021724855044000000000000000),
  174.     COEF_CONST(0.00000000000000000005421010862427522200000000000000),
  175.     COEF_CONST(0.00000000000000000002710505431213761100000000000000),
  176.     COEF_CONST(0.00000000000000000001355252715606880500000000000000),
  177.     COEF_CONST(0.00000000000000000000677626357803440270000000000000),
  178.     COEF_CONST(0.00000000000000000000338813178901720140000000000000),
  179.     COEF_CONST(0.00000000000000000000169406589450860070000000000000),
  180.     COEF_CONST(0.00000000000000000000084703294725430034000000000000),
  181.     COEF_CONST(0.00000000000000000000042351647362715017000000000000),
  182.     COEF_CONST(0.00000000000000000000021175823681357508000000000000),
  183.     COEF_CONST(0.00000000000000000000010587911840678754000000000000),
  184.     COEF_CONST(0.00000000000000000000005293955920339377100000000000),
  185.     COEF_CONST(0.00000000000000000000002646977960169688600000000000),
  186.     COEF_CONST(0.00000000000000000000001323488980084844300000000000),
  187.     COEF_CONST(0.00000000000000000000000661744490042422140000000000),
  188.     COEF_CONST(0.00000000000000000000000330872245021211070000000000),
  189.     COEF_CONST(0.00000000000000000000000165436122510605530000000000),
  190.     COEF_CONST(0.00000000000000000000000082718061255302767000000000),
  191.     COEF_CONST(0.00000000000000000000000041359030627651384000000000),
  192.     COEF_CONST(0.00000000000000000000000020679515313825692000000000),
  193.     COEF_CONST(0.00000000000000000000000010339757656912846000000000),
  194.     COEF_CONST(0.00000000000000000000000005169878828456423000000000),
  195.     COEF_CONST(0.00000000000000000000000002584939414228211500000000),
  196.     COEF_CONST(0.00000000000000000000000001292469707114105700000000),
  197.     COEF_CONST(0.00000000000000000000000000646234853557052870000000),
  198.     COEF_CONST(0.00000000000000000000000000323117426778526440000000),
  199.     COEF_CONST(0.00000000000000000000000000161558713389263220000000),
  200.     COEF_CONST(0.00000000000000000000000000080779356694631609000000),
  201.     COEF_CONST(0.00000000000000000000000000040389678347315804000000),
  202.     COEF_CONST(0.00000000000000000000000000020194839173657902000000),
  203.     COEF_CONST(0.00000000000000000000000000010097419586828951000000),
  204.     COEF_CONST(0.00000000000000000000000000005048709793414475600000),
  205.     COEF_CONST(0.00000000000000000000000000002524354896707237800000),
  206.     COEF_CONST(0.00000000000000000000000000001262177448353618900000),
  207.     COEF_CONST(0.00000000000000000000000000000631088724176809440000),
  208.     COEF_CONST(0.00000000000000000000000000000315544362088404720000),
  209.     COEF_CONST(0.00000000000000000000000000000157772181044202360000),
  210.     COEF_CONST(0.00000000000000000000000000000078886090522101181000),
  211.     COEF_CONST(0.00000000000000000000000000000039443045261050590000),
  212.     COEF_CONST(0.00000000000000000000000000000019721522630525295000),
  213.     COEF_CONST(0.00000000000000000000000000000009860761315262647600),
  214.     COEF_CONST(0.00000000000000000000000000000004930380657631323800),
  215.     COEF_CONST(0.00000000000000000000000000000002465190328815661900),
  216.     COEF_CONST(0.00000000000000000000000000000001232595164407830900),
  217.     COEF_CONST(0.00000000000000000000000000000000616297582203915470),
  218.     COEF_CONST(0.00000000000000000000000000000000308148791101957740),
  219.     COEF_CONST(0.00000000000000000000000000000000154074395550978870),
  220.     COEF_CONST(0.00000000000000000000000000000000077037197775489434),
  221.     COEF_CONST(0.00000000000000000000000000000000038518598887744717),
  222.     COEF_CONST(0.00000000000000000000000000000000019259299443872359),
  223.     COEF_CONST(0.00000000000000000000000000000000009629649721936179),
  224.     COEF_CONST(0.00000000000000000000000000000000004814824860968090),
  225.     COEF_CONST(0.00000000000000000000000000000000002407412430484045),
  226.     COEF_CONST(0.00000000000000000000000000000000001203706215242022),
  227.     COEF_CONST(0.00000000000000000000000000000000000601853107621011),
  228.     COEF_CONST(0.00000000000000000000000000000000000300926553810506),
  229.     COEF_CONST(0.00000000000000000000000000000000000150463276905253),
  230.     COEF_CONST(0.00000000000000000000000000000000000075231638452626),
  231.     COEF_CONST(0.00000000000000000000000000000000000037615819226313),
  232.     COEF_CONST(0.00000000000000000000000000000000000018807909613157),
  233.     COEF_CONST(0.00000000000000000000000000000000000009403954806578),
  234.     COEF_CONST(0.00000000000000000000000000000000000004701977403289),
  235.     COEF_CONST(0.00000000000000000000000000000000000002350988701645),
  236.     COEF_CONST(0.00000000000000000000000000000000000001175494350822),
  237.     COEF_CONST(0.0 /* 0000000000000000000000000000000000000587747175411 "floating point underflow" */),
  238.     COEF_CONST(0.0)
  239. };
  240. #ifdef __cplusplus
  241. }
  242. #endif
  243. #endif
  244. #endif