FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
idct_sh4.c File Reference
#include "dsputil_sh4.h"
#include "sh4.h"

Go to the source code of this file.

Macros

#define c1   1.38703984532214752434 /* sqrt(2)*cos(1*pi/16) */
 
#define c2   1.30656296487637657577 /* sqrt(2)*cos(2*pi/16) */
 
#define c3   1.17587560241935884520 /* sqrt(2)*cos(3*pi/16) */
 
#define c4   1.00000000000000000000 /* sqrt(2)*cos(4*pi/16) */
 
#define c5   0.78569495838710234903 /* sqrt(2)*cos(5*pi/16) */
 
#define c6   0.54119610014619712324 /* sqrt(2)*cos(6*pi/16) */
 
#define c7   0.27589937928294311353 /* sqrt(2)*cos(7*pi/16) */
 
#define load_matrix(table)
 
#define ftrv()
 
#define DEFREG
 
#define DESCALE(x, n)   (x)*(1.0f/(1<<(n)))
 
#define OA(fblock, ofs)   *(float*)((char*)fblock + ofs)
 

Functions

void ff_idct_sh4 (int16_t *block)
 

Variables

static const float even_table []
 
static const float odd_table []
 

Macro Definition Documentation

#define c1   1.38703984532214752434 /* sqrt(2)*cos(1*pi/16) */
#define c2   1.30656296487637657577 /* sqrt(2)*cos(2*pi/16) */
#define c3   1.17587560241935884520 /* sqrt(2)*cos(3*pi/16) */
#define c4   1.00000000000000000000 /* sqrt(2)*cos(4*pi/16) */
#define c5   0.78569495838710234903 /* sqrt(2)*cos(5*pi/16) */
#define c6   0.54119610014619712324 /* sqrt(2)*cos(6*pi/16) */
#define c7   0.27589937928294311353 /* sqrt(2)*cos(7*pi/16) */
#define load_matrix (   table)
Value:
do { \
const float *t = table; \
__asm__ volatile( \
" fschg\n" \
" fmov @%0+,xd0\n" \
" fmov @%0+,xd2\n" \
" fmov @%0+,xd4\n" \
" fmov @%0+,xd6\n" \
" fmov @%0+,xd8\n" \
" fmov @%0+,xd10\n" \
" fmov @%0+,xd12\n" \
" fmov @%0+,xd14\n" \
" fschg\n" \
: "+r"(t) \
); \
} while (0)

Definition at line 56 of file idct_sh4.c.

Referenced by ff_idct_sh4().

#define ftrv ( )
Value:
__asm__ volatile("ftrv xmtrx,fv0" \
: "+f"(fr0),"+f"(fr1),"+f"(fr2),"+f"(fr3));

Definition at line 74 of file idct_sh4.c.

Referenced by ff_idct_sh4().

#define DEFREG
Value:
register float fr0 __asm__("fr0"); \
register float fr1 __asm__("fr1"); \
register float fr2 __asm__("fr2"); \
register float fr3 __asm__("fr3")

Definition at line 78 of file idct_sh4.c.

Referenced by ff_idct_sh4().

#define DESCALE (   x,
  n 
)    (x)*(1.0f/(1<<(n)))

Definition at line 84 of file idct_sh4.c.

Referenced by ff_idct_sh4().

#define OA (   fblock,
  ofs 
)    *(float*)((char*)fblock + ofs)

Referenced by ff_idct_sh4().

Function Documentation

void ff_idct_sh4 ( int16_t *  block)

Definition at line 91 of file idct_sh4.c.

Referenced by ff_dsputil_init_sh4(), idct_add(), and idct_put().

Variable Documentation

const float even_table[]
static
Initial value:
= {
c4, c4, c4, c4,
c2, c6,-c6,-c2,
c4,-c4,-c4, c4,
c6,-c2, c2,-c6
}

Definition at line 34 of file idct_sh4.c.

Referenced by ff_idct_sh4().

const float odd_table[]
static
Initial value:
= {
c1, c3, c5, c7,
c3,-c7,-c1,-c5,
c5,-c1, c7, c3,
c7,-c5, c3,-c1
}

Definition at line 41 of file idct_sh4.c.

Referenced by ff_idct_sh4().