comparison mpegvideo.h @ 828:ace3ccd18dd2 libavcodec

Altivec Patch (Mark III) by (Dieter Shirley <dieters at schemasoft dot com>)
author michaelni
date Sat, 02 Nov 2002 11:28:08 +0000
parents 08423289ec57
children e460775adb38
comparison
equal deleted inserted replaced
827:770578c6c300 828:ace3ccd18dd2
101 101
102 typedef struct ScanTable{ 102 typedef struct ScanTable{
103 const UINT8 *scantable; 103 const UINT8 *scantable;
104 UINT8 permutated[64]; 104 UINT8 permutated[64];
105 UINT8 raster_end[64]; 105 UINT8 raster_end[64];
106 #ifdef ARCH_POWERPC
107 /* Used by dct_quantise_alitvec to find last-non-zero */
108 UINT8 __align8 inverse[64];
109 #endif
106 } ScanTable; 110 } ScanTable;
107 111
108 typedef struct MpegEncContext { 112 typedef struct MpegEncContext {
109 struct AVCodecContext *avctx; 113 struct AVCodecContext *avctx;
110 /* the following parameters must be initialized before encoding */ 114 /* the following parameters must be initialized before encoding */
285 int intra_quant_bias; /* bias for the quantizer */ 289 int intra_quant_bias; /* bias for the quantizer */
286 int inter_quant_bias; /* bias for the quantizer */ 290 int inter_quant_bias; /* bias for the quantizer */
287 int min_qcoeff; /* minimum encodable coefficient */ 291 int min_qcoeff; /* minimum encodable coefficient */
288 int max_qcoeff; /* maximum encodable coefficient */ 292 int max_qcoeff; /* maximum encodable coefficient */
289 /* precomputed matrix (combine qscale and DCT renorm) */ 293 /* precomputed matrix (combine qscale and DCT renorm) */
290 int q_intra_matrix[32][64]; 294 int __align8 q_intra_matrix[32][64];
291 int q_inter_matrix[32][64]; 295 int __align8 q_inter_matrix[32][64];
292 /* identical to the above but for MMX & these are not permutated */ 296 /* identical to the above but for MMX & these are not permutated */
293 UINT16 __align8 q_intra_matrix16[32][64]; 297 UINT16 __align8 q_intra_matrix16[32][64];
294 UINT16 __align8 q_inter_matrix16[32][64]; 298 UINT16 __align8 q_inter_matrix16[32][64];
295 UINT16 __align8 q_intra_matrix16_bias[32][64]; 299 UINT16 __align8 q_intra_matrix16_bias[32][64];
296 UINT16 __align8 q_inter_matrix16_bias[32][64]; 300 UINT16 __align8 q_inter_matrix16_bias[32][64];
297 int block_last_index[6]; /* last non zero coefficient in block */ 301 int block_last_index[6]; /* last non zero coefficient in block */
298 /* scantables */ 302 /* scantables */
299 ScanTable intra_scantable; 303 ScanTable __align8 intra_scantable;
300 ScanTable intra_h_scantable; 304 ScanTable intra_h_scantable;
301 ScanTable intra_v_scantable; 305 ScanTable intra_v_scantable;
302 ScanTable inter_scantable; // if inter == intra then intra should be used to reduce tha cache usage 306 ScanTable inter_scantable; // if inter == intra then intra should be used to reduce tha cache usage
303 UINT8 idct_permutation[64]; 307 UINT8 idct_permutation[64];
304 int idct_permutation_type; 308 int idct_permutation_type;
533 void MPV_common_init_mlib(MpegEncContext *s); 537 void MPV_common_init_mlib(MpegEncContext *s);
534 #endif 538 #endif
535 #ifdef HAVE_MMI 539 #ifdef HAVE_MMI
536 void MPV_common_init_mmi(MpegEncContext *s); 540 void MPV_common_init_mmi(MpegEncContext *s);
537 #endif 541 #endif
542 #ifdef ARCH_POWERPC
543 void MPV_common_init_ppc(MpegEncContext *s);
544 #endif
538 extern void (*draw_edges)(UINT8 *buf, int wrap, int width, int height, int w); 545 extern void (*draw_edges)(UINT8 *buf, int wrap, int width, int height, int w);
539 void ff_conceal_past_errors(MpegEncContext *s, int conceal_all); 546 void ff_conceal_past_errors(MpegEncContext *s, int conceal_all);
540 void ff_copy_bits(PutBitContext *pb, UINT8 *src, int length); 547 void ff_copy_bits(PutBitContext *pb, UINT8 *src, int length);
541 void ff_clean_intra_table_entries(MpegEncContext *s); 548 void ff_clean_intra_table_entries(MpegEncContext *s);
542 void ff_init_scantable(MpegEncContext *s, ScanTable *st, const UINT8 *src_scantable); 549 void ff_init_scantable(MpegEncContext *s, ScanTable *st, const UINT8 *src_scantable);