media/libopus/silk/tables_other.c

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/media/libopus/silk/tables_other.c	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,138 @@
     1.4 +/***********************************************************************
     1.5 +Copyright (c) 2006-2011, Skype Limited. All rights reserved.
     1.6 +Redistribution and use in source and binary forms, with or without
     1.7 +modification, are permitted provided that the following conditions
     1.8 +are met:
     1.9 +- Redistributions of source code must retain the above copyright notice,
    1.10 +this list of conditions and the following disclaimer.
    1.11 +- Redistributions in binary form must reproduce the above copyright
    1.12 +notice, this list of conditions and the following disclaimer in the
    1.13 +documentation and/or other materials provided with the distribution.
    1.14 +- Neither the name of Internet Society, IETF or IETF Trust, nor the
    1.15 +names of specific contributors, may be used to endorse or promote
    1.16 +products derived from this software without specific prior written
    1.17 +permission.
    1.18 +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    1.19 +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    1.20 +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    1.21 +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
    1.22 +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    1.23 +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    1.24 +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    1.25 +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    1.26 +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    1.27 +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    1.28 +POSSIBILITY OF SUCH DAMAGE.
    1.29 +***********************************************************************/
    1.30 +
    1.31 +#ifdef HAVE_CONFIG_H
    1.32 +#include "config.h"
    1.33 +#endif
    1.34 +
    1.35 +#include "structs.h"
    1.36 +#include "define.h"
    1.37 +#include "tables.h"
    1.38 +
    1.39 +#ifdef __cplusplus
    1.40 +extern "C"
    1.41 +{
    1.42 +#endif
    1.43 +
    1.44 +/* Piece-wise linear mapping from bitrate in kbps to coding quality in dB SNR */
    1.45 +const opus_int32 silk_TargetRate_table_NB[ TARGET_RATE_TAB_SZ ] = {
    1.46 +    0,      8000,   9400,   11500,  13500,  17500,  25000,  MAX_TARGET_RATE_BPS
    1.47 +};
    1.48 +const opus_int32 silk_TargetRate_table_MB[ TARGET_RATE_TAB_SZ ] = {
    1.49 +    0,      9000,   12000,  14500,  18500,  24500,  35500,  MAX_TARGET_RATE_BPS
    1.50 +};
    1.51 +const opus_int32 silk_TargetRate_table_WB[ TARGET_RATE_TAB_SZ ] = {
    1.52 +    0,      10500,  14000,  17000,  21500,  28500,  42000,  MAX_TARGET_RATE_BPS
    1.53 +};
    1.54 +const opus_int16 silk_SNR_table_Q1[ TARGET_RATE_TAB_SZ ] = {
    1.55 +    18,     29,     38,     40,     46,     52,     62,     84
    1.56 +};
    1.57 +
    1.58 +/* Tables for stereo predictor coding */
    1.59 +const opus_int16 silk_stereo_pred_quant_Q13[ STEREO_QUANT_TAB_SIZE ] = {
    1.60 +    -13732, -10050, -8266, -7526, -6500, -5000, -2950,  -820,
    1.61 +       820,   2950,  5000,  6500,  7526,  8266, 10050, 13732
    1.62 +};
    1.63 +const opus_uint8  silk_stereo_pred_joint_iCDF[ 25 ] = {
    1.64 +    249, 247, 246, 245, 244,
    1.65 +    234, 210, 202, 201, 200,
    1.66 +    197, 174,  82,  59,  56,
    1.67 +     55,  54,  46,  22,  12,
    1.68 +     11,  10,   9,   7,   0
    1.69 +};
    1.70 +const opus_uint8  silk_stereo_only_code_mid_iCDF[ 2 ] = { 64, 0 };
    1.71 +
    1.72 +/* Tables for LBRR flags */
    1.73 +static const opus_uint8 silk_LBRR_flags_2_iCDF[ 3 ] = { 203, 150, 0 };
    1.74 +static const opus_uint8 silk_LBRR_flags_3_iCDF[ 7 ] = { 215, 195, 166, 125, 110, 82, 0 };
    1.75 +const opus_uint8 * const silk_LBRR_flags_iCDF_ptr[ 2 ] = {
    1.76 +    silk_LBRR_flags_2_iCDF,
    1.77 +    silk_LBRR_flags_3_iCDF
    1.78 +};
    1.79 +
    1.80 +/* Table for LSB coding */
    1.81 +const opus_uint8 silk_lsb_iCDF[ 2 ] = { 120, 0 };
    1.82 +
    1.83 +/* Tables for LTPScale */
    1.84 +const opus_uint8 silk_LTPscale_iCDF[ 3 ] = { 128, 64, 0 };
    1.85 +
    1.86 +/* Tables for signal type and offset coding */
    1.87 +const opus_uint8 silk_type_offset_VAD_iCDF[ 4 ] = {
    1.88 +       232,    158,    10,      0
    1.89 +};
    1.90 +const opus_uint8 silk_type_offset_no_VAD_iCDF[ 2 ] = {
    1.91 +       230,      0
    1.92 +};
    1.93 +
    1.94 +/* Tables for NLSF interpolation factor */
    1.95 +const opus_uint8 silk_NLSF_interpolation_factor_iCDF[ 5 ] = { 243, 221, 192, 181, 0 };
    1.96 +
    1.97 +/* Quantization offsets */
    1.98 +const opus_int16  silk_Quantization_Offsets_Q10[ 2 ][ 2 ] = {
    1.99 +    { OFFSET_UVL_Q10, OFFSET_UVH_Q10 }, { OFFSET_VL_Q10, OFFSET_VH_Q10 }
   1.100 +};
   1.101 +
   1.102 +/* Table for LTPScale */
   1.103 +const opus_int16 silk_LTPScales_table_Q14[ 3 ] = { 15565, 12288, 8192 };
   1.104 +
   1.105 +/* Uniform entropy tables */
   1.106 +const opus_uint8 silk_uniform3_iCDF[ 3 ] = { 171, 85, 0 };
   1.107 +const opus_uint8 silk_uniform4_iCDF[ 4 ] = { 192, 128, 64, 0 };
   1.108 +const opus_uint8 silk_uniform5_iCDF[ 5 ] = { 205, 154, 102, 51, 0 };
   1.109 +const opus_uint8 silk_uniform6_iCDF[ 6 ] = { 213, 171, 128, 85, 43, 0 };
   1.110 +const opus_uint8 silk_uniform8_iCDF[ 8 ] = { 224, 192, 160, 128, 96, 64, 32, 0 };
   1.111 +
   1.112 +const opus_uint8 silk_NLSF_EXT_iCDF[ 7 ] = { 100, 40, 16, 7, 3, 1, 0 };
   1.113 +
   1.114 +/*  Elliptic/Cauer filters designed with 0.1 dB passband ripple,
   1.115 +        80 dB minimum stopband attenuation, and
   1.116 +        [0.95 : 0.15 : 0.35] normalized cut off frequencies. */
   1.117 +
   1.118 +/* Interpolation points for filter coefficients used in the bandwidth transition smoother */
   1.119 +const opus_int32 silk_Transition_LP_B_Q28[ TRANSITION_INT_NUM ][ TRANSITION_NB ] =
   1.120 +{
   1.121 +{    250767114,  501534038,  250767114  },
   1.122 +{    209867381,  419732057,  209867381  },
   1.123 +{    170987846,  341967853,  170987846  },
   1.124 +{    131531482,  263046905,  131531482  },
   1.125 +{     89306658,  178584282,   89306658  }
   1.126 +};
   1.127 +
   1.128 +/* Interpolation points for filter coefficients used in the bandwidth transition smoother */
   1.129 +const opus_int32 silk_Transition_LP_A_Q28[ TRANSITION_INT_NUM ][ TRANSITION_NA ] =
   1.130 +{
   1.131 +{    506393414,  239854379  },
   1.132 +{    411067935,  169683996  },
   1.133 +{    306733530,  116694253  },
   1.134 +{    185807084,   77959395  },
   1.135 +{     35497197,   57401098  }
   1.136 +};
   1.137 +
   1.138 +#ifdef __cplusplus
   1.139 +}
   1.140 +#endif
   1.141 +

mercurial