📄 mpegtab.c
字号:
/****************************************************************************//* * mpegtab.c -- MPEG Audio tables * * Author : St閜hane TAVENARD * * (C) Copyright 1997-1997 St閜hane TAVENARD * All Rights Reserved * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *//****************************************************************************/#include "defs.h"#include "mpegaud.h"#include "mpegtab.h"/****************************************************************************/const UINT16 MPT_freq[2][4] = { { 22050, 24000, 16000, 0 }, { 44100, 48000, 32000, 0 }};/* * MPT_bitrate[ ID ][ Layer-1 ][ BitrateIndex ] * MPEG1->ID=1 MPEG2->ID=0 */const INT16 MPT_bitrate[2][3][16] = { { { 0, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256, 0}, {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 0}, {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 0} }, { { 0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, 0}, {0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 0}, {0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 0} }};const INT16 MPT_sblimit[5] = { 27, 30, 8, 12, 30 };const INT16 MPT_jsbound[3][4] = { { 4, 8, 12, 16 }, { 4, 8, 12, 16 }, { 0, 4, 8, 16 }};/****************************************************************************/#ifdef MPEGAUD_INT/* * 15 bits dec. mult table */const MPEGTAB_MULT_TYPE MPT_multiple[64] = { 0x10000, 0xCB2F, 0xA145, 0x8000, 0x6597, 0x50A2, 0x4000, 0x32CB, 0x02851, 0x2000, 0x1965, 0x1428, 0x1000, 0x0CB2, 0x0A14, 0x0800, 0x00659, 0x050A, 0x0400, 0x032C, 0x0285, 0x0200, 0x0196, 0x0142, 0x00100, 0x00CB, 0x00A1, 0x0080, 0x0065, 0x0050, 0x0040, 0x0032, 0x00028, 0x0020, 0x0019, 0x0014, 0x0010, 0x000C, 0x000A, 0x0008, 0x00006, 0x0005, 0x0004, 0x0003, 0x0002, 0x0002, 0x0001, 0x0001, 0x00001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000};/* * Dewindowing table (integer values) (14 bits) */const MPEGTAB_DEW_TYPE MPT_dewindow[512] = { +0, -7, +53, -114, +509, -1288, +1643, -9372, +18759, +9372, +1643, +1288, +509, +114, +53, +7, +0, -7, +54, -129, +499, -1379, +1489, -9833, +18747, +8909, +1783, +1196, +515, +100, +51, +6, +0, -8, +55, -145, +487, -1469, +1321, -10293, +18713, +8447, +1909, +1106, +519, +86, +50, +6, +0, -9, +56, -161, +473, -1559, +1140, -10751, +18657, +7986, +2022, +1015, +521, +73, +49, +5, +0, -10, +56, -177, +455, -1647, +943, -11205, +18578, +7527, +2122, +926, +521, +61, +47, +4, +0, -11, +57, -194, +434, -1733, +733, -11654, +18476, +7072, +2209, +837, +518, +49, +45, +4, +0, -12, +57, -211, +410, -1817, +509, -12097, +18353, +6620, +2284, +750, +514, +38, +44, +4, +0, -13, +56, -229, +383, -1899, +270, -12534, +18208, +6173, +2347, +665, +507, +27, +42, +3, +0, -14, +56, -247, +353, -1977, +17, -12963, +18042, +5732, +2397, +582, +500, +18, +40, +3, +0, -15, +55, -266, +320, -2052, -249, -13383, +17854, +5297, +2437, +501, +490, +8, +38, +2, +0, -17, +53, -284, +282, -2122, -530, -13794, +17647, +4869, +2465, +422, +479, +0, +36, +2, +0, -18, +51, -302, +242, -2188, -824, -14194, +17419, +4449, +2483, +346, +467, -7, +34, +2, +0, -19, +50, -320, +198, -2249, -1133, -14583, +17172, +4038, +2491, +273, +454, -14, +32, +1, +0, -21, +47, -338, +151, -2304, -1454, -14959, +16907, +3636, +2489, +203, +439, -20, +31, +1, +0, -22, +44, -356, +100, -2353, -1788, -15322, +16623, +3244, +2478, +136, +424, -26, +29, +1, -1, -24, +40, -374, +46, -2396, -2134, -15670, +16322, +2863, +2459, +71, +408, -31, +27, +1, -1, -25, +36, -391, -11, -2431, -2493, -16004, +16004, +2493, +2431, +11, +391, -36, +25, +1, -1, -27, +31, -408, -71, -2459, -2863, -16322, +15670, +2134, +2396, -46, +374, -40, +24, +1, -1, -29, +26, -424, -136, -2478, -3244, -16623, +15322, +1788, +2353, -100, +356, -44, +22, +0, -1, -31, +20, -439, -203, -2489, -3636, -16907, +14959, +1454, +2304, -151, +339, -47, +21, +0, -1, -32, +14, -454, -273, -2491, -4038, -17172, +14583, +1133, +2249, -198, +320, -50, +19, +0, -2, -34, +7, -467, -346, -2483, -4449, -17419, +14194, +825, +2188, -242, +302, -51, +18, +0, -2, -36, +0, -479, -422, -2465, -4869, -17647, +13794, +530, +2122, -282, +284, -53, +17, +0, -2, -38, -8, -490, -501, -2437, -5297, -17854, +13383, +249, +2052, -319, +266, -55, +15, +0, -3, -40, -18, -500, -582, -2397, -5732, -18042, +12963, -17, +1977, -353, +247, -55, +14, +0, -3, -42, -27, -507, -665, -2347, -6173, -18208, +12534, -270, +1899, -383, +229, -56, +13, +0, -4, -44, -38, -514, -750, -2284, -6620, -18353, +12097, -509, +1817, -410, +211, -57, +12, +0, -4, -45, -49, -518, -837, -2209, -7072, -18476, +11654, -733, +1733, -434, +194, -57, +11, +0, -4, -47, -61, -521, -926, -2122, -7527, -18578, +11205, -943, +1647, -455, +177, -56, +10, +0, -5, -49, -73, -521, -1015, -2022, -7986, -18657, +10751, -1140, +1559, -473, +161, -56, +9, +0, -6, -50, -86, -519, -1106, -1909, -8447, -18713, +10293, -1321, +1469, -487, +145, -55, +8, +0, -6, -51, -100, -515, -1196, -1783, -8909, -18747, +9833, -1489, +1379, -499, +129, -54, +7, +0};#elseconst MPEGTAB_MULT_TYPE MPT_multiple[64] = { 2.00000000000000, 1.58740105196820, 1.25992104989487, 1.00000000000000, 0.79370052598410, 0.62996052494744, 0.50000000000000, 0.39685026299205, 0.31498026247372, 0.25000000000000, 0.19842513149602, 0.15749013123686, 0.12500000000000, 0.09921256574801, 0.07874506561843, 0.06250000000000, 0.04960628287401, 0.03937253280921, 0.03125000000000, 0.02480314143700, 0.01968626640461, 0.01562500000000, 0.01240157071850, 0.00984313320230, 0.00781250000000, 0.00620078535925, 0.00492156660115, 0.00390625000000, 0.00310039267963, 0.00246078330058, 0.00195312500000, 0.00155019633981, 0.00123039165029, 0.00097656250000, 0.00077509816991, 0.00061519582514, 0.00048828125000, 0.00038754908495, 0.00030759791257, 0.00024414062500, 0.00019377454248, 0.00015379895629, 0.00012207031250, 0.00009688727124, 0.00007689947814, 0.00006103515625, 0.00004844363562, 0.00003844973907, 0.00003051757813, 0.00002422181781, 0.00001922486954, 0.00001525878906, 0.00001211090890, 0.00000961243477, 0.00000762939453, 0.00000605545445, 0.00000480621738, 0.00000381469727, 0.00000302772723, 0.00000240310869, 0.00000190734863, 0.00000151386361, 0.00000120155435, 1E-20};const MPEGTAB_DEW_TYPE MPT_dewindow[512] = { +0.000000000, -0.000442505, +0.003250122, -0.007003784, +0.031082153, -0.078628540, +0.100311279, -0.572036743, +1.144989014, +0.572036743, +0.100311279, +0.078628540, +0.031082153, +0.007003784, +0.003250122, +0.000442505, -0.000015259, -0.000473022, +0.003326416, -0.007919312, +0.030517578, -0.084182739, +0.090927124, -0.600219727, +1.144287109, +0.543823242, +0.108856201, +0.073059082, +0.031478882, +0.006118774, +0.003173828, +0.000396729, -0.000015259, -0.000534058, +0.003387451, -0.008865356, +0.029785156, -0.089706421, +0.080688477, -0.628295898, +1.142211914, +0.515609741, +0.116577148, +0.067520142, +0.031738281, +0.005294800, +0.003082275, +0.000366211, -0.000015259, -0.000579834, +0.003433228, -0.009841919, +0.028884888, -0.095169067, +0.069595337, -0.656219482, +1.138763428, +0.487472534, +0.123474121, +0.061996460, +0.031845093, +0.004486084, +0.002990723, +0.000320435, -0.000015259, -0.000625610, +0.003463745, -0.010848999, +0.027801514, -0.100540161, +0.057617188, -0.683914185, +1.133926392, +0.459472656, +0.129577637, +0.056533813, +0.031814575, +0.003723145, +0.002899170, +0.000289917, -0.000015259, -0.000686646, +0.003479004, -0.011886597, +0.026535034, -0.105819702, +0.044784546, -0.711318970, +1.127746582, +0.431655884, +0.134887695, +0.051132202, +0.031661987, +0.003005981, +0.002792358, +0.000259399, -0.000015259, -0.000747681, +0.003479004, -0.012939453, +0.025085449, -0.110946655, +0.031082153, -0.738372803, +1.120223999, +0.404083252, +0.139450073, +0.045837402, +0.031387329, +0.002334595, +0.002685547, +0.000244141, -0.000030518, -0.000808716, +0.003463745, -0.014022827, +0.023422241, -0.115921021, +0.016510010, -0.765029907, +1.111373901, +0.376800537, +0.143264771, +0.040634155, +0.031005859, +0.001693726, +0.002578735, +0.000213623, -0.000030518, -0.000885010, +0.003417969, -0.015121460, +0.021575928, -0.120697021, +0.001068115, -0.791213989, +1.101211548, +0.349868774, +0.146362305, +0.035552979, +0.030532837, +0.001098633, +0.002456665, +0.000198364, -0.000030518, -0.000961304, +0.003372192, -0.016235352, +0.019531250, -0.125259399, -0.015228271, -0.816864014, +1.089782715, +0.323318481, +0.148773193, +0.030609131, +0.029937744, +0.000549316, +0.002349854, +0.000167847, -0.000030518, -0.001037598, +0.003280640, -0.017349243, +0.017257690, -0.129562378, -0.032379150, -0.841949463, +1.077117920, +0.297210693, +0.150497437, +0.025817871, +0.029281616, +0.000030518, +0.002243042, +0.000152588, -0.000045776, -0.001113892, +0.003173828, -0.018463135, +0.014801025, -0.133590698, -0.050354004, -0.866363525, +1.063217163, +0.271591187, +0.151596069, +0.021179199, +0.028533936, -0.000442505, +0.002120972, +0.000137329, -0.000045776, -0.001205444, +0.003051758, -0.019577026, +0.012115479, -0.137298584, -0.069168091, -0.890090942, +1.048156738, +0.246505737, +0.152069092, +0.016708374, +0.027725220, -0.000869751, +0.002014160, +0.000122070, -0.000061035, -0.001296997, +0.002883911, -0.020690918, +0.009231567, -0.140670776, -0.088775635, -0.913055420, +1.031936646, +0.221984863, +0.151962280, +0.012420654, +0.026840210, -0.001266479, +0.001907349, +0.000106812, -0.000061035, -0.001388550, +0.002700806, -0.021789551, +0.006134033, -0.143676758, -0.109161377, -0.935195923, +1.014617920, +0.198059082, +0.151306152, +0.008316040, +0.025909424, -0.001617432, +0.001785278, +0.000106812, -0.000076294, -0.001480103, +0.002487183, -0.022857666, +0.002822876, -0.146255493, -0.130310059, -0.956481934, +0.996246338, +0.174789429, +0.150115967, +0.004394531, +0.024932861, -0.001937866, +0.001693726, +0.000091553, -0.000076294, -0.001586914, +0.002227783, -0.023910522, -0.000686646, -0.148422241, -0.152206421, -0.976852417, +0.976852417, +0.152206421, +0.148422241, +0.000686646, +0.023910522, -0.002227783, +0.001586914, +0.000076294, -0.000091553, -0.001693726, +0.001937866, -0.024932861, -0.004394531, -0.150115967, -0.174789429, -0.996246338, +0.956481934, +0.130310059, +0.146255493, -0.002822876, +0.022857666, -0.002487183, +0.001480103, +0.000076294, -0.000106812, -0.001785278, +0.001617432, -0.025909424, -0.008316040, -0.151306152, -0.198059082, -1.014617920, +0.935195923, +0.109161377, +0.143676758, -0.006134033, +0.021789551, -0.002700806, +0.001388550, +0.000061035, -0.000106812, -0.001907349, +0.001266479, -0.026840210, -0.012420654, -0.151962280, -0.221984863, -1.031936646, +0.913055420, +0.088775635, +0.140670776, -0.009231567, +0.020690918, -0.002883911, +0.001296997, +0.000061035, -0.000122070, -0.002014160, +0.000869751, -0.027725220, -0.016708374, -0.152069092, -0.246505737, -1.048156738, +0.890090942, +0.069168091, +0.137298584, -0.012115479, +0.019577026, -0.003051758, +0.001205444, +0.000045776, -0.000137329, -0.002120972, +0.000442505, -0.028533936, -0.021179199, -0.151596069, -0.271591187, -1.063217163, +0.866363525, +0.050354004, +0.133590698, -0.014801025, +0.018463135, -0.003173828, +0.001113892, +0.000045776, -0.000152588, -0.002243042, -0.000030518, -0.029281616, -0.025817871, -0.150497437, -0.297210693, -1.077117920, +0.841949463, +0.032379150, +0.129562378, -0.017257690, +0.017349243, -0.003280640, +0.001037598, +0.000030518, -0.000167847, -0.002349854, -0.000549316, -0.029937744, -0.030609131, -0.148773193, -0.323318481, -1.089782715, +0.816864014, +0.015228271, +0.125259399, -0.019531250, +0.016235352, -0.003372192, +0.000961304, +0.000030518,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -