FFmpeg
Data Fields
IDCTDSPContext Struct Reference

#include <idctdsp.h>

Data Fields

void(* put_pixels_clamped )(const int16_t *block, uint8_t *restrict pixels, ptrdiff_t line_size)
 
void(* put_signed_pixels_clamped )(const int16_t *block, uint8_t *restrict pixels, ptrdiff_t line_size)
 
void(* add_pixels_clamped )(const int16_t *block, uint8_t *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
 
int mpeg4_studio_profile
 

Detailed Description

Definition at line 43 of file idctdsp.h.

Field Documentation

◆ put_pixels_clamped

void(* IDCTDSPContext::put_pixels_clamped) (const int16_t *block, uint8_t *restrict pixels, ptrdiff_t line_size)

Definition at line 45 of file idctdsp.h.

◆ put_signed_pixels_clamped

void(* IDCTDSPContext::put_signed_pixels_clamped) (const int16_t *block, uint8_t *restrict pixels, ptrdiff_t line_size)

Definition at line 48 of file idctdsp.h.

◆ add_pixels_clamped

void(* IDCTDSPContext::add_pixels_clamped) (const int16_t *block, uint8_t *restrict pixels, ptrdiff_t line_size)

Definition at line 51 of file idctdsp.h.

◆ idct

void(* IDCTDSPContext::idct) (int16_t *block)

Definition at line 55 of file idctdsp.h.

◆ 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

Definition at line 62 of file idctdsp.h.

Referenced by ipu_decode_frame().

◆ 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

Definition at line 69 of file idctdsp.h.

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

Definition at line 86 of file idctdsp.h.

Referenced by ipu_decode_frame(), and ipu_decode_init().

◆ perm_type

enum idct_permutation_type IDCTDSPContext::perm_type

Definition at line 87 of file idctdsp.h.

◆ mpeg4_studio_profile

int IDCTDSPContext::mpeg4_studio_profile

Definition at line 89 of file idctdsp.h.


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