⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vlc.h

📁 adi bf533视频编码程序
💻 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 + -