📄 vlc.h
字号:
#ifndef _VLC_H_
#define _VLC_H_
struct mp4_VLC {
int code;
int len;
};
struct mp4_VLC_TCOEF {
int runMax[2];
int *runOff[2];
int *levMax[2];
struct mp4_VLC *vlc;
};
// table B-13
const struct mp4_VLC mVLC_DCSIZE_TB13[13] = {
{3, 3}, {3, 2}, {2, 2}, {2, 3}, {1, 3}, {1, 4}, {1, 5}, {1, 6},
{1, 7}, {1, 8}, {1, 9}, {1, 10}, {1, 11}
};
// table B-14
const struct mp4_VLC mVLC_DCSIZE_TB14[13] = {
{3, 2}, {2, 2}, {1, 2}, {1, 3}, {1, 4}, {1, 5}, {1, 6}, {1, 7},
{1, 8}, {1, 9}, {1, 10}, {1, 11}, {1, 12}
};
// table B-16
static int l0_offs_TB16[15] = {
0, 27, 37, 42, 46, 49, 52, 55, 58, 60, 62, 63, 64, 65, 66
};
static int l0_lmax_TB16[15] = {
27, 10, 5, 4, 3, 3, 3, 3, 2, 2, 1, 1, 1, 1, 1
};
static int l1_offs_TB16[21] = {
67, 75, 78, 80, 82, 84, 86, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101
};
static int l1_lmax_TB16[21] = {
8, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
};
static struct mp4_VLC vlc_TB16[102] = {
{0x04, 3}, {0x0c, 4}, {0x1e, 5}, {0x1a, 6}, {0x18, 6}, {0x2a, 7}, {0x26, 7}, {0x24, 7},
{0x2e, 8}, {0x3e, 9}, {0x3c, 9}, {0x3a, 9}, {0x4a, 10}, {0x48, 10}, {0x46, 10}, {0x42, 10},
{0x42, 11}, {0x40, 11}, {0x1e, 11}, {0x1c, 11}, {0x0e, 12}, {0x0c, 12}, {0x40, 12}, {0x42, 12},
{0xa0, 13}, {0xa2, 13}, {0xa4, 13}, {0x1c, 5}, {0x28, 7}, {0x2c, 8}, {0x38, 9}, {0x40, 10},
{0x3e, 10}, {0x1a, 11}, {0x44, 12}, {0xa6, 13}, {0xaa, 13}, {0x16, 6}, {0x2a, 8}, {0x3c, 10},
{0x18, 11}, {0xac, 13}, {0x22, 7}, {0x36, 9}, {0x3a, 10}, {0x16, 11}, {0x20, 7}, {0x44, 10},
{0x14, 11}, {0x1a, 7}, {0x38, 10}, {0x10, 11}, {0x24, 8}, {0x36, 10}, {0xa8, 13}, {0x28, 8},
{0x34, 10}, {0xae, 13}, {0x32, 9}, {0x12, 11}, {0x30, 9}, {0x46, 12}, {0x2e, 9}, {0x32, 10},
{0x30, 10}, {0x0e, 11}, {0xb0, 13}, {0x0e, 5}, {0x18, 7}, {0x2c, 9}, {0x2e, 10}, {0x0c, 11},
{0x0a, 12}, {0x08, 12}, {0xb2, 13}, {0x1e, 7}, {0x2c, 10}, {0x0a, 11}, {0x1c, 7}, {0x08, 11},
{0x22, 8}, {0x48, 12}, {0x20, 8}, {0x4a, 12}, {0x26, 8}, {0xb4, 13}, {0x2a, 9}, {0xb6, 13},
{0x28, 9}, {0x26, 9}, {0x34, 9}, {0x2a, 10}, {0x28, 10}, {0x26, 10}, {0x24, 10}, {0x22, 10},
{0x4c, 12}, {0x4e, 12}, {0xb8, 13}, {0xba, 13}, {0xbc, 13}, {0xbe, 13}
};
const struct mp4_VLC_TCOEF mVLC_TB16 = {
{14, 20},
{l0_offs_TB16, l1_offs_TB16},
{l0_lmax_TB16, l1_lmax_TB16},
vlc_TB16
};
// table B-17
static int l0_offs_TB17[27] = {
0, 12, 18, 22, 25, 28, 31, 34, 36, 38, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57
};
static int l0_lmax_TB17[27] = {
12, 6, 4, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
};
static int l1_offs_TB17[41] = {
58, 61, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,100,101
};
static int l1_lmax_TB17[41] = {
3, 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
};
static struct mp4_VLC vlc_TB17[102] = {
{0x04, 3}, {0x1e, 5}, {0x2a, 7}, {0x2e, 8}, {0x3e, 9}, {0x4a, 10}, {0x48, 10}, {0x42, 11},
{0x40, 11}, {0x0e, 12}, {0x0c, 12}, {0x40, 12}, {0x0c, 4}, {0x28, 7}, {0x3c, 9}, {0x1e, 11},
{0x42, 12}, {0xa0, 13}, {0x1c, 5}, {0x3a, 9}, {0x1c, 11}, {0xa2, 13}, {0x1a, 6}, {0x46, 10},
{0x1a, 11}, {0x18, 6}, {0x44, 10}, {0xa4, 13}, {0x16, 6}, {0x18, 11}, {0xa6, 13}, {0x26, 7},
{0x16, 11}, {0xa8, 13}, {0x24, 7}, {0x14, 11}, {0x22, 7}, {0x12, 11}, {0x20, 7}, {0x10, 11},
{0x2c, 8}, {0xaa, 13}, {0x2a, 8}, {0x28, 8}, {0x38, 9}, {0x36, 9}, {0x42, 10}, {0x40, 10},
{0x3e, 10}, {0x3c, 10}, {0x3a, 10}, {0x38, 10}, {0x36, 10}, {0x34, 10}, {0x44, 12}, {0x46, 12},
{0xac, 13}, {0xae, 13}, {0x0e, 5}, {0x32, 10}, {0x0a, 12}, {0x1e, 7}, {0x08, 12}, {0x1c, 7},
{0x1a, 7}, {0x18, 7}, {0x26, 8}, {0x24, 8}, {0x22, 8}, {0x20, 8}, {0x34, 9}, {0x32, 9},
{0x30, 9}, {0x2e, 9}, {0x2c, 9}, {0x2a, 9}, {0x28, 9}, {0x26, 9}, {0x30, 10}, {0x2e, 10},
{0x2c, 10}, {0x2a, 10}, {0x28, 10}, {0x26, 10}, {0x24, 10}, {0x22, 10}, {0x0e, 11}, {0x0c, 11},
{0x0a, 11}, {0x08, 11}, {0x48, 12}, {0x4a, 12}, {0x4c, 12}, {0x4e, 12}, {0xb0, 13}, {0xb2, 13},
{0xb4, 13}, {0xb6, 13}, {0xb8, 13}, {0xba, 13}, {0xbc, 13}, {0xbe, 13}
};
const struct mp4_VLC_TCOEF mVLC_TB17 = {
{26, 40},
{l0_offs_TB17, l1_offs_TB17},
{l0_lmax_TB17, l1_lmax_TB17},
vlc_TB17
};
// table B-21
const struct mp4_VLC mVLC_RMAX_TB21[2][7] = {
{{1, 14}, {2, 9}, {3, 7}, {4, 3}, {5, 2}, {10, 1}, {27, 0}},
{{1, 20}, {2, 6}, {3, 1}, {8, 0}}
};
// table B-22
const struct mp4_VLC mVLC_RMAX_TB22[2][6] = {
{{1, 26}, {2, 10}, {3, 6}, {4, 2}, {6, 1}, {12, 0}},
{{1, 40}, {2, 1}, {3, 0}}
};
/****************************************************************/
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -