libavcodec/simple_idct.c File Reference

simpleidct in C. More...

#include "libavutil/intreadwrite.h"
#include "avcodec.h"
#include "dsputil.h"
#include "mathops.h"
#include "simple_idct.h"
#include "simple_idct_template.c"

Go to the source code of this file.

Defines

#define BIT_DEPTH   8
#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) * 1.414213562 * (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) * 1.414213562 * (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, int line_size, const DCTELEM *col)
void ff_simple_idct248_put (uint8_t *dest, int line_size, DCTELEM *block)
static void idct4col_add (uint8_t *dest, int line_size, const DCTELEM *col)
static void idct4row (DCTELEM *row)
void ff_simple_idct84_add (uint8_t *dest, int line_size, DCTELEM *block)
void ff_simple_idct48_add (uint8_t *dest, int line_size, DCTELEM *block)
void ff_simple_idct44_add (uint8_t *dest, int line_size, DCTELEM *block)
void ff_prores_idct (DCTELEM *block, const int16_t *qmat)
 Special version of ff_simple_idct_10() which does dequantization and scales by a factor of 2 more between the two IDCTs to account for larger scale of input coefficients.


Detailed Description

simpleidct in C.

Definition in file simple_idct.c.


Define Documentation

#define BF (  ) 

Value:

{\
    int a0, a1;\
    a0 = ptr[k];\
    a1 = ptr[8 + k];\
    ptr[k] = a0 + a1;\
    ptr[8 + k] = a0 - a1;\
}

Definition at line 74 of file simple_idct.c.

#define BIT_DEPTH   10

Definition at line 38 of file simple_idct.c.

#define BIT_DEPTH   8

Definition at line 38 of file simple_idct.c.

#define C1   C_FIX(0.6532814824)

Definition at line 128 of file simple_idct.c.

#define C1   C_FIX(0.6532814824)

Definition at line 128 of file simple_idct.c.

#define C2   C_FIX(0.2705980501)

Definition at line 129 of file simple_idct.c.

#define C2   C_FIX(0.2705980501)

Definition at line 129 of file simple_idct.c.

#define C3   C_FIX(0.5)

Definition at line 130 of file simple_idct.c.

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

Definition at line 127 of file simple_idct.c.

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

Definition at line 127 of file simple_idct.c.

#define C_SHIFT   (4+1+12)

Definition at line 131 of file simple_idct.c.

#define C_SHIFT   (4+1+12)

Definition at line 131 of file simple_idct.c.

Referenced by idct4col_add(), and idct4col_put().

#define CN_SHIFT   12

Definition at line 126 of file simple_idct.c.

#define CN_SHIFT   12

Definition at line 126 of file simple_idct.c.

Referenced by idct4col_put().

#define R1   R_FIX(0.6532814824)

#define R2   R_FIX(0.2705980501)

Definition at line 156 of file simple_idct.c.

Referenced by idct4row(), sha1_transform(), and wv_unpack_stereo().

#define R3   R_FIX(0.5)

Definition at line 157 of file simple_idct.c.

Referenced by idct4row(), and sha1_transform().

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

Definition at line 154 of file simple_idct.c.

#define R_SHIFT   11

Definition at line 158 of file simple_idct.c.

Referenced by idct4row().

#define RN_SHIFT   15

Definition at line 153 of file simple_idct.c.


Function Documentation

void ff_prores_idct ( DCTELEM block,
const int16_t qmat 
)

Special version of ff_simple_idct_10() 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 222 of file simple_idct.c.

Referenced by prores_idct_put_c().

void ff_simple_idct248_put ( uint8_t *  dest,
int  line_size,
DCTELEM block 
)

Definition at line 89 of file simple_idct.c.

Referenced by dvvideo_init(), and main().

void ff_simple_idct44_add ( uint8_t *  dest,
int  line_size,
DCTELEM block 
)

Definition at line 207 of file simple_idct.c.

Referenced by vc1_decode_sequence_header().

void ff_simple_idct48_add ( uint8_t *  dest,
int  line_size,
DCTELEM block 
)

Definition at line 192 of file simple_idct.c.

Referenced by vc1_decode_sequence_header(), and wmv2_add_block().

void ff_simple_idct84_add ( uint8_t *  dest,
int  line_size,
DCTELEM block 
)

Definition at line 177 of file simple_idct.c.

Referenced by vc1_decode_sequence_header(), and wmv2_add_block().

static void idct4col_add ( uint8_t *  dest,
int  line_size,
const DCTELEM col 
) [inline, static]

Definition at line 132 of file simple_idct.c.

Referenced by ff_simple_idct44_add(), and ff_simple_idct84_add().

static void idct4col_put ( uint8_t *  dest,
int  line_size,
const DCTELEM col 
) [inline, static]

Definition at line 53 of file simple_idct.c.

Referenced by ff_simple_idct248_put().

static void idct4row ( DCTELEM row  )  [inline, static]

Definition at line 159 of file simple_idct.c.

Referenced by ff_simple_idct44_add(), and ff_simple_idct48_add().


Generated on Fri Oct 26 02:46:10 2012 for FFmpeg by  doxygen 1.5.8