media/libopus/silk/tables_pulses_per_block.c

Thu, 15 Jan 2015 15:59:08 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 15 Jan 2015 15:59:08 +0100
branch
TOR_BUG_9701
changeset 10
ac0c01689b40
permissions
-rw-r--r--

Implement a real Private Browsing Mode condition by changing the API/ABI;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

     1 /***********************************************************************
     2 Copyright (c) 2006-2011, Skype Limited. All rights reserved.
     3 Redistribution and use in source and binary forms, with or without
     4 modification, are permitted provided that the following conditions
     5 are met:
     6 - Redistributions of source code must retain the above copyright notice,
     7 this list of conditions and the following disclaimer.
     8 - Redistributions in binary form must reproduce the above copyright
     9 notice, this list of conditions and the following disclaimer in the
    10 documentation and/or other materials provided with the distribution.
    11 - Neither the name of Internet Society, IETF or IETF Trust, nor the
    12 names of specific contributors, may be used to endorse or promote
    13 products derived from this software without specific prior written
    14 permission.
    15 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    16 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    17 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    18 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
    19 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    20 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    21 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    22 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    23 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    24 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    25 POSSIBILITY OF SUCH DAMAGE.
    26 ***********************************************************************/
    28 #ifdef HAVE_CONFIG_H
    29 #include "config.h"
    30 #endif
    32 #include "tables.h"
    34 const opus_uint8 silk_max_pulses_table[ 4 ] = {
    35          8,     10,     12,     16
    36 };
    38 const opus_uint8 silk_pulses_per_block_iCDF[ 10 ][ 18 ] = {
    39 {
    40        125,     51,     26,     18,     15,     12,     11,     10,
    41          9,      8,      7,      6,      5,      4,      3,      2,
    42          1,      0
    43 },
    44 {
    45        198,    105,     45,     22,     15,     12,     11,     10,
    46          9,      8,      7,      6,      5,      4,      3,      2,
    47          1,      0
    48 },
    49 {
    50        213,    162,    116,     83,     59,     43,     32,     24,
    51         18,     15,     12,      9,      7,      6,      5,      3,
    52          2,      0
    53 },
    54 {
    55        239,    187,    116,     59,     28,     16,     11,     10,
    56          9,      8,      7,      6,      5,      4,      3,      2,
    57          1,      0
    58 },
    59 {
    60        250,    229,    188,    135,     86,     51,     30,     19,
    61         13,     10,      8,      6,      5,      4,      3,      2,
    62          1,      0
    63 },
    64 {
    65        249,    235,    213,    185,    156,    128,    103,     83,
    66         66,     53,     42,     33,     26,     21,     17,     13,
    67         10,      0
    68 },
    69 {
    70        254,    249,    235,    206,    164,    118,     77,     46,
    71         27,     16,     10,      7,      5,      4,      3,      2,
    72          1,      0
    73 },
    74 {
    75        255,    253,    249,    239,    220,    191,    156,    119,
    76         85,     57,     37,     23,     15,     10,      6,      4,
    77          2,      0
    78 },
    79 {
    80        255,    253,    251,    246,    237,    223,    203,    179,
    81        152,    124,     98,     75,     55,     40,     29,     21,
    82         15,      0
    83 },
    84 {
    85        255,    254,    253,    247,    220,    162,    106,     67,
    86         42,     28,     18,     12,      9,      6,      4,      3,
    87          2,      0
    88 }
    89 };
    91 const opus_uint8 silk_pulses_per_block_BITS_Q5[ 9 ][ 18 ] = {
    92 {
    93         31,     57,    107,    160,    205,    205,    255,    255,
    94        255,    255,    255,    255,    255,    255,    255,    255,
    95        255,    255
    96 },
    97 {
    98         69,     47,     67,    111,    166,    205,    255,    255,
    99        255,    255,    255,    255,    255,    255,    255,    255,
   100        255,    255
   101 },
   102 {
   103         82,     74,     79,     95,    109,    128,    145,    160,
   104        173,    205,    205,    205,    224,    255,    255,    224,
   105        255,    224
   106 },
   107 {
   108        125,     74,     59,     69,     97,    141,    182,    255,
   109        255,    255,    255,    255,    255,    255,    255,    255,
   110        255,    255
   111 },
   112 {
   113        173,    115,     85,     73,     76,     92,    115,    145,
   114        173,    205,    224,    224,    255,    255,    255,    255,
   115        255,    255
   116 },
   117 {
   118        166,    134,    113,    102,    101,    102,    107,    118,
   119        125,    138,    145,    155,    166,    182,    192,    192,
   120        205,    150
   121 },
   122 {
   123        224,    182,    134,    101,     83,     79,     85,     97,
   124        120,    145,    173,    205,    224,    255,    255,    255,
   125        255,    255
   126 },
   127 {
   128        255,    224,    192,    150,    120,    101,     92,     89,
   129         93,    102,    118,    134,    160,    182,    192,    224,
   130        224,    224
   131 },
   132 {
   133        255,    224,    224,    182,    155,    134,    118,    109,
   134        104,    102,    106,    111,    118,    131,    145,    160,
   135        173,    131
   136 }
   137 };
   139 const opus_uint8 silk_rate_levels_iCDF[ 2 ][ 9 ] =
   140 {
   141 {
   142        241,    190,    178,    132,     87,     74,     41,     14,
   143          0
   144 },
   145 {
   146        223,    193,    157,    140,    106,     57,     39,     18,
   147          0
   148 }
   149 };
   151 const opus_uint8 silk_rate_levels_BITS_Q5[ 2 ][ 9 ] =
   152 {
   153 {
   154        131,     74,    141,     79,     80,    138,     95,    104,
   155        134
   156 },
   157 {
   158         95,     99,     91,    125,     93,     76,    123,    115,
   159        123
   160 }
   161 };
   163 const opus_uint8 silk_shell_code_table0[ 152 ] = {
   164        128,      0,    214,     42,      0,    235,    128,     21,
   165          0,    244,    184,     72,     11,      0,    248,    214,
   166        128,     42,      7,      0,    248,    225,    170,     80,
   167         25,      5,      0,    251,    236,    198,    126,     54,
   168         18,      3,      0,    250,    238,    211,    159,     82,
   169         35,     15,      5,      0,    250,    231,    203,    168,
   170        128,     88,     53,     25,      6,      0,    252,    238,
   171        216,    185,    148,    108,     71,     40,     18,      4,
   172          0,    253,    243,    225,    199,    166,    128,     90,
   173         57,     31,     13,      3,      0,    254,    246,    233,
   174        212,    183,    147,    109,     73,     44,     23,     10,
   175          2,      0,    255,    250,    240,    223,    198,    166,
   176        128,     90,     58,     33,     16,      6,      1,      0,
   177        255,    251,    244,    231,    210,    181,    146,    110,
   178         75,     46,     25,     12,      5,      1,      0,    255,
   179        253,    248,    238,    221,    196,    164,    128,     92,
   180         60,     35,     18,      8,      3,      1,      0,    255,
   181        253,    249,    242,    229,    208,    180,    146,    110,
   182         76,     48,     27,     14,      7,      3,      1,      0
   183 };
   185 const opus_uint8 silk_shell_code_table1[ 152 ] = {
   186        129,      0,    207,     50,      0,    236,    129,     20,
   187          0,    245,    185,     72,     10,      0,    249,    213,
   188        129,     42,      6,      0,    250,    226,    169,     87,
   189         27,      4,      0,    251,    233,    194,    130,     62,
   190         20,      4,      0,    250,    236,    207,    160,     99,
   191         47,     17,      3,      0,    255,    240,    217,    182,
   192        131,     81,     41,     11,      1,      0,    255,    254,
   193        233,    201,    159,    107,     61,     20,      2,      1,
   194          0,    255,    249,    233,    206,    170,    128,     86,
   195         50,     23,      7,      1,      0,    255,    250,    238,
   196        217,    186,    148,    108,     70,     39,     18,      6,
   197          1,      0,    255,    252,    243,    226,    200,    166,
   198        128,     90,     56,     30,     13,      4,      1,      0,
   199        255,    252,    245,    231,    209,    180,    146,    110,
   200         76,     47,     25,     11,      4,      1,      0,    255,
   201        253,    248,    237,    219,    194,    163,    128,     93,
   202         62,     37,     19,      8,      3,      1,      0,    255,
   203        254,    250,    241,    226,    205,    177,    145,    111,
   204         79,     51,     30,     15,      6,      2,      1,      0
   205 };
   207 const opus_uint8 silk_shell_code_table2[ 152 ] = {
   208        129,      0,    203,     54,      0,    234,    129,     23,
   209          0,    245,    184,     73,     10,      0,    250,    215,
   210        129,     41,      5,      0,    252,    232,    173,     86,
   211         24,      3,      0,    253,    240,    200,    129,     56,
   212         15,      2,      0,    253,    244,    217,    164,     94,
   213         38,     10,      1,      0,    253,    245,    226,    189,
   214        132,     71,     27,      7,      1,      0,    253,    246,
   215        231,    203,    159,    105,     56,     23,      6,      1,
   216          0,    255,    248,    235,    213,    179,    133,     85,
   217         47,     19,      5,      1,      0,    255,    254,    243,
   218        221,    194,    159,    117,     70,     37,     12,      2,
   219          1,      0,    255,    254,    248,    234,    208,    171,
   220        128,     85,     48,     22,      8,      2,      1,      0,
   221        255,    254,    250,    240,    220,    189,    149,    107,
   222         67,     36,     16,      6,      2,      1,      0,    255,
   223        254,    251,    243,    227,    201,    166,    128,     90,
   224         55,     29,     13,      5,      2,      1,      0,    255,
   225        254,    252,    246,    234,    213,    183,    147,    109,
   226         73,     43,     22,     10,      4,      2,      1,      0
   227 };
   229 const opus_uint8 silk_shell_code_table3[ 152 ] = {
   230        130,      0,    200,     58,      0,    231,    130,     26,
   231          0,    244,    184,     76,     12,      0,    249,    214,
   232        130,     43,      6,      0,    252,    232,    173,     87,
   233         24,      3,      0,    253,    241,    203,    131,     56,
   234         14,      2,      0,    254,    246,    221,    167,     94,
   235         35,      8,      1,      0,    254,    249,    232,    193,
   236        130,     65,     23,      5,      1,      0,    255,    251,
   237        239,    211,    162,     99,     45,     15,      4,      1,
   238          0,    255,    251,    243,    223,    186,    131,     74,
   239         33,     11,      3,      1,      0,    255,    252,    245,
   240        230,    202,    158,    105,     57,     24,      8,      2,
   241          1,      0,    255,    253,    247,    235,    214,    179,
   242        132,     84,     44,     19,      7,      2,      1,      0,
   243        255,    254,    250,    240,    223,    196,    159,    112,
   244         69,     36,     15,      6,      2,      1,      0,    255,
   245        254,    253,    245,    231,    209,    176,    136,     93,
   246         55,     27,     11,      3,      2,      1,      0,    255,
   247        254,    253,    252,    239,    221,    194,    158,    117,
   248         76,     42,     18,      4,      3,      2,      1,      0
   249 };
   251 const opus_uint8 silk_shell_code_table_offsets[ 17 ] = {
   252          0,      0,      2,      5,      9,     14,     20,     27,
   253         35,     44,     54,     65,     77,     90,    104,    119,
   254        135
   255 };
   257 const opus_uint8 silk_sign_iCDF[ 42 ] = {
   258        254,     49,     67,     77,     82,     93,     99,
   259        198,     11,     18,     24,     31,     36,     45,
   260        255,     46,     66,     78,     87,     94,    104,
   261        208,     14,     21,     32,     42,     51,     66,
   262        255,     94,    104,    109,    112,    115,    118,
   263        248,     53,     69,     80,     88,     95,    102
   264 };

mercurial