Mercurial > libavcodec.hg
view h263data.h @ 787:4914252c963a libavcodec
postprocessing cleanup:
remove opendivx #ifdefs
remove rk1 filter
remove unused / obsolete stuff
add -1,4,2,4,-1 deinterlacing filter (ffmpeg uses that)
threadsafe / no more non-const globals
some optimizations
different strides for Y,U,V possible
remove ebx usage (someone really should fix gcc, this is really lame)
change the dering filter slightly (tell me if its worse for any files)
author | michael |
---|---|
date | Mon, 28 Oct 2002 19:30:58 +0000 |
parents | 0b4450c15067 |
children | b32afefe7d33 |
line wrap: on
line source
/* intra MCBPC, mb_type = (intra), then (intraq) */ const UINT8 intra_MCBPC_code[8] = { 1, 1, 2, 3, 1, 1, 2, 3 }; const UINT8 intra_MCBPC_bits[8] = { 1, 3, 3, 3, 4, 6, 6, 6 }; /* inter MCBPC, mb_type = (inter), (intra), (interq), (intraq), (inter4v) */ /* Changed the tables for interq and inter4v+q, following the standard ** Juanjo ** */ const UINT8 inter_MCBPC_code[25] = { 1, 3, 2, 5, 3, 4, 3, 3, 3, 7, 6, 5, 4, 4, 3, 2, 2, 5, 4, 5, 1, /* Stuffing */ 2, 12, 14, 15, }; const UINT8 inter_MCBPC_bits[25] = { 1, 4, 4, 6, 5, 8, 8, 7, 3, 7, 7, 9, 6, 9, 9, 9, 3, 7, 7, 8, 9, /* Stuffing */ 11, 13, 13, 13, }; /* This is the old table static const UINT8 inter_MCBPC_code[20] = { 1, 3, 2, 5, 3, 4, 3, 3, 0, 1, 2, 3, 4, 4, 3, 2, 2, 5, 4, 5, }; static const UINT8 inter_MCBPC_bits[20] = { 1, 4, 4, 6, 5, 8, 8, 7, 12, 12, 12, 12, 6, 9, 9, 9, 3, 7, 7, 8, };*/ const UINT8 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 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 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 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 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, }; static RLTable rl_inter = { 102, 58, inter_vlc, inter_run, inter_level, }; const UINT16 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 }, }; const INT8 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, }; const INT8 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, }; static RLTable rl_intra_aic = { 102, 58, intra_vlc_aic, intra_run_aic, intra_level_aic, }; static const UINT16 h263_format[8][2] = { { 0, 0 }, { 128, 96 }, { 176, 144 }, { 352, 288 }, { 704, 576 }, { 1408, 1152 }, }; static UINT8 h263_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 };