📄 vld.h
字号:
{"00 1110 11", 24, -1, 0}, {"00 1110 00", 25, 1, 0}, {"00 1110 01", 25, -1, 0}, {"00 1101 10", 26, 1, 0}, {"00 1101 11", 26, -1, 0}, {"End"}};static struct vlc_entry escape_run[] = { {"FLC"}, {"00 0000", SYM_ESC_RUN, 0, -ST_DIFF_ESC_LEVEL, 63}, {"End"}};/* ESC_LEVEL: Levels 0 and -128 are not allowed */static struct vlc_entry escape_level[] = { {"FLC"}, {"0000 0001", SYM_ESC_LEVEL, 1, ST_DIFF_ESC_LEVEL, 127}, {"1000 0001", SYM_ESC_LEVEL, -127, ST_DIFF_ESC_LEVEL, -1}, {"End"}};/* INTRA DC coeff: Levels 0 and 255 not allowed; level 128 repr. by 255 */static struct vlc_entry intra_dc[] = { {"FLC"}, {"0000 0001", SYM_INTRA_DC, 1, -1, 127}, {"1111 1111", SYM_INTRA_DC, 128, -1, 128}, {"1000 0001", SYM_INTRA_DC, 129, -1, 254}, {"End"}};/* INTRA DC coeff: Levels 0 and 255 not allowed; level 128 repr. by 255 */static struct vlc_entry last_intra_dc[] = { {"FLC"}, {"0000 0001", SYM_INTRA_DC, 1, (ST_NEXT_BLK_6 - ST_INTRA_DC_BLK_6), 127}, {"1111 1111", SYM_INTRA_DC, 128, (ST_NEXT_BLK_6 - ST_INTRA_DC_BLK_6), 128}, {"1000 0001", SYM_INTRA_DC, 129, (ST_NEXT_BLK_6 - ST_INTRA_DC_BLK_6), 254}, {"End"}};static struct vlc_entry mba_startcode[] = { {"1", SYM_MBA, 1, (ST_MTYPE - ST_MBA_STARTCODE)}, {"011", SYM_MBA, 2, (ST_MTYPE - ST_MBA_STARTCODE)}, {"010", SYM_MBA, 3, (ST_MTYPE - ST_MBA_STARTCODE)}, {"0011", SYM_MBA, 4, (ST_MTYPE - ST_MBA_STARTCODE)}, {"0010", SYM_MBA, 5, (ST_MTYPE - ST_MBA_STARTCODE)}, {"0001 1", SYM_MBA, 6, (ST_MTYPE - ST_MBA_STARTCODE)}, {"0001 0", SYM_MBA, 7, (ST_MTYPE - ST_MBA_STARTCODE)}, {"0000 111", SYM_MBA, 8, (ST_MTYPE - ST_MBA_STARTCODE)}, {"0000 110", SYM_MBA, 9, (ST_MTYPE - ST_MBA_STARTCODE)}, {"0000 1011", SYM_MBA, 10, (ST_MTYPE - ST_MBA_STARTCODE)}, {"0000 1010", SYM_MBA, 11, (ST_MTYPE - ST_MBA_STARTCODE)}, {"0000 1001", SYM_MBA, 12, (ST_MTYPE - ST_MBA_STARTCODE)}, {"0000 1000", SYM_MBA, 13, (ST_MTYPE - ST_MBA_STARTCODE)}, {"0000 0", SYM_ESCAPE, TAB_LONG_MBA, 0}, {"End"}};static struct vlc_entry long_mba[] = { {"111", SYM_MBA, 14, (ST_MTYPE - ST_MBA_STARTCODE)}, {"110", SYM_MBA, 15, (ST_MTYPE - ST_MBA_STARTCODE)}, {"101 11", SYM_MBA, 16, (ST_MTYPE - ST_MBA_STARTCODE)}, {"101 10", SYM_MBA, 17, (ST_MTYPE - ST_MBA_STARTCODE)}, {"101 01", SYM_MBA, 18, (ST_MTYPE - ST_MBA_STARTCODE)}, {"101 00", SYM_MBA, 19, (ST_MTYPE - ST_MBA_STARTCODE)}, {"100 11", SYM_MBA, 20, (ST_MTYPE - ST_MBA_STARTCODE)}, {"100 10", SYM_MBA, 21, (ST_MTYPE - ST_MBA_STARTCODE)}, {"100 011", SYM_MBA, 22, (ST_MTYPE - ST_MBA_STARTCODE)}, {"100 010", SYM_MBA, 23, (ST_MTYPE - ST_MBA_STARTCODE)}, {"100 001", SYM_MBA, 24, (ST_MTYPE - ST_MBA_STARTCODE)}, {"100 000", SYM_MBA, 25, (ST_MTYPE - ST_MBA_STARTCODE)}, {"011 111", SYM_MBA, 26, (ST_MTYPE - ST_MBA_STARTCODE)}, {"011 110", SYM_MBA, 27, (ST_MTYPE - ST_MBA_STARTCODE)}, {"011 101", SYM_MBA, 28, (ST_MTYPE - ST_MBA_STARTCODE)}, {"011 100", SYM_MBA, 29, (ST_MTYPE - ST_MBA_STARTCODE)}, {"011 011", SYM_MBA, 30, (ST_MTYPE - ST_MBA_STARTCODE)}, {"011 010", SYM_MBA, 31, (ST_MTYPE - ST_MBA_STARTCODE)}, {"011 001", SYM_MBA, 32, (ST_MTYPE - ST_MBA_STARTCODE)}, {"011 000", SYM_MBA, 33, (ST_MTYPE - ST_MBA_STARTCODE)}, {"001 111", SYM_MBA_STUFFING, 0, 0}, {"000 0000 0", SYM_ESCAPE, TAB_LONG_STARTCODE, 0}, {"End"}};static struct vlc_entry long_startcode[] = { {"001", SYM_STARTCODE, 0, (ST_AFTER_STARTCODE - ST_MBA_STARTCODE)}, {"End"}};static struct vlc_entry mtype[] = { {"0001", SYM_MTYPE, MTYPE_INTRA, (ST_INTRA_DC_BLK_1 - ST_MTYPE)}, {"0000 001",SYM_MTYPE, MTYPE_INTRA_MQUANT, (ST_INTRA_MQUANT - ST_MTYPE)}, {"1", SYM_MTYPE, MTYPE_INTER, (ST_CBP - ST_MTYPE)}, {"0000 1", SYM_MTYPE, MTYPE_INTER_MQUANT, (ST_INTER_MQUANT - ST_MTYPE)}, {"0000 0001",SYM_MTYPE, MTYPE_MC_CBP, (ST_MC_CBP_MVDX - ST_MTYPE)}, {"001", SYM_MTYPE, MTYPE_MCFILT_NOCBP, (ST_MC_NOCBP_MVDX - ST_MTYPE)}, {"01", SYM_MTYPE, MTYPE_MCFILT_CBP, (ST_MC_CBP_MVDX - ST_MTYPE)}, {"0000 01", SYM_MTYPE, MTYPE_MCFILT_MQUANT,(ST_MC_CBP_MQUANT - ST_MTYPE)}, {"0000 0000", SYM_ESCAPE, TAB_LONG_MTYPE, 0}, {"End"}};static struct vlc_entry long_mtype[] = { {"1", SYM_MTYPE, MTYPE_MC_NOCBP, (ST_MC_NOCBP_MVDX - ST_MTYPE)}, {"01", SYM_MTYPE, MTYPE_MC_MQUANT, (ST_MC_CBP_MQUANT - ST_MTYPE)}, {"End"}};static struct vlc_entry mvd[] = { {"1", SYM_MVD, 0, 1}, {"010", SYM_MVD, 1, 1}, {"011", SYM_MVD, -1, 1}, {"0010", SYM_MVD, 2, 1}, {"0011", SYM_MVD, -2, 1}, {"0001 0", SYM_MVD, 3, 1}, {"0001 1", SYM_MVD, -3, 1}, {"0000 110", SYM_MVD, 4, 1}, {"0000 111", SYM_MVD, -4, 1}, {"0000 1010", SYM_MVD, 5, 1}, {"0000 1011", SYM_MVD, -5, 1}, {"0000 1000", SYM_MVD, 6, 1}, {"0000 1001", SYM_MVD, -6, 1}, {"0000 0", SYM_ESCAPE, TAB_LONG_MVD, 1}, {"End"}};static struct vlc_entry long_mvd[] = { {"110", SYM_MVD, 7, 0}, {"111", SYM_MVD, -7, 0}, {"101 10", SYM_MVD, 8, 0}, {"101 11", SYM_MVD, -8, 0}, {"101 00", SYM_MVD, 9, 0}, {"101 01", SYM_MVD, -9, 0}, {"100 10", SYM_MVD, 10, 0}, {"100 11", SYM_MVD, -10, 0}, {"100 010", SYM_MVD, 11, 0}, {"100 011", SYM_MVD, -11, 0}, {"100 000", SYM_MVD, 12, 0}, {"100 001", SYM_MVD, -12, 0}, {"011 110", SYM_MVD, 13, 0}, {"011 111", SYM_MVD, -13, 0}, {"011 100", SYM_MVD, 14, 0}, {"011 101", SYM_MVD, -14, 0}, {"011 010", SYM_MVD, 15, 0}, {"011 011", SYM_MVD, -15, 0}, {"011 001", SYM_MVD, -16, 0}, {"End"}};static struct vlc_entry cbp[] = { {"111", SYM_CBP, 0x3c, (ST_FIRST_BLK_3 - ST_CBP)}, {"1101", SYM_CBP, 0x4, (ST_FIRST_BLK_6 - ST_CBP)}, {"1100", SYM_CBP, 0x8, (ST_FIRST_BLK_6 - ST_CBP)}, {"1011", SYM_CBP, 0x10, (ST_FIRST_BLK_6 - ST_CBP)}, {"1010", SYM_CBP, 0x20, (ST_FIRST_BLK_6 - ST_CBP)}, {"1001 1", SYM_CBP, 0xc, (ST_FIRST_BLK_5 - ST_CBP)}, {"1001 0", SYM_CBP, 0x30, (ST_FIRST_BLK_5 - ST_CBP)}, {"1000 1", SYM_CBP, 0x14, (ST_FIRST_BLK_5 - ST_CBP)}, {"1000 0", SYM_CBP, 0x28, (ST_FIRST_BLK_5 - ST_CBP)}, {"0111 1", SYM_CBP, 0x1c, (ST_FIRST_BLK_4 - ST_CBP)}, {"0111 0", SYM_CBP, 0x2c, (ST_FIRST_BLK_4 - ST_CBP)}, {"0110 1", SYM_CBP, 0x34, (ST_FIRST_BLK_4 - ST_CBP)}, {"0110 0", SYM_CBP, 0x38, (ST_FIRST_BLK_4 - ST_CBP)}, {"0101 1", SYM_CBP, 0x1, (ST_FIRST_BLK_6 - ST_CBP)}, {"0101 0", SYM_CBP, 0x3d, (ST_FIRST_BLK_2 - ST_CBP)}, {"0100 1", SYM_CBP, 0x2, (ST_FIRST_BLK_6 - ST_CBP)}, {"0100 0", SYM_CBP, 0x3e, (ST_FIRST_BLK_2 - ST_CBP)}, {"0011 11", SYM_CBP, 0x18, (ST_FIRST_BLK_5 - ST_CBP)}, {"0011 10", SYM_CBP, 0x24, (ST_FIRST_BLK_5 - ST_CBP)}, {"0011 01", SYM_CBP, 0x3, (ST_FIRST_BLK_5 - ST_CBP)}, {"0011 00", SYM_CBP, 0x3f, (ST_FIRST_BLK_1 - ST_CBP)}, {"0010 111", SYM_CBP, 0x5, (ST_FIRST_BLK_5 - ST_CBP)}, {"0010 110", SYM_CBP, 0x9, (ST_FIRST_BLK_5 - ST_CBP)}, {"0010 101", SYM_CBP, 0x11, (ST_FIRST_BLK_5 - ST_CBP)}, {"0010 100", SYM_CBP, 0x21, (ST_FIRST_BLK_5 - ST_CBP)}, {"0010 011", SYM_CBP, 0x6, (ST_FIRST_BLK_5 - ST_CBP)}, {"0010 010", SYM_CBP, 0xa, (ST_FIRST_BLK_5 - ST_CBP)}, {"0010 001", SYM_CBP, 0x12, (ST_FIRST_BLK_5 - ST_CBP)}, {"0010 000", SYM_CBP, 0x22, (ST_FIRST_BLK_5 - ST_CBP)}, {"0001 1111", SYM_CBP, 0x7, (ST_FIRST_BLK_4 - ST_CBP)}, {"0001 1110", SYM_CBP, 0xb, (ST_FIRST_BLK_4 - ST_CBP)}, {"0001 1101", SYM_CBP, 0x13, (ST_FIRST_BLK_4 - ST_CBP)}, {"0001 1100", SYM_CBP, 0x23, (ST_FIRST_BLK_4 - ST_CBP)}, {"0001 1011", SYM_CBP, 0xd, (ST_FIRST_BLK_4 - ST_CBP)}, {"0001 1010", SYM_CBP, 0x31, (ST_FIRST_BLK_4 - ST_CBP)}, {"0001 1001", SYM_CBP, 0x15, (ST_FIRST_BLK_4 - ST_CBP)}, {"0001 1000", SYM_CBP, 0x29, (ST_FIRST_BLK_4 - ST_CBP)}, {"0001 0111", SYM_CBP, 0xe, (ST_FIRST_BLK_4 - ST_CBP)}, {"0001 0110", SYM_CBP, 0x32, (ST_FIRST_BLK_4 - ST_CBP)}, {"0001 0101", SYM_CBP, 0x16, (ST_FIRST_BLK_4 - ST_CBP)}, {"0001 0100", SYM_CBP, 0x2a, (ST_FIRST_BLK_4 - ST_CBP)}, {"0001 0011", SYM_CBP, 0xf, (ST_FIRST_BLK_3 - ST_CBP)}, {"0001 0010", SYM_CBP, 0x33, (ST_FIRST_BLK_3 - ST_CBP)}, {"0001 0001", SYM_CBP, 0x17, (ST_FIRST_BLK_3 - ST_CBP)}, {"0001 0000", SYM_CBP, 0x2b, (ST_FIRST_BLK_3 - ST_CBP)}, {"0000 1111", SYM_CBP, 0x19, (ST_FIRST_BLK_4 - ST_CBP)}, {"0000 1110", SYM_CBP, 0x25, (ST_FIRST_BLK_4 - ST_CBP)}, {"0000 1101", SYM_CBP, 0x1a, (ST_FIRST_BLK_4 - ST_CBP)}, {"0000 1100", SYM_CBP, 0x26, (ST_FIRST_BLK_4 - ST_CBP)}, {"0000 1011", SYM_CBP, 0x1d, (ST_FIRST_BLK_3 - ST_CBP)}, {"0000 1010", SYM_CBP, 0x2d, (ST_FIRST_BLK_3 - ST_CBP)}, {"0000 1001", SYM_CBP, 0x35, (ST_FIRST_BLK_3 - ST_CBP)}, {"0000 1000", SYM_CBP, 0x39, (ST_FIRST_BLK_3 - ST_CBP)}, {"0000 0111", SYM_CBP, 0x1e, (ST_FIRST_BLK_3 - ST_CBP)}, {"0000 0110", SYM_CBP, 0x2e, (ST_FIRST_BLK_3 - ST_CBP)}, {"0000 0101", SYM_CBP, 0x36, (ST_FIRST_BLK_3 - ST_CBP)}, {"0000 0100", SYM_CBP, 0x3a, (ST_FIRST_BLK_3 - ST_CBP)}, {"0000 00", SYM_ESCAPE, TAB_LONG_CBP, 0}, {"End"}};static struct vlc_entry long_cbp[] = { {"11 1", SYM_CBP, 0x1f, (ST_FIRST_BLK_2 - ST_CBP)}, {"11 0", SYM_CBP, 0x2f, (ST_FIRST_BLK_2 - ST_CBP)}, {"10 1", SYM_CBP, 0x37, (ST_FIRST_BLK_2 - ST_CBP)}, {"10 0", SYM_CBP, 0x3b, (ST_FIRST_BLK_2 - ST_CBP)}, {"01 1", SYM_CBP, 0x1b, (ST_FIRST_BLK_3 - ST_CBP)}, {"01 0", SYM_CBP, 0x27, (ST_FIRST_BLK_3 - ST_CBP)}, {"End"}};static struct vlc_entry quant_tr[] = { {"FLC"}, {"00000", SYM_QUANT_TR, 0, ST_DIFF_QUANT, 31}, {"End"}};static struct vlc_entry gei_pei[] = { {"0", SYM_GEI_PEI, 0, (ST_MBA_STARTCODE - ST_GEI_PEI)}, {"1", SYM_ESCAPE, TAB_LONG_SPARE, 0}, {"End"}};static struct vlc_entry long_spare[] = { {"FLC"}, {"0000 0000", SYM_SPARE, 0, 0, 255}, {"End"}};static struct vlc_entry gn[] = { {"FLC"}, {"0000", SYM_GN, 0, (ST_TR - ST_AFTER_STARTCODE), 0}, {"0001", SYM_GN, 1, (ST_GQUANT - ST_AFTER_STARTCODE), 15}, {"End"}};static struct vlc_entry ptype[] = { {"FLC"}, {"0000 00", SYM_PTYPE, 0, (ST_GEI_PEI - ST_PTYPE), 63}, {"End"}};static struct vlc_entry illegal_state[] = { {"0", SYM_EXIT, ILLEGAL_STATE, 0}, {"1", SYM_EXIT, ILLEGAL_STATE, 0}, {"End"}};//////////////// Tables for H.263 //////////////////// Starts with COD=0 for coded block; COD=1 for skipped blockstatic struct vlc_entry mcbpc263[] = { {"0 0000 0", SYM_ESCAPE, TAB263_LONG_MCBPC_INTER}, {"1", SYM_MCBPC, MTYPE_SKIP}, {"0 1", SYM_MCBPC, MTYPE263_INTER + 0}, {"0 0011", SYM_MCBPC, MTYPE263_INTER + 1}, {"0 0010", SYM_MCBPC, MTYPE263_INTER + 2}, {"0 0001 01", SYM_MCBPC, MTYPE263_INTER + 3}, {"0 011", SYM_MCBPC, MTYPE263_INTER_Q + 0}, {"0 0000 111", SYM_MCBPC, MTYPE263_INTER_Q + 1}, {"0 0000 110", SYM_MCBPC, MTYPE263_INTER_Q + 2}, {"0 010", SYM_MCBPC, MTYPE263_INTER4V + 0}, {"0 0000 101", SYM_MCBPC, MTYPE263_INTER4V + 1}, {"0 0000 100", SYM_MCBPC, MTYPE263_INTER4V + 2}, {"0 0001 1", SYM_MCBPC, MTYPE263_INTRA + 0}, {"0 0001 00", SYM_MCBPC, MTYPE263_INTRA_Q + 0}, {"End"}};static struct vlc_entry long_mcbpc263[] = { // Starts with "0 0000 0" {"00 0000 0", SYM_ESCAPE, TAB263_LONG_STARTCODE}, // Note: no COD=0 preceeds startcode {"000 1", SYM_MCBPC_STUFFING, MTYPE263_STUFFING}, {"010 1", SYM_MCBPC, MTYPE263_INTER_Q + 3}, {"101", SYM_MCBPC, MTYPE263_INTER4V + 3}, {"100", SYM_MCBPC, MTYPE263_INTRA + 1}, {"011", SYM_MCBPC, MTYPE263_INTRA + 2}, {"11", SYM_MCBPC, MTYPE263_INTRA + 3}, {"010 0", SYM_MCBPC, MTYPE263_INTRA_Q + 1}, {"001 1", SYM_MCBPC, MTYPE263_INTRA_Q + 2}, {"001 0", SYM_MCBPC, MTYPE263_INTRA_Q + 3}, {"End"}};static struct vlc_entry long_startcode263[] = { // Starts with "0000 0000 0000 0" {"000 0", SYM_ESCAPE, TAB263_ZEROS_AND_START}, {"000 1", SYM_STARTCODE, MTYPE263_STARTCODE}, {"End"}};// Handle startcodes preceded by 1 to 7 zeros// Starts with 17 zeros// CJG 8.13.96: added line containing "0000 0001"// Deals with Intel's padding more than 7 bits of zeros (8) after last macroblock in row.// This does not conform to H.263, and we may want to remove it after(if) Intel fixes// their video coder. This change was interop tested in San Jose with all other vendors.static struct vlc_entry zeros_and_start263[] = { {"1", SYM_STARTCODE, MTYPE263_STARTCODE}, {"01", SYM_STARTCODE, MTYPE263_STARTCODE}, {"001", SYM_STARTCODE, MTYPE263_STARTCODE}, {"0001", SYM_STARTCODE, MTYPE263_STARTCODE}, {"0000 1", SYM_STARTCODE, MTYPE263_STARTCODE}, {"0000 01", SYM_STARTCODE, MTYPE263_STARTCODE}, {"0000 001", SYM_STARTCODE, MTYPE263_STARTCODE}, {"0000 0001", SYM_STARTCODE, MTYPE263_STARTCODE}, {"End"}};static struct vlc_entry intra_mcbpc263[] = { {"0000 0000", SYM_ESCAPE, TAB263_LONG_MCBPC_INTRA}, {"1", SYM_MCBPC, MTYPE263_INTRA + 0}, {"001", SYM_MCBPC, MTYPE263_INTRA + 1}, {"010", SYM_MCBPC, MTYPE263_INTRA + 2}, {"011", SYM_MCBPC, MTYPE263_INTRA + 3}, {"0001", SYM_MCBPC, MTYPE263_INTRA_Q + 0},
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -