view amrconv/amr_bits.c @ 214:934cf92a1c45

amrconv: new program amr-ietf-parse
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 20 Apr 2023 22:48:22 +0000
parents
children
line wrap: on
line source

/*
 * This C module is a complement to amr122bits.c, for programs that
 * need to work with all AMR modes and not just MR122.
 */

#include <stdint.h>

const uint8_t amr_475_bit_order[95] = {
    0,  1,  2,  3,  4,  5,  6,  7,  8,  9,
   10, 11, 12, 13, 14, 15, 23, 24, 25, 26,
   27, 28, 48, 49, 61, 62, 82, 83, 47, 46,
   45, 44, 81, 80, 79, 78, 17, 18, 20, 22,
   77, 76, 75, 74, 29, 30, 43, 42, 41, 40,
   38, 39, 16, 19, 21, 50, 51, 59, 60, 63,
   64, 72, 73, 84, 85, 93, 94, 32, 33, 35,
   36, 53, 54, 56, 57, 66, 67, 69, 70, 87,
   88, 90, 91, 34, 55, 68, 89, 37, 58, 71,
   92, 31, 52, 65, 86
};

const uint8_t amr_515_bit_order[103] = {
    7,  6,  5,   4,   3,   2,  1,  0, 15, 14,
   13, 12, 11,  10,   9,   8, 23, 24, 25, 26,
   27, 46, 65,  84,  45,  44, 43, 64, 63, 62,
   83, 82, 81, 102, 101, 100, 42, 61, 80, 99,
   28, 47, 66,  85,  18,  41, 60, 79, 98, 29,
   48, 67, 17,  20,  22,  40, 59, 78, 97, 21,
   30, 49, 68,  86,  19,  16, 87, 39, 38, 58,
   57, 77, 35,  54,  73,  92, 76, 96, 95, 36,
   55, 74, 93,  32,  51,  33, 52, 70, 71, 89,
   90, 31, 50,  69,  88,  37, 56, 75, 94, 34,
   53, 72, 91							
};

const uint8_t amr_59_bit_order[118] = {
    0,   1,   4,   5,   3,   6,   7,   2,  13,  15,
    8,   9,  11,  12,  14,  10,  16,  28,  74,  29,
   75,  27,  73,  26,  72,  30,  76,  51,  97,  50,
   71,  96, 117,  31,  77,  52,  98,  49,  70,  95,
  116,  53,  99,  32,  78,  33,  79,  48,  69,  94,
  115,  47,  68,  93, 114,  46,  67,  92, 113,  19,
   21,  23,  22,  18,  17,  20,  24, 111,  43,  89,
  110,  64,  65,  44,  90,  25,  45,  66,  91, 112,
   54, 100,  40,  61,  86, 107,  39,  60,  85, 106,
   36,  57,  82, 103,  35,  56,  81, 102,  34,  55,
   80, 101,  42,  63,  88, 109,  41,  62,  87, 108,
   38,  59,  84, 105,  37,  58,  83, 104
};

const uint8_t amr_67_bit_order[134] = {
    0,   1,   4,   3,   5,   6,  13,   7,   2,   8,
    9,  11,  15,  12,  14,  10,  28,  82,  29,  83,
   27,  81,  26,  80,  30,  84,  16,  55, 109,  56,
  110,  31,  85,  57, 111,  48,  73, 102, 127,  32,
   86,  51,  76, 105, 130,  52,  77, 106, 131,  58,
  112,  33,  87,  19,  23,  53,  78, 107, 132,  21,
   22,  18,  17,  20,  24,  25,  50,  75, 104, 129,
   47,  72, 101, 126,  54,  79, 108, 133,  46,  71,
  100, 125, 128, 103,  74,  49,  45,  70,  99, 124,
   42,  67,  96, 121,  39,  64,  93, 118,  38,  63,
   92, 117,  35,  60,  89, 114,  34,  59,  88, 113,
   44,  69,  98, 123,  43,  68,  97, 122,  41,  66,
   95, 120,  40,  65,  94, 119,  37,  62,  91, 116,
   36,  61,  90, 115						
};

const uint8_t amr_74_bit_order[148] = {
    0,   1,	  2,   3,   4,   5,   6,   7,   8,   9,
   10,  11,	 12,  13,  14,  15,  16,  26,  87,  27,
   88,  28,	 89,  29,  90,  30,  91,  51,  80, 112,
  141,  52,  81, 113, 142,  54,  83, 115, 144,  55,
   84, 116, 145,  58, 119,  59, 120,  21,  22,  23,
   17,  18,	 19,  31,  60,  92, 121,  56,  85, 117,
  146,  20,	 24,  25,  50,  79, 111, 140,  57,  86,
  118, 147,	 49,  78, 110, 139,  48,  77,  53,  82,
  114, 143, 109, 138,  47,  76, 108, 137,  32,  33,
   61,  62,	 93,  94, 122, 123,  41,  42,  43,  44,
   45,  46,	 70,  71,  72,  73,  74,  75, 102, 103,
  104, 105, 106, 107, 131, 132, 133, 134, 135, 136,
   34,  63,	 95, 124,  35,  64,  96, 125,  36,  65,
   97, 126,	 37,  66,  98, 127,	 38,  67,  99, 128,
   39,  68, 100, 129,  40,  69, 101, 130
};

const uint8_t amr_795_bit_order[159] = {
    8,   7,   6,   5,   4,   3,   2,  14,  16,   9,
   10,  12,  13,  15,  11,  17,  20,  22,  24,  23,
   19,  18,  21,  56,  88, 122, 154,  57,  89, 123,
  155,  58,  90, 124, 156,  52,  84, 118, 150,  53,
   85, 119, 151,  27,  93,  28,  94,  29,  95,  30,
   96,  31,  97,  61, 127,  62, 128,  63, 129,  59,
   91, 125, 157,  32,  98,  64, 130,   1,   0,  25,
   26,  33,  99,  34, 100,  65, 131,  66, 132,  54,
   86, 120, 152,  60,  92, 126, 158,  55,  87, 121,
  153, 117, 116, 115,  46,  78, 112, 144,  43,  75,
  109, 141,  40,  72, 106, 138,  36,  68, 102, 134,
  114, 149, 148, 147, 146,  83,  82,  81,  80,  51,
   50,  49,  48,  47,  45,  44,  42,  39,  35,  79,
   77,  76,  74,  71,  67, 113, 111, 110, 108, 105,
  101, 145, 143, 142, 140, 137, 133,  41,  73, 107,
  139,  37,  69, 103, 135,  38,  70, 104, 136
};

const uint8_t amr_102_bit_order[204] = {
    7,   6,   5,   4,   3,   2,   1,   0,  16,  15,
   14,  13,  12,  11,  10,   9,   8,  26,  27,  28,
   29,  30,  31, 115, 116, 117, 118, 119, 120,  72,
   73, 161, 162,  65,  68,  69, 108, 111, 112, 154,
  157, 158, 197, 200, 201,  32,  33, 121, 122,  74,
   75, 163, 164,  66, 109, 155, 198,  19,  23,  21,
   22,  18,  17,  20,  24,  25,  37,  36,  35,  34,
   80,  79,  78,  77, 126, 125, 124, 123, 169, 168,
  167, 166,  70,  67,  71, 113, 110, 114, 159, 156,
  160, 202, 199, 203,  76, 165,  81,  82,  92,  91,
   93,  83,  95,  85,  84,  94, 101, 102,  96, 104,
   86, 103,  87,  97, 127, 128, 138, 137, 139, 129,
  141, 131, 130, 140, 147, 148, 142, 150, 132, 149,
  133, 143, 170, 171, 181, 180, 182, 172, 184, 174,
  173, 183, 190, 191, 185, 193, 175, 192, 176, 186,
   38,  39,  49,  48,  50,  40,  52,  42,  41,  51,
   58,  59,  53,  61,  43,  60,  44,  54, 194, 179,
  189, 196, 177, 195, 178, 187, 188, 151, 136, 146,
  153, 134, 152, 135, 144, 145, 105,  90, 100, 107,
   88, 106,  89,  98,  99,  62,  47,  57,  64,  45,
   63,  46,  55,  56					
};