Go to the documentation of this file.
   31 #define IN_IDCT_DEPTH 16 
   51     for (
int i = 0; 
i < 64; 
i++)
 
   54     for (
int i = 0; 
i < 8; 
i++)
 
   55         idctRowCondDC_extrashift_10(
block + 
i*8, 2);
 
   57     for (
int i = 0; 
i < 8; 
i++) {
 
   59         idctSparseCol_extrashift_10(
block + 
i);
 
   65     for (
int i = 0; 
i < 64; 
i++)
 
   68     for (
int i = 0; 
i < 8; 
i++)
 
   69         idctRowCondDC_int16_12bit(
block + 
i*8, 0);
 
   71     for (
int i = 0; 
i < 8; 
i++) {
 
   73         idctSparseCol_int16_12bit(
block + 
i);
 
   77 #define CLIP_MIN (1 << 2)                      
   78 #define CLIP_MAX_10 (1 << 10) - CLIP_MIN - 1  
 
   79 #define CLIP_MAX_12 (1 << 12) - CLIP_MIN - 1  
 
   81 #define CLIP_10(x) (av_clip((x), CLIP_MIN, CLIP_MAX_10)) 
   82 #define CLIP_12(x) (av_clip((x), CLIP_MIN, CLIP_MAX_12)) 
   88 static inline void put_pixel(uint16_t *
dst, ptrdiff_t linesize, 
const int16_t *in, 
int bits_per_raw_sample) {
 
   89     for (
int y = 0; y < 8; y++, 
dst += linesize) {
 
   90         for (
int x = 0; x < 8; x++) {
 
   91             int src_offset = (y << 3) + x;
 
   93             if (bits_per_raw_sample == 10) {
 
  105     for (
int y = 0; y < 8; y++, 
dst += linesize) {
 
  106         for (
int x = 0; x < 8; x++)
 
  134                                        int16_t *
block, 
const int16_t *qmat)
 
  142     if (bits_per_raw_sample == 10) {
 
  
void(* idct_put_bayer)(uint16_t *out, ptrdiff_t linesize, int16_t *block, const int16_t *qmat)
int idct_permutation_type
void ff_proresdsp_init_x86(ProresDSPContext *dsp, int bits_per_raw_sample)
static void put_pixel(uint16_t *dst, ptrdiff_t linesize, const int16_t *in, int bits_per_raw_sample)
Add bias value, clamp and output pixels of a slice.
static void put_pixels_12(uint16_t *dst, ptrdiff_t linesize, const int16_t *in)
static void prores_idct_10(int16_t *restrict block, const int16_t *restrict qmat)
Special version of ff_simple_idct_int16_10bit() which does dequantization and scales by a factor of 2...
uint8_t idct_permutation[64]
av_cold void ff_proresdsp_init(ProresDSPContext *dsp, int bits_per_raw_sample)
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
#define i(width, name, range_min, range_max)
#define av_assert1(cond)
assert() equivalent, that does not lie in speed critical code.
static void prores_idct_put_bayer_12_c(uint16_t *out, ptrdiff_t linesize, int16_t *block, const int16_t *qmat)
static void prores_idct_12(int16_t *restrict block, const int16_t *restrict qmat)
static void put_pixels_10(uint16_t *dst, ptrdiff_t linesize, const int16_t *in)
static void prores_idct_put_10_c(uint16_t *out, ptrdiff_t linesize, int16_t *block, const int16_t *qmat)
av_cold void ff_init_scantable_permutation(uint8_t *idct_permutation, enum idct_permutation_type perm_type)
static void put_pixel_bayer_12(uint16_t *dst, ptrdiff_t linesize, const int16_t *in)
The exact code depends on how similar the blocks are and how related they are to the block
void(* idct_put)(uint16_t *out, ptrdiff_t linesize, int16_t *block, const int16_t *qmat)
static void prores_idct_put_12_c(uint16_t *out, ptrdiff_t linesize, int16_t *block, const int16_t *qmat)