hvirtual/quicktime/ffmpeg/libavcodec/i386/idct_mmx.c File Reference

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

Include dependency graph for idct_mmx.c:

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 *row, int offset, int16_t *table)
static void mmxext_row (int16_t *table, int32_t *rounder)
static void mmxext_row_tail (int16_t *row, int store)
static void mmxext_row_mid (int16_t *row, int store, int offset, int16_t *table)
static void mmx_row_head (int16_t *row, int offset, int16_t *table)
static void mmx_row (int16_t *table, int32_t *rounder)
static void mmx_row_tail (int16_t *row, int store)
static void mmx_row_mid (int16_t *row, int store, int offset, int16_t *table)
static void idct_col (int16_t *col, int offset)
static int32_t rounder0[] ATTR_ALIGN (8)
void ff_mmx_idct (DCTELEM *block)
void ff_mmxext_idct (DCTELEM *block)


Define Documentation

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

Definition at line 30 of file idct_mmx.c.

#define C4   23170

#define COL_SHIFT   6

Definition at line 33 of file idct_mmx.c.

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

Definition at line 558 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 192 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 80 of file idct_mmx.c.

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

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

Definition at line 36 of file idct_mmx.c.

Referenced by deinterlace_line(), and deinterlace_line_inplace().

#define ROW_SHIFT   11

Definition at line 32 of file idct_mmx.c.

#define T1   13036

Referenced by idct_col().

#define T2   27146

Referenced by idct_col().

#define T3   43790

Referenced by idct_col().


Function Documentation

static int32_t rounder0 [] ATTR_ALIGN (  )  [static]

void ff_mmx_idct ( DCTELEM block  ) 

void ff_mmxext_idct ( DCTELEM block  ) 

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

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

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

Definition at line 201 of file idct_mmx.c.

References movq_m2r, movq_r2r, pmaddwd_r2r, punpckhdq_r2r, and punpckldq_r2r.

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

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

Definition at line 259 of file idct_mmx.c.

References movq_r2m, movq_r2r, packssdw_r2r, por_r2r, pslld_i2r, psrad_i2r, psrld_i2r, and ROW_SHIFT.

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

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

Definition at line 89 of file idct_mmx.c.

References movq_m2r, movq_r2r, pmaddwd_r2r, and pshufw_r2r.

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

Definition at line 162 of file idct_mmx.c.

References movq_m2r, movq_r2m, movq_r2r, packssdw_r2r, pmaddwd_r2r, pshufw_r2r, psrad_i2r, and ROW_SHIFT.

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

Definition at line 144 of file idct_mmx.c.

References movq_r2m, packssdw_r2r, pshufw_r2r, psrad_i2r, and ROW_SHIFT.


Generated on Mon Apr 28 14:04:36 2008 for Cinelerra by  doxygen 1.5.5