libavcodec/x86/idct_mmx.c File Reference

#include "libavutil/common.h"
#include "libavcodec/dsputil.h"
#include "libavutil/x86_cpu.h"
#include "dsputil_mmx.h"

Go to the source code of this file.

Defines

#define ROW_SHIFT   11
#define COL_SHIFT   6
#define round(bias)   ((int)(((bias)+0.5) * (1<<ROW_SHIFT)))
#define rounder(bias)   {round (bias), round (bias)}
#define mmxext_table(c1, c2, c3, c4, c5, c6, c7)
#define mmx_table(c1, c2, c3, c4, c5, c6, c7)
#define T1   13036
#define T2   27146
#define T3   43790
#define C4   23170
#define declare_idct(idct, table, idct_row_head, idct_row, idct_row_tail, idct_row_mid)

Functions

static void mmxext_row_head (int16_t *const row, const int offset, const int16_t *const table)
static void mmxext_row (const int16_t *const table, const int32_t *const rounder)
static void mmxext_row_tail (int16_t *const row, const int store)
static void mmxext_row_mid (int16_t *const row, const int store, const int offset, const int16_t *const table)
static void mmx_row_head (int16_t *const row, const int offset, const int16_t *const table)
static void mmx_row (const int16_t *const table, const int32_t *const rounder)
static void mmx_row_tail (int16_t *const row, const int store)
static void mmx_row_mid (int16_t *const row, const int store, const int offset, const int16_t *const table)
static void idct_col (int16_t *const col, const int offset)
void ff_mmxext_idct (int16_t *const block)
void ff_mmx_idct (int16_t *const block)

Variables

static const int32_t rounder0 []
static const int32_t rounder4 [] = rounder (0)
static const int32_t rounder1 []
static const int32_t rounder7 []
static const int32_t rounder2 []
static const int32_t rounder6 []
static const int32_t rounder3 []
static const int32_t rounder5 []


Define Documentation

#define C4   23170

#define COL_SHIFT   6

Definition at line 30 of file idct_mmx.c.

#define declare_idct ( idct,
table,
idct_row_head,
idct_row,
idct_row_tail,
idct_row_mid   ) 

Definition at line 591 of file idct_mmx.c.

#define mmx_table ( c1,
c2,
c3,
c4,
c5,
c6,
c7   ) 

Value:

{  c4,  c2,  c4,  c6,   \
                                           c4,  c6, -c4, -c2,   \
                                           c1,  c3,  c3, -c7,   \
                                           c5,  c7, -c1, -c5,   \
                                           c4, -c6,  c4, -c2,   \
                                          -c4,  c2,  c4, -c6,   \
                                           c5, -c1,  c7, -c5,   \
                                           c7,  c3,  c3, -c1 }

Definition at line 204 of file idct_mmx.c.

#define mmxext_table ( c1,
c2,
c3,
c4,
c5,
c6,
c7   ) 

Value:

{  c4,  c2, -c4, -c2,   \
                                                   c4,  c6,  c4,  c6,   \
                                                   c1,  c3, -c1, -c5,   \
                                                   c5,  c7,  c3, -c7,   \
                                                   c4, -c6,  c4, -c6,   \
                                                  -c4,  c2,  c4, -c2,   \
                                                   c5, -c1,  c3, -c1,   \
                                                   c7,  c3,  c7, -c5 }

Definition at line 78 of file idct_mmx.c.

#define round ( bias   )     ((int)(((bias)+0.5) * (1<<ROW_SHIFT)))

Definition at line 32 of file idct_mmx.c.

Referenced by atrac3_decode_frame(), dequant(), normalize_double(), and vp8_init().

#define rounder ( bias   )     {round (bias), round (bias)}

Definition at line 33 of file idct_mmx.c.

Referenced by ff_simple_idct_add_vis(), and ff_simple_idct_put_vis().

#define ROW_SHIFT   11

Definition at line 29 of file idct_mmx.c.

#define T1   13036

#define T2   27146

#define T3   43790

Referenced by ff_jpegls_quantize(), and idct_col().


Function Documentation

void ff_mmx_idct ( int16_t *const   block  ) 

Definition at line 629 of file idct_mmx.c.

void ff_mmxext_idct ( int16_t *const   block  ) 

Definition at line 626 of file idct_mmx.c.

static void idct_col ( int16_t *const   col,
const int  offset 
) [inline, static]

Definition at line 418 of file idct_mmx.c.

static void mmx_row ( const int16_t *const   table,
const int32_t *const   rounder 
) [inline, static]

Definition at line 236 of file idct_mmx.c.

static void mmx_row_head ( int16_t *const   row,
const int  offset,
const int16_t *const   table 
) [inline, static]

Definition at line 213 of file idct_mmx.c.

static void mmx_row_mid ( int16_t *const   row,
const int  store,
const int  offset,
const int16_t *const   table 
) [inline, static]

Definition at line 306 of file idct_mmx.c.

static void mmx_row_tail ( int16_t *const   row,
const int  store 
) [inline, static]

Definition at line 279 of file idct_mmx.c.

static void mmxext_row ( const int16_t *const   table,
const int32_t *const   rounder 
) [inline, static]

Definition at line 107 of file idct_mmx.c.

static void mmxext_row_head ( int16_t *const   row,
const int  offset,
const int16_t *const   table 
) [inline, static]

Definition at line 87 of file idct_mmx.c.

static void mmxext_row_mid ( int16_t *const   row,
const int  store,
const int  offset,
const int16_t *const   table 
) [inline, static]

Definition at line 170 of file idct_mmx.c.

static void mmxext_row_tail ( int16_t *const   row,
const int  store 
) [inline, static]

Definition at line 149 of file idct_mmx.c.


Variable Documentation

const int32_t rounder0[] [static]

Initial value:

    rounder ((1 << (COL_SHIFT - 1)) - 0.5)

Definition at line 572 of file idct_mmx.c.

const int32_t rounder1[] [static]

Initial value:

    rounder (1.25683487303)

Definition at line 575 of file idct_mmx.c.

const int32_t rounder2[] [static]

Initial value:

    rounder (0.60355339059)

Definition at line 579 of file idct_mmx.c.

const int32_t rounder3[] [static]

Initial value:

    rounder (0.087788325588)

Definition at line 583 of file idct_mmx.c.

const int32_t rounder4[] = rounder (0) [static]

Definition at line 574 of file idct_mmx.c.

const int32_t rounder5[] [static]

Initial value:

    rounder (-0.441341716183)

Definition at line 585 of file idct_mmx.c.

const int32_t rounder6[] [static]

Initial value:

    rounder (-0.25)

Definition at line 581 of file idct_mmx.c.

const int32_t rounder7[] [static]

Initial value:

    rounder (-0.25)

Definition at line 577 of file idct_mmx.c.


Generated on Fri Oct 26 02:39:47 2012 for FFmpeg by  doxygen 1.5.8