1cabdff1aSopenharmony_ci/* 2cabdff1aSopenharmony_ci * AMR wideband data and definitions 3cabdff1aSopenharmony_ci * Copyright (c) 2010 Marcelo Galvao Povoa 4cabdff1aSopenharmony_ci * 5cabdff1aSopenharmony_ci * This file is part of FFmpeg. 6cabdff1aSopenharmony_ci * 7cabdff1aSopenharmony_ci * FFmpeg is free software; you can redistribute it and/or 8cabdff1aSopenharmony_ci * modify it under the terms of the GNU Lesser General Public 9cabdff1aSopenharmony_ci * License as published by the Free Software Foundation; either 10cabdff1aSopenharmony_ci * version 2.1 of the License, or (at your option) any later version. 11cabdff1aSopenharmony_ci * 12cabdff1aSopenharmony_ci * FFmpeg is distributed in the hope that it will be useful, 13cabdff1aSopenharmony_ci * but WITHOUT ANY WARRANTY; without even the implied warranty of 14cabdff1aSopenharmony_ci * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15cabdff1aSopenharmony_ci * Lesser General Public License for more details. 16cabdff1aSopenharmony_ci * 17cabdff1aSopenharmony_ci * You should have received a copy of the GNU Lesser General Public 18cabdff1aSopenharmony_ci * License along with FFmpeg; if not, write to the Free Software 19cabdff1aSopenharmony_ci * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20cabdff1aSopenharmony_ci */ 21cabdff1aSopenharmony_ci 22cabdff1aSopenharmony_ci/** 23cabdff1aSopenharmony_ci * @file 24cabdff1aSopenharmony_ci * AMR wideband data and definitions 25cabdff1aSopenharmony_ci */ 26cabdff1aSopenharmony_ci 27cabdff1aSopenharmony_ci#ifndef AVCODEC_AMRWBDATA_H 28cabdff1aSopenharmony_ci#define AVCODEC_AMRWBDATA_H 29cabdff1aSopenharmony_ci 30cabdff1aSopenharmony_ci#include <stdint.h> 31cabdff1aSopenharmony_ci#include <stddef.h> 32cabdff1aSopenharmony_ci 33cabdff1aSopenharmony_ci#define LP_ORDER 16 ///< linear predictive coding filter order 34cabdff1aSopenharmony_ci#define LP_ORDER_16k 20 ///< lpc filter order at 16kHz 35cabdff1aSopenharmony_ci#define HB_FIR_SIZE 30 ///< amount of past data needed by HB filters 36cabdff1aSopenharmony_ci#define UPS_FIR_SIZE 12 ///< upsampling filter size 37cabdff1aSopenharmony_ci#define UPS_MEM_SIZE (2 * UPS_FIR_SIZE) 38cabdff1aSopenharmony_ci 39cabdff1aSopenharmony_ci#define MIN_ISF_SPACING (128.0 / 32768.0) ///< minimum isf gap 40cabdff1aSopenharmony_ci#define PRED_FACTOR (1.0 / 3.0) 41cabdff1aSopenharmony_ci#define MIN_ENERGY -14.0 ///< initial innovation energy (dB) 42cabdff1aSopenharmony_ci#define ENERGY_MEAN 30.0 ///< mean innovation energy (dB) in all modes 43cabdff1aSopenharmony_ci#define PREEMPH_FAC 0.68 ///< factor used to de-emphasize synthesis 44cabdff1aSopenharmony_ci 45cabdff1aSopenharmony_ci#define AMRWB_SFR_SIZE 64 ///< samples per subframe at 12.8 kHz 46cabdff1aSopenharmony_ci#define AMRWB_SFR_SIZE_16k 80 ///< samples per subframe at 16 kHz 47cabdff1aSopenharmony_ci#define AMRWB_P_DELAY_MAX 231 ///< maximum pitch delay value 48cabdff1aSopenharmony_ci#define AMRWB_P_DELAY_MIN 34 49cabdff1aSopenharmony_ci 50cabdff1aSopenharmony_ci/* Relative mode ordering is sensitive */ 51cabdff1aSopenharmony_cienum Mode { 52cabdff1aSopenharmony_ci MODE_6k60 = 0, ///< 6.60 kbit/s 53cabdff1aSopenharmony_ci MODE_8k85, ///< 8.85 kbit/s 54cabdff1aSopenharmony_ci MODE_12k65, ///< 12.65 kbit/s 55cabdff1aSopenharmony_ci MODE_14k25, ///< 14.25 kbit/s 56cabdff1aSopenharmony_ci MODE_15k85, ///< 15.85 kbit/s 57cabdff1aSopenharmony_ci MODE_18k25, ///< 18.25 kbit/s 58cabdff1aSopenharmony_ci MODE_19k85, ///< 19.85 kbit/s 59cabdff1aSopenharmony_ci MODE_23k05, ///< 23.05 kbit/s 60cabdff1aSopenharmony_ci MODE_23k85, ///< 23.85 kbit/s 61cabdff1aSopenharmony_ci MODE_SID, ///< comfort noise frame 62cabdff1aSopenharmony_ci /* 10-13: Future use */ 63cabdff1aSopenharmony_ci SP_LOST = 14, ///< speech lost 64cabdff1aSopenharmony_ci NO_DATA ///< no transmission 65cabdff1aSopenharmony_ci}; 66cabdff1aSopenharmony_ci 67cabdff1aSopenharmony_ci/* All decoded parameters in these structs must be 2 bytes long 68cabdff1aSopenharmony_ci * because of the direct indexing at the frame parsing */ 69cabdff1aSopenharmony_citypedef struct AMRWBSubFrame { 70cabdff1aSopenharmony_ci uint16_t adap; ///< adaptive codebook index 71cabdff1aSopenharmony_ci uint16_t ltp; ///< ltp-filtering flag 72cabdff1aSopenharmony_ci uint16_t vq_gain; ///< VQ adaptive and innovative gains 73cabdff1aSopenharmony_ci uint16_t hb_gain; ///< high-band energy index (mode 23k85 only) 74cabdff1aSopenharmony_ci uint16_t pul_ih[4]; ///< MSBs part of codebook index (high modes only) 75cabdff1aSopenharmony_ci uint16_t pul_il[4]; ///< LSBs part of codebook index 76cabdff1aSopenharmony_ci} AMRWBSubFrame; 77cabdff1aSopenharmony_ci 78cabdff1aSopenharmony_citypedef struct AMRWBFrame { 79cabdff1aSopenharmony_ci uint16_t vad; ///< voice activity detection flag 80cabdff1aSopenharmony_ci uint16_t isp_id[7]; ///< index of ISP subvectors 81cabdff1aSopenharmony_ci AMRWBSubFrame subframe[4]; ///< data for subframes 82cabdff1aSopenharmony_ci} AMRWBFrame; 83cabdff1aSopenharmony_ci 84cabdff1aSopenharmony_ci/** The index of a frame parameter */ 85cabdff1aSopenharmony_ci#define AMR_BIT(field) (offsetof(AMRWBFrame, field)) 86cabdff1aSopenharmony_ci/** The index of a subframe-specific parameter */ 87cabdff1aSopenharmony_ci#define AMR_OF(frame_num, variable) AMR_BIT(subframe[frame_num].variable) 88cabdff1aSopenharmony_ci 89cabdff1aSopenharmony_ci//As defined in 3GPP TS 26.201 V9.0.0 90cabdff1aSopenharmony_ci//Tables for bit parsing in Core Frame speech frames 91cabdff1aSopenharmony_ci//The reordered bits are in order of decreasing importance and 92cabdff1aSopenharmony_ci//may be contiguously separated in Class A, B and C bits. 93cabdff1aSopenharmony_ci 94cabdff1aSopenharmony_ci// Each field in AMRWBFrame is stored as: 95cabdff1aSopenharmony_ci// * one byte for the number of bits in the field 96cabdff1aSopenharmony_ci// * one byte for the field index 97cabdff1aSopenharmony_ci// * then, one byte for each bit of the field (from most-significant to least) 98cabdff1aSopenharmony_ci// of the position of that bit in the AMR frame. 99cabdff1aSopenharmony_cistatic const uint16_t order_MODE_6k60[] = { 100cabdff1aSopenharmony_ci 1, AMR_BIT(vad), 7, 101cabdff1aSopenharmony_ci 8, AMR_BIT(isp_id[0]), 24, 33, 39, 12, 6, 5, 4, 13, 102cabdff1aSopenharmony_ci 8, AMR_BIT(isp_id[1]), 65, 79, 64, 78, 51, 61, 71, 70, 103cabdff1aSopenharmony_ci 7, AMR_BIT(isp_id[2]), 52, 55, 44, 54, 53, 43, 42, 104cabdff1aSopenharmony_ci 7, AMR_BIT(isp_id[3]), 60, 59, 58, 57, 56, 75, 74, 105cabdff1aSopenharmony_ci 6, AMR_BIT(isp_id[4]), 73, 72, 86, 87, 85, 84, 106cabdff1aSopenharmony_ci 8, AMR_OF(0, adap), 11, 10, 9, 8, 28, 27, 49, 69, 107cabdff1aSopenharmony_ci 6, AMR_OF(0, pul_il[0]), 83, 91, 99, 107, 115, 123, 108cabdff1aSopenharmony_ci 6, AMR_OF(0, pul_il[1]), 82, 103, 111, 119, 127, 135, 109cabdff1aSopenharmony_ci 6, AMR_OF(0, vq_gain), 38, 23, 34, 19, 3, 15, 110cabdff1aSopenharmony_ci 5, AMR_OF(1, adap), 32, 41, 63, 67, 77, 111cabdff1aSopenharmony_ci 6, AMR_OF(1, pul_il[0]), 81, 90, 98, 106, 114, 122, 112cabdff1aSopenharmony_ci 6, AMR_OF(1, pul_il[1]), 80, 102, 110, 118, 126, 134, 113cabdff1aSopenharmony_ci 6, AMR_OF(1, vq_gain), 26, 22, 36, 18, 2, 14, 114cabdff1aSopenharmony_ci 5, AMR_OF(2, adap), 45, 40, 50, 48, 68, 115cabdff1aSopenharmony_ci 6, AMR_OF(2, pul_il[0]), 95, 89, 97, 105, 113, 121, 116cabdff1aSopenharmony_ci 6, AMR_OF(2, pul_il[1]), 94, 101, 109, 117, 125, 133, 117cabdff1aSopenharmony_ci 6, AMR_OF(2, vq_gain), 37, 21, 35, 17, 1, 31, 118cabdff1aSopenharmony_ci 5, AMR_OF(3, adap), 47, 46, 62, 66, 76, 119cabdff1aSopenharmony_ci 6, AMR_OF(3, pul_il[0]), 93, 88, 96, 104, 112, 120, 120cabdff1aSopenharmony_ci 6, AMR_OF(3, pul_il[1]), 92, 100, 108, 116, 124, 132, 121cabdff1aSopenharmony_ci 6, AMR_OF(3, vq_gain), 25, 20, 29, 16, 0, 30, 122cabdff1aSopenharmony_ci 0 123cabdff1aSopenharmony_ci}; 124cabdff1aSopenharmony_ci 125cabdff1aSopenharmony_cistatic const uint16_t order_MODE_8k85[] = { 126cabdff1aSopenharmony_ci 1, AMR_BIT(vad), 7, 127cabdff1aSopenharmony_ci 8, AMR_BIT(isp_id[0]), 47, 32, 2, 6, 3, 5, 4, 60, 128cabdff1aSopenharmony_ci 8, AMR_BIT(isp_id[1]), 69, 50, 67, 41, 51, 49, 59, 53, 129cabdff1aSopenharmony_ci 6, AMR_BIT(isp_id[2]), 40, 55, 43, 54, 42, 62, 130cabdff1aSopenharmony_ci 7, AMR_BIT(isp_id[3]), 63, 48, 52, 61, 77, 78, 72, 131cabdff1aSopenharmony_ci 7, AMR_BIT(isp_id[4]), 85, 56, 86, 68, 74, 73, 81, 132cabdff1aSopenharmony_ci 5, AMR_BIT(isp_id[5]), 82, 95, 80, 94, 91, 133cabdff1aSopenharmony_ci 5, AMR_BIT(isp_id[6]), 90, 89, 88, 103, 87, 134cabdff1aSopenharmony_ci 8, AMR_OF(0, adap), 1, 0, 15, 35, 33, 58, 64, 84, 135cabdff1aSopenharmony_ci 5, AMR_OF(0, pul_il[0]), 102, 118, 134, 150, 166, 136cabdff1aSopenharmony_ci 5, AMR_OF(0, pul_il[1]), 101, 114, 130, 146, 162, 137cabdff1aSopenharmony_ci 5, AMR_OF(0, pul_il[2]), 100, 126, 142, 158, 174, 138cabdff1aSopenharmony_ci 5, AMR_OF(0, pul_il[3]), 99, 122, 138, 154, 170, 139cabdff1aSopenharmony_ci 6, AMR_OF(0, vq_gain), 11, 39, 19, 31, 27, 23, 140cabdff1aSopenharmony_ci 5, AMR_OF(1, adap), 46, 71, 66, 76, 93, 141cabdff1aSopenharmony_ci 5, AMR_OF(1, pul_il[0]), 98, 117, 133, 149, 165, 142cabdff1aSopenharmony_ci 5, AMR_OF(1, pul_il[1]), 97, 113, 129, 145, 161, 143cabdff1aSopenharmony_ci 5, AMR_OF(1, pul_il[2]), 96, 125, 141, 157, 173, 144cabdff1aSopenharmony_ci 5, AMR_OF(1, pul_il[3]), 111, 121, 137, 153, 169, 145cabdff1aSopenharmony_ci 6, AMR_OF(1, vq_gain), 10, 38, 18, 30, 26, 22, 146cabdff1aSopenharmony_ci 8, AMR_OF(2, adap), 14, 13, 12, 34, 45, 57, 79, 83, 147cabdff1aSopenharmony_ci 5, AMR_OF(2, pul_il[0]), 110, 116, 132, 148, 164, 148cabdff1aSopenharmony_ci 5, AMR_OF(2, pul_il[1]), 109, 112, 128, 144, 160, 149cabdff1aSopenharmony_ci 5, AMR_OF(2, pul_il[2]), 108, 124, 140, 156, 172, 150cabdff1aSopenharmony_ci 5, AMR_OF(2, pul_il[3]), 107, 120, 136, 152, 168, 151cabdff1aSopenharmony_ci 6, AMR_OF(2, vq_gain), 9, 37, 17, 29, 25, 21, 152cabdff1aSopenharmony_ci 5, AMR_OF(3, adap), 44, 70, 65, 75, 92, 153cabdff1aSopenharmony_ci 5, AMR_OF(3, pul_il[0]), 106, 115, 131, 147, 163, 154cabdff1aSopenharmony_ci 5, AMR_OF(3, pul_il[1]), 105, 127, 143, 159, 175, 155cabdff1aSopenharmony_ci 5, AMR_OF(3, pul_il[2]), 104, 123, 139, 155, 171, 156cabdff1aSopenharmony_ci 5, AMR_OF(3, pul_il[3]), 119, 135, 151, 167, 183, 157cabdff1aSopenharmony_ci 6, AMR_OF(3, vq_gain), 8, 36, 16, 28, 24, 20, 158cabdff1aSopenharmony_ci 0 159cabdff1aSopenharmony_ci}; 160cabdff1aSopenharmony_ci 161cabdff1aSopenharmony_cistatic const uint16_t order_MODE_12k65[] = { 162cabdff1aSopenharmony_ci 1, AMR_BIT(vad), 7, 163cabdff1aSopenharmony_ci 8, AMR_BIT(isp_id[0]), 55, 40, 14, 6, 15, 5, 0, 68, 164cabdff1aSopenharmony_ci 8, AMR_BIT(isp_id[1]), 77, 58, 75, 49, 59, 57, 67, 61, 165cabdff1aSopenharmony_ci 6, AMR_BIT(isp_id[2]), 48, 63, 51, 62, 50, 70, 166cabdff1aSopenharmony_ci 7, AMR_BIT(isp_id[3]), 71, 56, 60, 69, 85, 86, 80, 167cabdff1aSopenharmony_ci 7, AMR_BIT(isp_id[4]), 93, 64, 94, 76, 82, 81, 89, 168cabdff1aSopenharmony_ci 5, AMR_BIT(isp_id[5]), 90, 103, 88, 102, 99, 169cabdff1aSopenharmony_ci 5, AMR_BIT(isp_id[6]), 98, 97, 96, 111, 95, 170cabdff1aSopenharmony_ci 9, AMR_OF(0, adap), 13, 12, 11, 10, 9, 41, 66, 72, 171cabdff1aSopenharmony_ci 92, 172cabdff1aSopenharmony_ci 1, AMR_OF(0, ltp), 110, 173cabdff1aSopenharmony_ci 9, AMR_OF(0, pul_il[0]), 106, 122, 154, 186, 218, 134, 166, 198, 174cabdff1aSopenharmony_ci 230, 175cabdff1aSopenharmony_ci 9, AMR_OF(0, pul_il[1]), 105, 130, 162, 194, 226, 142, 174, 206, 176cabdff1aSopenharmony_ci 238, 177cabdff1aSopenharmony_ci 9, AMR_OF(0, pul_il[2]), 104, 138, 170, 202, 234, 150, 182, 214, 178cabdff1aSopenharmony_ci 246, 179cabdff1aSopenharmony_ci 9, AMR_OF(0, pul_il[3]), 119, 146, 178, 210, 242, 158, 190, 222, 180cabdff1aSopenharmony_ci 254, 181cabdff1aSopenharmony_ci 7, AMR_OF(0, vq_gain), 4, 19, 45, 27, 39, 33, 31, 182cabdff1aSopenharmony_ci 6, AMR_OF(1, adap), 35, 54, 79, 74, 84, 101, 183cabdff1aSopenharmony_ci 1, AMR_OF(1, ltp), 109, 184cabdff1aSopenharmony_ci 9, AMR_OF(1, pul_il[0]), 118, 121, 153, 185, 217, 133, 165, 197, 185cabdff1aSopenharmony_ci 229, 186cabdff1aSopenharmony_ci 9, AMR_OF(1, pul_il[1]), 117, 129, 161, 193, 225, 141, 173, 205, 187cabdff1aSopenharmony_ci 237, 188cabdff1aSopenharmony_ci 9, AMR_OF(1, pul_il[2]), 116, 137, 169, 201, 233, 149, 181, 213, 189cabdff1aSopenharmony_ci 245, 190cabdff1aSopenharmony_ci 9, AMR_OF(1, pul_il[3]), 115, 145, 177, 209, 241, 157, 189, 221, 191cabdff1aSopenharmony_ci 253, 192cabdff1aSopenharmony_ci 7, AMR_OF(1, vq_gain), 3, 18, 44, 26, 38, 32, 30, 193cabdff1aSopenharmony_ci 9, AMR_OF(2, adap), 8, 23, 22, 21, 20, 52, 65, 87, 194cabdff1aSopenharmony_ci 91, 195cabdff1aSopenharmony_ci 1, AMR_OF(2, ltp), 108, 196cabdff1aSopenharmony_ci 9, AMR_OF(2, pul_il[0]), 114, 120, 152, 184, 216, 132, 164, 196, 197cabdff1aSopenharmony_ci 228, 198cabdff1aSopenharmony_ci 9, AMR_OF(2, pul_il[1]), 113, 128, 160, 192, 224, 140, 172, 204, 199cabdff1aSopenharmony_ci 236, 200cabdff1aSopenharmony_ci 9, AMR_OF(2, pul_il[2]), 112, 136, 168, 200, 232, 148, 180, 212, 201cabdff1aSopenharmony_ci 244, 202cabdff1aSopenharmony_ci 9, AMR_OF(2, pul_il[3]), 127, 144, 176, 208, 240, 156, 188, 220, 203cabdff1aSopenharmony_ci 252, 204cabdff1aSopenharmony_ci 7, AMR_OF(2, vq_gain), 2, 17, 43, 25, 37, 47, 29, 205cabdff1aSopenharmony_ci 6, AMR_OF(3, adap), 34, 53, 78, 73, 83, 100, 206cabdff1aSopenharmony_ci 1, AMR_OF(3, ltp), 107, 207cabdff1aSopenharmony_ci 9, AMR_OF(3, pul_il[0]), 126, 135, 167, 199, 231, 131, 163, 195, 208cabdff1aSopenharmony_ci 227, 209cabdff1aSopenharmony_ci 9, AMR_OF(3, pul_il[1]), 125, 143, 175, 207, 239, 139, 171, 203, 210cabdff1aSopenharmony_ci 235, 211cabdff1aSopenharmony_ci 9, AMR_OF(3, pul_il[2]), 124, 151, 183, 215, 247, 147, 179, 211, 212cabdff1aSopenharmony_ci 243, 213cabdff1aSopenharmony_ci 9, AMR_OF(3, pul_il[3]), 123, 159, 191, 223, 255, 155, 187, 219, 214cabdff1aSopenharmony_ci 251, 215cabdff1aSopenharmony_ci 7, AMR_OF(3, vq_gain), 1, 16, 42, 24, 36, 46, 28, 216cabdff1aSopenharmony_ci 0 217cabdff1aSopenharmony_ci}; 218cabdff1aSopenharmony_ci 219cabdff1aSopenharmony_cistatic const uint16_t order_MODE_14k25[] = { 220cabdff1aSopenharmony_ci 1, AMR_BIT(vad), 7, 221cabdff1aSopenharmony_ci 8, AMR_BIT(isp_id[0]), 55, 40, 14, 6, 15, 5, 0, 68, 222cabdff1aSopenharmony_ci 8, AMR_BIT(isp_id[1]), 77, 58, 75, 49, 59, 57, 67, 61, 223cabdff1aSopenharmony_ci 6, AMR_BIT(isp_id[2]), 48, 63, 51, 62, 50, 70, 224cabdff1aSopenharmony_ci 7, AMR_BIT(isp_id[3]), 71, 56, 60, 69, 85, 86, 80, 225cabdff1aSopenharmony_ci 7, AMR_BIT(isp_id[4]), 93, 64, 94, 76, 82, 81, 89, 226cabdff1aSopenharmony_ci 5, AMR_BIT(isp_id[5]), 90, 103, 88, 102, 99, 227cabdff1aSopenharmony_ci 5, AMR_BIT(isp_id[6]), 98, 97, 96, 111, 95, 228cabdff1aSopenharmony_ci 9, AMR_OF(0, adap), 13, 12, 11, 10, 9, 41, 66, 72, 229cabdff1aSopenharmony_ci 92, 230cabdff1aSopenharmony_ci 1, AMR_OF(0, ltp), 110, 231cabdff1aSopenharmony_ci 13, AMR_OF(0, pul_il[0]), 114, 186, 210, 234, 258, 106, 126, 162, 232cabdff1aSopenharmony_ci 170, 198, 222, 246, 270, 233cabdff1aSopenharmony_ci 13, AMR_OF(0, pul_il[1]), 122, 194, 218, 242, 266, 118, 134, 174, 234cabdff1aSopenharmony_ci 182, 206, 230, 254, 278, 235cabdff1aSopenharmony_ci 9, AMR_OF(0, pul_il[2]), 130, 138, 146, 154, 178, 202, 226, 250, 236cabdff1aSopenharmony_ci 274, 237cabdff1aSopenharmony_ci 9, AMR_OF(0, pul_il[3]), 142, 150, 158, 166, 190, 214, 238, 262, 238cabdff1aSopenharmony_ci 286, 239cabdff1aSopenharmony_ci 7, AMR_OF(0, vq_gain), 4, 19, 45, 27, 39, 33, 31, 240cabdff1aSopenharmony_ci 6, AMR_OF(1, adap), 35, 54, 79, 74, 84, 101, 241cabdff1aSopenharmony_ci 1, AMR_OF(1, ltp), 109, 242cabdff1aSopenharmony_ci 13, AMR_OF(1, pul_il[0]), 113, 185, 209, 233, 257, 105, 125, 161, 243cabdff1aSopenharmony_ci 169, 197, 221, 245, 269, 244cabdff1aSopenharmony_ci 13, AMR_OF(1, pul_il[1]), 121, 193, 217, 241, 265, 117, 133, 173, 245cabdff1aSopenharmony_ci 181, 205, 229, 253, 277, 246cabdff1aSopenharmony_ci 9, AMR_OF(1, pul_il[2]), 129, 137, 145, 153, 177, 201, 225, 249, 247cabdff1aSopenharmony_ci 273, 248cabdff1aSopenharmony_ci 9, AMR_OF(1, pul_il[3]), 141, 149, 157, 165, 189, 213, 237, 261, 249cabdff1aSopenharmony_ci 285, 250cabdff1aSopenharmony_ci 7, AMR_OF(1, vq_gain), 3, 18, 44, 26, 38, 32, 30, 251cabdff1aSopenharmony_ci 9, AMR_OF(2, adap), 8, 23, 22, 21, 20, 52, 65, 87, 252cabdff1aSopenharmony_ci 91, 253cabdff1aSopenharmony_ci 1, AMR_OF(2, ltp), 108, 254cabdff1aSopenharmony_ci 13, AMR_OF(2, pul_il[0]), 112, 184, 208, 232, 256, 104, 124, 160, 255cabdff1aSopenharmony_ci 168, 196, 220, 244, 268, 256cabdff1aSopenharmony_ci 13, AMR_OF(2, pul_il[1]), 120, 192, 216, 240, 264, 116, 132, 172, 257cabdff1aSopenharmony_ci 180, 204, 228, 252, 276, 258cabdff1aSopenharmony_ci 9, AMR_OF(2, pul_il[2]), 128, 136, 144, 152, 176, 200, 224, 248, 259cabdff1aSopenharmony_ci 272, 260cabdff1aSopenharmony_ci 9, AMR_OF(2, pul_il[3]), 140, 148, 156, 164, 188, 212, 236, 260, 261cabdff1aSopenharmony_ci 284, 262cabdff1aSopenharmony_ci 7, AMR_OF(2, vq_gain), 2, 17, 43, 25, 37, 47, 29, 263cabdff1aSopenharmony_ci 6, AMR_OF(3, adap), 34, 53, 78, 73, 83, 100, 264cabdff1aSopenharmony_ci 1, AMR_OF(3, ltp), 107, 265cabdff1aSopenharmony_ci 13, AMR_OF(3, pul_il[0]), 127, 199, 223, 247, 271, 119, 123, 175, 266cabdff1aSopenharmony_ci 183, 195, 219, 243, 267, 267cabdff1aSopenharmony_ci 13, AMR_OF(3, pul_il[1]), 135, 207, 231, 255, 279, 115, 131, 171, 268cabdff1aSopenharmony_ci 179, 203, 227, 251, 275, 269cabdff1aSopenharmony_ci 9, AMR_OF(3, pul_il[2]), 143, 151, 159, 167, 191, 215, 239, 263, 270cabdff1aSopenharmony_ci 287, 271cabdff1aSopenharmony_ci 9, AMR_OF(3, pul_il[3]), 139, 147, 155, 163, 187, 211, 235, 259, 272cabdff1aSopenharmony_ci 283, 273cabdff1aSopenharmony_ci 7, AMR_OF(3, vq_gain), 1, 16, 42, 24, 36, 46, 28, 274cabdff1aSopenharmony_ci 0 275cabdff1aSopenharmony_ci}; 276cabdff1aSopenharmony_ci 277cabdff1aSopenharmony_cistatic const uint16_t order_MODE_15k85[] = { 278cabdff1aSopenharmony_ci 1, AMR_BIT(vad), 7, 279cabdff1aSopenharmony_ci 8, AMR_BIT(isp_id[0]), 55, 40, 14, 6, 15, 5, 0, 68, 280cabdff1aSopenharmony_ci 8, AMR_BIT(isp_id[1]), 77, 58, 75, 49, 59, 57, 67, 61, 281cabdff1aSopenharmony_ci 6, AMR_BIT(isp_id[2]), 48, 63, 51, 62, 50, 70, 282cabdff1aSopenharmony_ci 7, AMR_BIT(isp_id[3]), 71, 56, 60, 69, 85, 86, 80, 283cabdff1aSopenharmony_ci 7, AMR_BIT(isp_id[4]), 93, 64, 94, 76, 82, 81, 89, 284cabdff1aSopenharmony_ci 5, AMR_BIT(isp_id[5]), 90, 103, 88, 102, 99, 285cabdff1aSopenharmony_ci 5, AMR_BIT(isp_id[6]), 98, 97, 96, 111, 95, 286cabdff1aSopenharmony_ci 9, AMR_OF(0, adap), 13, 12, 11, 10, 9, 41, 66, 72, 287cabdff1aSopenharmony_ci 92, 288cabdff1aSopenharmony_ci 1, AMR_OF(0, ltp), 110, 289cabdff1aSopenharmony_ci 13, AMR_OF(0, pul_il[0]), 122, 154, 170, 218, 266, 138, 106, 182, 290cabdff1aSopenharmony_ci 230, 278, 178, 226, 274, 291cabdff1aSopenharmony_ci 13, AMR_OF(0, pul_il[1]), 134, 166, 190, 238, 286, 150, 118, 186, 292cabdff1aSopenharmony_ci 234, 282, 198, 246, 294, 293cabdff1aSopenharmony_ci 13, AMR_OF(0, pul_il[2]), 130, 162, 194, 242, 290, 146, 114, 206, 294cabdff1aSopenharmony_ci 254, 302, 202, 250, 298, 295cabdff1aSopenharmony_ci 13, AMR_OF(0, pul_il[3]), 142, 174, 214, 262, 310, 158, 126, 210, 296cabdff1aSopenharmony_ci 258, 306, 222, 270, 318, 297cabdff1aSopenharmony_ci 7, AMR_OF(0, vq_gain), 4, 19, 45, 27, 39, 33, 31, 298cabdff1aSopenharmony_ci 6, AMR_OF(1, adap), 35, 54, 79, 74, 84, 101, 299cabdff1aSopenharmony_ci 1, AMR_OF(1, ltp), 109, 300cabdff1aSopenharmony_ci 13, AMR_OF(1, pul_il[0]), 121, 153, 169, 217, 265, 137, 105, 181, 301cabdff1aSopenharmony_ci 229, 277, 177, 225, 273, 302cabdff1aSopenharmony_ci 13, AMR_OF(1, pul_il[1]), 133, 165, 189, 237, 285, 149, 117, 185, 303cabdff1aSopenharmony_ci 233, 281, 197, 245, 293, 304cabdff1aSopenharmony_ci 13, AMR_OF(1, pul_il[2]), 129, 161, 193, 241, 289, 145, 113, 205, 305cabdff1aSopenharmony_ci 253, 301, 201, 249, 297, 306cabdff1aSopenharmony_ci 13, AMR_OF(1, pul_il[3]), 141, 173, 213, 261, 309, 157, 125, 209, 307cabdff1aSopenharmony_ci 257, 305, 221, 269, 317, 308cabdff1aSopenharmony_ci 7, AMR_OF(1, vq_gain), 3, 18, 44, 26, 38, 32, 30, 309cabdff1aSopenharmony_ci 9, AMR_OF(2, adap), 8, 23, 22, 21, 20, 52, 65, 87, 310cabdff1aSopenharmony_ci 91, 311cabdff1aSopenharmony_ci 1, AMR_OF(2, ltp), 108, 312cabdff1aSopenharmony_ci 13, AMR_OF(2, pul_il[0]), 120, 152, 168, 216, 264, 136, 104, 180, 313cabdff1aSopenharmony_ci 228, 276, 176, 224, 272, 314cabdff1aSopenharmony_ci 13, AMR_OF(2, pul_il[1]), 132, 164, 188, 236, 284, 148, 116, 184, 315cabdff1aSopenharmony_ci 232, 280, 196, 244, 292, 316cabdff1aSopenharmony_ci 13, AMR_OF(2, pul_il[2]), 128, 160, 192, 240, 288, 144, 112, 204, 317cabdff1aSopenharmony_ci 252, 300, 200, 248, 296, 318cabdff1aSopenharmony_ci 13, AMR_OF(2, pul_il[3]), 140, 172, 212, 260, 308, 156, 124, 208, 319cabdff1aSopenharmony_ci 256, 304, 220, 268, 316, 320cabdff1aSopenharmony_ci 7, AMR_OF(2, vq_gain), 2, 17, 43, 25, 37, 47, 29, 321cabdff1aSopenharmony_ci 6, AMR_OF(3, adap), 34, 53, 78, 73, 83, 100, 322cabdff1aSopenharmony_ci 1, AMR_OF(3, ltp), 107, 323cabdff1aSopenharmony_ci 13, AMR_OF(3, pul_il[0]), 135, 167, 183, 231, 279, 151, 119, 179, 324cabdff1aSopenharmony_ci 227, 275, 191, 239, 287, 325cabdff1aSopenharmony_ci 13, AMR_OF(3, pul_il[1]), 131, 163, 187, 235, 283, 147, 115, 199, 326cabdff1aSopenharmony_ci 247, 295, 195, 243, 291, 327cabdff1aSopenharmony_ci 13, AMR_OF(3, pul_il[2]), 143, 175, 207, 255, 303, 159, 127, 203, 328cabdff1aSopenharmony_ci 251, 299, 215, 263, 311, 329cabdff1aSopenharmony_ci 13, AMR_OF(3, pul_il[3]), 139, 171, 211, 259, 307, 155, 123, 223, 330cabdff1aSopenharmony_ci 271, 319, 219, 267, 315, 331cabdff1aSopenharmony_ci 7, AMR_OF(3, vq_gain), 1, 16, 42, 24, 36, 46, 28, 332cabdff1aSopenharmony_ci 0 333cabdff1aSopenharmony_ci}; 334cabdff1aSopenharmony_ci 335cabdff1aSopenharmony_cistatic const uint16_t order_MODE_18k25[] = { 336cabdff1aSopenharmony_ci 1, AMR_BIT(vad), 7, 337cabdff1aSopenharmony_ci 8, AMR_BIT(isp_id[0]), 55, 40, 14, 6, 15, 5, 0, 68, 338cabdff1aSopenharmony_ci 8, AMR_BIT(isp_id[1]), 77, 58, 75, 49, 59, 57, 67, 61, 339cabdff1aSopenharmony_ci 6, AMR_BIT(isp_id[2]), 48, 63, 51, 62, 50, 70, 340cabdff1aSopenharmony_ci 7, AMR_BIT(isp_id[3]), 71, 56, 60, 69, 85, 86, 80, 341cabdff1aSopenharmony_ci 7, AMR_BIT(isp_id[4]), 93, 64, 94, 76, 82, 81, 89, 342cabdff1aSopenharmony_ci 5, AMR_BIT(isp_id[5]), 90, 103, 88, 102, 99, 343cabdff1aSopenharmony_ci 5, AMR_BIT(isp_id[6]), 98, 97, 96, 111, 95, 344cabdff1aSopenharmony_ci 9, AMR_OF(0, adap), 13, 12, 11, 10, 9, 41, 66, 72, 345cabdff1aSopenharmony_ci 92, 346cabdff1aSopenharmony_ci 1, AMR_OF(0, ltp), 110, 347cabdff1aSopenharmony_ci 2, AMR_OF(0, pul_ih[0]), 124, 115, 348cabdff1aSopenharmony_ci 2, AMR_OF(0, pul_ih[1]), 150, 117, 349cabdff1aSopenharmony_ci 2, AMR_OF(0, pul_ih[2]), 129, 114, 350cabdff1aSopenharmony_ci 2, AMR_OF(0, pul_ih[3]), 121, 131, 351cabdff1aSopenharmony_ci 14, AMR_OF(0, pul_il[0]), 161, 257, 343, 199, 177, 303, 204, 173, 352cabdff1aSopenharmony_ci 168, 260, 277, 307, 338, 128, 353cabdff1aSopenharmony_ci 14, AMR_OF(0, pul_il[1]), 194, 286, 347, 222, 214, 316, 236, 152, 354cabdff1aSopenharmony_ci 166, 242, 284, 308, 344, 142, 355cabdff1aSopenharmony_ci 14, AMR_OF(0, pul_il[2]), 169, 273, 353, 202, 189, 311, 240, 200, 356cabdff1aSopenharmony_ci 171, 261, 309, 296, 345, 130, 357cabdff1aSopenharmony_ci 14, AMR_OF(0, pul_il[3]), 198, 275, 349, 187, 163, 282, 193, 195, 358cabdff1aSopenharmony_ci 175, 234, 265, 289, 328, 119, 359cabdff1aSopenharmony_ci 7, AMR_OF(0, vq_gain), 4, 19, 45, 27, 39, 33, 31, 360cabdff1aSopenharmony_ci 6, AMR_OF(1, adap), 35, 54, 79, 74, 84, 101, 361cabdff1aSopenharmony_ci 1, AMR_OF(1, ltp), 109, 362cabdff1aSopenharmony_ci 2, AMR_OF(1, pul_ih[0]), 139, 104, 363cabdff1aSopenharmony_ci 2, AMR_OF(1, pul_ih[1]), 135, 118, 364cabdff1aSopenharmony_ci 2, AMR_OF(1, pul_ih[2]), 112, 127, 365cabdff1aSopenharmony_ci 2, AMR_OF(1, pul_ih[3]), 140, 141, 366cabdff1aSopenharmony_ci 14, AMR_OF(1, pul_il[0]), 179, 276, 340, 225, 223, 321, 235, 190, 367cabdff1aSopenharmony_ci 182, 271, 310, 315, 352, 125, 368cabdff1aSopenharmony_ci 14, AMR_OF(1, pul_il[1]), 153, 264, 329, 232, 209, 323, 231, 165, 369cabdff1aSopenharmony_ci 191, 279, 290, 312, 367, 134, 370cabdff1aSopenharmony_ci 14, AMR_OF(1, pul_il[2]), 167, 269, 341, 205, 197, 298, 224, 160, 371cabdff1aSopenharmony_ci 170, 259, 280, 317, 357, 148, 372cabdff1aSopenharmony_ci 14, AMR_OF(1, pul_il[3]), 203, 272, 342, 227, 192, 299, 233, 172, 373cabdff1aSopenharmony_ci 183, 256, 283, 326, 355, 106, 374cabdff1aSopenharmony_ci 7, AMR_OF(1, vq_gain), 3, 18, 44, 26, 38, 32, 30, 375cabdff1aSopenharmony_ci 9, AMR_OF(2, adap), 8, 23, 22, 21, 20, 52, 65, 87, 376cabdff1aSopenharmony_ci 91, 377cabdff1aSopenharmony_ci 1, AMR_OF(2, ltp), 108, 378cabdff1aSopenharmony_ci 2, AMR_OF(2, pul_ih[0]), 144, 120, 379cabdff1aSopenharmony_ci 2, AMR_OF(2, pul_ih[1]), 157, 123, 380cabdff1aSopenharmony_ci 2, AMR_OF(2, pul_ih[2]), 145, 138, 381cabdff1aSopenharmony_ci 2, AMR_OF(2, pul_ih[3]), 132, 154, 382cabdff1aSopenharmony_ci 14, AMR_OF(2, pul_il[0]), 241, 319, 365, 252, 253, 331, 254, 230, 383cabdff1aSopenharmony_ci 220, 263, 285, 314, 364, 156, 384cabdff1aSopenharmony_ci 14, AMR_OF(2, pul_il[1]), 247, 291, 339, 249, 250, 332, 267, 196, 385cabdff1aSopenharmony_ci 207, 268, 304, 324, 356, 158, 386cabdff1aSopenharmony_ci 14, AMR_OF(2, pul_il[2]), 210, 300, 348, 243, 237, 333, 246, 206, 387cabdff1aSopenharmony_ci 219, 266, 318, 335, 363, 159, 388cabdff1aSopenharmony_ci 14, AMR_OF(2, pul_il[3]), 239, 306, 366, 221, 226, 297, 251, 184, 389cabdff1aSopenharmony_ci 178, 258, 292, 305, 346, 116, 390cabdff1aSopenharmony_ci 7, AMR_OF(2, vq_gain), 2, 17, 43, 25, 37, 47, 29, 391cabdff1aSopenharmony_ci 6, AMR_OF(3, adap), 34, 53, 78, 73, 83, 100, 392cabdff1aSopenharmony_ci 1, AMR_OF(3, ltp), 107, 393cabdff1aSopenharmony_ci 2, AMR_OF(3, pul_ih[0]), 143, 126, 394cabdff1aSopenharmony_ci 2, AMR_OF(3, pul_ih[1]), 137, 122, 395cabdff1aSopenharmony_ci 2, AMR_OF(3, pul_ih[2]), 149, 105, 396cabdff1aSopenharmony_ci 2, AMR_OF(3, pul_ih[3]), 133, 136, 397cabdff1aSopenharmony_ci 14, AMR_OF(3, pul_il[0]), 162, 287, 337, 244, 229, 322, 218, 180, 398cabdff1aSopenharmony_ci 186, 262, 274, 288, 351, 146, 399cabdff1aSopenharmony_ci 14, AMR_OF(3, pul_il[1]), 212, 294, 358, 248, 228, 334, 215, 174, 400cabdff1aSopenharmony_ci 176, 270, 293, 301, 354, 147, 401cabdff1aSopenharmony_ci 14, AMR_OF(3, pul_il[2]), 185, 327, 336, 211, 213, 313, 245, 181, 402cabdff1aSopenharmony_ci 188, 255, 281, 325, 350, 151, 403cabdff1aSopenharmony_ci 14, AMR_OF(3, pul_il[3]), 201, 295, 359, 216, 208, 320, 238, 164, 404cabdff1aSopenharmony_ci 155, 217, 278, 302, 330, 113, 405cabdff1aSopenharmony_ci 7, AMR_OF(3, vq_gain), 1, 16, 42, 24, 36, 46, 28, 406cabdff1aSopenharmony_ci 0 407cabdff1aSopenharmony_ci}; 408cabdff1aSopenharmony_ci 409cabdff1aSopenharmony_cistatic const uint16_t order_MODE_19k85[] = { 410cabdff1aSopenharmony_ci 1, AMR_BIT(vad), 7, 411cabdff1aSopenharmony_ci 8, AMR_BIT(isp_id[0]), 55, 40, 14, 6, 15, 5, 0, 68, 412cabdff1aSopenharmony_ci 8, AMR_BIT(isp_id[1]), 77, 58, 75, 49, 59, 57, 67, 61, 413cabdff1aSopenharmony_ci 6, AMR_BIT(isp_id[2]), 48, 63, 51, 62, 50, 70, 414cabdff1aSopenharmony_ci 7, AMR_BIT(isp_id[3]), 71, 56, 60, 69, 85, 86, 80, 415cabdff1aSopenharmony_ci 7, AMR_BIT(isp_id[4]), 93, 64, 94, 76, 82, 81, 89, 416cabdff1aSopenharmony_ci 5, AMR_BIT(isp_id[5]), 90, 103, 88, 102, 99, 417cabdff1aSopenharmony_ci 5, AMR_BIT(isp_id[6]), 98, 97, 96, 111, 95, 418cabdff1aSopenharmony_ci 9, AMR_OF(0, adap), 13, 12, 11, 10, 9, 41, 66, 72, 419cabdff1aSopenharmony_ci 92, 420cabdff1aSopenharmony_ci 1, AMR_OF(0, ltp), 110, 421cabdff1aSopenharmony_ci 10, AMR_OF(0, pul_ih[0]), 134, 153, 263, 342, 399, 154, 106, 177, 422cabdff1aSopenharmony_ci 317, 265, 423cabdff1aSopenharmony_ci 10, AMR_OF(0, pul_ih[1]), 128, 167, 270, 351, 385, 160, 105, 213, 424cabdff1aSopenharmony_ci 329, 259, 425cabdff1aSopenharmony_ci 2, AMR_OF(0, pul_ih[2]), 123, 147, 426cabdff1aSopenharmony_ci 2, AMR_OF(0, pul_ih[3]), 131, 143, 427cabdff1aSopenharmony_ci 10, AMR_OF(0, pul_il[0]), 346, 118, 170, 201, 296, 368, 250, 284, 428cabdff1aSopenharmony_ci 341, 391, 429cabdff1aSopenharmony_ci 10, AMR_OF(0, pul_il[1]), 345, 104, 166, 196, 281, 374, 242, 269, 430cabdff1aSopenharmony_ci 327, 390, 431cabdff1aSopenharmony_ci 14, AMR_OF(0, pul_il[2]), 141, 171, 291, 364, 229, 210, 308, 228, 432cabdff1aSopenharmony_ci 206, 200, 258, 295, 313, 361, 433cabdff1aSopenharmony_ci 14, AMR_OF(0, pul_il[3]), 144, 188, 282, 366, 217, 216, 309, 218, 434cabdff1aSopenharmony_ci 193, 182, 245, 287, 300, 367, 435cabdff1aSopenharmony_ci 7, AMR_OF(0, vq_gain), 4, 19, 45, 27, 39, 33, 31, 436cabdff1aSopenharmony_ci 6, AMR_OF(1, adap), 35, 54, 79, 74, 84, 101, 437cabdff1aSopenharmony_ci 1, AMR_OF(1, ltp), 109, 438cabdff1aSopenharmony_ci 10, AMR_OF(1, pul_ih[0]), 139, 169, 267, 348, 389, 163, 116, 189, 439cabdff1aSopenharmony_ci 343, 268, 440cabdff1aSopenharmony_ci 10, AMR_OF(1, pul_ih[1]), 120, 161, 249, 339, 397, 152, 114, 230, 441cabdff1aSopenharmony_ci 334, 303, 442cabdff1aSopenharmony_ci 2, AMR_OF(1, pul_ih[2]), 125, 138, 443cabdff1aSopenharmony_ci 2, AMR_OF(1, pul_ih[3]), 112, 129, 444cabdff1aSopenharmony_ci 10, AMR_OF(1, pul_il[0]), 349, 122, 162, 203, 288, 372, 278, 274, 445cabdff1aSopenharmony_ci 312, 377, 446cabdff1aSopenharmony_ci 10, AMR_OF(1, pul_il[1]), 357, 126, 165, 214, 298, 362, 252, 260, 447cabdff1aSopenharmony_ci 321, 378, 448cabdff1aSopenharmony_ci 14, AMR_OF(1, pul_il[2]), 150, 199, 266, 355, 211, 180, 285, 241, 449cabdff1aSopenharmony_ci 195, 198, 243, 275, 323, 375, 450cabdff1aSopenharmony_ci 14, AMR_OF(1, pul_il[3]), 142, 191, 256, 353, 208, 220, 314, 237, 451cabdff1aSopenharmony_ci 190, 212, 255, 304, 318, 371, 452cabdff1aSopenharmony_ci 7, AMR_OF(1, vq_gain), 3, 18, 44, 26, 38, 32, 30, 453cabdff1aSopenharmony_ci 9, AMR_OF(2, adap), 8, 23, 22, 21, 20, 52, 65, 87, 454cabdff1aSopenharmony_ci 91, 455cabdff1aSopenharmony_ci 1, AMR_OF(2, ltp), 108, 456cabdff1aSopenharmony_ci 10, AMR_OF(2, pul_ih[0]), 159, 168, 302, 356, 395, 178, 132, 185, 457cabdff1aSopenharmony_ci 330, 286, 458cabdff1aSopenharmony_ci 10, AMR_OF(2, pul_ih[1]), 158, 181, 292, 358, 396, 176, 133, 235, 459cabdff1aSopenharmony_ci 331, 276, 460cabdff1aSopenharmony_ci 2, AMR_OF(2, pul_ih[2]), 130, 157, 461cabdff1aSopenharmony_ci 2, AMR_OF(2, pul_ih[3]), 124, 136, 462cabdff1aSopenharmony_ci 10, AMR_OF(2, pul_il[0]), 354, 121, 194, 246, 322, 379, 272, 273, 463cabdff1aSopenharmony_ci 332, 398, 464cabdff1aSopenharmony_ci 10, AMR_OF(2, pul_il[1]), 359, 140, 186, 236, 333, 376, 290, 301, 465cabdff1aSopenharmony_ci 338, 387, 466cabdff1aSopenharmony_ci 14, AMR_OF(2, pul_il[2]), 155, 227, 319, 369, 253, 254, 350, 248, 467cabdff1aSopenharmony_ci 224, 239, 240, 293, 315, 383, 468cabdff1aSopenharmony_ci 14, AMR_OF(2, pul_il[3]), 156, 209, 297, 373, 225, 215, 326, 247, 469cabdff1aSopenharmony_ci 197, 184, 232, 289, 310, 365, 470cabdff1aSopenharmony_ci 7, AMR_OF(2, vq_gain), 2, 17, 43, 25, 37, 47, 29, 471cabdff1aSopenharmony_ci 6, AMR_OF(3, adap), 34, 53, 78, 73, 83, 100, 472cabdff1aSopenharmony_ci 1, AMR_OF(3, ltp), 107, 473cabdff1aSopenharmony_ci 10, AMR_OF(3, pul_ih[0]), 148, 164, 264, 340, 388, 183, 117, 205, 474cabdff1aSopenharmony_ci 336, 261, 475cabdff1aSopenharmony_ci 10, AMR_OF(3, pul_ih[1]), 146, 174, 257, 335, 384, 173, 113, 187, 476cabdff1aSopenharmony_ci 320, 279, 477cabdff1aSopenharmony_ci 2, AMR_OF(3, pul_ih[2]), 127, 151, 478cabdff1aSopenharmony_ci 2, AMR_OF(3, pul_ih[3]), 119, 137, 479cabdff1aSopenharmony_ci 10, AMR_OF(3, pul_il[0]), 352, 135, 172, 238, 306, 381, 262, 271, 480cabdff1aSopenharmony_ci 328, 382, 481cabdff1aSopenharmony_ci 10, AMR_OF(3, pul_il[1]), 347, 115, 179, 219, 305, 380, 277, 294, 482cabdff1aSopenharmony_ci 337, 386, 483cabdff1aSopenharmony_ci 14, AMR_OF(3, pul_il[2]), 145, 192, 307, 370, 234, 223, 324, 244, 484cabdff1aSopenharmony_ci 202, 204, 251, 299, 325, 360, 485cabdff1aSopenharmony_ci 14, AMR_OF(3, pul_il[3]), 149, 221, 311, 363, 226, 222, 316, 231, 486cabdff1aSopenharmony_ci 207, 175, 233, 280, 283, 344, 487cabdff1aSopenharmony_ci 7, AMR_OF(3, vq_gain), 1, 16, 42, 24, 36, 46, 28, 488cabdff1aSopenharmony_ci 0 489cabdff1aSopenharmony_ci}; 490cabdff1aSopenharmony_ci 491cabdff1aSopenharmony_cistatic const uint16_t order_MODE_23k05[] = { 492cabdff1aSopenharmony_ci 1, AMR_BIT(vad), 7, 493cabdff1aSopenharmony_ci 8, AMR_BIT(isp_id[0]), 55, 40, 14, 6, 15, 5, 0, 68, 494cabdff1aSopenharmony_ci 8, AMR_BIT(isp_id[1]), 77, 58, 75, 49, 59, 57, 67, 61, 495cabdff1aSopenharmony_ci 6, AMR_BIT(isp_id[2]), 48, 63, 51, 62, 50, 70, 496cabdff1aSopenharmony_ci 7, AMR_BIT(isp_id[3]), 71, 56, 60, 69, 85, 86, 80, 497cabdff1aSopenharmony_ci 7, AMR_BIT(isp_id[4]), 93, 64, 94, 76, 82, 81, 89, 498cabdff1aSopenharmony_ci 5, AMR_BIT(isp_id[5]), 90, 103, 88, 102, 99, 499cabdff1aSopenharmony_ci 5, AMR_BIT(isp_id[6]), 98, 97, 96, 111, 95, 500cabdff1aSopenharmony_ci 9, AMR_OF(0, adap), 13, 12, 11, 10, 9, 41, 66, 72, 501cabdff1aSopenharmony_ci 92, 502cabdff1aSopenharmony_ci 1, AMR_OF(0, ltp), 110, 503cabdff1aSopenharmony_ci 11, AMR_OF(0, pul_ih[0]), 118, 129, 131, 153, 170, 282, 298, 210, 504cabdff1aSopenharmony_ci 191, 357, 317, 505cabdff1aSopenharmony_ci 11, AMR_OF(0, pul_ih[1]), 126, 146, 135, 165, 187, 273, 345, 295, 506cabdff1aSopenharmony_ci 172, 338, 340, 507cabdff1aSopenharmony_ci 11, AMR_OF(0, pul_ih[2]), 119, 137, 141, 167, 208, 304, 366, 256, 508cabdff1aSopenharmony_ci 177, 339, 328, 509cabdff1aSopenharmony_ci 11, AMR_OF(0, pul_ih[3]), 116, 130, 120, 166, 190, 252, 311, 239, 510cabdff1aSopenharmony_ci 173, 343, 318, 511cabdff1aSopenharmony_ci 11, AMR_OF(0, pul_il[0]), 245, 180, 342, 424, 259, 277, 266, 380, 512cabdff1aSopenharmony_ci 398, 423, 440, 513cabdff1aSopenharmony_ci 11, AMR_OF(0, pul_il[1]), 218, 207, 367, 434, 201, 240, 275, 363, 514cabdff1aSopenharmony_ci 399, 419, 452, 515cabdff1aSopenharmony_ci 11, AMR_OF(0, pul_il[2]), 274, 188, 348, 425, 242, 204, 262, 365, 516cabdff1aSopenharmony_ci 402, 431, 463, 517cabdff1aSopenharmony_ci 11, AMR_OF(0, pul_il[3]), 221, 183, 337, 439, 243, 216, 251, 354, 518cabdff1aSopenharmony_ci 390, 411, 462, 519cabdff1aSopenharmony_ci 7, AMR_OF(0, vq_gain), 4, 19, 45, 27, 39, 33, 31, 520cabdff1aSopenharmony_ci 6, AMR_OF(1, adap), 35, 54, 79, 74, 84, 101, 521cabdff1aSopenharmony_ci 1, AMR_OF(1, ltp), 109, 522cabdff1aSopenharmony_ci 11, AMR_OF(1, pul_ih[0]), 115, 140, 142, 161, 230, 291, 351, 235, 523cabdff1aSopenharmony_ci 181, 293, 310, 524cabdff1aSopenharmony_ci 11, AMR_OF(1, pul_ih[1]), 104, 138, 132, 162, 211, 315, 347, 233, 525cabdff1aSopenharmony_ci 176, 320, 329, 526cabdff1aSopenharmony_ci 11, AMR_OF(1, pul_ih[2]), 106, 134, 125, 154, 205, 267, 306, 220, 527cabdff1aSopenharmony_ci 185, 330, 297, 528cabdff1aSopenharmony_ci 11, AMR_OF(1, pul_ih[3]), 105, 148, 122, 152, 215, 302, 350, 254, 529cabdff1aSopenharmony_ci 178, 319, 313, 530cabdff1aSopenharmony_ci 11, AMR_OF(1, pul_il[0]), 269, 189, 382, 432, 272, 228, 263, 383, 531cabdff1aSopenharmony_ci 406, 422, 453, 532cabdff1aSopenharmony_ci 11, AMR_OF(1, pul_il[1]), 286, 206, 377, 446, 226, 222, 265, 368, 533cabdff1aSopenharmony_ci 404, 416, 454, 534cabdff1aSopenharmony_ci 11, AMR_OF(1, pul_il[2]), 247, 195, 358, 445, 224, 236, 309, 341, 535cabdff1aSopenharmony_ci 375, 408, 449, 536cabdff1aSopenharmony_ci 11, AMR_OF(1, pul_il[3]), 225, 192, 359, 436, 250, 258, 290, 389, 537cabdff1aSopenharmony_ci 400, 420, 448, 538cabdff1aSopenharmony_ci 7, AMR_OF(1, vq_gain), 3, 18, 44, 26, 38, 32, 30, 539cabdff1aSopenharmony_ci 9, AMR_OF(2, adap), 8, 23, 22, 21, 20, 52, 65, 87, 540cabdff1aSopenharmony_ci 91, 541cabdff1aSopenharmony_ci 1, AMR_OF(2, ltp), 108, 542cabdff1aSopenharmony_ci 11, AMR_OF(2, pul_ih[0]), 139, 144, 145, 169, 234, 327, 395, 299, 543cabdff1aSopenharmony_ci 244, 356, 379, 544cabdff1aSopenharmony_ci 11, AMR_OF(2, pul_ih[1]), 127, 156, 158, 171, 231, 308, 397, 355, 545cabdff1aSopenharmony_ci 261, 371, 335, 546cabdff1aSopenharmony_ci 11, AMR_OF(2, pul_ih[2]), 123, 155, 157, 193, 241, 362, 384, 323, 547cabdff1aSopenharmony_ci 238, 392, 361, 548cabdff1aSopenharmony_ci 11, AMR_OF(2, pul_ih[3]), 114, 147, 121, 175, 196, 333, 373, 303, 549cabdff1aSopenharmony_ci 184, 353, 322, 550cabdff1aSopenharmony_ci 11, AMR_OF(2, pul_il[0]), 271, 203, 385, 442, 307, 276, 334, 405, 551cabdff1aSopenharmony_ci 412, 427, 459, 552cabdff1aSopenharmony_ci 11, AMR_OF(2, pul_il[1]), 278, 200, 388, 447, 292, 288, 296, 403, 553cabdff1aSopenharmony_ci 415, 429, 460, 554cabdff1aSopenharmony_ci 11, AMR_OF(2, pul_il[2]), 312, 214, 393, 433, 279, 301, 314, 391, 555cabdff1aSopenharmony_ci 410, 426, 450, 556cabdff1aSopenharmony_ci 11, AMR_OF(2, pul_il[3]), 280, 186, 376, 437, 268, 260, 255, 364, 557cabdff1aSopenharmony_ci 414, 417, 441, 558cabdff1aSopenharmony_ci 7, AMR_OF(2, vq_gain), 2, 17, 43, 25, 37, 47, 29, 559cabdff1aSopenharmony_ci 6, AMR_OF(3, adap), 34, 53, 78, 73, 83, 100, 560cabdff1aSopenharmony_ci 1, AMR_OF(3, ltp), 107, 561cabdff1aSopenharmony_ci 11, AMR_OF(3, pul_ih[0]), 112, 159, 143, 164, 213, 281, 332, 284, 562cabdff1aSopenharmony_ci 168, 344, 325, 563cabdff1aSopenharmony_ci 11, AMR_OF(3, pul_ih[1]), 113, 150, 149, 179, 199, 316, 324, 285, 564cabdff1aSopenharmony_ci 237, 360, 336, 565cabdff1aSopenharmony_ci 11, AMR_OF(3, pul_ih[2]), 124, 136, 151, 174, 209, 326, 349, 248, 566cabdff1aSopenharmony_ci 198, 374, 331, 567cabdff1aSopenharmony_ci 11, AMR_OF(3, pul_ih[3]), 117, 128, 133, 163, 202, 300, 372, 305, 568cabdff1aSopenharmony_ci 194, 387, 321, 569cabdff1aSopenharmony_ci 11, AMR_OF(3, pul_il[0]), 249, 182, 352, 428, 253, 264, 289, 413, 570cabdff1aSopenharmony_ci 407, 418, 461, 571cabdff1aSopenharmony_ci 11, AMR_OF(3, pul_il[1]), 287, 212, 369, 444, 223, 246, 217, 346, 572cabdff1aSopenharmony_ci 394, 401, 451, 573cabdff1aSopenharmony_ci 11, AMR_OF(3, pul_il[2]), 219, 197, 378, 435, 229, 257, 283, 396, 574cabdff1aSopenharmony_ci 409, 430, 455, 575cabdff1aSopenharmony_ci 11, AMR_OF(3, pul_il[3]), 232, 160, 370, 438, 227, 270, 294, 381, 576cabdff1aSopenharmony_ci 386, 421, 443, 577cabdff1aSopenharmony_ci 7, AMR_OF(3, vq_gain), 1, 16, 42, 24, 36, 46, 28, 578cabdff1aSopenharmony_ci 0 579cabdff1aSopenharmony_ci}; 580cabdff1aSopenharmony_ci 581cabdff1aSopenharmony_cistatic const uint16_t order_MODE_23k85[] = { 582cabdff1aSopenharmony_ci 1, AMR_BIT(vad), 7, 583cabdff1aSopenharmony_ci 8, AMR_BIT(isp_id[0]), 55, 40, 14, 6, 15, 5, 0, 68, 584cabdff1aSopenharmony_ci 8, AMR_BIT(isp_id[1]), 93, 58, 91, 49, 59, 57, 67, 61, 585cabdff1aSopenharmony_ci 6, AMR_BIT(isp_id[2]), 48, 63, 51, 62, 50, 70, 586cabdff1aSopenharmony_ci 7, AMR_BIT(isp_id[3]), 71, 56, 60, 69, 101, 102, 96, 587cabdff1aSopenharmony_ci 7, AMR_BIT(isp_id[4]), 109, 64, 110, 92, 98, 97, 105, 588cabdff1aSopenharmony_ci 5, AMR_BIT(isp_id[5]), 106, 119, 104, 118, 115, 589cabdff1aSopenharmony_ci 5, AMR_BIT(isp_id[6]), 114, 113, 112, 127, 111, 590cabdff1aSopenharmony_ci 9, AMR_OF(0, adap), 13, 12, 11, 10, 9, 41, 66, 88, 591cabdff1aSopenharmony_ci 108, 592cabdff1aSopenharmony_ci 1, AMR_OF(0, ltp), 126, 593cabdff1aSopenharmony_ci 11, AMR_OF(0, pul_ih[0]), 134, 145, 147, 169, 186, 298, 314, 226, 594cabdff1aSopenharmony_ci 207, 373, 333, 595cabdff1aSopenharmony_ci 11, AMR_OF(0, pul_ih[1]), 142, 162, 151, 181, 203, 289, 361, 311, 596cabdff1aSopenharmony_ci 188, 354, 356, 597cabdff1aSopenharmony_ci 11, AMR_OF(0, pul_ih[2]), 135, 153, 157, 183, 224, 320, 382, 272, 598cabdff1aSopenharmony_ci 193, 355, 344, 599cabdff1aSopenharmony_ci 11, AMR_OF(0, pul_ih[3]), 132, 146, 136, 182, 206, 268, 327, 255, 600cabdff1aSopenharmony_ci 189, 359, 334, 601cabdff1aSopenharmony_ci 11, AMR_OF(0, pul_il[0]), 261, 196, 358, 440, 275, 293, 282, 396, 602cabdff1aSopenharmony_ci 414, 439, 456, 603cabdff1aSopenharmony_ci 11, AMR_OF(0, pul_il[1]), 234, 223, 383, 450, 217, 256, 291, 379, 604cabdff1aSopenharmony_ci 415, 435, 468, 605cabdff1aSopenharmony_ci 11, AMR_OF(0, pul_il[2]), 290, 204, 364, 441, 258, 220, 278, 381, 606cabdff1aSopenharmony_ci 418, 447, 479, 607cabdff1aSopenharmony_ci 11, AMR_OF(0, pul_il[3]), 237, 199, 353, 455, 259, 232, 267, 370, 608cabdff1aSopenharmony_ci 406, 427, 478, 609cabdff1aSopenharmony_ci 7, AMR_OF(0, vq_gain), 4, 19, 45, 27, 39, 33, 31, 610cabdff1aSopenharmony_ci 4, AMR_OF(0, hb_gain), 79, 78, 77, 76, 611cabdff1aSopenharmony_ci 6, AMR_OF(1, adap), 35, 54, 95, 90, 100, 117, 612cabdff1aSopenharmony_ci 1, AMR_OF(1, ltp), 125, 613cabdff1aSopenharmony_ci 11, AMR_OF(1, pul_ih[0]), 131, 156, 158, 177, 246, 307, 367, 251, 614cabdff1aSopenharmony_ci 197, 309, 326, 615cabdff1aSopenharmony_ci 11, AMR_OF(1, pul_ih[1]), 120, 154, 148, 178, 227, 331, 363, 249, 616cabdff1aSopenharmony_ci 192, 336, 345, 617cabdff1aSopenharmony_ci 11, AMR_OF(1, pul_ih[2]), 122, 150, 141, 170, 221, 283, 322, 236, 618cabdff1aSopenharmony_ci 201, 346, 313, 619cabdff1aSopenharmony_ci 11, AMR_OF(1, pul_ih[3]), 121, 164, 138, 168, 231, 318, 366, 270, 620cabdff1aSopenharmony_ci 194, 335, 329, 621cabdff1aSopenharmony_ci 11, AMR_OF(1, pul_il[0]), 285, 205, 398, 448, 288, 244, 279, 399, 622cabdff1aSopenharmony_ci 422, 438, 469, 623cabdff1aSopenharmony_ci 11, AMR_OF(1, pul_il[1]), 302, 222, 393, 462, 242, 238, 281, 384, 624cabdff1aSopenharmony_ci 420, 432, 470, 625cabdff1aSopenharmony_ci 11, AMR_OF(1, pul_il[2]), 263, 211, 374, 461, 240, 252, 325, 357, 626cabdff1aSopenharmony_ci 391, 424, 465, 627cabdff1aSopenharmony_ci 11, AMR_OF(1, pul_il[3]), 241, 208, 375, 452, 266, 274, 306, 405, 628cabdff1aSopenharmony_ci 416, 436, 464, 629cabdff1aSopenharmony_ci 7, AMR_OF(1, vq_gain), 3, 18, 44, 26, 38, 32, 30, 630cabdff1aSopenharmony_ci 4, AMR_OF(1, hb_gain), 75, 74, 73, 72, 631cabdff1aSopenharmony_ci 9, AMR_OF(2, adap), 8, 23, 22, 21, 20, 52, 65, 103, 632cabdff1aSopenharmony_ci 107, 633cabdff1aSopenharmony_ci 1, AMR_OF(2, ltp), 124, 634cabdff1aSopenharmony_ci 11, AMR_OF(2, pul_ih[0]), 155, 160, 161, 185, 250, 343, 411, 315, 635cabdff1aSopenharmony_ci 260, 372, 395, 636cabdff1aSopenharmony_ci 11, AMR_OF(2, pul_ih[1]), 143, 172, 174, 187, 247, 324, 413, 371, 637cabdff1aSopenharmony_ci 277, 387, 351, 638cabdff1aSopenharmony_ci 11, AMR_OF(2, pul_ih[2]), 139, 171, 173, 209, 257, 378, 400, 339, 639cabdff1aSopenharmony_ci 254, 408, 377, 640cabdff1aSopenharmony_ci 11, AMR_OF(2, pul_ih[3]), 130, 163, 137, 191, 212, 349, 389, 319, 641cabdff1aSopenharmony_ci 200, 369, 338, 642cabdff1aSopenharmony_ci 11, AMR_OF(2, pul_il[0]), 287, 219, 401, 458, 323, 292, 350, 421, 643cabdff1aSopenharmony_ci 428, 443, 475, 644cabdff1aSopenharmony_ci 11, AMR_OF(2, pul_il[1]), 294, 216, 404, 463, 308, 304, 312, 419, 645cabdff1aSopenharmony_ci 431, 445, 476, 646cabdff1aSopenharmony_ci 11, AMR_OF(2, pul_il[2]), 328, 230, 409, 449, 295, 317, 330, 407, 647cabdff1aSopenharmony_ci 426, 442, 466, 648cabdff1aSopenharmony_ci 11, AMR_OF(2, pul_il[3]), 296, 202, 392, 453, 284, 276, 271, 380, 649cabdff1aSopenharmony_ci 430, 433, 457, 650cabdff1aSopenharmony_ci 7, AMR_OF(2, vq_gain), 2, 17, 43, 25, 37, 47, 29, 651cabdff1aSopenharmony_ci 4, AMR_OF(2, hb_gain), 87, 86, 85, 84, 652cabdff1aSopenharmony_ci 6, AMR_OF(3, adap), 34, 53, 94, 89, 99, 116, 653cabdff1aSopenharmony_ci 1, AMR_OF(3, ltp), 123, 654cabdff1aSopenharmony_ci 11, AMR_OF(3, pul_ih[0]), 128, 175, 159, 180, 229, 297, 348, 300, 655cabdff1aSopenharmony_ci 184, 360, 341, 656cabdff1aSopenharmony_ci 11, AMR_OF(3, pul_ih[1]), 129, 166, 165, 195, 215, 332, 340, 301, 657cabdff1aSopenharmony_ci 253, 376, 352, 658cabdff1aSopenharmony_ci 11, AMR_OF(3, pul_ih[2]), 140, 152, 167, 190, 225, 342, 365, 264, 659cabdff1aSopenharmony_ci 214, 390, 347, 660cabdff1aSopenharmony_ci 11, AMR_OF(3, pul_ih[3]), 133, 144, 149, 179, 218, 316, 388, 321, 661cabdff1aSopenharmony_ci 210, 403, 337, 662cabdff1aSopenharmony_ci 11, AMR_OF(3, pul_il[0]), 265, 198, 368, 444, 269, 280, 305, 429, 663cabdff1aSopenharmony_ci 423, 434, 477, 664cabdff1aSopenharmony_ci 11, AMR_OF(3, pul_il[1]), 303, 228, 385, 460, 239, 262, 233, 362, 665cabdff1aSopenharmony_ci 410, 417, 467, 666cabdff1aSopenharmony_ci 11, AMR_OF(3, pul_il[2]), 235, 213, 394, 451, 245, 273, 299, 412, 667cabdff1aSopenharmony_ci 425, 446, 471, 668cabdff1aSopenharmony_ci 11, AMR_OF(3, pul_il[3]), 248, 176, 386, 454, 243, 286, 310, 397, 669cabdff1aSopenharmony_ci 402, 437, 459, 670cabdff1aSopenharmony_ci 7, AMR_OF(3, vq_gain), 1, 16, 42, 24, 36, 46, 28, 671cabdff1aSopenharmony_ci 4, AMR_OF(3, hb_gain), 83, 82, 81, 80, 672cabdff1aSopenharmony_ci 0 673cabdff1aSopenharmony_ci}; 674cabdff1aSopenharmony_ci 675cabdff1aSopenharmony_ci/** Reordering array addresses for each mode */ 676cabdff1aSopenharmony_cistatic const uint16_t * const amr_bit_orderings_by_mode[] = { 677cabdff1aSopenharmony_ci order_MODE_6k60, 678cabdff1aSopenharmony_ci order_MODE_8k85, 679cabdff1aSopenharmony_ci order_MODE_12k65, 680cabdff1aSopenharmony_ci order_MODE_14k25, 681cabdff1aSopenharmony_ci order_MODE_15k85, 682cabdff1aSopenharmony_ci order_MODE_18k25, 683cabdff1aSopenharmony_ci order_MODE_19k85, 684cabdff1aSopenharmony_ci order_MODE_23k05, 685cabdff1aSopenharmony_ci order_MODE_23k85 686cabdff1aSopenharmony_ci}; 687cabdff1aSopenharmony_ci 688cabdff1aSopenharmony_ci// Extracted from 3GPP TS 26.173 V9.0.0 (qpisf_2s.tab) 689cabdff1aSopenharmony_ci// The *_36b tables are used in 6k60 mode 690cabdff1aSopenharmony_ci// Stored in fixed-point to save some space 691cabdff1aSopenharmony_ci/** Indexed tables for retrieval of quantized ISF vectors in Q15 */ 692cabdff1aSopenharmony_cistatic const int16_t dico1_isf[256][9] = { 693cabdff1aSopenharmony_ci { 579, 1081, 1035, 390, 3, -263, -198, -82, 38}, 694cabdff1aSopenharmony_ci { 18, -68, -12, 313, 761, 405, 249, 111, -76}, 695cabdff1aSopenharmony_ci { 740, 1263, 1292, 1006, 997, 1019, 1017, 976, 923}, 696cabdff1aSopenharmony_ci { -91, 827, 948, 648, 613, 535, 522, 490, 421}, 697cabdff1aSopenharmony_ci { 41, -44, -281, -472, 652, 534, 193, 135, -90}, 698cabdff1aSopenharmony_ci { 41, -121, -356, -60, 663, 307, 61, -48, -344}, 699cabdff1aSopenharmony_ci { 557, 946, 1049, 867, 846, 990, 1112, 1262, 1241}, 700cabdff1aSopenharmony_ci { -118, -204, 328, 512, 870, 793, 610, 402, 186}, 701cabdff1aSopenharmony_ci { 156, 293, 74, -338, -475, -897, -594, -161, -497}, 702cabdff1aSopenharmony_ci { 226, 131, -138, 307, 169, -271, -164, -387, -624}, 703cabdff1aSopenharmony_ci { 62, -32, -61, -252, -541, -828, -1027, -523, -662}, 704cabdff1aSopenharmony_ci { 102, -61, 141, 112, -270, -251, -541, 25, -150}, 705cabdff1aSopenharmony_ci { 6, -132, -356, -686, -96, -322, -522, -31, -326}, 706cabdff1aSopenharmony_ci { -36, -209, -521, -229, 307, -132, -5, -99, -384}, 707cabdff1aSopenharmony_ci { 60, -51, -237, -668, -973, -407, -708, -75, -172}, 708cabdff1aSopenharmony_ci { 26, -138, -266, 111, -302, 43, -278, -356, -359}, 709cabdff1aSopenharmony_ci { 570, 822, 496, -154, -312, -92, 137, 279, 371}, 710cabdff1aSopenharmony_ci { -146, 368, 409, 68, 6, 77, 167, 202, 162}, 711cabdff1aSopenharmony_ci { 633, 898, 996, 756, 662, 683, 783, 909, 996}, 712cabdff1aSopenharmony_ci { -103, 294, 607, 415, 483, 462, 480, 431, 408}, 713cabdff1aSopenharmony_ci { -120, -338, -612, -524, 584, 331, 92, 433, 276}, 714cabdff1aSopenharmony_ci { -178, -293, -154, -41, 269, 100, -9, 213, 160}, 715cabdff1aSopenharmony_ci { 830, 736, 278, 820, 1254, 686, 712, 1039, 473}, 716cabdff1aSopenharmony_ci { -218, -304, 463, 454, 397, 273, 202, 286, 273}, 717cabdff1aSopenharmony_ci { -232, 7, 6, -388, -472, -427, -378, -167, -100}, 718cabdff1aSopenharmony_ci { -294, -183, 134, -47, 101, -88, -84, -117, -3}, 719cabdff1aSopenharmony_ci { 57, 17, -202, -634, -989, -1119, -533, 176, -36}, 720cabdff1aSopenharmony_ci { 120, -28, 23, 111, -319, 318, -22, -77, 266}, 721cabdff1aSopenharmony_ci { -271, -464, -434, -658, -640, -385, -385, -99, -69}, 722cabdff1aSopenharmony_ci { -198, -259, -266, -44, -39, -139, -137, 171, 66}, 723cabdff1aSopenharmony_ci { 9, -145, -377, -846, -1000, -111, -325, 342, 135}, 724cabdff1aSopenharmony_ci { -81, -286, -380, 192, -57, 307, 76, -24, -140}, 725cabdff1aSopenharmony_ci { 677, 702, 247, 56, 249, 141, -105, -236, -99}, 726cabdff1aSopenharmony_ci { 36, -39, -69, 348, 198, -93, 322, 91, -72}, 727cabdff1aSopenharmony_ci { 503, 885, 1508, 1307, 1282, 1172, 1119, 1209, 1061}, 728cabdff1aSopenharmony_ci { 416, 719, 989, 1227, 1001, 1052, 954, 741, 1044}, 729cabdff1aSopenharmony_ci { -127, -376, -657, 139, 623, 223, 501, 306, 220}, 730cabdff1aSopenharmony_ci { -113, -384, -796, 504, 438, 85, 213, -83, -194}, 731cabdff1aSopenharmony_ci { 585, 1132, 1233, 1091, 1247, 1433, 1512, 1448, 1314}, 732cabdff1aSopenharmony_ci { -174, -422, 7, 1155, 1089, 1182, 1003, 945, 806}, 733cabdff1aSopenharmony_ci { 8, -126, -317, -103, -351, -695, -98, -268, -537}, 734cabdff1aSopenharmony_ci { 33, -103, -290, 167, -39, -407, 44, -208, -375}, 735cabdff1aSopenharmony_ci { 104, -23, -64, -291, -637, -851, -1084, -61, -112}, 736cabdff1aSopenharmony_ci { -75, -306, -434, 218, -148, -354, -680, -133, -216}, 737cabdff1aSopenharmony_ci { -121, -377, -718, -97, -130, -361, -156, -379, -599}, 738cabdff1aSopenharmony_ci { -56, -254, -586, 235, 157, -214, 11, -260, -149}, 739cabdff1aSopenharmony_ci { -124, -267, -397, -580, -593, -527, -805, -385, 346}, 740cabdff1aSopenharmony_ci { -193, -440, -708, -351, -141, -255, -499, -147, -185}, 741cabdff1aSopenharmony_ci { 448, 660, 494, 208, 509, 461, 338, 291, 149}, 742cabdff1aSopenharmony_ci { -223, 88, 335, 159, 212, 191, 286, 308, 205}, 743cabdff1aSopenharmony_ci { -31, 469, 803, 659, 619, 658, 843, 987, 1113}, 744cabdff1aSopenharmony_ci { -171, -242, 514, 362, 295, 524, 552, 694, 585}, 745cabdff1aSopenharmony_ci { -64, -308, -448, -21, 284, 786, 446, 289, 92}, 746cabdff1aSopenharmony_ci { -218, -390, -7, 169, 206, 330, 352, 408, 358}, 747cabdff1aSopenharmony_ci { -36, 702, 959, 859, 861, 1115, 1269, 1357, 1305}, 748cabdff1aSopenharmony_ci { -133, -341, -65, 678, 417, 440, 486, 518, 780}, 749cabdff1aSopenharmony_ci { 33, -44, -191, -344, -461, -755, -201, 217, -31}, 750cabdff1aSopenharmony_ci { -353, -547, -44, 123, -61, -68, -79, 29, 60}, 751cabdff1aSopenharmony_ci { 73, -57, -406, -766, -1243, -1203, 240, 400, 165}, 752cabdff1aSopenharmony_ci { -73, -282, -601, -213, -171, -375, 332, 35, -103}, 753cabdff1aSopenharmony_ci { -29, -207, -553, -476, -638, -908, 172, -22, -135}, 754cabdff1aSopenharmony_ci { -192, -239, -164, -103, -111, -47, 153, 125, 110}, 755cabdff1aSopenharmony_ci { -1, -203, -570, -1030, -1424, -535, 155, 1, 147}, 756cabdff1aSopenharmony_ci { -333, -653, -865, -197, -158, -21, -44, 95, 108}, 757cabdff1aSopenharmony_ci { 389, 588, 490, 33, -237, -524, -628, -136, -260}, 758cabdff1aSopenharmony_ci { 40, -177, -462, 453, 862, 380, 131, -130, -405}, 759cabdff1aSopenharmony_ci { 842, 1678, 1841, 1549, 1474, 1256, 1082, 905, 742}, 760cabdff1aSopenharmony_ci { 370, 1216, 1768, 1633, 1212, 636, 22, -330, 71}, 761cabdff1aSopenharmony_ci { -76, -281, -741, -742, 898, 619, 277, 71, -222}, 762cabdff1aSopenharmony_ci { -32, -265, -556, -25, 994, 682, 305, 126, -165}, 763cabdff1aSopenharmony_ci { 73, 738, 893, 968, 993, 1768, 2273, 1840, 1391}, 764cabdff1aSopenharmony_ci { -69, -349, -585, 234, 1158, 903, 626, 510, 251}, 765cabdff1aSopenharmony_ci { -1, -99, -272, -210, -603, -351, -540, -811, -383}, 766cabdff1aSopenharmony_ci { -16, -230, -504, 410, 149, -205, -343, -651, -639}, 767cabdff1aSopenharmony_ci { 103, -9, -227, -205, -562, -781, -1079, -1208, -156}, 768cabdff1aSopenharmony_ci { 143, 63, -135, -67, -317, -602, -784, -1154, -640}, 769cabdff1aSopenharmony_ci { -144, -391, -674, -622, -200, -254, -660, -947, -395}, 770cabdff1aSopenharmony_ci { -40, -250, -625, 27, 543, 94, -131, -386, -673}, 771cabdff1aSopenharmony_ci { -123, -371, -757, -451, -564, -614, -415, -711, -35}, 772cabdff1aSopenharmony_ci { -116, -309, -593, -268, 239, -33, -338, -650, -135}, 773cabdff1aSopenharmony_ci { 94, 251, 554, 57, -312, -423, -154, -57, 235}, 774cabdff1aSopenharmony_ci { -268, -71, 381, 114, -44, -87, 125, 173, 133}, 775cabdff1aSopenharmony_ci { 1513, 1714, 1238, 534, 276, 315, 461, 459, 508}, 776cabdff1aSopenharmony_ci { -131, -19, 1149, 670, 486, 356, 309, 369, 296}, 777cabdff1aSopenharmony_ci { -223, -501, -899, -722, -70, 6, 131, 310, 394}, 778cabdff1aSopenharmony_ci { -99, -303, -517, 249, 64, -53, 135, -11, 453}, 779cabdff1aSopenharmony_ci { -147, -399, -730, -401, 817, 738, 802, 749, 575}, 780cabdff1aSopenharmony_ci { -154, -435, -739, 800, 593, 366, 529, 318, 326}, 781cabdff1aSopenharmony_ci { -224, 45, -39, -387, -515, -518, -608, -384, -321}, 782cabdff1aSopenharmony_ci { -315, -377, 143, -101, -113, -377, -177, -144, -12}, 783cabdff1aSopenharmony_ci { 117, 40, -239, -651, -1051, -581, -737, -990, -328}, 784cabdff1aSopenharmony_ci { 26, -50, -157, -23, -453, -283, -531, -546, 192}, 785cabdff1aSopenharmony_ci { -252, -501, -743, -589, -627, -499, -328, -118, -72}, 786cabdff1aSopenharmony_ci { -324, -494, -244, -306, -144, -177, -262, -135, -78}, 787cabdff1aSopenharmony_ci { -36, -234, -519, -961, -1290, -314, -479, -371, -45}, 788cabdff1aSopenharmony_ci { -95, -292, -535, -8, -300, 112, -164, -277, 198}, 789cabdff1aSopenharmony_ci { -99, -128, 880, 836, 579, 351, 23, -95, -217}, 790cabdff1aSopenharmony_ci { -27, -258, 124, 1011, 597, 425, 144, 7, -73}, 791cabdff1aSopenharmony_ci { 421, 1293, 1640, 1623, 1742, 1617, 1499, 1284, 1006}, 792cabdff1aSopenharmony_ci { -95, 752, 1680, 1569, 1618, 1436, 1200, 980, 712}, 793cabdff1aSopenharmony_ci { -69, -300, -683, -435, 1132, 899, 504, 332, 109}, 794cabdff1aSopenharmony_ci { -74, -323, -637, 563, 1074, 608, 371, 105, -49}, 795cabdff1aSopenharmony_ci { -78, 831, 1194, 1110, 1378, 1481, 1492, 1365, 1217}, 796cabdff1aSopenharmony_ci { -259, -121, 1440, 1334, 1628, 1490, 1438, 1223, 933}, 797cabdff1aSopenharmony_ci { -82, -306, -613, -222, -378, -675, -545, -671, -845}, 798cabdff1aSopenharmony_ci { 53, -124, -347, 422, 52, -125, -270, -529, 9}, 799cabdff1aSopenharmony_ci { 79, -89, -320, -662, -999, -1199, -1243, -676, -297}, 800cabdff1aSopenharmony_ci { -68, -273, -611, 137, -146, -397, -627, -845, -220}, 801cabdff1aSopenharmony_ci { -112, -346, -797, -826, 234, -132, -188, -278, -522}, 802cabdff1aSopenharmony_ci { -159, -405, -734, -419, 293, 74, -167, -167, 184}, 803cabdff1aSopenharmony_ci { -153, -437, -833, -1080, -336, -472, -561, -340, -253}, 804cabdff1aSopenharmony_ci { -169, -423, -820, -904, -131, -19, -346, -604, 31}, 805cabdff1aSopenharmony_ci { 33, -31, 312, 62, -148, 49, -59, 564, 486}, 806cabdff1aSopenharmony_ci { -306, -333, 194, -44, 67, 72, 147, 205, 243}, 807cabdff1aSopenharmony_ci { -207, -49, 1360, 983, 969, 991, 1014, 1110, 973}, 808cabdff1aSopenharmony_ci { -211, -172, 883, 627, 711, 674, 705, 798, 746}, 809cabdff1aSopenharmony_ci { -88, -325, -763, -974, 687, 908, 514, 382, 172}, 810cabdff1aSopenharmony_ci { -292, -612, -805, 63, 131, 270, 259, 352, 348}, 811cabdff1aSopenharmony_ci { -235, -84, 955, 818, 1120, 1289, 1559, 1480, 1285}, 812cabdff1aSopenharmony_ci { -180, -461, -614, 657, 691, 745, 854, 783, 713}, 813cabdff1aSopenharmony_ci { -97, -309, -477, -614, -777, -734, -768, -526, -472}, 814cabdff1aSopenharmony_ci { -344, -476, -35, -169, 49, -77, -150, -240, -141}, 815cabdff1aSopenharmony_ci { -52, -268, -639, -919, -1278, -1113, -342, -333, -151}, 816cabdff1aSopenharmony_ci { -68, -242, -585, -73, -209, -478, -159, -429, 133}, 817cabdff1aSopenharmony_ci { -197, -499, -1005, -1268, -272, -224, -105, -67, 17}, 818cabdff1aSopenharmony_ci { -363, -618, -414, -116, -62, 20, 10, 116, 108}, 819cabdff1aSopenharmony_ci { -195, -475, -906, -1260, -891, -441, -277, -142, -28}, 820cabdff1aSopenharmony_ci { -226, -519, -950, -700, -275, -266, -116, -105, 82}, 821cabdff1aSopenharmony_ci { 404, 511, 520, 327, 17, -194, -333, -536, -586}, 822cabdff1aSopenharmony_ci { -114, -130, 276, 237, 204, 342, 135, -16, -111}, 823cabdff1aSopenharmony_ci { 670, 1208, 1168, 860, 742, 601, 528, 403, 309}, 824cabdff1aSopenharmony_ci { 397, 621, 966, 752, 579, 398, 400, 329, 252}, 825cabdff1aSopenharmony_ci { 191, 180, -137, -467, 272, 106, -95, 17, -192}, 826cabdff1aSopenharmony_ci { -80, -290, -626, 194, 598, 196, 21, -281, 77}, 827cabdff1aSopenharmony_ci { 510, 864, 1108, 807, 939, 902, 925, 717, 481}, 828cabdff1aSopenharmony_ci { 137, 367, 534, 764, 670, 382, 296, 153, 84}, 829cabdff1aSopenharmony_ci { 303, 497, 144, -85, -125, -539, -482, -464, -764}, 830cabdff1aSopenharmony_ci { 233, 347, 68, -147, 169, -210, -242, -226, -482}, 831cabdff1aSopenharmony_ci { 307, 422, 154, -175, -386, -722, -724, -904, -1015}, 832cabdff1aSopenharmony_ci { 309, 308, 160, -60, -470, -420, -598, -791, -219}, 833cabdff1aSopenharmony_ci { 68, 121, -137, -560, -146, -446, -515, -494, -729}, 834cabdff1aSopenharmony_ci { 130, 53, -227, 46, 474, 32, -161, -192, -490}, 835cabdff1aSopenharmony_ci { 213, 164, -71, -465, -876, -161, -456, -587, -48}, 836cabdff1aSopenharmony_ci { 218, 117, 39, 177, -194, -88, -226, -418, 50}, 837cabdff1aSopenharmony_ci { 210, 547, 569, 279, 121, -44, -50, 10, -84}, 838cabdff1aSopenharmony_ci { 58, 140, 182, -5, 267, 117, 106, 211, 198}, 839cabdff1aSopenharmony_ci { 539, 835, 913, 719, 617, 544, 591, 565, 642}, 840cabdff1aSopenharmony_ci { 153, 559, 872, 460, 222, 108, 188, 180, 183}, 841cabdff1aSopenharmony_ci { 158, 119, 284, -153, -271, 229, 87, 110, -57}, 842cabdff1aSopenharmony_ci { -183, 82, 118, 21, 13, 40, 118, 191, 185}, 843cabdff1aSopenharmony_ci { 162, 889, 654, 108, -34, 244, 488, 561, 532}, 844cabdff1aSopenharmony_ci { 163, 56, 609, 341, 50, 329, 68, 266, 218}, 845cabdff1aSopenharmony_ci { 100, 206, 18, -304, -107, -436, -487, -65, -306}, 846cabdff1aSopenharmony_ci { -86, 154, 134, -30, -45, -73, -104, -80, -96}, 847cabdff1aSopenharmony_ci { 245, 330, 10, -440, -849, -1082, 79, 40, -265}, 848cabdff1aSopenharmony_ci { 196, 372, 272, -181, -493, -389, 275, 80, -59}, 849cabdff1aSopenharmony_ci { 2, -12, -246, -505, -100, -436, 21, -187, -431}, 850cabdff1aSopenharmony_ci { -221, -48, 36, -271, -186, -147, -109, 26, 71}, 851cabdff1aSopenharmony_ci { 213, 140, 72, -351, -620, -84, -363, 69, 46}, 852cabdff1aSopenharmony_ci { 91, 167, -3, -95, -99, -105, -48, 114, 147}, 853cabdff1aSopenharmony_ci { 259, 249, 172, 607, 406, 52, 59, -189, -320}, 854cabdff1aSopenharmony_ci { 115, -85, -54, 574, 128, 226, -59, -253, 130}, 855cabdff1aSopenharmony_ci { -62, 1033, 1308, 1035, 1127, 1098, 1029, 961, 823}, 856cabdff1aSopenharmony_ci { 39, 364, 757, 940, 728, 660, 659, 583, 770}, 857cabdff1aSopenharmony_ci { -115, -338, -760, -471, 394, 37, 441, 178, 6}, 858cabdff1aSopenharmony_ci { -57, -305, -525, 796, 453, 188, -4, -114, 248}, 859cabdff1aSopenharmony_ci { 71, 444, 797, 731, 1096, 1157, 1222, 1029, 811}, 860cabdff1aSopenharmony_ci { 135, 359, 551, 425, 749, 815, 874, 704, 502}, 861cabdff1aSopenharmony_ci { 132, 247, 0, -206, -449, -750, -258, -514, -633}, 862cabdff1aSopenharmony_ci { 248, 249, 91, 121, -195, -499, -90, -282, -435}, 863cabdff1aSopenharmony_ci { 78, 20, -277, -623, -983, -1224, -415, -458, -639}, 864cabdff1aSopenharmony_ci { 347, 509, 208, -179, -464, -728, -76, -237, -486}, 865cabdff1aSopenharmony_ci { -103, -343, -756, -713, -265, -609, -191, -398, -636}, 866cabdff1aSopenharmony_ci { -121, -383, -749, 567, 252, -36, -354, -417, -50}, 867cabdff1aSopenharmony_ci { 204, 100, -149, -650, -1081, -47, -7, -263, 111}, 868cabdff1aSopenharmony_ci { -46, -180, -267, -324, -562, -394, -692, 398, 292}, 869cabdff1aSopenharmony_ci { 482, 670, 683, 624, 442, 165, 116, 36, -149}, 870cabdff1aSopenharmony_ci { 108, 247, 291, 247, 355, 122, 109, 224, 296}, 871cabdff1aSopenharmony_ci { -14, 945, 990, 801, 755, 815, 847, 913, 892}, 872cabdff1aSopenharmony_ci { 292, 349, 725, 482, 388, 329, 429, 620, 667}, 873cabdff1aSopenharmony_ci { -34, 197, 213, -127, 84, 494, 620, 575, 375}, 874cabdff1aSopenharmony_ci { 126, 207, 172, 167, 362, 202, 296, 395, 455}, 875cabdff1aSopenharmony_ci { -6, 250, 539, 467, 636, 801, 1149, 1287, 1118}, 876cabdff1aSopenharmony_ci { 27, 240, 369, 280, 440, 411, 634, 892, 953}, 877cabdff1aSopenharmony_ci { 159, 170, -58, -395, -797, -690, 77, -211, -334}, 878cabdff1aSopenharmony_ci { -5, -28, -13, -74, -335, -603, 300, 88, -205}, 879cabdff1aSopenharmony_ci { 82, -33, -364, -698, -1203, -1153, 110, -146, -289}, 880cabdff1aSopenharmony_ci { 113, 1, -243, -588, -994, -496, 414, 160, 42}, 881cabdff1aSopenharmony_ci { -56, -247, -440, -693, -996, -479, 11, -178, -357}, 882cabdff1aSopenharmony_ci { -151, -353, -327, -211, -340, 141, 65, 425, 453}, 883cabdff1aSopenharmony_ci { 34, -169, -455, -932, -1215, 138, 499, 256, 324}, 884cabdff1aSopenharmony_ci { 68, 139, -15, -547, -478, 17, 306, 502, 481}, 885cabdff1aSopenharmony_ci { -32, -134, 445, 129, -143, -244, -503, -507, -599}, 886cabdff1aSopenharmony_ci { 61, -140, -345, 496, 458, -2, 20, -227, -514}, 887cabdff1aSopenharmony_ci { 394, 1765, 1666, 1339, 1117, 806, 642, 479, 380}, 888cabdff1aSopenharmony_ci { 215, 519, 920, 1053, 1090, 791, 528, 290, 155}, 889cabdff1aSopenharmony_ci { -54, -233, -647, -602, 639, 294, -2, -167, -442}, 890cabdff1aSopenharmony_ci { -78, -315, -791, -113, 820, 403, 158, -116, -356}, 891cabdff1aSopenharmony_ci { 529, 1851, 2003, 1228, 622, -41, -416, 344, 819}, 892cabdff1aSopenharmony_ci { -105, -379, -236, 1224, 893, 749, 568, 356, 214}, 893cabdff1aSopenharmony_ci { -17, -199, -144, 50, -283, -247, -578, -846, -1087}, 894cabdff1aSopenharmony_ci { 69, -11, -381, -206, 209, -284, -387, -416, -716}, 895cabdff1aSopenharmony_ci { 39, -5, -145, -374, -682, -909, -1074, -1169, -1066}, 896cabdff1aSopenharmony_ci { 287, 226, 67, -221, -662, -171, -421, -642, -707}, 897cabdff1aSopenharmony_ci { -132, -348, -538, -448, -20, -4, -354, -748, -933}, 898cabdff1aSopenharmony_ci { 4, -75, -289, -598, 317, 52, -208, -297, -559}, 899cabdff1aSopenharmony_ci { -88, -264, -358, -589, -631, -248, -523, -822, -1071}, 900cabdff1aSopenharmony_ci { 70, -8, 54, -314, -515, 92, -146, -274, -493}, 901cabdff1aSopenharmony_ci { 199, 62, 391, 158, -141, 71, -219, -203, -207}, 902cabdff1aSopenharmony_ci { 152, 40, 329, 162, -29, 48, -149, 108, 127}, 903cabdff1aSopenharmony_ci { 635, 1058, 883, 492, 372, 312, 317, 274, 241}, 904cabdff1aSopenharmony_ci { 267, 722, 1256, 882, 625, 248, 8, -81, -60}, 905cabdff1aSopenharmony_ci { -58, -138, -291, -600, -12, -2, -39, 147, 117}, 906cabdff1aSopenharmony_ci { -107, -345, -513, 459, 76, 92, -272, 388, 262}, 907cabdff1aSopenharmony_ci { 362, 516, 203, -409, -716, -831, -331, 185, 209}, 908cabdff1aSopenharmony_ci { -117, -391, -298, 671, 292, 538, 257, 166, -38}, 909cabdff1aSopenharmony_ci { -102, -319, -194, -283, -573, -262, -579, -219, -444}, 910cabdff1aSopenharmony_ci { -235, 78, 11, -168, -101, -229, -263, -321, -123}, 911cabdff1aSopenharmony_ci { 70, 50, -170, -599, -996, -588, -263, -516, -455}, 912cabdff1aSopenharmony_ci { 394, 363, 229, -136, -538, 21, -183, -348, -201}, 913cabdff1aSopenharmony_ci { -124, -368, -640, -879, -847, -209, -409, -494, -515}, 914cabdff1aSopenharmony_ci { -127, -341, -541, -425, -510, -10, -252, -473, -291}, 915cabdff1aSopenharmony_ci { 84, -69, -201, -676, -868, 103, -311, -132, -320}, 916cabdff1aSopenharmony_ci { 5, -173, -188, -297, -628, 197, -57, 7, -11}, 917cabdff1aSopenharmony_ci { 49, -160, 56, 558, 111, 33, -311, -440, -463}, 918cabdff1aSopenharmony_ci { -1, -246, -307, 862, 453, 139, -170, -355, -232}, 919cabdff1aSopenharmony_ci { 279, 966, 1642, 1478, 1463, 1123, 795, 525, 339}, 920cabdff1aSopenharmony_ci { -197, -38, 1702, 1331, 1252, 950, 692, 504, 426}, 921cabdff1aSopenharmony_ci { -108, -344, -861, -1172, 444, 354, 88, -46, -220}, 922cabdff1aSopenharmony_ci { -53, -321, -494, 1113, 744, 364, 198, -34, -75}, 923cabdff1aSopenharmony_ci { 457, 955, 1177, 1214, 1427, 1457, 1345, 917, 539}, 924cabdff1aSopenharmony_ci { -69, 199, 897, 1140, 1343, 1183, 977, 742, 522}, 925cabdff1aSopenharmony_ci { 122, 44, -269, 27, -155, -562, -307, -590, -773}, 926cabdff1aSopenharmony_ci { 154, 42, -160, 252, -129, -305, -471, -733, -371}, 927cabdff1aSopenharmony_ci { 135, 185, -82, -416, -722, -913, -504, -743, -880}, 928cabdff1aSopenharmony_ci { 149, 214, -84, -329, -680, -835, -426, -661, -81}, 929cabdff1aSopenharmony_ci { -128, -380, -735, -998, -337, 17, -182, -467, -697}, 930cabdff1aSopenharmony_ci { -84, -290, -510, -592, 13, 440, 154, -38, -279}, 931cabdff1aSopenharmony_ci { 70, -61, -246, -727, -1047, -80, -381, -535, -704}, 932cabdff1aSopenharmony_ci { 178, -2, -146, -670, -938, 482, 138, 63, 65}, 933cabdff1aSopenharmony_ci { -11, 15, 772, 443, 142, -20, -209, -126, -161}, 934cabdff1aSopenharmony_ci { -32, -249, 95, 552, 124, 30, -343, 82, -86}, 935cabdff1aSopenharmony_ci { 148, 751, 1515, 1105, 867, 606, 474, 448, 399}, 936cabdff1aSopenharmony_ci { -163, -257, 899, 1097, 906, 751, 502, 390, 294}, 937cabdff1aSopenharmony_ci { -51, -258, -447, -806, -368, 763, 464, 364, 183}, 938cabdff1aSopenharmony_ci { -166, -374, -367, 87, 35, 399, 418, 856, 833}, 939cabdff1aSopenharmony_ci { -205, -310, 588, 778, 785, 1065, 1118, 1245, 1157}, 940cabdff1aSopenharmony_ci { -173, -312, 107, 345, 400, 790, 870, 1113, 1001}, 941cabdff1aSopenharmony_ci { -7, -120, -387, -410, -614, -943, -226, -384, -491}, 942cabdff1aSopenharmony_ci { -203, -288, -51, -331, -90, -178, -408, -573, -338}, 943cabdff1aSopenharmony_ci { 56, -29, -273, -627, -1041, -798, -247, -467, 148}, 944cabdff1aSopenharmony_ci { 66, -2, -205, -205, -575, -349, -57, -352, -58}, 945cabdff1aSopenharmony_ci { -45, -225, -471, -924, -497, 77, -32, 44, -135}, 946cabdff1aSopenharmony_ci { -277, -491, -497, -502, -424, -202, -137, 77, 96}, 947cabdff1aSopenharmony_ci { 26, -179, -469, -1008, -1260, 262, -35, -132, -259}, 948cabdff1aSopenharmony_ci { -66, -232, -447, -533, -789, -191, -100, -267, 364} 949cabdff1aSopenharmony_ci}; 950cabdff1aSopenharmony_ci 951cabdff1aSopenharmony_cistatic const int16_t dico2_isf[256][7] = { 952cabdff1aSopenharmony_ci { 1357, 1313, 1136, 784, 438, 181, 145}, 953cabdff1aSopenharmony_ci { 636, 648, 667, 568, 442, 217, 362}, 954cabdff1aSopenharmony_ci { 427, 440, 674, 524, 332, 117, -417}, 955cabdff1aSopenharmony_ci { 121, 295, 468, 465, 230, 44, -221}, 956cabdff1aSopenharmony_ci { -147, -240, 149, 80, 390, 278, 106}, 957cabdff1aSopenharmony_ci { -418, -556, 552, 511, 235, 144, -95}, 958cabdff1aSopenharmony_ci { 43, 193, 274, 150, 67, 34, -273}, 959cabdff1aSopenharmony_ci { -43, -126, 171, 416, 282, 63, -354}, 960cabdff1aSopenharmony_ci { -372, -86, -344, -108, -94, -182, -89}, 961cabdff1aSopenharmony_ci { -600, -840, -200, 465, 258, -11, -253}, 962cabdff1aSopenharmony_ci { -48, 329, 97, -290, -543, -795, -354}, 963cabdff1aSopenharmony_ci { -570, -117, 187, 10, -133, -416, -76}, 964cabdff1aSopenharmony_ci { -618, -129, -247, -371, 45, -76, 277}, 965cabdff1aSopenharmony_ci { -1022, -1079, 126, 474, 254, 127, 52}, 966cabdff1aSopenharmony_ci { -281, 76, -167, -361, -283, -551, -283}, 967cabdff1aSopenharmony_ci { -119, -52, -1, 134, -32, -204, -415}, 968cabdff1aSopenharmony_ci { 1064, 827, 637, 684, 464, 209, 12}, 969cabdff1aSopenharmony_ci { 482, 416, 449, 371, 335, 294, 194}, 970cabdff1aSopenharmony_ci { 719, 576, 365, 135, 113, 91, -199}, 971cabdff1aSopenharmony_ci { 298, 176, 493, 366, 194, 163, 36}, 972cabdff1aSopenharmony_ci { -35, -236, -259, -36, -4, 99, 152}, 973cabdff1aSopenharmony_ci { -98, -306, -27, 228, 90, 111, -86}, 974cabdff1aSopenharmony_ci { 91, 13, -211, -258, -106, 86, -64}, 975cabdff1aSopenharmony_ci { 73, -35, -57, -31, 162, 35, -192}, 976cabdff1aSopenharmony_ci { -109, -335, -629, -66, -61, -128, 322}, 977cabdff1aSopenharmony_ci { -495, -669, -728, 193, 31, -220, 122}, 978cabdff1aSopenharmony_ci { 324, 95, -89, -91, -409, -710, -154}, 979cabdff1aSopenharmony_ci { 0, -234, 92, 33, -343, -609, -220}, 980cabdff1aSopenharmony_ci { -343, -408, -476, -655, -153, 82, 222}, 981cabdff1aSopenharmony_ci { -490, -745, -255, 49, -48, 135, -127}, 982cabdff1aSopenharmony_ci { 119, -67, -328, -390, -272, -545, -56}, 983cabdff1aSopenharmony_ci { -57, -130, -10, -7, -164, -47, -22}, 984cabdff1aSopenharmony_ci { 984, 1064, 961, 568, 210, -27, 16}, 985cabdff1aSopenharmony_ci { 811, 691, 754, 514, 224, -35, 166}, 986cabdff1aSopenharmony_ci { 662, 704, 618, 386, 57, -211, -257}, 987cabdff1aSopenharmony_ci { 510, 359, 418, 393, 91, -144, -18}, 988cabdff1aSopenharmony_ci { -193, -31, -27, 223, 89, -143, 24}, 989cabdff1aSopenharmony_ci { -112, -98, 471, 319, 185, 3, 175}, 990cabdff1aSopenharmony_ci { 252, 146, -47, 272, 48, -211, -234}, 991cabdff1aSopenharmony_ci { 146, 69, 203, 364, 68, -52, 51}, 992cabdff1aSopenharmony_ci { -259, -478, -697, -349, -758, -501, 63}, 993cabdff1aSopenharmony_ci { -501, -769, -289, 79, -311, -497, -106}, 994cabdff1aSopenharmony_ci { 251, 53, -235, -469, -895, -884, 145}, 995cabdff1aSopenharmony_ci { -416, -551, 140, -133, -523, -775, 44}, 996cabdff1aSopenharmony_ci { -326, -423, -713, -497, -86, -431, 99}, 997cabdff1aSopenharmony_ci { -757, -772, -160, -76, -46, -32, 379}, 998cabdff1aSopenharmony_ci { 85, -35, -200, -401, -663, -1040, -247}, 999cabdff1aSopenharmony_ci { -180, -330, -92, -376, 27, -183, -110}, 1000cabdff1aSopenharmony_ci { 1279, 1086, 781, 502, 324, 164, 157}, 1001cabdff1aSopenharmony_ci { 682, 466, 449, 277, 146, 28, 409}, 1002cabdff1aSopenharmony_ci { 635, 472, 390, 107, -232, -538, -139}, 1003cabdff1aSopenharmony_ci { 196, 396, 332, 213, 209, -29, -81}, 1004cabdff1aSopenharmony_ci { 150, -95, -312, 76, -77, -320, -50}, 1005cabdff1aSopenharmony_ci { 46, 9, 47, 175, 139, 30, 384}, 1006cabdff1aSopenharmony_ci { 218, 206, -24, -250, -96, -276, -183}, 1007cabdff1aSopenharmony_ci { 26, 119, 38, 14, -4, -133, -52}, 1008cabdff1aSopenharmony_ci { -477, -614, -987, -715, -631, -813, 200}, 1009cabdff1aSopenharmony_ci { -744, -1009, -1065, -745, -631, -171, 18}, 1010cabdff1aSopenharmony_ci { -137, -251, -483, -613, -980, -1203, 12}, 1011cabdff1aSopenharmony_ci { -605, -767, -562, -686, -1088, -515, 58}, 1012cabdff1aSopenharmony_ci { -202, -428, -782, -1072, -96, -234, -179}, 1013cabdff1aSopenharmony_ci { -480, -709, -1070, -897, -131, -92, 321}, 1014cabdff1aSopenharmony_ci { -145, -193, -512, -729, -572, -765, -210}, 1015cabdff1aSopenharmony_ci { -331, -585, -525, -631, -281, -208, -303}, 1016cabdff1aSopenharmony_ci { 1165, 1104, 939, 828, 716, 426, 155}, 1017cabdff1aSopenharmony_ci { 6, -109, 820, 778, 415, 113, -27}, 1018cabdff1aSopenharmony_ci { 381, 339, 314, 265, 121, -9, -474}, 1019cabdff1aSopenharmony_ci { -373, 47, 584, 442, 99, -231, -113}, 1020cabdff1aSopenharmony_ci { -496, -38, -285, 262, 305, 170, 4}, 1021cabdff1aSopenharmony_ci { -587, -556, 69, 66, 471, 354, 13}, 1022cabdff1aSopenharmony_ci { -138, 70, -18, 106, 67, 167, -302}, 1023cabdff1aSopenharmony_ci { -445, -141, 185, 191, 151, 83, -133}, 1024cabdff1aSopenharmony_ci { -257, -521, -720, -198, 134, -46, -182}, 1025cabdff1aSopenharmony_ci { -819, -1168, -777, 512, 359, 95, -113}, 1026cabdff1aSopenharmony_ci { 137, -2, -74, -138, -401, -114, -371}, 1027cabdff1aSopenharmony_ci { -242, -466, 204, 223, -31, -212, -192}, 1028cabdff1aSopenharmony_ci { -532, -637, -466, -686, 256, 277, -139}, 1029cabdff1aSopenharmony_ci { -1141, -1244, -381, -75, -54, 14, 88}, 1030cabdff1aSopenharmony_ci { -311, 115, -143, -499, -343, 124, -416}, 1031cabdff1aSopenharmony_ci { -616, -147, -135, 43, -4, 121, -369}, 1032cabdff1aSopenharmony_ci { 835, 783, 641, 390, 355, 350, 64}, 1033cabdff1aSopenharmony_ci { 72, 194, 443, 467, 436, 219, 372}, 1034cabdff1aSopenharmony_ci { 464, 369, 192, 4, -156, -72, -226}, 1035cabdff1aSopenharmony_ci { 57, 206, 303, 205, 188, 101, 265}, 1036cabdff1aSopenharmony_ci { -40, -205, -488, -184, 276, 64, -26}, 1037cabdff1aSopenharmony_ci { -217, -433, -297, 137, 328, 308, -289}, 1038cabdff1aSopenharmony_ci { 378, 81, -308, -465, 57, -37, 227}, 1039cabdff1aSopenharmony_ci { -100, 24, -36, -151, 199, 8, 143}, 1040cabdff1aSopenharmony_ci { -426, -697, -1059, -133, 388, 161, 321}, 1041cabdff1aSopenharmony_ci { -644, -1023, -1271, 39, 66, -123, 70}, 1042cabdff1aSopenharmony_ci { 372, 177, -173, -556, -553, -304, -189}, 1043cabdff1aSopenharmony_ci { -117, -369, -425, -122, -462, -152, -73}, 1044cabdff1aSopenharmony_ci { -649, -850, -1189, -767, 497, 360, 222}, 1045cabdff1aSopenharmony_ci { -798, -1139, -1455, -190, 430, 234, 179}, 1046cabdff1aSopenharmony_ci { 42, -94, -405, -692, 38, -202, -246}, 1047cabdff1aSopenharmony_ci { -169, -366, -290, -88, -64, 32, -292}, 1048cabdff1aSopenharmony_ci { 1010, 923, 938, 710, 465, 230, 342}, 1049cabdff1aSopenharmony_ci { 217, 300, 1054, 675, 68, -458, -179}, 1050cabdff1aSopenharmony_ci { 78, 453, 316, 18, -237, -496, -243}, 1051cabdff1aSopenharmony_ci { 167, 21, 424, 215, -91, -303, -170}, 1052cabdff1aSopenharmony_ci { -290, -81, -70, -67, 40, 54, -59}, 1053cabdff1aSopenharmony_ci { -353, -427, -90, 53, 94, 9, 54}, 1054cabdff1aSopenharmony_ci { -28, 318, 283, 15, -240, -58, 79}, 1055cabdff1aSopenharmony_ci { -75, -121, 229, 35, 58, 6, -133}, 1056cabdff1aSopenharmony_ci { -351, -514, -744, -834, -705, -137, 164}, 1057cabdff1aSopenharmony_ci { -1124, -1388, -1055, -230, -73, 40, 36}, 1058cabdff1aSopenharmony_ci { -163, -233, -532, -785, -1170, -697, 96}, 1059cabdff1aSopenharmony_ci { -788, -959, -246, -430, -624, -165, -8}, 1060cabdff1aSopenharmony_ci { -856, -540, -630, -907, -337, -70, 76}, 1061cabdff1aSopenharmony_ci { -937, -1042, -659, -733, -208, 199, -26}, 1062cabdff1aSopenharmony_ci { -523, 78, -98, -501, -869, -890, -81}, 1063cabdff1aSopenharmony_ci { -624, -703, -45, -348, -25, 87, -186}, 1064cabdff1aSopenharmony_ci { 1005, 823, 546, 249, 90, -22, 207}, 1065cabdff1aSopenharmony_ci { 298, 397, 381, 319, 200, 62, 303}, 1066cabdff1aSopenharmony_ci { 473, 379, 133, -247, -632, -441, 75}, 1067cabdff1aSopenharmony_ci { 284, 208, 391, 115, -25, 44, 95}, 1068cabdff1aSopenharmony_ci { -72, 79, -95, -63, -129, -293, 203}, 1069cabdff1aSopenharmony_ci { -164, -349, 115, 122, 69, -1, 378}, 1070cabdff1aSopenharmony_ci { 348, 170, 99, 58, -179, -302, 188}, 1071cabdff1aSopenharmony_ci { -190, -2, 150, 23, -51, -11, 216}, 1072cabdff1aSopenharmony_ci { -615, -863, -1090, -1427, -802, -48, -6}, 1073cabdff1aSopenharmony_ci { -961, -1276, -1548, -727, -58, 56, 223}, 1074cabdff1aSopenharmony_ci { -124, -255, -561, -988, -1277, -148, -82}, 1075cabdff1aSopenharmony_ci { -480, -660, -891, -1191, -1339, -325, 20}, 1076cabdff1aSopenharmony_ci { -621, -917, -1296, -1350, 264, 289, 50}, 1077cabdff1aSopenharmony_ci { -844, -1022, -1345, -1329, -293, 46, 278}, 1078cabdff1aSopenharmony_ci { -260, -468, -829, -1176, -533, -560, -78}, 1079cabdff1aSopenharmony_ci { -215, -484, -822, -1233, -791, 15, -138}, 1080cabdff1aSopenharmony_ci { 1301, 1317, 1262, 1048, 716, 357, -64}, 1081cabdff1aSopenharmony_ci { 578, 824, 925, 802, 630, 362, 102}, 1082cabdff1aSopenharmony_ci { 470, 925, 767, 514, 327, 190, -112}, 1083cabdff1aSopenharmony_ci { 225, 492, 495, 437, 598, 384, -45}, 1084cabdff1aSopenharmony_ci { 43, 82, -42, 175, 519, 342, -64}, 1085cabdff1aSopenharmony_ci { -304, -154, 159, 576, 403, 221, 327}, 1086cabdff1aSopenharmony_ci { 214, 244, 122, -62, 312, 92, -160}, 1087cabdff1aSopenharmony_ci { 218, 208, 310, 268, 306, 323, -199}, 1088cabdff1aSopenharmony_ci { -285, -269, -79, -124, -143, -153, 236}, 1089cabdff1aSopenharmony_ci { -205, -384, -426, 344, 59, -185, -184}, 1090cabdff1aSopenharmony_ci { -272, 247, 126, -210, -518, -468, 78}, 1091cabdff1aSopenharmony_ci { -99, -120, 502, 160, -280, -557, 304}, 1092cabdff1aSopenharmony_ci { -423, -17, -283, -443, 215, 212, -140}, 1093cabdff1aSopenharmony_ci { -564, -684, -228, 510, 361, 130, 323}, 1094cabdff1aSopenharmony_ci { -428, 335, 98, -65, 36, -215, -246}, 1095cabdff1aSopenharmony_ci { -362, 51, 364, -16, -234, 150, -165}, 1096cabdff1aSopenharmony_ci { 914, 883, 751, 653, 676, 464, -153}, 1097cabdff1aSopenharmony_ci { 631, 545, 535, 720, 596, 360, -81}, 1098cabdff1aSopenharmony_ci { 783, 712, 512, 439, 341, 251, -391}, 1099cabdff1aSopenharmony_ci { 497, 417, 249, 372, 295, 173, -193}, 1100cabdff1aSopenharmony_ci { 128, -110, -385, 93, 39, 173, -231}, 1101cabdff1aSopenharmony_ci { 216, -59, -253, 462, 389, 154, 69}, 1102cabdff1aSopenharmony_ci { 455, 270, -4, -337, -49, 233, -322}, 1103cabdff1aSopenharmony_ci { 307, 143, 53, 218, 128, 236, -156}, 1104cabdff1aSopenharmony_ci { -37, -186, -240, -411, -110, 9, 399}, 1105cabdff1aSopenharmony_ci { -140, -365, -628, 258, 380, 214, 277}, 1106cabdff1aSopenharmony_ci { 131, 454, 177, -285, -520, 108, -214}, 1107cabdff1aSopenharmony_ci { 77, -141, 201, -123, -490, -131, 60}, 1108cabdff1aSopenharmony_ci { -14, -194, -521, -741, 273, 362, -33}, 1109cabdff1aSopenharmony_ci { -362, -566, -287, -228, 161, 237, 317}, 1110cabdff1aSopenharmony_ci { -269, 195, -75, -375, -204, 11, 77}, 1111cabdff1aSopenharmony_ci { -128, -264, -156, -223, -475, 265, 27}, 1112cabdff1aSopenharmony_ci { 1238, 1147, 916, 689, 432, 210, -280}, 1113cabdff1aSopenharmony_ci { 800, 664, 879, 726, 411, 160, -164}, 1114cabdff1aSopenharmony_ci { 454, 686, 536, 275, 147, 46, 111}, 1115cabdff1aSopenharmony_ci { 303, 486, 512, 355, 241, 181, -69}, 1116cabdff1aSopenharmony_ci { 79, 92, 29, 147, 233, 52, 17}, 1117cabdff1aSopenharmony_ci { -171, 289, 131, 439, 271, 3, -10}, 1118cabdff1aSopenharmony_ci { 413, 241, 144, 174, 155, -2, 14}, 1119cabdff1aSopenharmony_ci { 58, 217, 247, 219, 149, 175, -18}, 1120cabdff1aSopenharmony_ci { 228, -8, -240, -206, -513, -191, 202}, 1121cabdff1aSopenharmony_ci { -96, -272, -454, 33, -300, -575, 46}, 1122cabdff1aSopenharmony_ci { -10, -108, -246, -347, -770, -535, 9}, 1123cabdff1aSopenharmony_ci { -326, -430, -61, -321, -704, -299, 201}, 1124cabdff1aSopenharmony_ci { -1, -280, -603, -419, -185, 18, -36}, 1125cabdff1aSopenharmony_ci { -516, -522, -379, -291, -181, -97, 27}, 1126cabdff1aSopenharmony_ci { -159, -313, -525, -224, -510, -831, -197}, 1127cabdff1aSopenharmony_ci { -292, -459, -59, -310, -562, -143, -351}, 1128cabdff1aSopenharmony_ci { 1066, 912, 631, 389, 207, 86, -224}, 1129cabdff1aSopenharmony_ci { 596, 512, 596, 505, 314, 122, -48}, 1130cabdff1aSopenharmony_ci { 787, 861, 441, -93, -303, 33, -190}, 1131cabdff1aSopenharmony_ci { 257, 469, 337, 51, 15, 298, -93}, 1132cabdff1aSopenharmony_ci { 295, 73, -119, 25, 36, 23, 108}, 1133cabdff1aSopenharmony_ci { -28, -3, -32, 114, 21, 185, 107}, 1134cabdff1aSopenharmony_ci { 482, 305, 15, -279, -319, 52, 96}, 1135cabdff1aSopenharmony_ci { 226, 46, 115, 72, -136, 133, -125}, 1136cabdff1aSopenharmony_ci { 18, -207, -559, -590, -503, -482, 321}, 1137cabdff1aSopenharmony_ci { -571, -789, -951, -172, -441, -538, 113}, 1138cabdff1aSopenharmony_ci { 181, 14, -310, -641, -1001, -202, 159}, 1139cabdff1aSopenharmony_ci { -136, -393, -433, -513, -911, -144, -22}, 1140cabdff1aSopenharmony_ci { 72, -265, -706, -954, -159, 53, 332}, 1141cabdff1aSopenharmony_ci { -338, -591, -852, -383, -395, 56, 44}, 1142cabdff1aSopenharmony_ci { 43, -158, -464, -897, -631, -157, -294}, 1143cabdff1aSopenharmony_ci { -161, -128, -328, -573, -483, -125, 11}, 1144cabdff1aSopenharmony_ci { 1017, 906, 1051, 1005, 679, 341, -102}, 1145cabdff1aSopenharmony_ci { 359, 334, 1567, 1314, 723, 105, 10}, 1146cabdff1aSopenharmony_ci { -65, 726, 529, 301, 220, 43, -273}, 1147cabdff1aSopenharmony_ci { -510, 436, 719, 566, 358, 179, 114}, 1148cabdff1aSopenharmony_ci { -560, 298, 133, -120, 342, 225, 14}, 1149cabdff1aSopenharmony_ci { -899, -101, 217, 617, 400, 146, -58}, 1150cabdff1aSopenharmony_ci { -41, 352, 82, -196, 39, 121, -167}, 1151cabdff1aSopenharmony_ci { -212, 59, 447, 284, 423, 250, -169}, 1152cabdff1aSopenharmony_ci { -371, -484, -596, 30, -41, 249, 22}, 1153cabdff1aSopenharmony_ci { -372, -650, -794, 477, 445, 216, -79}, 1154cabdff1aSopenharmony_ci { -352, 275, 17, -443, -929, 92, 19}, 1155cabdff1aSopenharmony_ci { -699, -696, 431, 264, -49, -310, 182}, 1156cabdff1aSopenharmony_ci { -978, -217, -430, -400, 101, 261, 72}, 1157cabdff1aSopenharmony_ci { -929, -889, -357, -13, 463, 378, 236}, 1158cabdff1aSopenharmony_ci { -826, 56, 30, -299, -360, -128, -51}, 1159cabdff1aSopenharmony_ci { -878, -299, -111, 75, 65, 36, 3}, 1160cabdff1aSopenharmony_ci { 817, 368, -25, 354, 697, 591, -173}, 1161cabdff1aSopenharmony_ci { 309, 212, 222, 751, 484, 140, -56}, 1162cabdff1aSopenharmony_ci { 593, 379, 70, -8, 258, 180, 110}, 1163cabdff1aSopenharmony_ci { 165, -46, 255, 297, 219, 273, 105}, 1164cabdff1aSopenharmony_ci { 160, -70, -358, -181, 379, 330, 319}, 1165cabdff1aSopenharmony_ci { -238, -369, -198, 740, 580, 319, -143}, 1166cabdff1aSopenharmony_ci { 201, 109, -202, -456, 328, 276, -141}, 1167cabdff1aSopenharmony_ci { 203, 170, 111, 42, 207, 360, 188}, 1168cabdff1aSopenharmony_ci { -345, -399, -513, -233, 650, 422, 81}, 1169cabdff1aSopenharmony_ci { -635, -961, -1220, 463, 539, 204, 209}, 1170cabdff1aSopenharmony_ci { 202, -25, -194, -498, -787, 193, -143}, 1171cabdff1aSopenharmony_ci { -449, -538, 195, -106, -331, 68, 62}, 1172cabdff1aSopenharmony_ci { -228, -477, -840, -576, 317, 128, 283}, 1173cabdff1aSopenharmony_ci { -671, -937, -807, -114, 391, 335, -62}, 1174cabdff1aSopenharmony_ci { 246, 2, -314, -679, -303, 180, -88}, 1175cabdff1aSopenharmony_ci { -107, -272, 90, -198, -28, 290, -112}, 1176cabdff1aSopenharmony_ci { 885, 1149, 1021, 712, 496, 281, -83}, 1177cabdff1aSopenharmony_ci { 269, 492, 787, 643, 347, 70, 124}, 1178cabdff1aSopenharmony_ci { 336, 636, 499, 92, -229, -179, 191}, 1179cabdff1aSopenharmony_ci { 26, 402, 564, 340, 149, -11, 135}, 1180cabdff1aSopenharmony_ci { -440, 561, 470, 204, -72, -186, 140}, 1181cabdff1aSopenharmony_ci { -720, 14, 355, 229, 68, -133, 465}, 1182cabdff1aSopenharmony_ci { 110, 310, 103, 12, 106, 29, 158}, 1183cabdff1aSopenharmony_ci { -178, 113, 161, 142, 121, 115, 27}, 1184cabdff1aSopenharmony_ci { -651, -414, -645, -152, -164, -13, -429}, 1185cabdff1aSopenharmony_ci { -639, -944, -681, -104, -81, 52, -189}, 1186cabdff1aSopenharmony_ci { -663, -164, -316, -683, -954, -205, -83}, 1187cabdff1aSopenharmony_ci { -609, -669, -172, -517, -694, 283, -80}, 1188cabdff1aSopenharmony_ci { -646, -152, -383, -678, -246, -40, -143}, 1189cabdff1aSopenharmony_ci { -747, -796, -745, -390, -98, 43, 275}, 1190cabdff1aSopenharmony_ci { -599, -199, -398, -433, -436, -538, 31}, 1191cabdff1aSopenharmony_ci { -1107, -568, -376, -265, -126, -21, 1}, 1192cabdff1aSopenharmony_ci { 847, 573, 308, 392, 305, 101, 55}, 1193cabdff1aSopenharmony_ci { 273, 293, 201, 267, 346, 201, 123}, 1194cabdff1aSopenharmony_ci { 727, 480, 226, 2, -65, -138, 164}, 1195cabdff1aSopenharmony_ci { 273, 208, 173, 292, 12, 253, 174}, 1196cabdff1aSopenharmony_ci { 340, 207, 180, 88, 116, 46, 475}, 1197cabdff1aSopenharmony_ci { -460, -166, -30, 13, 110, 173, 396}, 1198cabdff1aSopenharmony_ci { 137, 88, 43, -137, -94, 34, 284}, 1199cabdff1aSopenharmony_ci { 96, -14, 226, 40, 63, 70, 130}, 1200cabdff1aSopenharmony_ci { -467, -735, -1012, -1174, -307, 305, -67}, 1201cabdff1aSopenharmony_ci { -612, -920, -1146, -567, -8, 92, -25}, 1202cabdff1aSopenharmony_ci { -182, -271, -492, -754, -857, 287, -75}, 1203cabdff1aSopenharmony_ci { -494, -787, -689, -683, -709, 137, -326}, 1204cabdff1aSopenharmony_ci { -288, -550, -903, -1105, 334, 321, -62}, 1205cabdff1aSopenharmony_ci { -354, -653, -834, -445, 1, 377, -152}, 1206cabdff1aSopenharmony_ci { -162, -306, -608, -937, -297, 247, -192}, 1207cabdff1aSopenharmony_ci { -234, -477, -244, -488, -266, 342, -332} 1208cabdff1aSopenharmony_ci}; 1209cabdff1aSopenharmony_ci 1210cabdff1aSopenharmony_cistatic const int16_t dico21_isf[64][3] = { 1211cabdff1aSopenharmony_ci { 329, 409, 249}, { -33, 505, 160}, 1212cabdff1aSopenharmony_ci { -29, -14, 582}, { -262, 127, 354}, 1213cabdff1aSopenharmony_ci { 145, 237, 175}, { -152, 245, 122}, 1214cabdff1aSopenharmony_ci { 27, 42, 340}, { -84, -93, 311}, 1215cabdff1aSopenharmony_ci { 285, 222, -156}, { 47, -43, -504}, 1216cabdff1aSopenharmony_ci { 234, 121, 385}, { 104, -317, 45}, 1217cabdff1aSopenharmony_ci { 176, 195, 8}, { 104, -59, -94}, 1218cabdff1aSopenharmony_ci { 177, 53, 192}, { -34, -127, 152}, 1219cabdff1aSopenharmony_ci { 570, 277, -34}, { -67, -329, -639}, 1220cabdff1aSopenharmony_ci { -157, -272, 462}, { -177, -462, 198}, 1221cabdff1aSopenharmony_ci { 322, 179, 115}, { -386, 171, 19}, 1222cabdff1aSopenharmony_ci { 19, -12, 195}, { -120, -252, 201}, 1223cabdff1aSopenharmony_ci { 304, 36, -336}, { -128, -221, -380}, 1224cabdff1aSopenharmony_ci { 171, -185, 296}, { -242, -312, 23}, 1225cabdff1aSopenharmony_ci { 198, 39, 16}, { -3, -177, -111}, 1226cabdff1aSopenharmony_ci { 111, -93, 76}, { -92, -223, 4}, 1227cabdff1aSopenharmony_ci { 177, 406, -44}, { -168, 380, -149}, 1228cabdff1aSopenharmony_ci { -4, 273, 331}, { -420, 513, 277}, 1229cabdff1aSopenharmony_ci { 21, 247, 47}, { -58, 131, -2}, 1230cabdff1aSopenharmony_ci { -3, 134, 180}, { -145, 40, 175}, 1231cabdff1aSopenharmony_ci { 189, 74, -145}, { -27, -45, -325}, 1232cabdff1aSopenharmony_ci { 370, -114, -21}, { -83, -415, -173}, 1233cabdff1aSopenharmony_ci { 77, 95, -51}, { -40, -30, -67}, 1234cabdff1aSopenharmony_ci { 71, 88, 86}, { -35, -98, 14}, 1235cabdff1aSopenharmony_ci { 69, 197, -334}, { -196, 79, -231}, 1236cabdff1aSopenharmony_ci { -348, -137, 218}, { -352, -89, -85}, 1237cabdff1aSopenharmony_ci { 47, 201, -130}, { -165, 37, -15}, 1238cabdff1aSopenharmony_ci { -43, 3, 86}, { -161, -108, 79}, 1239cabdff1aSopenharmony_ci { 83, 21, -237}, { -81, -149, -238}, 1240cabdff1aSopenharmony_ci { 150, -186, -251}, { -186, -249, -162}, 1241cabdff1aSopenharmony_ci { -19, 66, -139}, { -26, -50, -181}, 1242cabdff1aSopenharmony_ci { 24, 11, 0}, { -130, -105, -98} 1243cabdff1aSopenharmony_ci}; 1244cabdff1aSopenharmony_ci 1245cabdff1aSopenharmony_cistatic const int16_t dico22_isf[128][3] = { 1246cabdff1aSopenharmony_ci { -127, 310, 42}, { -242, 197, 5}, 1247cabdff1aSopenharmony_ci { -151, 84, -17}, { -214, 127, -149}, 1248cabdff1aSopenharmony_ci { -247, -131, 159}, { -268, -267, -95}, 1249cabdff1aSopenharmony_ci { -217, 1, -79}, { -271, -80, -185}, 1250cabdff1aSopenharmony_ci { -45, 436, 159}, { 165, 199, 391}, 1251cabdff1aSopenharmony_ci { -33, 81, 187}, { -66, -42, 355}, 1252cabdff1aSopenharmony_ci { -298, -57, 343}, { -108, -537, 226}, 1253cabdff1aSopenharmony_ci { -144, -23, 193}, { 176, -402, 87}, 1254cabdff1aSopenharmony_ci { 53, 296, 25}, { -84, 253, -104}, 1255cabdff1aSopenharmony_ci { -58, 105, -126}, { -169, 174, -314}, 1256cabdff1aSopenharmony_ci { -48, 44, -294}, { -164, -417, -242}, 1257cabdff1aSopenharmony_ci { -139, 3, -194}, { -155, -207, -211}, 1258cabdff1aSopenharmony_ci { 119, 322, 213}, { 333, 50, 380}, 1259cabdff1aSopenharmony_ci { 237, 247, -2}, { 466, -16, 201}, 1260cabdff1aSopenharmony_ci { 238, -255, -107}, { 67, -440, -149}, 1261cabdff1aSopenharmony_ci { 122, -88, -139}, { 88, -247, -73}, 1262cabdff1aSopenharmony_ci { -41, 231, 167}, { -62, 155, 16}, 1263cabdff1aSopenharmony_ci { -65, 16, 77}, { -68, -2, -63}, 1264cabdff1aSopenharmony_ci { -151, -300, 160}, { -18, -333, 54}, 1265cabdff1aSopenharmony_ci { -56, -94, 5}, { 2, -190, 14}, 1266cabdff1aSopenharmony_ci { 92, 148, 209}, { 108, 9, 272}, 1267cabdff1aSopenharmony_ci { 108, 35, 110}, { 142, -85, 145}, 1268cabdff1aSopenharmony_ci { 47, -157, 279}, { 3, -320, 246}, 1269cabdff1aSopenharmony_ci { 43, -72, 68}, { 86, -217, 135}, 1270cabdff1aSopenharmony_ci { 36, 140, 79}, { 56, 175, -49}, 1271cabdff1aSopenharmony_ci { 26, 45, 3}, { 73, 55, -101}, 1272cabdff1aSopenharmony_ci { 109, -183, -242}, { -4, -283, -242}, 1273cabdff1aSopenharmony_ci { 48, -68, -48}, { -6, -153, -122}, 1274cabdff1aSopenharmony_ci { 161, 196, 96}, { 232, 80, 190}, 1275cabdff1aSopenharmony_ci { 165, 97, 11}, { 258, -31, 71}, 1276cabdff1aSopenharmony_ci { 267, -77, -91}, { 311, -209, 87}, 1277cabdff1aSopenharmony_ci { 152, -14, -22}, { 150, -149, 9}, 1278cabdff1aSopenharmony_ci { -324, 557, 187}, { -384, 307, 46}, 1279cabdff1aSopenharmony_ci { -251, 27, 77}, { -365, 77, -52}, 1280cabdff1aSopenharmony_ci { -482, -84, 160}, { -424, -515, -64}, 1281cabdff1aSopenharmony_ci { -294, -120, -4}, { -476, -116, -109}, 1282cabdff1aSopenharmony_ci { -97, 318, 365}, { 106, 627, 445}, 1283cabdff1aSopenharmony_ci { -190, 120, 287}, { -146, 65, 619}, 1284cabdff1aSopenharmony_ci { -427, 242, 363}, { -361, -371, 432}, 1285cabdff1aSopenharmony_ci { -347, 102, 168}, { -629, 195, -14}, 1286cabdff1aSopenharmony_ci { -65, 476, -47}, { -297, 320, -168}, 1287cabdff1aSopenharmony_ci { -55, 356, -264}, { -391, 82, -286}, 1288cabdff1aSopenharmony_ci { -51, -31, -556}, { -178, -399, -586}, 1289cabdff1aSopenharmony_ci { -205, -49, -360}, { -343, -238, -337}, 1290cabdff1aSopenharmony_ci { 220, 457, 58}, { 561, 467, 259}, 1291cabdff1aSopenharmony_ci { 340, 270, -168}, { 450, 77, -280}, 1292cabdff1aSopenharmony_ci { 60, 167, -413}, { 133, -252, -492}, 1293cabdff1aSopenharmony_ci { 216, 157, -290}, { 282, 0, -495}, 1294cabdff1aSopenharmony_ci { -226, 293, 183}, { -157, 135, 122}, 1295cabdff1aSopenharmony_ci { -158, -59, 39}, { -133, -118, -97}, 1296cabdff1aSopenharmony_ci { -332, -309, 113}, { -160, -425, -6}, 1297cabdff1aSopenharmony_ci { -149, -211, 24}, { -80, -277, -90}, 1298cabdff1aSopenharmony_ci { -11, 125, 338}, { 130, -71, 465}, 1299cabdff1aSopenharmony_ci { 5, -45, 184}, { 237, -95, 253}, 1300cabdff1aSopenharmony_ci { -139, -197, 297}, { -19, -300, 511}, 1301cabdff1aSopenharmony_ci { -63, -152, 139}, { 250, -289, 336}, 1302cabdff1aSopenharmony_ci { 124, 339, -150}, { 34, 176, -208}, 1303cabdff1aSopenharmony_ci { 171, 166, -116}, { 94, 38, -229}, 1304cabdff1aSopenharmony_ci { 75, -65, -339}, { -78, -205, -385}, 1305cabdff1aSopenharmony_ci { 0, -30, -163}, { -56, -110, -242}, 1306cabdff1aSopenharmony_ci { 321, 244, 194}, { 505, 238, -1}, 1307cabdff1aSopenharmony_ci { 317, 116, 65}, { 309, 88, -74}, 1308cabdff1aSopenharmony_ci { 452, -51, -50}, { 334, -217, -290}, 1309cabdff1aSopenharmony_ci { 211, 41, -152}, { 238, -55, -260} 1310cabdff1aSopenharmony_ci}; 1311cabdff1aSopenharmony_ci 1312cabdff1aSopenharmony_cistatic const int16_t dico23_isf[128][3] = { 1313cabdff1aSopenharmony_ci { -10, 151, 359}, { 136, 298, 223}, 1314cabdff1aSopenharmony_ci { 255, -104, 290}, { 423, 6, 183}, 1315cabdff1aSopenharmony_ci { -270, -269, -98}, { -52, -82, 13}, 1316cabdff1aSopenharmony_ci { -82, -274, -97}, { 90, -246, -72}, 1317cabdff1aSopenharmony_ci { -299, -70, 421}, { -88, 365, 430}, 1318cabdff1aSopenharmony_ci { 187, -318, 381}, { 380, 37, 488}, 1319cabdff1aSopenharmony_ci { -373, -316, 79}, { -308, -101, 5}, 1320cabdff1aSopenharmony_ci { -135, -451, 8}, { 72, -421, -154}, 1321cabdff1aSopenharmony_ci { 180, 170, -121}, { 62, 177, -40}, 1322cabdff1aSopenharmony_ci { 326, 80, -105}, { 248, 263, -5}, 1323cabdff1aSopenharmony_ci { -168, -181, -221}, { -2, -23, -158}, 1324cabdff1aSopenharmony_ci { -14, -149, -121}, { 119, -91, -147}, 1325cabdff1aSopenharmony_ci { 119, 332, -153}, { 49, 303, 34}, 1326cabdff1aSopenharmony_ci { 442, -55, -69}, { 217, 454, 58}, 1327cabdff1aSopenharmony_ci { -359, -187, -375}, { -42, 50, -274}, 1328cabdff1aSopenharmony_ci { -8, -267, -249}, { 85, -86, -346}, 1329cabdff1aSopenharmony_ci { -77, -40, 345}, { 89, 134, 219}, 1330cabdff1aSopenharmony_ci { 156, -80, 160}, { 108, 40, 116}, 1331cabdff1aSopenharmony_ci { -158, -206, 29}, { 5, -32, 175}, 1332cabdff1aSopenharmony_ci { -65, -158, 146}, { 55, -78, 73}, 1333cabdff1aSopenharmony_ci { -114, -222, 353}, { -47, 81, 211}, 1334cabdff1aSopenharmony_ci { 49, -151, 268}, { 105, 4, 302}, 1335cabdff1aSopenharmony_ci { -263, -132, 183}, { -151, -28, 201}, 1336cabdff1aSopenharmony_ci { -177, -307, 166}, { 101, -221, 130}, 1337cabdff1aSopenharmony_ci { 74, 58, -98}, { 32, 44, 13}, 1338cabdff1aSopenharmony_ci { 194, 30, -142}, { 170, 96, 8}, 1339cabdff1aSopenharmony_ci { -136, -119, -91}, { -65, 8, -55}, 1340cabdff1aSopenharmony_ci { 3, -188, 12}, { 45, -63, -49}, 1341cabdff1aSopenharmony_ci { 149, -21, -19}, { 24, 144, 95}, 1342cabdff1aSopenharmony_ci { 254, -22, 60}, { 161, 196, 96}, 1343cabdff1aSopenharmony_ci { -158, -61, 48}, { -70, 33, 82}, 1344cabdff1aSopenharmony_ci { -23, -321, 58}, { 155, -147, 5}, 1345cabdff1aSopenharmony_ci { -364, 328, 77}, { -21, 453, 173}, 1346cabdff1aSopenharmony_ci { -108, 82, 630}, { 367, 263, 208}, 1347cabdff1aSopenharmony_ci { -300, -62, -176}, { -205, 143, -158}, 1348cabdff1aSopenharmony_ci { -169, -410, -264}, { 257, -269, -100}, 1349cabdff1aSopenharmony_ci { -636, 289, -2}, { -292, 627, 173}, 1350cabdff1aSopenharmony_ci { -382, -363, 387}, { 248, 524, 447}, 1351cabdff1aSopenharmony_ci { -521, -111, -107}, { -395, 118, -274}, 1352cabdff1aSopenharmony_ci { -343, -680, -125}, { -172, -447, -663}, 1353cabdff1aSopenharmony_ci { 75, 148, -367}, { -79, 263, -94}, 1354cabdff1aSopenharmony_ci { 249, 148, -286}, { 380, 271, -162}, 1355cabdff1aSopenharmony_ci { -142, -4, -186}, { -57, 111, -125}, 1356cabdff1aSopenharmony_ci { -35, -108, -254}, { 100, 29, -242}, 1357cabdff1aSopenharmony_ci { -80, 303, -264}, { -78, 464, -57}, 1358cabdff1aSopenharmony_ci { 248, -22, -494}, { 661, 662, 44}, 1359cabdff1aSopenharmony_ci { -193, -40, -330}, { -178, 145, -337}, 1360cabdff1aSopenharmony_ci { -90, -199, -400}, { -40, -23, -498}, 1361cabdff1aSopenharmony_ci { -192, 114, 315}, { -41, 244, 190}, 1362cabdff1aSopenharmony_ci { 88, -97, 485}, { 241, 80, 212}, 1363cabdff1aSopenharmony_ci { -246, 40, 87}, { -156, 147, 134}, 1364cabdff1aSopenharmony_ci { -2, -334, 239}, { 308, -203, 110}, 1365cabdff1aSopenharmony_ci { -459, 251, 422}, { -218, 310, 228}, 1366cabdff1aSopenharmony_ci { -86, -346, 654}, { 184, 175, 425}, 1367cabdff1aSopenharmony_ci { -481, -63, 169}, { -349, 117, 188}, 1368cabdff1aSopenharmony_ci { -125, -560, 310}, { 158, -416, 94}, 1369cabdff1aSopenharmony_ci { 46, 171, -192}, { -63, 157, 14}, 1370cabdff1aSopenharmony_ci { 256, -35, -271}, { 322, 123, 53}, 1371cabdff1aSopenharmony_ci { -214, 4, -76}, { -156, 86, -18}, 1372cabdff1aSopenharmony_ci { 128, -197, -232}, { 265, -90, -98}, 1373cabdff1aSopenharmony_ci { -308, 332, -145}, { -131, 308, 58}, 1374cabdff1aSopenharmony_ci { 509, 59, -339}, { 562, 196, -14}, 1375cabdff1aSopenharmony_ci { -378, 100, -47}, { -234, 202, 1}, 1376cabdff1aSopenharmony_ci { 104, -270, -493}, { 319, -210, -325} 1377cabdff1aSopenharmony_ci}; 1378cabdff1aSopenharmony_ci 1379cabdff1aSopenharmony_cistatic const int16_t dico24_isf[32][3] = { 1380cabdff1aSopenharmony_ci { -79, -89, -4}, { -171, 77, -211}, 1381cabdff1aSopenharmony_ci { 160, -193, 98}, { 120, -103, 323}, 1382cabdff1aSopenharmony_ci { 32, -22, -129}, { 72, 78, -268}, 1383cabdff1aSopenharmony_ci { 182, -76, -66}, { 309, 99, -145}, 1384cabdff1aSopenharmony_ci { -229, -157, -84}, { -383, 98, -71}, 1385cabdff1aSopenharmony_ci { -90, -352, 12}, { -284, -178, 178}, 1386cabdff1aSopenharmony_ci { -65, -125, -166}, { -87, -175, -351}, 1387cabdff1aSopenharmony_ci { 42, -198, -48}, { 154, -140, -243}, 1388cabdff1aSopenharmony_ci { -77, 18, 108}, { -39, 355, 91}, 1389cabdff1aSopenharmony_ci { 87, 8, 155}, { -4, 158, 239}, 1390cabdff1aSopenharmony_ci { 128, 95, -54}, { 7, 246, -124}, 1391cabdff1aSopenharmony_ci { 258, 15, 89}, { 206, 216, 98}, 1392cabdff1aSopenharmony_ci { -201, 9, 18}, { -312, 233, 204}, 1393cabdff1aSopenharmony_ci { -39, -174, 155}, { -144, -9, 284}, 1394cabdff1aSopenharmony_ci { -57, 70, -69}, { -157, 187, 18}, 1395cabdff1aSopenharmony_ci { 54, -30, 23}, { 24, 135, 55} 1396cabdff1aSopenharmony_ci}; 1397cabdff1aSopenharmony_ci 1398cabdff1aSopenharmony_cistatic const int16_t dico25_isf[32][4] = { 1399cabdff1aSopenharmony_ci { 169, 142, -119, 115}, { 206, -20, 94, 226}, 1400cabdff1aSopenharmony_ci { -106, 313, -21, 16}, { -62, 161, 71, 255}, 1401cabdff1aSopenharmony_ci { -89, 101, -185, 125}, { 72, -30, -201, 344}, 1402cabdff1aSopenharmony_ci { -258, 33, -8, 81}, { -104, -154, 72, 296}, 1403cabdff1aSopenharmony_ci { 144, -68, -268, -25}, { 81, -78, -87, 106}, 1404cabdff1aSopenharmony_ci { 22, 155, -186, -119}, { -46, -28, 27, 91}, 1405cabdff1aSopenharmony_ci { -114, -37, -175, -33}, { -94, -222, -189, 122}, 1406cabdff1aSopenharmony_ci { -132, -119, -191, -270}, { -172, -173, 18, -43}, 1407cabdff1aSopenharmony_ci { 279, 135, -42, -128}, { 187, -86, 229, -138}, 1408cabdff1aSopenharmony_ci { 159, 240, 140, 46}, { 69, 25, 227, 77}, 1409cabdff1aSopenharmony_ci { 21, 115, 13, 8}, { 68, -248, 126, 81}, 1410cabdff1aSopenharmony_ci { -150, 137, 207, -9}, { -154, -133, 289, 67}, 1411cabdff1aSopenharmony_ci { 143, -37, -86, -326}, { 180, -32, 19, -23}, 1412cabdff1aSopenharmony_ci { 26, 168, 116, -233}, { -32, -26, 118, -78}, 1413cabdff1aSopenharmony_ci { 3, -8, -45, -115}, { 57, -215, -54, -83}, 1414cabdff1aSopenharmony_ci { -209, 112, -22, -167}, { -91, -151, 168, -262} 1415cabdff1aSopenharmony_ci}; 1416cabdff1aSopenharmony_ci 1417cabdff1aSopenharmony_cistatic const int16_t dico21_isf_36b[128][5] = { 1418cabdff1aSopenharmony_ci { -52, -96, 212, 315, -73}, { 82, -204, 363, 136, -197}, 1419cabdff1aSopenharmony_ci { -126, -331, 183, 218, 143}, { -49, -41, 557, 230, 72}, 1420cabdff1aSopenharmony_ci { 2, -73, 163, 377, 221}, { 133, 111, 278, 215, -110}, 1421cabdff1aSopenharmony_ci { -102, -20, 284, 113, 273}, { 84, 319, 290, 18, 85}, 1422cabdff1aSopenharmony_ci { -25, -5, 125, 132, -204}, { -38, -5, 286, -9, -356}, 1423cabdff1aSopenharmony_ci { -140, -256, 92, 117, -189}, { -144, 191, 313, 51, -98}, 1424cabdff1aSopenharmony_ci { 167, -10, 44, 247, 36}, { 381, 197, 238, 74, 6}, 1425cabdff1aSopenharmony_ci { 38, -408, 29, -3, -85}, { 92, 266, 157, -25, -200}, 1426cabdff1aSopenharmony_ci { 161, -121, 70, 84, -140}, { -16, -86, 112, -94, -189}, 1427cabdff1aSopenharmony_ci { -269, -270, 351, 107, -24}, { -68, -67, 492, -103, -155}, 1428cabdff1aSopenharmony_ci { -53, -131, 62, 122, 10}, { 135, 84, 283, -55, -120}, 1429cabdff1aSopenharmony_ci { -12, -219, 331, -81, 167}, { 220, -136, 147, -172, -42}, 1430cabdff1aSopenharmony_ci { 140, -95, -109, -88, -194}, { 0, -2, -4, -33, -381}, 1431cabdff1aSopenharmony_ci { -66, -217, 152, -186, -402}, { 244, 108, 156, -140, -395}, 1432cabdff1aSopenharmony_ci { 113, -136, -196, 110, -24}, { 214, 118, 11, -64, -131}, 1433cabdff1aSopenharmony_ci { -110, -286, -6, -332, 16}, { 94, 97, 79, -291, -205}, 1434cabdff1aSopenharmony_ci { -5, -39, -20, 252, -96}, { 76, 174, 101, 163, 61}, 1435cabdff1aSopenharmony_ci { -69, -239, -55, 399, 6}, { -115, 319, 164, 275, 196}, 1436cabdff1aSopenharmony_ci { -15, 36, -47, 331, 121}, { 226, 209, 271, 325, 184}, 1437cabdff1aSopenharmony_ci { 13, -80, -218, 471, 353}, { 288, 378, 16, -51, 251}, 1438cabdff1aSopenharmony_ci { 174, 116, 52, 149, -279}, { 235, 276, 39, 120, -48}, 1439cabdff1aSopenharmony_ci { 0, -108, -108, 241, -339}, { -93, 534, 45, 33, -87}, 1440cabdff1aSopenharmony_ci { 194, 149, -71, 405, -44}, { 409, 370, 81, -186, -154}, 1441cabdff1aSopenharmony_ci { 25, -102, -448, 124, -173}, { 22, 408, -110, -310, -214}, 1442cabdff1aSopenharmony_ci { -26, 23, -83, 114, 14}, { -110, 164, 52, 223, -82}, 1443cabdff1aSopenharmony_ci { 37, -25, -263, 306, -15}, { -466, 415, 292, 165, -18}, 1444cabdff1aSopenharmony_ci { 29, -19, -171, 155, 182}, { 179, 144, -27, 231, 258}, 1445cabdff1aSopenharmony_ci { -103, -247, -396, 238, 113}, { 375, -154, -109, -4, 156}, 1446cabdff1aSopenharmony_ci { 98, 85, -292, -5, -124}, { 116, 139, -116, -98, -294}, 1447cabdff1aSopenharmony_ci { -14, -83, -278, -117, -378}, { 106, 33, -106, -344, -484}, 1448cabdff1aSopenharmony_ci { 119, 17, -412, 138, 166}, { 384, 101, -204, 88, -156}, 1449cabdff1aSopenharmony_ci { -121, -284, -300, -1, -166}, { 280, 33, -152, -313, -81}, 1450cabdff1aSopenharmony_ci { -37, 22, 229, 153, 37}, { -60, -83, 236, -8, -41}, 1451cabdff1aSopenharmony_ci { -169, -228, 126, -20, 363}, { -235, 17, 364, -156, 156}, 1452cabdff1aSopenharmony_ci { -25, -30, 72, 144, 156}, { 153, -26, 256, 97, 144}, 1453cabdff1aSopenharmony_ci { -21, -37, 48, -65, 250}, { 63, 77, 273, -128, 124}, 1454cabdff1aSopenharmony_ci { -129, -26, 40, 9, -115}, { -6, 82, 38, -90, -182}, 1455cabdff1aSopenharmony_ci { -336, -13, 28, 158, 91}, { -30, 241, 137, -170, -17}, 1456cabdff1aSopenharmony_ci { 146, 14, -11, 33, 61}, { 192, 197, 54, -84, 85}, 1457cabdff1aSopenharmony_ci { 23, -200, -78, -29, 140}, { 122, 237, 106, -341, 136}, 1458cabdff1aSopenharmony_ci { -57, -142, -85, -16, -74}, { -59, -90, -8, -187, -20}, 1459cabdff1aSopenharmony_ci { -211, -267, 216, -179, -110}, { -50, -7, 220, -267, -70}, 1460cabdff1aSopenharmony_ci { -57, -42, -17, -15, 71}, { 32, 21, 63, -137, 33}, 1461cabdff1aSopenharmony_ci { -137, -175, 104, -68, 97}, { -67, -43, 133, -301, 221}, 1462cabdff1aSopenharmony_ci { -116, -200, -81, -92, -272}, { -64, -41, -54, -244, -220}, 1463cabdff1aSopenharmony_ci { -287, -242, -50, -87, -89}, { -245, 236, 102, -166, -295}, 1464cabdff1aSopenharmony_ci { 66, 24, -162, -71, 95}, { 66, 136, -90, -220, -36}, 1465cabdff1aSopenharmony_ci { -98, -161, -222, -188, 29}, { -18, 18, -19, -415, 9}, 1466cabdff1aSopenharmony_ci { 49, 61, 100, 39, -56}, { -111, 82, 135, -31, 52}, 1467cabdff1aSopenharmony_ci { -90, -153, -93, 189, 182}, { -214, 295, 119, -74, 284}, 1468cabdff1aSopenharmony_ci { 2, 137, 37, 47, 182}, { 92, 117, 184, -53, 373}, 1469cabdff1aSopenharmony_ci { -21, -14, -35, 136, 391}, { 146, 129, -164, -28, 333}, 1470cabdff1aSopenharmony_ci { 92, 80, -84, 100, -134}, { -8, 217, -32, 3, -47}, 1471cabdff1aSopenharmony_ci { -151, 251, -215, 142, 92}, { -224, 310, -172, -275, 98}, 1472cabdff1aSopenharmony_ci { 159, 155, -177, 112, 53}, { 205, 27, 8, -240, 192}, 1473cabdff1aSopenharmony_ci { 169, 120, -319, -201, 106}, { 11, 36, -86, -237, 455}, 1474cabdff1aSopenharmony_ci { -109, -154, -163, 174, -55}, { -38, 32, -101, -78, -59}, 1475cabdff1aSopenharmony_ci { -205, -321, -97, 69, 79}, { -310, 44, 18, -185, 34}, 1476cabdff1aSopenharmony_ci { -115, -20, -148, -39, 203}, { -29, 154, -30, -158, 166}, 1477cabdff1aSopenharmony_ci { -45, -131, -317, -24, 363}, { -165, -205, -112, -222, 265}, 1478cabdff1aSopenharmony_ci { -32, -44, -150, 54, -193}, { -6, -38, -255, -169, -115}, 1479cabdff1aSopenharmony_ci { -266, 87, -189, -36, -169}, { -60, -87, -266, -436, -170}, 1480cabdff1aSopenharmony_ci { -68, -81, -278, 24, 38}, { -23, -19, -155, -256, 141}, 1481cabdff1aSopenharmony_ci { -61, -226, -565, -175, 71}, { 9, -29, -237, -515, 263} 1482cabdff1aSopenharmony_ci}; 1483cabdff1aSopenharmony_ci 1484cabdff1aSopenharmony_cistatic const int16_t dico22_isf_36b[128][4] = { 1485cabdff1aSopenharmony_ci { -298, -6, 95, 31}, { -213, -87, -122, 261}, 1486cabdff1aSopenharmony_ci { 4, -49, 208, 14}, { -129, -110, 30, 118}, 1487cabdff1aSopenharmony_ci { -214, 258, 110, -235}, { -41, -18, -126, 120}, 1488cabdff1aSopenharmony_ci { 103, 65, 127, -37}, { 126, -36, -24, 25}, 1489cabdff1aSopenharmony_ci { -138, -67, -278, -186}, { -164, -194, -201, 78}, 1490cabdff1aSopenharmony_ci { -211, -87, -51, -221}, { -174, -79, -94, -39}, 1491cabdff1aSopenharmony_ci { 23, -6, -157, -240}, { 22, -110, -153, -68}, 1492cabdff1aSopenharmony_ci { 148, -5, -2, -149}, { -1, -135, -39, -179}, 1493cabdff1aSopenharmony_ci { 68, 360, -117, -15}, { 137, 47, -278, 146}, 1494cabdff1aSopenharmony_ci { 136, 260, 135, 65}, { 61, 116, -45, 97}, 1495cabdff1aSopenharmony_ci { 231, 379, 87, -120}, { 338, 177, -272, 3}, 1496cabdff1aSopenharmony_ci { 266, 156, 28, -69}, { 260, 84, -85, 86}, 1497cabdff1aSopenharmony_ci { -266, 154, -256, -182}, { -17, -65, -304, -6}, 1498cabdff1aSopenharmony_ci { -40, 175, -151, -180}, { -27, 27, -87, -63}, 1499cabdff1aSopenharmony_ci { 121, 114, -166, -469}, { 159, -66, -323, -231}, 1500cabdff1aSopenharmony_ci { 214, 152, -141, -212}, { 137, 36, -184, -51}, 1501cabdff1aSopenharmony_ci { -282, -237, 40, 10}, { -48, -235, -37, 251}, 1502cabdff1aSopenharmony_ci { -54, -323, 136, 29}, { -88, -174, 213, 198}, 1503cabdff1aSopenharmony_ci { -390, 99, -63, -375}, { 107, -169, -164, 424}, 1504cabdff1aSopenharmony_ci { 69, -111, 141, -167}, { 74, -129, 65, 144}, 1505cabdff1aSopenharmony_ci { -353, -207, -205, -109}, { -160, -386, -355, 98}, 1506cabdff1aSopenharmony_ci { -176, -493, -20, -143}, { -252, -432, -2, 216}, 1507cabdff1aSopenharmony_ci { -90, -174, -168, -411}, { 13, -284, -229, -160}, 1508cabdff1aSopenharmony_ci { -87, -279, 34, -251}, { -75, -263, -58, -42}, 1509cabdff1aSopenharmony_ci { 420, 53, -211, -358}, { 384, -35, -374, 396}, 1510cabdff1aSopenharmony_ci { 68, -228, 323, -2}, { 167, -307, 192, 194}, 1511cabdff1aSopenharmony_ci { 459, 329, -5, -332}, { 375, 79, -7, 313}, 1512cabdff1aSopenharmony_ci { 282, -124, 200, -92}, { 271, -162, -70, 180}, 1513cabdff1aSopenharmony_ci { -157, -298, -514, -309}, { 58, -163, -546, 18}, 1514cabdff1aSopenharmony_ci { 124, -364, 167, -238}, { 83, -411, -117, 96}, 1515cabdff1aSopenharmony_ci { 140, -112, -388, -624}, { 259, -133, -317, 41}, 1516cabdff1aSopenharmony_ci { 163, -130, -64, -334}, { 226, -165, -124, -110}, 1517cabdff1aSopenharmony_ci { -466, -61, 6, 229}, { -153, 205, -145, 242}, 1518cabdff1aSopenharmony_ci { -159, 48, 195, 148}, { -58, 28, 31, 279}, 1519cabdff1aSopenharmony_ci { -303, 185, 279, -4}, { -61, 197, 59, 86}, 1520cabdff1aSopenharmony_ci { -114, 123, 168, -52}, { 35, 36, 100, 126}, 1521cabdff1aSopenharmony_ci { -407, 102, -77, -40}, { -338, -1, -342, 156}, 1522cabdff1aSopenharmony_ci { -179, 105, -34, -97}, { -185, 84, -35, 108}, 1523cabdff1aSopenharmony_ci { -133, 107, -91, -357}, { -180, 54, -229, 24}, 1524cabdff1aSopenharmony_ci { -44, 47, 47, -182}, { -66, 13, 45, 4}, 1525cabdff1aSopenharmony_ci { -339, 251, 64, 226}, { -42, 101, -350, 275}, 1526cabdff1aSopenharmony_ci { -99, 398, 142, 121}, { 111, 12, -102, 260}, 1527cabdff1aSopenharmony_ci { 0, 505, 260, -94}, { 161, 285, -96, 224}, 1528cabdff1aSopenharmony_ci { -4, 206, 314, 33}, { 167, 139, 88, 204}, 1529cabdff1aSopenharmony_ci { -235, 316, -60, -25}, { -8, -150, -312, 201}, 1530cabdff1aSopenharmony_ci { -36, 292, 61, -104}, { -40, 174, -162, 42}, 1531cabdff1aSopenharmony_ci { -21, 402, -29, -351}, { 21, 152, -360, -93}, 1532cabdff1aSopenharmony_ci { 57, 191, 212, -196}, { 76, 158, -21, -69}, 1533cabdff1aSopenharmony_ci { -328, -185, 331, 119}, { -53, 285, 56, 337}, 1534cabdff1aSopenharmony_ci { -107, -24, 405, 29}, { -18, 137, 272, 277}, 1535cabdff1aSopenharmony_ci { -255, 22, 173, -191}, { 295, 322, 325, 302}, 1536cabdff1aSopenharmony_ci { 21, -27, 332, -178}, { 119, 13, 271, 129}, 1537cabdff1aSopenharmony_ci { -455, -180, 116, -191}, { -227, 62, -148, 524}, 1538cabdff1aSopenharmony_ci { -176, -287, 282, -157}, { -243, 13, 199, 430}, 1539cabdff1aSopenharmony_ci { -59, -49, 115, -365}, { 72, -172, -137, 93}, 1540cabdff1aSopenharmony_ci { -138, -126, 141, -84}, { 5, -124, 38, -20}, 1541cabdff1aSopenharmony_ci { -258, 311, 601, 213}, { 94, 130, -61, 502}, 1542cabdff1aSopenharmony_ci { -1, -157, 485, 313}, { 146, -74, 158, 345}, 1543cabdff1aSopenharmony_ci { 276, 135, 280, -57}, { 490, 252, 99, 43}, 1544cabdff1aSopenharmony_ci { 267, -74, 429, 105}, { 278, -23, 119, 94}, 1545cabdff1aSopenharmony_ci { -542, 488, 257, -115}, { -84, -244, -438, 478}, 1546cabdff1aSopenharmony_ci { -113, -545, 387, 101}, { -95, -306, 111, 498}, 1547cabdff1aSopenharmony_ci { 95, 166, 22, -301}, { 420, -15, -58, -78}, 1548cabdff1aSopenharmony_ci { 270, 29, 122, -282}, { 160, -240, 50, -38} 1549cabdff1aSopenharmony_ci}; 1550cabdff1aSopenharmony_ci 1551cabdff1aSopenharmony_cistatic const int16_t dico23_isf_36b[64][7] = { 1552cabdff1aSopenharmony_ci { 81, -18, 68, -27, -122, -280, -4}, 1553cabdff1aSopenharmony_ci { 45, -177, 209, -30, -136, -74, 131}, 1554cabdff1aSopenharmony_ci { -44, 101, -75, -88, -48, -137, -54}, 1555cabdff1aSopenharmony_ci { -245, -28, 63, -18, -112, -103, 58}, 1556cabdff1aSopenharmony_ci { -79, -6, 220, -65, 114, -35, -50}, 1557cabdff1aSopenharmony_ci { 109, -65, 143, -114, 129, 76, 125}, 1558cabdff1aSopenharmony_ci { 166, 90, -61, -242, 186, -74, -43}, 1559cabdff1aSopenharmony_ci { -46, -92, 49, -227, 24, -155, 39}, 1560cabdff1aSopenharmony_ci { 67, 85, 99, -42, 53, -184, -281}, 1561cabdff1aSopenharmony_ci { 142, -122, 0, 21, -142, -15, -17}, 1562cabdff1aSopenharmony_ci { 223, 92, -21, -48, -82, -14, -167}, 1563cabdff1aSopenharmony_ci { 51, -37, -243, -30, -90, 18, -56}, 1564cabdff1aSopenharmony_ci { 54, 105, 74, 86, 69, 13, -101}, 1565cabdff1aSopenharmony_ci { 196, 72, -89, 43, 65, 19, 39}, 1566cabdff1aSopenharmony_ci { 121, 34, 131, -82, 25, 213, -156}, 1567cabdff1aSopenharmony_ci { 101, -102, -136, -21, 57, 214, 22}, 1568cabdff1aSopenharmony_ci { 36, -124, 205, 204, 58, -156, -83}, 1569cabdff1aSopenharmony_ci { 83, -117, 137, 137, 85, 116, 44}, 1570cabdff1aSopenharmony_ci { -92, -148, -68, 11, -102, -197, -220}, 1571cabdff1aSopenharmony_ci { -76, -185, -58, 132, -26, -183, 85}, 1572cabdff1aSopenharmony_ci { -7, -31, -2, 23, 205, -151, 10}, 1573cabdff1aSopenharmony_ci { -27, -37, -5, -18, 292, 131, 1}, 1574cabdff1aSopenharmony_ci { 117, -168, 9, -93, 80, -59, -125}, 1575cabdff1aSopenharmony_ci { -182, -244, 98, -24, 135, -22, 94}, 1576cabdff1aSopenharmony_ci { 221, 97, 106, 42, 43, -160, 83}, 1577cabdff1aSopenharmony_ci { 25, -64, -21, 6, 14, -15, 154}, 1578cabdff1aSopenharmony_ci { 126, 15, -140, 150, -10, -207, -114}, 1579cabdff1aSopenharmony_ci { 79, -63, -211, -70, -28, -217, 165}, 1580cabdff1aSopenharmony_ci { 46, 38, -22, 281, 132, -62, 109}, 1581cabdff1aSopenharmony_ci { 112, 54, -112, -93, 208, 27, 296}, 1582cabdff1aSopenharmony_ci { 115, 10, -147, 41, 216, 42, -276}, 1583cabdff1aSopenharmony_ci { 50, -115, -254, 167, 117, -2, 61}, 1584cabdff1aSopenharmony_ci { 17, 144, 34, -72, -186, -150, 272}, 1585cabdff1aSopenharmony_ci { -29, -66, -89, -95, -149, 129, 251}, 1586cabdff1aSopenharmony_ci { 122, 0, -50, -234, -91, 36, 26}, 1587cabdff1aSopenharmony_ci { -105, -102, -88, -121, -236, -7, -11}, 1588cabdff1aSopenharmony_ci { -204, 109, 5, -191, 105, -15, 163}, 1589cabdff1aSopenharmony_ci { -80, 32, -24, -209, 41, 294, 70}, 1590cabdff1aSopenharmony_ci { -106, -94, -204, -118, 120, -50, -37}, 1591cabdff1aSopenharmony_ci { -82, -241, 46, -131, -29, 150, -55}, 1592cabdff1aSopenharmony_ci { 33, 155, 120, -89, -8, 7, 62}, 1593cabdff1aSopenharmony_ci { 213, 82, 61, 18, -161, 144, 152}, 1594cabdff1aSopenharmony_ci { 30, 131, 65, -87, -255, -17, -107}, 1595cabdff1aSopenharmony_ci { -8, 85, -64, 51, -162, 223, -53}, 1596cabdff1aSopenharmony_ci { -134, 261, 69, -56, 218, 72, -111}, 1597cabdff1aSopenharmony_ci { 2, 155, -113, -87, 49, 85, -28}, 1598cabdff1aSopenharmony_ci { -163, 42, -1, -196, 7, 39, -245}, 1599cabdff1aSopenharmony_ci { 14, -137, -79, 11, -160, 202, -293}, 1600cabdff1aSopenharmony_ci { -94, 33, 208, 100, 56, -44, 326}, 1601cabdff1aSopenharmony_ci { -78, -41, 232, 13, -142, 227, 80}, 1602cabdff1aSopenharmony_ci { -16, -87, 201, 33, -133, 15, -183}, 1603cabdff1aSopenharmony_ci { -58, -192, -47, 184, -128, 133, 99}, 1604cabdff1aSopenharmony_ci { -205, 11, -155, 78, 52, 72, 141}, 1605cabdff1aSopenharmony_ci { -246, 26, 99, 151, 59, 115, -64}, 1606cabdff1aSopenharmony_ci { -79, -47, -16, -14, 6, 47, -43}, 1607cabdff1aSopenharmony_ci { -72, -178, -27, 162, 112, 43, -174}, 1608cabdff1aSopenharmony_ci { -175, 238, 186, 71, -54, -188, -76}, 1609cabdff1aSopenharmony_ci { -225, 233, 39, -39, -158, 122, 44}, 1610cabdff1aSopenharmony_ci { -26, 43, 84, 130, -93, -51, 22}, 1611cabdff1aSopenharmony_ci { 3, 92, -150, 136, -182, -57, 97}, 1612cabdff1aSopenharmony_ci { -131, 179, -78, 80, 91, -165, 90}, 1613cabdff1aSopenharmony_ci { -2, 148, 15, 130, 65, 175, 117}, 1614cabdff1aSopenharmony_ci { -138, 114, -137, 132, 3, -10, -186}, 1615cabdff1aSopenharmony_ci { 140, -4, -37, 254, -62, 92, -109} 1616cabdff1aSopenharmony_ci}; 1617cabdff1aSopenharmony_ci 1618cabdff1aSopenharmony_ci/** Means of ISF vectors in Q15 */ 1619cabdff1aSopenharmony_cistatic const int16_t isf_mean[LP_ORDER] = { 1620cabdff1aSopenharmony_ci 738, 1326, 2336, 3578, 4596, 5662, 6711, 7730, 1621cabdff1aSopenharmony_ci 8750, 9753, 10705, 11728, 12833, 13971, 15043, 4037 1622cabdff1aSopenharmony_ci}; 1623cabdff1aSopenharmony_ci 1624cabdff1aSopenharmony_ci/** Initialization tables for the processed ISF vector in Q15 */ 1625cabdff1aSopenharmony_cistatic const int16_t isf_init[LP_ORDER] = { 1626cabdff1aSopenharmony_ci 1024, 2048, 3072, 4096, 5120, 6144, 7168, 8192, 1627cabdff1aSopenharmony_ci 9216, 10240, 11264, 12288, 13312, 14336, 15360, 3840 1628cabdff1aSopenharmony_ci}; 1629cabdff1aSopenharmony_ci 1630cabdff1aSopenharmony_ci/** ISF/ISP interpolation coefficients for each subframe */ 1631cabdff1aSopenharmony_cistatic const float isfp_inter[4] = { 0.45, 0.8, 0.96, 1.0 }; 1632cabdff1aSopenharmony_ci 1633cabdff1aSopenharmony_ci/** Coefficients for FIR interpolation of excitation vector 1634cabdff1aSopenharmony_ci * at pitch lag resulting the adaptive codebook vector */ 1635cabdff1aSopenharmony_cistatic const float ac_inter[65] = { 1636cabdff1aSopenharmony_ci 9.400024e-01, 1637cabdff1aSopenharmony_ci 8.563843e-01, 6.322632e-01, 3.375854e-01, 5.908203e-02, 1638cabdff1aSopenharmony_ci -1.310425e-01, -1.994019e-01, -1.585693e-01, -5.633545e-02, 1639cabdff1aSopenharmony_ci 4.760742e-02, 1.067505e-01, 1.036987e-01, 5.206299e-02, 1640cabdff1aSopenharmony_ci -1.519775e-02, -6.372070e-02, -7.366943e-02, -4.650879e-02, 1641cabdff1aSopenharmony_ci -9.765625e-04, 3.820801e-02, 5.316162e-02, 4.003906e-02, 1642cabdff1aSopenharmony_ci 9.338379e-03, -2.166748e-02, -3.778076e-02, -3.320312e-02, 1643cabdff1aSopenharmony_ci -1.300049e-02, 1.068115e-02, 2.587891e-02, 2.630615e-02, 1644cabdff1aSopenharmony_ci 1.379395e-02, -3.662109e-03, -1.678467e-02, -1.983643e-02, 1645cabdff1aSopenharmony_ci -1.275635e-02, -5.493164e-04, 1.007080e-02, 1.409912e-02, 1646cabdff1aSopenharmony_ci 1.068115e-02, 2.624512e-03, -5.371094e-03, -9.338379e-03, 1647cabdff1aSopenharmony_ci -8.117676e-03, -3.173828e-03, 2.319336e-03, 5.615234e-03, 1648cabdff1aSopenharmony_ci 5.554199e-03, 2.868652e-03, -6.103516e-04, -2.990723e-03, 1649cabdff1aSopenharmony_ci -3.356934e-03, -2.014160e-03, -1.220703e-04, 1.342773e-03, 1650cabdff1aSopenharmony_ci 1.708984e-03, 1.159668e-03, 2.441406e-04, -4.272461e-04, 1651cabdff1aSopenharmony_ci -6.103516e-04, -4.272461e-04, -1.220703e-04, 6.103516e-05, 1652cabdff1aSopenharmony_ci 1.220703e-04, 6.103516e-05, 0.000000e+00, 0.000000e+00 1653cabdff1aSopenharmony_ci}; 1654cabdff1aSopenharmony_ci 1655cabdff1aSopenharmony_ci/** [i][j] is the number of pulses present in track j at mode i */ 1656cabdff1aSopenharmony_cistatic const uint8_t pulses_nb_per_mode_tr[][4] = { 1657cabdff1aSopenharmony_ci {1, 1, 0, 0}, {1, 1, 1, 1}, {2, 2, 2, 2}, 1658cabdff1aSopenharmony_ci {3, 3, 2, 2}, {3, 3, 3, 3}, {4, 4, 4, 4}, 1659cabdff1aSopenharmony_ci {5, 5, 4, 4}, {6, 6, 6, 6}, {6, 6, 6, 6} 1660cabdff1aSopenharmony_ci}; 1661cabdff1aSopenharmony_ci 1662cabdff1aSopenharmony_ci/** Tables for decoding quantized gains { pitch (Q14), fixed factor (Q11) } */ 1663cabdff1aSopenharmony_cistatic const int16_t qua_gain_6b[64][2] = { 1664cabdff1aSopenharmony_ci { 1566, 1332}, { 1577, 3557}, 1665cabdff1aSopenharmony_ci { 3071, 6490}, { 4193, 10163}, 1666cabdff1aSopenharmony_ci { 4496, 2534}, { 5019, 4488}, 1667cabdff1aSopenharmony_ci { 5586, 15614}, { 5725, 1422}, 1668cabdff1aSopenharmony_ci { 6453, 580}, { 6724, 6831}, 1669cabdff1aSopenharmony_ci { 7657, 3527}, { 8072, 2099}, 1670cabdff1aSopenharmony_ci { 8232, 5319}, { 8827, 8775}, 1671cabdff1aSopenharmony_ci { 9740, 2868}, { 9856, 1465}, 1672cabdff1aSopenharmony_ci { 10087, 12488}, { 10241, 4453}, 1673cabdff1aSopenharmony_ci { 10859, 6618}, { 11321, 3587}, 1674cabdff1aSopenharmony_ci { 11417, 1800}, { 11643, 2428}, 1675cabdff1aSopenharmony_ci { 11718, 988}, { 12312, 5093}, 1676cabdff1aSopenharmony_ci { 12523, 8413}, { 12574, 26214}, 1677cabdff1aSopenharmony_ci { 12601, 3396}, { 13172, 1623}, 1678cabdff1aSopenharmony_ci { 13285, 2423}, { 13418, 6087}, 1679cabdff1aSopenharmony_ci { 13459, 12810}, { 13656, 3607}, 1680cabdff1aSopenharmony_ci { 14111, 4521}, { 14144, 1229}, 1681cabdff1aSopenharmony_ci { 14425, 1871}, { 14431, 7234}, 1682cabdff1aSopenharmony_ci { 14445, 2834}, { 14628, 10036}, 1683cabdff1aSopenharmony_ci { 14860, 17496}, { 15161, 3629}, 1684cabdff1aSopenharmony_ci { 15209, 5819}, { 15299, 2256}, 1685cabdff1aSopenharmony_ci { 15518, 4722}, { 15663, 1060}, 1686cabdff1aSopenharmony_ci { 15759, 7972}, { 15939, 11964}, 1687cabdff1aSopenharmony_ci { 16020, 2996}, { 16086, 1707}, 1688cabdff1aSopenharmony_ci { 16521, 4254}, { 16576, 6224}, 1689cabdff1aSopenharmony_ci { 16894, 2380}, { 16906, 681}, 1690cabdff1aSopenharmony_ci { 17213, 8406}, { 17610, 3418}, 1691cabdff1aSopenharmony_ci { 17895, 5269}, { 18168, 11748}, 1692cabdff1aSopenharmony_ci { 18230, 1575}, { 18607, 32767}, 1693cabdff1aSopenharmony_ci { 18728, 21684}, { 19137, 2543}, 1694cabdff1aSopenharmony_ci { 19422, 6577}, { 19446, 4097}, 1695cabdff1aSopenharmony_ci { 19450, 9056}, { 20371, 14885} 1696cabdff1aSopenharmony_ci}; 1697cabdff1aSopenharmony_ci 1698cabdff1aSopenharmony_cistatic const int16_t qua_gain_7b[128][2] = { 1699cabdff1aSopenharmony_ci { 204, 441}, { 464, 1977}, 1700cabdff1aSopenharmony_ci { 869, 1077}, { 1072, 3062}, 1701cabdff1aSopenharmony_ci { 1281, 4759}, { 1647, 1539}, 1702cabdff1aSopenharmony_ci { 1845, 7020}, { 1853, 634}, 1703cabdff1aSopenharmony_ci { 1995, 2336}, { 2351, 15400}, 1704cabdff1aSopenharmony_ci { 2661, 1165}, { 2702, 3900}, 1705cabdff1aSopenharmony_ci { 2710, 10133}, { 3195, 1752}, 1706cabdff1aSopenharmony_ci { 3498, 2624}, { 3663, 849}, 1707cabdff1aSopenharmony_ci { 3984, 5697}, { 4214, 3399}, 1708cabdff1aSopenharmony_ci { 4415, 1304}, { 4695, 2056}, 1709cabdff1aSopenharmony_ci { 5376, 4558}, { 5386, 676}, 1710cabdff1aSopenharmony_ci { 5518, 23554}, { 5567, 7794}, 1711cabdff1aSopenharmony_ci { 5644, 3061}, { 5672, 1513}, 1712cabdff1aSopenharmony_ci { 5957, 2338}, { 6533, 1060}, 1713cabdff1aSopenharmony_ci { 6804, 5998}, { 6820, 1767}, 1714cabdff1aSopenharmony_ci { 6937, 3837}, { 7277, 414}, 1715cabdff1aSopenharmony_ci { 7305, 2665}, { 7466, 11304}, 1716cabdff1aSopenharmony_ci { 7942, 794}, { 8007, 1982}, 1717cabdff1aSopenharmony_ci { 8007, 1366}, { 8326, 3105}, 1718cabdff1aSopenharmony_ci { 8336, 4810}, { 8708, 7954}, 1719cabdff1aSopenharmony_ci { 8989, 2279}, { 9031, 1055}, 1720cabdff1aSopenharmony_ci { 9247, 3568}, { 9283, 1631}, 1721cabdff1aSopenharmony_ci { 9654, 6311}, { 9811, 2605}, 1722cabdff1aSopenharmony_ci { 10120, 683}, { 10143, 4179}, 1723cabdff1aSopenharmony_ci { 10245, 1946}, { 10335, 1218}, 1724cabdff1aSopenharmony_ci { 10468, 9960}, { 10651, 3000}, 1725cabdff1aSopenharmony_ci { 10951, 1530}, { 10969, 5290}, 1726cabdff1aSopenharmony_ci { 11203, 2305}, { 11325, 3562}, 1727cabdff1aSopenharmony_ci { 11771, 6754}, { 11839, 1849}, 1728cabdff1aSopenharmony_ci { 11941, 4495}, { 11954, 1298}, 1729cabdff1aSopenharmony_ci { 11975, 15223}, { 11977, 883}, 1730cabdff1aSopenharmony_ci { 11986, 2842}, { 12438, 2141}, 1731cabdff1aSopenharmony_ci { 12593, 3665}, { 12636, 8367}, 1732cabdff1aSopenharmony_ci { 12658, 1594}, { 12886, 2628}, 1733cabdff1aSopenharmony_ci { 12984, 4942}, { 13146, 1115}, 1734cabdff1aSopenharmony_ci { 13224, 524}, { 13341, 3163}, 1735cabdff1aSopenharmony_ci { 13399, 1923}, { 13549, 5961}, 1736cabdff1aSopenharmony_ci { 13606, 1401}, { 13655, 2399}, 1737cabdff1aSopenharmony_ci { 13782, 3909}, { 13868, 10923}, 1738cabdff1aSopenharmony_ci { 14226, 1723}, { 14232, 2939}, 1739cabdff1aSopenharmony_ci { 14278, 7528}, { 14439, 4598}, 1740cabdff1aSopenharmony_ci { 14451, 984}, { 14458, 2265}, 1741cabdff1aSopenharmony_ci { 14792, 1403}, { 14818, 3445}, 1742cabdff1aSopenharmony_ci { 14899, 5709}, { 15017, 15362}, 1743cabdff1aSopenharmony_ci { 15048, 1946}, { 15069, 2655}, 1744cabdff1aSopenharmony_ci { 15405, 9591}, { 15405, 4079}, 1745cabdff1aSopenharmony_ci { 15570, 7183}, { 15687, 2286}, 1746cabdff1aSopenharmony_ci { 15691, 1624}, { 15699, 3068}, 1747cabdff1aSopenharmony_ci { 15772, 5149}, { 15868, 1205}, 1748cabdff1aSopenharmony_ci { 15970, 696}, { 16249, 3584}, 1749cabdff1aSopenharmony_ci { 16338, 1917}, { 16424, 2560}, 1750cabdff1aSopenharmony_ci { 16483, 4438}, { 16529, 6410}, 1751cabdff1aSopenharmony_ci { 16620, 11966}, { 16839, 8780}, 1752cabdff1aSopenharmony_ci { 17030, 3050}, { 17033, 18325}, 1753cabdff1aSopenharmony_ci { 17092, 1568}, { 17123, 5197}, 1754cabdff1aSopenharmony_ci { 17351, 2113}, { 17374, 980}, 1755cabdff1aSopenharmony_ci { 17566, 26214}, { 17609, 3912}, 1756cabdff1aSopenharmony_ci { 17639, 32767}, { 18151, 7871}, 1757cabdff1aSopenharmony_ci { 18197, 2516}, { 18202, 5649}, 1758cabdff1aSopenharmony_ci { 18679, 3283}, { 18930, 1370}, 1759cabdff1aSopenharmony_ci { 19271, 13757}, { 19317, 4120}, 1760cabdff1aSopenharmony_ci { 19460, 1973}, { 19654, 10018}, 1761cabdff1aSopenharmony_ci { 19764, 6792}, { 19912, 5135}, 1762cabdff1aSopenharmony_ci { 20040, 2841}, { 21234, 19833} 1763cabdff1aSopenharmony_ci}; 1764cabdff1aSopenharmony_ci 1765cabdff1aSopenharmony_ci/** 4-tap moving average prediction coefficients in reverse order */ 1766cabdff1aSopenharmony_cistatic const float energy_pred_fac[4] = { 0.2, 0.3, 0.4, 0.5 }; 1767cabdff1aSopenharmony_ci 1768cabdff1aSopenharmony_ci/** impulse response filter tables converted to float from Q15 1769cabdff1aSopenharmony_ci * used for anti-sparseness processing */ 1770cabdff1aSopenharmony_cistatic const float ir_filter_str[64] = { 1771cabdff1aSopenharmony_ci 6.159058e-01, 2.958069e-01, 9.979248e-02, -1.048889e-01, 1772cabdff1aSopenharmony_ci 8.740234e-02, -1.599121e-01, 4.849243e-02, -4.141235e-02, 1773cabdff1aSopenharmony_ci 1.831055e-02, 1.188049e-01, -4.568481e-02, -2.130127e-02, 1774cabdff1aSopenharmony_ci 3.671265e-02, -1.601868e-01, 3.659058e-02, 1.639099e-01, 1775cabdff1aSopenharmony_ci -4.541016e-02, -2.151489e-02, -8.810425e-02, 6.030273e-02, 1776cabdff1aSopenharmony_ci 2.740479e-02, 2.200317e-02, -1.182861e-01, 1.289978e-01, 1777cabdff1aSopenharmony_ci -1.560059e-01, 1.953125e-01, -3.149414e-02, -1.441956e-01, 1778cabdff1aSopenharmony_ci 1.249084e-01, -1.328125e-01, 9.780884e-02, 6.500244e-02, 1779cabdff1aSopenharmony_ci -6.091309e-02, -5.599976e-02, 8.081055e-02, -5.450439e-02, 1780cabdff1aSopenharmony_ci -1.239014e-02, 1.748657e-02, 7.580566e-02, -1.101074e-01, 1781cabdff1aSopenharmony_ci 9.579468e-02, -4.159546e-02, -7.830811e-02, 1.162109e-01, 1782cabdff1aSopenharmony_ci -1.950073e-02, -6.259155e-02, -1.651001e-02, 7.250977e-02, 1783cabdff1aSopenharmony_ci 1.199951e-01, -1.911011e-01, 4.370117e-02, -1.098938e-01, 1784cabdff1aSopenharmony_ci 1.492004e-01, 1.129150e-02, 1.730347e-02, -3.549194e-02, 1785cabdff1aSopenharmony_ci -8.709717e-02, 5.841064e-02, 1.190186e-03, -7.379150e-02, 1786cabdff1aSopenharmony_ci 1.054077e-01, 9.078979e-02, -1.227112e-01, 1.047058e-01 1787cabdff1aSopenharmony_ci}; 1788cabdff1aSopenharmony_ci 1789cabdff1aSopenharmony_cistatic const float ir_filter_mid[64] = { 1790cabdff1aSopenharmony_ci 7.354126e-01, 3.192139e-01, -1.606140e-01, -2.328491e-02, 1791cabdff1aSopenharmony_ci 6.250000e-02, -2.828979e-02, 5.349731e-02, -1.014099e-01, 1792cabdff1aSopenharmony_ci 6.750488e-02, 1.989746e-02, -6.549072e-02, 7.589722e-02, 1793cabdff1aSopenharmony_ci -1.080017e-01, 1.253967e-01, -6.430054e-02, -1.141357e-02, 1794cabdff1aSopenharmony_ci -1.910400e-02, 1.303101e-01, -1.673889e-01, 6.820679e-02, 1795cabdff1aSopenharmony_ci 5.670166e-02, -8.450317e-02, 2.270508e-02, 3.479004e-02, 1796cabdff1aSopenharmony_ci -2.328491e-02, -4.928589e-02, 1.239014e-01, -1.395874e-01, 1797cabdff1aSopenharmony_ci 9.100342e-02, -3.549194e-02, 2.230835e-02, -3.350830e-02, 1798cabdff1aSopenharmony_ci 2.450562e-02, 5.096436e-03, -2.178955e-02, 1.849365e-02, 1799cabdff1aSopenharmony_ci -1.708984e-02, 1.950073e-02, 1.312256e-03, -5.389404e-02, 1800cabdff1aSopenharmony_ci 9.851074e-02, -8.489990e-02, 2.029419e-02, 2.328491e-02, 1801cabdff1aSopenharmony_ci 7.110596e-03, -6.109619e-02, 3.939819e-02, 5.709839e-02, 1802cabdff1aSopenharmony_ci -1.058960e-01, 3.149414e-02, 8.270264e-02, -1.232910e-01, 1803cabdff1aSopenharmony_ci 1.105957e-01, -1.286011e-01, 1.614990e-01, -1.303101e-01, 1804cabdff1aSopenharmony_ci 4.769897e-02, 3.295898e-03, -1.770020e-02, 5.010986e-02, 1805cabdff1aSopenharmony_ci -7.501221e-02, 2.920532e-02, 1.660156e-02, 7.751465e-02 1806cabdff1aSopenharmony_ci}; 1807cabdff1aSopenharmony_ci 1808cabdff1aSopenharmony_cistatic const float * const ir_filters_lookup[2] = { 1809cabdff1aSopenharmony_ci ir_filter_str, ir_filter_mid 1810cabdff1aSopenharmony_ci}; 1811cabdff1aSopenharmony_ci 1812cabdff1aSopenharmony_ci/** High-pass filters coefficients for 31 Hz and 400 Hz cutoff */ 1813cabdff1aSopenharmony_cistatic const float hpf_zeros[2] = { -2.0, 1.0 }; 1814cabdff1aSopenharmony_cistatic const float hpf_31_poles[2] = { -1.978881836, 0.979125977 }; 1815cabdff1aSopenharmony_cistatic const float hpf_31_gain = 0.989501953; 1816cabdff1aSopenharmony_ci 1817cabdff1aSopenharmony_cistatic const float hpf_400_poles[2] = { -1.787109375, 0.864257812 }; 1818cabdff1aSopenharmony_cistatic const float hpf_400_gain = 0.893554687; 1819cabdff1aSopenharmony_ci 1820cabdff1aSopenharmony_ci/** Interpolation coefficients for 5/4 signal upsampling 1821cabdff1aSopenharmony_ci * Table from the reference source was reordered for efficiency */ 1822cabdff1aSopenharmony_cistatic const float upsample_fir[4][24] = { 1823cabdff1aSopenharmony_ci { -6.103516e-05, 7.324219e-04, -2.014160e-03, 4.150391e-03, 1824cabdff1aSopenharmony_ci -7.263184e-03, 1.165771e-02, -1.776123e-02, 2.624512e-02, 1825cabdff1aSopenharmony_ci -3.869629e-02, 5.877686e-02, -9.863281e-02, 2.314453e-01, 1826cabdff1aSopenharmony_ci 9.348755e-01, -1.523438e-01, 7.861328e-02, -4.937744e-02, 1827cabdff1aSopenharmony_ci 3.308105e-02, -2.252197e-02, 1.507568e-02, -9.765625e-03, 1828cabdff1aSopenharmony_ci 5.859375e-03, -3.173828e-03, 1.403809e-03, -3.662109e-04 }, 1829cabdff1aSopenharmony_ci { -2.441406e-04, 1.464844e-03, -3.784180e-03, 7.568359e-03, 1830cabdff1aSopenharmony_ci -1.300049e-02, 2.062988e-02, -3.112793e-02, 4.589844e-02, 1831cabdff1aSopenharmony_ci -6.781006e-02, 1.042480e-01, -1.815186e-01, 5.016479e-01, 1832cabdff1aSopenharmony_ci 7.548828e-01, -2.094727e-01, 1.148071e-01, -7.348633e-02, 1833cabdff1aSopenharmony_ci 4.956055e-02, -3.369141e-02, 2.246094e-02, -1.434326e-02, 1834cabdff1aSopenharmony_ci 8.483887e-03, -4.455566e-03, 1.831055e-03, -4.272461e-04 }, 1835cabdff1aSopenharmony_ci { -4.272461e-04, 1.831055e-03, -4.455566e-03, 8.483887e-03, 1836cabdff1aSopenharmony_ci -1.434326e-02, 2.246094e-02, -3.369141e-02, 4.956055e-02, 1837cabdff1aSopenharmony_ci -7.348633e-02, 1.148071e-01, -2.094727e-01, 7.548828e-01, 1838cabdff1aSopenharmony_ci 5.016479e-01, -1.815186e-01, 1.042480e-01, -6.781006e-02, 1839cabdff1aSopenharmony_ci 4.589844e-02, -3.112793e-02, 2.062988e-02, -1.300049e-02, 1840cabdff1aSopenharmony_ci 7.568359e-03, -3.784180e-03, 1.464844e-03, -2.441406e-04 }, 1841cabdff1aSopenharmony_ci { -3.662109e-04, 1.403809e-03, -3.173828e-03, 5.859375e-03, 1842cabdff1aSopenharmony_ci -9.765625e-03, 1.507568e-02, -2.252197e-02, 3.308105e-02, 1843cabdff1aSopenharmony_ci -4.937744e-02, 7.861328e-02, -1.523438e-01, 9.348755e-01, 1844cabdff1aSopenharmony_ci 2.314453e-01, -9.863281e-02, 5.877686e-02, -3.869629e-02, 1845cabdff1aSopenharmony_ci 2.624512e-02, -1.776123e-02, 1.165771e-02, -7.263184e-03, 1846cabdff1aSopenharmony_ci 4.150391e-03, -2.014160e-03, 7.324219e-04, -6.103516e-05 } 1847cabdff1aSopenharmony_ci}; 1848cabdff1aSopenharmony_ci 1849cabdff1aSopenharmony_ci/** High band quantized gains for 23k85 in Q14 */ 1850cabdff1aSopenharmony_cistatic const uint16_t qua_hb_gain[16] = { 1851cabdff1aSopenharmony_ci 3624, 4673, 5597, 6479, 7425, 8378, 9324, 10264, 1852cabdff1aSopenharmony_ci 11210, 12206, 13391, 14844, 16770, 19655, 24289, 32728 1853cabdff1aSopenharmony_ci}; 1854cabdff1aSopenharmony_ci 1855cabdff1aSopenharmony_ci/** High-band post-processing FIR filters coefficients from Q15 */ 1856cabdff1aSopenharmony_cistatic const float bpf_6_7_coef[31] = { // band pass, 6kHz and 7kHz cutoffs 1857cabdff1aSopenharmony_ci -2.441406e-04, 3.585815e-04, 2.441406e-04, 1858cabdff1aSopenharmony_ci -2.059937e-04, -2.815248e-03, 8.560180e-03, 1859cabdff1aSopenharmony_ci -1.084137e-02, 0.000000e+00, 2.897645e-02, 1860cabdff1aSopenharmony_ci -6.774902e-02, 9.421540e-02, -8.380128e-02, 1861cabdff1aSopenharmony_ci 2.706910e-02, 5.924987e-02, -1.373367e-01, 1862cabdff1aSopenharmony_ci 1.687469e-01, 1863cabdff1aSopenharmony_ci -1.373367e-01, 5.924987e-02, 2.706910e-02, 1864cabdff1aSopenharmony_ci -8.380128e-02, 9.421540e-02, -6.774902e-02, 1865cabdff1aSopenharmony_ci 2.897645e-02, 0.000000e+00, -1.084137e-02, 1866cabdff1aSopenharmony_ci 8.560180e-03, -2.815248e-03, -2.059937e-04, 1867cabdff1aSopenharmony_ci 2.441406e-04, 3.585815e-04, -2.441406e-04 1868cabdff1aSopenharmony_ci}; 1869cabdff1aSopenharmony_ci 1870cabdff1aSopenharmony_cistatic const float lpf_7_coef[31] = { // low pass, 7kHz cutoff 1871cabdff1aSopenharmony_ci -6.408691e-04, 1.434326e-03, -2.716064e-03, 1872cabdff1aSopenharmony_ci 4.455566e-03, -6.195068e-03, 6.988525e-03, 1873cabdff1aSopenharmony_ci -5.401611e-03, 0.000000e+00, 1.022339e-02, 1874cabdff1aSopenharmony_ci -2.560425e-02, 4.531860e-02, -6.747437e-02, 1875cabdff1aSopenharmony_ci 8.944702e-02, -1.080933e-01, 1.206360e-01, 1876cabdff1aSopenharmony_ci 8.753052e-01, 1877cabdff1aSopenharmony_ci 1.206360e-01, -1.080933e-01, 8.944702e-02, 1878cabdff1aSopenharmony_ci -6.747437e-02, 4.531860e-02, -2.560425e-02, 1879cabdff1aSopenharmony_ci 1.022339e-02, 0.000000e+00, -5.401611e-03, 1880cabdff1aSopenharmony_ci 6.988525e-03, -6.195068e-03, 4.455566e-03, 1881cabdff1aSopenharmony_ci -2.716064e-03, 1.434326e-03, -6.408691e-04 1882cabdff1aSopenharmony_ci}; 1883cabdff1aSopenharmony_ci 1884cabdff1aSopenharmony_ci/** Core frame sizes in each mode */ 1885cabdff1aSopenharmony_cistatic const uint16_t cf_sizes_wb[] = { 1886cabdff1aSopenharmony_ci 132, 177, 253, 285, 317, 365, 397, 461, 477, 1887cabdff1aSopenharmony_ci 40, 0, 0, 0, 0, 0, 0 1888cabdff1aSopenharmony_ci}; 1889cabdff1aSopenharmony_ci 1890cabdff1aSopenharmony_ci#endif /* AVCODEC_AMRWBDATA_H */ 1891