view libtwamr/lsp_lsf.tab @ 477:4c9222d95647

libtwamr encoder: always emit frame->mode = mode; In the original implementation of amr_encode_frame(), the 'mode' member of the output struct was set to 0xFF if the output frame type is TX_NO_DATA. This design was made to mimic the mode field (16-bit word) being set to 0xFFFF (or -1) in 3GPP test sequence format - but nothing actually depends on this struct member being set in any way, and amr_frame_to_tseq() generates the needed 0xFFFF on its own, based on frame->type being equal to TX_NO_DATA. It is simpler and more efficient to always set frame->mode to the actual encoding mode in amr_encode_frame(), and this new behavior has already been documented in doc/AMR-library-API description in anticipation of the present change.
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 18 May 2024 22:30:42 +0000
parents 05a46720af0f
children
line wrap: on
line source

/*
********************************************************************************
*
*      GSM AMR-NB speech codec   R98   Version 7.6.0   December 12, 2001
*                                R99   Version 3.3.0                
*                                REL-4 Version 4.1.0                
*
********************************************************************************
*
*      File             : lsp_lsf.tab
*      Purpose          : Tables for function Lsf_lsp() and Lsp_lsf()
*      $Id $
*
********************************************************************************
*/
/* table of cos(x) */

static const Word16 table[65] =
{
    32767, 32729, 32610, 32413, 32138, 31786, 31357, 30853,
    30274, 29622, 28899, 28106, 27246, 26320, 25330, 24279,
    23170, 22006, 20788, 19520, 18205, 16846, 15447, 14010,
    12540, 11039, 9512, 7962, 6393, 4808, 3212, 1608,
    0, -1608, -3212, -4808, -6393, -7962, -9512, -11039,
    -12540, -14010, -15447, -16846, -18205, -19520, -20788, -22006,
    -23170, -24279, -25330, -26320, -27246, -28106, -28899, -29622,
    -30274, -30853, -31357, -31786, -32138, -32413, -32610, -32729,
    (Word16) 0x8000
};

/* 0x8000 = -32768 (used to silence the compiler) */

/* slope used to compute y = acos(x) */

static const Word16 slope[64] =
{
    -26887, -8812, -5323, -3813, -2979, -2444, -2081, -1811,
    -1608, -1450, -1322, -1219, -1132, -1059, -998, -946,
    -901, -861, -827, -797, -772, -750, -730, -713,
    -699, -687, -677, -668, -662, -657, -654, -652,
    -652, -654, -657, -662, -668, -677, -687, -699,
    -713, -730, -750, -772, -797, -827, -861, -901,
    -946, -998, -1059, -1132, -1219, -1322, -1450, -1608,
    -1811, -2081, -2444, -2979, -3813, -5323, -8812, -26887
};