📄 ra144.h
字号:
/* * Real Audio 1.0 (14.4K) * Copyright (c) 2003 the ffmpeg project * * This file is part of FFmpeg. * * FFmpeg is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * FFmpeg 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with FFmpeg; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */#ifndef FFMPEG_RA144_H#define FFMPEG_RA144_H#include <stdint.h>/* 14.4 data tables */static const int16_t gain_val_tab[256][3] = { {541, 956, 768}, {877, 581, 568}, {675, 787, 635}, {624, 732, 668}, {623, 839, 697}, {640, 693, 991}, {925, 687, 608}, {552, 797, 572}, {535, 832, 799}, {762, 605, 577}, {832, 561, 1003}, {590, 687, 588}, {646, 901, 732}, {828, 689, 896}, {875, 624, 848}, {571, 942, 1022}, {824, 736, 643}, {517, 765, 512}, {562, 908, 761}, {694, 913, 675}, {704, 524, 672}, {721, 757, 558}, {884, 551, 633}, {558, 1007, 846}, {932, 746, 777}, {566, 822, 926}, {613, 771, 611}, {737, 671, 1008}, {651, 594, 579}, {801, 636, 564}, {852, 910, 719}, {998, 614, 575}, {665, 935, 628}, {631, 596, 829}, {644, 926, 526}, {879, 988, 613}, {941, 692, 693}, {565, 672, 576}, {547, 628, 740}, {639, 532, 537}, {955, 604, 598}, {562, 580, 900}, {603, 899, 621}, {746, 533, 624}, {729, 514, 735}, {853, 551, 692}, {949, 1018, 1004}, {544, 988, 735}, {789, 782, 821}, {897, 516, 754}, {517, 702, 828}, {586, 818, 763}, {907, 652, 592}, {528, 652, 642}, {531, 708, 780}, {666, 625, 727}, {947, 727, 554}, {549, 657, 981}, {605, 920, 852}, {624, 619, 983}, {605, 909, 547}, {690, 935, 516}, {700, 612, 853}, {767, 832, 574}, {523, 898, 923}, {722, 958, 691}, {613, 771, 928}, {758, 757, 584}, {512, 567, 577}, {615, 638, 698}, {574, 642, 589}, {993, 682, 878}, {539, 890, 913}, {694, 928, 544}, {805, 600, 680}, {540, 951, 782}, {816, 950, 590}, {955, 847, 811}, {547, 883, 556}, {652, 888, 604}, {863, 585, 855}, {1023, 997, 516}, {932, 614, 640}, {627, 564, 573}, {876, 900, 724}, {515, 857, 896}, {647, 953, 879}, {806, 854, 857}, {545, 583, 631}, {657, 601, 751}, {740, 905, 795}, {841, 1016, 568}, {747, 589, 983}, {878, 613, 526}, {864, 723, 779}, {534, 674, 774}, {950, 649, 939}, {590, 703, 899}, {618, 527, 579}, {725, 647, 972}, {641, 647, 707}, {730, 663, 644}, {807, 572, 578}, {879, 611, 821}, {667, 729, 841}, {782, 585, 751}, {802, 733, 976}, {850, 871, 708}, {870, 743, 704}, {941, 899, 585}, {943, 632, 875}, {1023, 732, 638}, {778, 753, 655}, {843, 945, 945}, {942, 969, 572}, {1008, 559, 854}, {868, 729, 787}, {970, 686, 547}, {535, 635, 674}, {560, 636, 828}, {994, 592, 833}, {548, 621, 694}, {550, 801, 955}, {582, 522, 646}, {606, 625, 818}, {623, 591, 874}, {669, 535, 1001}, {701, 938, 592}, {925, 820, 738}, {735, 790, 544}, {575, 788, 674}, {655, 783, 528}, {527, 513, 677}, {782, 852, 940}, {578, 910, 513}, {692, 882, 734}, {586, 683, 715}, {739, 609, 717}, {778, 773, 697}, {922, 785, 813}, {766, 651, 984}, {978, 596, 515}, {535, 757, 540}, {662, 687, 589}, {554, 536, 979}, {723, 982, 690}, {936, 956, 527}, {590, 1002, 547}, {517, 653, 825}, {832, 592, 974}, {512, 957, 903}, {631, 545, 906}, {514, 720, 649}, {596, 679, 694}, {617, 740, 979}, {711, 685, 877}, {655, 835, 848}, {754, 839, 698}, {871, 515, 769}, {955, 852, 573}, {640, 859, 587}, {792, 863, 554}, {843, 708, 682}, {971, 768, 552}, {891, 536, 690}, {1016, 560, 663}, {543, 870, 674}, {601, 999, 585}, {945, 966, 889}, {529, 912, 777}, {574, 1020, 714}, {609, 922, 932}, {598, 778, 929}, {651, 772, 744}, {691, 957, 722}, {729, 766, 984}, {547, 519, 632}, {583, 532, 922}, {633, 995, 603}, {677, 571, 874}, {602, 545, 666}, {627, 542, 875}, {672, 983, 598}, {692, 979, 730}, {668, 634, 872}, {711, 706, 674}, {739, 977, 595}, {759, 905, 763}, {756, 582, 763}, {748, 1013, 908}, {804, 937, 950}, {785, 543, 998}, {999, 684, 942}, {626, 633, 996}, {626, 567, 835}, {739, 571, 973}, {655, 769, 707}, {702, 952, 571}, {727, 712, 514}, {744, 686, 741}, {731, 552, 714}, {824, 991, 726}, {795, 615, 544}, {870, 575, 824}, {803, 832, 923}, {819, 839, 531}, {887, 786, 852}, {933, 764, 570}, {716, 906, 654}, {784, 804, 563}, {774, 535, 876}, {807, 598, 649}, {817, 759, 718}, {831, 993, 846}, {858, 567, 605}, {876, 1012, 651}, {852, 548, 549}, {895, 1008, 871}, {892, 1000, 591}, {935, 516, 836}, {931, 612, 776}, {968, 614, 816}, {524, 777, 719}, {549, 694, 786}, {882, 754, 534}, {597, 837, 766}, {635, 954, 704}, {803, 550, 798}, {699, 654, 798}, {924, 767, 738}, {970, 675, 608}, {632, 706, 684}, {858, 767, 563}, {527, 765, 702}, {559, 924, 1003}, {618, 524, 611}, {999, 942, 963}, {547, 857, 935}, {734, 926, 569}, {967, 746, 551}, {834, 633, 881}, {941, 701, 727}, {945, 564, 636}, {512, 563, 793}, {984, 556, 570}, {984, 540, 740}, {527, 764, 874}, {530, 664, 1014}, {546, 515, 521}, {554, 934, 672}, {598, 945, 556}, {627, 531, 733}, {576, 1020, 1014}, {623, 924, 594}, {678, 909, 603}, {814, 744, 543}};static const uint8_t gain_exp_tab[256][3] = { {14, 14, 14}, {14, 14, 14}, {14, 13, 14}, {13, 13, 14}, {13, 14, 13}, {13, 14, 15}, {13, 13, 13}, {12, 14, 13}, {13, 13, 13}, {13, 13, 12}, {13, 12, 13}, {12, 13, 12}, {12, 13, 13}, {12, 13, 13}, {12, 12, 13}, {11, 13, 13}, {13, 12, 13}, {12, 12, 12}, {13, 12, 12}, {13, 12, 11}, {12, 12, 12}, {12, 13, 11}, {12, 12, 11}, {11, 13, 12}, {12, 12, 12}, {11, 12, 12}, {11, 12, 12}, {11, 12, 13}, {11, 12, 11}, {11, 12, 11}, {11, 13, 12}, {11, 12, 12}, {12, 12, 12}, {12, 11, 12}, {12, 12, 11}, {12, 12, 11}, {13, 11, 11}, {12, 11, 10}, {11, 11, 11}, {11, 11, 10}, {12, 11, 12}, {11, 11, 12}, {11, 12, 11}, {11, 11, 11}, {11, 11, 12}, {11, 11, 12}, {11, 12, 12}, {10, 12, 12}, {11, 12, 11}, {11, 11, 11}, {10, 12, 11}, {10, 12, 11}, {11, 11, 11}, {10, 11, 11}, {10, 11, 12}, {10, 11, 12}, {11, 12, 11}, {10, 12, 12}, {10, 13, 12}, {10, 12, 13}, {10, 12, 11}, {10, 12, 11}, {10, 12, 12}, {10, 12, 12}, {12, 11, 12}, {12, 11, 11}, {11, 11, 12}, {11, 11, 11}, {11, 10, 11}, {11, 10, 11}, {12, 10, 10}, {12, 10, 10}, {11, 11, 11}, {11, 11, 10}, {11, 11, 10}, {10, 12, 10}, {11, 11, 11}, {11, 11, 11}, {10, 11, 11}, {10, 11, 11}, {11, 10, 11}, {11, 11, 10}, {11, 10, 10}, {10, 10, 10}, {11, 11, 10}, {10, 11, 10}, {10, 11, 10}, {10, 11, 10}, {10, 10, 11}, {10, 10, 11}, {10, 11, 11}, {10, 11, 11}, {10, 10, 11}, {10, 10, 10}, {10, 10, 11}, { 9, 10, 11}, {11, 11, 11}, {10, 11, 11}, {10, 11, 10}, {10, 11, 11}, {10, 11, 11}, {10, 11, 11}, {10, 11, 11}, {10, 11, 12}, {10, 12, 11}, {10, 12, 11}, {10, 12, 12}, {10, 13, 12}, {10, 12, 11}, {10, 12, 11}, {10, 12, 12}, {10, 12, 12}, {10, 12, 10}, {10, 12, 11}, {10, 12, 10}, {10, 11, 11}, {10, 11, 11}, {10, 11, 11}, { 9, 11, 11}, { 9, 11, 12}, {10, 12, 11}, { 9, 12, 11}, { 9, 12, 12}, { 9, 12, 12}, { 9, 12, 11}, { 9, 12, 12}, { 9, 12, 12}, { 9, 13, 12}, {12, 10, 11}, {11, 10, 10}, {10, 10, 11}, {10, 10, 10}, {11, 9, 10}, {11, 10, 10}, {10, 10, 9}, {10, 10, 9}, {10, 10, 10}, {10, 10, 10}, {10, 10, 10}, {10, 10, 10}, {10, 10, 10}, {10, 10, 9}, { 9, 10, 9}, { 9, 10, 9}, {10, 9, 11}, {10, 10, 10}, {10, 10, 10}, { 9, 10, 10}, {10, 9, 10}, {10, 9, 10}, { 9, 10, 10}, { 9, 9, 10}, { 9, 10, 10}, { 9, 10, 10}, { 9, 10, 11}, { 9, 10, 11}, { 9, 10, 10}, { 9, 10, 10}, { 9, 9, 10}, { 9, 10, 10}, {10, 11, 10}, {10, 11, 10}, {10, 11, 10}, {10, 11, 10}, {10, 10, 10}, {10, 10, 10}, { 9, 11, 10}, { 9, 11, 10}, {10, 11, 11}, { 9, 11, 11}, { 9, 11, 11}, { 9, 11, 12}, { 9, 11, 11}, { 9, 11, 11}, { 9, 11, 11}, { 9, 11, 12}, { 9, 11, 10}, { 9, 11, 11}, { 9, 12, 10}, { 9, 11, 11}, { 9, 11, 11}, { 9, 11, 12}, { 9, 12, 11}, { 9, 12, 12}, { 9, 12, 11}, { 9, 12, 11}, { 9, 12, 11}, { 9, 12, 12}, { 9, 12, 11}, { 9, 13, 12}, { 9, 13, 12}, { 9, 12, 13}, {10, 11, 10}, { 9, 11, 10}, { 9, 10, 10}, { 9, 10, 10}, { 9, 11, 10}, { 9, 11, 10}, { 9, 11, 10}, { 9, 11, 11}, { 9, 10, 10}, { 9, 11, 10}, { 9, 10, 10}, { 9, 10, 11}, { 9, 11, 11}, { 9, 11, 11}, { 9, 11, 11}, { 9, 11, 11}, { 9, 12, 10}, { 9, 12, 10}, { 9, 11, 11}, { 9, 11, 11}, { 9, 12, 11}, { 9, 12, 12}, { 9, 12, 11}, { 9, 13, 12}, { 9, 11, 10}, { 9, 12, 11}, { 9, 12, 11}, { 9, 11, 12}, { 9, 12, 11}, { 9, 12, 12}, { 8, 12, 11}, { 8, 12, 12}, {10, 9, 9}, { 9, 9, 9}, { 9, 10, 9}, { 9, 9, 9}, { 9, 9, 10}, { 9, 9, 10}, { 9, 9, 9}, { 8, 9, 9}, { 9, 10, 9}, { 8, 10, 9}, { 8, 10, 10}, { 8, 9, 10}, { 9, 9, 9}, { 7, 8, 8}, { 8, 10, 9}, { 8, 9, 9}, { 9, 11, 10}, { 9, 11, 10}, { 9, 10, 10}, { 8, 10, 11}, { 9, 11, 10}, { 9, 11, 11}, { 8, 11, 11}, { 8, 11, 12}, { 8, 10, 9}, { 8, 11, 10}, { 8, 11, 10}, { 8, 10, 11}, { 8, 12, 11}, { 8, 12, 11}, { 8, 11, 10}, { 8, 11, 10}};static const int8_t cb1_vects[128][40]={ { 38, -4, 15, -4, 14, -13, 12, -11, -2, -6, -6, -11, -45, -16, -11, -13, -7, 6, -12, 4, -20, 3, -16, 12, -1, 12, 46, 24, 0, 33, -3, 9, -12, -12, -8, -7, 17, -6, 0, -2, }, { 60, -16, 3, -22, 10, -32, 0, -28, -17, -18, -3, -25, -37, -23, -10, 3, 2, 3, 0, 3, -14, 0, -14, -1, 0, 2, 32, 9, -1, 25, 7, 13, -5, 13, 8, 1, 2, 8, -10, 6, }, { 27, -12, 28, -2, 6, -7, 15, 9, -11, 1, -13, -11, -40, 4, -29, -14, -19, -5, -23, -8, -30, -13, -17, 0, -14, 12, 34, 20, -2, 25, 2, -16, -4, -12, 15, 16, 29, 7, 24, 10, }, { 49, -24, 16, -20, 2, -26, 2, -7, -25, -10, -11, -25, -32, -3, -27, 2, -8, -8, -11, -9, -24, -17, -16, -14, -13, 2, 20, 5, -4, 17, 14, -12, 3, 13, 33, 25, 14, 23, 15, 19, }, { 46, -6, 21, 8, -2, -16, -5, -8, -11, 4, 8, 15, -24, 4, -2, -26, -3, -16, -16, -14, -9, -2, -1, 4, 19, 7, 36, 17, 9, 13, 0, 31, -5, -12, 7, -8, 11, -15, -13, -4, }, { 68, -18, 9, -9, -6, -35, -18, -25, -26, -7, 10, 1, -16, -3, -1, -9, 6, -19, -4, -15, -4, -6, 0, -8, 20, -2, 23, 2, 7, 5, 12, 35, 1, 13, 24, 0, -3, 0, -22, 4, }, { 35, -14, 34, 10, -10, -10, -1, 12, -20, 12, 0, 15, -18, 24, -20, -27, -14, -28, -27, -27, -20, -19, -2, -8, 5, 7, 25, 13, 5, 5, 6, 5, 2, -12, 31, 15, 23, -1, 12, 8, }, { 57, -26, 22, -7, -14, -28, -14, -3, -35, 0, 3, 1, -11, 16, -18, -10, -4, -31, -15, -28, -14, -23, -1, -21, 7, -2, 11, -1, 3, -1, 18, 9, 10, 13, 49, 24, 8, 14, 2, 16, }, { 25, 15, 22, 11, 18, 4, 15, -22, 8, -2, -17, -9, -48, -20, -30, -17, -16, 11, -1, 16, 2, 10, -5, 26, -2, -4, 22, 0, 2, 10, -6, 13, -14, 10, -23, 0, 10, -2, 1, 0, }, { 47, 3, 11, -6, 15, -13, 2, -38, -6, -13, -15, -22, -40, -28, -28, 0, -5, 8, 10, 15, 7, 7, -4, 13, -1, -14, 9, -14, 0, 2, 4, 18, -7, 36, -6, 8, -3, 13, -7, 8, }, { 14, 7, 36, 13, 10, 10, 18, 0, 0, 5, -25, -8, -43, 0, -48, -18, -27, 0, -12, 3, -7, -6, -7, 13, -15, -5, 11, -3, 0, 2, 0, -12, -6, 10, 0, 23, 22, 11, 26, 12, }, { 36, -5, 24, -4, 7, -7, 6, -17, -14, -5, -22, -22, -35, -8, -46, -1, -17, -3, 0, 2, -2, -10, -5, 0, -14, -15, -2, -18, -2, -4, 11, -7, 1, 36, 18, 32, 7, 27, 17, 20, }, { 33, 13, 29, 24, 1, 1, -2, -18, 0, 9, -3, 17, -27, 0, -21, -30, -12, -11, -5, -2, 12, 4, 9, 19, 18, -9, 13, -6, 11, -8, -2, 35, -8, 10, -7, -1, 4, -11, -10, -2, }, { 55, 1, 17, 6, -1, -16, -15, -35, -15, -2, 0, 4, -19, -8, -20, -13, -1, -14, 7, -3, 18, 0, 10, 5, 19, -19, 0, -21, 8, -16, 9, 39, 0, 36, 10, 7, -9, 4, -20, 5, }, { 22, 5, 42, 26, -6, 8, 1, 2, -9, 17, -10, 18, -21, 19, -39, -31, -23, -23, -16, -15, 2, -12, 7, 6, 5, -9, 1, -10, 7, -16, 4, 9, 0, 10, 17, 22, 16, 2, 14, 9, }, { 44, -6, 30, 8, -9, -10, -11, -14, -23, 5, -8, 4, -14, 12, -37, -14, -12, -26, -4, -16, 8, -16, 9, -7, 6, -19, -12, -25, 5, -24, 15, 13, 8, 36, 34, 31, 1, 18, 4, 18, }, { -3, -5, -9, -7, 15, -1, 5, 13, 2, 12, 5, 2, -21, -23, -2, -16, 0, 5, -6, 13, -23, 3, -32, 10, -15, 8, 44, 28, 9, 37, -2, 13, -9, -15, -12, -27, -7, -12, 0, -11, }, { 18, -17, -21, -25, 11, -19, -6, -3, -11, 0, 7, -11, -13, -31, -1, 0, 9, 1, 5, 12, -18, 0, -31, -2, -13, -1, 30, 14, 7, 29, 9, 18, -1, 10, 4, -18, -22, 3, -10, -2, }, { -13, -13, 3, -5, 7, 4, 9, 34, -5, 20, -2, 3, -16, -3, -20, -17, -11, -7, -17, 0, -34, -13, -33, -2, -28, 8, 32, 24, 5, 29, 3, -12, 0, -15, 11, -3, 3, 2, 24, 1, }, { 8, -25, -8, -23, 3, -13, -3, 17, -20, 8, 0, -10, -8, -11, -18, 0, -1, -10, -5, 0, -28, -17, -32, -15, -26, -1, 19, 9, 3, 21, 15, -7, 6, 9, 29, 5, -10, 17, 15, 9, }, { 4, -6, -3, 5, -1, -4, -11, 16, -6, 23, 19, 29, 0, -3, 6, -30, 3, -17, -10, -5, -13, -2, -17, 3, 5, 3, 35, 21, 17, 17, 2, 35, -2, -15, 3, -28, -13, -21, -13, -13, }, { 26, -19, -15, -12, -5, -22, -24, 0, -21, 12, 21, 15, 8, -11, 7, -12, 14, -20, 2, -6, -7, -6, -16, -9, 6, -5, 21, 7, 15, 10, 13, 39, 5, 10, 20, -19, -28, -5, -22, -5, }, { -5, -15, 9, 7, -9, 2, -8, 37, -14, 31, 11, 29, 5, 16, -11, -30, -7, -29, -21, -18, -23, -19, -18, -9, -7, 3, 23, 17, 14, 9, 8, 9, 6, -15, 27, -4, -2, -6, 12, -1, }, { 16, -27, -2, -10, -13, -16, -20, 20, -29, 20, 14, 16, 13, 8, -9, -13, 2, -33, -9, -19,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -