comparison mpegvideo.h @ 1644:835cf346975e libavcodec

h263 loop filter fixed h263 modified quantization CODEC_FLAG_OBMC
author michael
date Mon, 01 Dec 2003 15:23:14 +0000
parents 0226cad80fc2
children e6a474a5b929
comparison
equal deleted inserted replaced
1643:9bb07bd315d9 1644:835cf346975e
335 int16_t *dc_val[3]; ///< used for mpeg4 DC prediction, all 3 arrays must be continuous 335 int16_t *dc_val[3]; ///< used for mpeg4 DC prediction, all 3 arrays must be continuous
336 int16_t dc_cache[4*5]; 336 int16_t dc_cache[4*5];
337 int y_dc_scale, c_dc_scale; 337 int y_dc_scale, c_dc_scale;
338 uint8_t *y_dc_scale_table; ///< qscale -> y_dc_scale table 338 uint8_t *y_dc_scale_table; ///< qscale -> y_dc_scale table
339 uint8_t *c_dc_scale_table; ///< qscale -> c_dc_scale table 339 uint8_t *c_dc_scale_table; ///< qscale -> c_dc_scale table
340 const uint8_t *chroma_qscale_table; ///< qscale -> chroma_qscale (h263)
340 uint8_t *coded_block; ///< used for coded block pattern prediction (msmpeg4v3, wmv1) 341 uint8_t *coded_block; ///< used for coded block pattern prediction (msmpeg4v3, wmv1)
341 int16_t (*ac_val[3])[16]; ///< used for for mpeg4 AC prediction, all 3 arrays must be continuous 342 int16_t (*ac_val[3])[16]; ///< used for for mpeg4 AC prediction, all 3 arrays must be continuous
342 int ac_pred; 343 int ac_pred;
343 uint8_t *prev_pict_types; ///< previous picture types in bitstream order, used for mb skip 344 uint8_t *prev_pict_types; ///< previous picture types in bitstream order, used for mb skip
344 #define PREV_PICT_TYPES_BUFFER_SIZE 256 345 #define PREV_PICT_TYPES_BUFFER_SIZE 256
350 uint8_t *pred_dir_table; ///< used to store pred_dir for partitioned decoding 351 uint8_t *pred_dir_table; ///< used to store pred_dir for partitioned decoding
351 uint8_t *allocated_edge_emu_buffer; 352 uint8_t *allocated_edge_emu_buffer;
352 uint8_t *edge_emu_buffer; ///< points into the middle of allocated_edge_emu_buffer 353 uint8_t *edge_emu_buffer; ///< points into the middle of allocated_edge_emu_buffer
353 354
354 int qscale; ///< QP 355 int qscale; ///< QP
356 int chroma_qscale; ///< chroma QP
355 int lambda; ///< lagrange multipler used in rate distortion 357 int lambda; ///< lagrange multipler used in rate distortion
356 int lambda2; ///< (lambda*lambda) >> FF_LAMBDA_SHIFT 358 int lambda2; ///< (lambda*lambda) >> FF_LAMBDA_SHIFT
357 int *lambda_table; 359 int *lambda_table;
358 int adaptive_quant; ///< use adaptive quantization 360 int adaptive_quant; ///< use adaptive quantization
359 int dquant; ///< qscale difference to prev qscale 361 int dquant; ///< qscale difference to prev qscale
524 int umvplus; ///< == H263+ && unrestricted_mv 526 int umvplus; ///< == H263+ && unrestricted_mv
525 int h263_aic; ///< Advanded INTRA Coding (AIC) 527 int h263_aic; ///< Advanded INTRA Coding (AIC)
526 int h263_aic_dir; ///< AIC direction: 0 = left, 1 = top 528 int h263_aic_dir; ///< AIC direction: 0 = left, 1 = top
527 int alt_inter_vlc; ///< alternative inter vlc 529 int alt_inter_vlc; ///< alternative inter vlc
528 int modified_quant; 530 int modified_quant;
531 int loop_filter;
529 532
530 /* mpeg4 specific */ 533 /* mpeg4 specific */
531 int time_increment_resolution; 534 int time_increment_resolution;
532 int time_increment_bits; ///< number of bits to represent the fractional part of time 535 int time_increment_bits; ///< number of bits to represent the fractional part of time
533 int last_time_base; 536 int last_time_base;
817 extern uint8_t ff_aic_dc_scale_table[32]; 820 extern uint8_t ff_aic_dc_scale_table[32];
818 extern const int16_t ff_mpeg4_default_intra_matrix[64]; 821 extern const int16_t ff_mpeg4_default_intra_matrix[64];
819 extern const int16_t ff_mpeg4_default_non_intra_matrix[64]; 822 extern const int16_t ff_mpeg4_default_non_intra_matrix[64];
820 extern const uint16_t ff_mba_max[6]; 823 extern const uint16_t ff_mba_max[6];
821 extern const uint8_t ff_mba_length[6]; 824 extern const uint8_t ff_mba_length[6];
825 extern const uint8_t ff_h263_chroma_qscale_table[32];
826 extern const uint8_t ff_h263_loop_filter_strength[32];
822 827
823 int ff_h263_decode_init(AVCodecContext *avctx); 828 int ff_h263_decode_init(AVCodecContext *avctx);
824 int ff_h263_decode_frame(AVCodecContext *avctx, 829 int ff_h263_decode_frame(AVCodecContext *avctx,
825 void *data, int *data_size, 830 void *data, int *data_size,
826 uint8_t *buf, int buf_size); 831 uint8_t *buf, int buf_size);
844 void h263_decode_init_vlc(MpegEncContext *s); 849 void h263_decode_init_vlc(MpegEncContext *s);
845 int h263_decode_picture_header(MpegEncContext *s); 850 int h263_decode_picture_header(MpegEncContext *s);
846 int ff_h263_decode_gob_header(MpegEncContext *s); 851 int ff_h263_decode_gob_header(MpegEncContext *s);
847 int ff_mpeg4_decode_picture_header(MpegEncContext * s, GetBitContext *gb); 852 int ff_mpeg4_decode_picture_header(MpegEncContext * s, GetBitContext *gb);
848 void ff_h263_update_motion_val(MpegEncContext * s); 853 void ff_h263_update_motion_val(MpegEncContext * s);
854 int ff_h263_loop_filter(MpegEncContext * s);
849 855
850 856
851 int intel_h263_decode_picture_header(MpegEncContext *s); 857 int intel_h263_decode_picture_header(MpegEncContext *s);
852 int flv_h263_decode_picture_header(MpegEncContext *s); 858 int flv_h263_decode_picture_header(MpegEncContext *s);
853 int ff_h263_decode_mb(MpegEncContext *s, 859 int ff_h263_decode_mb(MpegEncContext *s,