Mercurial > libavcodec.hg
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 |