/* * AMR wideband data and definitions * Copyright (c) 2010 Marcelo Galvao Povoa * * This file is part of FFmpeg. * * FFmpeg is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * FFmpeg is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with FFmpeg; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ /** * @file * AMR wideband data and definitions */ #ifndef AVCODEC_AMRWBDATA_H#define AVCODEC_AMRWBDATA_H #include <stdint.h>#include <stddef.h> #define LP_ORDER 16 ///< linear predictive coding filter order#define LP_ORDER_16k 20 ///< lpc filter order at 16kHz#define HB_FIR_SIZE 30 ///< amount of past data needed by HB filters#define UPS_FIR_SIZE 12 ///< upsampling filter size#define UPS_MEM_SIZE (2 * UPS_FIR_SIZE) #define MIN_ISF_SPACING (128.0 / 32768.0) ///< minimum isf gap#define PRED_FACTOR (1.0 / 3.0)#define MIN_ENERGY -14.0 ///< initial innovation energy (dB)#define ENERGY_MEAN 30.0 ///< mean innovation energy (dB) in all modes#define PREEMPH_FAC 0.68 ///< factor used to de-emphasize synthesis #define AMRWB_SFR_SIZE 64 ///< samples per subframe at 12.8 kHz#define AMRWB_SFR_SIZE_16k 80 ///< samples per subframe at 16 kHz#define AMRWB_P_DELAY_MAX 231 ///< maximum pitch delay value#define AMRWB_P_DELAY_MIN 34 /* Relative mode ordering is sensitive */enum Mode { MODE_6k60 = 0, ///< 6.60 kbit/s MODE_8k85, ///< 8.85 kbit/s MODE_12k65, ///< 12.65 kbit/s MODE_14k25, ///< 14.25 kbit/s MODE_15k85, ///< 15.85 kbit/s MODE_18k25, ///< 18.25 kbit/s MODE_19k85, ///< 19.85 kbit/s MODE_23k05, ///< 23.05 kbit/s MODE_23k85, ///< 23.85 kbit/s MODE_SID, ///< comfort noise frame /* 10-13: Future use */ SP_LOST = 14, ///< speech lost NO_DATA ///< no transmission}; /* All decoded parameters in these structs must be 2 bytes long * because of the direct indexing at the frame parsing */typedef struct AMRWBSubFrame { uint16_t adap; ///< adaptive codebook index uint16_t ltp; ///< ltp-filtering flag uint16_t vq_gain; ///< VQ adaptive and innovative gains uint16_t hb_gain; ///< high-band energy index (mode 23k85 only) uint16_t pul_ih[4]; ///< MSBs part of codebook index (high modes only) uint16_t pul_il[4]; ///< LSBs part of codebook index} AMRWBSubFrame; typedef struct AMRWBFrame { uint16_t vad; ///< voice activity detection flag uint16_t isp_id[7]; ///< index of ISP subvectors AMRWBSubFrame subframe[4]; ///< data for subframes} AMRWBFrame; /** The index of a frame parameter */#define AMR_BIT(field) (offsetof(AMRWBFrame, field))/** The index of a subframe-specific parameter */#define AMR_OF(frame_num, variable) AMR_BIT(subframe[frame_num].variable) //As defined in 3GPP TS 26.201 V9.0.0//Tables for bit parsing in Core Frame speech frames//The reordered bits are in order of decreasing importance and//may be contiguously separated in Class A, B and C bits. // Each field in AMRWBFrame is stored as:// * one byte for the number of bits in the field// * one byte for the field index// * then, one byte for each bit of the field (from most-significant to least)// of the position of that bit in the AMR frame.static const uint16_t order_MODE_6k60[] = { 1, AMR_BIT(vad), 7, 8, AMR_BIT(isp_id[0]), 24, 33, 39, 12, 6, 5, 4, 13, 8, AMR_BIT(isp_id[1]), 65, 79, 64, 78, 51, 61, 71, 70, 7, AMR_BIT(isp_id[2]), 52, 55, 44, 54, 53, 43, 42, 7, AMR_BIT(isp_id[3]), 60, 59, 58, 57, 56, 75, 74, 6, AMR_BIT(isp_id[4]), 73, 72, 86, 87, 85, 84, 8, AMR_OF(0, adap), 11, 10, 9, 8, 28, 27, 49, 69, 6, AMR_OF(0, pul_il[0]), 83, 91, 99, 107, 115, 123, 6, AMR_OF(0, pul_il[1]), 82, 103, 111, 119, 127, 135, 6, AMR_OF(0, vq_gain), 38, 23, 34, 19, 3, 15, 5, AMR_OF(1, adap), 32, 41, 63, 67, 77, 6, AMR_OF(1, pul_il[0]), 81, 90, 98, 106, 114, 122, 6, AMR_OF(1, pul_il[1]), 80, 102, 110, 118, 126, 134, 6, AMR_OF(1, vq_gain), 26, 22, 36, 18, 2, 14, 5, AMR_OF(2, adap), 45, 40, 50, 48, 68, 6, AMR_OF(2, pul_il[0]), 95, 89, 97, 105, 113, 121, 6, AMR_OF(2, pul_il[1]), 94, 101, 109, 117, 125, 133, 6, AMR_OF(2, vq_gain), 37, 21, 35, 17, 1, 31, 5, AMR_OF(3, adap), 47, 46, 62, 66, 76, 6, AMR_OF(3, pul_il[0]), 93, 88, 96, 104, 112, 120, 6, AMR_OF(3, pul_il[1]), 92, 100, 108, 116, 124, 132, 6, AMR_OF(3, vq_gain), 25, 20, 29, 16, 0, 30, 0}; static const uint16_t order_MODE_8k85[] = { 1, AMR_BIT(vad), 7, 8, AMR_BIT(isp_id[0]), 47, 32, 2, 6, 3, 5, 4, 60, 8, AMR_BIT(isp_id[1]), 69, 50, 67, 41, 51, 49, 59, 53, 6, AMR_BIT(isp_id[2]), 40, 55, 43, 54, 42, 62, 7, AMR_BIT(isp_id[3]), 63, 48, 52, 61, 77, 78, 72, 7, AMR_BIT(isp_id[4]), 85, 56, 86, 68, 74, 73, 81, 5, AMR_BIT(isp_id[5]), 82, 95, 80, 94, 91, 5, AMR_BIT(isp_id[6]), 90, 89, 88, 103, 87, 8, AMR_OF(0, adap), 1, 0, 15, 35, 33, 58, 64, 84, 5, AMR_OF(0, pul_il[0]), 102, 118, 134, 150, 166, 5, AMR_OF(0, pul_il[1]), 101, 114, 130, 146, 162, 5, AMR_OF(0, pul_il[2]), 100, 126, 142, 158, 174, 5, AMR_OF(0, pul_il[3]), 99, 122, 138, 154, 170, 6, AMR_OF(0, vq_gain), 11, 39, 19, 31, 27, 23, 5, AMR_OF(1, adap), 46, 71, 66, 76, 93, 5, AMR_OF(1, pul_il[0]), 98, 117, 133, 149, 165, 5, AMR_OF(1, pul_il[1]), 97, 113, 129, 145, 161, 5, AMR_OF(1, pul_il[2]), 96, 125, 141, 157, 173, 5, AMR_OF(1, pul_il[3]), 111, 121, 137, 153, 169, 6, AMR_OF(1, vq_gain), 10, 38, 18, 30, 26, 22, 8, AMR_OF(2, adap), 14, 13, 12, 34, 45, 57, 79, 83, 5, AMR_OF(2, pul_il[0]), 110, 116, 132, 148, 164, 5, AMR_OF(2, pul_il[1]), 109, 112, 128, 144, 160, 5, AMR_OF(2, pul_il[2]), 108, 124, 140, 156, 172, 5, AMR_OF(2, pul_il[3]), 107, 120, 136, 152, 168, 6, AMR_OF(2, vq_gain), 9, 37, 17, 29, 25, 21, 5, AMR_OF(3, adap), 44, 70, 65, 75, 92, 5, AMR_OF(3, pul_il[0]), 106, 115, 131, 147, 163, 5, AMR_OF(3, pul_il[1]), 105, 127, 143, 159, 175, 5, AMR_OF(3, pul_il[2]), 104, 123, 139, 155, 171, 5, AMR_OF(3, pul_il[3]), 119, 135, 151, 167, 183, 6, AMR_OF(3, vq_gain), 8, 36, 16, 28, 24, 20, 0}; static const uint16_t order_MODE_12k65[] = { 1, AMR_BIT(vad), 7, 8, AMR_BIT(isp_id[0]), 55, 40, 14, 6, 15, 5, 0, 68, 8, AMR_BIT(isp_id[1]), 77, 58, 75, 49, 59, 57, 67, 61, 6, AMR_BIT(isp_id[2]), 48, 63, 51, 62, 50, 70, 7, AMR_BIT(isp_id[3]), 71, 56, 60, 69, 85, 86, 80, 7, AMR_BIT(isp_id[4]), 93, 64, 94, 76, 82, 81, 89, 5, AMR_BIT(isp_id[5]), 90, 103, 88, 102, 99, 5, AMR_BIT(isp_id[6]), 98, 97, 96, 111, 95, 9, AMR_OF(0, adap), 13, 12, 11, 10, 9, 41, 66, 72, 92, 1, AMR_OF(0, ltp), 110, 9, AMR_OF(0, pul_il[0]), 106, 122, 154, 186, 218, 134, 166, 198, 230, 9, AMR_OF(0, pul_il[1]), 105, 130, 162, 194, 226, 142, 174, 206, 238, 9, AMR_OF(0, pul_il[2]), 104, 138, 170, 202, 234, 150, 182, 214, 246, 9, AMR_OF(0, pul_il[3]), 119, 146, 178, 210, 242, 158, 190, 222, 254, 7, AMR_OF(0, vq_gain), 4, 19, 45, 27, 39, 33, 31, 6, AMR_OF(1, adap), 35, 54, 79, 74, 84, 101, 1, AMR_OF(1, ltp), 109, 9, AMR_OF(1, pul_il[0]), 118, 121, 153, 185, 217, 133, 165, 197, 229, 9, AMR_OF(1, pul_il[1]), 117, 129, 161, 193, 225, 141, 173, 205, 237, 9, AMR_OF(1, pul_il[2]), 116, 137, 169, 201, 233, 149, 181, 213, 245, 9, AMR_OF(1, pul_il[3]), 115, 145, 177, 209, 241, 157, 189, 221, 253, 7, AMR_OF(1, vq_gain), 3, 18, 44, 26, 38, 32, 30, 9, AMR_OF(2, adap), 8, 23, 22, 21, 20, 52, 65, 87, 91, 1, AMR_OF(2, ltp), 108, 9, AMR_OF(2, pul_il[0]), 114, 120, 152, 184, 216, 132, 164, 196, 228, 9, AMR_OF(2, pul_il[1]), 113, 128, 160, 192, 224, 140, 172, 204, 236, 9, AMR_OF(2, pul_il[2]), 112, 136, 168, 200, 232, 148, 180, 212, 244, 9, AMR_OF(2, pul_il[3]), 127, 144, 176, 208, 240, 156, 188, 220, 252, 7, AMR_OF(2, vq_gain), 2, 17, 43, 25, 37, 47, 29, 6, AMR_OF(3, adap), 34, 53, 78, 73, 83, 100, 1, AMR_OF(3, ltp), 107, 9, AMR_OF(3, pul_il[0]), 126, 135, 167, 199, 231, 131, 163, 195, 227, 9, AMR_OF(3, pul_il[1]), 125, 143, 175, 207, 239, 139, 171, 203, 235, 9, AMR_OF(3, pul_il[2]), 124, 151, 183, 215, 247, 147, 179, 211, 243, 9, AMR_OF(3, pul_il[3]), 123, 159, 191, 223, 255, 155, 187, 219, 251, 7, AMR_OF(3, vq_gain), 1, 16, 42, 24, 36, 46, 28, 0}; static const uint16_t order_MODE_14k25[] = { 1, AMR_BIT(vad), 7, 8, AMR_BIT(isp_id[0]), 55, 40, 14, 6, 15, 5, 0, 68, 8, AMR_BIT(isp_id[1]), 77, 58, 75, 49, 59, 57, 67, 61, 6, AMR_BIT(isp_id[2]), 48, 63, 51, 62, 50, 70, 7, AMR_BIT(isp_id[3]), 71, 56, 60, 69, 85, 86, 80, 7, AMR_BIT(isp_id[4]), 93, 64, 94, 76, 82, 81, 89, 5, AMR_BIT(isp_id[5]), 90, 103, 88, 102, 99, 5, AMR_BIT(isp_id[6]), 98, 97, 96, 111, 95, 9, AMR_OF(0, adap), 13, 12, 11, 10, 9, 41, 66, 72, 92, 1, AMR_OF(0, ltp), 110, 13, AMR_OF(0, pul_il[0]), 114, 186, 210, 234, 258, 106, 126, 162, 170, 198, 222, 246, 270, 13, AMR_OF(0, pul_il[1]), 122, 194, 218, 242, 266, 118, 134, 174, 182, 206, 230, 254, 278, 9, AMR_OF(0, pul_il[2]), 130, 138, 146, 154, 178, 202, 226, 250, 274, 9, AMR_OF(0, pul_il[3]), 142, 150, 158, 166, 190, 214, 238, 262, 286, 7, AMR_OF(0, vq_gain), 4, 19, 45, 27, 39, 33, 31, 6, AMR_OF(1, adap), 35, 54, 79, 74, 84, 101, 1, AMR_OF(1, ltp), 109, 13, AMR_OF(1, pul_il[0]), 113, 185, 209, 233, 257, 105, 125, 161, 169, 197, 221, 245, 269, 13, AMR_OF(1, pul_il[1]), 121, 193, 217, 241, 265, 117, 133, 173, 181, 205, 229, 253, 277, 9, AMR_OF(1, pul_il[2]), 129, 137, 145, 153, 177, 201, 225, 249, 273, 9, AMR_OF(1, pul_il[3]), 141, 149, 157, 165, 189, 213, 237, 261, 285, 7, AMR_OF(1, vq_gain), 3, 18, 44, 26, 38, 32, 30, 9, AMR_OF(2, adap), 8, 23, 22, 21, 20, 52, 65, 87, 91, 1, AMR_OF(2, ltp), 108, 13, AMR_OF(2, pul_il[0]), 112, 184, 208, 232, 256, 104, 124, 160, 168, 196, 220, 244, 268, 13, AMR_OF(2, pul_il[1]), 120, 192, 216, 240, 264, 116, 132, 172, 180, 204, 228, 252, 276, 9, AMR_OF(2, pul_il[2]), 128, 136, 144, 152, 176, 200, 224, 248, 272, 9, AMR_OF(2, pul_il[3]), 140, 148, 156, 164, 188, 212, 236, 260, 284, 7, AMR_OF(2, vq_gain), 2, 17, 43, 25, 37, 47, 29, 6, AMR_OF(3, adap), 34, 53, 78, 73, 83, 100, 1, AMR_OF(3, ltp), 107, 13, AMR_OF(3, pul_il[0]), 127, 199, 223, 247, 271, 119, 123, 175, 183, 195, 219, 243, 267, 13, AMR_OF(3, pul_il[1]), 135, 207, 231, 255, 279, 115, 131, 171, 179, 203, 227, 251, 275, 9, AMR_OF(3, pul_il[2]), 143, 151, 159, 167, 191, 215, 239, 263, 287, 9, AMR_OF(3, pul_il[3]), 139, 147, 155, 163, 187, 211, 235, 259, 283, 7, AMR_OF(3, vq_gain), 1, 16, 42, 24, 36, 46, 28, 0}; static const uint16_t order_MODE_15k85[] = { 1, AMR_BIT(vad), 7, 8, AMR_BIT(isp_id[0]), 55, 40, 14, 6, 15, 5, 0, 68, 8, AMR_BIT(isp_id[1]), 77, 58, 75, 49, 59, 57, 67, 61, 6, AMR_BIT(isp_id[2]), 48, 63, 51, 62, 50, 70, 7, AMR_BIT(isp_id[3]), 71, 56, 60, 69, 85, 86, 80, 7, AMR_BIT(isp_id[4]), 93, 64, 94, 76, 82, 81, 89, 5, AMR_BIT(isp_id[5]), 90, 103, 88, 102, 99, 5, AMR_BIT(isp_id[6]), 98, 97, 96, 111, 95, 9, AMR_OF(0, adap), 13, 12, 11, 10, 9, 41, 66, 72, 92, 1, AMR_OF(0, ltp), 110, 13, AMR_OF(0, pul_il[0]), 122, 154, 170, 218, 266, 138, 106, 182, 230, 278, 178, 226, 274, 13, AMR_OF(0, pul_il[1]), 134, 166, 190, 238, 286, 150, 118, 186, 234, 282, 198, 246, 294, 13, AMR_OF(0, pul_il[2]), 130, 162, 194, 242, 290, 146, 114, 206, 254, 302, 202, 250, 298, 13, AMR_OF(0, pul_il[3]), 142, 174, 214, 262, 310, 158, 126, 210, 258, 306, 222, 270, 318, 7, AMR_OF(0, vq_gain), 4, 19, 45, 27, 39, 33, 31, 6, AMR_OF(1, adap), 35, 54, 79, 74, 84, 101, 1, AMR_OF(1, ltp), 109, 13, AMR_OF(1, pul_il[0]), 121, 153, 169, 217, 265, 137, 105, 181, 229, 277, 177, 225, 273, 13, AMR_OF(1, pul_il[1]), 133, 165, 189, 237, 285, 149, 117, 185, 233, 281, 197, 245, 293, 13, AMR_OF(1, pul_il[2]), 129, 161, 193, 241, 289, 145, 113, 205, 253, 301, 201, 249, 297, 13, AMR_OF(1, pul_il[3]), 141, 173, 213, 261, 309, 157, 125, 209, 257, 305, 221, 269, 317, 7, AMR_OF(1, vq_gain), 3, 18, 44, 26, 38, 32, 30, 9, AMR_OF(2, adap), 8, 23, 22, 21, 20, 52, 65, 87, 91, 1, AMR_OF(2, ltp), 108, 13, AMR_OF(2, pul_il[0]), 120, 152, 168, 216, 264, 136, 104, 180, 228, 276, 176, 224, 272, 13, AMR_OF(2, pul_il[1]), 132, 164, 188, 236, 284, 148, 116, 184, 232, 280, 196, 244, 292, 13, AMR_OF(2, pul_il[2]), 128, 160, 192, 240, 288, 144, 112, 204, 252, 300, 200, 248, 296, 13, AMR_OF(2, pul_il[3]), 140, 172, 212, 260, 308, 156, 124, 208, 256, 304, 220, 268, 316, 7, AMR_OF(2, vq_gain), 2, 17, 43, 25, 37, 47, 29, 6, AMR_OF(3, adap), 34, 53, 78, 73, 83, 100, 1, AMR_OF(3, ltp), 107, 13, AMR_OF(3, pul_il[0]), 135, 167, 183, 231, 279, 151, 119, 179, 227, 275, 191, 239, 287, 13, AMR_OF(3, pul_il[1]), 131, 163, 187, 235, 283, 147, 115, 199, 247, 295, 195, 243, 291, 13, AMR_OF(3, pul_il[2]), 143, 175, 207, 255, 303, 159, 127, 203, 251, 299, 215, 263, 311, 13, AMR_OF(3, pul_il[3]), 139, 171, 211, 259, 307, 155, 123, 223, 271, 319, 219, 267, 315, 7, AMR_OF(3, vq_gain), 1, 16, 42, 24, 36, 46, 28, 0}; static const uint16_t order_MODE_18k25[] = { 1, AMR_BIT(vad), 7, 8, AMR_BIT(isp_id[0]), 55, 40, 14, 6, 15, 5, 0, 68, 8, AMR_BIT(isp_id[1]), 77, 58, 75, 49, 59, 57, 67, 61, 6, AMR_BIT(isp_id[2]), 48, 63, 51, 62, 50, 70, 7, AMR_BIT(isp_id[3]), 71, 56, 60, 69, 85, 86, 80, 7, AMR_BIT(isp_id[4]), 93, 64, 94, 76, 82, 81, 89, 5, AMR_BIT(isp_id[5]), 90, 103, 88, 102, 99, 5, AMR_BIT(isp_id[6]), 98, 97, 96, 111, 95, 9, AMR_OF(0, adap), 13, 12, 11, 10, 9, 41, 66, 72, 92, 1, AMR_OF(0, ltp), 110, 2, AMR_OF(0, pul_ih[0]), 124, 115, 2, AMR_OF(0, pul_ih[1]), 150, 117, 2, AMR_OF(0, pul_ih[2]), 129, 114, 2, AMR_OF(0, pul_ih[3]), 121, 131, 14, AMR_OF(0, pul_il[0]), 161, 257, 343, 199, 177, 303, 204, 173, 168, 260, 277, 307, 338, 128, 14, AMR_OF(0, pul_il[1]), 194, 286, 347, 222, 214, 316, 236, 152, 166, 242, 284, 308, 344, 142, 14, AMR_OF(0, pul_il[2]), 169, 273, 353, 202, 189, 311, 240, 200, 171, 261, 309, 296, 345, 130, 14, AMR_OF(0, pul_il[3]), 198, 275, 349, 187, 163, 282, 193, 195, 175, 234, 265, 289, 328, 119, 7, AMR_OF(0, vq_gain), 4, 19, 45, 27, 39, 33, 31, 6, AMR_OF(1, adap), 35, 54, 79, 74, 84, 101, 1, AMR_OF(1, ltp), 109, 2, AMR_OF(1, pul_ih[0]), 139, 104, 2, AMR_OF(1, pul_ih[1]), 135, 118, 2, AMR_OF(1, pul_ih[2]), 112, 127, 2, AMR_OF(1, pul_ih[3]), 140, 141, 14, AMR_OF(1, pul_il[0]), 179, 276, 340, 225, 223, 321, 235, 190, 182, 271, 310, 315, 352, 125, 14, AMR_OF(1, pul_il[1]), 153, 264, 329, 232, 209, 323, 231, 165, 191, 279, 290, 312, 367, 134, 14, AMR_OF(1, pul_il[2]), 167, 269, 341, 205, 197, 298, 224, 160, 170, 259, 280, 317, 357, 148, 14, AMR_OF(1, pul_il[3]), 203, 272, 342, 227, 192, 299, 233, 172, 183, 256, 283, 326, 355, 106, 7, AMR_OF(1, vq_gain), 3, 18, 44, 26, 38, 32, 30, 9, AMR_OF(2, adap), 8, 23, 22, 21, 20, 52, 65, 87, 91, 1, AMR_OF(2, ltp), 108, 2, AMR_OF(2, pul_ih[0]), 144, 120, 2, AMR_OF(2, pul_ih[1]), 157, 123, 2, AMR_OF(2, pul_ih[2]), 145, 138, 2, AMR_OF(2, pul_ih[3]), 132, 154, 14, AMR_OF(2, pul_il[0]), 241, 319, 365, 252, 253, 331, 254, 230, 220, 263, 285, 314, 364, 156, 14, AMR_OF(2, pul_il[1]), 247, 291, 339, 249, 250, 332, 267, 196, 207, 268, 304, 324, 356, 158, 14, AMR_OF(2, pul_il[2]), 210, 300, 348, 243, 237, 333, 246, 206, 219, 266, 318, 335, 363, 159, 14, AMR_OF(2, pul_il[3]), 239, 306, 366, 221, 226, 297, 251, 184, 178, 258, 292, 305, 346, 116, 7, AMR_OF(2, vq_gain), 2, 17, 43, 25, 37, 47, 29, 6, AMR_OF(3, adap), 34, 53, 78, 73, 83, 100, 1, AMR_OF(3, ltp), 107, 2, AMR_OF(3, pul_ih[0]), 143, 126, 2, AMR_OF(3, pul_ih[1]), 137, 122, 2, AMR_OF(3, pul_ih[2]), 149, 105, 2, AMR_OF(3, pul_ih[3]), 133, 136, 14, AMR_OF(3, pul_il[0]), 162, 287, 337, 244, 229, 322, 218, 180, 186, 262, 274, 288, 351, 146, 14, AMR_OF(3, pul_il[1]), 212, 294, 358, 248, 228, 334, 215, 174, 176, 270, 293, 301, 354, 147, 14, AMR_OF(3, pul_il[2]), 185, 327, 336, 211, 213, 313, 245, 181, 188, 255, 281, 325, 350, 151, 14, AMR_OF(3, pul_il[3]), 201, 295, 359, 216, 208, 320, 238, 164, 155, 217, 278, 302, 330, 113, 7, AMR_OF(3, vq_gain), 1, 16, 42, 24, 36, 46, 28, 0}; static const uint16_t order_MODE_19k85[] = { 1, AMR_BIT(vad), 7, 8, AMR_BIT(isp_id[0]), 55, 40, 14, 6, 15, 5, 0, 68, 8, AMR_BIT(isp_id[1]), 77, 58, 75, 49, 59, 57, 67, 61, 6, AMR_BIT(isp_id[2]), 48, 63, 51, 62, 50, 70, 7, AMR_BIT(isp_id[3]), 71, 56, 60, 69, 85, 86, 80, 7, AMR_BIT(isp_id[4]), 93, 64, 94, 76, 82, 81, 89, 5, AMR_BIT(isp_id[5]), 90, 103, 88, 102, 99, 5, AMR_BIT(isp_id[6]), 98, 97, 96, 111, 95, 9, AMR_OF(0, adap), 13, 12, 11, 10, 9, 41, 66, 72, 92, 1, AMR_OF(0, ltp), 110, 10, AMR_OF(0, pul_ih[0]), 134, 153, 263, 342, 399, 154, 106, 177, 317, 265, 10, AMR_OF(0, pul_ih[1]), 128, 167, 270, 351, 385, 160, 105, 213, 329, 259, 2, AMR_OF(0, pul_ih[2]), 123, 147, 2, AMR_OF(0, pul_ih[3]), 131, 143, 10, AMR_OF(0, pul_il[0]), 346, 118, 170, 201, 296, 368, 250, 284, 341, 391, 10, AMR_OF(0, pul_il[1]), 345, 104, 166, 196, 281, 374, 242, 269, 327, 390, 14, AMR_OF(0, pul_il[2]), 141, 171, 291, 364, 229, 210, 308, 228, 206, 200, 258, 295, 313, 361, 14, AMR_OF(0, pul_il[3]), 144, 188, 282, 366, 217, 216, 309, 218, 193, 182, 245, 287, 300, 367, 7, AMR_OF(0, vq_gain), 4, 19, 45, 27, 39, 33, 31, 6, AMR_OF(1, adap), 35, 54, 79, 74, 84, 101, 1, AMR_OF(1, ltp), 109, 10, AMR_OF(1, pul_ih[0]), 139, 169, 267, 348, 389, 163, 116, 189, 343, 268, 10, AMR_OF(1, pul_ih[1]), 120, 161, 249, 339, 397, 152, 114, 230, 334, 303, 2, AMR_OF(1, pul_ih[2]), 125, 138, 2, AMR_OF(1, pul_ih[3]), 112, 129, 10, AMR_OF(1, pul_il[0]), 349, 122, 162, 203, 288, 372, 278, 274, 312, 377, 10, AMR_OF(1, pul_il[1]), 357, 126, 165, 214, 298, 362, 252, 260, 321, 378, 14, AMR_OF(1, pul_il[2]), 150, 199, 266, 355, 211, 180, 285, 241, 195, 198, 243, 275, 323, 375, 14, AMR_OF(1, pul_il[3]), 142, 191, 256, 353, 208, 220, 314, 237, 190, 212, 255, 304, 318, 371, 7, AMR_OF(1, vq_gain), 3, 18, 44, 26, 38, 32, 30, 9, AMR_OF(2, adap), 8, 23, 22, 21, 20, 52, 65, 87, 91, 1, AMR_OF(2, ltp), 108, 10, AMR_OF(2, pul_ih[0]), 159, 168, 302, 356, 395, 178, 132, 185, 330, 286, 10, AMR_OF(2, pul_ih[1]), 158, 181, 292, 358, 396, 176, 133, 235, 331, 276, 2, AMR_OF(2, pul_ih[2]), 130, 157, 2, AMR_OF(2, pul_ih[3]), 124, 136, 10, AMR_OF(2, pul_il[0]), 354, 121, 194, 246, 322, 379, 272, 273, 332, 398, 10, AMR_OF(2, pul_il[1]), 359, 140, 186, 236, 333, 376, 290, 301, 338, 387, 14, AMR_OF(2, pul_il[2]), 155, 227, 319, 369, 253, 254, 350, 248, 224, 239, 240, 293, 315, 383, 14, AMR_OF(2, pul_il[3]), 156, 209, 297, 373, 225, 215, 326, 247, 197, 184, 232, 289, 310, 365, 7, AMR_OF(2, vq_gain), 2, 17, 43, 25, 37, 47, 29, 6, AMR_OF(3, adap), 34, 53, 78, 73, 83, 100, 1, AMR_OF(3, ltp), 107, 10, AMR_OF(3, pul_ih[0]), 148, 164, 264, 340, 388, 183, 117, 205, 336, 261, 10, AMR_OF(3, pul_ih[1]), 146, 174, 257, 335, 384, 173, 113, 187, 320, 279, 2, AMR_OF(3, pul_ih[2]), 127, 151, 2, AMR_OF(3, pul_ih[3]), 119, 137, 10, AMR_OF(3, pul_il[0]), 352, 135, 172, 238, 306, 381, 262, 271, 328, 382, 10, AMR_OF(3, pul_il[1]), 347, 115, 179, 219, 305, 380, 277, 294, 337, 386, 14, AMR_OF(3, pul_il[2]), 145, 192, 307, 370, 234, 223, 324, 244, 202, 204, 251, 299, 325, 360, 14, AMR_OF(3, pul_il[3]), 149, 221, 311, 363, 226, 222, 316, 231, 207, 175, 233, 280, 283, 344, 7, AMR_OF(3, vq_gain), 1, 16, 42, 24, 36, 46, 28, 0}; static const uint16_t order_MODE_23k05[] = { 1, AMR_BIT(vad), 7, 8, AMR_BIT(isp_id[0]), 55, 40, 14, 6, 15, 5, 0, 68, 8, AMR_BIT(isp_id[1]), 77, 58, 75, 49, 59, 57, 67, 61, 6, AMR_BIT(isp_id[2]), 48, 63, 51, 62, 50, 70, 7, AMR_BIT(isp_id[3]), 71, 56, 60, 69, 85, 86, 80, 7, AMR_BIT(isp_id[4]), 93, 64, 94, 76, 82, 81, 89, 5, AMR_BIT(isp_id[5]), 90, 103, 88, 102, 99, 5, AMR_BIT(isp_id[6]), 98, 97, 96, 111, 95, 9, AMR_OF(0, adap), 13, 12, 11, 10, 9, 41, 66, 72,Lines 1–500 of 1890. Load more
/* * AMR wideband data and definitions * Copyright (c) 2010 Marcelo Galvao Povoa * * This file is part of FFmpeg. * * FFmpeg is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * FFmpeg is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with FFmpeg; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ /** * @file * AMR wideband data and definitions */ #ifndef AVCODEC_AMRWBDATA_H #define AVCODEC_AMRWBDATA_H #include <stdint.h> #include <stddef.h> #define LP_ORDER 16 ///< linear predictive coding filter order #define LP_ORDER_16k 20 ///< lpc filter order at 16kHz #define HB_FIR_SIZE 30 ///< amount of past data needed by HB filters #define UPS_FIR_SIZE 12 ///< upsampling filter size #define UPS_MEM_SIZE (2 * UPS_FIR_SIZE) #define MIN_ISF_SPACING (128.0 / 32768.0) ///< minimum isf gap #define PRED_FACTOR (1.0 / 3.0) #define MIN_ENERGY -14.0 ///< initial innovation energy (dB) #define ENERGY_MEAN 30.0 ///< mean innovation energy (dB) in all modes #define PREEMPH_FAC 0.68 ///< factor used to de-emphasize synthesis #define AMRWB_SFR_SIZE 64 ///< samples per subframe at 12.8 kHz #define AMRWB_SFR_SIZE_16k 80 ///< samples per subframe at 16 kHz #define AMRWB_P_DELAY_MAX 231 ///< maximum pitch delay value #define AMRWB_P_DELAY_MIN 34 /* Relative mode ordering is sensitive */ enum Mode { MODE_6k60 = 0, ///< 6.60 kbit/s MODE_8k85, ///< 8.85 kbit/s MODE_12k65, ///< 12.65 kbit/s MODE_14k25, ///< 14.25 kbit/s MODE_15k85, ///< 15.85 kbit/s MODE_18k25, ///< 18.25 kbit/s MODE_19k85, ///< 19.85 kbit/s MODE_23k05, ///< 23.05 kbit/s MODE_23k85, ///< 23.85 kbit/s MODE_SID, ///< comfort noise frame /* 10-13: Future use */ SP_LOST = 14, ///< speech lost NO_DATA ///< no transmission }; /* All decoded parameters in these structs must be 2 bytes long * because of the direct indexing at the frame parsing */ typedef struct AMRWBSubFrame { uint16_t adap; ///< adaptive codebook index uint16_t ltp; ///< ltp-filtering flag uint16_t vq_gain; ///< VQ adaptive and innovative gains uint16_t hb_gain; ///< high-band energy index (mode 23k85 only) uint16_t pul_ih[4]; ///< MSBs part of codebook index (high modes only) uint16_t pul_il[4]; ///< LSBs part of codebook index } AMRWBSubFrame; typedef struct AMRWBFrame { uint16_t vad; ///< voice activity detection flag uint16_t isp_id[7]; ///< index of ISP subvectors AMRWBSubFrame subframe[4]; ///< data for subframes } AMRWBFrame; /** The index of a frame parameter */ #define AMR_BIT(field) (offsetof(AMRWBFrame, field)) /** The index of a subframe-specific parameter */ #define AMR_OF(frame_num, variable) AMR_BIT(subframe[frame_num].variable) //As defined in 3GPP TS 26.201 V9.0.0 //Tables for bit parsing in Core Frame speech frames //The reordered bits are in order of decreasing importance and //may be contiguously separated in Class A, B and C bits. // Each field in AMRWBFrame is stored as: // * one byte for the number of bits in the field // * one byte for the field index // * then, one byte for each bit of the field (from most-significant to least) // of the position of that bit in the AMR frame. static const uint16_t order_MODE_6k60[] = { 1, AMR_BIT(vad), 7, 8, AMR_BIT(isp_id[0]), 24, 33, 39, 12, 6, 5, 4, 13, 8, AMR_BIT(isp_id[1]), 65, 79, 64, 78, 51, 61, 71, 70, 7, AMR_BIT(isp_id[2]), 52, 55, 44, 54, 53, 43, 42, 7, AMR_BIT(isp_id[3]), 60, 59, 58, 57, 56, 75, 74, 6, AMR_BIT(isp_id[4]), 73, 72, 86, 87, 85, 84, 8, AMR_OF(0, adap), 11, 10, 9, 8, 28, 27, 49, 69, 6, AMR_OF(0, pul_il[0]), 83, 91, 99, 107, 115, 123, 6, AMR_OF(0, pul_il[1]), 82, 103, 111, 119, 127, 135, 6, AMR_OF(0, vq_gain), 38, 23, 34, 19, 3, 15, 5, AMR_OF(1, adap), 32, 41, 63, 67, 77, 6, AMR_OF(1, pul_il[0]), 81, 90, 98, 106, 114, 122, 6, AMR_OF(1, pul_il[1]), 80, 102, 110, 118, 126, 134, 6, AMR_OF(1, vq_gain), 26, 22, 36, 18, 2, 14, 5, AMR_OF(2, adap), 45, 40, 50, 48, 68, 6, AMR_OF(2, pul_il[0]), 95, 89, 97, 105, 113, 121, 6, AMR_OF(2, pul_il[1]), 94, 101, 109, 117, 125, 133, 6, AMR_OF(2, vq_gain), 37, 21, 35, 17, 1, 31, 5, AMR_OF(3, adap), 47, 46, 62, 66, 76, 6, AMR_OF(3, pul_il[0]), 93, 88, 96, 104, 112, 120, 6, AMR_OF(3, pul_il[1]), 92, 100, 108, 116, 124, 132, 6, AMR_OF(3, vq_gain), 25, 20, 29, 16, 0, 30, 0 }; static const uint16_t order_MODE_8k85[] = { 1, AMR_BIT(vad), 7, 8, AMR_BIT(isp_id[0]), 47, 32, 2, 6, 3, 5, 4, 60, 8, AMR_BIT(isp_id[1]), 69, 50, 67, 41, 51, 49, 59, 53, 6, AMR_BIT(isp_id[2]), 40, 55, 43, 54, 42, 62, 7, AMR_BIT(isp_id[3]), 63, 48, 52, 61, 77, 78, 72, 7, AMR_BIT(isp_id[4]), 85, 56, 86, 68, 74, 73, 81, 5, AMR_BIT(isp_id[5]), 82, 95, 80, 94, 91, 5, AMR_BIT(isp_id[6]), 90, 89, 88, 103, 87, 8, AMR_OF(0, adap), 1, 0, 15, 35, 33, 58, 64, 84, 5, AMR_OF(0, pul_il[0]), 102, 118, 134, 150, 166, 5, AMR_OF(0, pul_il[1]), 101, 114, 130, 146, 162, 5, AMR_OF(0, pul_il[2]), 100, 126, 142, 158, 174, 5, AMR_OF(0, pul_il[3]), 99, 122, 138, 154, 170, 6, AMR_OF(0, vq_gain), 11, 39, 19, 31, 27, 23, 5, AMR_OF(1, adap), 46, 71, 66, 76, 93, 5, AMR_OF(1, pul_il[0]), 98, 117, 133, 149, 165, 5, AMR_OF(1, pul_il[1]), 97, 113, 129, 145, 161, 5, AMR_OF(1, pul_il[2]), 96, 125, 141, 157, 173, 5, AMR_OF(1, pul_il[3]), 111, 121, 137, 153, 169, 6, AMR_OF(1, vq_gain), 10, 38, 18, 30, 26, 22, 8, AMR_OF(2, adap), 14, 13, 12, 34, 45, 57, 79, 83, 5, AMR_OF(2, pul_il[0]), 110, 116, 132, 148, 164, 5, AMR_OF(2, pul_il[1]), 109, 112, 128, 144, 160, 5, AMR_OF(2, pul_il[2]), 108, 124, 140, 156, 172, 5, AMR_OF(2, pul_il[3]), 107, 120, 136, 152, 168, 6, AMR_OF(2, vq_gain), 9, 37, 17, 29, 25, 21, 5, AMR_OF(3, adap), 44, 70, 65, 75, 92, 5, AMR_OF(3, pul_il[0]), 106, 115, 131, 147, 163, 5, AMR_OF(3, pul_il[1]), 105, 127, 143, 159, 175, 5, AMR_OF(3, pul_il[2]), 104, 123, 139, 155, 171, 5, AMR_OF(3, pul_il[3]), 119, 135, 151, 167, 183, 6, AMR_OF(3, vq_gain), 8, 36, 16, 28, 24, 20, 0 }; static const uint16_t order_MODE_12k65[] = { 1, AMR_BIT(vad), 7, 8, AMR_BIT(isp_id[0]), 55, 40, 14, 6, 15, 5, 0, 68, 8, AMR_BIT(isp_id[1]), 77, 58, 75, 49, 59, 57, 67, 61, 6, AMR_BIT(isp_id[2]), 48, 63, 51, 62, 50, 70, 7, AMR_BIT(isp_id[3]), 71, 56, 60, 69, 85, 86, 80, 7, AMR_BIT(isp_id[4]), 93, 64, 94, 76, 82, 81, 89, 5, AMR_BIT(isp_id[5]), 90, 103, 88, 102, 99, 5, AMR_BIT(isp_id[6]), 98, 97, 96, 111, 95, 9, AMR_OF(0, adap), 13, 12, 11, 10, 9, 41, 66, 72, 92, 1, AMR_OF(0, ltp), 110, 9, AMR_OF(0, pul_il[0]), 106, 122, 154, 186, 218, 134, 166, 198, 230, 9, AMR_OF(0, pul_il[1]), 105, 130, 162, 194, 226, 142, 174, 206, 238, 9, AMR_OF(0, pul_il[2]), 104, 138, 170, 202, 234, 150, 182, 214, 246, 9, AMR_OF(0, pul_il[3]), 119, 146, 178, 210, 242, 158, 190, 222, 254, 7, AMR_OF(0, vq_gain), 4, 19, 45, 27, 39, 33, 31, 6, AMR_OF(1, adap), 35, 54, 79, 74, 84, 101, 1, AMR_OF(1, ltp), 109, 9, AMR_OF(1, pul_il[0]), 118, 121, 153, 185, 217, 133, 165, 197, 229, 9, AMR_OF(1, pul_il[1]), 117, 129, 161, 193, 225, 141, 173, 205, 237, 9, AMR_OF(1, pul_il[2]), 116, 137, 169, 201, 233, 149, 181, 213, 245, 9, AMR_OF(1, pul_il[3]), 115, 145, 177, 209, 241, 157, 189, 221, 253, 7, AMR_OF(1, vq_gain), 3, 18, 44, 26, 38, 32, 30, 9, AMR_OF(2, adap), 8, 23, 22, 21, 20, 52, 65, 87, 91, 1, AMR_OF(2, ltp), 108, 9, AMR_OF(2, pul_il[0]), 114, 120, 152, 184, 216, 132, 164, 196, 228, 9, AMR_OF(2, pul_il[1]), 113, 128, 160, 192, 224, 140, 172, 204, 236, 9, AMR_OF(2, pul_il[2]), 112, 136, 168, 200, 232, 148, 180, 212, 244, 9, AMR_OF(2, pul_il[3]), 127, 144, 176, 208, 240, 156, 188, 220, 252, 7, AMR_OF(2, vq_gain), 2, 17, 43, 25, 37, 47, 29, 6, AMR_OF(3, adap), 34, 53, 78, 73, 83, 100, 1, AMR_OF(3, ltp), 107, 9, AMR_OF(3, pul_il[0]), 126, 135, 167, 199, 231, 131, 163, 195, 227, 9, AMR_OF(3, pul_il[1]), 125, 143, 175, 207, 239, 139, 171, 203, 235, 9, AMR_OF(3, pul_il[2]), 124, 151, 183, 215, 247, 147, 179, 211, 243, 9, AMR_OF(3, pul_il[3]), 123, 159, 191, 223, 255, 155, 187, 219, 251, 7, AMR_OF(3, vq_gain), 1, 16, 42, 24, 36, 46, 28, 0 }; static const uint16_t order_MODE_14k25[] = { 1, AMR_BIT(vad), 7, 8, AMR_BIT(isp_id[0]), 55, 40, 14, 6, 15, 5, 0, 68, 8, AMR_BIT(isp_id[1]), 77, 58, 75, 49, 59, 57, 67, 61, 6, AMR_BIT(isp_id[2]), 48, 63, 51, 62, 50, 70, 7, AMR_BIT(isp_id[3]), 71, 56, 60, 69, 85, 86, 80, 7, AMR_BIT(isp_id[4]), 93, 64, 94, 76, 82, 81, 89, 5, AMR_BIT(isp_id[5]), 90, 103, 88, 102, 99, 5, AMR_BIT(isp_id[6]), 98, 97, 96, 111, 95, 9, AMR_OF(0, adap), 13, 12, 11, 10, 9, 41, 66, 72, 92, 1, AMR_OF(0, ltp), 110, 13, AMR_OF(0, pul_il[0]), 114, 186, 210, 234, 258, 106, 126, 162, 170, 198, 222, 246, 270, 13, AMR_OF(0, pul_il[1]), 122, 194, 218, 242, 266, 118, 134, 174, 182, 206, 230, 254, 278, 9, AMR_OF(0, pul_il[2]), 130, 138, 146, 154, 178, 202, 226, 250, 274, 9, AMR_OF(0, pul_il[3]), 142, 150, 158, 166, 190, 214, 238, 262, 286, 7, AMR_OF(0, vq_gain), 4, 19, 45, 27, 39, 33, 31, 6, AMR_OF(1, adap), 35, 54, 79, 74, 84, 101, 1, AMR_OF(1, ltp), 109, 13, AMR_OF(1, pul_il[0]), 113, 185, 209, 233, 257, 105, 125, 161, 169, 197, 221, 245, 269, 13, AMR_OF(1, pul_il[1]), 121, 193, 217, 241, 265, 117, 133, 173, 181, 205, 229, 253, 277, 9, AMR_OF(1, pul_il[2]), 129, 137, 145, 153, 177, 201, 225, 249, 273, 9, AMR_OF(1, pul_il[3]), 141, 149, 157, 165, 189, 213, 237, 261, 285, 7, AMR_OF(1, vq_gain), 3, 18, 44, 26, 38, 32, 30, 9, AMR_OF(2, adap), 8, 23, 22, 21, 20, 52, 65, 87, 91, 1, AMR_OF(2, ltp), 108, 13, AMR_OF(2, pul_il[0]), 112, 184, 208, 232, 256, 104, 124, 160, 168, 196, 220, 244, 268, 13, AMR_OF(2, pul_il[1]), 120, 192, 216, 240, 264, 116, 132, 172, 180, 204, 228, 252, 276, 9, AMR_OF(2, pul_il[2]), 128, 136, 144, 152, 176, 200, 224, 248, 272, 9, AMR_OF(2, pul_il[3]), 140, 148, 156, 164, 188, 212, 236, 260, 284, 7, AMR_OF(2, vq_gain), 2, 17, 43, 25, 37, 47, 29, 6, AMR_OF(3, adap), 34, 53, 78, 73, 83, 100, 1, AMR_OF(3, ltp), 107, 13, AMR_OF(3, pul_il[0]), 127, 199, 223, 247, 271, 119, 123, 175, 183, 195, 219, 243, 267, 13, AMR_OF(3, pul_il[1]), 135, 207, 231, 255, 279, 115, 131, 171, 179, 203, 227, 251, 275, 9, AMR_OF(3, pul_il[2]), 143, 151, 159, 167, 191, 215, 239, 263, 287, 9, AMR_OF(3, pul_il[3]), 139, 147, 155, 163, 187, 211, 235, 259, 283, 7, AMR_OF(3, vq_gain), 1, 16, 42, 24, 36, 46, 28, 0 }; static const uint16_t order_MODE_15k85[] = { 1, AMR_BIT(vad), 7, 8, AMR_BIT(isp_id[0]), 55, 40, 14, 6, 15, 5, 0, 68, 8, AMR_BIT(isp_id[1]), 77, 58, 75, 49, 59, 57, 67, 61, 6, AMR_BIT(isp_id[2]), 48, 63, 51, 62, 50, 70, 7, AMR_BIT(isp_id[3]), 71, 56, 60, 69, 85, 86, 80, 7, AMR_BIT(isp_id[4]), 93, 64, 94, 76, 82, 81, 89, 5, AMR_BIT(isp_id[5]), 90, 103, 88, 102, 99, 5, AMR_BIT(isp_id[6]), 98, 97, 96, 111, 95, 9, AMR_OF(0, adap), 13, 12, 11, 10, 9, 41, 66, 72, 92, 1, AMR_OF(0, ltp), 110, 13, AMR_OF(0, pul_il[0]), 122, 154, 170, 218, 266, 138, 106, 182, 230, 278, 178, 226, 274, 13, AMR_OF(0, pul_il[1]), 134, 166, 190, 238, 286, 150, 118, 186, 234, 282, 198, 246, 294, 13, AMR_OF(0, pul_il[2]), 130, 162, 194, 242, 290, 146, 114, 206, 254, 302, 202, 250, 298, 13, AMR_OF(0, pul_il[3]), 142, 174, 214, 262, 310, 158, 126, 210, 258, 306, 222, 270, 318, 7, AMR_OF(0, vq_gain), 4, 19, 45, 27, 39, 33, 31, 6, AMR_OF(1, adap), 35, 54, 79, 74, 84, 101, 1, AMR_OF(1, ltp), 109, 13, AMR_OF(1, pul_il[0]), 121, 153, 169, 217, 265, 137, 105, 181, 229, 277, 177, 225, 273, 13, AMR_OF(1, pul_il[1]), 133, 165, 189, 237, 285, 149, 117, 185, 233, 281, 197, 245, 293, 13, AMR_OF(1, pul_il[2]), 129, 161, 193, 241, 289, 145, 113, 205, 253, 301, 201, 249, 297, 13, AMR_OF(1, pul_il[3]), 141, 173, 213, 261, 309, 157, 125, 209, 257, 305, 221, 269, 317, 7, AMR_OF(1, vq_gain), 3, 18, 44, 26, 38, 32, 30, 9, AMR_OF(2, adap), 8, 23, 22, 21, 20, 52, 65, 87, 91, 1, AMR_OF(2, ltp), 108, 13, AMR_OF(2, pul_il[0]), 120, 152, 168, 216, 264, 136, 104, 180, 228, 276, 176, 224, 272, 13, AMR_OF(2, pul_il[1]), 132, 164, 188, 236, 284, 148, 116, 184, 232, 280, 196, 244, 292, 13, AMR_OF(2, pul_il[2]), 128, 160, 192, 240, 288, 144, 112, 204, 252, 300, 200, 248, 296, 13, AMR_OF(2, pul_il[3]), 140, 172, 212, 260, 308, 156, 124, 208, 256, 304, 220, 268, 316, 7, AMR_OF(2, vq_gain), 2, 17, 43, 25, 37, 47, 29, 6, AMR_OF(3, adap), 34, 53, 78, 73, 83, 100, 1, AMR_OF(3, ltp), 107, 13, AMR_OF(3, pul_il[0]), 135, 167, 183, 231, 279, 151, 119, 179, 227, 275, 191, 239, 287, 13, AMR_OF(3, pul_il[1]), 131, 163, 187, 235, 283, 147, 115, 199, 247, 295, 195, 243, 291, 13, AMR_OF(3, pul_il[2]), 143, 175, 207, 255, 303, 159, 127, 203, 251, 299, 215, 263, 311, 13, AMR_OF(3, pul_il[3]), 139, 171, 211, 259, 307, 155, 123, 223, 271, 319, 219, 267, 315, 7, AMR_OF(3, vq_gain), 1, 16, 42, 24, 36, 46, 28, 0 }; static const uint16_t order_MODE_18k25[] = { 1, AMR_BIT(vad), 7, 8, AMR_BIT(isp_id[0]), 55, 40, 14, 6, 15, 5, 0, 68, 8, AMR_BIT(isp_id[1]), 77, 58, 75, 49, 59, 57, 67, 61, 6, AMR_BIT(isp_id[2]), 48, 63, 51, 62, 50, 70, 7, AMR_BIT(isp_id[3]), 71, 56, 60, 69, 85, 86, 80, 7, AMR_BIT(isp_id[4]), 93, 64, 94, 76, 82, 81, 89, 5, AMR_BIT(isp_id[5]), 90, 103, 88, 102, 99, 5, AMR_BIT(isp_id[6]), 98, 97, 96, 111, 95, 9, AMR_OF(0, adap), 13, 12, 11, 10, 9, 41, 66, 72, 92, 1, AMR_OF(0, ltp), 110, 2, AMR_OF(0, pul_ih[0]), 124, 115, 2, AMR_OF(0, pul_ih[1]), 150, 117, 2, AMR_OF(0, pul_ih[2]), 129, 114, 2, AMR_OF(0, pul_ih[3]), 121, 131, 14, AMR_OF(0, pul_il[0]), 161, 257, 343, 199, 177, 303, 204, 173, 168, 260, 277, 307, 338, 128, 14, AMR_OF(0, pul_il[1]), 194, 286, 347, 222, 214, 316, 236, 152, 166, 242, 284, 308, 344, 142, 14, AMR_OF(0, pul_il[2]), 169, 273, 353, 202, 189, 311, 240, 200, 171, 261, 309, 296, 345, 130, 14, AMR_OF(0, pul_il[3]), 198, 275, 349, 187, 163, 282, 193, 195, 175, 234, 265, 289, 328, 119, 7, AMR_OF(0, vq_gain), 4, 19, 45, 27, 39, 33, 31, 6, AMR_OF(1, adap), 35, 54, 79, 74, 84, 101, 1, AMR_OF(1, ltp), 109, 2, AMR_OF(1, pul_ih[0]), 139, 104, 2, AMR_OF(1, pul_ih[1]), 135, 118, 2, AMR_OF(1, pul_ih[2]), 112, 127, 2, AMR_OF(1, pul_ih[3]), 140, 141, 14, AMR_OF(1, pul_il[0]), 179, 276, 340, 225, 223, 321, 235, 190, 182, 271, 310, 315, 352, 125, 14, AMR_OF(1, pul_il[1]), 153, 264, 329, 232, 209, 323, 231, 165, 191, 279, 290, 312, 367, 134, 14, AMR_OF(1, pul_il[2]), 167, 269, 341, 205, 197, 298, 224, 160, 170, 259, 280, 317, 357, 148, 14, AMR_OF(1, pul_il[3]), 203, 272, 342, 227, 192, 299, 233, 172, 183, 256, 283, 326, 355, 106, 7, AMR_OF(1, vq_gain), 3, 18, 44, 26, 38, 32, 30, 9, AMR_OF(2, adap), 8, 23, 22, 21, 20, 52, 65, 87, 91, 1, AMR_OF(2, ltp), 108, 2, AMR_OF(2, pul_ih[0]), 144, 120, 2, AMR_OF(2, pul_ih[1]), 157, 123, 2, AMR_OF(2, pul_ih[2]), 145, 138, 2, AMR_OF(2, pul_ih[3]), 132, 154, 14, AMR_OF(2, pul_il[0]), 241, 319, 365, 252, 253, 331, 254, 230, 220, 263, 285, 314, 364, 156, 14, AMR_OF(2, pul_il[1]), 247, 291, 339, 249, 250, 332, 267, 196, 207, 268, 304, 324, 356, 158, 14, AMR_OF(2, pul_il[2]), 210, 300, 348, 243, 237, 333, 246, 206, 219, 266, 318, 335, 363, 159, 14, AMR_OF(2, pul_il[3]), 239, 306, 366, 221, 226, 297, 251, 184, 178, 258, 292, 305, 346, 116, 7, AMR_OF(2, vq_gain), 2, 17, 43, 25, 37, 47, 29, 6, AMR_OF(3, adap), 34, 53, 78, 73, 83, 100, 1, AMR_OF(3, ltp), 107, 2, AMR_OF(3, pul_ih[0]), 143, 126, 2, AMR_OF(3, pul_ih[1]), 137, 122, 2, AMR_OF(3, pul_ih[2]), 149, 105, 2, AMR_OF(3, pul_ih[3]), 133, 136, 14, AMR_OF(3, pul_il[0]), 162, 287, 337, 244, 229, 322, 218, 180, 186, 262, 274, 288, 351, 146, 14, AMR_OF(3, pul_il[1]), 212, 294, 358, 248, 228, 334, 215, 174, 176, 270, 293, 301, 354, 147, 14, AMR_OF(3, pul_il[2]), 185, 327, 336, 211, 213, 313, 245, 181, 188, 255, 281, 325, 350, 151, 14, AMR_OF(3, pul_il[3]), 201, 295, 359, 216, 208, 320, 238, 164, 155, 217, 278, 302, 330, 113, 7, AMR_OF(3, vq_gain), 1, 16, 42, 24, 36, 46, 28, 0 }; static const uint16_t order_MODE_19k85[] = { 1, AMR_BIT(vad), 7, 8, AMR_BIT(isp_id[0]), 55, 40, 14, 6, 15, 5, 0, 68, 8, AMR_BIT(isp_id[1]), 77, 58, 75, 49, 59, 57, 67, 61, 6, AMR_BIT(isp_id[2]), 48, 63, 51, 62, 50, 70, 7, AMR_BIT(isp_id[3]), 71, 56, 60, 69, 85, 86, 80, 7, AMR_BIT(isp_id[4]), 93, 64, 94, 76, 82, 81, 89, 5, AMR_BIT(isp_id[5]), 90, 103, 88, 102, 99, 5, AMR_BIT(isp_id[6]), 98, 97, 96, 111, 95, 9, AMR_OF(0, adap), 13, 12, 11, 10, 9, 41, 66, 72, 92, 1, AMR_OF(0, ltp), 110, 10, AMR_OF(0, pul_ih[0]), 134, 153, 263, 342, 399, 154, 106, 177, 317, 265, 10, AMR_OF(0, pul_ih[1]), 128, 167, 270, 351, 385, 160, 105, 213, 329, 259, 2, AMR_OF(0, pul_ih[2]), 123, 147, 2, AMR_OF(0, pul_ih[3]), 131, 143, 10, AMR_OF(0, pul_il[0]), 346, 118, 170, 201, 296, 368, 250, 284, 341, 391, 10, AMR_OF(0, pul_il[1]), 345, 104, 166, 196, 281, 374, 242, 269, 327, 390, 14, AMR_OF(0, pul_il[2]), 141, 171, 291, 364, 229, 210, 308, 228, 206, 200, 258, 295, 313, 361, 14, AMR_OF(0, pul_il[3]), 144, 188, 282, 366, 217, 216, 309, 218, 193, 182, 245, 287, 300, 367, 7, AMR_OF(0, vq_gain), 4, 19, 45, 27, 39, 33, 31, 6, AMR_OF(1, adap), 35, 54, 79, 74, 84, 101, 1, AMR_OF(1, ltp), 109, 10, AMR_OF(1, pul_ih[0]), 139, 169, 267, 348, 389, 163, 116, 189, 343, 268, 10, AMR_OF(1, pul_ih[1]), 120, 161, 249, 339, 397, 152, 114, 230, 334, 303, 2, AMR_OF(1, pul_ih[2]), 125, 138, 2, AMR_OF(1, pul_ih[3]), 112, 129, 10, AMR_OF(1, pul_il[0]), 349, 122, 162, 203, 288, 372, 278, 274, 312, 377, 10, AMR_OF(1, pul_il[1]), 357, 126, 165, 214, 298, 362, 252, 260, 321, 378, 14, AMR_OF(1, pul_il[2]), 150, 199, 266, 355, 211, 180, 285, 241, 195, 198, 243, 275, 323, 375, 14, AMR_OF(1, pul_il[3]), 142, 191, 256, 353, 208, 220, 314, 237, 190, 212, 255, 304, 318, 371, 7, AMR_OF(1, vq_gain), 3, 18, 44, 26, 38, 32, 30, 9, AMR_OF(2, adap), 8, 23, 22, 21, 20, 52, 65, 87, 91, 1, AMR_OF(2, ltp), 108, 10, AMR_OF(2, pul_ih[0]), 159, 168, 302, 356, 395, 178, 132, 185, 330, 286, 10, AMR_OF(2, pul_ih[1]), 158, 181, 292, 358, 396, 176, 133, 235, 331, 276, 2, AMR_OF(2, pul_ih[2]), 130, 157, 2, AMR_OF(2, pul_ih[3]), 124, 136, 10, AMR_OF(2, pul_il[0]), 354, 121, 194, 246, 322, 379, 272, 273, 332, 398, 10, AMR_OF(2, pul_il[1]), 359, 140, 186, 236, 333, 376, 290, 301, 338, 387, 14, AMR_OF(2, pul_il[2]), 155, 227, 319, 369, 253, 254, 350, 248, 224, 239, 240, 293, 315, 383, 14, AMR_OF(2, pul_il[3]), 156, 209, 297, 373, 225, 215, 326, 247, 197, 184, 232, 289, 310, 365, 7, AMR_OF(2, vq_gain), 2, 17, 43, 25, 37, 47, 29, 6, AMR_OF(3, adap), 34, 53, 78, 73, 83, 100, 1, AMR_OF(3, ltp), 107, 10, AMR_OF(3, pul_ih[0]), 148, 164, 264, 340, 388, 183, 117, 205, 336, 261, 10, AMR_OF(3, pul_ih[1]), 146, 174, 257, 335, 384, 173, 113, 187, 320, 279, 2, AMR_OF(3, pul_ih[2]), 127, 151, 2, AMR_OF(3, pul_ih[3]), 119, 137, 10, AMR_OF(3, pul_il[0]), 352, 135, 172, 238, 306, 381, 262, 271, 328, 382, 10, AMR_OF(3, pul_il[1]), 347, 115, 179, 219, 305, 380, 277, 294, 337, 386, 14, AMR_OF(3, pul_il[2]), 145, 192, 307, 370, 234, 223, 324, 244, 202, 204, 251, 299, 325, 360, 14, AMR_OF(3, pul_il[3]), 149, 221, 311, 363, 226, 222, 316, 231, 207, 175, 233, 280, 283, 344, 7, AMR_OF(3, vq_gain), 1, 16, 42, 24, 36, 46, 28, 0 }; static const uint16_t order_MODE_23k05[] = { 1, AMR_BIT(vad), 7, 8, AMR_BIT(isp_id[0]), 55, 40, 14, 6, 15, 5, 0, 68, 8, AMR_BIT(isp_id[1]), 77, 58, 75, 49, 59, 57, 67, 61, 6, AMR_BIT(isp_id[2]), 48, 63, 51, 62, 50, 70, 7, AMR_BIT(isp_id[3]), 71, 56, 60, 69, 85, 86, 80, 7, AMR_BIT(isp_id[4]), 93, 64, 94, 76, 82, 81, 89, 5, AMR_BIT(isp_id[5]), 90, 103, 88, 102, 99, 5, AMR_BIT(isp_id[6]), 98, 97, 96, 111, 95, 9, AMR_OF(0, adap), 13, 12, 11, 10, 9, 41, 66, 72,