FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
simple_idct_mmi.c File Reference
#include "idctdsp_mips.h"
#include "constants.h"

Go to the source code of this file.

Macros

#define C0   23170
 
#define C1   22725
 
#define C2   21407
 
#define C3   19266
 
#define C4   16383
 
#define C5   12873
 
#define C6   8867
 
#define C7   4520
 
#define ROW_SHIFT   11
 
#define COL_SHIFT   20
 
#define DC_COND_IDCT(src0, src4, src1, src5, dst, rounder, rarg, shift)
 
#define Z_COND_IDCT(src0, src4, src1, src5, dst, rounder, rarg, shift, bt)
 
#define IDCT(src0, src4, src1, src5, dst, shift)
 
#define IDCT(src0, src4, src1, src5, dst, shift)
 
#define IDCT(src0, src4, src1, src5, dst, shift)
 
#define IDCT(src0, src4, src1, src5, dst, shift)
 
#define IDCT(src0, src4, src1, src5, dst, shift)
 
#define IDCT(src0, src4, src1, src5, dst, shift)
 
#define IDCT(src0, src4, src1, src5, dst, shift)
 
#define IDCT(src0, src4, src1, src5, dst, shift)
 

Functions

void ff_simple_idct_mmi (int16_t *block)
 

Variables

static const int16_t coeffs []
 

Macro Definition Documentation

#define C0   23170

Definition at line 28 of file simple_idct_mmi.c.

#define C1   22725

Definition at line 29 of file simple_idct_mmi.c.

Referenced by xbr_filter().

#define C2   21407

Definition at line 30 of file simple_idct_mmi.c.

#define C3   19266

Definition at line 31 of file simple_idct_mmi.c.

#define C4   16383

Definition at line 32 of file simple_idct_mmi.c.

Referenced by xbr_filter().

#define C5   12873

Definition at line 33 of file simple_idct_mmi.c.

#define C6   8867

Definition at line 34 of file simple_idct_mmi.c.

#define C7   4520

Definition at line 35 of file simple_idct_mmi.c.

#define ROW_SHIFT   11

Definition at line 37 of file simple_idct_mmi.c.

#define COL_SHIFT   20

Definition at line 38 of file simple_idct_mmi.c.

#define DC_COND_IDCT (   src0,
  src4,
  src1,
  src5,
  dst,
  rounder,
  rarg,
  shift 
)

Referenced by ff_simple_idct_mmi().

#define Z_COND_IDCT (   src0,
  src4,
  src1,
  src5,
  dst,
  rounder,
  rarg,
  shift,
  bt 
)

Referenced by ff_simple_idct_mmi().

#define IDCT (   src0,
  src4,
  src1,
  src5,
  dst,
  shift 
)

Referenced by ff_simple_idct_mmi().

#define IDCT (   src0,
  src4,
  src1,
  src5,
  dst,
  shift 
)
#define IDCT (   src0,
  src4,
  src1,
  src5,
  dst,
  shift 
)
#define IDCT (   src0,
  src4,
  src1,
  src5,
  dst,
  shift 
)
#define IDCT (   src0,
  src4,
  src1,
  src5,
  dst,
  shift 
)
#define IDCT (   src0,
  src4,
  src1,
  src5,
  dst,
  shift 
)
#define IDCT (   src0,
  src4,
  src1,
  src5,
  dst,
  shift 
)
#define IDCT (   src0,
  src4,
  src1,
  src5,
  dst,
  shift 
)
Value:
"ldc1 $f0, " #src0 " \n\t" /* R4 R0 r4 r0 */\
"ldc1 $f8, 16(%2) \n\t" /* C4 C4 C4 C4 */\
"li $10, " #shift " \n\t" \
"pmaddhw $f8, $f8, $f0 \n\t" /* C4R4+C4R0 C4r4+C4r0 */\
"mtc1 $10, $f18 \n\t" \
"ldc1 $f10, 24(%2) \n\t" /* -C4 C4 -C4 C4 */\
"pmaddhw $f0, $f0, $f10 \n\t" /* -C4R4+C4R0 -C4r4+C4r0 */\
"psraw $f8, $f8, $f18 \n\t" \
"psraw $f0, $f0, $f18 \n\t" \
"ldc1 $f4, 8+" #src0 " \n\t" /* R4 R0 r4 r0 */\
"ldc1 $f2, 16(%2) \n\t" /* C4 C4 C4 C4 */\
"pmaddhw $f2, $f2, $f4 \n\t" /* C4R4+C4R0 C4r4+C4r0 */\
"ldc1 $f14, 24(%2) \n\t" /* -C4 C4 -C4 C4 */\
"pmaddhw $f4, $f4, $f14 \n\t" /* -C4R4+C4R0 -C4r4+C4r0 */\
"ldc1 $f14, 32(%2) \n\t" /* C6 C2 C6 C2 */\
"psraw $f2, $f2, $f18 \n\t" \
"packsswh $f8, $f8, $f2 \n\t" /* A0 a0 */\
"sdc1 $f8, " #dst " \n\t" \
"psraw $f4, $f4, $f18 \n\t" \
"packsswh $f0, $f0, $f4 \n\t" /* A1 a1 */\
"sdc1 $f0, 16+" #dst " \n\t" \
"sdc1 $f0, 96+" #dst " \n\t" \
"sdc1 $f8, 112+" #dst " \n\t" \
"sdc1 $f0, 32+" #dst " \n\t" \
"sdc1 $f8, 48+" #dst " \n\t" \
"sdc1 $f8, 64+" #dst " \n\t" \
"sdc1 $f0, 80+" #dst " \n\t"
static int shift(int a, int b)
Definition: sonic.c:82
#define src0
Definition: h264pred.c:138

Function Documentation

void ff_simple_idct_mmi ( int16_t *  block)

Definition at line 57 of file simple_idct_mmi.c.

Variable Documentation

const int16_t coeffs[]
static