libavcodec/sh4/idct_sh4.c File Reference

#include "libavcodec/dsputil.h"
#include "dsputil_sh4.h"
#include "sh4.h"

Go to the source code of this file.

Defines

#define c1   1.38703984532214752434
#define c2   1.30656296487637657577
#define c3   1.17587560241935884520
#define c4   1.00000000000000000000
#define c5   0.78569495838710234903
#define c6   0.54119610014619712324
#define c7   0.27589937928294311353
#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 idct_sh4 (DCTELEM *block)

Variables

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


Define Documentation

#define c1   1.38703984532214752434

#define c2   1.30656296487637657577

#define c3   1.17587560241935884520

Definition at line 29 of file idct_sh4.c.

Referenced by idct4col_add(), idct4col_put(), and idct4row().

#define c4   1.00000000000000000000

Definition at line 30 of file idct_sh4.c.

Referenced by idct248_ref().

#define c5   0.78569495838710234903

Definition at line 31 of file idct_sh4.c.

#define c6   0.54119610014619712324

Definition at line 32 of file idct_sh4.c.

#define c7   0.27589937928294311353

#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 79 of file idct_sh4.c.

Referenced by idct_sh4().

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

Definition at line 85 of file idct_sh4.c.

 
#define ftrv (  ) 

Value:

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

Definition at line 75 of file idct_sh4.c.

Referenced by idct_sh4().

#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 57 of file idct_sh4.c.

Referenced by idct_sh4(), mpeg1_decode_sequence(), and mpeg_decode_quant_matrix_extension().

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

Referenced by idct_sh4().


Function Documentation

void idct_sh4 ( DCTELEM block  ) 

Definition at line 92 of file idct_sh4.c.

Referenced by 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 35 of file idct_sh4.c.

Referenced by 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 42 of file idct_sh4.c.

Referenced by idct_sh4().


Generated on Fri Oct 26 02:43:49 2012 for FFmpeg by  doxygen 1.5.8