libavcodec/x86/idct_mmx.c File Reference

#include "libavutil/common.h"
#include "libavcodec/dsputil.h"
#include "mmx.h"

Go to the source code of this file.

Defines

#define ATTR_ALIGN(align)   __attribute__ ((__aligned__ (align)))
#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)
static const int32_t rounder0[] ATTR_ALIGN (8)
void ff_mmx_idct (DCTELEM *block)
void ff_mmxext_idct (DCTELEM *block)
void ff_mmxext_idct (int16_t *const block)
void ff_mmx_idct (int16_t *const block)


Define Documentation

#define ATTR_ALIGN ( align   )     __attribute__ ((__aligned__ (align)))

Definition at line 28 of file idct_mmx.c.

#define C4   23170

#define COL_SHIFT   6

Definition at line 31 of file idct_mmx.c.

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

Definition at line 563 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 194 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 79 of file idct_mmx.c.

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

Definition at line 33 of file idct_mmx.c.

Referenced by atrac3_decode_frame(), and dequant().

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

Definition at line 34 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 30 of file idct_mmx.c.

#define T1   13036

Referenced by ff_jpegls_quantize(), and idct_col().

#define T2   27146

Referenced by ff_jpegls_quantize(), and idct_col().

#define T3   43790

Referenced by ff_jpegls_quantize(), and idct_col().


Function Documentation

static const int32_t rounder0 [] ATTR_ALIGN (  )  [static]

void ff_mmx_idct ( int16_t *const   block  ) 

Definition at line 604 of file idct_mmx.c.

void ff_mmx_idct ( DCTELEM block  ) 

void ff_mmxext_idct ( int16_t *const   block  ) 

Definition at line 601 of file idct_mmx.c.

void ff_mmxext_idct ( DCTELEM block  ) 

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

Definition at line 395 of file idct_mmx.c.

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

Definition at line 223 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 203 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 287 of file idct_mmx.c.

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

Definition at line 263 of file idct_mmx.c.

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

Definition at line 105 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 88 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 163 of file idct_mmx.c.

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

Definition at line 145 of file idct_mmx.c.


Generated on Fri Oct 26 02:35:45 2012 for FFmpeg by  doxygen 1.5.8