/*
 * Block Gilbert-Moore decoder
 * Copyright (c) 2010 Thilo Borgmann <thilo.borgmann _at_ googlemail.com>
 *
 * This file is part of FFmpeg.
 *
 * FFmpeg is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * FFmpeg is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with FFmpeg; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 */

/**
 * @file
 * Block Gilbert-Moore decoder as used by MPEG-4 ALS
 * @author Thilo Borgmann <thilo.borgmann _at_ googlemail.com>
 */


#include "bgmc.h"


#define FREQ_BITS  14                      // bits used by frequency counters
#define VALUE_BITS 18                      // bits used to represent the values
#define TOP_VALUE  ((1 << VALUE_BITS) - 1) // maximum value
#define FIRST_QTR  (TOP_VALUE / 4 + 1)     // first quarter of values maximum value
#define HALF       (2 * FIRST_QTR)         // first half of values maximum value
#define THIRD_QTR  (3 * FIRST_QTR)         // third quarter of values maximum value

#define LUT_BITS   (FREQ_BITS - 8)         // number of bits used to index lookup tables
#define LUT_SIZE   (1 << LUT_BITS)         // size of the lookup tables
#define LUT_BUFF   4                       // number of buffered lookup tables


/** Cumulative frequency tables for block Gilbert-Moore coding.
 */
static const uint16_t cf_tables_1[3][129] = {
    {
    16384, 16066, 15748, 15431, 15114, 14799, 14485, 14173, 13861, 13552,
    13243, 12939, 12635, 12336, 12038, 11745, 11452, 11161, 10870, 10586,
    10303, 10027,  9751,  9483,  9215,  8953,  8692,  8440,  8189,  7946,
     7704,  7472,  7240,  7008,  6776,  6554,  6333,  6122,  5912,  5711,
     5512,  5320,  5128,  4947,  4766,  4595,  4425,  4264,  4104,  3946,
     3788,  3640,  3493,  3355,  3218,  3090,  2963,  2842,  2721,  2609,
     2498,  2395,  2292,  2196,  2100,  2004,  1908,  1820,  1732,  1651,
     1570,  1497,  1424,  1355,  1287,  1223,  1161,  1100,  1044,   988,
      938,   888,   839,   790,   746,   702,   662,   623,   588,   553,
      520,   488,   459,   431,   405,   380,   357,   334,   311,   288,
      268,   248,   230,   213,   197,   182,   168,   154,   142,   130,
      119,   108,    99,    90,    81,    72,    64,    56,    49,    42,
       36,    30,    25,    20,    15,    11,     7,     3,     0
   },
   {
    16384, 16080, 15776, 15473, 15170, 14868, 14567, 14268, 13970, 13674,
    13378, 13086, 12794, 12505, 12218, 11936, 11654, 11373, 11092, 10818,
    10544, 10276, 10008,  9749,  9490,  9236,  8982,  8737,  8492,  8256,
     8020,  7792,  7564,  7336,  7108,  6888,  6669,  6459,  6249,  6050,
     5852,  5660,  5468,  5286,  5104,  4931,  4760,  4598,  4436,  4275,
     4115,  3965,  3816,  3674,  3534,  3403,  3272,  3147,  3023,  2907,
     2792,  2684,  2577,  2476,  2375,  2274,  2173,  2079,  1986,  1897,
     1810,  1724,  1645,  1567,  1493,  1419,  1351,  1284,  1222,  1161,
     1105,  1050,   995,   941,   891,   842,   797,   753,   713,   673,
      636,   599,   566,   533,   503,   473,   446,   419,   392,   365,
      340,   316,   294,   272,   253,   234,   216,   199,   184,   169,
      155,   142,   130,   118,   106,    95,    85,    75,    66,    57,
       49,    41,    34,    27,    21,    15,    10,     5,     0
   },
   {
    16384, 16092, 15801, 15510, 15219, 14930, 14641, 14355, 14069, 13785,
    13501, 13219, 12938, 12661, 12384, 12112, 11841, 11571, 11301, 11037,
    10773, 10514, 10256, 10005,  9754,  9508,  9263,  9025,  8787,  8557,
     8327,  8103,  7879,  7655,  7431,  7215,  7000,  6792,  6585,  6387,
     6190,  5998,  5807,  5625,  5445,  5272,  5100,  4937,  4774,  4613,
     4452,  4301,  4150,  4007,  3865,  3731,  3597,  3469,  3341,  3218,
     3099,  2981,  2869,  2758,  2652,  2546,  2440,  2334,  2234,  2134,
     2041,  1949,  1864,  1779,  1699,  1620,  1547,  1474,  1407,  1340,
     1278,  1217,  1157,  1097,  1043,   989,   940,   891,   846,   801,
      759,   718,   680,   643,   609,   575,   543,   511,   479,   447,
      418,   389,   363,   337,   314,   291,   270,   249,   230,   212,
      195,   179,   164,   149,   135,   121,   108,    96,    85,    74,
       64,    54,    45,    36,    28,    20,    13,     6,     0
   }
};


static const uint16_t cf_tables_2[8][193] = {
    {
    16384, 16104, 15825, 15546, 15268, 14991, 14714, 14439, 14164, 13891,
    13620, 13350, 13081, 12815, 12549, 12287, 12025, 11765, 11505, 11250,
    10996, 10746, 10497, 10254, 10011,  9772,  9534,  9303,  9072,  8848,
     8624,  8406,  8188,  7970,  7752,  7539,  7327,  7123,  6919,  6724,
     6529,  6339,  6150,  5970,  5790,  5618,  5446,  5282,  5119,  4957,
     4795,  4642,  4490,  4345,  4201,  4065,  3929,  3798,  3669,  3547,
     3425,  3310,  3196,  3086,  2976,  2866,  2756,  2650,  2545,  2447,
     2350,  2260,  2170,  2085,  2000,  1921,  1843,  1770,  1698,  1632,
     1566,  1501,  1436,  1376,  1316,  1261,  1207,  1157,  1108,  1061,
     1015,   973,   931,   893,   855,   819,   783,   747,   711,   677,
      644,   614,   584,   557,   530,   505,   480,   458,   436,   416,
      396,   378,   360,   343,   326,   310,   295,   281,   267,   255,
      243,   232,   221,   211,   201,   192,   183,   174,   166,   158,
      150,   142,   134,   126,   119,   112,   106,   100,    95,    90,
       85,    80,    76,    72,    69,    66,    63,    60,    57,    54,
       51,    48,    46,    44,    42,    40,    38,    36,    34,    33,
       32,    31,    30,    29,    28,    27,    26,    25,    24,    23,
       22,    21,    20,    19,    18,    17,    16,    15,    14,    13,
       12,    11,    10,     9,     8,     7,     6,     5,     4,     3,
        2,     1,     0
    },
    {
    16384, 16116, 15849, 15582, 15316, 15050, 14785, 14521, 14257, 13995,
    13734, 13476, 13218, 12963, 12708, 12457, 12206, 11956, 11706, 11460,
    11215, 10975, 10735, 10500, 10265, 10034,  9803,  9579,  9355,  9136,
     8917,  8703,  8489,  8275,  8061,  7853,  7645,  7444,  7244,  7051,
     6858,  6671,  6484,  6305,  6127,  5956,  5785,  5622,  5459,  5298,
     5137,  4983,  4830,  4684,  4539,  4401,  4263,  4131,  3999,  3874,
     3750,  3632,  3515,  3401,  3287,  3173,  3059,  2949,  2840,  2737,
     2635,  2539,  2444,  2354,  2264,  2181,  2098,  2020,  1943,  1872,
     1801,  1731,  1661,  1596,  1532,  1472,  1412,  1357,  1303,  1251,
     1200,  1153,  1106,  1063,  1020,   979,   938,   897,   856,   818,
      780,   746,   712,   681,   650,   621,   592,   566,   540,   517,
      494,   473,   452,   431,   410,   391,   373,   356,   340,   325,
      310,   296,   282,   270,   258,   247,   236,   225,   214,   203,
      192,   182,   172,   162,   153,   144,   136,   128,   121,   114,
      108,   102,    97,    92,    87,    82,    77,    73,    69,    65,
       62,    59,    56,    53,    50,    47,    45,    43,    41,    39,
       37,    35,    33,    31,    29,    27,    26,    25,    24,    23,
       22,    21,    20,    19,    18,    17,    16,    15,    14,    13,
       12,    11,    10,     9,     8,     7,     6,     5,     4,     3,
        2,     1,     0
    },
    {
    16384, 16128, 15872, 15617, 15362, 15107, 14853, 14600, 14347, 14096,
    13846, 13597, 13350, 13105, 12860, 12618, 12376, 12135, 11894, 11657,
    11421, 11189, 10957, 10730, 10503, 10279, 10056,  9838,  9620,  9407,
     9195,  8987,  8779,  8571,  8363,  8159,  7955,  7758,  7561,  7371,
     7182,  6997,  6812,  6635,  6459,  6289,  6120,  5957,  5795,  5634,
     5473,  5319,  5165,  5018,  4871,  4732,  4593,  4458,  4324,  4197,
     4071,  3951,  3831,  3714,  3597,  3480,  3363,  3250,  3138,  3032,
     2927,  2828,  2729,  2635,  2541,  2453,  2366,  2284,  2202,  2126,
     2050,  1975,  1900,  1830,  1761,  1697,  1633,  1574,  1515,  1459,
     1403,  1351,  1300,  1252,  1205,  1160,  1115,  1070,  1025,   982,
      939,   899,   860,   824,   789,   756,   723,   693,   663,   636,
      609,   584,   559,   535,   511,   489,   467,   447,   427,   409,
      391,   374,   358,   343,   328,   313,   300,   287,   274,   261,
      248,   235,   223,   211,   200,   189,   179,   169,   160,   151,
      143,   135,   128,   121,   115,   109,   103,    97,    92,    87,
       82,    77,    73,    69,    65,    61,    58,    55,    52,    49,
       46,    43,    40,    37,    35,    33,    31,    29,    27,    25,
       23,    21,    20,    19,    18,    17,    16,    15,    14,    13,
       12,    11,    10,     9,     8,     7,     6,     5,     4,     3,
        2,     1,     0
    },
    {
    16384, 16139, 15894, 15649, 15405, 15162, 14919, 14677, 14435, 14195,
    13955, 13717, 13479, 13243, 13008, 12775, 12542, 12310, 12079, 11851,
    11623, 11399, 11176, 10956, 10737, 10521, 10305, 10094,  9883,  9677,
     9471,  9268,  9065,  8862,  8659,  8459,  8260,  8067,  7874,  7688,
     7502,  7321,  7140,  6965,  6790,  6621,  6452,  6290,  6128,  5968,
     5808,  5655,  5503,  5356,  5209,  5069,  4929,  4794,  4660,  4532,
     4404,  4282,  4160,  4041,  3922,  3803,  3684,  3568,  3452,  3343,
     3234,  3131,  3029,  2931,  2833,  2741,  2649,  2563,  2477,  2396,
     2316,  2236,  2157,  2083,  2009,  1940,  1871,  1807,  1743,  1683,
     1623,  1567,  1511,  1459,  1407,  1357,  1307,  1257,  1207,  1159,
     1111,  1067,  1023,   983,   943,   905,   868,   834,   800,   769,
      738,   709,   681,   653,   625,   600,   575,   552,   529,   508,
      487,   466,   447,   428,   410,   392,   376,   360,   344,   328,
      313,   298,   283,   268,   255,   242,   230,   218,   207,   196,
      186,   176,   167,   158,   150,   142,   135,   128,   121,   114,
      108,   102,    97,    92,    87,    82,    78,    74,    70,    66,
       62,    58,    54,    50,    47,    44,    41,    38,    35,    32,
       30,    28,    26,    24,    22,    20,    18,    16,    14,    13,
       12,    11,    10,     9,     8,     7,     6,     5,     4,     3,
        2,     1,     0
    },
    {
    16384, 16149, 15915, 15681, 15447, 15214, 14981, 14749, 14517, 14286,
    14055, 13827, 13599, 13373, 13147, 12923, 12699, 12476, 12253, 12034,
    11815, 11599, 11383, 11171, 10959, 10750, 10541, 10337, 10133,  9933,
     9733,  9536,  9339,  9142,  8945,  8751,  8557,  8369,  8181,  7998,
     7816,  7638,  7460,  7288,  7116,  6950,  6785,  6625,  6465,  6306,
     6147,  5995,  5843,  5697,  5551,  5411,  5271,  5135,  5000,  4871,
     4742,  4618,  4495,  4374,  4253,  4132,  4011,  3893,  3775,  3663,
     3552,  3446,  3340,  3239,  3138,  3043,  2948,  2858,  2768,  2684,
     2600,  2516,  2433,  2355,  2278,  2205,  2133,  2065,  1997,  1932,
     1867,  1807,  1747,  1690,  1634,  1580,  1526,  1472,  1418,  1366,
     1314,  1266,  1218,  1174,  1130,  1088,  1047,  1009,   971,   936,
      901,   868,   836,   804,   772,   743,   714,   685,   658,   631,
      606,   582,   559,   536,   515,   494,   475,   456,   437,   418,
      399,   380,   362,   344,   328,   312,   297,   283,   270,   257,
      245,   233,   222,   211,   201,   191,   181,   172,   163,   155,
      147,   139,   132,   125,   119,   113,   107,   101,    96,    91,
       86,    81,    76,    71,    66,    62,    58,    54,    50,    46,
       43,    40,    37,    34,    31,    28,    26,    24,    22,    20,
       18,    16,    14,    12,    10,     8,     6,     5,     4,     3,
        2,     1,     0
    },
    {
    16384, 16159, 15934, 15709, 15485, 15261, 15038, 14816, 14594, 14373,
    14152, 13933, 13714, 13497, 13280, 13065, 12850, 12636, 12422, 12211,
    12000, 11791, 11583, 11378, 11173, 10971, 10769, 10571, 10373, 10179,
     9985,  9793,  9601,  9409,  9217,  9029,  8842,  8658,  8475,  8297,
     8120,  7946,  7773,  7604,  7435,  7271,  7108,  6950,  6792,  6634,
     6477,  6326,  6175,  6029,  5883,  5742,  5602,  5466,  5330,  5199,
     5068,  4943,  4818,  4696,  4574,  4452,  4330,  4211,  4093,  3979,
     3866,  3759,  3652,  3549,  3446,  3348,  3250,  3157,  3065,  2977,
     2889,  2802,  2716,  2634,  2553,  2476,  2399,  2326,  2254,  2185,
     2117,  2052,  1987,  1926,  1866,  1808,  1750,  1692,  1634,  1578,
     1522,  1470,  1418,  1369,  1321,  1275,  1229,  1187,  1145,  1105,
     1066,  1027,   991,   955,   919,   883,   850,   817,   786,   756,
      728,   700,   674,   648,   624,   600,   578,   556,   534,   512,
      490,   468,   447,   426,   407,   388,   371,   354,   338,   322,
      307,   293,   280,   267,   255,   243,   231,   219,   209,   199,
      189,   179,   170,   161,   153,   145,   138,   131,   124,   117,
      111,   105,    99,    93,    87,    81,    76,    71,    66,    61,
       57,    53,    49,    45,    42,    39,    36,    33,    30,    27,
       24,    21,    19,    17,    15,    13,    11,     9,     7,     5,
        3,     1,     0
    },
    {
    16384, 16169, 15954, 15739, 15524, 15310, 15096, 14883, 14670, 14458,
    14246, 14035, 13824, 13614, 13405, 13198, 12991, 12785, 12579, 12376,
    12173, 11972, 11772, 11574, 11377, 11182, 10987, 10795, 10603, 10414,
    10226, 10040,  9854,  9668,  9482,  9299,  9116,  8937,  8759,  8585,
     8411,  8241,  8071,  7906,  7741,  7580,  7419,  7263,  7107,  6952,
     6797,  6647,  6497,  6353,  6209,  6070,  5931,  5796,  5661,  5531,
     5401,  5275,  5150,  5027,  4904,  4781,  4658,  4538,  4419,  4304,
     4190,  4081,  3972,  3867,  3762,  3662,  3562,  3467,  3372,  3281,
     3191,  3101,  3012,  2928,  2844,  2764,  2684,  2608,  2533,  2460,
     2387,  2318,  2250,  2185,  2121,  2059,  1997,  1935,  1873,  1813,
     1754,  1698,  1642,  1588,  1535,  1483,  1433,  1384,  1338,  1292,
     1249,  1206,  1165,  1125,  1085,  1045,  1008,   971,   937,   903,
      871,   840,   810,   780,   752,   724,   698,   672,   647,   622,
      597,   572,   548,   524,   502,   480,   460,   440,   421,   403,
      386,   369,   353,   337,   323,   309,   295,   281,   268,   255,
      243,   231,   220,   209,   199,   189,   180,   171,   163,   155,
      147,   139,   131,   123,   116,   109,   102,    95,    89,    83,
       77,    72,    67,    62,    57,    52,    48,    44,    40,    36,
       32,    28,    25,    22,    19,    16,    13,    10,     8,     6,
        4,     2,     0
    },
    {
    16384, 16177, 15970, 15764, 15558, 15353, 15148, 14944, 14740, 14537,
    14334, 14132, 13930, 13729, 13529, 13330, 13131, 12933, 12735, 12539,
    12343, 12150, 11957, 11766, 11576, 11388, 11200, 11015, 10830, 10647,
    10465, 10285, 10105,  9925,  9745,  9568,  9391,  9218,  9045,  8876,
     8707,  8541,  8375,  8213,  8051,  7894,  7737,  7583,  7429,  7277,
     7125,  6977,  6830,  6687,  6544,  6406,  6268,  6133,  5998,  5868,
     5738,  5612,  5487,  5364,  5241,  5118,  4995,  4875,  4755,  4640,
     4525,  4414,  4304,  4198,  4092,  3990,  3888,  3790,  3693,  3600,
     3507,  3415,  3323,  3235,  3147,  3064,  2981,  2902,  2823,  2746,
     2670,  2594,  2522,  2450,  2382,  2314,  2248,  2182,  2116,  2050,
     1987,  1924,  1864,  1804,  1748,  1692,  1638,  1585,  1534,  1484,
     1437,  1390,  1346,  1302,  1258,  1215,  1174,  1133,  1095,  1057,
     1021,   986,   952,   918,   887,   856,   827,   798,   770,   742,
      714,   686,   659,   632,   607,   582,   559,   536,   514,   492,
      472,   452,   433,   415,   398,   381,   364,   348,   333,   318,
      304,   290,   277,   264,   252,   240,   229,   218,   208,   198,
      188,   178,   168,   158,   149,   140,   132,   124,   116,   108,
      101,    94,    87,    81,    75,    69,    64,    59,    54,    49,
       44,    39,    35,    31,    27,    23,    19,    15,    12,     9,
        6,     3,     0
    }
};


static const uint16_t cf_tables_3[5][257] = {
    {
    16384, 16187, 15990, 15793, 15597, 15401, 15205, 15009, 14813, 14618,
    14423, 14230, 14037, 13845, 13653, 13463, 13273, 13083, 12894, 12706,
    12518, 12332, 12146, 11962, 11778, 11597, 11416, 11237, 11059, 10882,
    10706, 10532, 10358, 10184, 10010,  9838,  9666,  9497,  9328,  9163,
     8999,  8837,  8675,  8517,  8359,  8205,  8051,  7901,  7751,  7602,
     7453,  7308,  7163,  7022,  6882,  6745,  6609,  6476,  6343,  6214,
     6085,  5960,  5835,  5712,  5589,  5466,  5343,  5223,  5103,  4987,
     4872,  4761,  4650,  4542,  4435,  4332,  4229,  4130,  4031,  3936,
     3841,  3747,  3653,  3563,  3473,  3387,  3302,  3220,  3138,  3059,
     2980,  2905,  2830,  2759,  2688,  2619,  2550,  2481,  2412,  2345,
     2278,  2215,  2152,  2092,  2032,  1974,  1917,  1863,  1809,  1758,
     1707,  1659,  1611,  1564,  1517,  1473,  1429,  1387,  1346,  1307,
     1268,  1230,  1193,  1158,  1123,  1090,  1058,  1026,   994,   962,
      930,   899,   869,   841,   813,   786,   760,   735,   710,   687,
      664,   643,   622,   602,   582,   562,   543,   525,   507,   490,
      473,   457,   442,   427,   412,   398,   385,   373,   361,   349,
      337,   325,   313,   301,   290,   279,   269,   259,   249,   240,
      231,   222,   214,   206,   199,   192,   185,   178,   171,   165,
      159,   153,   148,   143,   138,   133,   128,   123,   119,   115,
      111,   107,   103,    99,    95,    91,    87,    83,    80,    77,
       74,    71,    68,    65,    63,    61,    59,    57,    55,    53,
       51,    49,    47,    45,    43,    41,    40,    39,    38,    37,
       36,    35,    34,    33,    32,    31,    30,    29,    28,    27,
       26,    25,    24,    23,    22,    21,    20,    19,    18,    17,
       16,    15,    14,    13,    12,    11,    10,     9,     8,     7,
        6,     5,     4,     3,     2,     1,     0
    },
    {
    16384, 16195, 16006, 15817, 15629, 15441, 15253, 15065, 14878, 14692,
    14506, 14321, 14136, 13952, 13768, 13585, 13402, 13219, 13037, 12857,
    12677, 12499, 12321, 12144, 11967, 11792, 11617, 11444, 11271, 11100,
    10930, 10762, 10594, 10426, 10258, 10091,  9925,  9761,  9598,  9438,
     9278,  9120,  8963,  8809,  8655,  8504,  8354,  8207,  8060,  7914,
     7769,  7627,  7485,  7347,  7209,  7074,  6939,  6807,  6676,  6548,
     6420,  6296,  6172,  6050,  5928,  5806,  5684,  5564,  5444,  5328,
     5212,  5100,  4988,  4879,  4771,  4667,  4563,  4462,  4362,  4265,
     4169,  4073,  3978,  3886,  3795,  3707,  3619,  3535,  3451,  3369,
     3288,  3210,  3133,  3059,  2985,  2913,  2841,  2769,  2697,  2627,
     2557,  2490,  2424,  2360,  2297,  2237,  2177,  2119,  2062,  2007,
     1953,  1901,  1849,  1798,  1748,  1700,  1652,  1607,  1562,  1519,
     1476,  1435,  1394,  1355,  1317,  1281,  1245,  1210,  1175,  1140,
     1105,  1071,  1037,  1005,   973,   943,   913,   885,   857,   830,
      804,   779,   754,   731,   708,   685,   663,   642,   621,   601,
      581,   563,   545,   528,   511,   495,   479,   463,   448,   433,
      419,   405,   391,   377,   364,   351,   338,   326,   314,   302,
      291,   280,   270,   260,   251,   242,   234,   226,   218,   210,
      202,   195,   188,   181,   174,   168,   162,   156,   150,   144,
      139,   134,   129,   124,   119,   114,   109,   104,   100,    96,
       92,    88,    84,    80,    77,    74,    71,    68,    65,    62,
       59,    56,    54,    52,    50,    48,    46,    44,    42,    40,
       38,    36,    34,    33,    32,    31,    30,    29,    28,    27,
       26,    25,    24,    23,    22,    21,    20,    19,    18,    17,
       16,    15,    14,    13,    12,    11,    10,     9,     8,     7,
        6,     5,     4,     3,     2,     1,     0
    },
    {
    16384, 16203, 16022, 15842, 15662, 15482, 15302, 15122, 14942, 14763,
    14584, 14406, 14228, 14051, 13874, 13698, 13522, 13347, 13172, 12998,
    12824, 12652, 12480, 12310, 12140, 11971, 11803, 11637, 11471, 11307,
    11143, 10980, 10817, 10654, 10491, 10330, 10169, 10011,  9853,  9697,
     9542,  9389,  9236,  9086,  8936,  8789,  8642,  8498,  8355,  8212,
     8070,  7931,  7792,  7656,  7520,  7388,  7256,  7126,  6996,  6870,
     6744,  6621,  6498,  6377,  6256,  6135,  6014,  5895,  5776,  5660,
     5545,  5433,  5321,  5212,  5104,  4999,  4895,  4793,  4692,  4594,
     4496,  4400,  4304,  4211,  4118,  4028,  3939,  3853,  3767,  3684,
     3601,  3521,  3441,  3364,  3287,  3212,  3137,  3062,  2987,  2915,
     2843,  2773,  2704,  2638,  2572,  2508,  2445,  2384,  2324,  2266,
     2208,  2153,  2098,  2044,  1990,  1939,  1888,  1839,  1791,  1745,
     1699,  1655,  1611,  1569,  1527,  1487,  1448,  1409,  1370,  1331,
     1292,  1255,  1218,  1183,  1148,  1115,  1082,  1051,  1020,   990,
      960,   932,   904,   878,   852,   826,   801,   777,   753,   731,
      709,   687,   666,   645,   625,   605,   586,   567,   550,   533,
      516,   499,   482,   465,   449,   433,   418,   403,   389,   375,
      362,   349,   337,   325,   314,   303,   293,   283,   273,   263,
      254,   245,   236,   227,   219,   211,   204,   197,   190,   183,
      177,   171,   165,   159,   153,   147,   141,   135,   130,   125,
      120,   115,   110,   105,   101,    97,    93,    89,    85,    81,
       77,    74,    71,    68,    65,    62,    59,    56,    53,    51,
       49,    47,    45,    43,    41,    39,    37,    35,    33,    31,
       29,    27,    25,    23,    22,    21,    20,    19,    18,    17,
       16,    15,    14,    13,    12,    11,    10,     9,     8,     7,
        6,     5,     4,     3,     2,     1,     0
    },
    {
    16384, 16210, 16036, 15863, 15690, 15517, 15344, 15172, 15000, 14828,
    14656, 14485, 14314, 14145, 13976, 13808, 13640, 13472, 13304, 13137,
    12970, 12804, 12639, 12475, 12312, 12149, 11987, 11827, 11667, 11508,
    11349, 11192, 11035, 10878, 10721, 10565, 10410, 10257, 10104,  9953,
     9802,  9654,  9506,  9359,  9213,  9070,  8927,  8787,  8647,  8508,
     8369,  8233,  8097,  7964,  7831,  7700,  7570,  7442,  7315,  7190,
     7065,  6943,  6821,  6701,  6581,  6461,  6341,  6223,  6105,  5990,
     5876,  5764,  5653,  5545,  5437,  5331,  5226,  5124,  5022,  4924,
     4826,  4729,  4632,  4538,  4444,  4353,  4262,  4174,  4087,  4002,
     3917,  3835,  3753,  3674,  3595,  3518,  3441,  3364,  3287,  3212,
     3138,  3066,  2995,  2926,  2858,  2792,  2726,  2662,  2599,  2538,
     2478,  2420,  2362,  2305,  2249,  2195,  2141,  2089,  2037,  1988,
     1939,  1891,  1844,  1799,  1754,  1711,  1668,  1626,  1584,  1542,
     1500,  1459,  1418,  1380,  1342,  1305,  1269,  1234,  1199,  1166,
     1133,  1102,  1071,  1041,  1012,   983,   954,   926,   899,   872,
      847,   822,   798,   774,   751,   728,   707,   686,   666,   646,
      627,   608,   589,   570,   552,   534,   517,   500,   484,   468,
      453,   438,   424,   410,   397,   384,   372,   360,   348,   336,
      325,   314,   303,   293,   283,   273,   264,   255,   246,   237,
      229,   221,   213,   205,   197,   189,   181,   174,   167,   160,
      154,   148,   142,   136,   131,   126,   121,   116,   111,   106,
      101,    97,    93,    89,    85,    81,    77,    73,    70,    67,
       64,    61,    58,    55,    52,    49,    46,    43,    40,    37,
       35,    33,    31,    29,    27,    25,    23,    21,    19,    17,
       16,    15,    14,    13,    12,    11,    10,     9,     8,     7,
        6,     5,     4,     3,     2,     1,     0
    },
    {
    16384, 16218, 16052, 15886, 15720, 15554, 15389, 15224, 15059, 14895,
    14731, 14567, 14403, 14240, 14077, 13915, 13753, 13591, 13429, 13269,
    13109, 12950, 12791, 12633, 12476, 12320, 12164, 12009, 11854, 11701,
    11548, 11396, 11244, 11092, 10940, 10790, 10640, 10492, 10344, 10198,
    10052,  9908,  9764,  9622,  9481,  9342,  9203,  9066,  8929,  8793,
     8657,  8524,  8391,  8261,  8131,  8003,  7875,  7749,  7624,  7502,
     7380,  7260,  7140,  7022,  6904,  6786,  6668,  6551,  6435,  6322,
     6209,  6099,  5989,  5881,  5773,  5668,  5563,  5461,  5359,  5260,
     5161,  5063,  4965,  4871,  4777,  4686,  4595,  4506,  4417,  4331,
     4245,  4162,  4079,  3999,  3919,  3841,  3763,  3685,  3607,  3530,
     3454,  3380,  3307,  3236,  3166,  3097,  3029,  2963,  2897,  2834,
     2771,  2710,  2650,  2591,  2532,  2475,  2418,  2363,  2309,  2257,
     2205,  2155,  2105,  2057,  2009,  1963,  1918,  1873,  1828,  1783,
     1738,  1694,  1650,  1607,  1565,  1524,  1484,  1445,  1407,  1369,
     1333,  1297,  1263,  1229,  1197,  1165,  1134,  1103,  1073,  1043,
     1015,   987,   960,   933,   907,   882,   858,   834,   811,   788,
      766,   744,   722,   700,   679,   658,   638,   618,   599,   581,
      563,   545,   528,   511,   495,   480,   465,   451,   437,   423,
      410,   397,   384,   372,   360,   348,   337,   326,   315,   305,
      295,   285,   275,   265,   255,   245,   236,   227,   219,   211,
      203,   195,   188,   181,   174,   167,   161,   155,   149,   143,
      137,   131,   126,   121,   116,   111,   106,   101,    97,    93,
       89,    85,    81,    77,    73,    69,    65,    61,    58,    55,
       52,    49,    46,    43,    40,    37,    34,    32,    30,    28,
       26,    24,    22,    20,    18,    16,    14,    12,    10,     8,
        6,     5,     4,     3,     2,     1,     0
    }
};


static const uint16_t * const cf_table[16] = {
    cf_tables_1[0], cf_tables_1[1], cf_tables_1[2], cf_tables_2[0],
    cf_tables_2[1], cf_tables_2[2], cf_tables_2[3], cf_tables_2[4],
    cf_tables_2[5], cf_tables_2[6], cf_tables_2[7], cf_tables_3[0],
    cf_tables_3[1], cf_tables_3[2], cf_tables_3[3], cf_tables_3[4]
};


/** Initialize a given lookup table using a given delta
 */
static void bgmc_lut_fillp(uint8_t *lut, int *lut_status,
                           int delta)
{
    unsigned int sx, i;

    for (sx = 0; sx < 16; sx++)
        for (i = 0; i < LUT_SIZE; i++) {
            unsigned int target = (i + 1) << (FREQ_BITS - LUT_BITS);
            unsigned int symbol = 1 << delta;

            while (cf_table[sx][symbol] > target)
                symbol += 1 << delta;

            *lut++ = symbol >> delta;
        }

    *lut_status = delta;
}


/** Retune the index of a suitable lookup table for a given delta
 */
static uint8_t* bgmc_lut_getp(uint8_t *lut, int *lut_status,
                              int delta)
{
    unsigned int i = av_clip(delta, 0, LUT_BUFF - 1);

    lut += (i * LUT_SIZE) << 4;

    if (lut_status[i] != delta)
        bgmc_lut_fillp(lut, &lut_status[i], delta);

    return lut;
}


/** Initialize the lookup table arrays
 */
int ff_bgmc_init(AVCodecContext *avctx, uint8_t **cf_lut, int **cf_lut_status)
{
    *cf_lut        = av_malloc(sizeof(*cf_lut       ) * LUT_BUFF * 16 * LUT_SIZE);
    *cf_lut_status = av_malloc(sizeof(*cf_lut_status) * LUT_BUFF);

    if (!cf_lut || !cf_lut_status) {
        ff_bgmc_end(cf_lut, cf_lut_status);
        av_log(avctx, AV_LOG_ERROR, "Allocating buffer memory failed.\n");
        return AVERROR(ENOMEM);
    } else {
        // initialize lut_status buffer to a value never used to compare
        // against
        memset(*cf_lut_status, -1, sizeof(*cf_lut_status) * LUT_BUFF);
    }

    return 0;
}


/** Release the lookup table arrays
 */
void ff_bgmc_end(uint8_t **cf_lut, int **cf_lut_status)
{
    av_freep(cf_lut);
    av_freep(cf_lut_status);
}


/** Initialize decoding and reads the first value
 */
void ff_bgmc_decode_init(GetBitContext *gb,
                         unsigned int *h, unsigned int *l, unsigned int *v)
{
    *h = TOP_VALUE;
    *l = 0;
    *v = get_bits_long(gb, VALUE_BITS);
}


/** Finish decoding
 */
void ff_bgmc_decode_end(GetBitContext *gb)
{
    skip_bits_long(gb, -(VALUE_BITS - 2));
}


/** Read and decode a block Gilbert-Moore coded symbol
 */
void ff_bgmc_decode(GetBitContext *gb, unsigned int num, int32_t *dst,
                    int delta, unsigned int sx,
                    unsigned int *h, unsigned int *l, unsigned int *v,
                    uint8_t *cf_lut, int *cf_lut_status)
{
    unsigned int i;
    uint8_t *lut = bgmc_lut_getp(cf_lut, cf_lut_status, delta);

    // read current state
    unsigned int high   = *h;
    unsigned int low    = *l;
    unsigned int value  = *v;

    lut += sx * LUT_SIZE;

    // decode num samples
    for (i = 0; i < num; i++) {
        unsigned int range  = high - low + 1;
        unsigned int target = (((value - low + 1) << FREQ_BITS) - 1) / range;
        unsigned int symbol = lut[target >> (FREQ_BITS - LUT_BITS)] << delta;

        while (cf_table[sx][symbol] > target)
            symbol += 1 << delta;

        symbol = (symbol >> delta) - 1;

        high = low + ((range * cf_table[sx][(symbol    ) << delta] - (1 << FREQ_BITS)) >> FREQ_BITS);
        low  = low + ((range * cf_table[sx][(symbol + 1) << delta]                   ) >> FREQ_BITS);

        while (1) {
            if (high >= HALF) {
                if        (low >= HALF) {
                    value -= HALF;
                    low   -= HALF;
                    high  -= HALF;
                } else if (low >= FIRST_QTR && high < THIRD_QTR) {
                    value -= FIRST_QTR;
                    low   -= FIRST_QTR;
                    high  -= FIRST_QTR;
                } else break;
            }

            low   *= 2;
            high   = 2 * high  + 1;
            value  = 2 * value + get_bits1(gb);
        }

        *dst++ = symbol;
    }

    // save current state
    *h = high;
    *l = low;
    *v = value;
}
