#include "../common.h"#include "../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 *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 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 | ) |
| #define mmxext_table | ( | c1, | |||
| c2, | |||||
| c3, | |||||
| c4, | |||||
| c5, | |||||
| c6, | |||||
| c7 | ) |
| #define round | ( | bias | ) | ((int)(((bias)+0.5) * (1<<ROW_SHIFT))) |
Definition at line 35 of file idct_mmx.c.
Referenced by VideoScopeVectorscope::calculate_graduations(), and VideoScopeWaveform::calculate_graduations().
| #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().
| static int32_t rounder0 [] ATTR_ALIGN | ( | 8 | ) | [static] |
| void ff_mmx_idct | ( | DCTELEM * | block | ) |
| void ff_mmxext_idct | ( | DCTELEM * | block | ) |
| static void idct_col | ( | int16_t * | col, | |
| int | offset | |||
| ) | [inline, static] |
Definition at line 391 of file idct_mmx.c.
References ATTR_ALIGN, C4, COL_SHIFT, movq_m2r, movq_r2m, movq_r2r, paddsw_m2r, paddsw_r2r, pmulhw_m2r, pmulhw_r2r, psraw_i2r, psubsw_r2r, T1, T2, and T3.
| static void mmx_row | ( | int16_t * | table, | |
| int32_t * | rounder | |||
| ) | [inline, static] |
Definition at line 220 of file idct_mmx.c.
References movq_m2r, movq_r2r, paddd_m2r, paddd_r2r, pmaddwd_m2r, pmaddwd_r2r, psrad_i2r, psubd_r2r, punpckhdq_r2r, punpckldq_r2r, and ROW_SHIFT.
| 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] |
Definition at line 283 of file idct_mmx.c.
References movq_m2r, movq_r2m, movq_r2r, packssdw_r2r, pmaddwd_r2r, por_r2r, pslld_i2r, psrad_i2r, psrld_i2r, punpckhdq_r2r, punpckldq_r2r, and ROW_SHIFT.
| 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] |
Definition at line 105 of file idct_mmx.c.
References movq_m2r, movq_r2r, paddd_m2r, paddd_r2r, pmaddwd_m2r, pmaddwd_r2r, pshufw_r2r, psrad_i2r, psubd_r2r, and ROW_SHIFT.
| 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.
1.5.5