Home | History | Annotate | Download | only in inc
      1 
      2 /*
      3  ** Copyright 2003-2010, VisualOn, Inc.
      4  **
      5  ** Licensed under the Apache License, Version 2.0 (the "License");
      6  ** you may not use this file except in compliance with the License.
      7  ** You may obtain a copy of the License at
      8  **
      9  **     http://www.apache.org/licenses/LICENSE-2.0
     10  **
     11  ** Unless required by applicable law or agreed to in writing, software
     12  ** distributed under the License is distributed on an "AS IS" BASIS,
     13  ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  ** See the License for the specific language governing permissions and
     15  ** limitations under the License.
     16  */
     17 
     18 #include <stdio.h>
     19 #include "typedef.h"
     20 
     21 static UWord8 toc_byte[16] = {0x04, 0x0C, 0x14, 0x1C, 0x24, 0x2C, 0x34, 0x3C,
     22                               0x44, 0x4C, 0x54, 0x5C, 0x64, 0x6C, 0x74, 0x7C};
     23 
     24 /* number of speech bits for all modes */
     25 static Word16 unpacked_size[16] = {132,  177, 253, 285, 317, 365, 397, 461,
     26                                    477,   35,   0,   0,   0,   0,   0,   0};
     27 
     28 /* size of packed frame for each mode, excluding TOC byte */
     29 static Word16 packed_size[16] = {17, 23, 32, 36, 40, 46, 50, 58,
     30                                  60,  5,  0,  0,  0,  0,  0,  0};
     31 
     32 /* number of unused speech bits in packed format for each mode */
     33 static Word16 unused_size[16] = {4, 7, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0};
     34 
     35 /* sorting tables for all modes */
     36 
     37 static Word16 sort_660[132] = {
     38      0,   5,   6,   7,  61,  84, 107, 130,  62,  85,
     39      8,   4,  37,  38,  39,  40,  58,  81, 104, 127,
     40     60,  83, 106, 129, 108, 131, 128,  41,  42,  80,
     41    126,   1,   3,  57, 103,  82, 105,  59,   2,  63,
     42    109, 110,  86,  19,  22,  23,  64,  87,  18,  20,
     43     21,  17,  13,  88,  43,  89,  65, 111,  14,  24,
     44     25,  26,  27,  28,  15,  16,  44,  90,  66, 112,
     45      9,  11,  10,  12,  67, 113,  29,  30,  31,  32,
     46     34,  33,  35,  36,  45,  51,  68,  74,  91,  97,
     47    114, 120,  46,  69,  92, 115,  52,  75,  98, 121,
     48     47,  70,  93, 116,  53,  76,  99, 122,  48,  71,
     49     94, 117,  54,  77, 100, 123,  49,  72,  95, 118,
     50     55,  78, 101, 124,  50,  73,  96, 119,  56,  79,
     51    102, 125
     52 };
     53 
     54 static Word16 sort_885[177] = {
     55      0,   4,   6,   7,   5,   3,  47,  48,  49, 112,
     56    113, 114,  75, 106, 140, 171,  80, 111, 145, 176,
     57     77, 108, 142, 173,  78, 109, 143, 174,  79, 110,
     58    144, 175,  76, 107, 141, 172,  50, 115,  51,   2,
     59      1,  81, 116, 146,  19,  21,  12,  17,  18,  20,
     60     16,  25,  13,  10,  14,  24,  23,  22,  26,   8,
     61     15,  52, 117,  31,  82, 147,   9,  33,  11,  83,
     62    148,  53, 118,  28,  27,  84, 149,  34,  35,  29,
     63     46,  32,  30,  54, 119,  37,  36,  39,  38,  40,
     64     85, 150,  41,  42,  43,  44,  45,  55,  60,  65,
     65     70,  86,  91,  96, 101, 120, 125, 130, 135, 151,
     66    156, 161, 166,  56,  87, 121, 152,  61,  92, 126,
     67    157,  66,  97, 131, 162,  71, 102, 136, 167,  57,
     68     88, 122, 153,  62,  93, 127, 158,  67,  98, 132,
     69    163,  72, 103, 137, 168,  58,  89, 123, 154,  63,
     70     94, 128, 159,  68,  99, 133, 164,  73, 104, 138,
     71    169,  59,  90, 124, 155,  64,  95, 129, 160,  69,
     72    100, 134, 165,  74, 105, 139, 170
     73 };
     74 
     75 static Word16 sort_1265[253] = {
     76      0,   4,   6,  93, 143, 196, 246,   7,   5,   3,
     77     47,  48,  49,  50,  51, 150, 151, 152, 153, 154,
     78     94, 144, 197, 247,  99, 149, 202, 252,  96, 146,
     79    199, 249,  97, 147, 200, 250, 100, 203,  98, 148,
     80    201, 251,  95, 145, 198, 248,  52,   2,   1, 101,
     81    204, 155,  19,  21,  12,  17,  18,  20,  16,  25,
     82     13,  10,  14,  24,  23,  22,  26,   8,  15,  53,
     83    156,  31, 102, 205,   9,  33,  11, 103, 206,  54,
     84    157,  28,  27, 104, 207,  34,  35,  29,  46,  32,
     85     30,  55, 158,  37,  36,  39,  38,  40, 105, 208,
     86     41,  42,  43,  44,  45,  56, 106, 159, 209,  57,
     87     66,  75,  84, 107, 116, 125, 134, 160, 169, 178,
     88    187, 210, 219, 228, 237,  58, 108, 161, 211,  62,
     89    112, 165, 215,  67, 117, 170, 220,  71, 121, 174,
     90    224,  76, 126, 179, 229,  80, 130, 183, 233,  85,
     91    135, 188, 238,  89, 139, 192, 242,  59, 109, 162,
     92    212,  63, 113, 166, 216,  68, 118, 171, 221,  72,
     93    122, 175, 225,  77, 127, 180, 230,  81, 131, 184,
     94    234,  86, 136, 189, 239,  90, 140, 193, 243,  60,
     95    110, 163, 213,  64, 114, 167, 217,  69, 119, 172,
     96    222,  73, 123, 176, 226,  78, 128, 181, 231,  82,
     97    132, 185, 235,  87, 137, 190, 240,  91, 141, 194,
     98    244,  61, 111, 164, 214,  65, 115, 168, 218,  70,
     99    120, 173, 223,  74, 124, 177, 227,  79, 129, 182,
    100    232,  83, 133, 186, 236,  88, 138, 191, 241,  92,
    101    142, 195, 245
    102 };
    103 
    104 static Word16 sort_1425[285] = {
    105      0,   4,   6, 101, 159, 220, 278,   7,   5,   3,
    106     47,  48,  49,  50,  51, 166, 167, 168, 169, 170,
    107    102, 160, 221, 279, 107, 165, 226, 284, 104, 162,
    108    223, 281, 105, 163, 224, 282, 108, 227, 106, 164,
    109    225, 283, 103, 161, 222, 280,  52,   2,   1, 109,
    110    228, 171,  19,  21,  12,  17,  18,  20,  16,  25,
    111     13,  10,  14,  24,  23,  22,  26,   8,  15,  53,
    112    172,  31, 110, 229,   9,  33,  11, 111, 230,  54,
    113    173,  28,  27, 112, 231,  34,  35,  29,  46,  32,
    114     30,  55, 174,  37,  36,  39,  38,  40, 113, 232,
    115     41,  42,  43,  44,  45,  56, 114, 175, 233,  62,
    116    120, 181, 239,  75, 133, 194, 252,  57, 115, 176,
    117    234,  63, 121, 182, 240,  70, 128, 189, 247,  76,
    118    134, 195, 253,  83, 141, 202, 260,  92, 150, 211,
    119    269,  84, 142, 203, 261,  93, 151, 212, 270,  85,
    120    143, 204, 262,  94, 152, 213, 271,  86, 144, 205,
    121    263,  95, 153, 214, 272,  64, 122, 183, 241,  77,
    122    135, 196, 254,  65, 123, 184, 242,  78, 136, 197,
    123    255,  87, 145, 206, 264,  96, 154, 215, 273,  58,
    124    116, 177, 235,  66, 124, 185, 243,  71, 129, 190,
    125    248,  79, 137, 198, 256,  88, 146, 207, 265,  97,
    126    155, 216, 274,  59, 117, 178, 236,  67, 125, 186,
    127    244,  72, 130, 191, 249,  80, 138, 199, 257,  89,
    128    147, 208, 266,  98, 156, 217, 275,  60, 118, 179,
    129    237,  68, 126, 187, 245,  73, 131, 192, 250,  81,
    130    139, 200, 258,  90, 148, 209, 267,  99, 157, 218,
    131    276,  61, 119, 180, 238,  69, 127, 188, 246,  74,
    132    132, 193, 251,  82, 140, 201, 259,  91, 149, 210,
    133    268, 100, 158, 219, 277
    134 };
    135 
    136 static Word16 sort_1585[317] = {
    137      0,   4,   6, 109, 175, 244, 310,   7,   5,   3,
    138     47,  48,  49,  50,  51, 182, 183, 184, 185, 186,
    139    110, 176, 245, 311, 115, 181, 250, 316, 112, 178,
    140    247, 313, 113, 179, 248, 314, 116, 251, 114, 180,
    141    249, 315, 111, 177, 246, 312,  52,   2,   1, 117,
    142    252, 187,  19,  21,  12,  17,  18,  20,  16,  25,
    143     13,  10,  14,  24,  23,  22,  26,   8,  15,  53,
    144    188,  31, 118, 253,   9,  33,  11, 119, 254,  54,
    145    189,  28,  27, 120, 255,  34,  35,  29,  46,  32,
    146     30,  55, 190,  37,  36,  39,  38,  40, 121, 256,
    147     41,  42,  43,  44,  45,  56, 122, 191, 257,  63,
    148    129, 198, 264,  76, 142, 211, 277,  89, 155, 224,
    149    290, 102, 168, 237, 303,  57, 123, 192, 258,  70,
    150    136, 205, 271,  83, 149, 218, 284,  96, 162, 231,
    151    297,  62, 128, 197, 263,  75, 141, 210, 276,  88,
    152    154, 223, 289, 101, 167, 236, 302,  58, 124, 193,
    153    259,  71, 137, 206, 272,  84, 150, 219, 285,  97,
    154    163, 232, 298,  59, 125, 194, 260,  64, 130, 199,
    155    265,  67, 133, 202, 268,  72, 138, 207, 273,  77,
    156    143, 212, 278,  80, 146, 215, 281,  85, 151, 220,
    157    286,  90, 156, 225, 291,  93, 159, 228, 294,  98,
    158    164, 233, 299, 103, 169, 238, 304, 106, 172, 241,
    159    307,  60, 126, 195, 261,  65, 131, 200, 266,  68,
    160    134, 203, 269,  73, 139, 208, 274,  78, 144, 213,
    161    279,  81, 147, 216, 282,  86, 152, 221, 287,  91,
    162    157, 226, 292,  94, 160, 229, 295,  99, 165, 234,
    163    300, 104, 170, 239, 305, 107, 173, 242, 308,  61,
    164    127, 196, 262,  66, 132, 201, 267,  69, 135, 204,
    165    270,  74, 140, 209, 275,  79, 145, 214, 280,  82,
    166    148, 217, 283,  87, 153, 222, 288,  92, 158, 227,
    167    293,  95, 161, 230, 296, 100, 166, 235, 301, 105,
    168    171, 240, 306, 108, 174, 243, 309
    169 };
    170 
    171 static Word16 sort_1825[365] = {
    172      0,   4,   6, 121, 199, 280, 358,   7,   5,   3,
    173     47,  48,  49,  50,  51, 206, 207, 208, 209, 210,
    174    122, 200, 281, 359, 127, 205, 286, 364, 124, 202,
    175    283, 361, 125, 203, 284, 362, 128, 287, 126, 204,
    176    285, 363, 123, 201, 282, 360,  52,   2,   1, 129,
    177    288, 211,  19,  21,  12,  17,  18,  20,  16,  25,
    178     13,  10,  14,  24,  23,  22,  26,   8,  15,  53,
    179    212,  31, 130, 289,   9,  33,  11, 131, 290,  54,
    180    213,  28,  27, 132, 291,  34,  35,  29,  46,  32,
    181     30,  55, 214,  37,  36,  39,  38,  40, 133, 292,
    182     41,  42,  43,  44,  45,  56, 134, 215, 293, 198,
    183    299, 136, 120, 138,  60, 279,  58,  62, 357, 139,
    184    140, 295, 156,  57, 219, 297,  63, 217, 137, 170,
    185    300, 222,  64, 106,  61,  78, 294,  92, 142, 141,
    186    135, 221, 296, 301, 343,  59, 298, 184, 329, 315,
    187    220, 216, 265, 251, 218, 237, 352, 223, 157,  86,
    188    171,  87, 164, 351, 111, 302,  65, 178, 115, 323,
    189     72, 192, 101, 179,  93,  73, 193, 151, 337, 309,
    190    143, 274,  69, 324, 165, 150,  97, 338, 110, 310,
    191    330, 273,  68, 107, 175, 245, 114,  79, 113, 189,
    192    246, 259, 174,  71, 185,  96, 344, 100, 322,  83,
    193    334, 316, 333, 252, 161, 348, 147,  82, 269, 232,
    194    260, 308, 353, 347, 163, 231, 306, 320, 188, 270,
    195    146, 177, 266, 350, 256,  85, 149, 116, 191, 160,
    196    238, 258, 336, 305, 255,  88, 224,  99, 339, 230,
    197    228, 227, 272, 242, 241, 319, 233, 311, 102,  74,
    198    180, 275,  66, 194, 152, 325, 172, 247, 244, 261,
    199    117, 158, 166, 354,  75, 144, 108, 312,  94, 186,
    200    303,  80, 234,  89, 195, 112, 340, 181, 345, 317,
    201    326, 276, 239, 167, 118, 313,  70, 355, 327, 253,
    202    190, 176, 271, 104,  98, 153, 103,  90,  76, 267,
    203    277, 248, 225, 262, 182,  84, 154, 235, 335, 168,
    204    331, 196, 341, 249, 162, 307, 148, 349, 263, 321,
    205    257, 243, 229, 356, 159, 119,  67, 187, 173, 145,
    206    240,  77, 304, 332, 314, 342, 109, 254,  81, 278,
    207    105,  91, 346, 318, 183, 250, 197, 328,  95, 155,
    208    169, 268, 226, 236, 264
    209 };
    210 
    211 static Word16 sort_1985[397] = {
    212      0,   4,   6, 129, 215, 304, 390,   7,   5,   3,
    213     47,  48,  49,  50,  51, 222, 223, 224, 225, 226,
    214    130, 216, 305, 391, 135, 221, 310, 396, 132, 218,
    215    307, 393, 133, 219, 308, 394, 136, 311, 134, 220,
    216    309, 395, 131, 217, 306, 392,  52,   2,   1, 137,
    217    312, 227,  19,  21,  12,  17,  18,  20,  16,  25,
    218     13,  10,  14,  24,  23,  22,  26,   8,  15,  53,
    219    228,  31, 138, 313,   9,  33,  11, 139, 314,  54,
    220    229,  28,  27, 140, 315,  34,  35,  29,  46,  32,
    221     30,  55, 230,  37,  36,  39,  38,  40, 141, 316,
    222     41,  42,  43,  44,  45,  56, 142, 231, 317,  63,
    223     73,  92, 340,  82, 324, 149, 353, 159, 334, 165,
    224    338, 178, 163, 254,  77, 168, 257, 153, 343,  57,
    225    248, 238,  79, 252, 166,  67,  80, 201, 101, 267,
    226    143, 164, 341, 255, 339, 187, 376, 318,  78, 328,
    227    362, 115, 232, 242, 253, 290, 276,  62,  58, 158,
    228     68,  93, 179, 319, 148, 169, 154,  72, 385, 329,
    229    333, 344, 102,  83, 144, 233, 323, 124, 243, 192,
    230    354, 237,  64, 247, 202, 209, 150, 116, 335, 268,
    231    239, 299, 188, 196, 298,  94, 195, 258, 123, 363,
    232    384, 109, 325, 371, 170, 370,  84, 110, 295, 180,
    233     74, 210, 191, 106, 291, 205, 367, 381, 377, 206,
    234    355, 122, 119, 120, 383, 160, 105, 108, 277, 380,
    235    294, 284, 285, 345, 208, 269, 249, 366, 386, 300,
    236    297, 259, 125, 369, 197,  97, 194, 286, 211, 281,
    237    280, 183, 372,  87, 155, 283,  59, 348, 327, 184,
    238     76, 111, 330, 203, 349,  69,  98, 152, 145, 189,
    239     66, 320, 337, 173, 358, 251, 198, 174, 263, 262,
    240    126, 241, 193,  88, 388, 117,  95, 387, 112, 359,
    241    287, 244, 103, 272, 301, 171, 162, 234, 273, 127,
    242    373, 181, 292,  85, 378, 302, 121, 107, 364, 346,
    243    356, 212, 278, 213,  65, 382, 288, 207, 113, 175,
    244     99, 296, 374, 368, 199, 260, 185, 336, 331, 161,
    245    270, 264, 250, 240,  75, 350, 151,  60,  89, 321,
    246    156, 274, 360, 326,  70, 282, 167, 146, 352,  81,
    247     91, 389, 266, 245, 177, 235, 190, 256, 204, 342,
    248    128, 118, 303, 104, 379, 182, 114, 375, 200,  96,
    249    293, 172, 214, 365, 279,  86, 289, 351, 347, 357,
    250    261, 186, 176, 271,  90, 100, 147, 322, 275, 361,
    251     71, 332,  61, 265, 157, 246, 236
    252 };
    253 
    254 static Word16 sort_2305[461] = {
    255      0,   4,   6, 145, 247, 352, 454,   7,   5,   3,
    256     47,  48,  49,  50,  51, 254, 255, 256, 257, 258,
    257    146, 248, 353, 455, 151, 253, 358, 460, 148, 250,
    258    355, 457, 149, 251, 356, 458, 152, 359, 150, 252,
    259    357, 459, 147, 249, 354, 456,  52,   2,   1, 153,
    260    360, 259,  19,  21,  12,  17,  18,  20,  16,  25,
    261     13,  10,  14,  24,  23,  22,  26,   8,  15,  53,
    262    260,  31, 154, 361,   9,  33,  11, 155, 362,  54,
    263    261,  28,  27, 156, 363,  34,  35,  29,  46,  32,
    264     30,  55, 262,  37,  36,  39,  38,  40, 157, 364,
    265     41,  42,  43,  44,  45,  56, 158, 263, 365, 181,
    266    192, 170,  79,  57, 399,  90, 159, 297, 377, 366,
    267    275,  68, 183, 388, 286, 194, 299, 92 ,  70, 182,
    268    401, 172,  59,  91,  58, 400, 368, 161,  81, 160,
    269    264, 171,  80, 389, 390, 378, 379, 193, 298,  69,
    270    266, 265, 367, 277, 288, 276, 287, 184,  60, 195,
    271     82,  93,  71, 369, 402, 173, 162, 444, 300, 391,
    272     98,  76, 278,  61, 267, 374, 135, 411, 167, 102,
    273    380, 200,  87, 178,  65,  94, 204, 124,  72, 342,
    274    189, 305, 381, 396, 433, 301, 226, 407, 289, 237,
    275    113, 215, 185, 128, 309, 403, 116, 320, 196, 331,
    276    370, 422, 174,  64, 392,  83, 425, 219, 134, 188,
    277    432, 112, 427, 139, 279, 163, 436, 208, 447, 218,
    278    236, 229,  97, 294, 385, 230, 166, 268, 177, 443,
    279    225, 426, 101, 272, 138, 127, 290, 117, 347, 199,
    280    414,  95, 140, 240, 410, 395, 209, 129, 283, 346,
    281    105, 241, 437,  86, 308, 448, 203, 345, 186, 107,
    282    220, 415, 334, 319, 106, 313, 118, 123,  73, 207,
    283    421, 214, 384, 373, 438,  62, 371, 341,  75, 449,
    284    168, 323, 164, 242, 416, 324, 304, 197, 335, 404,
    285    271,  63, 191, 325,  96, 169, 231, 280, 312, 187,
    286    406,  84, 201, 100,  67, 382, 175, 336, 202, 330,
    287    269, 393, 376, 383, 293, 307, 409, 179, 285, 314,
    288    302, 372, 398, 190, 180,  89,  99, 103, 232,  78,
    289     88,  77, 136, 387, 165, 198, 394, 125, 176, 428,
    290     74, 375, 238, 227,  66, 273, 282, 141, 306, 412,
    291    114,  85, 130, 348, 119, 291, 296, 386, 233, 397,
    292    303, 405, 284, 445, 423, 221, 210, 205, 450, 108,
    293    274, 434, 216, 343, 337, 142, 243, 321, 408, 451,
    294    310, 292, 120, 109, 281, 439, 270, 429, 332, 295,
    295    418, 211, 315, 222, 326, 131, 430, 244, 327, 349,
    296    417, 316, 143, 338, 440, 234, 110, 212, 452, 245,
    297    121, 419, 350, 223, 132, 441, 328, 413, 317, 339,
    298    126, 104, 137, 446, 344, 239, 435, 115, 333, 206,
    299    322, 217, 228, 424, 453, 311, 351, 111, 442, 224,
    300    213, 122, 431, 340, 235, 246, 133, 144, 420, 329,
    301    318
    302 };
    303 
    304 static Word16 sort_2385[477] = {
    305      0,   4,   6, 145, 251, 360, 466,   7,   5,   3,
    306     47,  48,  49,  50,  51, 262, 263, 264, 265, 266,
    307    146, 252, 361, 467, 151, 257, 366, 472, 148, 254,
    308    363, 469, 149, 255, 364, 470, 156, 371, 150, 256,
    309    365, 471, 147, 253, 362, 468,  52,   2,   1, 157,
    310    372, 267,  19,  21,  12,  17,  18,  20,  16,  25,
    311     13,  10,  14,  24,  23,  22,  26,   8,  15,  53,
    312    268,  31, 152, 153, 154, 155, 258, 259, 260, 261,
    313    367, 368, 369, 370, 473, 474, 475, 476, 158, 373,
    314      9,  33,  11, 159, 374,  54, 269,  28,  27, 160,
    315    375,  34,  35,  29,  46,  32,  30,  55, 270, 37,
    316     36,  39,  38,  40, 161, 376,  41,  42,  43,  44,
    317     45,  56, 162, 271, 377, 185, 196, 174,  79,  57,
    318    411,  90, 163, 305, 389, 378, 283,  68, 187, 400,
    319    294, 198, 307,  92,  70, 186, 413, 176,  59,  91,
    320     58, 412, 380, 165,  81, 164, 272, 175,  80, 401,
    321    402, 390, 391, 197, 306,  69, 274, 273, 379, 285,
    322    296, 284, 295, 188,  60, 199,  82,  93,  71, 381,
    323    414, 177, 166, 456, 308, 403,  98,  76, 286,  61,
    324    275, 386, 135, 423, 171, 102, 392, 204,  87, 182,
    325     65,  94, 208, 124,  72, 350, 193, 313, 393, 408,
    326    445, 309, 230, 419, 297, 241, 113, 219, 189, 128,
    327    317, 415, 116, 328, 200, 339, 382, 434, 178,  64,
    328    404,  83, 437, 223, 134, 192, 444, 112, 439, 139,
    329    287, 167, 448, 212, 459, 222, 240, 233,  97, 302,
    330    397, 234, 170, 276, 181, 455, 229, 438, 101, 280,
    331    138, 127, 298, 117, 355, 203, 426,  95, 140, 244,
    332    422, 407, 213, 129, 291, 354, 105, 245, 449,  86,
    333    316, 460, 207, 353, 190, 107, 224, 427, 342, 327,
    334    106, 321, 118, 123,  73, 211, 433, 218, 396, 385,
    335    450,  62, 383, 349,  75, 461, 172, 331, 168, 246,
    336    428, 332, 312, 201, 343, 416, 279,  63, 195, 333,
    337     96, 173, 235, 288, 320, 191, 418,  84, 205, 100,
    338     67, 394, 179, 344, 206, 338, 277, 405, 388, 395,
    339    301, 315, 421, 183, 293, 322, 310, 384, 410, 194,
    340    184,  89,  99, 103, 236,  78,  88,  77, 136, 399,
    341    169, 202, 406, 125, 180, 440,  74, 387, 242, 231,
    342     66, 281, 290, 141, 314, 424, 114,  85, 130, 356,
    343    119, 299, 304, 398, 237, 409, 311, 417, 292, 457,
    344    435, 225, 214, 209, 462, 108, 282, 446, 220, 351,
    345    345, 142, 247, 329, 420, 463, 318, 300, 120, 109,
    346    289, 451, 278, 441, 340, 303, 430, 215, 323, 226,
    347    334, 131, 442, 248, 335, 357, 429, 324, 143, 346,
    348    452, 238, 110, 216, 464, 249, 121, 431, 358, 227,
    349    132, 453, 336, 425, 325, 347, 126, 104, 137, 458,
    350    352, 243, 447, 115, 341, 210, 330, 221, 232, 436,
    351    465, 319, 359, 111, 454, 228, 217, 122, 443, 348,
    352    239, 250, 133, 144, 432, 337, 326
    353 };
    354 
    355 static Word16 sort_SID[35] = {
    356     0,  1,  2,  3,  4,  5,  6,  7,  8,  9,
    357    10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
    358    20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
    359    30, 31, 32, 33, 34
    360 };
    361 
    362 /* pointer table for bit sorting tables */
    363 static Word16 *sort_ptr[16] = { sort_660, sort_885, sort_1265, sort_1425, sort_1585, sort_1825, sort_1985, sort_2305,
    364                                sort_2385, sort_SID,      NULL,      NULL,      NULL,      NULL,      NULL,      NULL};
    365 
    366 
    367 
    368 
    369