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