diff options
author | Fabrice Bellard <fabrice@bellard.org> | 2000-12-20 00:02:47 +0000 |
---|---|---|
committer | Fabrice Bellard <fabrice@bellard.org> | 2000-12-20 00:02:47 +0000 |
commit | 9aeeeb63f7e1ab7b0b7bb839a5f258667a2d2d78 (patch) | |
tree | 133769894d45da35e05ded6ea39d33bb81e7ae18 /libav/h263data.h | |
parent | 77bb6835ba752bb9335d208963a53227bbb1bc63 (diff) | |
download | ffmpeg-9aeeeb63f7e1ab7b0b7bb839a5f258667a2d2d78.tar.gz |
Initial revision
Originally committed as revision 2 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libav/h263data.h')
-rw-r--r-- | libav/h263data.h | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/libav/h263data.h b/libav/h263data.h new file mode 100644 index 0000000000..1cf6f4d802 --- /dev/null +++ b/libav/h263data.h @@ -0,0 +1,151 @@ +/* DCT coefficients. Four tables, two for last = 0, two for last = 1. + the sign bit must be added afterwards. */ + +/* first part of coeffs for last = 0. Indexed by [run][level-1] */ + +static const UINT8 coeff_tab0[2][12][2] = +{ + /* run = 0 */ + { + {0x02, 2}, {0x0f, 4}, {0x15, 6}, {0x17, 7}, + {0x1f, 8}, {0x25, 9}, {0x24, 9}, {0x21,10}, + {0x20,10}, {0x07,11}, {0x06,11}, {0x20,11} + }, + /* run = 1 */ + { + {0x06, 3}, {0x14, 6}, {0x1e, 8}, {0x0f,10}, + {0x21,11}, {0x50,12}, {0x00, 0}, {0x00, 0}, + {0x00, 0}, {0x00, 0}, {0x00, 0}, {0x00, 0} + } +}; + +/* rest of coeffs for last = 0. indexing by [run-2][level-1] */ + +static const UINT8 coeff_tab1[25][4][2] = +{ + /* run = 2 */ + { + {0x0e, 4}, {0x1d, 8}, {0x0e,10}, {0x51,12} + }, + /* run = 3 */ + { + {0x0d, 5}, {0x23, 9}, {0x0d,10}, {0x00, 0} + }, + /* run = 4-26 */ + { + {0x0c, 5}, {0x22, 9}, {0x52,12}, {0x00, 0} + }, + { + {0x0b, 5}, {0x0c,10}, {0x53,12}, {0x00, 0} + }, + { + {0x13, 6}, {0x0b,10}, {0x54,12}, {0x00, 0} + }, + { + {0x12, 6}, {0x0a,10}, {0x00, 0}, {0x00, 0} + }, + { + {0x11, 6}, {0x09,10}, {0x00, 0}, {0x00, 0} + }, + { + {0x10, 6}, {0x08,10}, {0x00, 0}, {0x00, 0} + }, + { + {0x16, 7}, {0x55,12}, {0x00, 0}, {0x00, 0} + }, + { + {0x15, 7}, {0x00, 0}, {0x00, 0}, {0x00, 0} + }, + { + {0x14, 7}, {0x00, 0}, {0x00, 0}, {0x00, 0} + }, + { + {0x1c, 8}, {0x00, 0}, {0x00, 0}, {0x00, 0} + }, + { + {0x1b, 8}, {0x00, 0}, {0x00, 0}, {0x00, 0} + }, + { + {0x21, 9}, {0x00, 0}, {0x00, 0}, {0x00, 0} + }, + { + {0x20, 9}, {0x00, 0}, {0x00, 0}, {0x00, 0} + }, + { + {0x1f, 9}, {0x00, 0}, {0x00, 0}, {0x00, 0} + }, + { + {0x1e, 9}, {0x00, 0}, {0x00, 0}, {0x00, 0} + }, + { + {0x1d, 9}, {0x00, 0}, {0x00, 0}, {0x00, 0} + }, + { + {0x1c, 9}, {0x00, 0}, {0x00, 0}, {0x00, 0} + }, + { + {0x1b, 9}, {0x00, 0}, {0x00, 0}, {0x00, 0} + }, + { + {0x1a, 9}, {0x00, 0}, {0x00, 0}, {0x00, 0} + }, + { + {0x22,11}, {0x00, 0}, {0x00, 0}, {0x00, 0} + }, + { + {0x23,11}, {0x00, 0}, {0x00, 0}, {0x00, 0} + }, + { + {0x56,12}, {0x00, 0}, {0x00, 0}, {0x00, 0} + }, + { + {0x57,12}, {0x00, 0}, {0x00, 0}, {0x00, 0} + } +}; + +/* first coeffs of last = 1. indexing by [run][level-1] */ + +static const UINT8 coeff_tab2[2][3][2] = +{ + /* run = 0 */ + { + {0x07, 4}, {0x19, 9}, {0x05,11} + }, + /* run = 1 */ + { + {0x0f, 6}, {0x04,11}, {0x00, 0} + } +}; + +/* rest of coeffs for last = 1. indexing by [run-2] */ + +static const UINT8 coeff_tab3[40][2] = +{ + {0x0e, 6}, {0x0d, 6}, {0x0c, 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}, + {0x07,10}, {0x06,10}, {0x05,10}, {0x04,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}, + {0x00, 0} +}; + +/* intra MCBPC, mb_type = 3 */ +static UINT8 intra_MCBPC_code[4] = { 1, 1, 2, 3 }; +static UINT8 intra_MCBPC_bits[4] = { 1, 3, 3, 3 }; + +/* inter MCBPC, mb_type = 0 then 3 */ +static UINT8 inter_MCBPC_code[8] = { 1, 3, 2, 5, 3, 4, 3, 3 }; +static UINT8 inter_MCBPC_bits[8] = { 1, 4, 4, 6, 5, 8, 8, 7 }; + +static 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} +}; + + |