⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 quant_matrix.c

📁 用MPEG-4对YUV视频文件编码压缩成divx视频文件
💻 C
📖 第 1 页 / 共 3 页
字号:
#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 + -