/* * Copyright (C) 2011 in-somnia * * This file is part of JAAD. * * JAAD 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 3 of the * License, or (at your option) any later version. * * JAAD 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 this library. * If not, see <http://www.gnu.org/licenses/>. */ package net.sourceforge.jaad.aac.sbr2; //TODO: include LAVs in tables interface HuffmanTables { //largest absolute values int T_HUFFMAN_ENV_1_5_LAV = 60; int F_HUFFMAN_ENV_1_5_LAV = 60; int T_HUFFMAN_ENV_BAL_1_5_LAV = 24; int F_HUFFMAN_ENV_BAL_1_5_LAV = 24; int T_HUFFMAN_ENV_3_0_LAV = 31; int F_HUFFMAN_ENV_3_0_LAV = 31; int T_HUFFMAN_ENV_BAL_3_0_LAV = 12; int F_HUFFMAN_ENV_BAL_3_0_LAV = 12; int T_HUFFMAN_NOISE_3_0_LAV = 31; int F_HUFFMAN_NOISE_3_0_LAV = F_HUFFMAN_ENV_3_0_LAV; int T_HUFFMAN_NOISE_BAL_3_0_LAV = 12; int F_HUFFMAN_NOISE_BAL_3_0_LAV = F_HUFFMAN_ENV_BAL_3_0_LAV; //codebooks: {bit length, codeword, values...} int[][] T_HUFFMAN_ENV_1_5 = { {2, 0, 60}, {2, 1, 59}, {3, 4, 61}, {3, 5, 58}, {4, 12, 62}, {4, 13, 57}, {5, 28, 63}, {5, 29, 56}, {6, 60, 64}, {6, 61, 55}, {7, 124, 65}, {7, 125, 54}, {8, 252, 66}, {8, 253, 53}, {9, 508, 67}, {9, 509, 52}, {10, 1020, 51}, {10, 1021, 68}, {11, 2044, 50}, {12, 4090, 69}, {12, 4091, 49}, {13, 8184, 70}, {13, 8185, 48}, {13, 8186, 47}, {14, 16374, 71}, {14, 16375, 46}, {14, 16376, 72}, {14, 16377, 45}, {15, 32756, 44}, {15, 32757, 73}, {16, 65516, 41}, {16, 65517, 42}, {16, 65518, 43}, {16, 65519, 74}, {16, 65520, 36}, {16, 65521, 40}, {16, 65522, 76}, {17, 131046, 34}, {17, 131047, 39}, {17, 131048, 75}, {17, 131049, 37}, {18, 262100, 35}, {18, 262101, 38}, {18, 262102, 0}, {18, 262103, 1}, {18, 262104, 2}, {18, 262105, 3}, {18, 262106, 4}, {18, 262107, 5}, {19, 524216, 6}, {19, 524217, 7}, {19, 524218, 8}, {19, 524219, 9}, {19, 524220, 10}, {19, 524221, 11}, {19, 524222, 12}, {19, 524223, 13}, {19, 524224, 14}, {19, 524225, 15}, {19, 524226, 16}, {19, 524227, 17}, {19, 524228, 18}, {19, 524229, 19}, {19, 524230, 20}, {19, 524231, 21}, {19, 524232, 22}, {19, 524233, 23}, {19, 524234, 24}, {19, 524235, 25}, {19, 524236, 26}, {19, 524237, 27}, {19, 524238, 28}, {19, 524239, 29}, {19, 524240, 30}, {19, 524241, 31}, {19, 524242, 32}, {19, 524243, 33}, {19, 524244, 77}, {19, 524245, 78}, {19, 524246, 79}, {19, 524247, 80}, {19, 524248, 81}, {19, 524249, 82}, {19, 524250, 83}, {19, 524251, 84}, {19, 524252, 85}, {19, 524253, 86}, {19, 524254, 87}, {19, 524255, 88}, {19, 524256, 89}, {19, 524257, 90}, {19, 524258, 91}, {19, 524259, 92}, {19, 524260, 93}, {19, 524261, 94}, {19, 524262, 95}, {19, 524263, 96}, {19, 524264, 97}, {19, 524265, 98}, {19, 524266, 99}, {19, 524267, 100}, {19, 524268, 101}, {19, 524269, 102}, {19, 524270, 103}, {19, 524271, 104}, {19, 524272, 105}, {19, 524273, 106}, {19, 524274, 107}, {19, 524275, 108}, {19, 524276, 109}, {19, 524277, 110}, {19, 524278, 111}, {19, 524279, 112}, {19, 524280, 113}, {19, 524281, 114}, {19, 524282, 115}, {19, 524283, 116}, {19, 524284, 117}, {19, 524285, 118}, {19, 524286, 119}, {19, 524287, 120} }; int[][] F_HUFFMAN_ENV_1_5 = { {2, 0, 60}, {2, 1, 59}, {3, 4, 61}, {3, 5, 58}, {4, 12, 57}, {4, 13, 62}, {5, 28, 56}, {5, 29, 63}, {6, 60, 55}, {6, 61, 64}, {7, 124, 54}, {8, 250, 65}, {8, 251, 53}, {8, 252, 66}, {9, 506, 52}, {9, 507, 67}, {9, 508, 51}, {10, 1018, 68}, {10, 1019, 50}, {11, 2040, 69}, {11, 2041, 49}, {11, 2042, 70}, {11, 2043, 71}, {12, 4088, 48}, {12, 4089, 72}, {12, 4090, 47}, {12, 4091, 73}, {13, 8184, 74}, {13, 8185, 46}, {13, 8186, 45}, {13, 8187, 75}, {14, 16376, 76}, {14, 16377, 77}, {14, 16378, 44}, {15, 32758, 43}, {15, 32759, 42}, {16, 65520, 41}, {16, 65521, 78}, {16, 65522, 79}, {16, 65523, 40}, {16, 65524, 39}, {17, 131050, 80}, {17, 131051, 81}, {17, 131052, 36}, {17, 131053, 37}, {17, 131054, 38}, {17, 131055, 34}, {18, 262112, 32}, {18, 262113, 82}, {18, 262114, 83}, {18, 262115, 85}, {18, 262116, 19}, {18, 262117, 35}, {18, 262118, 86}, {18, 262119, 87}, {18, 262120, 30}, {18, 262121, 33}, {18, 262122, 84}, {18, 262123, 88}, {18, 262124, 104}, {19, 524250, 9}, {19, 524251, 14}, {19, 524252, 16}, {19, 524253, 17}, {19, 524254, 23}, {19, 524255, 27}, {19, 524256, 29}, {19, 524257, 31}, {19, 524258, 90}, {19, 524259, 97}, {19, 524260, 102}, {19, 524261, 107}, {19, 524262, 108}, {19, 524263, 0}, {19, 524264, 1}, {20, 1048530, 2}, {20, 1048531, 3}, {20, 1048532, 4}, {20, 1048533, 5}, {20, 1048534, 6}, {20, 1048535, 7}, {20, 1048536, 8}, {20, 1048537, 10}, {20, 1048538, 11}, {20, 1048539, 12}, {20, 1048540, 13}, {20, 1048541, 15}, {20, 1048542, 18}, {20, 1048543, 20}, {20, 1048544, 21}, {20, 1048545, 22}, {20, 1048546, 24}, {20, 1048547, 25}, {20, 1048548, 26}, {20, 1048549, 28}, {20, 1048550, 89}, {20, 1048551, 91}, {20, 1048552, 92}, {20, 1048553, 93}, {20, 1048554, 94}, {20, 1048555, 95}, {20, 1048556, 96}, {20, 1048557, 98}, {20, 1048558, 99}, {20, 1048559, 100}, {20, 1048560, 101}, {20, 1048561, 103}, {20, 1048562, 105}, {20, 1048563, 106}, {20, 1048564, 109}, {20, 1048565, 110}, {20, 1048566, 111}, {20, 1048567, 112}, {20, 1048568, 113}, {20, 1048569, 114}, {20, 1048570, 115}, {20, 1048571, 116}, {20, 1048572, 117}, {20, 1048573, 118}, {20, 1048574, 119}, {20, 1048575, 120} }; int[][] T_HUFFMAN_ENV_BAL_1_5 = { {1, 0, 24}, {2, 2, 25}, {3, 6, 23}, {4, 14, 26}, {5, 30, 22}, {6, 62, 27}, {7, 126, 21}, {8, 254, 28}, {9, 510, 20}, {11, 2044, 19}, {11, 2045, 29}, {12, 4092, 18}, {12, 4093, 30}, {15, 32752, 31}, {16, 65506, 17}, {16, 65507, 32}, {16, 65508, 0}, {16, 65509, 1}, {16, 65510, 2}, {16, 65511, 3}, {16, 65512, 4}, {16, 65513, 5}, {16, 65514, 6}, {16, 65515, 7}, {16, 65516, 8}, {16, 65517, 9}, {16, 65518, 10}, {16, 65519, 11}, {16, 65520, 12}, {16, 65521, 13}, {16, 65522, 14}, {16, 65523, 15}, {16, 65524, 16}, {16, 65525, 33}, {16, 65526, 34}, {16, 65527, 35}, {16, 65528, 36}, {16, 65529, 37}, {16, 65530, 38}, {17, 131062, 39}, {17, 131063, 40}, {17, 131064, 41}, {17, 131065, 42}, {17, 131066, 43}, {17, 131067, 44}, {17, 131068, 45}, {17, 131069, 46}, {17, 131070, 47}, {17, 131071, 48} }; int[][] F_HUFFMAN_ENV_BAL_1_5 = { {1, 0, 24}, {2, 2, 23}, {3, 6, 25}, {4, 14, 22}, {5, 30, 26}, {6, 62, 27}, {7, 126, 21}, {8, 254, 20}, {9, 510, 28}, {11, 2044, 19}, {11, 2045, 29}, {11, 2046, 18}, {12, 4094, 30}, {14, 16380, 17}, {15, 32762, 31}, {16, 65526, 32}, {16, 65527, 15}, {17, 131056, 16}, {18, 262114, 0}, {18, 262115, 1}, {18, 262116, 2}, {18, 262117, 3}, {18, 262118, 4}, {18, 262119, 5}, {18, 262120, 6}, {18, 262121, 7}, {18, 262122, 8}, {18, 262123, 9}, {18, 262124, 10}, {18, 262125, 11}, {18, 262126, 12}, {18, 262127, 13}, {18, 262128, 14}, {18, 262129, 33}, {18, 262130, 34}, {18, 262131, 35}, {18, 262132, 36}, {18, 262133, 37}, {18, 262134, 38}, {18, 262135, 39}, {18, 262136, 40}, {18, 262137, 41}, {18, 262138, 42}, {18, 262139, 43}, {18, 262140, 44}, {18, 262141, 45}, {18, 262142, 46}, {19, 524286, 47}, {19, 524287, 48} }; int[][] T_HUFFMAN_ENV_3_0 = { {1, 0, 31}, {2, 2, 30}, {3, 6, 32}, {4, 14, 29}, {5, 30, 33}, {6, 62, 28}, {7, 126, 34}, {8, 254, 27}, {9, 510, 35}, {11, 2044, 26}, {11, 2045, 36}, {12, 4092, 25}, {13, 8186, 24}, {13, 8187, 37}, {14, 16376, 23}, {14, 16377, 38}, {14, 16378, 22}, {14, 16379, 21}, {14, 16380, 39}, {15, 32762, 40}, {16, 65526, 41}, {16, 65527, 18}, {16, 65528, 20}, {16, 65529, 19}, {17, 131060, 17}, {17, 131061, 42}, {18, 262124, 43}, {18, 262125, 0}, {18, 262126, 1}, {19, 524254, 2}, {19, 524255, 3}, {19, 524256, 4}, {19, 524257, 5}, {19, 524258, 6}, {19, 524259, 7}, {19, 524260, 8}, {19, 524261, 9}, {19, 524262, 10}, {19, 524263, 11}, {19, 524264, 12}, {19, 524265, 13}, {19, 524266, 14}, {19, 524267, 15}, {19, 524268, 16}, {19, 524269, 44}, {19, 524270, 45}, {19, 524271, 46}, {19, 524272, 47}, {19, 524273, 48}, {19, 524274, 49}, {19, 524275, 50}, {19, 524276, 51}, {19, 524277, 52}, {19, 524278, 53}, {19, 524279, 54}, {19, 524280, 55}, {19, 524281, 56}, {19, 524282, 57}, {19, 524283, 58}, {19, 524284, 59}, {19, 524285, 60}, {19, 524286, 61}, {19, 524287, 62} }; int[][] F_HUFFMAN_ENV_3_0 = { {1, 0, 31}, {2, 2, 30}, {3, 6, 32}, {4, 14, 29}, {5, 30, 33}, {6, 62, 28}, {8, 252, 34}, {8, 253, 27}, {9, 508, 35}, {9, 509, 26}, {10, 1020, 36}, {10, 1021, 25}, {11, 2044, 37}, {11, 2045, 24}, {12, 4092, 38}, {12, 4093, 23}, {13, 8188, 39}, {14, 16378, 40}, {14, 16379, 22}, {15, 32760, 21}, {15, 32761, 41}, {15, 32762, 42}, {16, 65526, 20}, {16, 65527, 19}, {16, 65528, 43}, {16, 65529, 44}, {17, 131060, 18}, {17, 131061, 16}, {17, 131062, 45}, {17, 131063, 46}, {18, 262128, 17}, {18, 262129, 49}, {18, 262130, 13}, {18, 262131, 7}, {18, 262132, 12}, {18, 262133, 47}, {18, 262134, 48}, {19, 524270, 9}, {19, 524271, 10}, {19, 524272, 15}, {19, 524273, 51}, {19, 524274, 52}, {19, 524275, 53}, {19, 524276, 56}, {19, 524277, 8}, {19, 524278, 11}, {19, 524279, 55}, {20, 1048560, 0}, {20, 1048561, 1}, {20, 1048562, 2}, {20, 1048563, 3}, {20, 1048564, 4}, {20, 1048565, 5}, {20, 1048566, 6}, {20, 1048567, 14}, {20, 1048568, 50}, {20, 1048569, 54}, {20, 1048570, 57}, {20, 1048571, 58}, {20, 1048572, 59}, {20, 1048573, 60}, {20, 1048574, 61}, {20, 1048575, 62} }; int[][] T_HUFFMAN_ENV_BAL_3_0 = { {1, 0, 12}, {2, 2, 13}, {3, 6, 11}, {4, 14, 10}, {5, 30, 14}, {6, 62, 15}, {7, 126, 9}, {8, 254, 8}, {9, 510, 16}, {12, 4088, 7}, {13, 8178, 0}, {13, 8179, 1}, {13, 8180, 2}, {13, 8181, 3}, {13, 8182, 4}, {13, 8183, 5}, {13, 8184, 6}, {13, 8185, 17}, {13, 8186, 18}, {13, 8187, 19}, {13, 8188, 20}, {13, 8189, 21}, {13, 8190, 22}, {14, 16382, 23}, {14, 16383, 24} }; int[][] F_HUFFMAN_ENV_BAL_3_0 = { {1, 0, 12}, {2, 2, 11}, {3, 6, 13}, {4, 14, 10}, {5, 30, 14}, {6, 62, 15}, {7, 126, 9}, {8, 254, 8}, {9, 510, 16}, {11, 2044, 7}, {12, 4090, 17}, {13, 8182, 18}, {13, 8183, 0}, {13, 8184, 1}, {13, 8185, 2}, {13, 8186, 3}, {13, 8187, 4}, {14, 16376, 5}, {14, 16377, 6}, {14, 16378, 19}, {14, 16379, 20}, {14, 16380, 21}, {14, 16381, 22}, {14, 16382, 23}, {14, 16383, 24} }; int[][] T_HUFFMAN_NOISE_3_0 = { {1, 0, 31}, {2, 2, 32}, {3, 6, 30}, {4, 14, 29}, {5, 30, 33}, {6, 62, 28}, {8, 252, 34}, {8, 253, 27}, {10, 1016, 35}, {11, 2034, 26}, {13, 8140, 36}, {13, 8141, 42}, {13, 8142, 0}, {13, 8143, 1}, {13, 8144, 2}, {13, 8145, 3}, {13, 8146, 4}, {13, 8147, 5}, {13, 8148, 6}, {13, 8149, 7}, {13, 8150, 8}, {13, 8151, 9}, {13, 8152, 10}, {13, 8153, 11}, {13, 8154, 12}, {13, 8155, 13}, {13, 8156, 14}, {13, 8157, 15}, {13, 8158, 16}, {13, 8159, 17}, {13, 8160, 18}, {13, 8161, 19}, {13, 8162, 20}, {13, 8163, 21}, {13, 8164, 22}, {13, 8165, 23}, {13, 8166, 24}, {13, 8167, 25}, {13, 8168, 37}, {13, 8169, 38}, {13, 8170, 39}, {13, 8171, 40}, {13, 8172, 41}, {13, 8173, 43}, {13, 8174, 44}, {13, 8175, 45}, {13, 8176, 46}, {13, 8177, 47}, {13, 8178, 48}, {13, 8179, 49}, {13, 8180, 50}, {13, 8181, 51}, {13, 8182, 52}, {13, 8183, 53}, {13, 8184, 54}, {13, 8185, 55}, {13, 8186, 56}, {13, 8187, 57}, {13, 8188, 58}, {13, 8189, 59}, {13, 8190, 60}, {14, 16382, 61}, {14, 16383, 62} }; int[][] T_HUFFMAN_NOISE_BAL_3_0 = { {1, 0, 12}, {2, 2, 11}, {3, 6, 13}, {5, 28, 10}, {6, 58, 14}, {8, 236, 0}, {8, 237, 1}, {8, 238, 2}, {8, 239, 3}, {8, 240, 4}, {8, 241, 5}, {8, 242, 6}, {8, 243, 7}, {8, 244, 8}, {8, 245, 9}, {8, 246, 15}, {8, 247, 16}, {8, 248, 17}, {8, 249, 18}, {8, 250, 19}, {8, 251, 20}, {8, 252, 21}, {8, 253, 22}, {8, 254, 23}, {8, 255, 24} }; int[][] F_HUFFMAN_NOISE_3_0 = F_HUFFMAN_ENV_3_0; int[][] F_HUFFMAN_NOISE_BAL_3_0 = F_HUFFMAN_ENV_BAL_3_0; }