/****************************************************************************** * * * Copyright (C) 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ***************************************************************************** * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore */ #include "ixheaacd_sbr_common.h" #include "ixheaac_type_def.h" #include "ixheaacd_defines.h" #include "ixheaacd_aac_rom.h" #include "ixheaacd_intrinsics.h" // -1 is appended at the end of each table to identify // number of scf bands at run time // const ia_aac_dec_huffman_tables_struct ixheaacd_aac_huffmann_tables = { // static const WORD8 ixheaacd_sfb_96_1024[42] = {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 12, 12, 12, 12, 12, 16, 16, 24, 28, 36, 44, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, -1}, // 12 scfbands // static const WORD8 ixheaacd_sfb_96_128[13] = {4, 4, 4, 4, 4, 4, 8, 8, 8, 16, 28, 36, -1}, // 47 scfbands // static const WORD8 ixheaacd_sfb_64_1024[48] = {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 12, 12, 12, 16, 16, 16, 20, 24, 24, 28, 36, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, -1}, // 12 scfbands */ // static const WORD8 ixheaacd_sfb_64_128[13] = // same as ixheaacd_sfb_96_128 // 49 scfbands // static const WORD8 ixheaacd_sfb_48_1024[50] = {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8, 12, 12, 12, 12, 16, 16, 20, 20, 24, 24, 28, 28, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 96, -1}, // 14 scfbands // static const WORD8 ixheaacd_sfb_48_128[15] = {4, 4, 4, 4, 4, 8, 8, 8, 12, 12, 12, 16, 16, 16, -1}, // 51 scfbands // static const WORD8 ixheaacd_sfb_32_1024[52] = {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8, 12, 12, 12, 12, 16, 16, 20, 20, 24, 24, 28, 28, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -1}, // 47 scfbands // static const WORD8 ixheaacd_sfb_24_1024[48] = {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 12, 12, 12, 12, 16, 16, 16, 20, 20, 24, 24, 28, 28, 32, 36, 36, 40, 44, 48, 52, 52, 64, 64, 64, 64, 64, -1}, // 15 scfbands // static const WORD8 ixheaacd_sfb_24_128[16] = {4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 12, 12, 16, 16, 20, -1}, // 43 scfbands // static const WORD8 ixheaacd_sfb_16_1024[44] = {8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 12, 12, 12, 12, 12, 12, 12, 12, 12, 16, 16, 16, 16, 20, 20, 20, 24, 24, 28, 28, 32, 36, 40, 40, 44, 48, 52, 56, 60, 64, 64, 64, -1}, // 15 scfbands // static const WORD8 ixheaacd_sfb_16_128[16] = {4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 12, 12, 16, 20, 20, -1}, // 40 scfbands // static const WORD8 ixheaacd_sfb_8_1024[41] = {12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 16, 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 24, 24, 24, 28, 28, 32, 36, 36, 40, 44, 48, 52, 56, 60, 64, 80, -1}, // 15 scfbands // static const WORD8 ixheaacd_sfb_8_128[16] = {4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 12, 16, 20, 20, -1}, // const ia_sampling_rate_info_struct str_sample_rate_info[16] = {{96000}, {88200}, {64000}, {48000}, {44100}, {32000}, {24000}, {22050}, {16000}, {12000}, {11025}, {8000}, {7350}}, // 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 // +------------------------------------------------+ // | 1| Len | Symbol | // +------------------------------------------------+ // | 0| | Offset | // +------------------------------------------------+ // LSB (00) is set 1 when the codeword is decoded // // HuffmanCodeBook_1 // idx_hf11 { 0x20100001, 0x41e00045, 0x659000c6, 0x890001c4, 0x0e6003df, 0xaef003e8, 0x10d007ef, 0x115007f7, 0x119007fb, 0xd1a007fc, 0x11e00ffd, 0x11f00ffe, 0x12000fff, 0xc0700009, 0x052000bf, 0x08b001bf, 0x0c6003bf, 0x0fd007df, 0x11c00ffb, 0x20e0001a, 0x0180003f, }, // idx_hf10 {0x10200002, 0x21800029, 0x32900064, 0x442000e2, 0x561001e4, 0x087003ef, 0x68a003f2, 0x09c007f7, 0x0a0007fb, 0x0a400ffb, 0x0a600ffd, 0x0a700ffe, 0x0a800fff, 0x60a0000d, 0x0240005f, 0x03f000df, 0x05c001df, 0x077003df, 0x094007ef, 0x00e0001f}, // idx_hf9 {0x00000000, 0x00200005, 0x1030000c, 0x20a00072, 0x31d001e6, 0x431003e1, 0x550007e2, 0x67600feb, 0x08e01fef, 0x09601ff7, 0x09e03ff7, 0x0a203ffb, 0x0a403ffd, 0x0a607ffd, 0x0a707ffe, 0x0a807fff, 0x00700037, 0x512000ed, 0x02f003df, 0x04d007df, 0x06a00fdf, 0x07e01fdf, 0x016001df}, // idx_hf8 {0x10000000, 0x20c00014, 0x31600033, 0x42400075, 0x030000f7, 0x533000fa, 0x039001fb, 0x03b001fd, 0x03d003fd, 0x03e003fe, 0x03f003ff, 0x50500006, 0x0120002f, 0x01e0006f, 0x028000ef, 0x035001f7, 0x0070000f}, // idx_hf7 {0x00000000, 0x00200005, 0x1030000c, 0x20c00074, 0x316000f3, 0x424001f5, 0x030003f7, 0x533003fa, 0x039007fb, 0x03b007fd, 0x03d00ffd, 0x03e00ffe, 0x03f00fff, 0x00700037, 0x012000ef, 0x01e001ef, 0x028003ef, 0x035007f7}, // idx_hf6 {0x00700007, 0x10800008, 0x21800033, 0x32500074, 0x42d000f1, 0x041001f7, 0x544001fa, 0x04a003fb, 0x04c003fd, 0x04e007fd, 0x04f007fe, 0x050007ff, 0x0140002f, 0x0200006f, 0x02b000ef, 0x039001ef, 0x046003f7}, // idx_hf5 {0x00000000, 0x0040000b, 0x0080001b, 0x10c00073, 0x218000f3, 0x324001f3, 0x430003f3, 0x040007f7, 0x542007f9, 0x04a00ffb, 0x04c00ffd, 0x04e01ffd, 0x04f01ffe, 0x05001fff, 0x014000ef, 0x020001ef, 0x02c003ef, 0x038007ef, 0x04600ff7}, // idx_hf4 {0x00700007, 0x10900009, 0x20f00019, 0x31800070, 0x42d000f6, 0x535001f5, 0x041003f7, 0x643003f9, 0x04b007fb, 0x04d007fd, 0x04e007fe, 0x04f00ffe, 0x05000fff, 0x00d00017, 0x0170006f, 0x026000ef, 0x02f001ef, 0x039003ef, 0x047007f7}, // idx_hf3 {0x00000000, 0x0040000b, 0x10600019, 0x20c00039, 0x314000f2, 0x423001f4, 0x031003f7, 0x532003f8, 0x63a007f9, 0x04200ffb, 0x74300ffc, 0x84601ffc, 0x94903ffc, 0x04d07ffd, 0x04e07ffe, 0x04f0fffe, 0x0500ffff, 0x00a00037, 0x80f00076, 0x01e001ef, 0x029003ef, 0x038007f7, 0x03e00ff7, 0x04501ffb, 0x04803ffb, 0x04b07ffb, 0x011000ef}, // idx_hf2 {0x10000000, 0x01e0002f, 0x22000031, 0x32f00072, 0x041000f7, 0x442000f8, 0x04c001fb, 0x04e001fd, 0x04f001fe, 0x050001ff, 0x40100002, 0x02c0006f, 0x039000ef, 0x048001f7, 0x1080000c, 0x00e0001f}, // idx_hf1 {0x00000000, 0x00800017, 0x0180006f, 0x02000077, 0x030001ef, 0x038001f7, 0x040003f7, 0x048007f7, 0x04c007fb, 0x04e007fd, 0x04f007fe, 0x050007ff}, // inp_hf11 {0x000c, 0x0004, 0x0244, 0x2405, 0x0225, 0x0025, 0x0465, 0x0265, 0x0485, 0x0286, 0x0686, 0x06a6, 0x0446, 0x04a6, 0x0046, 0x06c6, 0x08a7, 0x02a7, 0x08c7, 0x04c7, 0x08e7, 0x06e7, 0x0667, 0x0067, 0x0ac7, 0x0ae7, 0x04e7, 0x0907, 0x02c7, 0x0b07, 0x0707, 0x0b27, 0x0928, 0x0d08, 0x0508, 0x0ce8, 0x0d28, 0x0728, 0x02e8, 0x0a88, 0x0868, 0x22a8, 0x2268, 0x2288, 0x0d48, 0x22c8, 0x0888, 0x0948, 0x0088, 0x0648, 0x0b48, 0x0ca8, 0x22e8, 0x2248, 0x2308, 0x0528, 0x0f28, 0x0748, 0x0d68, 0x0b68, 0x0ec8, 0x2348, 0x0f48, 0x0f08, 0x2328, 0x10e8, 0x0428, 0x0308, 0x0968, 0x2368, 0x0f68, 0x2388, 0x1308, 0x2228, 0x0d88, 0x1528, 0x0548, 0x0b88, 0x1748, 0x23a8, 0x1168, 0x1148, 0x0768, 0x0aa8, 0x23c8, 0x1968, 0x0f88, 0x0988, 0x0da8, 0x0fa8, 0x00a8, 0x1189, 0x23e9, 0x1b89, 0x0329, 0x1129, 0x1fc9, 0x0ba9, 0x1da9, 0x0789, 0x11a9, 0x0fc9, 0x0569, 0x11c9, 0x1369, 0x1389, 0x21e9, 0x09a9, 0x0dc9, 0x0cc9, 0x13a9, 0x0bc9, 0x11e9, 0x0fe9, 0x0349, 0x15a9, 0x00c9, 0x1589, 0x1349, 0x13c9, 0x09c9, 0x0589, 0x13e9, 0x07a9, 0x0de9, 0x15c9, 0x1209, 0x15e9, 0x1409, 0x17c9, 0x0369, 0x0ee9, 0x1609, 0x1009, 0x07c9, 0x0be9, 0x1569, 0x09e9, 0x17a9, 0x1be9, 0x0e09, 0x1c09, 0x05a9, 0x2209, 0x0c09, 0x1809, 0x17ea, 0x142a, 0x102a, 0x122a, 0x020a, 0x0a2a, 0x00ea, 0x080a, 0x182a, 0x1bca, 0x1c2a, 0x19ea, 0x05ea, 0x1c4a, 0x124a, 0x0e2a, 0x164a, 0x162a, 0x1e0a, 0x1a0a, 0x038a, 0x0a0a, 0x178a, 0x07ea, 0x03ca, 0x19ca, 0x104a, 0x082a, 0x0c2a, 0x0c4a, 0x1e4a, 0x0a4a, 0x184a, 0x1e2a, 0x1a2a, 0x1c6a, 0x1a4a, 0x110a, 0x186a, 0x05ca, 0x144a, 0x1e6a, 0x0e6a, 0x168a, 0x202a, 0x126a, 0x146a, 0x1e8a, 0x166a, 0x0c6a, 0x188a, 0x1dea, 0x060a, 0x0e4a, 0x03aa, 0x1caa, 0x010a, 0x1c8a, 0x106a, 0x1a6a, 0x108a, 0x204a, 0x19aa, 0x0e8a, 0x062a, 0x208a, 0x206a, 0x03ea, 0x148a, 0x0a6a, 0x1eaa, 0x12aa, 0x1cca, 0x128a, 0x0c8a, 0x084a, 0x16aa, 0x18aa, 0x1a8a, 0x20aa, 0x20ca, 0x12ca, 0x200a, 0x10aa, 0x132a, 0x012a, 0x14ca, 0x14aa, 0x1aaa, 0x1eca, 0x16ea, 0x1eea, 0x1aca, 0x0eaa, 0x10ca, 0x14eb, 0x20eb, 0x18cb, 0x192b, 0x040b, 0x16cb, 0x170b, 0x1d0b, 0x1ceb, 0x190b, 0x18eb, 0x12eb, 0x1f2b, 0x1d2b, 0x1b2b, 0x210b, 0x1f0b, 0x154b, 0x1aeb, 0x150b, 0x014b, 0x1b0b, 0x176b, 0x1b4b, 0x172b, 0x1d4b, 0x01ab, 0x1f4b, 0x212b, 0x214b, 0x194b, 0x1f6b, 0x1bab, 0x016b, 0x1d6b, 0x216b, 0x218b, 0x1b6b, 0x1dcb, 0x1f8b, 0x1d8b, 0x198b, 0x1fab, 0x01cc, 0x018c, 0x21ac, 0x1fec, 0x01ec, 0x21cc}, // inp_hf10 {0x000c, 0x01c4, 0x01e4, 0x0364, 0x0385, 0x01a5, 0x0025, 0x0205, 0x0525, 0x0505, 0x03a5, 0x0545, 0x0346, 0x0046, 0x03c6, 0x06c6, 0x0226, 0x06a6, 0x0006, 0x06e6, 0x0566, 0x04e6, 0x0066, 0x0706, 0x03e6, 0x0866, 0x0247, 0x0847, 0x0887, 0x0587, 0x08a7, 0x0727, 0x0a07, 0x0407, 0x0a27, 0x0687, 0x09e7, 0x0087, 0x0267, 0x05a7, 0x08c7, 0x0a47, 0x0747, 0x0a68, 0x0ba8, 0x05c8, 0x0428, 0x08e8, 0x0d48, 0x0bc8, 0x0828, 0x0b88, 0x00a8, 0x0d28, 0x0288, 0x0d68, 0x0be8, 0x0768, 0x0448, 0x0a88, 0x0c08, 0x02a8, 0x05e8, 0x0d88, 0x0788, 0x0908, 0x0da8, 0x0928, 0x0c29, 0x0aa9, 0x0ee9, 0x09c9, 0x0ac9, 0x0f09, 0x0609, 0x0ec9, 0x0469, 0x00c9, 0x0dc9, 0x0f29, 0x07a9, 0x1089, 0x02c9, 0x0c49, 0x0de9, 0x0f49, 0x0c69, 0x10a9, 0x0949, 0x10c9, 0x0489, 0x1069, 0x0629, 0x0f69, 0x0ae9, 0x0d09, 0x07c9, 0x0b69, 0x1229, 0x0c8a, 0x124a, 0x110a, 0x02ea, 0x120a, 0x0f8a, 0x00ea, 0x0e0a, 0x10ea, 0x064a, 0x096a, 0x0e2a, 0x128a, 0x010a, 0x126a, 0x04aa, 0x0caa, 0x0b0a, 0x112a, 0x07ea, 0x030a, 0x13ca, 0x0faa, 0x13ea, 0x12aa, 0x098a, 0x140a, 0x12ca, 0x142a, 0x066a, 0x0b2a, 0x0eaa, 0x114a, 0x104a, 0x13aa, 0x012a, 0x080a, 0x0fca, 0x144a, 0x04ca, 0x0e4a, 0x0feb, 0x032b, 0x12eb, 0x146b, 0x0ccb, 0x09ab, 0x0b4b, 0x116b, 0x0e6b, 0x148b, 0x014b, 0x0ceb, 0x11eb, 0x118b, 0x130b, 0x132b, 0x016b, 0x134b, 0x100b, 0x11ab, 0x138b, 0x0e8b, 0x14ac, 0x11cc, 0x102c, 0x136c, 0x14ec, 0x018c, 0x14cc, 0x150c}, // inp_hf9 {0x000f, 0x0001, 0x01a3, 0x0023, 0x01c4, 0x0366, 0x01e6, 0x0346, 0x0046, 0x0507, 0x0387, 0x0207, 0x04e8, 0x0068, 0x03a8, 0x0528, 0x0228, 0x06a8, 0x03c8, 0x0248, 0x06c9, 0x0549, 0x0089, 0x0689, 0x0849, 0x03e9, 0x0269, 0x0569, 0x0869, 0x09e9, 0x06e9, 0x00aa, 0x040a, 0x082a, 0x028a, 0x058a, 0x02aa, 0x0d2a, 0x070a, 0x088a, 0x0a0a, 0x0b8a, 0x00ca, 0x0d4a, 0x044a, 0x05aa, 0x042a, 0x072a, 0x0eca, 0x02ca, 0x0baa, 0x09cb, 0x08ab, 0x0a2b, 0x0d6b, 0x00eb, 0x0eeb, 0x05eb, 0x074b, 0x05cb, 0x010b, 0x106b, 0x0a4b, 0x046b, 0x08cb, 0x0d0b, 0x0b6b, 0x0bcb, 0x108b, 0x0f0b, 0x0d8b, 0x02eb, 0x0beb, 0x0a6b, 0x08eb, 0x078b, 0x076b, 0x060b, 0x120b, 0x092b, 0x0eab, 0x0dab, 0x10ac, 0x048c, 0x012c, 0x122c, 0x0f2c, 0x0a8c, 0x13ac, 0x07ac, 0x0dcc, 0x030c, 0x0f4c, 0x10cc, 0x090c, 0x0c0c, 0x04ac, 0x032c, 0x13cc, 0x124c, 0x062c, 0x094c, 0x0aac, 0x0dec, 0x126c, 0x014c, 0x0c2c, 0x13ec, 0x104c, 0x10ec, 0x07cc, 0x0acc, 0x04cc, 0x0f6c, 0x0f8c, 0x07ec, 0x11ec, 0x0aec, 0x064c, 0x096c, 0x0e0d, 0x0c6d, 0x142d, 0x066d, 0x128d, 0x0c4d, 0x140d, 0x12ad, 0x110d, 0x080d, 0x0c8d, 0x098d, 0x016d, 0x144d, 0x0b0d, 0x138d, 0x112d, 0x09ad, 0x0cad, 0x0fad, 0x018d, 0x12cd, 0x0e2d, 0x0fcd, 0x114d, 0x0ccd, 0x146d, 0x0b2d, 0x0e6d, 0x12ed, 0x0ced, 0x0b4d, 0x0e4e, 0x116e, 0x0e8e, 0x0fee, 0x100e, 0x102e, 0x11ae, 0x14ae, 0x118e, 0x130e, 0x148e, 0x132e, 0x14ce, 0x14ee, 0x11cf, 0x134f, 0x136f, 0x150f}, // inp_hf8 {0x000a, 0x0123, 0x0224, 0x0104, 0x0144, 0x0024, 0x0244, 0x0005, 0x0205, 0x0045, 0x0325, 0x0165, 0x0345, 0x0265, 0x0366, 0x0426, 0x0186, 0x0446, 0x0286, 0x0306, 0x0066, 0x0466, 0x0386, 0x0546, 0x0527, 0x02a7, 0x01a7, 0x0567, 0x03a7, 0x0487, 0x0587, 0x0087, 0x04a7, 0x0407, 0x02c7, 0x0647, 0x0627, 0x01c7, 0x03c8, 0x0668, 0x05a8, 0x0508, 0x0688, 0x00a8, 0x04c8, 0x0728, 0x0748, 0x02e8, 0x06a8, 0x0768, 0x01e8, 0x05c8, 0x03e8, 0x06c9, 0x0789, 0x0609, 0x04e9, 0x00c9, 0x07a9, 0x07c9, 0x06e9, 0x05ea, 0x070a, 0x00ea, 0x07ea}, // inp_hf7 {0x000c, 0x0001, 0x0103, 0x0023, 0x0124, 0x0226, 0x0146, 0x0206, 0x0046, 0x0327, 0x0167, 0x0247, 0x0307, 0x0067, 0x0268, 0x0348, 0x0188, 0x0428, 0x01a8, 0x0528, 0x0368, 0x0288, 0x0088, 0x0408, 0x0449, 0x02a9, 0x0549, 0x00a9, 0x0629, 0x0509, 0x01c9, 0x0469, 0x03a9, 0x0389, 0x0569, 0x02c9, 0x0649, 0x01e9, 0x03ca, 0x00ca, 0x060a, 0x048a, 0x072a, 0x04aa, 0x074a, 0x058a, 0x066a, 0x02ea, 0x076a, 0x068a, 0x05aa, 0x04ca, 0x03ea, 0x070b, 0x00eb, 0x06ab, 0x05cb, 0x078b, 0x04eb, 0x05eb, 0x07ab, 0x07cc, 0x06cc, 0x06ec, 0x07ec}, // inp_hf6 {0x000b, 0x0504, 0x0624, 0x04e4, 0x0524, 0x03e4, 0x0644, 0x0404, 0x0604, 0x03c4, 0x0726, 0x0766, 0x02e6, 0x02a6, 0x02c6, 0x0426, 0x0746, 0x05e6, 0x0666, 0x04c6, 0x03a6, 0x0546, 0x0706, 0x0306, 0x0286, 0x0786, 0x01c7, 0x0887, 0x0847, 0x0447, 0x0187, 0x0687, 0x05c7, 0x0387, 0x0867, 0x01a7, 0x04a7, 0x0567, 0x08a7, 0x0168, 0x0328, 0x07a8, 0x0828, 0x06e8, 0x0268, 0x01e8, 0x08c8, 0x0809, 0x0149, 0x0209, 0x05a9, 0x0369, 0x09a9, 0x00a9, 0x0069, 0x06a9, 0x0969, 0x0469, 0x0489, 0x00c9, 0x0049, 0x07c9, 0x0249, 0x0089, 0x09c9, 0x0949, 0x0349, 0x0989, 0x06c9, 0x0589, 0x012a, 0x022a, 0x07ea, 0x092a, 0x08ea, 0x09ea, 0x00ea, 0x002a, 0x0a0b, 0x010b, 0x000b, 0x090b}, // inp_hf5 {0x000d, 0x0501, 0x03e4, 0x0624, 0x0524, 0x04e4, 0x0605, 0x0405, 0x03c5, 0x0645, 0x02c7, 0x0547, 0x0747, 0x04c7, 0x02a8, 0x0768, 0x03a8, 0x0668, 0x02e8, 0x0728, 0x0428, 0x05e8, 0x01a8, 0x0868, 0x04a8, 0x0568, 0x0189, 0x0689, 0x0889, 0x0389, 0x01c9, 0x0849, 0x05c9, 0x0449, 0x0309, 0x0789, 0x0289, 0x0709, 0x016a, 0x082a, 0x032a, 0x06ea, 0x08aa, 0x07aa, 0x01ea, 0x026a, 0x048a, 0x008a, 0x09aa, 0x098a, 0x006b, 0x058b, 0x096b, 0x036b, 0x06ab, 0x046b, 0x00ab, 0x05ab, 0x080b, 0x014b, 0x020b, 0x034b, 0x004b, 0x09cb, 0x06cb, 0x07cb, 0x08cb, 0x00cb, 0x024c, 0x094c, 0x07ec, 0x002c, 0x00ec, 0x08ec, 0x022c, 0x09ec, 0x092c, 0x012c, 0x090d, 0x010d, 0x0a0d, 0x000d}, // inp_hf4 {0x000c, 0x0504, 0x01a4, 0x04a4, 0x04e4, 0x03e4, 0x0364, 0x0484, 0x0004, 0x0084, 0x03c4, 0x0385, 0x0185, 0x0025, 0x0145, 0x0065, 0x0125, 0x0867, 0x0567, 0x0627, 0x0527, 0x0847, 0x0807, 0x0607, 0x0747, 0x0207, 0x01c8, 0x0548, 0x02c8, 0x0408, 0x05c8, 0x04c8, 0x0448, 0x07e8, 0x0728, 0x05a8, 0x06e8, 0x0168, 0x02a8, 0x00a8, 0x01e8, 0x0268, 0x03a8, 0x00e8, 0x0428, 0x06c8, 0x0048, 0x0249, 0x00c9, 0x0689, 0x0989, 0x08c9, 0x0589, 0x0649, 0x0889, 0x066a, 0x096a, 0x08aa, 0x032a, 0x022a, 0x092a, 0x02ea, 0x07aa, 0x046a, 0x09ea, 0x05ea, 0x076a, 0x082a, 0x06aa, 0x08eb, 0x09ab, 0x030b, 0x090b, 0x010b, 0x078b, 0x028b, 0x070b, 0x0a0b, 0x034b, 0x09cb, 0x094c, 0x07cc}, // inp_hf3 {0x0010, 0x0001, 0x0364, 0x0024, 0x0124, 0x0064, 0x0485, 0x0085, 0x0186, 0x0146, 0x03c6, 0x01a6, 0x0386, 0x04e6, 0x0507, 0x03e7, 0x04a7, 0x06c8, 0x0048, 0x00a8, 0x07e8, 0x0608, 0x00e9, 0x0209, 0x05a9, 0x01c9, 0x0849, 0x00c9, 0x02a9, 0x01e9, 0x0249, 0x0169, 0x0729, 0x0629, 0x02c9, 0x0549, 0x0569, 0x05ca, 0x042a, 0x044a, 0x026a, 0x086a, 0x052a, 0x080a, 0x040a, 0x010a, 0x022a, 0x096a, 0x066a, 0x03aa, 0x06ea, 0x032a, 0x090b, 0x068b, 0x04cb, 0x074b, 0x058b, 0x098b, 0x030b, 0x02eb, 0x046c, 0x092c, 0x08ac, 0x09cc, 0x034c, 0x09ec, 0x08cc, 0x064c, 0x06ac, 0x028d, 0x078d, 0x05ed, 0x07ae, 0x088e, 0x082e, 0x0a0f, 0x09af, 0x08ef, 0x076f, 0x070f, 0x0950, 0x07d0}, // inp_hf2 {0x0009, 0x0503, 0x0864, 0x01a5, 0x0525, 0x04a5, 0x04e5, 0x03e5, 0x0565, 0x0625, 0x0446, 0x02c6, 0x05c6, 0x0546, 0x0606, 0x04c6, 0x0186, 0x0746, 0x0806, 0x0086, 0x0486, 0x08c6, 0x0886, 0x0406, 0x0206, 0x0646, 0x0386, 0x01c6, 0x03c6, 0x0146, 0x0986, 0x0686, 0x0586, 0x0846, 0x05e7, 0x0827, 0x0267, 0x0427, 0x07a7, 0x0967, 0x08e7, 0x0327, 0x03a7, 0x09e7, 0x01e7, 0x0027, 0x0167, 0x06e7, 0x0927, 0x0768, 0x02a8, 0x00e8, 0x0228, 0x00a8, 0x0068, 0x0368, 0x08a8, 0x07e8, 0x05a8, 0x06a8, 0x02e8, 0x0128, 0x0668, 0x0728, 0x0468, 0x09a8, 0x0788, 0x0288, 0x0709, 0x0009, 0x0309, 0x0349, 0x0a09, 0x00c9, 0x07c9, 0x0249, 0x0109, 0x0909, 0x06c9, 0x0049, 0x0949, 0x09c9}, // inp_hf1 {0x000b, 0x0501, 0x0865, 0x01a5, 0x04e5, 0x0625, 0x0525, 0x04a5, 0x0565, 0x03e5, 0x0747, 0x02c7, 0x04c7, 0x05c7, 0x0447, 0x0547, 0x0987, 0x0487, 0x0087, 0x0387, 0x0807, 0x0607, 0x0207, 0x0587, 0x08c7, 0x0407, 0x0687, 0x0647, 0x0147, 0x0887, 0x0187, 0x0847, 0x01c7, 0x03c7, 0x0929, 0x0269, 0x07a9, 0x0669, 0x05e9, 0x0469, 0x0429, 0x06e9, 0x0829, 0x05a9, 0x0329, 0x01e9, 0x00e9, 0x03a9, 0x0769, 0x0729, 0x02a9, 0x0029, 0x0369, 0x06a9, 0x08a9, 0x09a9, 0x02e9, 0x09e9, 0x00aa, 0x012a, 0x096a, 0x07ea, 0x016a, 0x006a, 0x022a, 0x08ea, 0x078b, 0x028b, 0x030b, 0x070b, 0x0a0b, 0x010b, 0x090b, 0x00cb, 0x000b, 0x094b, 0x07cb, 0x034b, 0x024b, 0x004b, 0x06cb, 0x09cb}, // UWORD16 huffman_code_book_scl[122]; {0x0013, 0x0781, 0x0763, 0x07a4, 0x0744, 0x07c4, 0x0725, 0x07e5, 0x0706, 0x0806, 0x06e6, 0x0826, 0x0847, 0x06c7, 0x0867, 0x06a8, 0x0888, 0x0688, 0x08a8, 0x0668, 0x08c9, 0x0649, 0x0629, 0x08e9, 0x090a, 0x060a, 0x092a, 0x05ea, 0x094a, 0x05ca, 0x098b, 0x096b, 0x09ab, 0x09cb, 0x05ab, 0x056b, 0x058c, 0x09ec, 0x054c, 0x052c, 0x0a0c, 0x050c, 0x0a2d, 0x04ed, 0x0a4d, 0x04cd, 0x0a6d, 0x04ae, 0x046e, 0x0aae, 0x042e, 0x048e, 0x044e, 0x0a8e, 0x040e, 0x0aef, 0x0b2f, 0x03cf, 0x03ef, 0x0ad0, 0x03b0, 0x0350, 0x0370, 0x0390, 0x0310, 0x0b10, 0x0331, 0x02d1, 0x02f1, 0x0b52, 0x02b2, 0x0272, 0x0072, 0x0032, 0x0052, 0x0012, 0x0c53, 0x0c73, 0x0c93, 0x0cb3, 0x0cd3, 0x0eb3, 0x0c33, 0x0b73, 0x0b93, 0x0bb3, 0x0bd3, 0x0bf3, 0x0c13, 0x0d13, 0x0df3, 0x0e13, 0x0e33, 0x0e53, 0x0e73, 0x0e93, 0x0dd3, 0x0d33, 0x0d53, 0x0d73, 0x0d93, 0x0db3, 0x0ed3, 0x00d3, 0x0113, 0x0133, 0x0153, 0x00b3, 0x0cf3, 0x0f13, 0x0ef3, 0x0093, 0x00f3, 0x01f3, 0x0213, 0x0253, 0x0293, 0x0233, 0x0173, 0x0193, 0x01d3, 0x01b3}, // UWORD32 huffman_code_book_scl_index[33]; {0x00000000, 0x10100004, 0x2040000c, 0x00a0003b, 0x30d0007a, 0x412000fa, 0x516001f9, 0x61c003f9, 0x722007f9, 0x82800ff9, 0x92d01ff8, 0xa3503ff9, 0xb400fff6, 0xc431fff0, 0x0687ffef, 0x0707fff7, 0x0747fffb, 0x0767fffd, 0x0777fffe, 0x0787ffff, 0x0030000b, 0x0060001b, 0x00f000f7, 0x014001f7, 0x01a003f7, 0x020007f7, 0x02600ff7, 0x02c01ff7, 0x03303ff7, 0x03907ff7, 0x0421ffef, 0x14a3ffe8, 0x0587ffdf}, // const WORD16 ixheaacd_sfb_48_512[37] = {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 12, 12, 12, 12, 16, 20, 24, 28, 32, 32, 32, 32, 32, 32, 32, 52, -1}, // const WORD16 ixheaacd_sfb_32_512[38] = {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 12, 12, 12, 12, 16, 16, 16, 20, 24, 24, 28, 32, 32, 32, 32, 32, 32, 32, -1}, // const WORD16 ixheaacd_sfb_24_512[32] = {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 12, 12, 12, 16, 20, 24, 28, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -1}, // const WORD16 ixheaacd_sfb_48_480[36] = { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 12, 12, 12, 12, 12, 16, 16, 24, 28, 32, 32, 32, 32, 32, 32, 48, -1, }, // const WORD16 ixheaacd_sfb_32_480[38] = { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 12, 12, 12, 16, 16, 20, 24, 32, 32, 32, 32, 32, 32, 32, 32, -1, }, // const WORD16 ixheaacd_sfb_24_480[31] = { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 12, 12, 12, 16, 20, 24, 28, 32, 32, 32, 32, 32, 32, 32, 32, 32, -1, }, // static const WORD16 sfb_96_960[41] = { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 12, 12, 12, 12, 12, 16, 16, 24, 28, 36, 44, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, -1 }, /* 13 scfbands */ // static const WORD16 sfb_96_120[13] = { 4, 4, 4, 4, 4, 4, 8, 8, 8, 16, 28, 28, -1 }, /* 47 scfbands*/ // static const WORD16 sfb_64_960[47] = { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 12, 12, 12, 16, 16, 16, 20, 24, 24, 28, 36, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 16, -1 }, /* 49 scfbands */ // static const WORD16 sfb_48_960[50] = { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8, 12, 12, 12, 12, 16, 16, 20, 20, 24, 24, 28, 28, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -1 }, /* 14 scfbands */ // static const WORD16 sfb_48_120[15] = { 4, 4, 4, 4, 4, 8, 8, 8, 12, 12, 12, 16, 16, 8, -1 }, /* 47 scfbands */ // static const WORD16 sfb_24_960[47] = { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 12, 12, 12, 12, 16, 16, 16, 20, 20, 24, 24, 28, 28, 32, 36, 36, 40, 44, 48, 52, 52, 64, 64, 64, 64, -1 }, /* 15 scfbands */ // static const WORD16 sfb_24_120[16] = { 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 12, 12, 16, 16, 12, -1 }, /* 43 scfbands */ // static const WORD16 sfb_16_960[43] = { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 12, 12, 12, 12, 12, 12, 12, 12, 12, 16, 16, 16, 16, 20, 20, 20, 24, 24, 28, 28, 32, 36, 40, 40, 44, 48, 52, 56, 60, 64, 64, -1 }, /* 15 scfbands */ // static const WORD16 sfb_16_120[16] = { 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 12, 12, 16, 20, 12, -1 }, /* 40 scfbands */ // static const WORD16 sfb_8_960[41] = { 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 16, 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 24, 24, 24, 28, 28, 32, 36, 36, 40, 44, 48, 52, 56, 60, 64, 16, -1 }, /* 15 scfbands */ // static const WORD16 sfb_8_120[16] = { 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 12, 16, 20, 12, -1 }, }; // end of ia_aac_dec_huffman_tables_struct const ia_aac_dec_block_tables_struct ixheaacd_aac_block_tables = { // const WORD32 ixheaacd_pow_table_Q13[129] = {0 >> 4, 131072 >> 4, 330281 >> 4, 567116 >> 4, 832256 >> 4, 1120650 >> 4, 1429042 >> 4, 1755122 >> 4, 2097152 >> 4, 2453767 >> 4, 2823861 >> 4, 3206517 >> 4, 3600960 >> 4, 4006524 >> 4, 4422631 >> 4, 4848770 >> 4, 5284492 >> 4, 5729392 >> 4, 6183105 >> 4, 6645302 >> 4, 7115683 >> 4, 7593972 >> 4, 8079916 >> 4, 8573281 >> 4, 9073850 >> 4, 9581422 >> 4, 10095808 >> 4, 10616832 >> 4, 11144330 >> 4, 11678147 >> 4, 12218136 >> 4, 12764159 >> 4, 13316085 >> 4, 13873792 >> 4, 14437162 >> 4, 15006082 >> 4, 15580448 >> 4, 16160157 >> 4, 16745112 >> 4, 17335222 >> 4, 17930398 >> 4, 18530554 >> 4, 19135610 >> 4, 19745488 >> 4, 20360112 >> 4, 20979411 >> 4, 21603314 >> 4, 22231755 >> 4, 22864669 >> 4, 23501994 >> 4, 24143669 >> 4, 24789637 >> 4, 25439841 >> 4, 26094226 >> 4, 26752740 >> 4, 27415332 >> 4, 28081952 >> 4, 28752552 >> 4, 29427086 >> 4, 30105507 >> 4, 30787772 >> 4, 31473838 >> 4, 32163664 >> 4, 32857208 >> 4, 33554432 >> 4, 34255297 >> 4, 34959765 >> 4, 35667801 >> 4, 36379368 >> 4, 37094431 >> 4, 37812958 >> 4, 38534914 >> 4, 39260268 >> 4, 39988988 >> 4, 40721043 >> 4, 41456403 >> 4, 42195038 >> 4, 42936921 >> 4, 43682022 >> 4, 44430314 >> 4, 45181770 >> 4, 45936364 >> 4, 46694070 >> 4, 47454862 >> 4, 48218716 >> 4, 48985607 >> 4, 49755512 >> 4, 50528406 >> 4, 51304267 >> 4, 52083073 >> 4, 52864802 >> 4, 53649431 >> 4, 54436939 >> 4, 55227306 >> 4, 56020511 >> 4, 56816534 >> 4, 57615355 >> 4, 58416954 >> 4, 59221313 >> 4, 60028412 >> 4, 60838233 >> 4, 61650759 >> 4, 62465970 >> 4, 63283850 >> 4, 64104381 >> 4, 64927547 >> 4, 65753329 >> 4, 66581713 >> 4, 67412681 >> 4, 68246218 >> 4, 69082308 >> 4, 69920936 >> 4, 70762086 >> 4, 71605743 >> 4, 72451892 >> 4, 73300519 >> 4, 74151609 >> 4, 75005149 >> 4, 75861124 >> 4, 76719520 >> 4, 77580324 >> 4, 78443523 >> 4, 79309103 >> 4, 80177051 >> 4, 81047354 >> 4, 81920000 >> 4, 82794977 >> 4, 83672271 >> 4, 84551871 >> 4}, // const WORD16 scale_table[4] = { 16384, 19484, 23171, 27555}, // const WORD8 tns_max_bands_tbl[12][2] = { // Long //Short {31, 9}, // 96000 {31, 9}, // 88200 {34, 10}, // 64000 {40, 14}, // 48000 {42, 14}, // 44100 {51, 14}, // 32000 {46, 14}, // 24000 {46, 14}, // 22050 {42, 14}, // 16000 {42, 14}, // 12000 {42, 14}, // 11025 {39, 14} // 8000 }, // const WORD16 tns_coeff3_16[8] = {(WORD16)-0x7e0e, (WORD16)-0x6eda, (WORD16)-0x5247, (WORD16)-0x2bc7, (WORD16)0x0000, (WORD16)0x378a, (WORD16)0x6413, (WORD16)0x7cca}, // const WORD16 tns_coeff4_16[16] = {(WORD16)-0x7f74, (WORD16)-0x7b1d, (WORD16)-0x7295, (WORD16)-0x6625, (WORD16)-0x563c, (WORD16)-0x4362, (WORD16)-0x2e3d, (WORD16)-0x1785, (WORD16)0x0000, (WORD16)0x1a9d, (WORD16)0x3410, (WORD16)0x4b3d, (WORD16)0x5f1f, (WORD16)0x6eda, (WORD16)0x79bc, (WORD16)0x7f4c}, // const WORD32 scale_mant_tab[PNS_SCALE_MANT_TAB_SIZE] = {0x08000000, 0x09837f05, 0x0b504f33, 0x0d744fcc}, // const WORD32 tns_coeff3[8] = { -2114858540, -1859775364, -1380375817, -734482679, 0, 931758215, 1678970362, 2093641723, }, // const WORD32 tns_coeff4[16] = { -2138322869, -2065504899, -1922348549, -1713729017, -1446750457, -1130504584, -775760644, -394599111, 0, 446486976, 873460283, 1262259191, 1595891328, 1859775364, 2042378368, 2135719561, }, // const WORD32 tns_coeff3_32[8] = {(WORD32)-0x7e0e2e31, (WORD32)-0x6ed9eba0, (WORD32)-0x5246dd48, (WORD32)-0x2bc750e8, (WORD32)0x00000000, (WORD32)0x3789809a, (WORD32)0x64130dd3, (WORD32)0x7cca7014}, // const WORD32 tns_coeff4_32[16] = {(WORD32)-0x7f7437ac, (WORD32)-0x7b1d1a47, (WORD32)-0x7294b5f1, (WORD32)-0x66256db1, (WORD32)-0x563ba8a9, (WORD32)-0x4362210d, (WORD32)-0x2e3d2aba, (WORD32)-0x17851aac, (WORD32)0x00000000, (WORD32)0x1a9cd9ac, (WORD32)0x340ff241, (WORD32)0x4b3c8c11, (WORD32)0x5f1f5ea0, (WORD32)0x6ed9eba0, (WORD32)0x79bc384c, (WORD32)0x7f4c7e52}, // const WORD32 tns_max_bands_tbl_usac[(1<> 1] = {0, 160, 80, 96, 16, 176, 192, 112, 32, 48, 208, 128, 144, 64, 224, 225, 145, 65, 81, 1, 161, 177, 97, 17, 33, 193, 113, 129, 49, 209, 210, 130, 50, 66, 226, 146, 162, 82, 2, 18, 178, 98, 114, 34, 194, 195, 115, 35, 51, 211, 131, 147, 67, 227, 3, 163, 83, 99, 19, 179, 180, 100, 20, 36, 196, 116, 132, 52, 212, 228, 148, 68, 84, 4, 164, 165, 85, 5, 21, 181, 101, 117, 37, 197, 213, 133, 53, 69, 229, 149, 150, 70, 230, 6, 166, 86, 102, 22, 182, 198, 118, 38, 54, 214, 134, 135, 55, 215, 231, 151, 71, 87, 7, 167, 183, 103, 23, 39, 199, 119, 120, 40, 200, 216, 136, 56, 72, 232, 152, 168, 88, 8, 24, 184, 104, 105, 25, 185, 201, 121, 41, 57, 217, 137, 153, 73, 233, 9, 169, 89, 90, 10, 170, 186, 106, 26, 42, 202, 122, 138, 58, 218, 234, 154, 74, 75, 235, 155, 171, 91, 11, 27, 187, 107, 123, 43, 203, 219, 139, 59, 60, 220, 140, 156, 76, 236, 12, 172, 92, 108, 28, 188, 204, 124, 44, 45, 205, 125, 141, 61, 221, 237, 157, 77, 93, 13, 173, 189, 109, 29, 30, 190, 110, 126, 46, 206, 222, 142, 62, 78, 238, 158, 174, 94, 14, 15, 175, 95, 111, 31, 191, 207, 127, 47, 63, 223, 143, 159, 79, 239}, // WORD32 cosine_array_960[480] = { 2147482880, 2147425408, 1756906, 15812012, 2147275904, 2147034496, 29866440, 43919588, 2146701056, 2146275712, 57970856, 72019640, 2145758336, 2145149056, 86065336, 100107352, 2144447872, 2143654912, 114145072, 128177912, 2142770048, 2141793536, 142205248, 156226512, 2140725120, 2139565056, 170241056, 184248336, 2138313344, 2136969984, 198247712, 212238592, 2135535104, 2134008832, 226220384, 240192480, 2132391040, 2130681984, 254154288, 268105216, 2128881536, 2126990080, 282044640, 295972000, 2125007360, 2122933632, 309886688, 323788096, 2120769024, 2118513536, 337675616, 351548704, 2116167296, 2113730432, 365406720, 379249056, 2111202944, 2108585088, 393075168, 406884448, 2105876864, 2103078528, 420676288, 434450112, 2100189952, 2097211520, 448205344, 461941344, 2094143232, 2090985216, 475657568, 489353408, 2087737600, 2084400640, 503028320, 516681664, 2080974336, 2077458944, 530312864, 543921344, 2073854464, 2070161280, 557506560, 571067840, 2066379264, 2062508800, 584604672, 598116480, 2058550016, 2054503040, 611602688, 625062656, 2050368000, 2046145152, 638495872, 651901696, 2041834752, 2037436800, 665279680, 678629120, 2032951552, 2028379264, 691949440, 705240192, 2023720064, 2018974208, 718500672, 731730432, 2014141824, 2009223168, 744928832, 758095296, 2004218368, 1999127808, 771229312, 784330240, 1993951616, 1988690048, 797397632, 810430848, 1983343232, 1977911424, 823429312, 836392576, 1972394880, 1966793856, 849319936, 862210944, 1961108608, 1955339392, 875065024, 887881600, 1949486464, 1943549824, 900660160, 913400192, 1937530112, 1931427328, 926100992, 938762176, 1925241856, 1918973824, 951383168, 963963392, 1912623616, 1906191616, 976502272, 988999360, 1899677824, 1893082624, 1001454080, 1013865920, 1886406400, 1879649408, 1026234304, 1038558720, 1872811776, 1865894016, 1050838720, 1063073600, 1858896256, 1851819008, 1075262976, 1087406336, 1844662272, 1837426560, 1099503104, 1111552768, 1830112256, 1822719360, 1123554816, 1135508736, 1815248512, 1807699840, 1147414016, 1159270016, 1800073856, 1792370688, 1171076480, 1182832768, 1784590720, 1776734336, 1194538496, 1206192896, 1768801792, 1760793472, 1217795712, 1229346304, 1752709760, 1744551040, 1240844288, 1252289024, 1736317440, 1728009600, 1263680256, 1275017216, 1719627648, 1711172096, 1286299648, 1297526912, 1702643200, 1694041344, 1308698624, 1319814272, 1685367040, 1676620416, 1330873472, 1341875584, 1667801984, 1658912128, 1352820224, 1363706880, 1649951232, 1640919680, 1374535168, 1385304576, 1631817728, 1622646016, 1396014592, 1406664832, 1613404672, 1604094336, 1417254784, 1427784064, 1594715136, 1585267712, 1438252160, 1448658688, 1575752448, 1566169600, 1459003136, 1469285120, 1556519680, 1546803072, 1479504128, 1489659776, 1537020160, 1527171456, 1499751552, 1509779200, 1517257344, 1507278336, 1519742080, 1529639936, 1497234560, 1487126784, 1539472128, 1549238528, 1476955264, 1466720512, 1558938496, 1568571648, 1456422784, 1446062848, 1578137728, 1587636096, 1435640832, 1425157376, 1597066496, 1606428416, 1414612992, 1404007808, 1615721600, 1624945536, 1393342592, 1382617728, 1634099840, 1643184256, 1371833472, 1360990592, 1652198144, 1661141376, 1350089344, 1339130368, 1670013440, 1678813824, 1328113920, 1317040640, 1687542400, 1696198656, 1305910912, 1294725248, 1704782336, 1713292928, 1283484032, 1272188032, 1721730176, 1730093568, 1260837376, 1249432832, 1738382848, 1746597760, 1237974656, 1226463488, 1754737792, 1762802688, 1214899712, 1203283968, 1770792064, 1778705536, 1191616768, 1179898368, 1786542976, 1794303744, 1168129536, 1156310656, 1801987584, 1809594368, 1144442112, 1132524672, 1817123584, 1824574976, 1120558720, 1108544640, 1831948160, 1839243008, 1096483200, 1084374784, 1846458880, 1853595776, 1072219904, 1060019072, 1860653312, 1867630976, 1047772800, 1035481728, 1874528768, 1881346176, 1023146240, 1010766912, 1888083072, 1894739072, 998344320, 985878976, 1901313920, 1907807232, 973371392, 960822080, 1914219008, 1920548608, 948231616, 935600576, 1926796032, 1932960896, 922929408, 910218752, 1939042944, 1945041920, 897469056, 884680960, 1950957568, 1956789632, 871854912, 858991552, 1962537856, 1968202112, 846091392, 833155008, 1973782016, 1979277312, 820182912, 807175680, 1984687872, 1990013440, 794133888, 781058048, 1995253760, 2000408576, 767948800, 754806592, 2005477632, 2010460928, 741632064, 728425792, 2015357952, 2020168832, 715188352, 701920192, 2024893056, 2029530496, 688622016, 675294336, 2034081024, 2038544512, 661937728, 648552768, 2042920576, 2047209216, 635140032, 621700032, 2051410048, 2055523072, 608233472, 594740864, 2059548032, 2063484800, 581222720, 567679680, 2067333120, 2071092864, 554112384, 540521280, 2074763904, 2078346112, 526907072, 513270272, 2081839360, 2085243264, 499611488, 485931296, 2088557952, 2091783168, 472230304, 458509088, 2094918784, 2097964544, 444768224, 431008288, 2100920576, 2103786496, 417229920, 403433664, 2106562432, 2109248000, 389620128, 375789888, 2111843328, 2114348160, 361943552, 348081728, 2116762368, 2119085952, 334204992, 320313920, 2121318656, 2123460608, 306409152, 292491232, 2125511552, 2127471488, 278560800, 264618448, 2129340288, 2131117824, 250664736, 236700304, 2132804096, 2134398976, 222725728, 208741600, 2135902464, 2137314432, 194748544, 180747136, 2138634880, 2139863680, 166737984, 152721696, 2141000832, 2142046208, 138698864, 124670096, 2142999936, 2143861760, 110635984, 96597136, 2144631808, 2145309952, 82554144, 68507616, 2145896320, 2146390656, 54458156, 40406360, 2146793088, 2147103488, 26352836, 12298181, 2147321984, 2147448448, }, // WORD32 w_16[24] = { 0x00000000, 0x7fffffff, 0x00000000, 0x7fffffff, 0x00000000, 0x7fffffff, 0x30fbc54d, 0x7641af3d, 0x5a82799a, 0x5a82799a, 0x7641af3d, 0x30fbc54d, 0x5a82799a, 0x5a82799a, 0x7fffffff, 0x00000000, 0x5a82799a, 0xa57d8667, 0x7641af3d, 0x30fbc54d, 0x5a82799a, 0xa57d8667, 0xcf043ab3, 0x89be50c5, }, // WORD32 window_sine_480_eld[1920]; {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 72, 118, 176, 239, 307, 378, 451, 524, 597, 669, 741, 812, 883, 954, 1024, 1095, 1165, 1235, 1305, 1375, 1444, 1514, 1583, 1652, 1722, 1792, 1863, 1933, 2005, 2077, 2150, 2224, 2299, 2374, 2451, 2529, 2607, 2686, 2766, 2847, 2928, 3009, 3091, 3174, 3256, 3339, 3423, 3507, 3591, 3676, 3760, 3846, 3932, 4018, 4104, 4191, 4278, 4366, 4454, 4542, 4631, 4720, 4809, 4899, 4988, 5078, 5168, 5257, 5347, 5436, 5524, 5613, 5702, 5790, 5878, 5967, 6056, 6144, 6233, 6321, 6410, 6498, 6586, 6673, 6761, 6848, 6934, 7020, 7106, 7192, 7276, 7361, 7445, 7529, 7614, 7698, 7781, 7865, 7947, 8030, 8112, 8193, 8274, 8354, 8434, 8514, 8594, 8673, 8751, 8830, 8908, 8985, 9063, 9139, 9216, 9292, 9367, 9442, 9517, 9621, 9695, 9769, 9842, 9915, 9988, 10060, 10132, 10203, 10274, 10345, 10415, 10485, 10554, 10623, 10691, 10760, 10827, 10895, 10962, 11029, 11095, 11161, 11226, 11291, 11356, 11420, 11484, 11548, 11611, 11674, 11736, 11798, 11859, 11921, 11981, 12042, 12102, 12161, 12220, 12279, 12337, 12395, 12452, 12509, 12565, 12621, 12677, 12732, 12787, 12841, 12895, 12948, 13000, 13053, 13104, 13156, 13206, 13257, 13306, 13356, 13404, 13452, 13500, 13547, 13594, 13639, 13685, 13730, 13774, 13818, 13861, 13904, 13946, 13988, 14029, 14069, 14109, 14148, 14187, 14225, 14263, 14300, 14336, 14372, 14408, 14443, 14477, 14511, 14544, 14577, 14609, 14641, 14673, 14704, 14734, 14764, 14794, 14823, 14852, 14881, 14909, 14938, 14966, 14994, 15021, 15049, 15076, 15104, 15131, 15159, 15186, 15213, 15239, 15265, 15289, 15312, 15333, 15351, 15372, 15382, 15386, 15392, 15398, 15404, 15411, 15418, 15425, 15431, 15438, 15444, 15451, 15458, 15464, 15471, 15478, 15485, 15492, 15499, 15505, 15512, 15519, 15526, 15534, 15541, 15548, 15555, 15562, 15569, 15577, 15584, 15592, 15599, 15606, 15614, 15621, 15629, 15637, 15644, 15652, 15660, 15668, 15675, 15683, 15691, 15699, 15707, 15715, 15723, 15731, 15740, 15748, 15756, 15764, 15773, 15781, 15789, 15798, 15806, 15815, 15824, 15832, 15841, 15849, 15858, 15867, 15876, 15884, 15893, 15902, 15911, 15920, 15929, 15938, 15947, 15956, 15965, 15974, 15983, 15993, 16002, 16011, 16020, 16030, 16039, 16048, 16057, 16067, 16076, 16086, 16095, 16104, 16114, 16123, 16133, 16142, 16152, 16161, 16171, 16181, 16190, 16200, 16209, 16219, 16229, 16238, 16248, 16258, 16267, 16277, 16287, 16296, 16306, 16316, 16326, 16335, 16345, 16355, 16365, 16374, 16394, 16403, 16413, 16423, 16433, 16443, 16452, 16462, 16472, 16482, 16492, 16502, 16511, 16521, 16531, 16541, 16551, 16561, 16570, 16580, 16590, 16600, 16610, 16619, 16629, 16639, 16649, 16659, 16668, 16678, 16688, 16698, 16707, 16717, 16727, 16737, 16746, 16756, 16766, 16775, 16785, 16795, 16804, 16814, 16823, 16833, 16842, 16852, 16861, 16871, 16880, 16890, 16899, 16909, 16918, 16927, 16937, 16946, 16955, 16964, 16974, 16983, 16992, 17001, 17010, 17019, 17028, 17037, 17046, 17055, 17064, 17072, 17081, 17090, 17099, 17107, 17116, 17125, 17133, 17142, 17150, 17159, 17167, 17175, 17184, 17192, 17200, 17209, 17217, 17225, 17233, 17241, 17249, 17257, 17265, 17273, 17281, 17289, 17297, 17305, 17312, 17320, 17328, 17335, 17343, 17351, 17358, 17366, 17373, 17381, 17388, 17396, 17403, 17411, 17418, 17426, 17433, 17440, 17446, 17452, 17454, 17449, 17444, 17437, 17428, 17418, 17407, 17396, 17385, 17374, 17363, 17352, 17340, 17329, 17316, 17304, 17291, 17278, 17264, 17250, 17236, 17221, 17207, 17193, 17179, 17165, 17150, 17136, 17121, 17107, 17091, 17076, 17059, 17042, 17024, 17005, 16986, 16966, 16945, 16923, 16901, 16878, 16855, 16831, 16807, 16783, 16759, 16734, 16709, 16684, 16658, 16633, 16607, 16581, 16554, 16527, 16500, 16471, 16443, 16414, 16384, 16353, 16322, 16290, 16257, 16224, 16190, 16155, 16120, 16085, 16050, 16016, 15981, 15947, 15912, 15878, 15843, 15807, 15771, 15735, 15697, 15659, 15621, 15581, 15542, 15502, 15461, 15421, 15380, 15339, 15299, 15259, 15219, 15180, 15140, 15099, 15058, 15016, 14974, 14931, 14887, 14844, 14800, 14757, 14714, 14671, 14628, 14584, 14541, 14497, 14453, 14408, 14364, 14319, 14274, 14229, 14184, 14139, 14094, 14049, 14004, 13958, 13912, 13865, 13819, 13772, 13725, 13678, 13631, 13584, 13537, 13491, 13444, 13396, 13349, 13301, 13253, 13205, 13156, 13106, 13057, 13008, 12960, 12912, 12864, 12817, 12770, 12723, 12675, 12626, 12576, 12526, 12475, 12424, 12373, 12321, 12270, 12220, 12170, 12120, 12071, 12022, 11974, 11926, 11878, 11829, 11780, 11730, 11679, 11627, 11575, 11521, 11467, 11414, 11360, 11307, 11255, 11203, 11152, 11101, 11051, 11001, 10952, 10903, 10853, 10804, 10755, 10705, 10656, 10605, 10554, 10503, 10450, 10397, 10343, 10289, 10234, 10179, 10124, 10069, 10014, 9960, 9907, 9854, 9803, 9752, 9703, 9654, 9606, 9559, 9513, 9466, 9419, 9371, 9322, 9271, 9219, 9165, 9109, 9053, 8996, 8939, 8883, 8828, 8775, 8723, 8674, 8625, 8578, 8532, 8486, 8440, 8392, 8344, 8295, 8244, 8192, 8140, 8088, 8036, 7983, 7931, 7879, 7829, 7779, 7731, 7682, 7634, 7586, 7537, 7488, 7439, 7390, 7340, 7290, 7241, 7192, 7144, 7096, 7049, 7001, 6953, 6904, 6856, 6807, 6757, 6708, 6659, 6610, 6561, 6513, 6465, 6418, 6370, 6323, 6277, 6230, 6183, 6137, 6090, 6044, 5997, 5951, 5905, 5858, 5812, 5766, 5720, 5674, 5628, 5583, 5537, 5491, 5446, 5401, 5355, 5310, 5265, 5221, 5175, 5130, 5084, 5037, 4991, 4945, 4899, 4853, 4807, 4761, 4716, 4671, 4626, 4581, 4536, 4491, 4447, 4403, 4359, 4315, 4271, 4228, 4185, 4142, 4099, 4056, 4014, 3972, 3929, 3887, 3846, 3804, 3762, 3721, 3680, 3639, 3598, 3558, 3517, 3477, 3437, 3397, 3357, 3318, 3278, 3239, 3199, 3160, 3122, 3083, 3044, 3006, 2967, 2929, 2891, 2853, 2815, 2778, 2741, 2704, 2668, 2620, 2585, 2550, 2515, 2481, 2447, 2413, 2380, 2347, 2314, 2281, 2248, 2215, 2183, 2151, 2119, 2087, 2055, 2024, 1993, 1962, 1931, 1901, 1870, 1840, 1810, 1781, 1751, 1722, 1693, 1664, 1636, 1608, 1579, 1552, 1524, 1497, 1470, 1443, 1416, 1390, 1364, 1338, 1312, 1287, 1261, 1236, 1212, 1187, 1163, 1139, 1115, 1092, 1068, 1045, 1022, 1000, 977, 955, 934, 912, 891, 869, 848, 828, 807, 787, 767, 747, 728, 709, 690, 671, 652, 634, 616, 598, 581, 563, 546, 529, 513, 496, 480, 464, 448, 433, 417, 402, 387, 372, 358, 344, 329, 316, 302, 289, 276, 263, 251, 238, 226, 214, 203, 191, 180, 169, 158, 147, 137, 127, 117, 107, 97, 88, 78, 70, 61, 52, 44, 36, 28, 21, 13, 6, -2, -9, -16, -23, -30, -37, -43, -49, -55, -60, -65, -69, -73, -78, -81, -85, -89, -93, -97, -101, -105, -109, -113, -116, -120, -123, -126, -129, -131, -133, -135, -137, -138, -139, -140, -141, -142, -143, -143, -144, -144, -145, -145, -146, -146, -147, -147, -147, -147, -147, -147, -147, -146, -146, -145, -144, -143, -141, -140, -139, -137, -135, -134, -132, -130, -129, -127, -125, -123, -122, -120, -118, -116, -114, -111, -109, -107, -104, -102, -99, -96, -94, -91, -88, -86, -83, -81, -78, -75, -72, -70, -67, -64, -61, -58, -55, -52, -49, -46, -44, -41, -38, -35, -32, -29, -26, -23, -20, -17, -14, -11, -9, -6, -3, 0, 0, 3, 6, 8, 11, 14, 17, 19, 22, 24, 27, 29, 32, 34, 37, 39, 42, 44, 46, 48, 50, 53, 55, 57, 59, 61, 62, 64, 66, 67, 69, 71, 72, 74, 75, 76, 78, 79, 80, 81, 82, 83, 84, 85, 86, 86, 87, 87, 88, 88, 88, 89, 89, 89, 90, 90, 90, 90, 90, 90, 90, 89, 89, 88, 88, 87, 86, 85, 85, 84, 83, 82, 81, 80, 78, 77, 76, 75, 74, 73, 72, 70, 69, 68, 66, 65, 63, 61, 59, 57, 55, 53, 51, 49, 47, 44, 42, 40, 38, 36, 34, 32, 30, 28, 26, 23, 21, 19, 16, 14, 11, 8, 6, 3, 1, -2, -4, -7, -9, -12, -14, -17, -20, -22, -25, -27, -30, -32, -35, -38, -40, -43, -45, -48, -50, -53, -55, -58, -60, -63, -65, -68, -70, -73, -75, -78, -80, -82, -85, -87, -90, -92, -94, -97, -99, -102, -104, -106, -109, -111, -113, -116, -118, -121, -123, -125, -128, -130, -133, -135, -138, -140, -143, -145, -148, -151, -153, -156, -159, -162, -165, -168, -170, -173, -176, -178, -181, -183, -185, -188, -190, -192, -194, -196, -197, -199, -201, -202, -204, -205, -206, -208, -209, -210, -211, -212, -213, -214, -214, -215, -216, -216, -217, -218, -218, -218, -219, -219, -219, -219, -219, -219, -220, -219, -219, -219, -219, -219, -218, -218, -218, -217, -217, -216, -216, -215, -214, -214, -213, -212, -214, -214, -213, -212, -211, -211, -210, -209, -208, -207, -206, -204, -203, -202, -201, -199, -198, -196, -195, -193, -192, -190, -189, -187, -185, -184, -182, -180, -178, -176, -175, -173, -171, -169, -167, -165, -163, -162, -160, -158, -156, -154, -152, -150, -149, -147, -145, -143, -142, -140, -139, -137, -135, -134, -133, -131, -130, -129, -127, -126, -125, -123, -122, -120, -118, -117, -115, -113, -111, -109, -107, -105, -103, -100, -98, -96, -94, -91, -89, -87, -84, -82, -79, -77, -75, -72, -70, -67, -65, -63, -60, -58, -56, -53, -51, -49, -47, -44, -42, -40, -38, -36, -34, -32, -30, -28, -26, -25, -23, -21, -20, -18, -16, -15, -13, -12, -10, -9, -8, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 6, 7, 8, 8, 9, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 11, 11, 11, 11, 11, 10, 10, 10, 10, 9, 9, 9, 9, 8, 8, 8, 8, 7, 7, 7, 6, 6, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 1, 1, 1, 0, 0, 0, -1, -1, -1, -2, -2, -2, -3, -3, -4, -4, -5, -5, -5, -6, -6, -7, -7, -7, -8, -8, -9, -9, -10, -10, -10, -11, -11, -12, -12, -13, -13, -13, -14, -14, -15, -15, -15, -16, -16, -16, -17, -17, -17, -18, -18, -18, -19, -19, -19, -19, -20, -20, -20, -20, -21, -21, -21, -21, -21, -22, -22, -22, -22, -22, -22, -22, -22, -22, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -22, -22, -22, -22, -22, -22, -22, -22, -22, -21, -21, -21, -21, -21, -21, -20, -20, -20, -20, -20, -19, -19, -19, -19, -19, -18, -18, -18, -18, -17}, // WORD16 window_sine_512_eld[2048]; {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 93, 139, 192, 251, 314, 380, 447, 515, 583, 651, 718, 784, 849, 914, 979, 1044, 1109, 1174, 1239, 1304, 1368, 1433, 1498, 1563, 1628, 1693, 1758, 1824, 1890, 1956, 2022, 2090, 2157, 2226, 2295, 2365, 2436, 2508, 2580, 2653, 2727, 2802, 2877, 2952, 3029, 3105, 3182, 3260, 3338, 3416, 3494, 3573, 3652, 3731, 3811, 3891, 3971, 4052, 4133, 4214, 4296, 4378, 4460, 4542, 4625, 4708, 4791, 4874, 4957, 5041, 5125, 5209, 5293, 5377, 5460, 5544, 5627, 5710, 5794, 5877, 5960, 6042, 6125, 6208, 6291, 6373, 6456, 6538, 6620, 6702, 6784, 6865, 6947, 7028, 7108, 7189, 7269, 7349, 7428, 7507, 7586, 7665, 7743, 7821, 7899, 7976, 8054, 8131, 8207, 8283, 8359, 8434, 8510, 8584, 8659, 8733, 8807, 8880, 8953, 9026, 9099, 9171, 9243, 9314, 9385, 9456, 9526, 9583, 9653, 9723, 9792, 9860, 9929, 9997, 10064, 10132, 10199, 10265, 10331, 10397, 10463, 10528, 10593, 10657, 10721, 10785, 10849, 10912, 10974, 11037, 11099, 11161, 11222, 11283, 11344, 11404, 11464, 11524, 11583, 11642, 11701, 11759, 11817, 11875, 11932, 11989, 12045, 12102, 12157, 12213, 12268, 12322, 12377, 12431, 12484, 12537, 12590, 12642, 12694, 12746, 12797, 12848, 12898, 12948, 12997, 13046, 13095, 13143, 13191, 13238, 13285, 13331, 13377, 13422, 13467, 13512, 13556, 13599, 13642, 13685, 13727, 13769, 13810, 13850, 13891, 13930, 13969, 14008, 14046, 14084, 14121, 14158, 14194, 14230, 14265, 14300, 14334, 14368, 14401, 14434, 14466, 14498, 14530, 14561, 14591, 14621, 14651, 14680, 14709, 14738, 14766, 14794, 14821, 14849, 14876, 14902, 14929, 14955, 14981, 15007, 15033, 15059, 15085, 15111, 15137, 15162, 15188, 15213, 15238, 15262, 15285, 15307, 15327, 15345, 15361, 15384, 15388, 15394, 15400, 15406, 15412, 15418, 15425, 15431, 15437, 15443, 15449, 15456, 15462, 15468, 15475, 15481, 15487, 15494, 15500, 15507, 15513, 15520, 15526, 15533, 15540, 15546, 15553, 15560, 15567, 15574, 15580, 15587, 15594, 15601, 15608, 15615, 15622, 15630, 15637, 15644, 15651, 15658, 15666, 15673, 15680, 15688, 15695, 15703, 15710, 15718, 15725, 15733, 15741, 15748, 15756, 15764, 15772, 15780, 15787, 15795, 15803, 15811, 15819, 15827, 15835, 15843, 15852, 15860, 15868, 15876, 15884, 15893, 15901, 15909, 15918, 15926, 15935, 15943, 15952, 15960, 15969, 15977, 15986, 15994, 16003, 16012, 16020, 16029, 16038, 16046, 16055, 16064, 16073, 16081, 16090, 16099, 16108, 16117, 16126, 16135, 16144, 16152, 16161, 16170, 16179, 16188, 16197, 16206, 16215, 16224, 16233, 16242, 16251, 16261, 16270, 16279, 16288, 16297, 16306, 16315, 16324, 16334, 16343, 16352, 16361, 16370, 16379, 16389, 16398, 16407, 16416, 16425, 16435, 16444, 16453, 16462, 16472, 16481, 16490, 16499, 16508, 16518, 16527, 16536, 16545, 16554, 16564, 16573, 16582, 16591, 16600, 16610, 16619, 16628, 16637, 16646, 16656, 16665, 16674, 16683, 16692, 16701, 16710, 16720, 16729, 16738, 16747, 16756, 16765, 16774, 16783, 16792, 16801, 16810, 16819, 16828, 16837, 16846, 16855, 16864, 16873, 16882, 16890, 16899, 16908, 16917, 16926, 16934, 16943, 16952, 16960, 16969, 16978, 16986, 16995, 17003, 17012, 17020, 17029, 17037, 17045, 17054, 17062, 17070, 17078, 17087, 17095, 17103, 17111, 17119, 17127, 17135, 17143, 17151, 17159, 17167, 17175, 17183, 17191, 17198, 17206, 17214, 17221, 17229, 17237, 17244, 17252, 17259, 17267, 17274, 17282, 17289, 17296, 17304, 17311, 17318, 17325, 17333, 17340, 17347, 17354, 17361, 17368, 17375, 17382, 17389, 17396, 17403, 17410, 17417, 17424, 17431, 17438, 17444, 17449, 17446, 17444, 17440, 17434, 17426, 17417, 17408, 17398, 17388, 17377, 17367, 17357, 17347, 17336, 17326, 17315, 17303, 17292, 17280, 17267, 17254, 17241, 17228, 17215, 17202, 17188, 17175, 17162, 17149, 17135, 17122, 17108, 17094, 17080, 17065, 17049, 17033, 17016, 16999, 16980, 16962, 16942, 16922, 16901, 16880, 16858, 16836, 16814, 16792, 16769, 16746, 16723, 16699, 16676, 16652, 16628, 16604, 16579, 16555, 16529, 16504, 16478, 16451, 16424, 16397, 16368, 16340, 16310, 16280, 16249, 16218, 16186, 16154, 16121, 16088, 16055, 16023, 15990, 15958, 15926, 15894, 15861, 15828, 15795, 15761, 15727, 15692, 15656, 15620, 15583, 15546, 15508, 15471, 15433, 15395, 15357, 15319, 15281, 15244, 15207, 15169, 15132, 15094, 15055, 15016, 14976, 14936, 14895, 14855, 14814, 14773, 14733, 14692, 14652, 14611, 14570, 14530, 14488, 14447, 14406, 14364, 14322, 14280, 14238, 14195, 14153, 14111, 14068, 14025, 13983, 13940, 13897, 13854, 13810, 13767, 13723, 13680, 13636, 13593, 13549, 13505, 13462, 13418, 13374, 13330, 13286, 13241, 13195, 13150, 13104, 13058, 13013, 12968, 12923, 12879, 12835, 12792, 12748, 12703, 12658, 12612, 12565, 12518, 12471, 12423, 12376, 12328, 12281, 12233, 12187, 12140, 12095, 12049, 12004, 11959, 11915, 11870, 11825, 11779, 11732, 11684, 11635, 11586, 11536, 11486, 11435, 11385, 11336, 11287, 11239, 11191, 11143, 11096, 11050, 11003, 10957, 10911, 10865, 10819, 10773, 10727, 10680, 10633, 10585, 10537, 10488, 10439, 10389, 10338, 10287, 10236, 10184, 10133, 10081, 10030, 9979, 9929, 9880, 9832, 9784, 9737, 9691, 9646, 9602, 9558, 9514, 9470, 9426, 9381, 9334, 9286, 9237, 9186, 9134, 9081, 9028, 8974, 8921, 8869, 8818, 8769, 8721, 8675, 8630, 8586, 8542, 8499, 8455, 8410, 8365, 8318, 8270, 8222, 8173, 8124, 8074, 8026, 7976, 7926, 7878, 7831, 7784, 7738, 7693, 7647, 7602, 7556, 7509, 7463, 7416, 7369, 7322, 7275, 7228, 7182, 7137, 7091, 7046, 7001, 6955, 6909, 6863, 6817, 6770, 6723, 6676, 6629, 6583, 6537, 6491, 6446, 6401, 6356, 6311, 6267, 6222, 6178, 6133, 6089, 6045, 6000, 5956, 5912, 5868, 5824, 5780, 5736, 5692, 5648, 5604, 5560, 5516, 5473, 5429, 5386, 5343, 5300, 5257, 5214, 5171, 5128, 5085, 5043, 5000, 4958, 4915, 4873, 4831, 4789, 4747, 4705, 4664, 4622, 4581, 4539, 4498, 4457, 4416, 4375, 4334, 4293, 4253, 4212, 4172, 4132, 4092, 4052, 4012, 3972, 3933, 3893, 3854, 3815, 3776, 3737, 3699, 3660, 3622, 3583, 3545, 3507, 3469, 3432, 3394, 3357, 3319, 3282, 3245, 3208, 3171, 3135, 3098, 3062, 3025, 2989, 2953, 2917, 2881, 2846, 2810, 2775, 2740, 2706, 2671, 2638, 2604, 2572, 2539, 2507, 2475, 2443, 2411, 2380, 2349, 2318, 2287, 2256, 2226, 2195, 2165, 2135, 2105, 2075, 2046, 2016, 1987, 1958, 1929, 1901, 1872, 1844, 1816, 1788, 1760, 1733, 1706, 1679, 1652, 1625, 1599, 1572, 1546, 1521, 1495, 1470, 1444, 1419, 1395, 1370, 1346, 1322, 1298, 1274, 1250, 1227, 1204, 1181, 1158, 1136, 1114, 1092, 1070, 1048, 1027, 1005, 984, 964, 943, 923, 903, 883, 863, 843, 824, 805, 786, 767, 749, 730, 712, 694, 677, 659, 642, 625, 608, 592, 575, 559, 543, 527, 512, 496, 481, 466, 451, 436, 422, 408, 394, 380, 366, 352, 339, 326, 313, 301, 288, 276, 264, 252, 241, 229, 218, 207, 196, 185, 175, 165, 155, 145, 135, 125, 116, 107, 98, 89, 80, 72, 63, 55, 48, 40, 33, 25, 18, 11, 4, -3, -9, -16, -23, -29, -35, -41, -47, -53, -58, -62, -67, -71, -75, -79, -82, -86, -89, -93, -97, -101, -104, -108, -112, -115, -118, -122, -125, -127, -130, -132, -134, -136, -137, -138, -139, -140, -141, -142, -143, -143, -144, -144, -145, -145, -146, -146, -146, -147, -147, -147, -147, -147, -147, -147, -146, -146, -145, -144, -143, -142, -141, -140, -138, -137, -135, -134, -132, -130, -129, -127, -126, -124, -122, -121, -119, -117, -115, -113, -111, -109, -106, -104, -102, -99, -97, -94, -92, -89, -87, -85, -82, -80, -77, -74, -72, -69, -67, -64, -61, -59, -56, -53, -50, -48, -45, -42, -39, -37, -34, -31, -28, -26, -23, -20, -17, -15, -12, -9, -7, -4, -1, 1, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 31, 34, 36, 38, 40, 43, 45, 47, 49, 51, 53, 55, 57, 59, 60, 62, 64, 65, 67, 69, 70, 71, 73, 74, 76, 77, 78, 79, 81, 82, 83, 84, 84, 85, 86, 86, 87, 88, 88, 88, 89, 89, 89, 90, 90, 90, 90, 91, 91, 91, 91, 90, 90, 90, 89, 89, 88, 88, 87, 86, 85, 84, 83, 83, 82, 81, 80, 79, 78, 77, 75, 74, 73, 72, 71, 70, 68, 67, 66, 64, 62, 61, 59, 57, 55, 53, 51, 49, 47, 44, 42, 40, 38, 36, 34, 33, 31, 29, 27, 25, 23, 20, 18, 16, 13, 11, 8, 6, 3, 1, -1, -4, -6, -9, -11, -13, -16, -18, -21, -23, -25, -28, -30, -33, -35, -38, -40, -43, -45, -47, -50, -52, -55, -57, -59, -62, -64, -66, -69, -71, -73, -76, -78, -80, -83, -85, -87, -89, -92, -94, -96, -99, -101, -103, -105, -107, -110, -112, -114, -116, -119, -121, -123, -125, -128, -130, -132, -135, -137, -139, -142, -144, -146, -149, -151, -154, -156, -159, -162, -164, -167, -170, -172, -175, -178, -180, -182, -185, -187, -189, -191, -193, -195, -197, -199, -201, -202, -204, -205, -207, -208, -209, -210, -211, -213, -214, -214, -215, -216, -217, -218, -219, -219, -220, -220, -221, -221, -222, -222, -222, -222, -223, -223, -223, -223, -223, -223, -223, -223, -222, -222, -222, -222, -221, -221, -220, -220, -219, -219, -218, -217, -217, -216, -215, -215, -214, -213, -213, -212, -211, -210, -210, -209, -208, -207, -206, -205, -204, -202, -201, -200, -199, -197, -196, -195, -193, -192, -190, -189, -187, -185, -184, -182, -181, -179, -177, -176, -174, -172, -170, -169, -167, -165, -163, -162, -160, -158, -156, -154, -153, -151, -149, -148, -146, -144, -143, -141, -140, -138, -137, -135, -134, -133, -131, -130, -129, -128, -127, -125, -124, -123, -121, -120, -118, -116, -115, -113, -111, -109, -107, -105, -103, -101, -99, -97, -95, -93, -91, -88, -86, -84, -82, -79, -77, -75, -73, -70, -68, -66, -64, -61, -59, -57, -55, -53, -51, -49, -46, -44, -42, -40, -39, -37, -35, -33, -31, -29, -28, -26, -24, -22, -21, -19, -18, -16, -15, -13, -12, -11, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 5, 6, 7, 7, 8, 8, 9, 9, 10, 10, 10, 10, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 12, 11, 11, 11, 11, 11, 10, 10, 10, 10, 9, 9, 9, 9, 9, 8, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 1, 1, 1, 0, 0, 0, -1, -1, -1, -2, -2, -2, -3, -3, -3, -4, -4, -5, -5, -5, -6, -6, -7, -7, -7, -8, -8, -9, -9, -9, -10, -10, -11, -11, -11, -12, -12, -13, -13, -13, -14, -14, -14, -15, -15, -16, -16, -16, -17, -17, -17, -18, -18, -18, -18, -19, -19, -19, -19, -20, -20, -20, -20, -21, -21, -21, -21, -21, -22, -22, -22, -22, -22, -22, -22, -22, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -22, -22, -22, -22, -22, -22, -22, -22, -21, -21, -21, -21, -21, -21, -20, -20, -20, -20, -20, -20, -19, -19, -19, -19, -18, -18, -18, -18, -18}, // const WORD16 only_long_window_sine_960[960] = { 0x001B, 0x7FFF, 0x0050, 0x7FFF, 0x0086, 0x7FFF, 0x00BC, 0x7FFE, 0x00F1, 0x7FFE, 0x0127, 0x7FFE, 0x015C, 0x7FFD, 0x0192, 0x7FFD, 0x01C8, 0x7FFC, 0x01FD, 0x7FFB, 0x0233, 0x7FFA, 0x0269, 0x7FF9, 0x029E, 0x7FF8, 0x02D4, 0x7FF7, 0x0309, 0x7FF6, 0x033F, 0x7FF4, 0x0375, 0x7FF3, 0x03AA, 0x7FF2, 0x03E0, 0x7FF0, 0x0415, 0x7FEE, 0x044B, 0x7FED, 0x0480, 0x7FEB, 0x04B6, 0x7FE9, 0x04EC, 0x7FE7, 0x0521, 0x7FE5, 0x0557, 0x7FE2, 0x058C, 0x7FE0, 0x05C2, 0x7FDE, 0x05F7, 0x7FDB, 0x062D, 0x7FD9, 0x0663, 0x7FD6, 0x0698, 0x7FD3, 0x06CE, 0x7FD1, 0x0703, 0x7FCE, 0x0739, 0x7FCB, 0x076E, 0x7FC8, 0x07A4, 0x7FC5, 0x07D9, 0x7FC1, 0x080F, 0x7FBE, 0x0844, 0x7FBB, 0x087A, 0x7FB7, 0x08AF, 0x7FB3, 0x08E5, 0x7FB0, 0x091A, 0x7FAC, 0x0950, 0x7FA8, 0x0985, 0x7FA4, 0x09BB, 0x7FA0, 0x09F0, 0x7F9C, 0x0A26, 0x7F98, 0x0A5B, 0x7F94, 0x0A90, 0x7F8F, 0x0AC6, 0x7F8B, 0x0AFB, 0x7F86, 0x0B31, 0x7F82, 0x0B66, 0x7F7D, 0x0B9C, 0x7F78, 0x0BD1, 0x7F73, 0x0C06, 0x7F6E, 0x0C3C, 0x7F69, 0x0C71, 0x7F64, 0x0CA6, 0x7F5F, 0x0CDC, 0x7F59, 0x0D11, 0x7F54, 0x0D46, 0x7F4E, 0x0D7C, 0x7F49, 0x0DB1, 0x7F43, 0x0DE6, 0x7F3D, 0x0E1C, 0x7F37, 0x0E51, 0x7F31, 0x0E86, 0x7F2B, 0x0EBB, 0x7F25, 0x0EF1, 0x7F1F, 0x0F26, 0x7F19, 0x0F5B, 0x7F12, 0x0F90, 0x7F0C, 0x0FC6, 0x7F05, 0x0FFB, 0x7EFF, 0x1030, 0x7EF8, 0x1065, 0x7EF1, 0x109A, 0x7EEA, 0x10D0, 0x7EE3, 0x1105, 0x7EDC, 0x113A, 0x7ED5, 0x116F, 0x7ECE, 0x11A4, 0x7EC6, 0x11D9, 0x7EBF, 0x120E, 0x7EB7, 0x1243, 0x7EB0, 0x1278, 0x7EA8, 0x12AD, 0x7EA0, 0x12E2, 0x7E98, 0x1317, 0x7E90, 0x134C, 0x7E88, 0x1381, 0x7E80, 0x13B6, 0x7E78, 0x13EB, 0x7E70, 0x1420, 0x7E67, 0x1455, 0x7E5F, 0x148A, 0x7E56, 0x14BF, 0x7E4E, 0x14F4, 0x7E45, 0x1529, 0x7E3C, 0x155E, 0x7E33, 0x1593, 0x7E2A, 0x15C7, 0x7E21, 0x15FC, 0x7E18, 0x1631, 0x7E0F, 0x1666, 0x7E05, 0x169B, 0x7DFC, 0x16CF, 0x7DF2, 0x1704, 0x7DE9, 0x1739, 0x7DDF, 0x176E, 0x7DD5, 0x17A2, 0x7DCC, 0x17D7, 0x7DC2, 0x180C, 0x7DB8, 0x1840, 0x7DAD, 0x1875, 0x7DA3, 0x18AA, 0x7D99, 0x18DE, 0x7D8F, 0x1913, 0x7D84, 0x1947, 0x7D7A, 0x197C, 0x7D6F, 0x19B0, 0x7D64, 0x19E5, 0x7D59, 0x1A19, 0x7D4F, 0x1A4E, 0x7D44, 0x1A82, 0x7D39, 0x1AB7, 0x7D2D, 0x1AEB, 0x7D22, 0x1B20, 0x7D17, 0x1B54, 0x7D0B, 0x1B88, 0x7D00, 0x1BBD, 0x7CF4, 0x1BF1, 0x7CE9, 0x1C25, 0x7CDD, 0x1C5A, 0x7CD1, 0x1C8E, 0x7CC5, 0x1CC2, 0x7CB9, 0x1CF6, 0x7CAD, 0x1D2B, 0x7CA1, 0x1D5F, 0x7C95, 0x1D93, 0x7C88, 0x1DC7, 0x7C7C, 0x1DFB, 0x7C6F, 0x1E2F, 0x7C63, 0x1E64, 0x7C56, 0x1E98, 0x7C49, 0x1ECC, 0x7C3C, 0x1F00, 0x7C30, 0x1F34, 0x7C22, 0x1F68, 0x7C15, 0x1F9C, 0x7C08, 0x1FD0, 0x7BFB, 0x2004, 0x7BEE, 0x2037, 0x7BE0, 0x206B, 0x7BD3, 0x209F, 0x7BC5, 0x20D3, 0x7BB7, 0x2107, 0x7BA9, 0x213B, 0x7B9C, 0x216E, 0x7B8E, 0x21A2, 0x7B80, 0x21D6, 0x7B71, 0x220A, 0x7B63, 0x223D, 0x7B55, 0x2271, 0x7B47, 0x22A4, 0x7B38, 0x22D8, 0x7B29, 0x230C, 0x7B1B, 0x233F, 0x7B0C, 0x2373, 0x7AFD, 0x23A6, 0x7AEE, 0x23DA, 0x7ADF, 0x240D, 0x7AD0, 0x2441, 0x7AC1, 0x2474, 0x7AB2, 0x24A7, 0x7AA3, 0x24DB, 0x7A93, 0x250E, 0x7A84, 0x2541, 0x7A74, 0x2575, 0x7A65, 0x25A8, 0x7A55, 0x25DB, 0x7A45, 0x260E, 0x7A35, 0x2642, 0x7A25, 0x2675, 0x7A15, 0x26A8, 0x7A05, 0x26DB, 0x79F5, 0x270E, 0x79E4, 0x2741, 0x79D4, 0x2774, 0x79C4, 0x27A7, 0x79B3, 0x27DA, 0x79A2, 0x280D, 0x7992, 0x2840, 0x7981, 0x2873, 0x7970, 0x28A6, 0x795F, 0x28D8, 0x794E, 0x290B, 0x793D, 0x293E, 0x792B, 0x2971, 0x791A, 0x29A3, 0x7909, 0x29D6, 0x78F7, 0x2A09, 0x78E6, 0x2A3B, 0x78D4, 0x2A6E, 0x78C2, 0x2AA1, 0x78B0, 0x2AD3, 0x789F, 0x2B06, 0x788D, 0x2B38, 0x787B, 0x2B6B, 0x7868, 0x2B9D, 0x7856, 0x2BCF, 0x7844, 0x2C02, 0x7831, 0x2C34, 0x781F, 0x2C66, 0x780C, 0x2C99, 0x77FA, 0x2CCB, 0x77E7, 0x2CFD, 0x77D4, 0x2D2F, 0x77C1, 0x2D61, 0x77AE, 0x2D94, 0x779B, 0x2DC6, 0x7788, 0x2DF8, 0x7775, 0x2E2A, 0x7762, 0x2E5C, 0x774E, 0x2E8E, 0x773B, 0x2EC0, 0x7727, 0x2EF1, 0x7714, 0x2F23, 0x7700, 0x2F55, 0x76EC, 0x2F87, 0x76D8, 0x2FB9, 0x76C4, 0x2FEA, 0x76B0, 0x301C, 0x769C, 0x304E, 0x7688, 0x307F, 0x7674, 0x30B1, 0x765F, 0x30E3, 0x764B, 0x3114, 0x7636, 0x3146, 0x7622, 0x3177, 0x760D, 0x31A9, 0x75F8, 0x31DA, 0x75E4, 0x320B, 0x75CF, 0x323D, 0x75BA, 0x326E, 0x75A5, 0x329F, 0x758F, 0x32D0, 0x757A, 0x3302, 0x7565, 0x3333, 0x754F, 0x3364, 0x753A, 0x3395, 0x7524, 0x33C6, 0x750F, 0x33F7, 0x74F9, 0x3428, 0x74E3, 0x3459, 0x74CD, 0x348A, 0x74B7, 0x34BB, 0x74A1, 0x34EC, 0x748B, 0x351C, 0x7475, 0x354D, 0x745F, 0x357E, 0x7448, 0x35AF, 0x7432, 0x35DF, 0x741B, 0x3610, 0x7405, 0x3640, 0x73EE, 0x3671, 0x73D7, 0x36A1, 0x73C0, 0x36D2, 0x73AA, 0x3702, 0x7393, 0x3733, 0x737B, 0x3763, 0x7364, 0x3793, 0x734D, 0x37C4, 0x7336, 0x37F4, 0x731E, 0x3824, 0x7307, 0x3854, 0x72EF, 0x3884, 0x72D8, 0x38B5, 0x72C0, 0x38E5, 0x72A8, 0x3915, 0x7290, 0x3945, 0x7278, 0x3974, 0x7260, 0x39A4, 0x7248, 0x39D4, 0x7230, 0x3A04, 0x7218, 0x3A34, 0x71FF, 0x3A64, 0x71E7, 0x3A93, 0x71CF, 0x3AC3, 0x71B6, 0x3AF2, 0x719D, 0x3B22, 0x7185, 0x3B52, 0x716C, 0x3B81, 0x7153, 0x3BB1, 0x713A, 0x3BE0, 0x7121, 0x3C0F, 0x7108, 0x3C3F, 0x70EF, 0x3C6E, 0x70D5, 0x3C9D, 0x70BC, 0x3CCC, 0x70A2, 0x3CFB, 0x7089, 0x3D2B, 0x706F, 0x3D5A, 0x7056, 0x3D89, 0x703C, 0x3DB8, 0x7022, 0x3DE7, 0x7008, 0x3E16, 0x6FEE, 0x3E44, 0x6FD4, 0x3E73, 0x6FBA, 0x3EA2, 0x6FA0, 0x3ED1, 0x6F86, 0x3EFF, 0x6F6B, 0x3F2E, 0x6F51, 0x3F5D, 0x6F36, 0x3F8B, 0x6F1C, 0x3FBA, 0x6F01, 0x3FE8, 0x6EE6, 0x4017, 0x6ECC, 0x4045, 0x6EB1, 0x4073, 0x6E96, 0x40A2, 0x6E7B, 0x40D0, 0x6E60, 0x40FE, 0x6E44, 0x412C, 0x6E29, 0x415A, 0x6E0E, 0x4189, 0x6DF2, 0x41B7, 0x6DD7, 0x41E5, 0x6DBB, 0x4213, 0x6DA0, 0x4240, 0x6D84, 0x426E, 0x6D68, 0x429C, 0x6D4C, 0x42CA, 0x6D30, 0x42F8, 0x6D14, 0x4325, 0x6CF8, 0x4353, 0x6CDC, 0x4380, 0x6CC0, 0x43AE, 0x6CA4, 0x43DB, 0x6C87, 0x4409, 0x6C6B, 0x4436, 0x6C4E, 0x4464, 0x6C32, 0x4491, 0x6C15, 0x44BE, 0x6BF8, 0x44EB, 0x6BDB, 0x4519, 0x6BBE, 0x4546, 0x6BA1, 0x4573, 0x6B84, 0x45A0, 0x6B67, 0x45CD, 0x6B4A, 0x45FA, 0x6B2D, 0x4626, 0x6B0F, 0x4653, 0x6AF2, 0x4680, 0x6AD5, 0x46AD, 0x6AB7, 0x46D9, 0x6A99, 0x4706, 0x6A7C, 0x4733, 0x6A5E, 0x475F, 0x6A40, 0x478C, 0x6A22, 0x47B8, 0x6A04, 0x47E4, 0x69E6, 0x4811, 0x69C8, 0x483D, 0x69AA, 0x4869, 0x698B, 0x4896, 0x696D, 0x48C2, 0x694F, 0x48EE, 0x6930, 0x491A, 0x6911, 0x4946, 0x68F3, 0x4972, 0x68D4, 0x499E, 0x68B5, 0x49C9, 0x6896, 0x49F5, 0x6877, 0x4A21, 0x6858, 0x4A4D, 0x6839, 0x4A78, 0x681A, 0x4AA4, 0x67FB, 0x4ACF, 0x67DC, 0x4AFB, 0x67BC, 0x4B26, 0x679D, 0x4B52, 0x677D, 0x4B7D, 0x675E, 0x4BA8, 0x673E, 0x4BD3, 0x671E, 0x4BFF, 0x66FF, 0x4C2A, 0x66DF, 0x4C55, 0x66BF, 0x4C80, 0x669F, 0x4CAB, 0x667F, 0x4CD6, 0x665E, 0x4D01, 0x663E, 0x4D2B, 0x661E, 0x4D56, 0x65FE, 0x4D81, 0x65DD, 0x4DAB, 0x65BD, 0x4DD6, 0x659C, 0x4E01, 0x657B, 0x4E2B, 0x655B, 0x4E55, 0x653A, 0x4E80, 0x6519, 0x4EAA, 0x64F8, 0x4ED4, 0x64D7, 0x4EFF, 0x64B6, 0x4F29, 0x6495, 0x4F53, 0x6474, 0x4F7D, 0x6453, 0x4FA7, 0x6431, 0x4FD1, 0x6410, 0x4FFB, 0x63EE, 0x5025, 0x63CD, 0x504E, 0x63AB, 0x5078, 0x638A, 0x50A2, 0x6368, 0x50CB, 0x6346, 0x50F5, 0x6324, 0x511E, 0x6302, 0x5148, 0x62E0, 0x5171, 0x62BE, 0x519B, 0x629C, 0x51C4, 0x627A, 0x51ED, 0x6257, 0x5216, 0x6235, 0x523F, 0x6213, 0x5268, 0x61F0, 0x5291, 0x61CE, 0x52BA, 0x61AB, 0x52E3, 0x6188, 0x530C, 0x6166, 0x5335, 0x6143, 0x535E, 0x6120, 0x5386, 0x60FD, 0x53AF, 0x60DA, 0x53D7, 0x60B7, 0x5400, 0x6094, 0x5428, 0x6070, 0x5451, 0x604D, 0x5479, 0x602A, 0x54A1, 0x6006, 0x54C9, 0x5FE3, 0x54F2, 0x5FBF, 0x551A, 0x5F9C, 0x5542, 0x5F78, 0x556A, 0x5F54, 0x5591, 0x5F31, 0x55B9, 0x5F0D, 0x55E1, 0x5EE9, 0x5609, 0x5EC5, 0x5630, 0x5EA1, 0x5658, 0x5E7D, 0x5680, 0x5E58, 0x56A7, 0x5E34, 0x56CF, 0x5E10, 0x56F6, 0x5DEB, 0x571D, 0x5DC7, 0x5745, 0x5DA2, 0x576C, 0x5D7E, 0x5793, 0x5D59, 0x57BA, 0x5D34, 0x57E1, 0x5D10, 0x5808, 0x5CEB, 0x582F, 0x5CC6, 0x5856, 0x5CA1, 0x587C, 0x5C7C, 0x58A3, 0x5C57, 0x58CA, 0x5C32, 0x58F0, 0x5C0C, 0x5917, 0x5BE7, 0x593D, 0x5BC2, 0x5964, 0x5B9C, 0x598A, 0x5B77, 0x59B0, 0x5B51, 0x59D7, 0x5B2C, 0x59FD, 0x5B06, 0x5A23, 0x5AE0, 0x5A49, 0x5ABB, 0x5A6F, 0x5A95 }, // const WORD16 only_long_window_kbd_960[960] = { 0x000A, 0x7FFF, 0x000F, 0x7FFF, 0x0013, 0x7FFF, 0x0016, 0x7FFF, 0x001A, 0x7FFF, 0x001D, 0x7FFF, 0x0021, 0x7FFF, 0x0025, 0x7FFF, 0x0028, 0x7FFF, 0x002C, 0x7FFF, 0x002F, 0x7FFF, 0x0033, 0x7FFF, 0x0037, 0x7FFF, 0x003B, 0x7FFF, 0x003F, 0x7FFF, 0x0043, 0x7FFF, 0x0047, 0x7FFF, 0x004B, 0x7FFF, 0x0050, 0x7FFF, 0x0054, 0x7FFF, 0x0059, 0x7FFF, 0x005D, 0x7FFF, 0x0062, 0x7FFF, 0x0067, 0x7FFF, 0x006C, 0x7FFF, 0x0071, 0x7FFF, 0x0076, 0x7FFF, 0x007B, 0x7FFF, 0x0080, 0x7FFF, 0x0086, 0x7FFF, 0x008C, 0x7FFF, 0x0091, 0x7FFF, 0x0097, 0x7FFF, 0x009D, 0x7FFF, 0x00A3, 0x7FFF, 0x00A9, 0x7FFF, 0x00B0, 0x7FFF, 0x00B6, 0x7FFE, 0x00BD, 0x7FFE, 0x00C3, 0x7FFE, 0x00CA, 0x7FFE, 0x00D1, 0x7FFE, 0x00D8, 0x7FFE, 0x00E0, 0x7FFE, 0x00E7, 0x7FFE, 0x00EF, 0x7FFE, 0x00F6, 0x7FFE, 0x00FE, 0x7FFE, 0x0106, 0x7FFE, 0x010E, 0x7FFE, 0x0116, 0x7FFE, 0x011F, 0x7FFE, 0x0127, 0x7FFE, 0x0130, 0x7FFE, 0x0139, 0x7FFE, 0x0142, 0x7FFD, 0x014B, 0x7FFD, 0x0154, 0x7FFD, 0x015E, 0x7FFD, 0x0167, 0x7FFD, 0x0171, 0x7FFD, 0x017B, 0x7FFD, 0x0185, 0x7FFD, 0x018F, 0x7FFD, 0x019A, 0x7FFC, 0x01A4, 0x7FFC, 0x01AF, 0x7FFC, 0x01BA, 0x7FFC, 0x01C5, 0x7FFC, 0x01D0, 0x7FFC, 0x01DC, 0x7FFC, 0x01E7, 0x7FFB, 0x01F3, 0x7FFB, 0x01FF, 0x7FFB, 0x020B, 0x7FFB, 0x0218, 0x7FFB, 0x0224, 0x7FFA, 0x0231, 0x7FFA, 0x023E, 0x7FFA, 0x024B, 0x7FFA, 0x0258, 0x7FFA, 0x0265, 0x7FF9, 0x0273, 0x7FF9, 0x0281, 0x7FF9, 0x028F, 0x7FF8, 0x029D, 0x7FF8, 0x02AC, 0x7FF8, 0x02BA, 0x7FF8, 0x02C9, 0x7FF7, 0x02D8, 0x7FF7, 0x02E7, 0x7FF7, 0x02F7, 0x7FF6, 0x0306, 0x7FF6, 0x0316, 0x7FF5, 0x0326, 0x7FF5, 0x0336, 0x7FF5, 0x0347, 0x7FF4, 0x0357, 0x7FF4, 0x0368, 0x7FF3, 0x0379, 0x7FF3, 0x038A, 0x7FF2, 0x039C, 0x7FF2, 0x03AE, 0x7FF1, 0x03BF, 0x7FF1, 0x03D2, 0x7FF0, 0x03E4, 0x7FF0, 0x03F7, 0x7FEF, 0x0409, 0x7FEF, 0x041C, 0x7FEE, 0x0430, 0x7FED, 0x0443, 0x7FED, 0x0457, 0x7FEC, 0x046B, 0x7FEB, 0x047F, 0x7FEB, 0x0493, 0x7FEA, 0x04A8, 0x7FE9, 0x04BD, 0x7FE9, 0x04D2, 0x7FE8, 0x04E7, 0x7FE7, 0x04FD, 0x7FE6, 0x0513, 0x7FE5, 0x0529, 0x7FE4, 0x053F, 0x7FE3, 0x0555, 0x7FE3, 0x056C, 0x7FE2, 0x0583, 0x7FE1, 0x059A, 0x7FE0, 0x05B2, 0x7FDF, 0x05CA, 0x7FDD, 0x05E2, 0x7FDC, 0x05FA, 0x7FDB, 0x0612, 0x7FDA, 0x062B, 0x7FD9, 0x0644, 0x7FD8, 0x065D, 0x7FD6, 0x0677, 0x7FD5, 0x0690, 0x7FD4, 0x06AA, 0x7FD3, 0x06C5, 0x7FD1, 0x06DF, 0x7FD0, 0x06FA, 0x7FCE, 0x0715, 0x7FCD, 0x0730, 0x7FCB, 0x074C, 0x7FCA, 0x0768, 0x7FC8, 0x0784, 0x7FC6, 0x07A0, 0x7FC5, 0x07BD, 0x7FC3, 0x07D9, 0x7FC1, 0x07F6, 0x7FC0, 0x0814, 0x7FBE, 0x0832, 0x7FBC, 0x084F, 0x7FBA, 0x086E, 0x7FB8, 0x088C, 0x7FB6, 0x08AB, 0x7FB4, 0x08CA, 0x7FB2, 0x08E9, 0x7FB0, 0x0909, 0x7FAD, 0x0928, 0x7FAB, 0x0949, 0x7FA9, 0x0969, 0x7FA6, 0x098A, 0x7FA4, 0x09AA, 0x7FA1, 0x09CC, 0x7F9F, 0x09ED, 0x7F9C, 0x0A0F, 0x7F9A, 0x0A31, 0x7F97, 0x0A53, 0x7F94, 0x0A76, 0x7F91, 0x0A99, 0x7F8F, 0x0ABC, 0x7F8C, 0x0ADF, 0x7F89, 0x0B03, 0x7F86, 0x0B27, 0x7F82, 0x0B4B, 0x7F7F, 0x0B70, 0x7F7C, 0x0B94, 0x7F79, 0x0BBA, 0x7F75, 0x0BDF, 0x7F72, 0x0C05, 0x7F6E, 0x0C2B, 0x7F6B, 0x0C51, 0x7F67, 0x0C77, 0x7F63, 0x0C9E, 0x7F5F, 0x0CC5, 0x7F5B, 0x0CED, 0x7F58, 0x0D14, 0x7F53, 0x0D3C, 0x7F4F, 0x0D65, 0x7F4B, 0x0D8D, 0x7F47, 0x0DB6, 0x7F42, 0x0DDF, 0x7F3E, 0x0E08, 0x7F39, 0x0E32, 0x7F35, 0x0E5C, 0x7F30, 0x0E86, 0x7F2B, 0x0EB1, 0x7F26, 0x0EDC, 0x7F21, 0x0F07, 0x7F1C, 0x0F32, 0x7F17, 0x0F5E, 0x7F12, 0x0F8A, 0x7F0D, 0x0FB6, 0x7F07, 0x0FE3, 0x7F02, 0x1010, 0x7EFC, 0x103D, 0x7EF6, 0x106A, 0x7EF0, 0x1098, 0x7EEA, 0x10C6, 0x7EE4, 0x10F4, 0x7EDE, 0x1123, 0x7ED8, 0x1152, 0x7ED2, 0x1181, 0x7ECB, 0x11B0, 0x7EC5, 0x11E0, 0x7EBE, 0x1210, 0x7EB7, 0x1240, 0x7EB0, 0x1271, 0x7EA9, 0x12A2, 0x7EA2, 0x12D3, 0x7E9B, 0x1304, 0x7E93, 0x1336, 0x7E8C, 0x1368, 0x7E84, 0x139A, 0x7E7C, 0x13CD, 0x7E75, 0x1400, 0x7E6D, 0x1433, 0x7E64, 0x1466, 0x7E5C, 0x149A, 0x7E54, 0x14CE, 0x7E4B, 0x1502, 0x7E43, 0x1537, 0x7E3A, 0x156C, 0x7E31, 0x15A1, 0x7E28, 0x15D6, 0x7E1F, 0x160C, 0x7E15, 0x1642, 0x7E0C, 0x1678, 0x7E02, 0x16AE, 0x7DF8, 0x16E5, 0x7DEF, 0x171C, 0x7DE4, 0x1754, 0x7DDA, 0x178B, 0x7DD0, 0x17C3, 0x7DC5, 0x17FB, 0x7DBB, 0x1833, 0x7DB0, 0x186C, 0x7DA5, 0x18A5, 0x7D9A, 0x18DE, 0x7D8F, 0x1918, 0x7D83, 0x1952, 0x7D78, 0x198C, 0x7D6C, 0x19C6, 0x7D60, 0x1A00, 0x7D54, 0x1A3B, 0x7D48, 0x1A76, 0x7D3B, 0x1AB1, 0x7D2F, 0x1AED, 0x7D22, 0x1B29, 0x7D15, 0x1B65, 0x7D08, 0x1BA1, 0x7CFA, 0x1BDE, 0x7CED, 0x1C1B, 0x7CDF, 0x1C58, 0x7CD2, 0x1C95, 0x7CC4, 0x1CD3, 0x7CB5, 0x1D11, 0x7CA7, 0x1D4F, 0x7C98, 0x1D8D, 0x7C8A, 0x1DCC, 0x7C7B, 0x1E0B, 0x7C6C, 0x1E4A, 0x7C5C, 0x1E89, 0x7C4D, 0x1EC9, 0x7C3D, 0x1F08, 0x7C2D, 0x1F48, 0x7C1D, 0x1F89, 0x7C0D, 0x1FC9, 0x7BFD, 0x200A, 0x7BEC, 0x204B, 0x7BDB, 0x208C, 0x7BCA, 0x20CE, 0x7BB9, 0x210F, 0x7BA7, 0x2151, 0x7B95, 0x2193, 0x7B84, 0x21D6, 0x7B71, 0x2218, 0x7B5F, 0x225B, 0x7B4D, 0x229E, 0x7B3A, 0x22E1, 0x7B27, 0x2325, 0x7B14, 0x2369, 0x7B00, 0x23AC, 0x7AED, 0x23F1, 0x7AD9, 0x2435, 0x7AC5, 0x2479, 0x7AB0, 0x24BE, 0x7A9C, 0x2503, 0x7A87, 0x2548, 0x7A72, 0x258D, 0x7A5D, 0x25D3, 0x7A48, 0x2619, 0x7A32, 0x265F, 0x7A1C, 0x26A5, 0x7A06, 0x26EB, 0x79F0, 0x2731, 0x79D9, 0x2778, 0x79C2, 0x27BF, 0x79AB, 0x2806, 0x7994, 0x284D, 0x797C, 0x2895, 0x7965, 0x28DC, 0x794C, 0x2924, 0x7934, 0x296C, 0x791C, 0x29B4, 0x7903, 0x29FC, 0x78EA, 0x2A45, 0x78D1, 0x2A8E, 0x78B7, 0x2AD6, 0x789D, 0x2B1F, 0x7883, 0x2B68, 0x7869, 0x2BB2, 0x784F, 0x2BFB, 0x7834, 0x2C45, 0x7819, 0x2C8E, 0x77FE, 0x2CD8, 0x77E2, 0x2D22, 0x77C6, 0x2D6D, 0x77AA, 0x2DB7, 0x778E, 0x2E01, 0x7771, 0x2E4C, 0x7754, 0x2E97, 0x7737, 0x2EE2, 0x771A, 0x2F2D, 0x76FC, 0x2F78, 0x76DE, 0x2FC3, 0x76C0, 0x300F, 0x76A2, 0x305A, 0x7683, 0x30A6, 0x7664, 0x30F2, 0x7645, 0x313D, 0x7625, 0x318A, 0x7606, 0x31D6, 0x75E5, 0x3222, 0x75C5, 0x326E, 0x75A4, 0x32BB, 0x7584, 0x3307, 0x7562, 0x3354, 0x7541, 0x33A1, 0x751F, 0x33EE, 0x74FD, 0x343B, 0x74DB, 0x3488, 0x74B8, 0x34D5, 0x7496, 0x3522, 0x7472, 0x356F, 0x744F, 0x35BD, 0x742B, 0x360A, 0x7407, 0x3658, 0x73E3, 0x36A5, 0x73BF, 0x36F3, 0x739A, 0x3741, 0x7375, 0x378F, 0x734F, 0x37DD, 0x732A, 0x382B, 0x7304, 0x3879, 0x72DD, 0x38C7, 0x72B7, 0x3915, 0x7290, 0x3963, 0x7269, 0x39B1, 0x7242, 0x3A00, 0x721A, 0x3A4E, 0x71F2, 0x3A9C, 0x71CA, 0x3AEB, 0x71A1, 0x3B39, 0x7178, 0x3B88, 0x714F, 0x3BD7, 0x7126, 0x3C25, 0x70FC, 0x3C74, 0x70D2, 0x3CC2, 0x70A8, 0x3D11, 0x707D, 0x3D60, 0x7052, 0x3DAE, 0x7027, 0x3DFD, 0x6FFC, 0x3E4C, 0x6FD0, 0x3E9B, 0x6FA4, 0x3EEA, 0x6F78, 0x3F38, 0x6F4B, 0x3F87, 0x6F1E, 0x3FD6, 0x6EF1, 0x4025, 0x6EC4, 0x4073, 0x6E96, 0x40C2, 0x6E68, 0x4111, 0x6E39, 0x4160, 0x6E0B, 0x41AF, 0x6DDC, 0x41FD, 0x6DAD, 0x424C, 0x6D7D, 0x429B, 0x6D4D, 0x42E9, 0x6D1D, 0x4338, 0x6CED, 0x4387, 0x6CBC, 0x43D5, 0x6C8B, 0x4424, 0x6C5A, 0x4472, 0x6C28, 0x44C1, 0x6BF7, 0x450F, 0x6BC4, 0x455E, 0x6B92, 0x45AC, 0x6B5F, 0x45FA, 0x6B2C, 0x4648, 0x6AF9, 0x4697, 0x6AC6, 0x46E5, 0x6A92, 0x4733, 0x6A5E, 0x4781, 0x6A29, 0x47CF, 0x69F5, 0x481D, 0x69C0, 0x486B, 0x698A, 0x48B8, 0x6955, 0x4906, 0x691F, 0x4954, 0x68E9, 0x49A1, 0x68B3, 0x49EF, 0x687C, 0x4A3C, 0x6845, 0x4A89, 0x680E, 0x4AD7, 0x67D6, 0x4B24, 0x679F, 0x4B71, 0x6767, 0x4BBE, 0x672E, 0x4C0B, 0x66F6, 0x4C57, 0x66BD, 0x4CA4, 0x6684, 0x4CF0, 0x664A, 0x4D3D, 0x6611, 0x4D89, 0x65D7, 0x4DD5, 0x659D, 0x4E21, 0x6562, 0x4E6D, 0x6527, 0x4EB9, 0x64EC, 0x4F05, 0x64B1, 0x4F51, 0x6476, 0x4F9C, 0x643A, 0x4FE8, 0x63FE, 0x5033, 0x63C1, 0x507E, 0x6385, 0x50C9, 0x6348, 0x5114, 0x630B, 0x515E, 0x62CE, 0x51A9, 0x6290, 0x51F3, 0x6252, 0x523E, 0x6214, 0x5288, 0x61D6, 0x52D2, 0x6197, 0x531C, 0x6158, 0x5365, 0x6119, 0x53AF, 0x60DA, 0x53F8, 0x609A, 0x5441, 0x605B, 0x548A, 0x601B, 0x54D3, 0x5FDA, 0x551C, 0x5F9A, 0x5564, 0x5F59, 0x55AD, 0x5F18, 0x55F5, 0x5ED7, 0x563D, 0x5E95, 0x5685, 0x5E53, 0x56CD, 0x5E12, 0x5714, 0x5DCF, 0x575B, 0x5D8D, 0x57A3, 0x5D4A, 0x57E9, 0x5D08, 0x5830, 0x5CC4, 0x5877, 0x5C81, 0x58BD, 0x5C3E, 0x5903, 0x5BFA, 0x5949, 0x5BB6, 0x598F, 0x5B72, 0x59D5, 0x5B2E, 0x5A1A, 0x5AE9, 0x5A5F, 0x5AA4 }, // const WORD16 only_short_window_sine_120[120] = { 0x00D6, 0x7FFE, 0x0283, 0x7FF9, 0x0430, 0x7FED, 0x05DD, 0x7FDD, 0x0789, 0x7FC6, 0x0935, 0x7FAA, 0x0AE1, 0x7F88, 0x0C8C, 0x7F61, 0x0E36, 0x7F34, 0x0FE0, 0x7F02, 0x1189, 0x7ECA, 0x1332, 0x7E8C, 0x14DA, 0x7E49, 0x1680, 0x7E01, 0x1826, 0x7DB3, 0x19CB, 0x7D5F, 0x1B6E, 0x7D06, 0x1D11, 0x7CA7, 0x1EB2, 0x7C43, 0x2051, 0x7BD9, 0x21F0, 0x7B6A, 0x238D, 0x7AF6, 0x2528, 0x7A7C, 0x26C1, 0x79FD, 0x2859, 0x7978, 0x29EF, 0x78EE, 0x2B84, 0x785F, 0x2D16, 0x77CB, 0x2EA7, 0x7731, 0x3035, 0x7692, 0x31C1, 0x75EE, 0x334B, 0x7545, 0x34D3, 0x7496, 0x3659, 0x73E3, 0x37DC, 0x732A, 0x395D, 0x726C, 0x3ADB, 0x71AA, 0x3C56, 0x70E2, 0x3DCF, 0x7015, 0x3F45, 0x6F44, 0x40B9, 0x6E6D, 0x4229, 0x6D92, 0x4397, 0x6CB2, 0x4502, 0x6BCD, 0x466A, 0x6AE3, 0x47CE, 0x69F5, 0x4930, 0x6902, 0x4A8E, 0x680B, 0x4BE9, 0x670E, 0x4D41, 0x660E, 0x4E95, 0x6509, 0x4FE6, 0x63FF, 0x5133, 0x62F1, 0x527D, 0x61DF, 0x53C3, 0x60C8, 0x5506, 0x5FAE, 0x5644, 0x5E8F, 0x577F, 0x5D6B, 0x58B6, 0x5C44, 0x59EA, 0x5B19 }, // const WORD16 only_short_window_kbd_120[120] = { 0x0001, 0x7FFF, 0x0004, 0x7FFF, 0x0008, 0x7FFF, 0x000E, 0x7FFF, 0x0016, 0x7FFF, 0x0021, 0x7FFF, 0x0030, 0x7FFF, 0x0042, 0x7FFF, 0x0059, 0x7FFF, 0x0075, 0x7FFF, 0x0097, 0x7FFF, 0x00C1, 0x7FFE, 0x00F2, 0x7FFE, 0x012D, 0x7FFE, 0x0171, 0x7FFD, 0x01C1, 0x7FFC, 0x021D, 0x7FFB, 0x0286, 0x7FF9, 0x02FE, 0x7FF6, 0x0385, 0x7FF3, 0x041E, 0x7FEE, 0x04C9, 0x7FE8, 0x0586, 0x7FE0, 0x0658, 0x7FD7, 0x0740, 0x7FCA, 0x083E, 0x7FBB, 0x0953, 0x7FA8, 0x0A80, 0x7F91, 0x0BC7, 0x7F74, 0x0D27, 0x7F52, 0x0EA0, 0x7F28, 0x1035, 0x7EF7, 0x11E3, 0x7EBD, 0x13AD, 0x7E7A, 0x1591, 0x7E2A, 0x1790, 0x7DCF, 0x19A8, 0x7D66, 0x1BDA, 0x7CEE, 0x1E25, 0x7C65, 0x2087, 0x7BCB, 0x2300, 0x7B1E, 0x258E, 0x7A5D, 0x2830, 0x7986, 0x2AE5, 0x7898, 0x2DA9, 0x7793, 0x307D, 0x7675, 0x335D, 0x753D, 0x3647, 0x73EB, 0x393A, 0x727E, 0x3C33, 0x70F5, 0x3F2F, 0x6F50, 0x422D, 0x6D90, 0x452A, 0x6BB4, 0x4823, 0x69BC, 0x4B16, 0x67A9, 0x4E01, 0x657B, 0x50E2, 0x6334, 0x53B5, 0x60D4, 0x567A, 0x5E5D, 0x592F, 0x5BD0 }, // WORD16 re_arr_tab_32[480]; { 0, 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210, 225, 240, 255, 270, 285, 300, 315, 330, 345, 360, 375, 390, 405, 420, 435, 450, 465, 32, 47, 62, 77, 92, 107, 122, 137, 152, 167, 182, 197, 212, 227, 242, 257, 272, 287, 302, 317, 332, 347, 362, 377, 392, 407, 422, 437, 452, 467, 2, 17, 64, 79, 94, 109, 124, 139, 154, 169, 184, 199, 214, 229, 244, 259, 274, 289, 304, 319, 334, 349, 364, 379, 394, 409, 424, 439, 454, 469, 4, 19, 34, 49, 96, 111, 126, 141, 156, 171, 186, 201, 216, 231, 246, 261, 276, 291, 306, 321, 336, 351, 366, 381, 396, 411, 426, 441, 456, 471, 6, 21, 36, 51, 66, 81, 128, 143, 158, 173, 188, 203, 218, 233, 248, 263, 278, 293, 308, 323, 338, 353, 368, 383, 398, 413, 428, 443, 458, 473, 8, 23, 38, 53, 68, 83, 98, 113, 160, 175, 190, 205, 220, 235, 250, 265, 280, 295, 310, 325, 340, 355, 370, 385, 400, 415, 430, 445, 460, 475, 10, 25, 40, 55, 70, 85, 100, 115, 130, 145, 192, 207, 222, 237, 252, 267, 282, 297, 312, 327, 342, 357, 372, 387, 402, 417, 432, 447, 462, 477, 12, 27, 42, 57, 72, 87, 102, 117, 132, 147, 162, 177, 224, 239, 254, 269, 284, 299, 314, 329, 344, 359, 374, 389, 404, 419, 434, 449, 464, 479, 14, 29, 44, 59, 74, 89, 104, 119, 134, 149, 164, 179, 194, 209, 256, 271, 286, 301, 316, 331, 346, 361, 376, 391, 406, 421, 436, 451, 466, 1, 16, 31, 46, 61, 76, 91, 106, 121, 136, 151, 166, 181, 196, 211, 226, 241, 288, 303, 318, 333, 348, 363, 378, 393, 408, 423, 438, 453, 468, 3, 18, 33, 48, 63, 78, 93, 108, 123, 138, 153, 168, 183, 198, 213, 228, 243, 258, 273, 320, 335, 350, 365, 380, 395, 410, 425, 440, 455, 470, 5, 20, 35, 50, 65, 80, 95, 110, 125, 140, 155, 170, 185, 200, 215, 230, 245, 260, 275, 290, 305, 352, 367, 382, 397, 412, 427, 442, 457, 472, 7, 22, 37, 52, 67, 82, 97, 112, 127, 142, 157, 172, 187, 202, 217, 232, 247, 262, 277, 292, 307, 322, 337, 384, 399, 414, 429, 444, 459, 474, 9, 24, 39, 54, 69, 84, 99, 114, 129, 144, 159, 174, 189, 204, 219, 234, 249, 264, 279, 294, 309, 324, 339, 354, 369, 416, 431, 446, 461, 476, 11, 26, 41, 56, 71, 86, 101, 116, 131, 146, 161, 176, 191, 206, 221, 236, 251, 266, 281, 296, 311, 326, 341, 356, 371, 386, 401, 448, 463, 478, 13, 28, 43, 58, 73, 88, 103, 118, 133, 148, 163, 178, 193, 208, 223, 238, 253, 268, 283, 298, 313, 328, 343, 358, 373, 388, 403, 418, 433 }, // const WORD16 re_arr_tab_sml[FFT15 + 1] = { 0, 4, 8, 9, 13, 2, 3, 7, 11, 12, 1, 5, 6, 10, 14, 0 }, // const WORD16 re_arr_tab_4[60] = { 0, 15, 30, 45, 4, 19, 34, 49, 8, 23, 38, 53, 12, 27, 42, 57, 16, 31, 46, 1, 20, 35, 50, 5, 24, 39, 54, 9, 28, 43, 58, 13, 32, 47, 2, 17, 36, 51, 6, 21, 40, 55, 10, 25, 44, 59, 14, 29, 48, 3, 18, 33, 52, 7, 22, 37, 56, 11, 26, 41 }, // const WORD16 re_arr_tab_15_4[60] = { 0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50, 54, 58, 3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47, 51, 55, 59 }, // const WORD16 re_arr_tab_120[60] = { 0, 16, 32, 48, 4, 20, 36, 52, 8, 24, 40, 56, 12, 28, 44, 45, 1, 17, 33, 49, 5, 21, 37, 53, 9, 25, 41, 57, 13, 29, 30, 46, 2, 18, 34, 50, 6, 22, 38, 54, 10, 26, 42, 58, 14, 15, 31, 47, 3, 19, 35, 51, 7, 23, 39, 55, 11, 27, 43, 59 }, // WORD16 re_arr_tab_5[FFT15 + 1] = { 0, 3, 6, 9, 12, 5, 8, 11, 14, 2, 10, 13, 1, 4, 7, 0 }, // WORD16 re_arr_tab_3[FFT15 + 1] = { 0, 5, 10, 1, 6, 11, 2, 7, 12, 3, 8, 13, 4, 9, 14, 0 }, // WORD16 re_arr_tab_sml_480[480] = { 0, 160, 320, 96, 256, 416, 192, 352, 32, 288, 448, 128, 384, 64, 224, 225, 385, 65, 321, 1, 161, 417, 97, 257, 33, 193, 353, 129, 289, 449, 450, 130, 290, 66, 226, 386, 162, 322, 2, 258, 418, 98, 354, 34, 194, 195, 355, 35, 291, 451, 131, 387, 67, 227, 3, 163, 323, 99, 259, 419, 420, 100, 260, 36, 196, 356, 132, 292, 452, 228, 388, 68, 324, 4, 164, 165, 325, 5, 261, 421, 101, 357, 37, 197, 453, 133, 293, 69, 229, 389, 390, 70, 230, 6, 166, 326, 102, 262, 422, 198, 358, 38, 294, 454, 134, 135, 295, 455, 231, 391, 71, 327, 7, 167, 423, 103, 263, 39, 199, 359, 360, 40, 200, 456, 136, 296, 72, 232, 392, 168, 328, 8, 264, 424, 104, 105, 265, 425, 201, 361, 41, 297, 457, 137, 393, 73, 233, 9, 169, 329, 330, 10, 170, 426, 106, 266, 42, 202, 362, 138, 298, 458, 234, 394, 74, 75, 235, 395, 171, 331, 11, 267, 427, 107, 363, 43, 203, 459, 139, 299, 300, 460, 140, 396, 76, 236, 12, 172, 332, 108, 268, 428, 204, 364, 44, 45, 205, 365, 141, 301, 461, 237, 397, 77, 333, 13, 173, 429, 109, 269, 270, 430, 110, 366, 46, 206, 462, 142, 302, 78, 238, 398, 174, 334, 14, 15, 175, 335, 111, 271, 431, 207, 367, 47, 303, 463, 143, 399, 79, 239, 240, 400, 80, 336, 16, 176, 432, 112, 272, 48, 208, 368, 144, 304, 464, 465, 145, 305, 81, 241, 401, 177, 337, 17, 273, 433, 113, 369, 49, 209, 210, 370, 50, 306, 466, 146, 402, 82, 242, 18, 178, 338, 114, 274, 434, 435, 115, 275, 51, 211, 371, 147, 307, 467, 243, 403, 83, 339, 19, 179, 180, 340, 20, 276, 436, 116, 372, 52, 212, 468, 148, 308, 84, 244, 404, 405, 85, 245, 21, 181, 341, 117, 277, 437, 213, 373, 53, 309, 469, 149, 150, 310, 470, 246, 406, 86, 342, 22, 182, 438, 118, 278, 54, 214, 374, 375, 55, 215, 471, 151, 311, 87, 247, 407, 183, 343, 23, 279, 439, 119, 120, 280, 440, 216, 376, 56, 312, 472, 152, 408, 88, 248, 24, 184, 344, 345, 25, 185, 441, 121, 281, 57, 217, 377, 153, 313, 473, 249, 409, 89, 90, 250, 410, 186, 346, 26, 282, 442, 122, 378, 58, 218, 474, 154, 314, 315, 475, 155, 411, 91, 251, 27, 187, 347, 123, 283, 443, 219, 379, 59, 60, 220, 380, 156, 316, 476, 252, 412, 92, 348, 28, 188, 444, 124, 284, 285, 445, 125, 381, 61, 221, 477, 157, 317, 93, 253, 413, 189, 349, 29, 30, 190, 350, 126, 286, 446, 222, 382, 62, 318, 478, 158, 414, 94, 254, 255, 415, 95, 351, 31, 191, 447, 127, 287, 63, 223, 383, 159, 319, 479 }, // WORD32 cosine_array_1920[960] = { 32767, 13, 94, 32767, 32767, 121, 201, 32767, 32767, 228, 308, 32767, 32766, 335, 416, 32765, 32765, 442, 523, 32764, 32763, 550, 630, 32762, 32761, 657, 737, 32760, 32759, 764, 844, 32757, 32756, 871, 952, 32754, 32753, 978, 1059, 32751, 32750, 1086, 1166, 32747, 32746, 1193, 1273, 32743, 32742, 1300, 1380, 32739, 32738, 1407, 1487, 32734, 32733, 1514, 1594, 32729, 32728, 1621, 1702, 32724, 32722, 1728, 1809, 32718, 32717, 1835, 1916, 32712, 32710, 1942, 2023, 32706, 32704, 2049, 2130, 32699, 32697, 2157, 2237, 32692, 32690, 2263, 2344, 32684, 32682, 2370, 2451, 32676, 32674, 2477, 2558, 32668, 32666, 2584, 2664, 32659, 32657, 2691, 2771, 32651, 32648, 2798, 2878, 32641, 32639, 2905, 2985, 32632, 32629, 3012, 3092, 32622, 32619, 3118, 3198, 32612, 32609, 3225, 3305, 32601, 32598, 3332, 3412, 32590, 32587, 3439, 3518, 32579, 32576, 3545, 3625, 32567, 32564, 3652, 3732, 32555, 32552, 3758, 3838, 32542, 32539, 3865, 3945, 32530, 32526, 3971, 4051, 32517, 32513, 4078, 4157, 32503, 32500, 4184, 4264, 32489, 32486, 4290, 4370, 32475, 32472, 4397, 4476, 32461, 32457, 4503, 4583, 32446, 32442, 4609, 4689, 32431, 32427, 4715, 4795, 32415, 32411, 4821, 4901, 32399, 32395, 4927, 5007, 32383, 32379, 5033, 5113, 32367, 32362, 5139, 5219, 32350, 32345, 5245, 5325, 32333, 32328, 5351, 5430, 32315, 32310, 5457, 5536, 32297, 32292, 5562, 5642, 32279, 32274, 5668, 5747, 32260, 32255, 5774, 5853, 32241, 32236, 5879, 5958, 32222, 32217, 5985, 6064, 32202, 32197, 6090, 6169, 32182, 32177, 6195, 6274, 32162, 32157, 6301, 6380, 32141, 32136, 6406, 6485, 32120, 32115, 6511, 6590, 32099, 32093, 6616, 6695, 32077, 32071, 6721, 6800, 32055, 32049, 6826, 6905, 32032, 32027, 6931, 7009, 32010, 32004, 7036, 7114, 31986, 31981, 7140, 7219, 31963, 31957, 7245, 7323, 31939, 31933, 7349, 7428, 31915, 31909, 7454, 7532, 31891, 31884, 7558, 7637, 31866, 31859, 7663, 7741, 31841, 31834, 7767, 7845, 31815, 31809, 7871, 7949, 31789, 31783, 7975, 8053, 31763, 31756, 8079, 8157, 31737, 31730, 8183, 8261, 31710, 31703, 8287, 8364, 31682, 31676, 8390, 8468, 31655, 31648, 8494, 8572, 31627, 31620, 8597, 8675, 31599, 31592, 8701, 8778, 31570, 31563, 8804, 8882, 31541, 31534, 8907, 8985, 31512, 31505, 9011, 9088, 31483, 31475, 9114, 9191, 31453, 31445, 9217, 9294, 31422, 31415, 9319, 9397, 31392, 31384, 9422, 9499, 31361, 31353, 9525, 9602, 31330, 31322, 9627, 9704, 31298, 31290, 9730, 9807, 31266, 31258, 9832, 9909, 31234, 31226, 9934, 10011, 31201, 31193, 10037, 10113, 31168, 31160, 10139, 10215, 31135, 31127, 10241, 10317, 31102, 31093, 10342, 10419, 31068, 31059, 10444, 10520, 31033, 31025, 10546, 10622, 30999, 30990, 10647, 10723, 30964, 30955, 10748, 10824, 30929, 30920, 10850, 10926, 30893, 30884, 10951, 11027, 30857, 30848, 11052, 11128, 30821, 30812, 11153, 11228, 30784, 30775, 11253, 11329, 30747, 30738, 11354, 11430, 30710, 30701, 11455, 11530, 30672, 30663, 11555, 11630, 30635, 30625, 11655, 11730, 30596, 30587, 11756, 11831, 30558, 30548, 11856, 11930, 30519, 30509, 11955, 12030, 30480, 30470, 12055, 12130, 30440, 30430, 12155, 12230, 30400, 30390, 12254, 12329, 30360, 30350, 12354, 12428, 30320, 30309, 12453, 12527, 30279, 30269, 12552, 12626, 30238, 30227, 12651, 12725, 30196, 30186, 12750, 12824, 30154, 30144, 12849, 12923, 30112, 30102, 12947, 13021, 30070, 30059, 13046, 13119, 30027, 30016, 13144, 13218, 29984, 29973, 13242, 13316, 29941, 29930, 13340, 13414, 29897, 29886, 13438, 13511, 29853, 29842, 13536, 13609, 29808, 29797, 13633, 13706, 29764, 29752, 13731, 13804, 29719, 29707, 13828, 13901, 29673, 29662, 13925, 13998, 29628, 29616, 14022, 14095, 29582, 29570, 14119, 14192, 29535, 29524, 14216, 14288, 29489, 29477, 14312, 14385, 29442, 29430, 14409, 14481, 29395, 29383, 14505, 14577, 29347, 29335, 14601, 14673, 29299, 29287, 14697, 14769, 29251, 29239, 14793, 14864, 29203, 29190, 14888, 14960, 29154, 29142, 14984, 15055, 29105, 29092, 15079, 15150, 29055, 29043, 15174, 15245, 29006, 28993, 15269, 15340, 28955, 28943, 15364, 15435, 28905, 28892, 15459, 15529, 28854, 28842, 15553, 15624, 28803, 28791, 15647, 15718, 28752, 28739, 15741, 15812, 28701, 28688, 15835, 15906, 28649, 28636, 15929, 15999, 28596, 28583, 16023, 16093, 28544, 28531, 16116, 16186, 28491, 28478, 16210, 16279, 28438, 28425, 16303, 16372, 28385, 28371, 16396, 16465, 28331, 28317, 16488, 16558, 28277, 28263, 16581, 16650, 28223, 28209, 16673, 16743, 28168, 28154, 16766, 16835, 28113, 28099, 16858, 16927, 28058, 28044, 16949, 17018, 28002, 27988, 17041, 17110, 27946, 27932, 17133, 17201, 27890, 27876, 17224, 17292, 27834, 27820, 17315, 17383, 27777, 27763, 17406, 17474, 27720, 27706, 17497, 17565, 27663, 27648, 17587, 17655, 27605, 27591, 17678, 17745, 27547, 27533, 17768, 17835, 27489, 27474, 17858, 17925, 27430, 27416, 17948, 18015, 27372, 27357, 18037, 18104, 27312, 27298, 18127, 18194, 27253, 27238, 18216, 18283, 27193, 27178, 18305, 18372, 27133, 27118, 18394, 18460, 27073, 27058, 18483, 18549, 27013, 26997, 18571, 18637, 26952, 26936, 18659, 18725, 26891, 26875, 18747, 18813, 26829, 26814, 18835, 18901, 26767, 26752, 18923, 18988, 26705, 26690, 19010, 19076, 26643, 26628, 19098, 19163, 26581, 26565, 19185, 19250, 26518, 26502, 19271, 19336, 26455, 26439, 19358, 19423, 26391, 26375, 19444, 19509, 26327, 26312, 19531, 19595, 26264, 26247, 19617, 19681, 26199, 26183, 19702, 19767, 26135, 26119, 19788, 19852, 26070, 26054, 19873, 19937, 26005, 25988, 19959, 20022, 25939, 25923, 20043, 20107, 25874, 25857, 20128, 20192, 25808, 25791, 20213, 20276, 25742, 25725, 20297, 20360, 25675, 25658, 20381, 20444, 25608, 25592, 20465, 20528, 25541, 25524, 20549, 20611, 25474, 25457, 20632, 20694, 25406, 25389, 20715, 20777, 25339, 25322, 20798, 20860, 25270, 25253, 20881, 20943, 25202, 25185, 20963, 21025, 25133, 25116, 21046, 21107, 25064, 25047, 21128, 21189, 24995, 24978, 21210, 21271, 24926, 24908, 21291, 21352, 24856, 24838, 21373, 21434, 24786, 24768, 21454, 21515, 24716, 24698, 21535, 21595, 24645, 24627, 21616, 21676, 24574, 24557, 21696, 21756, 24503, 24485, 21776, 21836, 24432, 24414, 21856, 21916, 24360, 24342, 21936, 21996, 24288, 24270, 22016, 22075, 24216, 24198, 22095, 22154, 24144, 24126, 22174, 22233, 24071, 24053, 22253, 22312, 23998, 23980, 22331, 22390, 23925, 23907, 22410, 22468, 23852, 23834, 22488, 22546, 23778, 23760, 22566, 22624, 23704, 23686, 22643, 22701, 23630, 23612, 22721, 22779, 23556, 23537, 22798, 22856, 23481, 23462, 22875, 22932, 23406, 23387, 22951, 23009, 23331, 23312, 23028, 23085, 23256, 23237, 23104, 23161, 23180 }, // const WORD16 w_512[2 * 510] = { 0, 32767, 0, 32767, 0, 32767, 402, 32766, 804, 32758, 1206, 32746, 804, 32758, 1608, 32729, 2411, 32679, 1206, 32746, 2411, 32679, 3612, 32568, 1608, 32729, 3212, 32610, 4808, 32413, 2009, 32706, 4011, 32522, 5998, 32214, 2411, 32679, 4808, 32413, 7180, 31972, 2811, 32647, 5602, 32286, 8351, 31686, 3212, 32610, 6393, 32138, 9512, 31357, 3612, 32568, 7180, 31972, 10660, 30986, 4011, 32522, 7962, 31786, 11793, 30572, 4410, 32470, 8740, 31581, 12910, 30118, 4808, 32413, 9512, 31357, 14010, 29622, 5205, 32352, 10279, 31114, 15091, 29086, 5602, 32286, 11039, 30853, 16151, 28511, 5998, 32214, 11793, 30572, 17190, 27897, 6393, 32138, 12540, 30274, 18205, 27246, 6787, 32058, 13279, 29957, 19195, 26557, 7180, 31972, 14010, 29622, 20160, 25833, 7571, 31881, 14733, 29269, 21097, 25073, 7962, 31786, 15447, 28899, 22006, 24279, 8351, 31686, 16151, 28511, 22884, 23453, 8740, 31581, 16846, 28106, 23732, 22595, 9127, 31471, 17531, 27684, 24548, 21706, 9512, 31357, 18205, 27246, 25330, 20788, 9896, 31238, 18868, 26791, 26078, 19841, 10279, 31114, 19520, 26320, 26791, 18868, 10660, 30986, 20160, 25833, 27467, 17869, 11039, 30853, 20788, 25330, 28106, 16846, 11417, 30715, 21403, 24812, 28707, 15800, 11793, 30572, 22006, 24279, 29269, 14733, 12167, 30425, 22595, 23732, 29792, 13646, 12540, 30274, 23170, 23170, 30274, 12540, 12910, 30118, 23732, 22595, 30715, 11417, 13279, 29957, 24279, 22006, 31114, 10279, 13646, 29792, 24812, 21403, 31471, 9127, 14010, 29622, 25330, 20788, 31786, 7962, 14373, 29448, 25833, 20160, 32058, 6787, 14733, 29269, 26320, 19520, 32286, 5602, 15091, 29086, 26791, 18868, 32470, 4410, 15447, 28899, 27246, 18205, 32610, 3212, 15800, 28707, 27684, 17531, 32706, 2009, 16151, 28511, 28106, 16846, 32758, 804, 16500, 28311, 28511, 16151, 32766, -402, 16846, 28106, 28899, 15447, 32729, -1608, 17190, 27897, 29269, 14733, 32647, -2811, 17531, 27684, 29622, 14010, 32522, -4011, 17869, 27467, 29957, 13279, 32352, -5205, 18205, 27246, 30274, 12540, 32138, -6393, 18538, 27020, 30572, 11793, 31881, -7571, 18868, 26791, 30853, 11039, 31581, -8740, 19195, 26557, 31114, 10279, 31238, -9896, 19520, 26320, 31357, 9512, 30853, -11039, 19841, 26078, 31581, 8740, 30425, -12167, 20160, 25833, 31786, 7962, 29957, -13279, 20475, 25583, 31972, 7180, 29448, -14373, 20788, 25330, 32138, 6393, 28899, -15447, 21097, 25073, 32286, 5602, 28311, -16500, 21403, 24812, 32413, 4808, 27684, -17531, 21706, 24548, 32522, 4011, 27020, -18538, 22006, 24279, 32610, 3212, 26320, -19520, 22302, 24008, 32679, 2411, 25583, -20475, 22595, 23732, 32729, 1608, 24812, -21403, 22884, 23453, 32758, 804, 24008, -22302, 23170, 23170, 32767, 0, 23170, -23170, 23453, 22884, 32758, -804, 22302, -24008, 23732, 22595, 32729, -1608, 21403, -24812, 24008, 22302, 32679, -2411, 20475, -25583, 24279, 22006, 32610, -3212, 19520, -26320, 24548, 21706, 32522, -4011, 18538, -27020, 24812, 21403, 32413, -4808, 17531, -27684, 25073, 21097, 32286, -5602, 16500, -28311, 25330, 20788, 32138, -6393, 15447, -28899, 25583, 20475, 31972, -7180, 14373, -29448, 25833, 20160, 31786, -7962, 13279, -29957, 26078, 19841, 31581, -8740, 12167, -30425, 26320, 19520, 31357, -9512, 11039, -30853, 26557, 19195, 31114, -10279, 9896, -31238, 26791, 18868, 30853, -11039, 8740, -31581, 27020, 18538, 30572, -11793, 7571, -31881, 27246, 18205, 30274, -12540, 6393, -32138, 27467, 17869, 29957, -13279, 5205, -32352, 27684, 17531, 29622, -14010, 4011, -32522, 27897, 17190, 29269, -14733, 2811, -32647, 28106, 16846, 28899, -15447, 1608, -32729, 28311, 16500, 28511, -16151, 402, -32766, 28511, 16151, 28106, -16846, - 804, -32758, 28707, 15800, 27684, -17531, -2009, -32706, 28899, 15447, 27246, -18205, -3212, -32610, 29086, 15091, 26791, -18868, -4410, -32470, 29269, 14733, 26320, -19520, -5602, -32286, 29448, 14373, 25833, -20160, - 6787, -32058, 29622, 14010, 25330, -20788, -7962, -31786, 29792, 13646, 24812, -21403, -9127, -31471, 29957, 13279, 24279, -22006, -10279, -31114, 30118, 12910, 23732, -22595, -11417, -30715, 30274, 12540, 23170, -23170, - 12540, -30274, 30425, 12167, 22595, -23732, -13646, -29792, 30572, 11793, 22006, -24279, -14733, -29269, 30715, 11417, 21403, -24812, -15800, -28707, 30853, 11039, 20788, -25330, -16846, -28106, 30986, 10660, 20160, -25833, - 17869, -27467, 31114, 10279, 19520, -26320, -18868, -26791, 31238, 9896, 18868, -26791, -19841, -26078, 31357, 9512, 18205, -27246, -20788, -25330, 31471, 9127, 17531, -27684, -21706, -24548, 31581, 8740, 16846, -28106, - 22595, -23732, 31686, 8351, 16151, -28511, -23453, -22884, 31786, 7962, 15447, -28899, -24279, -22006, 31881, 7571, 14733, -29269, -25073, -21097, 31972, 7180, 14010, -29622, -25833, -20160, 32058, 6787, 13279, -29957, - 26557, -19195, 32138, 6393, 12540, -30274, -27246, -18205, 32214, 5998, 11793, -30572, -27897, -17190, 32286, 5602, 11039, -30853, -28511, -16151, 32352, 5205, 10279, -31114, -29086, -15091, 32413, 4808, 9512, -31357, - 29622, -14010, 32470, 4410, 8740, -31581, -30118, -12910, 32522, 4011, 7962, -31786, -30572, -11793, 32568, 3612, 7180, -31972, -30986, -10660, 32610, 3212, 6393, -32138, -31357, -9512, 32647, 2811, 5602, -32286, - 31686, -8351, 32679, 2411, 4808, -32413, -31972, -7180, 32706, 2009, 4011, -32522, -32214, -5998, 32729, 1608, 3212, -32610, -32413, -4808, 32746, 1206, 2411, -32679, -32568, -3612, 32758, 804, 1608, -32729, - 32679, -2411, 32766, 402, 804, -32758, -32746, -1206, 0, 32767, 0, 32767, 0, 32767, 1608, 32729, 3212, 32610, 4808, 32413, 3212, 32610, 6393, 32138, 9512, 31357, 4808, 32413, 9512, 31357, 14010, 29622, 6393, 32138, 12540, 30274, 18205, 27246, 7962, 31786, 15447, 28899, 22006, 24279, 9512, 31357, 18205, 27246, 25330, 20788, 11039, 30853, 20788, 25330, 28106, 16846, 12540, 30274, 23170, 23170, 30274, 12540, 14010, 29622, 25330, 20788, 31786, 7962, 15447, 28899, 27246, 18205, 32610, 3212, 16846, 28106, 28899, 15447, 32729, -1608, 18205, 27246, 30274, 12540, 32138, -6393, 19520, 26320, 31357, 9512, 30853, -11039, 20788, 25330, 32138, 6393, 28899, -15447, 22006, 24279, 32610, 3212, 26320, -19520, 23170, 23170, 32767, 0, 23170, -23170, 24279, 22006, 32610, -3212, 19520, -26320, 25330, 20788, 32138, -6393, 15447, -28899, 26320, 19520, 31357, -9512, 11039, -30853, 27246, 18205, 30274, -12540, 6393, -32138, 28106, 16846, 28899, -15447, 1608, -32729, 28899, 15447, 27246, -18205, -3212, -32610, 29622, 14010, 25330, -20788, - 7962, -31786, 30274, 12540, 23170, -23170, -12540, -30274, 30853, 11039, 20788, -25330, -16846, -28106, 31357, 9512, 18205, -27246, -20788, -25330, 31786, 7962, 15447, -28899, -24279, -22006, 32138, 6393, 12540, -30274, - 27246, -18205, 32413, 4808, 9512, -31357, -29622, -14010, 32610, 3212, 6393, -32138, -31357, -9512, 32729, 1608, 3212, -32610, -32413, -4808, 0, 32767, 0, 32767, 0, 32767, 6393, 32138, 12540, 30274, 18205, 27246, 12540, 30274, 23170, 23170, 30274, 12540, 18205, 27246, 30274, 12540, 32138, -6393, 23170, 23170, 32767, 0, 23170, -23170, 27246, 18205, 30274, -12540, 6393, -32138, 30274, 12540, 23170, -23170, - 12540, -30274, 32138, 6393, 12540, -30274, -27246, -18205, 0, 32767, 0, 32767, 0, 32767, 23170, 23170, 32767, 0, 23170, -23170, }, // WORD16 w_32[60]= { 0, 32767, 0, 32767, 0, 32767, 6393, 32137, 12539, 30273, 18204, 27245, 12539, 30273, 23170, 23170, 30273, 12539, 18204, 27245, 30273, 12539, 32137, -6392, 23170, 23170, 32767, 0, 23170, -23169, 27245, 18204, 30273, -12538, 6393, -32136, 30273, 12539, 23170, -23169, -12538, -30272, 32137, 6393, 12539, -30272, -27244, -18203, 0, 32767, 0, 32767, 0, 32767, 23170, 23170, 32767, 0, 23170, -23169 }, // const WORD16 cosine_array_240[120] = { 32767, 107, 751, 32759, 32754, 965, 1608, 32729, 32717, 1822, 2464, 32675, 32658, 2678, 3319, 32600, 32577, 3532, 4171, 32501, 32473, 4383, 5020, 32381, 32348, 5232, 5866, 32239, 32200, 6077, 6708, 32074, 32029, 6918, 7545, 31887, 31837, 7754, 8377, 31679, 31624, 8585, 9204, 31449, 31388, 9409, 10024, 31197, 31131, 10228, 10837, 30924, 30853, 11039, 11643, 30630, 30553, 11843, 12441, 30315, 30232, 12639, 13230, 29979, 29891, 13426, 14010, 29622, 29530, 14204, 14781, 29245, 29148, 14972, 15541, 28848, 28746, 15730, 16291, 28431, 28324, 16477, 17030, 27995, 27883, 17213, 17757, 27540, 27423, 17937, 18472, 27066, 26944, 18648, 19174, 26573, 26447, 19347, 19863, 26062, 25931, 20033, 20538, 25533, 25398, 20705, 21199, 24986, 24847, 21363, 21846, 24423, 24279, 22006, 22478, 23843, 23695, 22634, 23095, 23246 }, };