if_rom.c
上传用户:dangjiwu
上传日期:2013-07-19
资源大小:42019k
文件大小:36k
源码类别:

Symbian

开发平台:

Visual C++

  1. /*
  2.  *===================================================================
  3.  *  3GPP AMR Wideband Floating-point Speech Codec
  4.  *===================================================================
  5.  */
  6. #ifndef IF_H
  7. #define IF_H
  8. #include "typedef.h"
  9. extern const Word16 mode_7k[];
  10. extern const Word16 mode_9k[];
  11. extern const Word16 mode_12k[];
  12. extern const Word16 mode_14k[];
  13. extern const Word16 mode_16k[];
  14. extern const Word16 mode_18k[];
  15. extern const Word16 mode_20k[];
  16. extern const Word16 mode_23k[];
  17. extern const Word16 mode_24k[];
  18. extern const Word16 mode_DTX[];
  19. extern const Word16 nb_of_param[];
  20. extern const Word16 dfh_M7k[];
  21. extern const Word16 dfh_M9k[];
  22. extern const Word16 dfh_M12k[];
  23. extern const Word16 dfh_M14k[];
  24. extern const Word16 dfh_M16k[];
  25. extern const Word16 dfh_M18k[];
  26. extern const Word16 dfh_M20k[];
  27. extern const Word16 dfh_M23k[];
  28. extern const Word16 dfh_M24k[];
  29. /* overall table with the parameters of the
  30.    decoder homing frames for all modes */
  31. extern const Word16* const dhf[10];
  32. /*
  33.  * definition of constants
  34.  */
  35. #define NUM_OF_SPMODES 9
  36. /* number of parameters */
  37. #define PRMNO_7k 18
  38. #define PRMNO_9k 32
  39. #define PRMNO_12k 36
  40. #define PRMNO_14k 36
  41. #define PRMNO_16k 36
  42. #define PRMNO_18k 52
  43. #define PRMNO_20k 52
  44. #define PRMNO_23k 52
  45. #define PRMNO_24k 56
  46. #define PRMNO_SID 7
  47. #define NB_PARM_MAX PRMNO_24k
  48. /* number of bits */
  49. #ifndef NBBITS_7k
  50. #define NBBITS_7k 132
  51. #define NBBITS_9k 177
  52. #define NBBITS_12k 253
  53. #define NBBITS_14k 285
  54. #define NBBITS_16k 317
  55. #define NBBITS_18k 365
  56. #define NBBITS_20k 397
  57. #define NBBITS_23k 461
  58. #define NBBITS_24k 477
  59. #define NBBITS_SID 35
  60. #endif
  61. /* number of total bits */
  62. #define HEADER_SIZE 6   /* real size + 1 */
  63. #define T_NBBITS_7k (NBBITS_7k + HEADER_SIZE)
  64. #define T_NBBITS_9k (NBBITS_9k + HEADER_SIZE)
  65. #define T_NBBITS_12k (NBBITS_12k + HEADER_SIZE)
  66. #define T_NBBITS_14k (NBBITS_14k + HEADER_SIZE)
  67. #define T_NBBITS_16k (NBBITS_16k + HEADER_SIZE)
  68. #define T_NBBITS_18k (NBBITS_18k + HEADER_SIZE)
  69. #define T_NBBITS_20k (NBBITS_20k + HEADER_SIZE)
  70. #define T_NBBITS_23k (NBBITS_23k + HEADER_SIZE)
  71. #define T_NBBITS_24k (NBBITS_24k + HEADER_SIZE)
  72. #define T_NBBITS_SID (NBBITS_SID + HEADER_SIZE)
  73. #define TX_SPEECH 0
  74. #define TX_SID_FIRST 1
  75. #define TX_SID_UPDATE 2
  76. #define TX_NO_DATA 3
  77. #define RX_SPEECH_GOOD              0
  78. #define RX_SPEECH_PROBABLY_DEGRADED 1
  79. #define RX_SPEECH_LOST              2
  80. #define RX_SPEECH_BAD               3
  81. #define RX_SID_FIRST                4
  82. #define RX_SID_UPDATE               5
  83. #define RX_SID_BAD                  6
  84. #define RX_NO_DATA                  7
  85. /* One encoded frame (bytes) */
  86. /*
  87.  * 6 bytes are used both for mode 9 and 10.
  88.  * Mode 9 is used in encoder and mode 10 in IF2
  89.  */
  90. const UWord8 block_size[16]= {18, 23, 33, 37, 41, 47, 51, 59, 61, 6, 6, 0, 0, 0, 1, 1};
  91. /*
  92.  * tables
  93.  */
  94. const Word16 mode_7k[NBBITS_7k << 1] = {
  95.    0, 0x1, 1, 0x8, 1, 0x4, 1, 0x2,
  96.    8, 0x2, 11, 0x2, 14, 0x2, 17, 0x2,
  97.    8, 0x1, 11, 0x1, 1, 0x1, 1, 0x10,
  98.    6, 0x80, 6, 0x40, 6, 0x20, 6, 0x10,
  99.    8, 0x10, 11, 0x10, 14, 0x10, 17, 0x10,
  100.    8, 0x4, 11, 0x4, 14, 0x4, 17, 0x4,
  101.    14, 0x1, 17, 0x1, 17, 0x8, 6, 0x8,
  102.    6, 0x4, 11, 0x20, 17, 0x20, 1, 0x80,
  103.    1, 0x20, 8, 0x20, 14, 0x20, 11, 0x8,
  104.    14, 0x8, 8, 0x8, 1, 0x40, 9, 0x10,
  105.    15, 0x10, 15, 0x8, 12, 0x10, 3, 0x10,
  106.    3, 0x2, 3, 0x1, 9, 0x8, 12, 0x8,
  107.    3, 0x20, 3, 0x8, 3, 0x4, 3, 0x40,
  108.    2, 0x8, 12, 0x4, 6, 0x2, 12, 0x2,
  109.    9, 0x4, 15, 0x4, 2, 0x4, 4, 0x40,
  110.    4, 0x20, 4, 0x10, 4, 0x8, 4, 0x4,
  111.    2, 0x2, 2, 0x1, 6, 0x1, 12, 0x1,
  112.    9, 0x2, 15, 0x2, 2, 0x80, 2, 0x20,
  113.    2, 0x40, 2, 0x10, 9, 0x1, 15, 0x1,
  114.    4, 0x2, 4, 0x1, 5, 0x20, 5, 0x10,
  115.    5, 0x4, 5, 0x8, 5, 0x2, 5, 0x1,
  116.    7, 0x800, 7, 0x20, 10, 0x800, 10, 0x20,
  117.    13, 0x800, 13, 0x20, 16, 0x800, 16, 0x20,
  118.    7, 0x400, 10, 0x400, 13, 0x400, 16, 0x400,
  119.    7, 0x10, 10, 0x10, 13, 0x10, 16, 0x10,
  120.    7, 0x200, 10, 0x200, 13, 0x200, 16, 0x200,
  121.    7, 0x8, 10, 0x8, 13, 0x8, 16, 0x8,
  122.    7, 0x100, 10, 0x100, 13, 0x100, 16, 0x100,
  123.    7, 0x4, 10, 0x4, 13, 0x4, 16, 0x4,
  124.    7, 0x80, 10, 0x80, 13, 0x80, 16, 0x80,
  125.    7, 0x2, 10, 0x2, 13, 0x2, 16, 0x2,
  126.    7, 0x40, 10, 0x40, 13, 0x40, 16, 0x40,
  127.    7, 0x1, 10, 0x1, 13, 0x1, 16, 0x1
  128. };
  129. const Word16 mode_9k[NBBITS_9k << 1] = {
  130.    0, 0x1, 1, 0x10, 1, 0x4, 1, 0x2,
  131.    1, 0x8, 1, 0x20, 8, 0x80, 8, 0x40,
  132.    8, 0x20, 20, 0x80, 20, 0x40, 20, 0x20,
  133.    13, 0x20, 19, 0x20, 25, 0x20, 31, 0x20,
  134.    13, 0x1, 19, 0x1, 25, 0x1, 31, 0x1,
  135.    13, 0x8, 19, 0x8, 25, 0x8, 31, 0x8,
  136.    13, 0x4, 19, 0x4, 25, 0x4, 31, 0x4,
  137.    13, 0x2, 19, 0x2, 25, 0x2, 31, 0x2,
  138.    13, 0x10, 19, 0x10, 25, 0x10, 31, 0x10,
  139.    8, 0x10, 20, 0x10, 8, 0x8, 1, 0x40,
  140.    1, 0x80, 14, 0x10, 20, 0x8, 26, 0x10,
  141.    3, 0x8, 3, 0x2, 2, 0x10, 3, 0x20,
  142.    3, 0x10, 3, 0x4, 2, 0x1, 4, 0x10,
  143.    2, 0x8, 2, 0x40, 2, 0x4, 4, 0x20,
  144.    4, 0x40, 3, 0x1, 4, 0x8, 1, 0x1,
  145.    2, 0x2, 8, 0x4, 20, 0x4, 5, 0x20,
  146.    14, 0x8, 26, 0x8, 2, 0x80, 5, 0x8,
  147.    2, 0x20, 14, 0x4, 26, 0x4, 8, 0x2,
  148.    20, 0x2, 4, 0x2, 4, 0x4, 14, 0x2,
  149.    26, 0x2, 5, 0x4, 5, 0x2, 4, 0x1,
  150.    7, 0x1, 5, 0x10, 5, 0x40, 8, 0x1,
  151.    20, 0x1, 6, 0x10, 5, 0x1, 6, 0x4,
  152.    6, 0x8, 6, 0x2, 14, 0x1, 26, 0x1,
  153.    6, 0x1, 7, 0x10, 7, 0x8, 7, 0x4,
  154.    7, 0x2, 9, 0x10, 10, 0x10, 11, 0x10,
  155.    12, 0x10, 15, 0x10, 16, 0x10, 17, 0x10,
  156.    18, 0x10, 21, 0x10, 22, 0x10, 23, 0x10,
  157.    24, 0x10, 27, 0x10, 28, 0x10, 29, 0x10,
  158.    30, 0x10, 9, 0x8, 15, 0x8, 21, 0x8,
  159.    27, 0x8, 10, 0x8, 16, 0x8, 22, 0x8,
  160.    28, 0x8, 11, 0x8, 17, 0x8, 23, 0x8,
  161.    29, 0x8, 12, 0x8, 18, 0x8, 24, 0x8,
  162.    30, 0x8, 9, 0x4, 15, 0x4, 21, 0x4,
  163.    27, 0x4, 10, 0x4, 16, 0x4, 22, 0x4,
  164.    28, 0x4, 11, 0x4, 17, 0x4, 23, 0x4,
  165.    29, 0x4, 12, 0x4, 18, 0x4, 24, 0x4,
  166.    30, 0x4, 9, 0x2, 15, 0x2, 21, 0x2,
  167.    27, 0x2, 10, 0x2, 16, 0x2, 22, 0x2,
  168.    28, 0x2, 11, 0x2, 17, 0x2, 23, 0x2,
  169.    29, 0x2, 12, 0x2, 18, 0x2, 24, 0x2,
  170.    30, 0x2, 9, 0x1, 15, 0x1, 21, 0x1,
  171.    27, 0x1, 10, 0x1, 16, 0x1, 22, 0x1,
  172.    28, 0x1, 11, 0x1, 17, 0x1, 23, 0x1,
  173.    29, 0x1, 12, 0x1, 18, 0x1, 24, 0x1,
  174.    30, 0x1
  175. };
  176. const Word16 mode_12k[NBBITS_12k << 1] = {
  177.    0, 0x1, 1, 0x10, 1, 0x4, 14, 0x40,
  178.    21, 0x40, 28, 0x40, 35, 0x40, 1, 0x2,
  179.    1, 0x8, 1, 0x20, 8, 0x100, 8, 0x80,
  180.    8, 0x40, 8, 0x20, 8, 0x10, 22, 0x100,
  181.    22, 0x80, 22, 0x40, 22, 0x20, 22, 0x10,
  182.    14, 0x20, 21, 0x20, 28, 0x20, 35, 0x20,
  183.    14, 0x1, 21, 0x1, 28, 0x1, 35, 0x1,
  184.    14, 0x8, 21, 0x8, 28, 0x8, 35, 0x8,
  185.    14, 0x4, 21, 0x4, 28, 0x4, 35, 0x4,
  186.    15, 0x20, 29, 0x20, 14, 0x2, 21, 0x2,
  187.    28, 0x2, 35, 0x2, 14, 0x10, 21, 0x10,
  188.    28, 0x10, 35, 0x10, 8, 0x8, 1, 0x40,
  189.    1, 0x80, 15, 0x10, 29, 0x10, 22, 0x8,
  190.    3, 0x8, 3, 0x2, 2, 0x10, 3, 0x20,
  191.    3, 0x10, 3, 0x4, 2, 0x1, 4, 0x10,
  192.    2, 0x8, 2, 0x40, 2, 0x4, 4, 0x20,
  193.    4, 0x40, 3, 0x1, 4, 0x8, 1, 0x1,
  194.    2, 0x2, 8, 0x4, 22, 0x4, 5, 0x20,
  195.    15, 0x8, 29, 0x8, 2, 0x80, 5, 0x8,
  196.    2, 0x20, 15, 0x4, 29, 0x4, 8, 0x2,
  197.    22, 0x2, 4, 0x2, 4, 0x4, 15, 0x2,
  198.    29, 0x2, 5, 0x4, 5, 0x2, 4, 0x1,
  199.    7, 0x1, 5, 0x10, 5, 0x40, 8, 0x1,
  200.    22, 0x1, 6, 0x10, 5, 0x1, 6, 0x4,
  201.    6, 0x8, 6, 0x2, 15, 0x1, 29, 0x1,
  202.    6, 0x1, 7, 0x10, 7, 0x8, 7, 0x4,
  203.    7, 0x2, 9, 0x1, 16, 0x1, 23, 0x1,
  204.    30, 0x1, 10, 0x100, 11, 0x100, 12, 0x100,
  205.    13, 0x100, 17, 0x100, 18, 0x100, 19, 0x100,
  206.    20, 0x100, 24, 0x100, 25, 0x100, 26, 0x100,
  207.    27, 0x100, 31, 0x100, 32, 0x100, 33, 0x100,
  208.    34, 0x100, 10, 0x80, 17, 0x80, 24, 0x80,
  209.    31, 0x80, 10, 0x8, 17, 0x8, 24, 0x8,
  210.    31, 0x8, 11, 0x80, 18, 0x80, 25, 0x80,
  211.    32, 0x80, 11, 0x8, 18, 0x8, 25, 0x8,
  212.    32, 0x8, 12, 0x80, 19, 0x80, 26, 0x80,
  213.    33, 0x80, 12, 0x8, 19, 0x8, 26, 0x8,
  214.    33, 0x8, 13, 0x80, 20, 0x80, 27, 0x80,
  215.    34, 0x80, 13, 0x8, 20, 0x8, 27, 0x8,
  216.    34, 0x8, 10, 0x40, 17, 0x40, 24, 0x40,
  217.    31, 0x40, 10, 0x4, 17, 0x4, 24, 0x4,
  218.    31, 0x4, 11, 0x40, 18, 0x40, 25, 0x40,
  219.    32, 0x40, 11, 0x4, 18, 0x4, 25, 0x4,
  220.    32, 0x4, 12, 0x40, 19, 0x40, 26, 0x40,
  221.    33, 0x40, 12, 0x4, 19, 0x4, 26, 0x4,
  222.    33, 0x4, 13, 0x40, 20, 0x40, 27, 0x40,
  223.    34, 0x40, 13, 0x4, 20, 0x4, 27, 0x4,
  224.    34, 0x4, 10, 0x20, 17, 0x20, 24, 0x20,
  225.    31, 0x20, 10, 0x2, 17, 0x2, 24, 0x2,
  226.    31, 0x2, 11, 0x20, 18, 0x20, 25, 0x20,
  227.    32, 0x20, 11, 0x2, 18, 0x2, 25, 0x2,
  228.    32, 0x2, 12, 0x20, 19, 0x20, 26, 0x20,
  229.    33, 0x20, 12, 0x2, 19, 0x2, 26, 0x2,
  230.    33, 0x2, 13, 0x20, 20, 0x20, 27, 0x20,
  231.    34, 0x20, 13, 0x2, 20, 0x2, 27, 0x2,
  232.    34, 0x2, 10, 0x10, 17, 0x10, 24, 0x10,
  233.    31, 0x10, 10, 0x1, 17, 0x1, 24, 0x1,
  234.    31, 0x1, 11, 0x10, 18, 0x10, 25, 0x10,
  235.    32, 0x10, 11, 0x1, 18, 0x1, 25, 0x1,
  236.    32, 0x1, 12, 0x10, 19, 0x10, 26, 0x10,
  237.    33, 0x10, 12, 0x1, 19, 0x1, 26, 0x1,
  238.    33, 0x1, 13, 0x10, 20, 0x10, 27, 0x10,
  239.    34, 0x10, 13, 0x1, 20, 0x1, 27, 0x1,
  240.    34, 0x1
  241. };
  242. const Word16 mode_14k[NBBITS_14k << 1] = {
  243.    0, 0x1, 1, 0x10, 1, 0x4, 14, 0x40,
  244.    21, 0x40, 28, 0x40, 35, 0x40, 1, 0x2,
  245.    1, 0x8, 1, 0x20, 8, 0x100, 8, 0x80,
  246.    8, 0x40, 8, 0x20, 8, 0x10, 22, 0x100,
  247.    22, 0x80, 22, 0x40, 22, 0x20, 22, 0x10,
  248.    14, 0x20, 21, 0x20, 28, 0x20, 35, 0x20,
  249.    14, 0x1, 21, 0x1, 28, 0x1, 35, 0x1,
  250.    14, 0x8, 21, 0x8, 28, 0x8, 35, 0x8,
  251.    14, 0x4, 21, 0x4, 28, 0x4, 35, 0x4,
  252.    15, 0x20, 29, 0x20, 14, 0x2, 21, 0x2,
  253.    28, 0x2, 35, 0x2, 14, 0x10, 21, 0x10,
  254.    28, 0x10, 35, 0x10, 8, 0x8, 1, 0x40,
  255.    1, 0x80, 15, 0x10, 29, 0x10, 22, 0x8,
  256.    3, 0x8, 3, 0x2, 2, 0x10, 3, 0x20,
  257.    3, 0x10, 3, 0x4, 2, 0x1, 4, 0x10,
  258.    2, 0x8, 2, 0x40, 2, 0x4, 4, 0x20,
  259.    4, 0x40, 3, 0x1, 4, 0x8, 1, 0x1,
  260.    2, 0x2, 8, 0x4, 22, 0x4, 5, 0x20,
  261.    15, 0x8, 29, 0x8, 2, 0x80, 5, 0x8,
  262.    2, 0x20, 15, 0x4, 29, 0x4, 8, 0x2,
  263.    22, 0x2, 4, 0x2, 4, 0x4, 15, 0x2,
  264.    29, 0x2, 5, 0x4, 5, 0x2, 4, 0x1,
  265.    7, 0x1, 5, 0x10, 5, 0x40, 8, 0x1,
  266.    22, 0x1, 6, 0x10, 5, 0x1, 6, 0x4,
  267.    6, 0x8, 6, 0x2, 15, 0x1, 29, 0x1,
  268.    6, 0x1, 7, 0x10, 7, 0x8, 7, 0x4,
  269.    7, 0x2, 9, 0x1, 16, 0x1, 23, 0x1,
  270.    30, 0x1, 10, 0x80, 17, 0x80, 24, 0x80,
  271.    31, 0x80, 11, 0x80, 18, 0x80, 25, 0x80,
  272.    32, 0x80, 10, 0x1000, 17, 0x1000, 24, 0x1000,
  273.    31, 0x1000, 10, 0x40, 17, 0x40, 24, 0x40,
  274.    31, 0x40, 11, 0x1000, 18, 0x1000, 25, 0x1000,
  275.    32, 0x1000, 11, 0x40, 18, 0x40, 25, 0x40,
  276.    32, 0x40, 12, 0x100, 19, 0x100, 26, 0x100,
  277.    33, 0x100, 13, 0x100, 20, 0x100, 27, 0x100,
  278.    34, 0x100, 12, 0x80, 19, 0x80, 26, 0x80,
  279.    33, 0x80, 13, 0x80, 20, 0x80, 27, 0x80,
  280.    34, 0x80, 12, 0x40, 19, 0x40, 26, 0x40,
  281.    33, 0x40, 13, 0x40, 20, 0x40, 27, 0x40,
  282.    34, 0x40, 12, 0x20, 19, 0x20, 26, 0x20,
  283.    33, 0x20, 13, 0x20, 20, 0x20, 27, 0x20,
  284.    34, 0x20, 10, 0x20, 17, 0x20, 24, 0x20,
  285.    31, 0x20, 11, 0x20, 18, 0x20, 25, 0x20,
  286.    32, 0x20, 10, 0x10, 17, 0x10, 24, 0x10,
  287.    31, 0x10, 11, 0x10, 18, 0x10, 25, 0x10,
  288.    32, 0x10, 12, 0x10, 19, 0x10, 26, 0x10,
  289.    33, 0x10, 13, 0x10, 20, 0x10, 27, 0x10,
  290.    34, 0x10, 10, 0x800, 17, 0x800, 24, 0x800,
  291.    31, 0x800, 10, 0x8, 17, 0x8, 24, 0x8,
  292.    31, 0x8, 11, 0x800, 18, 0x800, 25, 0x800,
  293.    32, 0x800, 11, 0x8, 18, 0x8, 25, 0x8,
  294.    32, 0x8, 12, 0x8, 19, 0x8, 26, 0x8,
  295.    33, 0x8, 13, 0x8, 20, 0x8, 27, 0x8,
  296.    34, 0x8, 10, 0x400, 17, 0x400, 24, 0x400,
  297.    31, 0x400, 10, 0x4, 17, 0x4, 24, 0x4,
  298.    31, 0x4, 11, 0x400, 18, 0x400, 25, 0x400,
  299.    32, 0x400, 11, 0x4, 18, 0x4, 25, 0x4,
  300.    32, 0x4, 12, 0x4, 19, 0x4, 26, 0x4,
  301.    33, 0x4, 13, 0x4, 20, 0x4, 27, 0x4,
  302.    34, 0x4, 10, 0x200, 17, 0x200, 24, 0x200,
  303.    31, 0x200, 10, 0x2, 17, 0x2, 24, 0x2,
  304.    31, 0x2, 11, 0x200, 18, 0x200, 25, 0x200,
  305.    32, 0x200, 11, 0x2, 18, 0x2, 25, 0x2,
  306.    32, 0x2, 12, 0x2, 19, 0x2, 26, 0x2,
  307.    33, 0x2, 13, 0x2, 20, 0x2, 27, 0x2,
  308.    34, 0x2, 10, 0x100, 17, 0x100, 24, 0x100,
  309.    31, 0x100, 10, 0x1, 17, 0x1, 24, 0x1,
  310.    31, 0x1, 11, 0x100, 18, 0x100, 25, 0x100,
  311.    32, 0x100, 11, 0x1, 18, 0x1, 25, 0x1,
  312.    32, 0x1, 12, 0x1, 19, 0x1, 26, 0x1,
  313.    33, 0x1, 13, 0x1, 20, 0x1, 27, 0x1,
  314.    34, 0x1
  315. };
  316. const Word16 mode_16k[NBBITS_16k << 1] = {
  317.    0, 0x1, 1, 0x10, 1, 0x4, 14, 0x40,
  318.    21, 0x40, 28, 0x40, 35, 0x40, 1, 0x2,
  319.    1, 0x8, 1, 0x20, 8, 0x100, 8, 0x80,
  320.    8, 0x40, 8, 0x20, 8, 0x10, 22, 0x100,
  321.    22, 0x80, 22, 0x40, 22, 0x20, 22, 0x10,
  322.    14, 0x20, 21, 0x20, 28, 0x20, 35, 0x20,
  323.    14, 0x1, 21, 0x1, 28, 0x1, 35, 0x1,
  324.    14, 0x8, 21, 0x8, 28, 0x8, 35, 0x8,
  325.    14, 0x4, 21, 0x4, 28, 0x4, 35, 0x4,
  326.    15, 0x20, 29, 0x20, 14, 0x2, 21, 0x2,
  327.    28, 0x2, 35, 0x2, 14, 0x10, 21, 0x10,
  328.    28, 0x10, 35, 0x10, 8, 0x8, 1, 0x40,
  329.    1, 0x80, 15, 0x10, 29, 0x10, 22, 0x8,
  330.    3, 0x8, 3, 0x2, 2, 0x10, 3, 0x20,
  331.    3, 0x10, 3, 0x4, 2, 0x1, 4, 0x10,
  332.    2, 0x8, 2, 0x40, 2, 0x4, 4, 0x20,
  333.    4, 0x40, 3, 0x1, 4, 0x8, 1, 0x1,
  334.    2, 0x2, 8, 0x4, 22, 0x4, 5, 0x20,
  335.    15, 0x8, 29, 0x8, 2, 0x80, 5, 0x8,
  336.    2, 0x20, 15, 0x4, 29, 0x4, 8, 0x2,
  337.    22, 0x2, 4, 0x2, 4, 0x4, 15, 0x2,
  338.    29, 0x2, 5, 0x4, 5, 0x2, 4, 0x1,
  339.    7, 0x1, 5, 0x10, 5, 0x40, 8, 0x1,
  340.    22, 0x1, 6, 0x10, 5, 0x1, 6, 0x4,
  341.    6, 0x8, 6, 0x2, 15, 0x1, 29, 0x1,
  342.    6, 0x1, 7, 0x10, 7, 0x8, 7, 0x4,
  343.    7, 0x2, 9, 0x1, 16, 0x1, 23, 0x1,
  344.    30, 0x1, 10, 0x40, 17, 0x40, 24, 0x40,
  345.    31, 0x40, 11, 0x40, 18, 0x40, 25, 0x40,
  346.    32, 0x40, 12, 0x40, 19, 0x40, 26, 0x40,
  347.    33, 0x40, 13, 0x40, 20, 0x40, 27, 0x40,
  348.    34, 0x40, 10, 0x1000, 17, 0x1000, 24, 0x1000,
  349.    31, 0x1000, 11, 0x1000, 18, 0x1000, 25, 0x1000,
  350.    32, 0x1000, 12, 0x1000, 19, 0x1000, 26, 0x1000,
  351.    33, 0x1000, 13, 0x1000, 20, 0x1000, 27, 0x1000,
  352.    34, 0x1000, 10, 0x80, 17, 0x80, 24, 0x80,
  353.    31, 0x80, 11, 0x80, 18, 0x80, 25, 0x80,
  354.    32, 0x80, 12, 0x80, 19, 0x80, 26, 0x80,
  355.    33, 0x80, 13, 0x80, 20, 0x80, 27, 0x80,
  356.    34, 0x80, 10, 0x800, 17, 0x800, 24, 0x800,
  357.    31, 0x800, 11, 0x800, 18, 0x800, 25, 0x800,
  358.    32, 0x800, 12, 0x800, 19, 0x800, 26, 0x800,
  359.    33, 0x800, 13, 0x800, 20, 0x800, 27, 0x800,
  360.    34, 0x800, 10, 0x400, 17, 0x400, 24, 0x400,
  361.    31, 0x400, 10, 0x20, 17, 0x20, 24, 0x20,
  362.    31, 0x20, 10, 0x4, 17, 0x4, 24, 0x4,
  363.    31, 0x4, 11, 0x400, 18, 0x400, 25, 0x400,
  364.    32, 0x400, 11, 0x20, 18, 0x20, 25, 0x20,
  365.    32, 0x20, 11, 0x4, 18, 0x4, 25, 0x4,
  366.    32, 0x4, 12, 0x400, 19, 0x400, 26, 0x400,
  367.    33, 0x400, 12, 0x20, 19, 0x20, 26, 0x20,
  368.    33, 0x20, 12, 0x4, 19, 0x4, 26, 0x4,
  369.    33, 0x4, 13, 0x400, 20, 0x400, 27, 0x400,
  370.    34, 0x400, 13, 0x20, 20, 0x20, 27, 0x20,
  371.    34, 0x20, 13, 0x4, 20, 0x4, 27, 0x4,
  372.    34, 0x4, 10, 0x200, 17, 0x200, 24, 0x200,
  373.    31, 0x200, 10, 0x10, 17, 0x10, 24, 0x10,
  374.    31, 0x10, 10, 0x2, 17, 0x2, 24, 0x2,
  375.    31, 0x2, 11, 0x200, 18, 0x200, 25, 0x200,
  376.    32, 0x200, 11, 0x10, 18, 0x10, 25, 0x10,
  377.    32, 0x10, 11, 0x2, 18, 0x2, 25, 0x2,
  378.    32, 0x2, 12, 0x200, 19, 0x200, 26, 0x200,
  379.    33, 0x200, 12, 0x10, 19, 0x10, 26, 0x10,
  380.    33, 0x10, 12, 0x2, 19, 0x2, 26, 0x2,
  381.    33, 0x2, 13, 0x200, 20, 0x200, 27, 0x200,
  382.    34, 0x200, 13, 0x10, 20, 0x10, 27, 0x10,
  383.    34, 0x10, 13, 0x2, 20, 0x2, 27, 0x2,
  384.    34, 0x2, 10, 0x100, 17, 0x100, 24, 0x100,
  385.    31, 0x100, 10, 0x8, 17, 0x8, 24, 0x8,
  386.    31, 0x8, 10, 0x1, 17, 0x1, 24, 0x1,
  387.    31, 0x1, 11, 0x100, 18, 0x100, 25, 0x100,
  388.    32, 0x100, 11, 0x8, 18, 0x8, 25, 0x8,
  389.    32, 0x8, 11, 0x1, 18, 0x1, 25, 0x1,
  390.    32, 0x1, 12, 0x100, 19, 0x100, 26, 0x100,
  391.    33, 0x100, 12, 0x8, 19, 0x8, 26, 0x8,
  392.    33, 0x8, 12, 0x1, 19, 0x1, 26, 0x1,
  393.    33, 0x1, 13, 0x100, 20, 0x100, 27, 0x100,
  394.    34, 0x100, 13, 0x8, 20, 0x8, 27, 0x8,
  395.    34, 0x8, 13, 0x1, 20, 0x1, 27, 0x1,
  396.    34, 0x1
  397. };
  398. const Word16 mode_18k[NBBITS_18k << 1] = {
  399.    0, 0x1, 1, 0x10, 1, 0x4, 18, 0x40,
  400.    29, 0x40, 40, 0x40, 51, 0x40, 1, 0x2,
  401.    1, 0x8, 1, 0x20, 8, 0x100, 8, 0x80,
  402.    8, 0x40, 8, 0x20, 8, 0x10, 30, 0x100,
  403.    30, 0x80, 30, 0x40, 30, 0x20, 30, 0x10,
  404.    18, 0x20, 29, 0x20, 40, 0x20, 51, 0x20,
  405.    18, 0x1, 29, 0x1, 40, 0x1, 51, 0x1,
  406.    18, 0x8, 29, 0x8, 40, 0x8, 51, 0x8,
  407.    18, 0x4, 29, 0x4, 40, 0x4, 51, 0x4,
  408.    19, 0x20, 41, 0x20, 18, 0x2, 29, 0x2,
  409.    40, 0x2, 51, 0x2, 18, 0x10, 29, 0x10,
  410.    40, 0x10, 51, 0x10, 8, 0x8, 1, 0x40,
  411.    1, 0x80, 19, 0x10, 41, 0x10, 30, 0x8,
  412.    3, 0x8, 3, 0x2, 2, 0x10, 3, 0x20,
  413.    3, 0x10, 3, 0x4, 2, 0x1, 4, 0x10,
  414.    2, 0x8, 2, 0x40, 2, 0x4, 4, 0x20,
  415.    4, 0x40, 3, 0x1, 4, 0x8, 1, 0x1,
  416.    2, 0x2, 8, 0x4, 30, 0x4, 5, 0x20,
  417.    19, 0x8, 41, 0x8, 2, 0x80, 5, 0x8,
  418.    2, 0x20, 19, 0x4, 41, 0x4, 8, 0x2,
  419.    30, 0x2, 4, 0x2, 4, 0x4, 19, 0x2,
  420.    41, 0x2, 5, 0x4, 5, 0x2, 4, 0x1,
  421.    7, 0x1, 5, 0x10, 5, 0x40, 8, 0x1,
  422.    30, 0x1, 6, 0x10, 5, 0x1, 6, 0x4,
  423.    6, 0x8, 6, 0x2, 19, 0x1, 41, 0x1,
  424.    6, 0x1, 7, 0x10, 7, 0x8, 7, 0x4,
  425.    7, 0x2, 9, 0x1, 20, 0x1, 31, 0x1,
  426.    42, 0x1, 28, 0x1, 45, 0x1, 21, 0x1,
  427.    17, 0x1, 22, 0x1, 11, 0x1, 39, 0x1,
  428.    10, 0x1, 12, 0x1, 50, 0x1, 23, 0x2,
  429.    23, 0x1, 43, 0x1, 25, 0x1, 10, 0x2,
  430.    33, 0x1, 44, 0x1, 13, 0x2, 32, 0x1,
  431.    22, 0x2, 26, 0x1, 46, 0x2, 35, 0x2,
  432.    13, 0x1, 16, 0x1, 12, 0x2, 14, 0x1,
  433.    43, 0x2, 15, 0x1, 24, 0x1, 24, 0x2,
  434.    21, 0x2, 34, 0x1, 44, 0x2, 46, 0x1,
  435.    49, 0x1, 11, 0x2, 45, 0x2, 27, 0x1,
  436.    48, 0x1, 47, 0x1, 34, 0x2, 32, 0x2,
  437.    38, 0x1, 37, 0x1, 33, 0x2, 36, 0x1,
  438.    50, 0x20, 35, 0x1, 26, 0x2000, 15, 0x40,
  439.    27, 0x2000, 15, 0x20, 26, 0x40, 50, 0x40,
  440.    17, 0x200, 47, 0x2000, 14, 0x2000, 27, 0x40,
  441.    17, 0x20, 48, 0x40, 14, 0x40, 28, 0x40,
  442.    16, 0x20, 27, 0x20, 16, 0x2000, 14, 0x20,
  443.    28, 0x20, 25, 0x20, 49, 0x40, 47, 0x40,
  444.    25, 0x2000, 39, 0x20, 14, 0x200, 48, 0x20,
  445.    26, 0x20, 25, 0x40, 16, 0x200, 49, 0x20,
  446.    17, 0x400, 47, 0x20, 49, 0x2000, 39, 0x40,
  447.    14, 0x400, 17, 0x2000, 27, 0x200, 37, 0x40,
  448.    17, 0x40, 15, 0x2000, 17, 0x80, 28, 0x200,
  449.    37, 0x20, 38, 0x40, 27, 0x400, 14, 0x80,
  450.    28, 0x2000, 16, 0x400, 50, 0x2000, 16, 0x40,
  451.    48, 0x80, 15, 0x200, 49, 0x200, 48, 0x2000,
  452.    49, 0x400, 38, 0x2000, 26, 0x200, 50, 0x200,
  453.    25, 0x200, 15, 0x400, 39, 0x400, 36, 0x20,
  454.    38, 0x20, 47, 0x80, 50, 0x10, 50, 0x400,
  455.    26, 0x80, 36, 0x40, 47, 0x200, 48, 0x200,
  456.    28, 0x400, 39, 0x200, 25, 0x400, 27, 0x80,
  457.    39, 0x2000, 50, 0x80, 38, 0x200, 15, 0x80,
  458.    25, 0x80, 17, 0x10, 28, 0x80, 26, 0x400,
  459.    37, 0x2000, 38, 0x80, 49, 0x80, 47, 0x400,
  460.    38, 0x400, 15, 0x10, 36, 0x2000, 16, 0x80,
  461.    49, 0x10, 36, 0x80, 36, 0x200, 36, 0x400,
  462.    39, 0x80, 37, 0x200, 37, 0x400, 48, 0x400,
  463.    36, 0x10, 47, 0x10, 16, 0x10, 14, 0x10,
  464.    27, 0x10, 39, 0x10, 14, 0x1000, 28, 0x10,
  465.    25, 0x10, 48, 0x10, 27, 0x1000, 37, 0x10,
  466.    37, 0x80, 38, 0x10, 17, 0x8, 26, 0x1000,
  467.    26, 0x10, 50, 0x8, 14, 0x8, 25, 0x1000,
  468.    17, 0x1000, 47, 0x8, 16, 0x1000, 28, 0x1000,
  469.    47, 0x1000, 15, 0x1000, 36, 0x8, 15, 0x8,
  470.    28, 0x8, 17, 0x100, 49, 0x8, 27, 0x8,
  471.    50, 0x1000, 48, 0x1000, 48, 0x8, 39, 0x8,
  472.    37, 0x1000, 26, 0x8, 17, 0x4, 47, 0x4,
  473.    14, 0x100, 50, 0x4, 48, 0x4, 38, 0x1000,
  474.    28, 0x100, 27, 0x100, 39, 0x100, 16, 0x4,
  475.    16, 0x100, 25, 0x8, 16, 0x8, 15, 0x4,
  476.    14, 0x4, 39, 0x1000, 39, 0x4, 37, 0x8,
  477.    36, 0x1000, 38, 0x8, 27, 0x4, 15, 0x100,
  478.    25, 0x4, 36, 0x4, 49, 0x100, 26, 0x4,
  479.    49, 0x1000, 28, 0x4, 49, 0x4, 37, 0x4,
  480.    26, 0x100, 47, 0x100, 25, 0x100, 50, 0x100,
  481.    38, 0x4, 48, 0x100, 38, 0x100, 37, 0x100,
  482.    36, 0x100, 50, 0x2, 26, 0x800, 17, 0x2,
  483.    14, 0x800, 28, 0x800, 27, 0x800, 25, 0x800,
  484.    37, 0x800, 14, 0x2, 47, 0x800, 49, 0x800,
  485.    47, 0x2, 49, 0x2, 17, 0x800, 38, 0x800,
  486.    15, 0x800, 39, 0x2, 16, 0x2, 15, 0x2,
  487.    50, 0x800, 48, 0x800, 27, 0x2, 37, 0x2,
  488.    28, 0x2, 48, 0x2, 16, 0x800, 25, 0x2,
  489.    26, 0x2, 39, 0x800, 36, 0x800, 36, 0x2,
  490.    38, 0x2
  491. };
  492. const Word16 mode_20k[NBBITS_20k << 1] = {
  493.    0, 0x1, 1, 0x10, 1, 0x4, 18, 0x40,
  494.    29, 0x40, 40, 0x40, 51, 0x40, 1, 0x2,
  495.    1, 0x8, 1, 0x20, 8, 0x100, 8, 0x80,
  496.    8, 0x40, 8, 0x20, 8, 0x10, 30, 0x100,
  497.    30, 0x80, 30, 0x40, 30, 0x20, 30, 0x10,
  498.    18, 0x20, 29, 0x20, 40, 0x20, 51, 0x20,
  499.    18, 0x1, 29, 0x1, 40, 0x1, 51, 0x1,
  500.    18, 0x8, 29, 0x8, 40, 0x8, 51, 0x8,
  501.    18, 0x4, 29, 0x4, 40, 0x4, 51, 0x4,
  502.    19, 0x20, 41, 0x20, 18, 0x2, 29, 0x2,
  503.    40, 0x2, 51, 0x2, 18, 0x10, 29, 0x10,
  504.    40, 0x10, 51, 0x10, 8, 0x8, 1, 0x40,
  505.    1, 0x80, 19, 0x10, 41, 0x10, 30, 0x8,
  506.    3, 0x8, 3, 0x2, 2, 0x10, 3, 0x20,
  507.    3, 0x10, 3, 0x4, 2, 0x1, 4, 0x10,
  508.    2, 0x8, 2, 0x40, 2, 0x4, 4, 0x20,
  509.    4, 0x40, 3, 0x1, 4, 0x8, 1, 0x1,
  510.    2, 0x2, 8, 0x4, 30, 0x4, 5, 0x20,
  511.    19, 0x8, 41, 0x8, 2, 0x80, 5, 0x8,
  512.    2, 0x20, 19, 0x4, 41, 0x4, 8, 0x2,
  513.    30, 0x2, 4, 0x2, 4, 0x4, 19, 0x2,
  514.    41, 0x2, 5, 0x4, 5, 0x2, 4, 0x1,
  515.    7, 0x1, 5, 0x10, 5, 0x40, 8, 0x1,
  516.    30, 0x1, 6, 0x10, 5, 0x1, 6, 0x4,
  517.    6, 0x8, 6, 0x2, 19, 0x1, 41, 0x1,
  518.    6, 0x1, 7, 0x10, 7, 0x8, 7, 0x4,
  519.    7, 0x2, 9, 0x1, 20, 0x1, 31, 0x1,
  520.    42, 0x1, 10, 0x8, 11, 0x8, 15, 0x100,
  521.    46, 0x2, 14, 0x100, 43, 0x8, 21, 0x8,
  522.    48, 0x100, 22, 0x8, 44, 0x8, 24, 0x2,
  523.    45, 0x2, 26, 0x100, 23, 0x2, 35, 0x2,
  524.    12, 0x2, 25, 0x100, 36, 0x100, 22, 0x200,
  525.    47, 0x100, 10, 0x200, 33, 0x8, 32, 0x8,
  526.    13, 0x2, 34, 0x2, 24, 0x1, 11, 0x200,
  527.    13, 0x1, 28, 0x2000, 16, 0x2000, 37, 0x100,
  528.    21, 0x200, 23, 0x1, 46, 0x1, 35, 0x1,
  529.    45, 0x1, 27, 0x2000, 50, 0x2000, 43, 0x200,
  530.    12, 0x1, 44, 0x200, 49, 0x2000, 17, 0x2000,
  531.    32, 0x200, 33, 0x200, 34, 0x1, 39, 0x2000,
  532.    38, 0x2000, 10, 0x10, 10, 0x100, 22, 0x10,
  533.    11, 0x100, 15, 0x80, 26, 0x80, 43, 0x100,
  534.    21, 0x10, 25, 0x80, 22, 0x100, 11, 0x10,
  535.    50, 0x10, 44, 0x100, 44, 0x10, 47, 0x80,
  536.    16, 0x1000, 14, 0x80, 21, 0x100, 32, 0x100,
  537.    43, 0x10, 17, 0x10, 33, 0x100, 27, 0x100,
  538.    48, 0x80, 32, 0x10, 10, 0x4, 33, 0x10,
  539.    28, 0x1000, 28, 0x20, 21, 0x4, 17, 0x1000,
  540.    44, 0x4, 37, 0x80, 32, 0x4, 39, 0x10,
  541.    27, 0x1000, 27, 0x10, 39, 0x20, 15, 0x40,
  542.    27, 0x20, 36, 0x80, 17, 0x20, 49, 0x1000,
  543.    50, 0x20, 16, 0x20, 43, 0x4, 49, 0x10,
  544.    25, 0x40, 49, 0x20, 14, 0x40, 16, 0x10,
  545.    39, 0x100, 26, 0x40, 11, 0x4, 28, 0x10,
  546.    27, 0x200, 16, 0x100, 39, 0x1000, 28, 0x200,
  547.    49, 0x100, 50, 0x100, 50, 0x1000, 28, 0x100,
  548.    48, 0x40, 17, 0x40, 17, 0x200, 17, 0x100,
  549.    50, 0x40, 22, 0x4, 16, 0x200, 16, 0x40,
  550.    38, 0x1000, 50, 0x200, 39, 0x200, 38, 0x20,
  551.    38, 0x10, 47, 0x40, 28, 0x40, 37, 0x40,
  552.    33, 0x4, 49, 0x200, 50, 0x8, 39, 0x8,
  553.    39, 0x40, 36, 0x40, 17, 0x8, 49, 0x40,
  554.    27, 0x8, 15, 0x8, 27, 0x40, 38, 0x8,
  555.    28, 0x8, 38, 0x100, 38, 0x200, 26, 0x8,
  556.    49, 0x8, 14, 0x8, 22, 0x80, 38, 0x40,
  557.    10, 0x80, 47, 0x8, 43, 0x1, 26, 0x4,
  558.    11, 0x1, 16, 0x8, 44, 0x80, 28, 0x800,
  559.    47, 0x4, 11, 0x80, 15, 0x4, 21, 0x1,
  560.    21, 0x80, 27, 0x800, 10, 0x1, 43, 0x80,
  561.    44, 0x1, 25, 0x8, 48, 0x8, 33, 0x1,
  562.    27, 0x4, 25, 0x4, 36, 0x4, 36, 0x8,
  563.    17, 0x4, 32, 0x1, 27, 0x80, 14, 0x4,
  564.    50, 0x2, 17, 0x800, 15, 0x20, 50, 0x4,
  565.    16, 0x4, 48, 0x4, 38, 0x4, 33, 0x80,
  566.    16, 0x800, 37, 0x8, 39, 0x4, 25, 0x20,
  567.    22, 0x1, 32, 0x80, 37, 0x4, 17, 0x2,
  568.    49, 0x4, 26, 0x20, 39, 0x800, 14, 0x20,
  569.    50, 0x800, 39, 0x2, 17, 0x80, 16, 0x80,
  570.    49, 0x800, 47, 0x20, 48, 0x20, 28, 0x4,
  571.    38, 0x800, 28, 0x2, 10, 0x2, 50, 0x80,
  572.    38, 0x2, 28, 0x80, 16, 0x2, 25, 0x2,
  573.    15, 0x2, 39, 0x80, 49, 0x2, 49, 0x80,
  574.    27, 0x2, 36, 0x20, 26, 0x2, 44, 0x2,
  575.    44, 0x40, 22, 0x2, 37, 0x20, 36, 0x2,
  576.    33, 0x2, 32, 0x2, 11, 0x2, 47, 0x2,
  577.    21, 0x2, 10, 0x40, 14, 0x2, 43, 0x40,
  578.    22, 0x40, 37, 0x2, 48, 0x2, 43, 0x2,
  579.    11, 0x40, 38, 0x80, 25, 0x200, 21, 0x40,
  580.    48, 0x200, 14, 0x200, 15, 0x200, 50, 0x1,
  581.    37, 0x200, 33, 0x40, 26, 0x200, 32, 0x40,
  582.    27, 0x400, 36, 0x200, 28, 0x400, 47, 0x200,
  583.    17, 0x1, 17, 0x400, 39, 0x1, 16, 0x400,
  584.    50, 0x400, 26, 0x10, 16, 0x1, 49, 0x1,
  585.    27, 0x1, 15, 0x10, 39, 0x400, 25, 0x10,
  586.    28, 0x1, 49, 0x400, 38, 0x400, 14, 0x10,
  587.    38, 0x1, 47, 0x1, 47, 0x10, 48, 0x10,
  588.    36, 0x10, 26, 0x1, 25, 0x1, 37, 0x10,
  589.    14, 0x1, 15, 0x1, 21, 0x20, 43, 0x20,
  590.    37, 0x1, 48, 0x1, 11, 0x20, 44, 0x20,
  591.    10, 0x20, 36, 0x1, 22, 0x20, 33, 0x20,
  592.    32, 0x20
  593. };
  594. const Word16 mode_23k[NBBITS_23k << 1] = {
  595.    0, 0x1, 1, 0x10, 1, 0x4, 18, 0x40,
  596.    29, 0x40, 40, 0x40, 51, 0x40, 1, 0x2,
  597.    1, 0x8, 1, 0x20, 8, 0x100, 8, 0x80,
  598.    8, 0x40, 8, 0x20, 8, 0x10, 30, 0x100,
  599.    30, 0x80, 30, 0x40, 30, 0x20, 30, 0x10,
  600.    18, 0x20, 29, 0x20, 40, 0x20, 51, 0x20,
  601.    18, 0x1, 29, 0x1, 40, 0x1, 51, 0x1,
  602.    18, 0x8, 29, 0x8, 40, 0x8, 51, 0x8,
  603.    18, 0x4, 29, 0x4, 40, 0x4, 51, 0x4,
  604.    19, 0x20, 41, 0x20, 18, 0x2, 29, 0x2,
  605.    40, 0x2, 51, 0x2, 18, 0x10, 29, 0x10,
  606.    40, 0x10, 51, 0x10, 8, 0x8, 1, 0x40,
  607.    1, 0x80, 19, 0x10, 41, 0x10, 30, 0x8,
  608.    3, 0x8, 3, 0x2, 2, 0x10, 3, 0x20,
  609.    3, 0x10, 3, 0x4, 2, 0x1, 4, 0x10,
  610.    2, 0x8, 2, 0x40, 2, 0x4, 4, 0x20,
  611.    4, 0x40, 3, 0x1, 4, 0x8, 1, 0x1,
  612.    2, 0x2, 8, 0x4, 30, 0x4, 5, 0x20,
  613.    19, 0x8, 41, 0x8, 2, 0x80, 5, 0x8,
  614.    2, 0x20, 19, 0x4, 41, 0x4, 8, 0x2,
  615.    30, 0x2, 4, 0x2, 4, 0x4, 19, 0x2,
  616.    41, 0x2, 5, 0x4, 5, 0x2, 4, 0x1,
  617.    7, 0x1, 5, 0x10, 5, 0x40, 8, 0x1,
  618.    30, 0x1, 6, 0x10, 5, 0x1, 6, 0x4,
  619.    6, 0x8, 6, 0x2, 19, 0x1, 41, 0x1,
  620.    6, 0x1, 7, 0x10, 7, 0x8, 7, 0x4,
  621.    7, 0x2, 9, 0x1, 20, 0x1, 31, 0x1,
  622.    42, 0x1, 23, 0x400, 24, 0x400, 22, 0x400,
  623.    12, 0x400, 10, 0x400, 46, 0x400, 13, 0x400,
  624.    21, 0x400, 35, 0x400, 44, 0x400, 43, 0x400,
  625.    33, 0x400, 11, 0x400, 23, 0x100, 45, 0x400,
  626.    34, 0x400, 24, 0x100, 35, 0x100, 13, 0x100,
  627.    11, 0x100, 23, 0x200, 46, 0x100, 22, 0x100,
  628.    10, 0x100, 13, 0x200, 10, 0x200, 46, 0x200,
  629.    43, 0x100, 21, 0x100, 12, 0x100, 21, 0x200,
  630.    32, 0x400, 22, 0x200, 12, 0x200, 45, 0x200,
  631.    45, 0x100, 44, 0x200, 44, 0x100, 24, 0x200,
  632.    35, 0x200, 11, 0x200, 32, 0x100, 32, 0x200,
  633.    43, 0x200, 33, 0x100, 34, 0x100, 33, 0x200,
  634.    34, 0x200, 23, 0x80, 10, 0x80, 24, 0x80,
  635.    12, 0x80, 13, 0x80, 11, 0x80, 43, 0x80,
  636.    46, 0x80, 22, 0x80, 21, 0x80, 50, 0x200,
  637.    35, 0x80, 45, 0x80, 13, 0x4, 11, 0x4,
  638.    33, 0x80, 10, 0x40, 32, 0x80, 43, 0x4,
  639.    17, 0x200, 47, 0x200, 21, 0x4, 14, 0x200,
  640.    44, 0x80, 24, 0x4, 12, 0x4, 22, 0x4,
  641.    10, 0x4, 13, 0x40, 25, 0x200, 16, 0x200,
  642.    11, 0x40, 39, 0x200, 23, 0x4, 35, 0x4,
  643.    44, 0x40, 45, 0x4, 49, 0x200, 35, 0x40,
  644.    27, 0x200, 46, 0x4, 34, 0x80, 28, 0x200,
  645.    15, 0x200, 26, 0x200, 23, 0x40, 16, 0x20,
  646.    36, 0x200, 46, 0x40, 15, 0x40, 37, 0x200,
  647.    24, 0x40, 38, 0x200, 43, 0x40, 48, 0x200,
  648.    22, 0x40, 10, 0x8, 45, 0x40, 12, 0x40,
  649.    48, 0x40, 26, 0x20, 17, 0x400, 23, 0x8,
  650.    49, 0x400, 15, 0x400, 48, 0x10, 17, 0x20,
  651.    33, 0x40, 21, 0x40, 49, 0x40, 25, 0x20,
  652.    50, 0x40, 26, 0x40, 28, 0x400, 27, 0x40,
  653.    13, 0x8, 34, 0x4, 44, 0x4, 27, 0x20,
  654.    21, 0x8, 32, 0x40, 22, 0x8, 50, 0x400,
  655.    27, 0x400, 48, 0x20, 14, 0x400, 32, 0x4,
  656.    17, 0x40, 16, 0x40, 34, 0x40, 15, 0x20,
  657.    39, 0x10, 24, 0x8, 47, 0x40, 13, 0x20,
  658.    17, 0x10, 28, 0x40, 47, 0x400, 45, 0x8,
  659.    25, 0x10, 16, 0x10, 33, 0x4, 39, 0x20,
  660.    14, 0x40, 28, 0x20, 49, 0x20, 12, 0x8,
  661.    36, 0x400, 50, 0x20, 25, 0x400, 39, 0x40,
  662.    23, 0x20, 14, 0x10, 26, 0x10, 47, 0x20,
  663.    38, 0x40, 37, 0x400, 14, 0x20, 36, 0x20,
  664.    15, 0x10, 16, 0x400, 11, 0x20, 25, 0x40,
  665.    48, 0x400, 26, 0x400, 44, 0x8, 43, 0x8,
  666.    49, 0x10, 10, 0x20, 43, 0x20, 39, 0x400,
  667.    11, 0x8, 50, 0x10, 21, 0x2, 37, 0x40,
  668.    21, 0x20, 28, 0x10, 47, 0x10, 37, 0x20,
  669.    35, 0x8, 24, 0x20, 38, 0x20, 46, 0x20,
  670.    32, 0x8, 10, 0x10, 23, 0x1, 37, 0x10,
  671.    13, 0x10, 21, 0x1, 27, 0x10, 33, 0x20,
  672.    36, 0x40, 23, 0x10, 46, 0x8, 12, 0x20,
  673.    24, 0x2, 13, 0x1, 10, 0x1, 44, 0x20,
  674.    22, 0x20, 38, 0x10, 24, 0x1, 38, 0x400,
  675.    32, 0x20, 45, 0x20, 43, 0x1, 44, 0x10,
  676.    34, 0x8, 35, 0x1, 46, 0x1, 22, 0x2,
  677.    33, 0x1, 36, 0x10, 35, 0x20, 43, 0x10,
  678.    45, 0x1, 23, 0x2, 22, 0x1, 12, 0x1,
  679.    13, 0x2, 14, 0x100, 27, 0x8, 11, 0x1,
  680.    12, 0x2, 11, 0x2, 17, 0x100, 44, 0x1,
  681.    21, 0x10, 24, 0x10, 45, 0x10, 16, 0x100,
  682.    22, 0x10, 48, 0x8, 11, 0x10, 43, 0x2,
  683.    28, 0x100, 27, 0x100, 10, 0x2, 32, 0x2,
  684.    33, 0x8, 17, 0x8, 35, 0x2, 47, 0x100,
  685.    15, 0x100, 12, 0x10, 16, 0x8, 39, 0x8,
  686.    15, 0x8, 34, 0x20, 34, 0x1, 44, 0x2,
  687.    27, 0x4, 45, 0x2, 35, 0x10, 46, 0x10,
  688.    33, 0x2, 50, 0x100, 48, 0x100, 26, 0x8,
  689.    25, 0x8, 25, 0x100, 50, 0x8, 14, 0x8,
  690.    32, 0x1, 49, 0x100, 26, 0x100, 39, 0x100,
  691.    38, 0x8, 17, 0x4, 28, 0x8, 37, 0x100,
  692.    46, 0x2, 50, 0x4, 36, 0x100, 34, 0x10,
  693.    15, 0x4, 14, 0x4, 33, 0x10, 49, 0x8,
  694.    32, 0x10, 48, 0x4, 38, 0x100, 34, 0x2,
  695.    47, 0x4, 25, 0x4, 36, 0x8, 26, 0x4,
  696.    37, 0x8, 16, 0x4, 48, 0x2, 28, 0x4,
  697.    37, 0x4, 39, 0x4, 47, 0x8, 36, 0x4,
  698.    17, 0x2, 38, 0x4, 49, 0x4, 27, 0x2,
  699.    14, 0x2, 25, 0x2, 50, 0x2, 28, 0x2,
  700.    15, 0x2, 47, 0x2, 39, 0x2, 26, 0x2,
  701.    16, 0x2, 49, 0x2, 37, 0x2, 47, 0x80,
  702.    36, 0x2, 38, 0x2, 16, 0x80, 14, 0x80,
  703.    17, 0x80, 50, 0x80, 39, 0x80, 28, 0x80,
  704.    49, 0x80, 15, 0x80, 38, 0x80, 25, 0x80,
  705.    37, 0x80, 26, 0x80, 27, 0x80, 48, 0x80,
  706.    50, 0x1, 36, 0x80, 39, 0x1, 14, 0x1,
  707.    49, 0x1, 26, 0x1, 25, 0x1, 15, 0x1,
  708.    48, 0x1, 38, 0x1, 27, 0x1, 28, 0x1,
  709.    16, 0x1, 17, 0x1, 47, 0x1, 37, 0x1,
  710.    36, 0x1
  711. };
  712. const Word16 mode_24k[NBBITS_24k << 1] = {
  713.    0, 0x1, 1, 0x10, 1, 0x4, 18, 0x40,
  714.    30, 0x40, 42, 0x40, 54, 0x40, 1, 0x2,
  715.    1, 0x8, 1, 0x20, 8, 0x100, 8, 0x80,
  716.    8, 0x40, 8, 0x20, 8, 0x10, 32, 0x100,
  717.    32, 0x80, 32, 0x40, 32, 0x20, 32, 0x10,
  718.    18, 0x20, 30, 0x20, 42, 0x20, 54, 0x20,
  719.    18, 0x1, 30, 0x1, 42, 0x1, 54, 0x1,
  720.    18, 0x8, 30, 0x8, 42, 0x8, 54, 0x8,
  721.    18, 0x4, 30, 0x4, 42, 0x4, 54, 0x4,
  722.    20, 0x20, 44, 0x20, 18, 0x2, 30, 0x2,
  723.    42, 0x2, 54, 0x2, 18, 0x10, 30, 0x10,
  724.    42, 0x10, 54, 0x10, 8, 0x8, 1, 0x40,
  725.    1, 0x80, 20, 0x10, 44, 0x10, 32, 0x8,
  726.    3, 0x8, 3, 0x2, 2, 0x10, 3, 0x20,
  727.    3, 0x10, 3, 0x4, 2, 0x1, 4, 0x10,
  728.    2, 0x8, 2, 0x40, 2, 0x4, 4, 0x20,
  729.    4, 0x40, 3, 0x1, 4, 0x8, 1, 0x1,
  730.    2, 0x2, 8, 0x4, 32, 0x4, 5, 0x20,
  731.    19, 0x8, 19, 0x4, 19, 0x2, 19, 0x1,
  732.    31, 0x8, 31, 0x4, 31, 0x2, 31, 0x1,
  733.    43, 0x8, 43, 0x4, 43, 0x2, 43, 0x1,
  734.    55, 0x8, 55, 0x4, 55, 0x2, 55, 0x1,
  735.    20, 0x8, 44, 0x8, 2, 0x80, 5, 0x8,
  736.    2, 0x20, 20, 0x4, 44, 0x4, 8, 0x2,
  737.    32, 0x2, 4, 0x2, 4, 0x4, 20, 0x2,
  738.    44, 0x2, 5, 0x4, 5, 0x2, 4, 0x1,
  739.    7, 0x1, 5, 0x10, 5, 0x40, 8, 0x1,
  740.    32, 0x1, 6, 0x10, 5, 0x1, 6, 0x4,
  741.    6, 0x8, 6, 0x2, 20, 0x1, 44, 0x1,
  742.    6, 0x1, 7, 0x10, 7, 0x8, 7, 0x4,
  743.    7, 0x2, 9, 0x1, 21, 0x1, 33, 0x1,
  744.    45, 0x1, 24, 0x400, 25, 0x400, 23, 0x400,
  745.    12, 0x400, 10, 0x400, 49, 0x400, 13, 0x400,
  746.    22, 0x400, 37, 0x400, 47, 0x400, 46, 0x400,
  747.    35, 0x400, 11, 0x400, 24, 0x100, 48, 0x400,
  748.    36, 0x400, 25, 0x100, 37, 0x100, 13, 0x100,
  749.    11, 0x100, 24, 0x200, 49, 0x100, 23, 0x100,
  750.    10, 0x100, 13, 0x200, 10, 0x200, 49, 0x200,
  751.    46, 0x100, 22, 0x100, 12, 0x100, 22, 0x200,
  752.    34, 0x400, 23, 0x200, 12, 0x200, 48, 0x200,
  753.    48, 0x100, 47, 0x200, 47, 0x100, 25, 0x200,
  754.    37, 0x200, 11, 0x200, 34, 0x100, 34, 0x200,
  755.    46, 0x200, 35, 0x100, 36, 0x100, 35, 0x200,
  756.    36, 0x200, 24, 0x80, 10, 0x80, 25, 0x80,
  757.    12, 0x80, 13, 0x80, 11, 0x80, 46, 0x80,
  758.    49, 0x80, 23, 0x80, 22, 0x80, 53, 0x200,
  759.    37, 0x80, 48, 0x80, 13, 0x4, 11, 0x4,
  760.    35, 0x80, 10, 0x40, 34, 0x80, 46, 0x4,
  761.    17, 0x200, 50, 0x200, 22, 0x4, 14, 0x200,
  762.    47, 0x80, 25, 0x4, 12, 0x4, 23, 0x4,
  763.    10, 0x4, 13, 0x40, 26, 0x200, 16, 0x200,
  764.    11, 0x40, 41, 0x200, 24, 0x4, 37, 0x4,
  765.    47, 0x40, 48, 0x4, 52, 0x200, 37, 0x40,
  766.    28, 0x200, 49, 0x4, 36, 0x80, 29, 0x200,
  767.    15, 0x200, 27, 0x200, 24, 0x40, 16, 0x20,
  768.    38, 0x200, 49, 0x40, 15, 0x40, 39, 0x200,
  769.    25, 0x40, 40, 0x200, 46, 0x40, 51, 0x200,
  770.    23, 0x40, 10, 0x8, 48, 0x40, 12, 0x40,
  771.    51, 0x40, 27, 0x20, 17, 0x400, 24, 0x8,
  772.    52, 0x400, 15, 0x400, 51, 0x10, 17, 0x20,
  773.    35, 0x40, 22, 0x40, 52, 0x40, 26, 0x20,
  774.    53, 0x40, 27, 0x40, 29, 0x400, 28, 0x40,
  775.    13, 0x8, 36, 0x4, 47, 0x4, 28, 0x20,
  776.    22, 0x8, 34, 0x40, 23, 0x8, 53, 0x400,
  777.    28, 0x400, 51, 0x20, 14, 0x400, 34, 0x4,
  778.    17, 0x40, 16, 0x40, 36, 0x40, 15, 0x20,
  779.    41, 0x10, 25, 0x8, 50, 0x40, 13, 0x20,
  780.    17, 0x10, 29, 0x40, 50, 0x400, 48, 0x8,
  781.    26, 0x10, 16, 0x10, 35, 0x4, 41, 0x20,
  782.    14, 0x40, 29, 0x20, 52, 0x20, 12, 0x8,
  783.    38, 0x400, 53, 0x20, 26, 0x400, 41, 0x40,
  784.    24, 0x20, 14, 0x10, 27, 0x10, 50, 0x20,
  785.    40, 0x40, 39, 0x400, 14, 0x20, 38, 0x20,
  786.    15, 0x10, 16, 0x400, 11, 0x20, 26, 0x40,
  787.    51, 0x400, 27, 0x400, 47, 0x8, 46, 0x8,
  788.    52, 0x10, 10, 0x20, 46, 0x20, 41, 0x400,
  789.    11, 0x8, 53, 0x10, 22, 0x2, 39, 0x40,
  790.    22, 0x20, 29, 0x10, 50, 0x10, 39, 0x20,
  791.    37, 0x8, 25, 0x20, 40, 0x20, 49, 0x20,
  792.    34, 0x8, 10, 0x10, 24, 0x1, 39, 0x10,
  793.    13, 0x10, 22, 0x1, 28, 0x10, 35, 0x20,
  794.    38, 0x40, 24, 0x10, 49, 0x8, 12, 0x20,
  795.    25, 0x2, 13, 0x1, 10, 0x1, 47, 0x20,
  796.    23, 0x20, 40, 0x10, 25, 0x1, 40, 0x400,
  797.    34, 0x20, 48, 0x20, 46, 0x1, 47, 0x10,
  798.    36, 0x8, 37, 0x1, 49, 0x1, 23, 0x2,
  799.    35, 0x1, 38, 0x10, 37, 0x20, 46, 0x10,
  800.    48, 0x1, 24, 0x2, 23, 0x1, 12, 0x1,
  801.    13, 0x2, 14, 0x100, 28, 0x8, 11, 0x1,
  802.    12, 0x2, 11, 0x2, 17, 0x100, 47, 0x1,
  803.    22, 0x10, 25, 0x10, 48, 0x10, 16, 0x100,
  804.    23, 0x10, 51, 0x8, 11, 0x10, 46, 0x2,
  805.    29, 0x100, 28, 0x100, 10, 0x2, 34, 0x2,
  806.    35, 0x8, 17, 0x8, 37, 0x2, 50, 0x100,
  807.    15, 0x100, 12, 0x10, 16, 0x8, 41, 0x8,
  808.    15, 0x8, 36, 0x20, 36, 0x1, 47, 0x2,
  809.    28, 0x4, 48, 0x2, 37, 0x10, 49, 0x10,
  810.    35, 0x2, 53, 0x100, 51, 0x100, 27, 0x8,
  811.    26, 0x8, 26, 0x100, 53, 0x8, 14, 0x8,
  812.    34, 0x1, 52, 0x100, 27, 0x100, 41, 0x100,
  813.    40, 0x8, 17, 0x4, 29, 0x8, 39, 0x100,
  814.    49, 0x2, 53, 0x4, 38, 0x100, 36, 0x10,
  815.    15, 0x4, 14, 0x4, 35, 0x10, 52, 0x8,
  816.    34, 0x10, 51, 0x4, 40, 0x100, 36, 0x2,
  817.    50, 0x4, 26, 0x4, 38, 0x8, 27, 0x4,
  818.    39, 0x8, 16, 0x4, 51, 0x2, 29, 0x4,
  819.    39, 0x4, 41, 0x4, 50, 0x8, 38, 0x4,
  820.    17, 0x2, 40, 0x4, 52, 0x4, 28, 0x2,
  821.    14, 0x2, 26, 0x2, 53, 0x2, 29, 0x2,
  822.    15, 0x2, 50, 0x2, 41, 0x2, 27, 0x2,
  823.    16, 0x2, 52, 0x2, 39, 0x2, 50, 0x80,
  824.    38, 0x2, 40, 0x2, 16, 0x80, 14, 0x80,
  825.    17, 0x80, 53, 0x80, 41, 0x80, 29, 0x80,
  826.    52, 0x80, 15, 0x80, 40, 0x80, 26, 0x80,
  827.    39, 0x80, 27, 0x80, 28, 0x80, 51, 0x80,
  828.    53, 0x1, 38, 0x80, 41, 0x1, 14, 0x1,
  829.    52, 0x1, 27, 0x1, 26, 0x1, 15, 0x1,
  830.    51, 0x1, 40, 0x1, 28, 0x1, 29, 0x1,
  831.    16, 0x1, 17, 0x1, 50, 0x1, 39, 0x1,
  832.    38, 0x1
  833. };
  834. const Word16 mode_DTX[NBBITS_SID << 1] = {
  835.    0, 0x20, 0, 0x10, 0, 0x8, 0, 0x4,
  836.    0, 0x2, 0, 0x1, 1, 0x20, 1, 0x10,
  837.    1, 0x8, 1, 0x4, 1, 0x2, 1, 0x1,
  838.    2, 0x20, 2, 0x10, 2, 0x8, 2, 0x4,
  839.    2, 0x2, 2, 0x1, 3, 0x10, 3, 0x8,
  840.    3, 0x4, 3, 0x2, 3, 0x1, 4, 0x10,
  841.    4, 0x8, 4, 0x4, 4, 0x2, 4, 0x1,
  842.    5, 0x20, 5, 0x10, 5, 0x8, 5, 0x4,
  843.    5, 0x2, 5, 0x1, 6, 0x1
  844. };
  845. const Word16 nb_of_param[NUM_OF_SPMODES]= {
  846.    PRMNO_7k, PRMNO_9k, PRMNO_12k,
  847.    PRMNO_14k, PRMNO_16k, PRMNO_18k,
  848.    PRMNO_20k, PRMNO_23k, PRMNO_24k
  849. };
  850. const Word16 dfh_M7k[PRMNO_7k] = {
  851.    0, 49, 131,
  852.    84, 5, 50,
  853.    29, 2015, 8,
  854.    0, 2061, 8,
  855.    1, 3560, 8,
  856.    0, 2981, 8
  857. };
  858. const Word16 dfh_M9k[PRMNO_9k] = {
  859.    0, 49, 131,
  860.    55, 49, 38,
  861.    26, 29, 29,
  862.    3, 15, 7,
  863.    15, 8, 16,
  864.    13, 7, 17,
  865.    16, 8, 0,
  866.    16, 20, 16,
  867.    27, 8, 23,
  868.    0, 27, 0,
  869.    27, 8
  870. };
  871. const Word16 dfh_M12k[PRMNO_12k] = {
  872.    0, 49, 131,
  873.    55, 49, 38,
  874.    26, 29, 58,
  875.    1, 7, 63,
  876.    127, 15, 70,
  877.    37, 1, 209,
  878.    210, 224, 96,
  879.    31, 7, 1,
  880.    256, 260, 271,
  881.    443, 31, 47,
  882.    0, 400, 238,
  883.    436, 347, 31
  884. };
  885. const Word16 dfh_M14k[PRMNO_14k] = {
  886.    0, 49, 131,
  887.    55, 49, 38,
  888.    26, 29, 58,
  889.    1, 3847, 3845,
  890.    63, 127, 70,
  891.    34, 0, 3128,
  892.    4517, 192, 96,
  893.    0, 2, 1,
  894.    4160, 8036, 267,
  895.    443, 31, 46,
  896.    0, 3840, 7091,
  897.    432, 395, 31
  898. };
  899. const Word16 dfh_M16k[PRMNO_16k] = {
  900.    0, 49, 131,
  901.    55, 49, 38,
  902.    26, 29, 58,
  903.    1, 3847, 3845,
  904.    3847, 3843, 70,
  905.    31, 0, 3648,
  906.    4764, 824, 2864,
  907.    0, 6, 1,
  908.    4160, 5220, 4319,
  909.    7131, 31, 47,
  910.    0, 112, 3764,
  911.    219, 211, 31
  912. };
  913. const Word16 dfh_M18k[PRMNO_18k] = {
  914.    0, 49, 131,
  915.    55, 49, 38,
  916.    26, 29, 58,
  917.    1, 3, 2,
  918.    3, 2, 7223,
  919.    703, 7223, 703,
  920.    70, 0, 1,
  921.    3, 2, 2,
  922.    3, 9475, 9483,
  923.    3090, 8737, 0,
  924.    0, 1, 0,
  925.    0, 2, 0,
  926.    4112, 4400, 8415,
  927.    14047, 31, 38,
  928.    0, 2, 1,
  929.    3, 1, 91,
  930.    426, 13545, 12955,
  931.    0
  932. };
  933. const Word16 dfh_M20k[PRMNO_20k] = {
  934.    0, 49, 131,
  935.    55, 49, 38,
  936.    26, 29, 58,
  937.    1, 161, 759,
  938.    3, 2, 127,
  939.    516, 6167, 447,
  940.    70, 11, 1,
  941.    264, 641, 2,
  942.    3, 123, 562,
  943.    8347, 4354, 0,
  944.    1, 1, 264,
  945.    408, 3, 0,
  946.    256, 308, 9487,
  947.    14047, 31, 46,
  948.    0, 320, 885,
  949.    2, 2, 464,
  950.    439, 11347, 12739,
  951.    0
  952. };
  953. const Word16 dfh_M23k[PRMNO_23k] = {
  954.    0, 49, 131,
  955.    55, 49, 38,
  956.    26, 29, 58,
  957.    1, 1154, 1729,
  958.    1154, 1761, 447,
  959.    1519, 959, 495,
  960.    70, 27, 1,
  961.    1800, 1253, 665,
  962.    1960, 546, 164,
  963.    1043, 335, 0,
  964.    28, 1, 580,
  965.    196, 1187, 383,
  966.    1031, 1052, 359,
  967.    1531, 31, 45,
  968.    1, 1024, 893,
  969.    1272, 1920, 101,
  970.    876, 203, 1119,
  971.    31
  972. };
  973. const Word16 dfh_M24k[PRMNO_24k] = {
  974.    0, 49, 131,
  975.    55, 49, 38,
  976.    26, 29, 58,
  977.    1, 1729, 1154,
  978.    1761, 1154, 1519,
  979.    959, 495, 447,
  980.    70, 3, 42,
  981.    1, 580, 1436,
  982.    1362, 1250, 901,
  983.    714, 24, 45,
  984.    0, 0, 0,
  985.    1, 68, 708,
  986.    1212, 383, 1048,
  987.    1611, 1756, 1467,
  988.    31, 1, 23,
  989.    0, 1536, 1460,
  990.    861, 1554, 410,
  991.    1368, 1008, 594,
  992.    31, 0
  993. };
  994. /*
  995.  * overall table with the parameters of the
  996.  * decoder homing frames for all modes
  997.  */
  998. const Word16* const dhf[10] = {
  999.    dfh_M7k,
  1000.    dfh_M9k,
  1001.    dfh_M12k,
  1002.    dfh_M14k,
  1003.    dfh_M16k,
  1004.    dfh_M18k,
  1005.    dfh_M20k,
  1006.    dfh_M23k,
  1007.    dfh_M24k,
  1008.    dfh_M24k
  1009. };
  1010. #endif