Mercurial > libavcodec.hg
comparison vp3data.h @ 2702:5a4e5225cbb6 libavcodec
use VLCs for in place of get_fragment_run_length(), get_mode_code(), and
get_motion_vector_vlc()
| author | melanson |
|---|---|
| date | Tue, 17 May 2005 23:39:23 +0000 |
| parents | 5d4a6edbc99c |
| children | 3817945001ce |
comparison
equal
deleted
inserted
replaced
| 2701:6a22fbe16d6d | 2702:5a4e5225cbb6 |
|---|---|
| 70 2, 2, 2, 2, 2, 2, 2, 2, | 70 2, 2, 2, 2, 2, 2, 2, 2, |
| 71 0, 0, 0, 0, 0, 0, 0, 0, | 71 0, 0, 0, 0, 0, 0, 0, 0, |
| 72 0, 0, 0, 0, 0, 0, 0, 0 | 72 0, 0, 0, 0, 0, 0, 0, 0 |
| 73 }; | 73 }; |
| 74 | 74 |
| 75 static const uint16_t fragment_run_length_vlc_table[30][2] = { | |
| 76 /* 1 -> 2 */ | |
| 77 { 0x0, 2 }, { 0x1, 2 }, | |
| 78 | |
| 79 /* 3 -> 4 */ | |
| 80 { 0x4, 3 }, { 0x5, 3 }, | |
| 81 | |
| 82 /* 5 -> 6 */ | |
| 83 { 0xC, 4 }, { 0xD, 4 }, | |
| 84 | |
| 85 /* 7 -> 10 */ | |
| 86 { 0x38, 6 }, { 0x39, 6 }, | |
| 87 { 0x3A, 6 }, { 0x3B, 6 }, | |
| 88 | |
| 89 /* 11 -> 14 */ | |
| 90 { 0x78, 7 }, { 0x79, 7 }, | |
| 91 { 0x7A, 7 }, { 0x7B, 7 }, | |
| 92 | |
| 93 /* 15 -> 30 */ | |
| 94 { 0x1F0, 9 }, { 0x1F1, 9 }, { 0x1F2, 9 }, { 0x1F3, 9 }, | |
| 95 { 0x1F4, 9 }, { 0x1F5, 9 }, { 0x1F6, 9 }, { 0x1F7, 9 }, | |
| 96 { 0x1F8, 9 }, { 0x1F9, 9 }, { 0x1FA, 9 }, { 0x1FB, 9 }, | |
| 97 { 0x1FC, 9 }, { 0x1FD, 9 }, { 0x1FE, 9 }, { 0x1FF, 9 } | |
| 98 }; | |
| 99 | |
| 100 static const uint8_t mode_code_vlc_table[30][2] = { | |
| 101 { 0, 1 }, { 2, 2 }, | |
| 102 { 6, 3 }, { 14, 4 }, | |
| 103 { 30, 5 }, { 62, 6 }, | |
| 104 { 126, 7 }, { 127, 7 } | |
| 105 }; | |
| 106 | |
| 107 static const uint8_t motion_vector_vlc_table[63][2] = { | |
| 108 { 0, 3 }, | |
| 109 { 1, 3 }, | |
| 110 { 2, 3 }, | |
| 111 | |
| 112 { 6, 4 }, { 7, 4 }, | |
| 113 | |
| 114 { 8, 4 }, { 9, 4 }, | |
| 115 | |
| 116 { 40, 6 }, { 41, 6 }, { 42, 6 }, { 43, 6 }, | |
| 117 { 44, 6 }, { 45, 6 }, { 46, 6 }, { 47, 6 }, | |
| 118 | |
| 119 { 96, 7 }, { 97, 7 }, { 98, 7 }, { 99, 7 }, | |
| 120 { 100, 7 }, { 101, 7 }, { 102, 7 }, { 103, 7 }, | |
| 121 { 104, 7 }, { 105, 7 }, { 106, 7 }, { 107, 7 }, | |
| 122 { 108, 7 }, { 109, 7 }, { 110, 7 }, { 111, 7 }, | |
| 123 | |
| 124 { 0xE0, 8 }, { 0xE1, 8 }, { 0xE2, 8 }, { 0xE3, 8 }, | |
| 125 { 0xE4, 8 }, { 0xE5, 8 }, { 0xE6, 8 }, { 0xE7, 8 }, | |
| 126 { 0xE8, 8 }, { 0xE9, 8 }, { 0xEA, 8 }, { 0xEB, 8 }, | |
| 127 { 0xEC, 8 }, { 0xED, 8 }, { 0xEE, 8 }, { 0xEF, 8 }, | |
| 128 | |
| 129 { 0xF0, 8 }, { 0xF1, 8 }, { 0xF2, 8 }, { 0xF3, 8 }, | |
| 130 { 0xF4, 8 }, { 0xF5, 8 }, { 0xF6, 8 }, { 0xF7, 8 }, | |
| 131 { 0xF8, 8 }, { 0xF9, 8 }, { 0xFA, 8 }, { 0xFB, 8 }, | |
| 132 { 0xFC, 8 }, { 0xFD, 8 }, { 0xFE, 8 }, { 0xFF, 8 } | |
| 133 }; | |
| 134 | |
| 135 static const int motion_vector_table[63] = { | |
| 136 0, 1, -1, | |
| 137 2, -2, | |
| 138 3, -3, | |
| 139 4, -4, 5, -5, 6, -6, 7, -7, | |
| 140 8, -8, 9, -9, 10, -10, 11, -11, 12, -12, 13, -13, 14, -14, 15, -15, | |
| 141 16, -16, 17, -17, 18, -18, 19, -19, 20, -20, 21, -21, 22, -22, 23, -23, | |
| 142 24, -24, 25, -25, 26, -26, 27, -27, 28, -28, 29, -29, 30, -30, 31, -31 | |
| 143 }; | |
| 144 | |
| 75 static const uint16_t dc_bias[16][32][2] = { | 145 static const uint16_t dc_bias[16][32][2] = { |
| 76 { /* DC bias table 0 */ | 146 { /* DC bias table 0 */ |
| 77 { 0x2D, 6 }, | 147 { 0x2D, 6 }, |
| 78 { 0x26, 7 }, | 148 { 0x26, 7 }, |
| 79 { 0x166, 9 }, | 149 { 0x166, 9 }, |
