libavcodec/dct-test.c File Reference

DCT test (c) 2001 Fabrice Bellard Started from sample code by Juan J. More...

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <sys/time.h>
#include <unistd.h>
#include <math.h>
#include "libavutil/cpu.h"
#include "libavutil/common.h"
#include "libavutil/lfg.h"
#include "simple_idct.h"
#include "aandcttab.h"
#include "faandct.h"
#include "faanidct.h"
#include "x86/idct_xvid.h"
#include "dctref.h"

Go to the source code of this file.

Data Structures

struct  algo

Defines

#define FAAN_SCALE   NO_PERM
#define AANSCALE_BITS   12
#define NB_ITS   20000
#define NB_ITS_SPEED   50000

Functions

void ff_mmx_idct (DCTELEM *data)
void ff_mmxext_idct (DCTELEM *data)
void odivx_idct_c (short *block)
void ff_bfin_idct (DCTELEM *block)
void ff_bfin_fdct (DCTELEM *block)
void fdct_altivec (DCTELEM *block)
void ff_j_rev_dct_arm (DCTELEM *data)
void ff_simple_idct_arm (DCTELEM *data)
void ff_simple_idct_armv5te (DCTELEM *data)
void ff_simple_idct_armv6 (DCTELEM *data)
void ff_simple_idct_neon (DCTELEM *data)
void ff_simple_idct_axp (DCTELEM *data)
void ff_prores_idct_put_10_sse2 (uint16_t *dst, int linesize, DCTELEM *block, int16_t *qmat)
static void ff_prores_idct_put_10_sse2_wrap (uint16_t *dst)
static int64_t gettime (void)
static void idct_mmx_init (void)
static void mmx_emms (void)
static void init_block (DCTELEM block[64], int test, int is_idct, AVLFG *prng, int vals)
static void permute (DCTELEM dst[64], const DCTELEM src[64], int perm)
static int dct_error (const struct algo *dct, int test, int is_idct, int speed, const int bits)
static void idct248_ref (uint8_t *dest, int linesize, int16_t *block)
static void idct248_error (const char *name, void(*idct248_put)(uint8_t *dest, int line_size, int16_t *block), int speed)
static void help (void)
int main (int argc, char **argv)

Variables

static int cpu_flags
static struct algo fdct_tab []
static struct algo idct_tab []
static short idct_mmx_perm [64]
static short idct_simple_mmx_perm [64]
static const uint8_t idct_sse2_row_perm [8] = { 0, 4, 1, 5, 2, 6, 3, 7 }
static DCTELEM block [64]
static DCTELEM block1 [64]
static uint8_t img_dest [64]
static uint8_t img_dest1 [64]


Detailed Description

DCT test (c) 2001 Fabrice Bellard Started from sample code by Juan J.

Sierralta P.

Definition in file dct-test.c.


Define Documentation

#define AANSCALE_BITS   12

Definition at line 171 of file dct-test.c.

Referenced by dct_error().

#define FAAN_SCALE   NO_PERM

Definition at line 82 of file dct-test.c.

#define NB_ITS   20000

Definition at line 180 of file dct-test.c.

Referenced by dct_error(), idct248_error(), and test_motion().

#define NB_ITS_SPEED   50000

Definition at line 181 of file dct-test.c.

Referenced by dct_error(), and idct248_error().


Function Documentation

static int dct_error ( const struct algo dct,
int  test,
int  is_idct,
int  speed,
const int  bits 
) [static]

Definition at line 272 of file dct-test.c.

Referenced by main().

void fdct_altivec ( DCTELEM block  ) 

Referenced by dsputil_init_ppc().

void ff_bfin_fdct ( DCTELEM block  ) 

void ff_bfin_idct ( DCTELEM block  ) 

void ff_j_rev_dct_arm ( DCTELEM data  ) 

void ff_mmx_idct ( DCTELEM data  ) 

Referenced by dsputil_init_mmx().

void ff_mmxext_idct ( DCTELEM data  ) 

Referenced by dsputil_init_mmx().

void ff_prores_idct_put_10_sse2 ( uint16_t *  dst,
int  linesize,
DCTELEM block,
int16_t qmat 
)

static void ff_prores_idct_put_10_sse2_wrap ( uint16_t *  dst  )  [static]

Definition at line 114 of file dct-test.c.

void ff_simple_idct_arm ( DCTELEM data  ) 

void ff_simple_idct_armv5te ( DCTELEM data  ) 

void ff_simple_idct_armv6 ( DCTELEM data  ) 

void ff_simple_idct_axp ( DCTELEM data  ) 

Definition at line 254 of file simple_idct_alpha.c.

void ff_simple_idct_neon ( DCTELEM data  ) 

static int64_t gettime ( void   )  [static]

Definition at line 173 of file dct-test.c.

Referenced by dct_error(), idct248_error(), main(), and test_motion().

static void help ( void   )  [static]

Definition at line 532 of file dct-test.c.

Referenced by main().

static void idct248_error ( const char *  name,
void(*)(uint8_t *dest, int line_size, int16_t *block idct248_put,
int  speed 
) [static]

Definition at line 456 of file dct-test.c.

Referenced by main().

static void idct248_ref ( uint8_t *  dest,
int  linesize,
int16_t block 
) [static]

Definition at line 376 of file dct-test.c.

Referenced by idct248_error().

static void idct_mmx_init ( void   )  [static]

Definition at line 198 of file dct-test.c.

Referenced by main().

static void init_block ( DCTELEM  block[64],
int  test,
int  is_idct,
AVLFG prng,
int  vals 
) [static]

Definition at line 219 of file dct-test.c.

Referenced by dct_error().

int main ( int  argc,
char **  argv 
)

Definition at line 544 of file dct-test.c.

static void mmx_emms ( void   )  [inline, static]

Definition at line 211 of file dct-test.c.

Referenced by dct_error(), and idct248_error().

void odivx_idct_c ( short *  block  ) 

static void permute ( DCTELEM  dst[64],
const DCTELEM  src[64],
int  perm 
) [static]


Variable Documentation

DCTELEM block[64] [static]

Definition at line 208 of file dct-test.c.

Referenced by add_yblock(), allocate_buffers(), apply_channel_coupling(), apply_mdct(), avg_pixels16_TMPL(), avg_pixels16_x2_TMPL(), avg_pixels16_xy2_TMPL(), avg_pixels16_y2_TMPL(), avg_pixels4_TMPL(), avg_pixels8_TMPL(), avg_pixels8_x2_TMPL(), avg_pixels8_xy2_TMPL(), avg_pixels8_y2_TMPL(), backup_duplicate_context(), bink_decode_plane(), binkb_decode_plane(), bit_alloc(), bit_alloc_masking(), compute_rematrixing_strategy(), count_exponent_bits(), count_frame_bits(), count_mantissa_bits_update_ch(), dca_subsubframe(), dct_error(), dct_get(), dct_quantize_TMPL(), dct_single_coeff_elimination(), decode(), decode_cell(), decode_mb_b(), decode_mb_i(), decode_residual_block(), decode_residual_inter(), decode_slice_chroma(), decode_slice_luma(), dirac_unpack_block_motion_data(), dnxhd_calc_bits_thread(), dnxhd_encode_thread(), dv_decode_video_segment(), dvbsub_parse_object_segment(), encode_block(), encode_exponents(), encode_slice_plane(), extract_exponents(), ff_ac3_apply_rematrixing(), ff_ac3_compute_coupling_strategy(), ff_ac3_encode_close(), ff_ac3_group_exponents(), ff_ac3_quantize_mantissas(), ff_eac3_output_frame_header(), ff_eac3_set_cpl_states(), ff_fix_long_p_mvs(), ff_h264_chroma422_dc_dequant_idct(), ff_h264_chroma_dc_dequant_idct(), ff_h264_idct8_add(), ff_h264_idct8_add4(), ff_h264_idct8_dc_add(), ff_h264_idct_add(), ff_h264_idct_add16(), ff_h264_idct_add16intra(), ff_h264_idct_add8(), ff_h264_idct_add8_422(), ff_h264_idct_dc_add(), ff_simple_idct(), ff_simple_idct_add(), ff_simple_idct_put(), ff_subblock_synthesis(), ff_vp56_decode_frame(), filter(), get(), h263_mv4_search(), idct_add_altivec(), idct_put(), idct_put_altivec(), interlaced_search(), mjpeg_decode_scan(), mjpeg_decode_scan_progressive_ac(), nelly_decode_block(), output_audio_block(), pixels16(), pixels16_TMPL(), pixels16_x2(), pixels4(), pixels8(), pixels8_x2(), pixels8_xy2(), pixels8_y2(), pred4x4_horizontal_add(), pred4x4_vertical_add(), pred8x8l_horizontal_add(), pred8x8l_vertical_add(), put_no_rnd_pixels16_x2_TMPL(), put_no_rnd_pixels16_y2_TMPL(), put_no_rnd_pixels8_x2_exact_TMPL(), put_no_rnd_pixels8_x2_TMPL(), put_no_rnd_pixels8_y2_exact_TMPL(), put_no_rnd_pixels8_y2_TMPL(), put_pixels16_x2_TMPL(), put_pixels16_y2_TMPL(), put_pixels8_x2_TMPL(), put_pixels8_y2_TMPL(), render_slice(), rtjpeg_decode_frame_yuv420(), scale_coefficients(), seq_decode_op1(), set_blocks(), sha1_transform(), sha256_transform(), snow_set_blocks(), tgq_idct_put_mb(), tqi_decode_mb(), tqi_idct_put(), vc1_decode_i_blocks_adv(), vlc_decode_block(), zmbv_decode_xor_16(), and zmbv_decode_xor_8().

DCTELEM block1[64] [static]

int cpu_flags [static]

struct algo fdct_tab[] [static]

Initial value:

 {
    { "REF-DBL",        ff_ref_fdct,           NO_PERM    },
    { "FAAN",           ff_faandct,            FAAN_SCALE },
    { "IJG-AAN-INT",    fdct_ifast,            SCALE_PERM },
    { "IJG-LLM-INT",    ff_jpeg_fdct_islow_8,  NO_PERM    },


    { "MMX",            ff_fdct_mmx,           NO_PERM,   AV_CPU_FLAG_MMX     },
    { "MMX2",           ff_fdct_mmx2,          NO_PERM,   AV_CPU_FLAG_MMX2    },
    { "SSE2",           ff_fdct_sse2,          NO_PERM,   AV_CPU_FLAG_SSE2    },










    { 0 }
}

Definition at line 87 of file dct-test.c.

short idct_mmx_perm[64] [static]

Definition at line 183 of file dct-test.c.

Referenced by idct_mmx_init(), and permute().

short idct_simple_mmx_perm[64] [static]

Initial value:

 {
    0x00, 0x08, 0x04, 0x09, 0x01, 0x0C, 0x05, 0x0D,
    0x10, 0x18, 0x14, 0x19, 0x11, 0x1C, 0x15, 0x1D,
    0x20, 0x28, 0x24, 0x29, 0x21, 0x2C, 0x25, 0x2D,
    0x12, 0x1A, 0x16, 0x1B, 0x13, 0x1E, 0x17, 0x1F,
    0x02, 0x0A, 0x06, 0x0B, 0x03, 0x0E, 0x07, 0x0F,
    0x30, 0x38, 0x34, 0x39, 0x31, 0x3C, 0x35, 0x3D,
    0x22, 0x2A, 0x26, 0x2B, 0x23, 0x2E, 0x27, 0x2F,
    0x32, 0x3A, 0x36, 0x3B, 0x33, 0x3E, 0x37, 0x3F,
}

Definition at line 185 of file dct-test.c.

Referenced by permute().

const uint8_t idct_sse2_row_perm[8] = { 0, 4, 1, 5, 2, 6, 3, 7 } [static]

Definition at line 196 of file dct-test.c.

Referenced by ff_init_scantable_permutation(), and permute().

struct algo idct_tab[] [static]

Definition at line 126 of file dct-test.c.

uint8_t img_dest[64] [static]

Definition at line 373 of file dct-test.c.

Referenced by idct248_error().

uint8_t img_dest1[64] [static]

Definition at line 374 of file dct-test.c.

Referenced by idct248_error().


Generated on Fri Oct 26 02:46:07 2012 for FFmpeg by  doxygen 1.5.8