FFmpeg
Public Attributes | List of all members
IDCTDSPContext Struct Reference

Public Attributes

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
 

Member Data Documentation

§ idct_add

void(* IDCTDSPContext::idct_add) (uint8_t *dest, ptrdiff_t line_size, int16_t *block)

block -> idct -> add dest -> clip to unsigned 8 bit -> dest.

Parameters
line_sizesize in bytes of a horizontal line of dest

§ idct_permutation

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 -> ...)

§ idct_put

void(* IDCTDSPContext::idct_put) (uint8_t *dest, ptrdiff_t line_size, int16_t *block)

block -> idct -> clip to unsigned 8 bit -> dest.

(-1392, 0, 0, ...) -> idct -> (-174, -174, ...) -> put -> (0, 0, ...)

Parameters
line_sizesize in bytes of a horizontal line of dest

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