comparison mpegvideo.h @ 294:944632089814 libavcodec

4MV motion estimation (not finished yet) SAD functions rewritten (8x8 support & MMX2 optimizations) HQ inter/intra decission msmpeg4 encoding bugfix (MV where too long)
author michaelni
date Wed, 27 Mar 2002 21:25:22 +0000
parents 2899263586cd
children a1234c032636
comparison
equal deleted inserted replaced
293:6eaf5da091fa 294:944632089814
63 float qblur; /* amount of qscale smoothing over time (0.0-1.0) */ 63 float qblur; /* amount of qscale smoothing over time (0.0-1.0) */
64 int qmin; /* min qscale */ 64 int qmin; /* min qscale */
65 int qmax; /* max qscale */ 65 int qmax; /* max qscale */
66 int max_qdiff; /* max qscale difference between frames */ 66 int max_qdiff; /* max qscale difference between frames */
67 int encoding; /* true if we are encoding (vs decoding) */ 67 int encoding; /* true if we are encoding (vs decoding) */
68 int hq; /* set if CODEC_FLAG_HQ is used in AVCodecContext.flags */ 68 int flags; /* AVCodecContext.flags (HQ, MV4, ...) */
69 /* the following fields are managed internally by the encoder */ 69 /* the following fields are managed internally by the encoder */
70 70
71 /* bit output */ 71 /* bit output */
72 PutBitContext pb; 72 PutBitContext pb;
73 73
139 139
140 /* macroblock layer */ 140 /* macroblock layer */
141 int mb_x, mb_y; 141 int mb_x, mb_y;
142 int mb_incr; 142 int mb_incr;
143 int mb_intra; 143 int mb_intra;
144 INT16 *mb_var; /* Table for MB variances */ 144 UINT16 *mb_var; /* Table for MB variances */
145 char *mb_type; /* Table for MB type */ 145 UINT8 *mb_type; /* Table for MB type */
146 #define MB_TYPE_INTRA 0x01
147 #define MB_TYPE_INTER 0x02
148 #define MB_TYPE_INTER4V 0x04
149 #define MB_TYPE_SKIPED 0x08
150 #define MB_TYPE_DIRECT 0x10
151 #define MB_TYPE_FORWARD 0x20
152 #define MB_TYPE_BACKWAD 0x40
153 #define MB_TYPE_BIDIR 0x80
146 154
147 int block_index[6]; 155 int block_index[6];
148 int block_wrap[6]; 156 int block_wrap[6];
149 157
150 /* matrix transmitted in the bitstream */ 158 /* matrix transmitted in the bitstream */
293 void (*rtp_callback)(void *data, int size, int packet_number); 301 void (*rtp_callback)(void *data, int size, int packet_number);
294 UINT8 *ptr_lastgob; 302 UINT8 *ptr_lastgob;
295 UINT8 *ptr_last_mb_line; 303 UINT8 *ptr_last_mb_line;
296 UINT32 mb_line_avgsize; 304 UINT32 mb_line_avgsize;
297 305
298 DCTELEM block[6][64] __align8; 306 DCTELEM (*block)[64]; /* points to one of the following blocks */
307 DCTELEM intra_block[6][64] __align8;
308 DCTELEM inter_block[6][64] __align8;
309 DCTELEM inter4v_block[6][64] __align8;
299 void (*dct_unquantize)(struct MpegEncContext *s, 310 void (*dct_unquantize)(struct MpegEncContext *s,
300 DCTELEM *block, int n, int qscale); 311 DCTELEM *block, int n, int qscale);
301 } MpegEncContext; 312 } MpegEncContext;
302 313
303 int MPV_common_init(MpegEncContext *s); 314 int MPV_common_init(MpegEncContext *s);
309 void MPV_common_init_mmx(MpegEncContext *s); 320 void MPV_common_init_mmx(MpegEncContext *s);
310 #endif 321 #endif
311 322
312 /* motion_est.c */ 323 /* motion_est.c */
313 324
314 int estimate_motion(MpegEncContext *s, 325 void estimate_motion(MpegEncContext *s,
315 int mb_x, int mb_y, 326 int mb_x, int mb_y);
316 int *mx_ptr, int *my_ptr);
317 327
318 /* mpeg12.c */ 328 /* mpeg12.c */
319 extern INT16 default_intra_matrix[64]; 329 extern INT16 default_intra_matrix[64];
320 extern INT16 default_non_intra_matrix[64]; 330 extern INT16 default_non_intra_matrix[64];
321 331