FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Fields
IDCTDSPContext Struct Reference

#include <idctdsp.h>

Data Fields

void(* put_pixels_clamped )(const int16_t *block, uint8_t *av_restrict pixels, ptrdiff_t line_size)
 
void(* put_signed_pixels_clamped )(const int16_t *block, uint8_t *av_restrict pixels, ptrdiff_t line_size)
 
void(* add_pixels_clamped )(const int16_t *block, uint8_t *av_restrict pixels, ptrdiff_t line_size)
 
void(* idct )(int16_t *block)
 
void(* idct_put )(uint8_t *dest, ptrdiff_t line_size, int16_t *block)
 block -> idct -> clip to unsigned 8 bit -> dest. More...
 
void(* idct_add )(uint8_t *dest, ptrdiff_t line_size, int16_t *block)
 block -> idct -> add dest -> clip to unsigned 8 bit -> dest. More...
 
uint8_t idct_permutation [64]
 IDCT input permutation. More...
 
enum idct_permutation_type perm_type
 

Detailed Description

Definition at line 53 of file idctdsp.h.

Field Documentation

void(* IDCTDSPContext::put_pixels_clamped)(const int16_t *block, uint8_t *av_restrict pixels, ptrdiff_t line_size)
void(* IDCTDSPContext::put_signed_pixels_clamped)(const int16_t *block, uint8_t *av_restrict pixels, ptrdiff_t line_size)
void(* IDCTDSPContext::add_pixels_clamped)(const int16_t *block, uint8_t *av_restrict pixels, ptrdiff_t line_size)
void(* IDCTDSPContext::idct)(int16_t *block)
void(* IDCTDSPContext::idct_put)(uint8_t *dest, ptrdiff_t line_size, int16_t *block)
void(* IDCTDSPContext::idct_add)(uint8_t *dest, ptrdiff_t line_size, int16_t *block)
uint8_t IDCTDSPContext::idct_permutation[64]

IDCT input permutation.

Several optimized IDCTs need a permutated input (relative to the normal order of the reference IDCT). This permutation must be performed before the idct_put/add. Note, normally this can be merged with the zigzag/alternate scan
An example to avoid confusion:

  • (->decode coeffs -> zigzag reorder -> dequant -> reference IDCT -> ...)
  • (x -> reference DCT -> reference IDCT -> x)
  • (x -> reference DCT -> simple_mmx_perm = idct_permutation -> simple_idct_mmx -> x)
  • (-> decode coeffs -> zigzag reorder -> simple_mmx_perm -> dequant -> simple_idct_mmx -> ...)

Definition at line 96 of file idctdsp.h.

Referenced by aic_decode_init(), dct_quantize_refine(), dct_quantize_trellis_c(), decide_ac_pred(), decode_init(), decode_studio_vop_header(), dnxhd_10bit_dct_quantize(), dnxhd_10bit_dct_quantize_444(), dnxhd_decode_header(), dnxhd_init_qmat(), dvvideo_decode_init(), encode_picture(), ff_cavs_init(), ff_convert_matrix(), ff_dct_quantize_c(), ff_h263_pred_acdc(), ff_idctdsp_init(), ff_mpeg4_pred_ac(), ff_mpv_encode_init(), ff_mpv_idct_init(), ff_msmpeg4_common_init(), ff_rtjpeg_decode_init(), ff_rtjpeg_init(), ff_wmv2_common_init(), ff_xvid_idct_init(), fill_quantization_matrices(), init_idct(), jpg_init(), ljpeg_encode_init(), load_matrix(), mimic_decode_init(), mpeg1_decode_sequence(), mpeg4_load_default_matrices(), mpeg_decode_picture_coding_extension(), mpv_reconstruct_mb_internal(), read_quant_matrix_ext(), restore_ac_coeffs(), speedhq_decode_init(), tqi_decode_init(), vaapi_mpeg2_start_frame(), vaapi_mpeg4_start_frame(), and vcr2_init_sequence().

enum idct_permutation_type IDCTDSPContext::perm_type

The documentation for this struct was generated from the following file: