/*
 * H263+ tables
 *
 * 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
 * H.263 tables.
 */

#include <stdint.h>

#include "h263data.h"
#include "mpegvideo.h"

uint8_t ff_h263_static_rl_table_store[2][2][2 * MAX_RUN + MAX_LEVEL + 3];

/* intra MCBPC, mb_type = (intra), then (intraq) */
const uint8_t ff_h263_intra_MCBPC_code[9] = { 1, 1, 2, 3, 1, 1, 2, 3, 1 };
const uint8_t ff_h263_intra_MCBPC_bits[9] = { 1, 3, 3, 3, 4, 6, 6, 6, 9 };

/* inter MCBPC, mb_type = (inter), (intra), (interq), (intraq), (inter4v) */
/* Changed the tables for interq and inter4v+q, following the standard
 * ** Juanjo ** */
const uint8_t ff_h263_inter_MCBPC_code[28] = {
    1,  3,  2,  5,
    3,  4,  3,  3,
    3,  7,  6,  5,
    4,  4,  3,  2,
    2,  5,  4,  5,
    1,  0,  0,  0,  /* Stuffing */
    2, 12, 14, 15,
};
const uint8_t ff_h263_inter_MCBPC_bits[28] = {
     1,  4,  4,  6,  /* inter  */
     5,  8,  8,  7,  /* intra  */
     3,  7,  7,  9,  /* interQ */
     6,  9,  9,  9,  /* intraQ */
     3,  7,  7,  8,  /* inter4 */
     9,  0,  0,  0,  /* Stuffing */
    11, 13, 13, 13,  /* inter4Q */
};

const uint8_t ff_h263_mbtype_b_tab[15][2] = {
    { 1,  1 },
    { 3,  3 },
    { 1,  5 },
    { 4,  4 },
    { 5,  4 },
    { 6,  6 },
    { 2,  4 },
    { 3,  4 },
    { 7,  6 },
    { 4,  6 },
    { 5,  6 },
    { 1,  6 },
    { 1, 10 },
    { 1,  7 },
    { 1,  8 },
};

const uint8_t ff_cbpc_b_tab[4][2] = {
    { 0, 1 },
    { 2, 2 },
    { 7, 3 },
    { 6, 3 },
};

const uint8_t ff_h263_cbpy_tab[16][2] = {
    {  3, 4 }, { 5, 5 }, { 4, 5 }, { 9, 4 }, {  3, 5 }, { 7, 4 }, { 2, 6 },
    { 11, 4 }, { 2, 5 }, { 3, 6 }, { 5, 4 }, { 10, 4 }, { 4, 4 }, { 8, 4 },
    {  6, 4 }, { 3, 2 }
};

const uint8_t ff_mvtab[33][2] = {
    {  1,  1 }, {  1,  2 }, {  1,  3 }, {  1,  4 }, {  3,  6 }, {  5,  7 },
    {  4,  7 }, {  3,  7 }, { 11,  9 }, { 10,  9 }, {  9,  9 }, { 17, 10 },
    { 16, 10 }, { 15, 10 }, { 14, 10 }, { 13, 10 }, { 12, 10 }, { 11, 10 },
    { 10, 10 }, {  9, 10 }, {  8, 10 }, {  7, 10 }, {  6, 10 }, {  5, 10 },
    {  4, 10 }, {  7, 11 }, {  6, 11 }, {  5, 11 }, {  4, 11 }, {  3, 11 },
    {  2, 11 }, {  3, 12 }, {  2, 12 }
};

/* third non intra table */
const uint16_t ff_inter_vlc[103][2] = {
    {  0x2,  2 }, {  0xf,  4 }, { 0x15,  6 }, { 0x17,  7 },
    { 0x1f,  8 }, { 0x25,  9 }, { 0x24,  9 }, { 0x21, 10 },
    { 0x20, 10 }, {  0x7, 11 }, {  0x6, 11 }, { 0x20, 11 },
    {  0x6,  3 }, { 0x14,  6 }, { 0x1e,  8 }, {  0xf, 10 },
    { 0x21, 11 }, { 0x50, 12 }, {  0xe,  4 }, { 0x1d,  8 },
    {  0xe, 10 }, { 0x51, 12 }, {  0xd,  5 }, { 0x23,  9 },
    {  0xd, 10 }, {  0xc,  5 }, { 0x22,  9 }, { 0x52, 12 },
    {  0xb,  5 }, {  0xc, 10 }, { 0x53, 12 }, { 0x13,  6 },
    {  0xb, 10 }, { 0x54, 12 }, { 0x12,  6 }, {  0xa, 10 },
    { 0x11,  6 }, {  0x9, 10 }, { 0x10,  6 }, {  0x8, 10 },
    { 0x16,  7 }, { 0x55, 12 }, { 0x15,  7 }, { 0x14,  7 },
    { 0x1c,  8 }, { 0x1b,  8 }, { 0x21,  9 }, { 0x20,  9 },
    { 0x1f,  9 }, { 0x1e,  9 }, { 0x1d,  9 }, { 0x1c,  9 },
    { 0x1b,  9 }, { 0x1a,  9 }, { 0x22, 11 }, { 0x23, 11 },
    { 0x56, 12 }, { 0x57, 12 }, {  0x7,  4 }, { 0x19,  9 },
    {  0x5, 11 }, {  0xf,  6 }, {  0x4, 11 }, {  0xe,  6 },
    {  0xd,  6 }, {  0xc,  6 }, { 0x13,  7 }, { 0x12,  7 },
    { 0x11,  7 }, { 0x10,  7 }, { 0x1a,  8 }, { 0x19,  8 },
    { 0x18,  8 }, { 0x17,  8 }, { 0x16,  8 }, { 0x15,  8 },
    { 0x14,  8 }, { 0x13,  8 }, { 0x18,  9 }, { 0x17,  9 },
    { 0x16,  9 }, { 0x15,  9 }, { 0x14,  9 }, { 0x13,  9 },
    { 0x12,  9 }, { 0x11,  9 }, {  0x7, 10 }, {  0x6, 10 },
    {  0x5, 10 }, {  0x4, 10 }, { 0x24, 11 }, { 0x25, 11 },
    { 0x26, 11 }, { 0x27, 11 }, { 0x58, 12 }, { 0x59, 12 },
    { 0x5a, 12 }, { 0x5b, 12 }, { 0x5c, 12 }, { 0x5d, 12 },
    { 0x5e, 12 }, { 0x5f, 12 }, {  0x3,  7 },
};

const int8_t ff_inter_level[102] = {
    1,  2,  3,  4, 5, 6, 7, 8,
    9, 10, 11, 12, 1, 2, 3, 4,
    5,  6,  1,  2, 3, 4, 1, 2,
    3,  1,  2,  3, 1, 2, 3, 1,
    2,  3,  1,  2, 1, 2, 1, 2,
    1,  2,  1,  1, 1, 1, 1, 1,
    1,  1,  1,  1, 1, 1, 1, 1,
    1,  1,  1,  2, 3, 1, 2, 1,
    1,  1,  1,  1, 1, 1, 1, 1,
    1,  1,  1,  1, 1, 1, 1, 1,
    1,  1,  1,  1, 1, 1, 1, 1,
    1,  1,  1,  1, 1, 1, 1, 1,
    1,  1,  1,  1, 1, 1,
};

const int8_t ff_inter_run[102] = {
    0,   0,  0,  0,  0,  0,  0,  0,
    0,   0,  0,  0,  1,  1,  1,  1,
    1,   1,  2,  2,  2,  2,  3,  3,
    3,   4,  4,  4,  5,  5,  5,  6,
    6,   6,  7,  7,  8,  8,  9,  9,
    10, 10, 11, 12, 13, 14, 15, 16,
    17, 18, 19, 20, 21, 22, 23, 24,
    25, 26,  0,  0,  0,  1,  1,  2,
    3,   4,  5,  6,  7,  8,  9, 10,
    11, 12, 13, 14, 15, 16, 17, 18,
    19, 20, 21, 22, 23, 24, 25, 26,
    27, 28, 29, 30, 31, 32, 33, 34,
    35, 36, 37, 38, 39, 40,
};

RLTable ff_h263_rl_inter = {
    102,
    58,
    ff_inter_vlc,
    ff_inter_run,
    ff_inter_level,
};

static const uint16_t intra_vlc_aic[103][2] = {
    {  0x2,  2 }, {  0x6,  3 }, {  0xe,  4 }, {  0xc,  5 },
    {  0xd,  5 }, { 0x10,  6 }, { 0x11,  6 }, { 0x12,  6 },
    { 0x16,  7 }, { 0x1b,  8 }, { 0x20,  9 }, { 0x21,  9 },
    { 0x1a,  9 }, { 0x1b,  9 }, { 0x1c,  9 }, { 0x1d,  9 },
    { 0x1e,  9 }, { 0x1f,  9 }, { 0x23, 11 }, { 0x22, 11 },
    { 0x57, 12 }, { 0x56, 12 }, { 0x55, 12 }, { 0x54, 12 },
    { 0x53, 12 }, {  0xf,  4 }, { 0x14,  6 }, { 0x14,  7 },
    { 0x1e,  8 }, {  0xf, 10 }, { 0x21, 11 }, { 0x50, 12 },
    {  0xb,  5 }, { 0x15,  7 }, {  0xe, 10 }, {  0x9, 10 },
    { 0x15,  6 }, { 0x1d,  8 }, {  0xd, 10 }, { 0x51, 12 },
    { 0x13,  6 }, { 0x23,  9 }, {  0x7, 11 }, { 0x17,  7 },
    { 0x22,  9 }, { 0x52, 12 }, { 0x1c,  8 }, {  0xc, 10 },
    { 0x1f,  8 }, {  0xb, 10 }, { 0x25,  9 }, {  0xa, 10 },
    { 0x24,  9 }, {  0x6, 11 }, { 0x21, 10 }, { 0x20, 10 },
    {  0x8, 10 }, { 0x20, 11 }, {  0x7,  4 }, {  0xc,  6 },
    { 0x10,  7 }, { 0x13,  8 }, { 0x11,  9 }, { 0x12,  9 },
    {  0x4, 10 }, { 0x27, 11 }, { 0x26, 11 }, { 0x5f, 12 },
    {  0xf,  6 }, { 0x13,  9 }, {  0x5, 10 }, { 0x25, 11 },
    {  0xe,  6 }, { 0x14,  9 }, { 0x24, 11 }, {  0xd,  6 },
    {  0x6, 10 }, { 0x5e, 12 }, { 0x11,  7 }, {  0x7, 10 },
    { 0x13,  7 }, { 0x5d, 12 }, { 0x12,  7 }, { 0x5c, 12 },
    { 0x14,  8 }, { 0x5b, 12 }, { 0x15,  8 }, { 0x1a,  8 },
    { 0x19,  8 }, { 0x18,  8 }, { 0x17,  8 }, { 0x16,  8 },
    { 0x19,  9 }, { 0x15,  9 }, { 0x16,  9 }, { 0x18,  9 },
    { 0x17,  9 }, {  0x4, 11 }, {  0x5, 11 }, { 0x58, 12 },
    { 0x59, 12 }, { 0x5a, 12 }, {  0x3,  7 },
};

static const int8_t intra_run_aic[102] = {
    0,   0,  0,  0,  0,  0,  0,  0,
    0,   0,  0,  0,  0,  0,  0,  0,
    0,   0,  0,  0,  0,  0,  0,  0,
    0,   1,  1,  1,  1,  1,  1,  1,
    2,   2,  2,  2,  3,  3,  3,  3,
    4,   4,  4,  5,  5,  5,  6,  6,
    7,   7,  8,  8,  9,  9, 10, 11,
    12, 13,  0,  0,  0,  0,  0,  0,
    0,   0,  0,  0,  1,  1,  1,  1,
    2,   2,  2,  3,  3,  3,  4,  4,
    5,   5,  6,  6,  7,  7,  8,  9,
    10, 11, 12, 13, 14, 15, 16, 17,
    18, 19, 20, 21, 22, 23,
};

static const int8_t intra_level_aic[102] = {
    1,   2,  3,  4,  5,  6,  7,  8,
    9,  10, 11, 12, 13, 14, 15, 16,
    17, 18, 19, 20, 21, 22, 23, 24,
    25,  1,  2,  3,  4,  5,  6,  7,
    1,   2,  3,  4,  1,  2,  3,  4,
    1,   2,  3,  1,  2,  3,  1,  2,
    1,   2,  1,  2,  1,  2,  1,  1,
    1,   1,  1,  2,  3,  4,  5,  6,
    7,   8,  9, 10,  1,  2,  3,  4,
    1,   2,  3,  1,  2,  3,  1,  2,
    1,   2,  1,  2,  1,  2,  1,  1,
    1,   1,  1,  1,  1,  1,  1,  1,
    1,   1,  1,  1,  1,  1,
};

RLTable ff_rl_intra_aic = {
    102,
    58,
    intra_vlc_aic,
    intra_run_aic,
    intra_level_aic,
};

const uint16_t ff_h263_format[8][2] = {
    {    0,    0 },
    {  128,   96 },
    {  176,  144 },
    {  352,  288 },
    {  704,  576 },
    { 1408, 1152 },
};

const uint8_t ff_aic_dc_scale_table[32] = {
//  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
    0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62
};

const uint8_t ff_modified_quant_tab[2][32] = {
//      0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
    {
        0, 3, 1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28
    },
    {
        0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 31, 31, 26
    }
};

const uint8_t ff_h263_chroma_qscale_table[32] = {
//  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
    0, 1, 2, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15
};

const uint16_t ff_mba_max[6] = {
    47, 98, 395, 1583, 6335, 9215
};

const uint8_t ff_mba_length[7] = {
    6, 7, 9, 11, 13, 14, 14
};

const AVRational ff_h263_pixel_aspect[16] = {
    {  0,  1 },
    {  1,  1 },
    { 12, 11 },
    { 10, 11 },
    { 16, 11 },
    { 40, 33 },
    {  0,  1 },
    {  0,  1 },
    {  0,  1 },
    {  0,  1 },
    {  0,  1 },
    {  0,  1 },
    {  0,  1 },
    {  0,  1 },
    {  0,  1 },
    {  0,  1 },
};
