📄 quant_matrix.c
字号:
#include "../user_macro.h"
#include "quant_matrix.h"
/*whq,2002.12.21,if don't judge in bitstream,the following
function can be moved
*/
uint8_t custom_intra_matrix = 0;
uint8_t custom_inter_matrix = 0;
int16_t intra_matrix[64] = {
8, 17, 18, 19, 21, 23, 25, 27,
17, 18, 19, 21, 23, 25, 27, 28,
20, 21, 22, 23, 24, 26, 28, 30,
21, 22, 23, 24, 26, 28, 30, 32,
22, 23, 24, 26, 28, 30, 32, 35,
23, 24, 26, 28, 30, 32, 35, 38,
25, 26, 28, 30, 32, 35, 38, 41,
27, 28, 30, 32, 35, 38, 41, 45
};
int16_t inter_matrix[64] = {
16, 17, 18, 19, 20, 21, 22, 23,
17, 18, 19, 20, 21, 22, 23, 24,
18, 19, 20, 21, 22, 23, 24, 25,
19, 20, 21, 22, 23, 24, 26, 27,
20, 21, 22, 23, 25, 26, 27, 28,
21, 22, 23, 24, 26, 27, 28, 30,
22, 23, 24, 26, 27, 28, 30, 31,
23, 24, 25, 27, 28, 30, 31, 33
};
/* whq */
int16_t dc_quant[2][31]={
{
8192, 8192, 8192, 8192,
7281, 7281, 6553, 6553,
5957, 5957, 5461, 5461,
5041, 5041, 4681, 4681,
4369, 4369, 4096, 4096,
3855, 3855, 3640, 3640,
3449, 3276, 3120, 2978,
2849, 2730, 2621
},/*chroma*/
{
8192, 8192, 8192, 8192,
6553, 5461, 4681, 4096,
3855, 3640, 3449, 3276,
3120, 2978, 2849, 2730,
2621, 2520, 2427, 2340,
2259, 2184, 2114, 2048,
1927, 1820, 1724, 1638,
1560, 1489, 1424
}/*lum*/
};
int16_t intra_quant_mat_self[31][64]={
/*quant=1*/
{
8192 ,3855 ,3640 ,3449 ,3120 ,2849 ,2621 ,2427 ,
3855 ,3640 ,3449 ,3120 ,2849 ,2621 ,2427 ,2340 ,
3276 ,3120 ,2978 ,2849 ,2730 ,2520 ,2340 ,2184 ,
3120 ,2978 ,2849 ,2730 ,2520 ,2340 ,2184 ,2048 ,
2978 ,2849 ,2730 ,2520 ,2340 ,2184 ,2048 ,1872 ,
2849 ,2730 ,2520 ,2340 ,2184 ,2048 ,1872 ,1724 ,
2621 ,2520 ,2340 ,2184 ,2048 ,1872 ,1724 ,1598 ,
2427 ,2340 ,2184 ,2048 ,1872 ,1724 ,1598 ,1456
},
/*quant=2*/
{
4096 ,1927 ,1820 ,1724 ,1560 ,1424 ,1310 ,1213 ,
1927 ,1820 ,1724 ,1560 ,1424 ,1310 ,1213 ,1170 ,
1638 ,1560 ,1489 ,1424 ,1365 ,1260 ,1170 ,1092 ,
1560 ,1489 ,1424 ,1365 ,1260 ,1170 ,1092 ,1024 ,
1489 ,1424 ,1365 ,1260 ,1170 ,1092 ,1024 , 936 ,
1424 ,1365 ,1260 ,1170 ,1092 ,1024 , 936 , 862 ,
1310 ,1260 ,1170 ,1092 ,1024 , 936 , 862 , 799 ,
1213 ,1170 ,1092 ,1024 , 936 , 862 , 799 , 728
},
/*quant=3*/
{
2730 ,1285 ,1213 ,1149 ,1040 ,949 ,873 ,809,
1285 ,1213 ,1149 ,1040 , 949 ,873 ,809 ,780,
1092 ,1040 , 992 , 949 , 910 ,840 ,780 ,728,
1040 , 992 , 949 , 910 , 840 ,780 ,728 ,682,
992 , 949 , 910 , 840 , 780 ,728 ,682 ,624,
949 , 910 , 840 , 780 , 728 ,682 ,624 ,574,
873 , 840 , 780 , 728 , 682 ,624 ,574 ,532,
809 , 780 , 728 , 682 , 624 ,574 ,532 ,485
},
/*quant=4*/
{
2048 , 963 , 910 , 862 , 780 ,712 , 655 , 606 ,
963 , 910 , 862 , 780 , 712 , 655 , 606 , 585 ,
819 , 780 , 744 , 712 , 682 , 630 , 585 , 546 ,
780 , 744 , 712 , 682 , 630 , 585 , 546 , 512 ,
744 , 712 , 682 , 630 , 585 , 546 , 512 , 468 ,
712 , 682 , 630 , 585 , 546 , 512 , 468 , 431 ,
655 , 630 , 585 , 546 , 512 , 468 , 431 , 399 ,
606 , 585 , 546 , 512 , 468 , 431 , 399 , 364
},
/*quant=5*/
{
1638 ,771 ,728 ,689 ,624 ,569 ,524 ,485 ,
771 ,728 ,689 ,624 ,569 ,524 ,485 ,468 ,
655 ,624 ,595 ,569 ,546 ,504 ,468 ,436 ,
624 ,595 ,569 ,546 ,504 ,468 ,436 ,409 ,
595 ,569 ,546 ,504 ,468 ,436 ,409 ,374 ,
569 ,546 ,504 ,468 ,436 ,409 ,374 ,344 ,
524 ,504 ,468 ,436 ,409 ,374 ,344 ,319 ,
485 ,468 ,436 ,409 ,374 ,344 ,319 ,291
},
/*quant=6*/
{
1365 ,
642 ,
606 ,
574 ,
520 ,
474 ,
436 ,
404 ,
642 ,
606 ,
574 ,
520 ,
474 ,
436 ,
404 ,
390 ,
546 ,
520 ,
496 ,
474 ,
455 ,
420 ,
390 ,
364 ,
520 ,
496 ,
474 ,
455 ,
420 ,
390 ,
364 ,
341 ,
496 ,
474 ,
455 ,
420 ,
390 ,
364 ,
341 ,
312 ,
474 ,
455 ,
420 ,
390 ,
364 ,
341 ,
312 ,
287 ,
436 ,
420 ,
390 ,
364 ,
341 ,
312 ,
287 ,
266 ,
404 ,
390 ,
364 ,
341 ,
312 ,
287 ,
266 ,
242
},
/*quant=7*/
{
1170 ,
550 ,
520 ,
492 ,
445 ,
407 ,
374 ,
346 ,
550 ,
520 ,
492 ,
445 ,
407 ,
374 ,
346 ,
334 ,
468 ,
445 ,
425 ,
407 ,
390 ,
360 ,
334 ,
312 ,
445 ,
425 ,
407 ,
390 ,
360 ,
334 ,
312 ,
292 ,
425 ,
407 ,
390 ,
360 ,
334 ,
312 ,
292 ,
267 ,
407 ,
390 ,
360 ,
334 ,
312 ,
292 ,
267 ,
246 ,
374 ,
360 ,
334 ,
312 ,
292 ,
267 ,
246 ,
228 ,
346 ,
334 ,
312 ,
292 ,
267 ,
246 ,
228 ,
208
},
/*quant=8*/
{
1024,
481 ,
455 ,
431 ,
390 ,
356 ,
327 ,
303 ,
481 ,
455 ,
431 ,
390 ,
356 ,
327 ,
303 ,
292 ,
409 ,
390 ,
372 ,
356 ,
341 ,
315 ,
292 ,
273 ,
390 ,
372 ,
356 ,
341 ,
315 ,
292 ,
273 ,
256 ,
372 ,
356 ,
341 ,
315 ,
292 ,
273 ,
256 ,
234 ,
356 ,
341 ,
315 ,
292 ,
273 ,
256 ,
234 ,
215 ,
327 ,
315 ,
292 ,
273 ,
256 ,
234 ,
215 ,
199 ,
303 ,
292 ,
273 ,
256 ,
234 ,
215 ,
199 ,
182
},
/*quant=9*/
{
910 ,
428 ,
404 ,
383 ,
346 ,
316 ,
291 ,
269 ,
428 ,
404 ,
383 ,
346 ,
316 ,
291 ,
269 ,
260 ,
364 ,
346 ,
330 ,
316 ,
303 ,
280 ,
260 ,
242 ,
346 ,
330 ,
316 ,
303 ,
280 ,
260 ,
242 ,
227 ,
330 ,
316 ,
303 ,
280 ,
260 ,
242 ,
227 ,
208 ,
316 ,
303 ,
280 ,
260 ,
242 ,
227 ,
208 ,
191 ,
291 ,
280 ,
260 ,
242 ,
227 ,
208 ,
191 ,
177 ,
269 ,
260 ,
242 ,
227 ,
208 ,
191 ,
177 ,
161
},
/*quant=10*/
{
819 ,
385 ,
364 ,
344 ,
312 ,
284 ,
262 ,
242 ,
385 ,
364 ,
344 ,
312 ,
284 ,
262 ,
242 ,
234 ,
327 ,
312 ,
297 ,
284 ,
273 ,
252 ,
234 ,
218 ,
312 ,
297 ,
284 ,
273 ,
252 ,
234 ,
218 ,
204 ,
297 ,
284 ,
273 ,
252 ,
234 ,
218 ,
204 ,
187 ,
284 ,
273 ,
252 ,
234 ,
218 ,
204 ,
187 ,
172 ,
262 ,
252 ,
234 ,
218 ,
204 ,
187 ,
172 ,
159 ,
242 ,
234 ,
218 ,
204 ,
187 ,
172 ,
159 ,
145
},
/*quant=11*/
{
744 ,
350 ,
330 ,
313 ,
283 ,
259 ,
238 ,
220 ,
350 ,
330 ,
313 ,
283 ,
259 ,
238 ,
220 ,
212 ,
297 ,
283 ,
270 ,
259 ,
248 ,
229 ,
212 ,
198 ,
283 ,
270 ,
259 ,
248 ,
229 ,
212 ,
198 ,
186 ,
270 ,
259 ,
248 ,
229 ,
212 ,
198 ,
186 ,
170 ,
259 ,
248 ,
229 ,
212 ,
198 ,
186 ,
170 ,
156 ,
238 ,
229 ,
212 ,
198 ,
186 ,
170 ,
156 ,
145 ,
220 ,
212 ,
198 ,
186 ,
170 ,
156 ,
145 ,
132
},
/*quant=12*/
{
682 ,
321 ,
303 ,
287 ,
260 ,
237 ,
218 ,
202 ,
321 ,
303 ,
287 ,
260 ,
237 ,
218 ,
202 ,
195 ,
273 ,
260 ,
248 ,
237 ,
227 ,
210 ,
195 ,
182 ,
260 ,
248 ,
237 ,
227 ,
210 ,
195 ,
182 ,
170 ,
248 ,
237 ,
227 ,
210 ,
195 ,
182 ,
170 ,
156 ,
237 ,
227 ,
210 ,
195 ,
182 ,
170 ,
156 ,
143 ,
218 ,
210 ,
195 ,
182 ,
170 ,
156 ,
143 ,
133 ,
202 ,
195 ,
182 ,
170 ,
156 ,
143 ,
133 ,
121
},
/*quant=13*/
{
630 ,
296 ,
280 ,
265 ,
240 ,
219 ,
201 ,
186 ,
296 ,
280 ,
265 ,
240 ,
219 ,
201 ,
186 ,
180 ,
252 ,
240 ,
229 ,
219 ,
210 ,
193 ,
180 ,
168 ,
240 ,
229 ,
219 ,
210 ,
193 ,
180 ,
168 ,
157 ,
229 ,
219 ,
210 ,
193 ,
180 ,
168 ,
157 ,
144 ,
219 ,
210 ,
193 ,
180 ,
168 ,
157 ,
144 ,
132 ,
201 ,
193 ,
180 ,
168 ,
157 ,
144 ,
132 ,
122 ,
186 ,
180 ,
168 ,
157 ,
144 ,
132 ,
122 ,
112
},
/*quant=14*/
{
585 ,
275 ,
260 ,
246 ,
222 ,
203 ,
187 ,
173 ,
275 ,
260 ,
246 ,
222 ,
203 ,
187 ,
173 ,
167 ,
234 ,
222 ,
212 ,
203 ,
195 ,
180 ,
167 ,
156 ,
222 ,
212 ,
203 ,
195 ,
180 ,
167 ,
156 ,
146 ,
212 ,
203 ,
195 ,
180 ,
167 ,
156 ,
146 ,
133 ,
203 ,
195 ,
180 ,
167 ,
156 ,
146 ,
133 ,
123 ,
187 ,
180 ,
167 ,
156 ,
146 ,
133 ,
123 ,
114 ,
173 ,
167 ,
156 ,
146 ,
133 ,
123 ,
114 ,
104
},
/*quant=15*/
{
546 ,
257 ,
242 ,
229 ,
208 ,
189 ,
174 ,
161 ,
257 ,
242 ,
229 ,
208 ,
189 ,
174 ,
161 ,
156 ,
218 ,
208 ,
198 ,
189 ,
182 ,
168 ,
156 ,
145 ,
208 ,
198 ,
189 ,
182 ,
168 ,
156 ,
145 ,
136 ,
198 ,
189 ,
182 ,
168 ,
156 ,
145 ,
136 ,
124 ,
189 ,
182 ,
168 ,
156 ,
145 ,
136 ,
124 ,
114 ,
174 ,
168 ,
156 ,
145 ,
136 ,
124 ,
114 ,
106 ,
161 ,
156 ,
145 ,
136 ,
124 ,
114 ,
106 ,
97
},
/*quant=16*/
{
512 ,
240 ,
227 ,
215 ,
195 ,
178 ,
163 ,
151 ,
240 ,
227 ,
215 ,
195 ,
178 ,
163 ,
151 ,
146 ,
204 ,
195 ,
186 ,
178 ,
170 ,
157 ,
146 ,
136 ,
195 ,
186 ,
178 ,
170 ,
157 ,
146 ,
136 ,
128 ,
186 ,
178 ,
170 ,
157 ,
146 ,
136 ,
128 ,
117 ,
178 ,
170 ,
157 ,
146 ,
136 ,
128 ,
117 ,
107 ,
163 ,
157 ,
146 ,
136 ,
128 ,
117 ,
107 ,
99 ,
151 ,
146 ,
136 ,
128 ,
117 ,
107 ,
99 ,
91
},
/*quant=17*/
{
481 ,
226 ,
214 ,
202 ,
183 ,
167 ,
154 ,
142 ,
226 ,
214 ,
202 ,
183 ,
167 ,
154 ,
142 ,
137 ,
192 ,
183 ,
175 ,
167 ,
160 ,
148 ,
137 ,
128 ,
183 ,
175 ,
167 ,
160 ,
148 ,
137 ,
128 ,
120 ,
175 ,
167 ,
160 ,
148 ,
137 ,
128 ,
120 ,
110 ,
167 ,
160 ,
148 ,
137 ,
128 ,
120 ,
110 ,
101 ,
154 ,
148 ,
137 ,
128 ,
120 ,
110 ,
101 ,
94 ,
142 ,
137 ,
128 ,
120 ,
110 ,
101 ,
94 ,
85
},
/*quant=18*/
{
455 ,
214 ,
202 ,
191 ,
173 ,
158 ,
145 ,
134 ,
214 ,
202 ,
191 ,
173 ,
158 ,
145 ,
134 ,
130 ,
182 ,
173 ,
165 ,
158 ,
151 ,
140 ,
130 ,
121 ,
173 ,
165 ,
158 ,
151 ,
140 ,
130 ,
121 ,
113 ,
165 ,
158 ,
151 ,
140 ,
130 ,
121 ,
113 ,
104 ,
158 ,
151 ,
140 ,
130 ,
121 ,
113 ,
104 ,
95 ,
145 ,
140 ,
130 ,
121 ,
113 ,
104 ,
95 ,
88 ,
134 ,
130 ,
121 ,
113 ,
104 ,
95 ,
88 ,
80
},
/*quant=19*/
{
431 ,
202 ,
191 ,
181 ,
164 ,
149 ,
137 ,
127 ,
202 ,
191 ,
181 ,
164 ,
149 ,
137 ,
127 ,
123 ,
172 ,
164 ,
156 ,
149 ,
143 ,
132 ,
123 ,
114 ,
164 ,
156 ,
149 ,
143 ,
132 ,
123 ,
114 ,
107 ,
156 ,
149 ,
143 ,
132 ,
123 ,
114 ,
107 ,
98 ,
149 ,
143 ,
132 ,
123 ,
114 ,
107 ,
98 ,
90 ,
137 ,
132 ,
123 ,
114 ,
107 ,
98 ,
90 ,
84 ,
127 ,
123 ,
114 ,
107 ,
98 ,
90 ,
84 ,
76
},
/*quant=20*/
{
409 ,
192 ,
182 ,
172 ,
156 ,
142 ,
131 ,
121 ,
192 ,
182 ,
172 ,
156 ,
142 ,
131 ,
121 ,
117 ,
163 ,
156 ,
148 ,
142 ,
136 ,
126 ,
117 ,
109 ,
156 ,
148 ,
142 ,
136 ,
126 ,
117 ,
109 ,
102 ,
148 ,
142 ,
136 ,
126 ,
117 ,
109 ,
102 ,
93 ,
142 ,
136 ,
126 ,
117 ,
109 ,
102 ,
93 ,
86 ,
131 ,
126 ,
117 ,
109 ,
102 ,
93 ,
86 ,
79 ,
121 ,
117 ,
109 ,
102 ,
93 ,
86 ,
79 ,
72
},
/*quant=21*/
{
390 ,
183 ,
173 ,
164 ,
148 ,
135 ,
124 ,
115 ,
183 ,
173 ,
164 ,
148 ,
135 ,
124 ,
115 ,
111 ,
156 ,
148 ,
141 ,
135 ,
130 ,
120 ,
111 ,
104 ,
148 ,
141 ,
135 ,
130 ,
120 ,
111 ,
104 ,
97 ,
141 ,
135 ,
130 ,
120 ,
111 ,
104 ,
97 ,
89 ,
135 ,
130 ,
120 ,
111 ,
104 ,
97 ,
89 ,
82 ,
124 ,
120 ,
111 ,
104 ,
97 ,
89 ,
82 ,
76 ,
115 ,
111 ,
104 ,
97 ,
89 ,
82 ,
76 ,
69
},
/*quant=22*/
{
372 ,
175 ,
165 ,
156 ,
141 ,
129 ,
119 ,
110 ,
175 ,
165 ,
156 ,
141 ,
129 ,
119 ,
110 ,
106 ,
148 ,
141 ,
135 ,
129 ,
124 ,
114 ,
106 ,
99 ,
141 ,
135 ,
129 ,
124 ,
114 ,
106 ,
99 ,
93 ,
135 ,
129 ,
124 ,
114 ,
106 ,
99 ,
93 ,
85 ,
129 ,
124 ,
114 ,
106 ,
99 ,
93 ,
85 ,
78 ,
119 ,
114 ,
106 ,
99 ,
93 ,
85 ,
78 ,
72 ,
110 ,
106 ,
99 ,
93 ,
85 ,
78 ,
72 ,
66
},
/*quant=23*/
{
356 ,
167 ,
158 ,
149 ,
135 ,
123 ,
113 ,
105 ,
167 ,
158 ,
149 ,
135 ,
123 ,
113 ,
105 ,
101 ,
142 ,
135 ,
129 ,
123 ,
118 ,
109 ,
101 ,
94 ,
135 ,
129 ,
123 ,
118 ,
109 ,
101 ,
94 ,
89 ,
129 ,
123 ,
118 ,
109 ,
101 ,
94 ,
89 ,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -