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 },