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) |
| 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) |
| 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) |
| 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] |
DCT test (c) 2001 Fabrice Bellard Started from sample code by Juan J.
Sierralta P.
Definition in file dct-test.c.
| #define AANSCALE_BITS 12 |
Definition at line 152 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 161 of file dct-test.c.
| #define NB_ITS_SPEED 50000 |
Definition at line 162 of file dct-test.c.
| static int dct_error | ( | const struct algo * | dct, | |
| int | test, | |||
| int | is_idct, | |||
| int | speed | |||
| ) | [static] |
Definition at line 250 of file dct-test.c.
Referenced by main().
| void fdct_altivec | ( | DCTELEM * | block | ) |
| 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 ff_libmpeg2mmx_idct_add(), and ff_libmpeg2mmx_idct_put().
| void ff_mmxext_idct | ( | DCTELEM * | data | ) |
Referenced by ff_libmpeg2mmx2_idct_add(), and ff_libmpeg2mmx2_idct_put().
| 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 154 of file dct-test.c.
Referenced by dct_error(), and idct248_error().
| static void help | ( | void | ) | [static] |
Definition at line 489 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 432 of file dct-test.c.
Referenced by main().
| static void idct248_ref | ( | uint8_t * | dest, | |
| int | linesize, | |||
| int16_t * | block | |||
| ) | [static] |
Definition at line 352 of file dct-test.c.
Referenced by idct248_error().
| static void idct_mmx_init | ( | void | ) | [static] |
Definition at line 179 of file dct-test.c.
Referenced by main().
Definition at line 200 of file dct-test.c.
Referenced by dct_error().
| int main | ( | int | argc, | |
| char ** | argv | |||
| ) |
Definition at line 500 of file dct-test.c.
| static void mmx_emms | ( | void | ) | [inline, static] |
Definition at line 192 of file dct-test.c.
Referenced by dct_error(), and idct248_error().
| void odivx_idct_c | ( | short * | block | ) |
Definition at line 228 of file dct-test.c.
Referenced by dct_error(), vp5_parse_coeff(), vp6_parse_coeff(), and vp6_parse_coeff_huffman().
Definition at line 189 of file dct-test.c.
Referenced by add_yblock(), allocate_buffers(), apply_channel_coupling(), apply_mdct(), avg_pixels16(), avg_pixels16_x2(), avg_pixels16_xy2(), avg_pixels16_y2(), avg_pixels4(), avg_pixels8(), avg_pixels8_x2(), avg_pixels8_xy2(), avg_pixels8_y2(), backup_duplicate_context(), bink_decode_plane(), binkb_decode_plane(), bit_alloc(), bit_alloc_masking(), check_4block_inter(), check_block(), compute_rematrixing_strategy(), count_exponent_bits(), count_frame_bits(), count_mantissa_bits_update_ch(), dca_subsubframe(), dct_error(), dct_get(), dct_quantize_SSSE3(), dct_single_coeff_elimination(), decode(), decode_cell(), decode_mb_b(), decode_mb_i(), decode_residual_block(), decode_residual_inter(), DEF(), dnxhd_calc_bits_thread(), dnxhd_encode_thread(), dv_decode_video_segment(), dvbsub_parse_object_segment(), encode_block(), encode_exponents(), 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(), h263_mv4_search(), idct_add_altivec(), idct_put(), idct_put_altivec(), interlaced_search(), iterative_me(), mjpeg_decode_scan(), mjpeg_decode_scan_progressive_ac(), nelly_decode_block(), output_audio_block(), pred4x4_horizontal_add(), pred4x4_vertical_add(), pred8x8l_horizontal_add(), pred8x8l_vertical_add(), put_no_rnd_pixels16_x2(), put_no_rnd_pixels16_y2(), put_no_rnd_pixels8_x2(), put_no_rnd_pixels8_x2_exact(), put_no_rnd_pixels8_y2(), put_no_rnd_pixels8_y2_exact(), put_pixels16_x2(), put_pixels16_y2(), put_pixels8_x2(), put_pixels8_y2(), 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().
Definition at line 190 of file dct-test.c.
Referenced by dct_error(), dv_decode_video_segment(), ff_fdct_mmx(), ff_fdct_mmx2(), ff_fdct_sse2(), idct248_error(), and idct248_ref().
int cpu_flags [static] |
Definition at line 85 of file dct-test.c.
Referenced by DECLARE_ASM_CONST(), ff_sws_init_swScale_mmx(), init(), main(), mmx_emms(), and sws_init_context().
{
{ "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 164 of file dct-test.c.
Referenced by idct_mmx_init(), and permute().
short idct_simple_mmx_perm[64] [static] |
{
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 166 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 177 of file dct-test.c.
Referenced by permute().
Definition at line 110 of file dct-test.c.
uint8_t img_dest[64] [static] |
Definition at line 349 of file dct-test.c.
Referenced by idct248_error().
uint8_t img_dest1[64] [static] |
Definition at line 350 of file dct-test.c.
Referenced by idct248_error().