FFmpeg
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Macros | Functions
simple_idct.c File Reference
#include "libavutil/intreadwrite.h"
#include "mathops.h"
#include "simple_idct.h"
#include "simple_idct_template.c"

Go to the source code of this file.

Macros

#define IN_IDCT_DEPTH   16
 
#define BIT_DEPTH   8
 
#define BIT_DEPTH   10
 
#define BIT_DEPTH   12
 
#define IN_IDCT_DEPTH   32
 
#define BIT_DEPTH   10
 
#define CN_SHIFT   12
 
#define C_FIX(x)   ((int)((x) * (1 << CN_SHIFT) + 0.5))
 
#define C1   C_FIX(0.6532814824)
 
#define C2   C_FIX(0.2705980501)
 
#define C_SHIFT   (4+1+12)
 
#define BF(k)
 
#define CN_SHIFT   12
 
#define C_FIX(x)   ((int)((x) * M_SQRT2 * (1 << CN_SHIFT) + 0.5))
 
#define C1   C_FIX(0.6532814824)
 
#define C2   C_FIX(0.2705980501)
 
#define C3   C_FIX(0.5)
 
#define C_SHIFT   (4+1+12)
 
#define RN_SHIFT   15
 
#define R_FIX(x)   ((int)((x) * M_SQRT2 * (1 << RN_SHIFT) + 0.5))
 
#define R1   R_FIX(0.6532814824)
 
#define R2   R_FIX(0.2705980501)
 
#define R3   R_FIX(0.5)
 
#define R_SHIFT   11
 

Functions

static void idct4col_put (uint8_t *dest, ptrdiff_t line_size, const int16_t *col)
 
void ff_simple_idct248_put (uint8_t *dest, ptrdiff_t line_size, int16_t *block)
 
static void idct4col_add (uint8_t *dest, ptrdiff_t line_size, const int16_t *col)
 
static void idct4row (int16_t *row)
 
void ff_simple_idct84_add (uint8_t *dest, ptrdiff_t line_size, int16_t *block)
 
void ff_simple_idct48_add (uint8_t *dest, ptrdiff_t line_size, int16_t *block)
 
void ff_simple_idct44_add (uint8_t *dest, ptrdiff_t line_size, int16_t *block)
 

Detailed Description

simpleidct in C.

Definition in file simple_idct.c.

Macro Definition Documentation

◆ IN_IDCT_DEPTH [1/2]

#define IN_IDCT_DEPTH   16

Definition at line 47 of file simple_idct.c.

◆ BIT_DEPTH [1/4]

#define BIT_DEPTH   8

Definition at line 48 of file simple_idct.c.

◆ BIT_DEPTH [2/4]

#define BIT_DEPTH   10

Definition at line 48 of file simple_idct.c.

◆ BIT_DEPTH [3/4]

#define BIT_DEPTH   12

Definition at line 48 of file simple_idct.c.

◆ IN_IDCT_DEPTH [2/2]

#define IN_IDCT_DEPTH   32

Definition at line 47 of file simple_idct.c.

◆ BIT_DEPTH [4/4]

#define BIT_DEPTH   10

Definition at line 48 of file simple_idct.c.

◆ CN_SHIFT [1/2]

#define CN_SHIFT   12

Definition at line 137 of file simple_idct.c.

◆ C_FIX [1/2]

#define C_FIX (   x)    ((int)((x) * (1 << CN_SHIFT) + 0.5))

Definition at line 138 of file simple_idct.c.

◆ C1 [1/2]

#define C1   C_FIX(0.6532814824)

Definition at line 139 of file simple_idct.c.

◆ C2 [1/2]

#define C2   C_FIX(0.2705980501)

Definition at line 140 of file simple_idct.c.

◆ C_SHIFT [1/2]

#define C_SHIFT   (4+1+12)

Definition at line 142 of file simple_idct.c.

◆ BF

#define BF (   k)
Value:
{\
int a0, a1;\
a0 = ptr[k];\
a1 = ptr[8 + k];\
ptr[k] = a0 + a1;\
ptr[8 + k] = a0 - a1;\
}

Definition at line 85 of file simple_idct.c.

◆ CN_SHIFT [2/2]

#define CN_SHIFT   12

Definition at line 137 of file simple_idct.c.

◆ C_FIX [2/2]

#define C_FIX (   x)    ((int)((x) * M_SQRT2 * (1 << CN_SHIFT) + 0.5))

Definition at line 138 of file simple_idct.c.

◆ C1 [2/2]

#define C1   C_FIX(0.6532814824)

Definition at line 139 of file simple_idct.c.

◆ C2 [2/2]

#define C2   C_FIX(0.2705980501)

Definition at line 140 of file simple_idct.c.

◆ C3

#define C3   C_FIX(0.5)

Definition at line 141 of file simple_idct.c.

◆ C_SHIFT [2/2]

#define C_SHIFT   (4+1+12)

Definition at line 142 of file simple_idct.c.

◆ RN_SHIFT

#define RN_SHIFT   15

Definition at line 164 of file simple_idct.c.

◆ R_FIX

#define R_FIX (   x)    ((int)((x) * M_SQRT2 * (1 << RN_SHIFT) + 0.5))

Definition at line 165 of file simple_idct.c.

◆ R1

#define R1   R_FIX(0.6532814824)

Definition at line 166 of file simple_idct.c.

◆ R2

#define R2   R_FIX(0.2705980501)

Definition at line 167 of file simple_idct.c.

◆ R3

#define R3   R_FIX(0.5)

Definition at line 168 of file simple_idct.c.

◆ R_SHIFT

#define R_SHIFT   11

Definition at line 169 of file simple_idct.c.

Function Documentation

◆ idct4col_put()

static void idct4col_put ( uint8_t *  dest,
ptrdiff_t  line_size,
const int16_t *  col 
)
inlinestatic

Definition at line 64 of file simple_idct.c.

Referenced by ff_simple_idct248_put().

◆ ff_simple_idct248_put()

void ff_simple_idct248_put ( uint8_t *  dest,
ptrdiff_t  line_size,
int16_t *  block 
)

Definition at line 100 of file simple_idct.c.

Referenced by dvvideo_decode_init(), and main().

◆ idct4col_add()

static void idct4col_add ( uint8_t *  dest,
ptrdiff_t  line_size,
const int16_t *  col 
)
inlinestatic

Definition at line 143 of file simple_idct.c.

Referenced by ff_simple_idct44_add(), and ff_simple_idct84_add().

◆ idct4row()

static void idct4row ( int16_t *  row)
inlinestatic

Definition at line 170 of file simple_idct.c.

Referenced by ff_simple_idct44_add(), and ff_simple_idct48_add().

◆ ff_simple_idct84_add()

void ff_simple_idct84_add ( uint8_t *  dest,
ptrdiff_t  line_size,
int16_t *  block 
)

Definition at line 189 of file simple_idct.c.

Referenced by vc1_decode_init(), and wmv2_add_block().

◆ ff_simple_idct48_add()

void ff_simple_idct48_add ( uint8_t *  dest,
ptrdiff_t  line_size,
int16_t *  block 
)

Definition at line 204 of file simple_idct.c.

Referenced by vc1_decode_init(), and wmv2_add_block().

◆ ff_simple_idct44_add()

void ff_simple_idct44_add ( uint8_t *  dest,
ptrdiff_t  line_size,
int16_t *  block 
)

Definition at line 219 of file simple_idct.c.

Referenced by vc1_decode_init().

a0
static double a0(void *priv, double x, double y)
Definition: vf_xfade.c:2028
a1
static double a1(void *priv, double x, double y)
Definition: vf_xfade.c:2029