FFmpeg
Loading...
Searching...
No Matches
proresdsp.c File Reference
#include "config.h"
#include "libavutil/attributes.h"
#include "libavutil/avassert.h"
#include "libavutil/common.h"
#include "libavutil/intreadwrite.h"
#include "idctdsp.h"
#include "proresdsp.h"
#include "simple_idct_template.c"

Go to the source code of this file.

Macros

#define IN_IDCT_DEPTH   16
 
#define PRORES_ONLY
 
#define BIT_DEPTH   10
 
#define EXTRA_SHIFT
 
#define BIT_DEPTH   12
 
#define IN_IDCT_DEPTH   32
 
#define BIT_DEPTH   12
 
#define CLIP_MIN   (1 << 2)
 minimum value for clipping resulting pixels
 
#define CLIP_MAX_10   (1 << 10) - CLIP_MIN - 1
 maximum value for clipping resulting pixels
 
#define CLIP_MAX_12   (1 << 12) - CLIP_MIN - 1
 maximum value for clipping resulting pixels
 
#define CLIP_10(x)
 
#define CLIP_12(x)
 

Functions

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 more between the two IDCTs to account for larger scale of input coefficients.
 
static void prores_idct_12 (int16_t *restrict block, const int16_t *restrict qmat)
 
static void prores_idct_bayer_32 (int32_t *restrict block, const int16_t *restrict qmat)
 
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_pixel_bayer_lin_curve_12 (uint16_t *dst, ptrdiff_t linesize, const int32_t *in, const uint16_t *lin_curve)
 
static void put_pixels_10 (uint16_t *dst, ptrdiff_t linesize, const int16_t *in)
 
static void put_pixels_12 (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)
 
static void prores_idct_put_12_c (uint16_t *out, ptrdiff_t linesize, int16_t *block, const int16_t *qmat)
 
static void prores_idct_put_bayer_12_c (uint16_t *out, ptrdiff_t linesize, int32_t *block, const int16_t *qmat, const uint16_t *lin_curve)
 
av_cold void ff_proresdsp_init (ProresDSPContext *dsp, int bits_per_raw_sample)
 

Macro Definition Documentation

◆ IN_IDCT_DEPTH [1/2]

#define IN_IDCT_DEPTH   16

Definition at line 31 of file proresdsp.c.

◆ PRORES_ONLY

#define PRORES_ONLY

Definition at line 32 of file proresdsp.c.

◆ BIT_DEPTH [1/3]

#define BIT_DEPTH   10

Definition at line 34 of file proresdsp.c.

◆ EXTRA_SHIFT

#define EXTRA_SHIFT

Definition at line 35 of file proresdsp.c.

◆ BIT_DEPTH [2/3]

#define BIT_DEPTH   12

Definition at line 34 of file proresdsp.c.

◆ IN_IDCT_DEPTH [2/2]

#define IN_IDCT_DEPTH   32

Definition at line 31 of file proresdsp.c.

◆ BIT_DEPTH [3/3]

#define BIT_DEPTH   12

Definition at line 34 of file proresdsp.c.

◆ CLIP_MIN

#define CLIP_MIN   (1 << 2)

minimum value for clipping resulting pixels

Definition at line 103 of file proresdsp.c.

◆ CLIP_MAX_10

#define CLIP_MAX_10   (1 << 10) - CLIP_MIN - 1

maximum value for clipping resulting pixels

Definition at line 104 of file proresdsp.c.

◆ CLIP_MAX_12

#define CLIP_MAX_12   (1 << 12) - CLIP_MIN - 1

maximum value for clipping resulting pixels

Definition at line 105 of file proresdsp.c.

◆ CLIP_10

#define CLIP_10 ( x)
Value:
#define av_clip
Definition common.h:100
#define CLIP_MAX_10
maximum value for clipping resulting pixels
Definition proresdsp.c:104
#define CLIP_MIN
minimum value for clipping resulting pixels
Definition proresdsp.c:103

Definition at line 107 of file proresdsp.c.

Referenced by put_pixel().

◆ CLIP_12

#define CLIP_12 ( x)
Value:
#define CLIP_MAX_12
maximum value for clipping resulting pixels
Definition proresdsp.c:105

Definition at line 108 of file proresdsp.c.

Referenced by put_pixel().

Function Documentation

◆ prores_idct_10()

static void prores_idct_10 ( int16_t *restrict block,
const int16_t *restrict qmat )
static

Special version of ff_simple_idct_int16_10bit() which does dequantization and scales by a factor of 2 more between the two IDCTs to account for larger scale of input coefficients.

Definition at line 57 of file proresdsp.c.

Referenced by prores_idct_put_10_c().

◆ prores_idct_12()

static void prores_idct_12 ( int16_t *restrict block,
const int16_t *restrict qmat )
static

Definition at line 71 of file proresdsp.c.

Referenced by prores_idct_put_12_c().

◆ prores_idct_bayer_32()

static void prores_idct_bayer_32 ( int32_t *restrict block,
const int16_t *restrict qmat )
static

Definition at line 89 of file proresdsp.c.

Referenced by prores_idct_put_bayer_12_c().

◆ put_pixel()

static void put_pixel ( uint16_t * dst,
ptrdiff_t linesize,
const int16_t * in,
int bits_per_raw_sample )
inlinestatic

Add bias value, clamp and output pixels of a slice.

Definition at line 114 of file proresdsp.c.

Referenced by gen_image(), gen_image(), put_pixels_10(), and put_pixels_12().

◆ put_pixel_bayer_lin_curve_12()

static void put_pixel_bayer_lin_curve_12 ( uint16_t * dst,
ptrdiff_t linesize,
const int32_t * in,
const uint16_t * lin_curve )
inlinestatic

Definition at line 129 of file proresdsp.c.

Referenced by prores_idct_put_bayer_12_c().

◆ put_pixels_10()

static void put_pixels_10 ( uint16_t * dst,
ptrdiff_t linesize,
const int16_t * in )
static

Definition at line 146 of file proresdsp.c.

Referenced by prores_idct_put_10_c().

◆ put_pixels_12()

static void put_pixels_12 ( uint16_t * dst,
ptrdiff_t linesize,
const int16_t * in )
static

Definition at line 151 of file proresdsp.c.

Referenced by prores_idct_put_12_c().

◆ prores_idct_put_10_c()

static void prores_idct_put_10_c ( uint16_t * out,
ptrdiff_t linesize,
int16_t * block,
const int16_t * qmat )
static

Definition at line 156 of file proresdsp.c.

Referenced by ff_proresdsp_init().

◆ prores_idct_put_12_c()

static void prores_idct_put_12_c ( uint16_t * out,
ptrdiff_t linesize,
int16_t * block,
const int16_t * qmat )
static

Definition at line 162 of file proresdsp.c.

Referenced by ff_proresdsp_init().

◆ prores_idct_put_bayer_12_c()

static void prores_idct_put_bayer_12_c ( uint16_t * out,
ptrdiff_t linesize,
int32_t * block,
const int16_t * qmat,
const uint16_t * lin_curve )
static

Definition at line 168 of file proresdsp.c.

Referenced by ff_proresdsp_init().

◆ ff_proresdsp_init()

av_cold void ff_proresdsp_init ( ProresDSPContext * dsp,
int bits_per_raw_sample )

Definition at line 176 of file proresdsp.c.

Referenced by decode_init(), and decode_init().