FFmpeg
Macros | Functions
vp9dsp_init_16bpp_arm_template.c File Reference
#include <stdint.h>
#include "libavutil/attributes.h"
#include "libavutil/internal.h"
#include "libavutil/arm/cpu.h"
#include "vp9dsp_init.h"

Go to the source code of this file.

Macros

#define declare_fpel(type, sz, suffix)
 
#define decl_mc_func(op, filter, dir, sz, bpp)
 
#define define_8tap_2d_fn(op, filter, sz, bpp)
 
#define decl_filter_funcs(op, dir, sz, bpp)
 
#define decl_mc_funcs(sz, bpp)
 
#define define_8tap_2d_funcs(sz, bpp)
 
#define init_fpel(idx1, idx2, sz, type, suffix)
 
#define init_copy_avg(idx, sz1, sz2)
 
#define init_mc_func(idx1, idx2, op, filter, fname, dir, mx, my, sz, pfx, bpp)   dsp->mc[idx1][filter][idx2][mx][my] = pfx##op##_##fname##sz##_##dir##_##bpp##_neon
 
#define init_mc_funcs(idx, dir, mx, my, sz, pfx, bpp)
 
#define init_mc_funcs_dirs(idx, sz, bpp)
 
#define define_itxfm2(type_a, type_b, sz, bpp)
 
#define define_itxfm(type_a, type_b, sz, bpp)   define_itxfm2(type_a, type_b, sz, bpp)
 
#define define_itxfm_funcs(sz, bpp)
 
#define init_itxfm2(tx, sz, bpp)
 
#define init_itxfm(tx, sz, bpp)   init_itxfm2(tx, sz, bpp)
 
#define init_idct2(tx, nm, bpp)
 
#define init_idct(tx, nm, bpp)   init_idct2(tx, nm, bpp)
 
#define define_loop_filter(dir, wd, size, bpp)   void ff_vp9_loop_filter_##dir##_##wd##_##size##_##bpp##_neon(uint8_t *dst, ptrdiff_t stride, int E, int I, int H)
 
#define define_loop_filters(wd, size, bpp)
 
#define init_lpf_func_8(idx1, idx2, dir, wd, bpp)   dsp->loop_filter_8[idx1][idx2] = ff_vp9_loop_filter_##dir##_##wd##_8_##bpp##_neon
 
#define init_lpf_func_16(idx, dir, bpp)   dsp->loop_filter_16[idx] = ff_vp9_loop_filter_##dir##_16_16_##bpp##_neon
 
#define init_lpf_func_mix2(idx1, idx2, idx3, dir, wd, bpp)   dsp->loop_filter_mix2[idx1][idx2][idx3] = ff_vp9_loop_filter_##dir##_##wd##_16_##bpp##_neon
 
#define init_lpf_funcs_8_wd(idx, wd, bpp)
 
#define init_lpf_funcs_16(bpp)
 
#define init_lpf_funcs_mix2_wd(idx1, idx2, wd, bpp)
 
#define init_lpf_funcs_8(bpp)
 
#define init_lpf_funcs_mix2(bpp)
 

Functions

 declare_fpel (copy, 128,)
 
 declare_fpel (copy, 64,)
 
 declare_fpel (copy, 32,)
 
 declare_fpel (copy, 16,)
 
 declare_fpel (copy, 8,)
 
 declare_fpel (avg, 64, _16)
 
 declare_fpel (avg, 32, _16)
 
 declare_fpel (avg, 16, _16)
 
 declare_fpel (avg, 8, _16)
 
 declare_fpel (avg, 4, _16)
 
 decl_mc_funcs (64, BPP)
 
 decl_mc_funcs (32, BPP)
 
 decl_mc_funcs (16, BPP)
 
 decl_mc_funcs (8, BPP)
 
 decl_mc_funcs (4, BPP)
 
 define_8tap_2d_funcs (64, BPP)
 
 define_itxfm_funcs (4, BPP)
 
 define_itxfm_funcs (8, BPP)
 
 define_itxfm_funcs (16, BPP)
 
 define_itxfm (idct, idct, 32, BPP)
 
 define_itxfm (iwht, iwht, 4, BPP)
 
static av_cold void vp9dsp_itxfm_init_arm (VP9DSPContext *dsp)
 
 define_loop_filters (4, 8, BPP)
 
 define_loop_filters (8, 8, BPP)
 
 define_loop_filters (16, 8, BPP)
 
 define_loop_filters (16, 16, BPP)
 
 define_loop_filters (44, 16, BPP)
 
 define_loop_filters (48, 16, BPP)
 
 define_loop_filters (84, 16, BPP)
 
 define_loop_filters (88, 16, BPP)
 
static av_cold void vp9dsp_loopfilter_init_arm (VP9DSPContext *dsp)
 
av_cold void INIT_FUNC (VP9DSPContext *dsp)
 

Macro Definition Documentation

#define declare_fpel (   type,
  sz,
  suffix 
)
Value:
void ff_vp9_##type##sz##suffix##_neon(uint8_t *dst, ptrdiff_t dst_stride, \
const uint8_t *src, ptrdiff_t src_stride, \
int h, int mx, int my)
GLint GLenum type
Definition: opengl_enc.c:104
uint8_t
#define src
Definition: vp8dsp.c:254
const char * suffix
Definition: checkasm.c:198

Definition at line 28 of file vp9dsp_init_16bpp_arm_template.c.

#define decl_mc_func (   op,
  filter,
  dir,
  sz,
  bpp 
)
Value:
void ff_vp9_##op##_##filter##sz##_##dir##_##bpp##_neon(uint8_t *dst, ptrdiff_t dst_stride, \
const uint8_t *src, ptrdiff_t src_stride, \
int h, int mx, int my)
uint8_t
#define _
#define src
Definition: vp8dsp.c:254
filter_frame For filters that do not use the this method is called when a frame is pushed to the filter s input It can be called at any time except in a reentrant way If the input frame is enough to produce then the filter should push the output frames on the output link immediately As an exception to the previous rule if the input frame is enough to produce several output frames then the filter needs output only at least one per link The additional frames can be left buffered in the filter
static int op(uint8_t **dst, const uint8_t *dst_end, GetByteContext *gb, int pixel, int count, int *x, int width, int linesize)
Perform decode operation.
Definition: anm.c:78

Definition at line 33 of file vp9dsp_init_16bpp_arm_template.c.

#define define_8tap_2d_fn (   op,
  filter,
  sz,
  bpp 
)
Value:
static void op##_##filter##sz##_hv_##bpp##_neon(uint8_t *dst, ptrdiff_t dst_stride, \
const uint8_t *src, \
ptrdiff_t src_stride, \
int h, int mx, int my) \
{ \
LOCAL_ALIGNED_16(uint8_t, temp, [((1 + (sz < 64)) * sz + 8) * sz * 2]); \
/* We only need h + 7 lines, but the horizontal filter assumes an \
* even number of rows, so filter h + 8 lines here. */ \
ff_vp9_put_##filter##sz##_h_##bpp##_neon(temp, 2 * sz, \
src - 3 * src_stride, src_stride, \
h + 8, mx, 0); \
ff_vp9_##op##_##filter##sz##_v_##bpp##_neon(dst, dst_stride, \
temp + 3 * 2 * sz, 2 * sz, \
h, 0, my); \
}
else temp
Definition: vf_mcdeint.c:256
uint8_t
#define _
#define src
Definition: vp8dsp.c:254
filter_frame For filters that do not use the this method is called when a frame is pushed to the filter s input It can be called at any time except in a reentrant way If the input frame is enough to produce then the filter should push the output frames on the output link immediately As an exception to the previous rule if the input frame is enough to produce several output frames then the filter needs output only at least one per link The additional frames can be left buffered in the filter
static int op(uint8_t **dst, const uint8_t *dst_end, GetByteContext *gb, int pixel, int count, int *x, int width, int linesize)
Perform decode operation.
Definition: anm.c:78
#define LOCAL_ALIGNED_16(t, v,...)
Definition: internal.h:131

Definition at line 38 of file vp9dsp_init_16bpp_arm_template.c.

#define decl_filter_funcs (   op,
  dir,
  sz,
  bpp 
)
Value:
decl_mc_func(op, regular, dir, sz, bpp); \
decl_mc_func(op, sharp, dir, sz, bpp); \
decl_mc_func(op, smooth, dir, sz, bpp)
static float smooth(DeshakeOpenCLContext *deshake_ctx, float *gauss_kernel, int length, float max_val, AVFifoBuffer *values)
static int op(uint8_t **dst, const uint8_t *dst_end, GetByteContext *gb, int pixel, int count, int *x, int width, int linesize)
Perform decode operation.
Definition: anm.c:78
#define decl_mc_func(op, filter, dir, sz, bpp)

Definition at line 55 of file vp9dsp_init_16bpp_arm_template.c.

#define decl_mc_funcs (   sz,
  bpp 
)
Value:
decl_filter_funcs(put, h, sz, bpp); \
decl_filter_funcs(put, v, sz, bpp); \
decl_filter_funcs(avg, v, sz, bpp); \
decl_filter_funcs(put, hv, sz, bpp); \
decl_filter_funcs(avg, hv, sz, bpp)
#define decl_filter_funcs(op, dir, sz, bpp)
#define avg(a, b, c, d)

Definition at line 60 of file vp9dsp_init_16bpp_arm_template.c.

#define define_8tap_2d_funcs (   sz,
  bpp 
)
Value:
define_8tap_2d_fn(put, regular, sz, bpp) \
define_8tap_2d_fn(put, sharp, sz, bpp) \
define_8tap_2d_fn(put, smooth, sz, bpp) \
define_8tap_2d_fn(avg, regular, sz, bpp) \
define_8tap_2d_fn(avg, sharp, sz, bpp) \
static float smooth(DeshakeOpenCLContext *deshake_ctx, float *gauss_kernel, int length, float max_val, AVFifoBuffer *values)
#define avg(a, b, c, d)
#define define_8tap_2d_fn(op, filter, sz, bpp)

Definition at line 85 of file vp9dsp_init_16bpp_arm_template.c.

#define init_fpel (   idx1,
  idx2,
  sz,
  type,
  suffix 
)
Value:
dsp->mc[idx1][FILTER_8TAP_SMOOTH ][idx2][0][0] = \
dsp->mc[idx1][FILTER_8TAP_REGULAR][idx2][0][0] = \
dsp->mc[idx1][FILTER_8TAP_SHARP ][idx2][0][0] = \
dsp->mc[idx1][FILTER_BILINEAR ][idx2][0][0] = ff_vp9_##type##sz##suffix##_neon
GLint GLenum type
Definition: opengl_enc.c:104
const char * suffix
Definition: checkasm.c:198
#define init_copy_avg (   idx,
  sz1,
  sz2 
)
Value:
init_fpel(idx, 0, sz2, copy, ); \
init_fpel(idx, 1, sz1, avg, _16)
static void copy(const float *p1, float *p2, const int length)
#define avg(a, b, c, d)
#define init_fpel(idx1, idx2, sz, type, suffix)

Referenced by define_8tap_2d_funcs().

#define init_mc_func (   idx1,
  idx2,
  op,
  filter,
  fname,
  dir,
  mx,
  my,
  sz,
  pfx,
  bpp 
)    dsp->mc[idx1][filter][idx2][mx][my] = pfx##op##_##fname##sz##_##dir##_##bpp##_neon
#define init_mc_funcs (   idx,
  dir,
  mx,
  my,
  sz,
  pfx,
  bpp 
)
Value:
init_mc_func(idx, 0, put, FILTER_8TAP_REGULAR, regular, dir, mx, my, sz, pfx, bpp); \
init_mc_func(idx, 0, put, FILTER_8TAP_SHARP, sharp, dir, mx, my, sz, pfx, bpp); \
init_mc_func(idx, 0, put, FILTER_8TAP_SMOOTH, smooth, dir, mx, my, sz, pfx, bpp); \
init_mc_func(idx, 1, avg, FILTER_8TAP_REGULAR, regular, dir, mx, my, sz, pfx, bpp); \
init_mc_func(idx, 1, avg, FILTER_8TAP_SHARP, sharp, dir, mx, my, sz, pfx, bpp); \
init_mc_func(idx, 1, avg, FILTER_8TAP_SMOOTH, smooth, dir, mx, my, sz, pfx, bpp)
static float smooth(DeshakeOpenCLContext *deshake_ctx, float *gauss_kernel, int length, float max_val, AVFifoBuffer *values)
#define avg(a, b, c, d)
#define init_mc_func(idx1, idx2, op, filter, fname, dir, mx, my, sz, pfx, bpp)
#define init_mc_funcs_dirs (   idx,
  sz,
  bpp 
)
Value:
init_mc_funcs(idx, h, 1, 0, sz, ff_vp9_, bpp); \
init_mc_funcs(idx, v, 0, 1, sz, ff_vp9_, bpp); \
init_mc_funcs(idx, hv, 1, 1, sz, , bpp)
#define init_mc_funcs(idx, dir, mx, my, sz, pfx, bpp)

Referenced by define_8tap_2d_funcs().

#define define_itxfm2 (   type_a,
  type_b,
  sz,
  bpp 
)
Value:
void ff_vp9_##type_a##_##type_b##_##sz##x##sz##_add_##bpp##_neon(uint8_t *_dst, \
ptrdiff_t stride, \
int16_t *_block, int eob)
uint8_t
#define _
GLint GLenum GLboolean GLsizei stride
Definition: opengl_enc.c:104

Definition at line 145 of file vp9dsp_init_16bpp_arm_template.c.

#define define_itxfm (   type_a,
  type_b,
  sz,
  bpp 
)    define_itxfm2(type_a, type_b, sz, bpp)

Definition at line 149 of file vp9dsp_init_16bpp_arm_template.c.

#define define_itxfm_funcs (   sz,
  bpp 
)
Value:
define_itxfm(idct, idct, sz, bpp); \
define_itxfm(iadst, idct, sz, bpp); \
define_itxfm(idct, iadst, sz, bpp); \
define_itxfm(iadst, iadst, sz, bpp)
static void idct(int16_t block[64])
Definition: 4xm.c:163
#define define_itxfm(type_a, type_b, sz, bpp)

Definition at line 151 of file vp9dsp_init_16bpp_arm_template.c.

#define init_itxfm2 (   tx,
  sz,
  bpp 
)
Value:
dsp->itxfm_add[tx][DCT_DCT] = ff_vp9_idct_idct_##sz##_add_##bpp##_neon; \
dsp->itxfm_add[tx][DCT_ADST] = ff_vp9_iadst_idct_##sz##_add_##bpp##_neon; \
dsp->itxfm_add[tx][ADST_DCT] = ff_vp9_idct_iadst_##sz##_add_##bpp##_neon; \
dsp->itxfm_add[tx][ADST_ADST] = ff_vp9_iadst_iadst_##sz##_add_##bpp##_neon
Definition: vp9.h:38
Definition: vp9.h:39
Definition: vp9.h:41
Definition: vp9.h:40
#define init_itxfm (   tx,
  sz,
  bpp 
)    init_itxfm2(tx, sz, bpp)

Referenced by vp9dsp_itxfm_init_arm().

#define init_idct2 (   tx,
  nm,
  bpp 
)
Value:
dsp->itxfm_add[tx][DCT_DCT] = \
dsp->itxfm_add[tx][ADST_DCT] = \
dsp->itxfm_add[tx][DCT_ADST] = \
dsp->itxfm_add[tx][ADST_ADST] = ff_vp9_##nm##_add_##bpp##_neon
Definition: vp9.h:38
Definition: vp9.h:39
Definition: vp9.h:41
Definition: vp9.h:40
#define init_idct (   tx,
  nm,
  bpp 
)    init_idct2(tx, nm, bpp)

Referenced by vp9dsp_itxfm_init_arm().

#define define_loop_filter (   dir,
  wd,
  size,
  bpp 
)    void ff_vp9_loop_filter_##dir##_##wd##_##size##_##bpp##_neon(uint8_t *dst, ptrdiff_t stride, int E, int I, int H)

Definition at line 191 of file vp9dsp_init_16bpp_arm_template.c.

#define define_loop_filters (   wd,
  size,
  bpp 
)
Value:
ptrdiff_t size
Definition: opengl_enc.c:100
#define define_loop_filter(dir, wd, size, bpp)

Definition at line 194 of file vp9dsp_init_16bpp_arm_template.c.

#define init_lpf_func_8 (   idx1,
  idx2,
  dir,
  wd,
  bpp 
)    dsp->loop_filter_8[idx1][idx2] = ff_vp9_loop_filter_##dir##_##wd##_8_##bpp##_neon
#define init_lpf_func_16 (   idx,
  dir,
  bpp 
)    dsp->loop_filter_16[idx] = ff_vp9_loop_filter_##dir##_16_16_##bpp##_neon
#define init_lpf_func_mix2 (   idx1,
  idx2,
  idx3,
  dir,
  wd,
  bpp 
)    dsp->loop_filter_mix2[idx1][idx2][idx3] = ff_vp9_loop_filter_##dir##_##wd##_16_##bpp##_neon
#define init_lpf_funcs_8_wd (   idx,
  wd,
  bpp 
)
Value:
init_lpf_func_8(idx, 0, h, wd, bpp); \
init_lpf_func_8(idx, 1, v, wd, bpp)
#define init_lpf_func_8(idx1, idx2, dir, wd, bpp)
#define init_lpf_funcs_16 (   bpp)
Value:
init_lpf_func_16(0, h, bpp); \
#define init_lpf_func_16(idx, dir, bpp)

Referenced by vp9dsp_loopfilter_init_arm().

#define init_lpf_funcs_mix2_wd (   idx1,
  idx2,
  wd,
  bpp 
)
Value:
init_lpf_func_mix2(idx1, idx2, 0, h, wd, bpp); \
init_lpf_func_mix2(idx1, idx2, 1, v, wd, bpp)
#define init_lpf_func_mix2(idx1, idx2, idx3, dir, wd, bpp)
#define init_lpf_funcs_8 (   bpp)
Value:
#define init_lpf_funcs_8_wd(idx, wd, bpp)

Referenced by vp9dsp_loopfilter_init_arm().

#define init_lpf_funcs_mix2 (   bpp)
Value:
init_lpf_funcs_mix2_wd(0, 0, 44, bpp); \
init_lpf_funcs_mix2_wd(0, 1, 48, bpp); \
init_lpf_funcs_mix2_wd(1, 0, 84, bpp); \
#define init_lpf_funcs_mix2_wd(idx1, idx2, wd, bpp)

Referenced by vp9dsp_loopfilter_init_arm().

Function Documentation

declare_fpel ( copy  ,
128   
)
declare_fpel ( copy  ,
64   
)
declare_fpel ( copy  ,
32   
)
declare_fpel ( copy  ,
16   
)
declare_fpel ( copy  ,
 
)
declare_fpel ( avg  ,
64  ,
_16   
)
declare_fpel ( avg  ,
32  ,
_16   
)
declare_fpel ( avg  ,
16  ,
_16   
)
declare_fpel ( avg  ,
,
_16   
)
declare_fpel ( avg  ,
,
_16   
)
decl_mc_funcs ( 64  ,
BPP   
)
decl_mc_funcs ( 32  ,
BPP   
)
decl_mc_funcs ( 16  ,
BPP   
)
decl_mc_funcs ( ,
BPP   
)
decl_mc_funcs ( ,
BPP   
)
define_8tap_2d_funcs ( 64  ,
BPP   
)

Definition at line 93 of file vp9dsp_init_16bpp_arm_template.c.

define_itxfm_funcs ( ,
BPP   
)
define_itxfm_funcs ( ,
BPP   
)
define_itxfm_funcs ( 16  ,
BPP   
)
define_itxfm ( idct  ,
idct  ,
32  ,
BPP   
)
define_itxfm ( iwht  ,
iwht  ,
,
BPP   
)
static av_cold void vp9dsp_itxfm_init_arm ( VP9DSPContext dsp)
static

Definition at line 164 of file vp9dsp_init_16bpp_arm_template.c.

Referenced by INIT_FUNC().

define_loop_filters ( ,
,
BPP   
)
define_loop_filters ( ,
,
BPP   
)
define_loop_filters ( 16  ,
,
BPP   
)
define_loop_filters ( 16  ,
16  ,
BPP   
)
define_loop_filters ( 44  ,
16  ,
BPP   
)
define_loop_filters ( 48  ,
16  ,
BPP   
)
define_loop_filters ( 84  ,
16  ,
BPP   
)
define_loop_filters ( 88  ,
16  ,
BPP   
)
static av_cold void vp9dsp_loopfilter_init_arm ( VP9DSPContext dsp)
static

Definition at line 209 of file vp9dsp_init_16bpp_arm_template.c.

Referenced by ff_vp9dsp_init_arm(), and INIT_FUNC().

av_cold void INIT_FUNC ( VP9DSPContext dsp)

Definition at line 252 of file vp9dsp_init_16bpp_arm_template.c.