libavfilter/libmpcodecs/vf_spp.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <inttypes.h>
#include <math.h>
#include "config.h"
#include "mp_msg.h"
#include "cpudetect.h"
#include "libavutil/internal.h"
#include "libavutil/intreadwrite.h"
#include "libavcodec/avcodec.h"
#include "libavcodec/dsputil.h"
#include "img_format.h"
#include "mp_image.h"
#include "vf.h"
#include "vd_ffmpeg.h"
#include "libvo/fastmemcpy.h"

Go to the source code of this file.

Data Structures

struct  vf_priv_s
 Stores persistant variables. More...

Defines

#define XMIN(a, b)   ((a) < (b) ? (a) : (b))
#define SHIFT   22
#define REQUANT_CORE(dst0, dst1, dst2, dst3, src0, src1, src2, src3)
#define REQUANT_CORE(dst0, dst1, dst2, dst3, src0, src1, src2, src3)
#define STORE(pos)

Functions

static void hardthresh_c (DCTELEM dst[64], DCTELEM src[64], int qp, uint8_t *permutation)
static void softthresh_c (DCTELEM dst[64], DCTELEM src[64], int qp, uint8_t *permutation)
static void hardthresh_mmx (DCTELEM dst[64], DCTELEM src[64], int qp, uint8_t *permutation)
static void softthresh_mmx (DCTELEM dst[64], DCTELEM src[64], int qp, uint8_t *permutation)
static void add_block (int16_t *dst, int stride, DCTELEM block[64])
static void store_slice_c (uint8_t *dst, int16_t *src, int dst_stride, int src_stride, int width, int height, int log2_scale)
static void store_slice_mmx (uint8_t *dst, int16_t *src, int dst_stride, int src_stride, int width, int height, int log2_scale)
static void filter (struct vf_priv_s *p, uint8_t *dst, uint8_t *src, int dst_stride, int src_stride, int width, int height, uint8_t *qp_store, int qp_stride, int is_luma)
static int config (struct vf_instance *vf, int width, int height, int d_width, int d_height, unsigned int flags, unsigned int outfmt)
static void get_image (struct vf_instance *vf, mp_image_t *mpi)
static int put_image (struct vf_instance *vf, mp_image_t *mpi, double pts)
static void uninit (struct vf_instance *vf)
static int query_format (struct vf_instance *vf, unsigned int fmt)
static int control (struct vf_instance *vf, int request, void *data)
static int vf_open (vf_instance_t *vf, char *args)

Variables

static const uint8_t dither [8][8]
static const uint8_t offset [127][2]
static void(* store_slice )(uint8_t *dst, int16_t *src, int dst_stride, int src_stride, int width, int height, int log2_scale) = store_slice_c
static void(* requantize )(DCTELEM dst[64], DCTELEM src[64], int qp, uint8_t *permutation) = hardthresh_c
const vf_info_t vf_info_spp


Define Documentation

#define REQUANT_CORE ( dst0,
dst1,
dst2,
dst3,
src0,
src1,
src2,
src3   ) 

#define REQUANT_CORE ( dst0,
dst1,
dst2,
dst3,
src0,
src1,
src2,
src3   ) 

Referenced by hardthresh_mmx(), and softthresh_mmx().

#define SHIFT   22

Definition at line 106 of file vf_spp.c.

#define STORE ( pos   ) 

Value:

temp= ((src[x + y*src_stride + pos]<<log2_scale) + d[pos])>>6;\
        if(temp & 0x100) temp= ~(temp>>31);\
        dst[x + y*dst_stride + pos]= temp;

#define XMIN ( a,
 )     ((a) < (b) ? (a) : (b))

Definition at line 55 of file vf_spp.c.


Function Documentation

static void add_block ( int16_t *  dst,
int  stride,
DCTELEM  block[64] 
) [inline, static]

Definition at line 297 of file vf_spp.c.

Referenced by filter().

static int config ( struct vf_instance vf,
int  width,
int  height,
int  d_width,
int  d_height,
unsigned int  flags,
unsigned int  outfmt 
) [static]

Definition at line 439 of file vf_spp.c.

static int control ( struct vf_instance vf,
int  request,
void *  data 
) [static]

Definition at line 555 of file vf_spp.c.

static void filter ( struct vf_priv_s p,
uint8_t *  dst,
uint8_t *  src,
int  dst_stride,
int  src_stride,
int  width,
int  height,
uint8_t *  qp_store,
int  qp_stride,
int  is_luma 
) [static]

Definition at line 377 of file vf_spp.c.

static void get_image ( struct vf_instance vf,
mp_image_t mpi 
) [static]

Definition at line 451 of file vf_spp.c.

static void hardthresh_c ( DCTELEM  dst[64],
DCTELEM  src[64],
int  qp,
uint8_t *  permutation 
) [static]

Definition at line 108 of file vf_spp.c.

static void hardthresh_mmx ( DCTELEM  dst[64],
DCTELEM  src[64],
int  qp,
uint8_t *  permutation 
) [static]

Definition at line 152 of file vf_spp.c.

Referenced by vf_open().

static int put_image ( struct vf_instance vf,
mp_image_t mpi,
double  pts 
) [static]

Definition at line 468 of file vf_spp.c.

static int query_format ( struct vf_instance vf,
unsigned int  fmt 
) [static]

Definition at line 537 of file vf_spp.c.

static void softthresh_c ( DCTELEM  dst[64],
DCTELEM  src[64],
int  qp,
uint8_t *  permutation 
) [static]

Definition at line 128 of file vf_spp.c.

static void softthresh_mmx ( DCTELEM  dst[64],
DCTELEM  src[64],
int  qp,
uint8_t *  permutation 
) [static]

Definition at line 220 of file vf_spp.c.

Referenced by vf_open().

static void store_slice_c ( uint8_t *  dst,
int16_t *  src,
int  dst_stride,
int  src_stride,
int  width,
int  height,
int  log2_scale 
) [static]

Definition at line 308 of file vf_spp.c.

Referenced by filter().

static void store_slice_mmx ( uint8_t *  dst,
int16_t *  src,
int  dst_stride,
int  src_stride,
int  width,
int  height,
int  log2_scale 
) [static]

Definition at line 333 of file vf_spp.c.

static void uninit ( struct vf_instance vf  )  [static]

Definition at line 520 of file vf_spp.c.

static int vf_open ( vf_instance_t vf,
char *  args 
) [static]

Definition at line 566 of file vf_spp.c.


Variable Documentation

const uint8_t dither[8][8] [static]

Initial value:

{
{  0,  48,  12,  60,   3,  51,  15,  63, },
{ 32,  16,  44,  28,  35,  19,  47,  31, },
{  8,  56,   4,  52,  11,  59,   7,  55, },
{ 40,  24,  36,  20,  43,  27,  39,  23, },
{  2,  50,  14,  62,   1,  49,  13,  61, },
{ 34,  18,  46,  30,  33,  17,  45,  29, },
{ 10,  58,   6,  54,   9,  57,   5,  53, },
{ 42,  26,  38,  22,  41,  25,  37,  21, },
}

Definition at line 58 of file vf_spp.c.

const uint8_t offset[127][2] [static]

Initial value:

 {
{0,0},
{0,0}, {4,4},
{0,0}, {2,2}, {6,4}, {4,6},
{0,0}, {5,1}, {2,2}, {7,3}, {4,4}, {1,5}, {6,6}, {3,7},

{0,0}, {4,0}, {1,1}, {5,1}, {3,2}, {7,2}, {2,3}, {6,3},
{0,4}, {4,4}, {1,5}, {5,5}, {3,6}, {7,6}, {2,7}, {6,7},

{0,0}, {0,2}, {0,4}, {0,6}, {1,1}, {1,3}, {1,5}, {1,7},
{2,0}, {2,2}, {2,4}, {2,6}, {3,1}, {3,3}, {3,5}, {3,7},
{4,0}, {4,2}, {4,4}, {4,6}, {5,1}, {5,3}, {5,5}, {5,7},
{6,0}, {6,2}, {6,4}, {6,6}, {7,1}, {7,3}, {7,5}, {7,7},

{0,0}, {4,4}, {0,4}, {4,0}, {2,2}, {6,6}, {2,6}, {6,2},
{0,2}, {4,6}, {0,6}, {4,2}, {2,0}, {6,4}, {2,4}, {6,0},
{1,1}, {5,5}, {1,5}, {5,1}, {3,3}, {7,7}, {3,7}, {7,3},
{1,3}, {5,7}, {1,7}, {5,3}, {3,1}, {7,5}, {3,5}, {7,1},
{0,1}, {4,5}, {0,5}, {4,1}, {2,3}, {6,7}, {2,7}, {6,3},
{0,3}, {4,7}, {0,7}, {4,3}, {2,1}, {6,5}, {2,5}, {6,1},
{1,0}, {5,4}, {1,4}, {5,0}, {3,2}, {7,6}, {3,6}, {7,2},
{1,2}, {5,6}, {1,6}, {5,2}, {3,0}, {7,4}, {3,4}, {7,0},
}

Definition at line 69 of file vf_spp.c.

Referenced by adpcm_decode_frame(), adx_decode_header(), adx_encode_header(), aiff_read_header(), alloc_and_copy(), altivec_packIntArrayToCharArray(), apply_window_and_mdct(), av_estimate_timings_from_pts(), aw_parse_coords(), bfi_decode_frame(), bitplane_decoding(), chroma_4mv_motion(), chroma_4mv_motion_lowres(), cin_decode_lzss(), comp_block(), compute_pkt_fields(), cook_decode_frame(), decode_blockcode(), decode_blocks(), decode_bytes_and_gain(), decode_dds1(), decode_decorrelation_matrix(), decode_dsw1(), decode_fixed_sparse(), decode_frame(), decode_init(), decode_scalefactors(), decode_subframe(), decode_tilehdr(), decode_tsw1(), denoise_dct_mmx(), denoise_dct_sse2(), dnxhd_encode_picture(), dnxhd_init_vlc(), dnxhd_setup_threads_slices(), do_a_deblock_TMPL(), dv_frame_offset(), dv_read_seek(), encode_block(), encode_frame(), encode_init(), ff_asf_parse_packet(), ff_copy_pce_data(), ff_draw_horiz_band(), ff_h264_decode_init_vlc(), ff_h264_filter_mb(), ff_h264_luma_dc_dequant_idct(), ff_mpa_synth_filter_TMPL(), ff_mspel_motion(), ff_rtmp_packet_read(), ff_rtp_send_latm(), ff_rv34_decode_frame(), ff_svq3_luma_dc_dequant_idct_c(), filter(), fixup_vorbis_headers(), flv_read_header(), get_intra_count(), get_p_cbp(), gmc1_motion(), gsm_decode_block(), h263_mv4_search(), h_block_filter(), hScale_TMPL(), init_ref(), lag_decode_arith_plane(), matroska_execute_seekhead(), matroska_parse_block(), matroska_read_header(), mc_dir_part(), md5_finish(), mjpeg_decode_scan(), motion_search(), mov_probe(), mov_read_trun(), mp_read_changes_map(), mpeg4_encode_mb(), nsv_probe(), oggvorbis_encode_init(), postProcess_TMPL(), ptx_decode_frame(), qdm2_fft_decode_tones(), qdm2_fft_tone_synthesizer(), radix_count(), read_braindead_odml_indx(), read_frame_data(), read_header(), read_uncompressed_sgi(), read_var_block_data(), rpl_read_header(), rv10_decode_frame(), seq_decode_op3(), spdif_probe(), spdif_read_packet(), svq1_decode_init(), svq1_encode_plane(), svq3_decode_init(), tgv_decode_inter(), unpack(), v_block_filter(), vorbis_floor1_decode(), vp3_draw_horiz_band(), vp56_get_vectors_predictors(), x11grab_read_header(), x8_vlc_init(), xan_decode_chroma(), and yuv2yuvX_altivec_real().

void(* requantize)(DCTELEM dst[64], DCTELEM src[64], int qp, uint8_t *permutation) = hardthresh_c [static]

void(* store_slice)(uint8_t *dst, int16_t *src, int dst_stride, int src_stride, int width, int height, int log2_scale) = store_slice_c [static]

Referenced by filter(), and vf_open().

Initial value:

 {
    "simple postprocess",
    "spp",
    "Michael Niedermayer",
    "",
    vf_open,
    NULL
}

Definition at line 613 of file vf_spp.c.


Generated on Fri Oct 26 02:39:48 2012 for FFmpeg by  doxygen 1.5.8