FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
vp9dsp_init_aarch64.c File Reference
#include <stdint.h>
#include "libavutil/attributes.h"
#include "libavutil/internal.h"
#include "libavutil/aarch64/cpu.h"
#include "libavcodec/vp9dsp.h"
#include "vp9dsp_init.h"

Go to the source code of this file.

Macros

#define declare_fpel(type, sz)
 
#define declare_copy_avg(sz)
 
#define decl_mc_func(op, filter, dir, sz)
 
#define define_8tap_2d_fn(op, filter, sz)
 
#define decl_filter_funcs(op, dir, sz)
 
#define decl_mc_funcs(sz)
 
#define ff_vp9_copy32_neon   ff_vp9_copy32_aarch64
 
#define ff_vp9_copy64_neon   ff_vp9_copy64_aarch64
 
#define define_8tap_2d_funcs(sz)
 
#define init_fpel(idx1, idx2, sz, type, suffix)
 
#define init_copy(idx, sz, suffix)   init_fpel(idx, 0, sz, copy, suffix)
 
#define init_avg(idx, sz, suffix)   init_fpel(idx, 1, sz, avg, suffix)
 
#define init_copy_avg(idx, sz)
 
#define init_mc_func(idx1, idx2, op, filter, fname, dir, mx, my, sz, pfx)   dsp->mc[idx1][filter][idx2][mx][my] = pfx##op##_##fname##sz##_##dir##_neon
 
#define init_mc_funcs(idx, dir, mx, my, sz, pfx)
 
#define init_mc_funcs_dirs(idx, sz)
 
#define define_itxfm(type_a, type_b, sz)
 
#define define_itxfm_funcs(sz)
 
#define init_itxfm(tx, sz)
 
#define init_idct(tx, nm)
 
#define define_loop_filter(dir, wd, len)   void ff_vp9_loop_filter_##dir##_##wd##_##len##_neon(uint8_t *dst, ptrdiff_t stride, int E, int I, int H)
 
#define define_loop_filters(wd, len)
 

Functions

 declare_copy_avg (64)
 
 declare_copy_avg (32)
 
 declare_copy_avg (16)
 
 declare_copy_avg (8)
 
 declare_copy_avg (4)
 
 decl_mc_funcs (64)
 
 decl_mc_funcs (32)
 
 decl_mc_funcs (16)
 
 decl_mc_funcs (8)
 
 decl_mc_funcs (4)
 
 define_8tap_2d_funcs (64)
 
 define_itxfm_funcs (4)
 
 define_itxfm_funcs (8)
 
 define_itxfm_funcs (16)
 
 define_itxfm (idct, idct, 32)
 
 define_itxfm (iwht, iwht, 4)
 
static av_cold void vp9dsp_itxfm_init_aarch64 (VP9DSPContext *dsp)
 
 define_loop_filters (4, 8)
 
 define_loop_filters (8, 8)
 
 define_loop_filters (16, 8)
 
 define_loop_filters (16, 16)
 
 define_loop_filters (44, 16)
 
 define_loop_filters (48, 16)
 
 define_loop_filters (84, 16)
 
 define_loop_filters (88, 16)
 
static av_cold void vp9dsp_loopfilter_init_aarch64 (VP9DSPContext *dsp)
 
av_cold void ff_vp9dsp_init_aarch64 (VP9DSPContext *dsp, int bpp)
 

Macro Definition Documentation

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

Definition at line 29 of file vp9dsp_init_aarch64.c.

#define declare_copy_avg (   sz)
Value:
static void copy(const float *p1, float *p2, const int length)
#define avg(a, b, c, d)
#define declare_fpel(type, sz)

Definition at line 34 of file vp9dsp_init_aarch64.c.

#define decl_mc_func (   op,
  filter,
  dir,
  sz 
)
Value:
void ff_vp9_##op##_##filter##sz##_##dir##_neon(uint8_t *dst, ptrdiff_t dst_stride, \
const uint8_t *src, ptrdiff_t src_stride, \
int h, int mx, int my)
#define src
Definition: vp8dsp.c:254
static void filter(int16_t *output, ptrdiff_t out_stride, int16_t *low, ptrdiff_t low_stride, int16_t *high, ptrdiff_t high_stride, int len, int clip)
Definition: cfhd.c:97
uint8_t
#define _
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 38 of file vp9dsp_init_aarch64.c.

#define define_8tap_2d_fn (   op,
  filter,
  sz 
)
Value:
static void op##_##filter##sz##_hv_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]); \
/* 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_neon(temp, sz, \
src - 3 * src_stride, src_stride, \
h + 8, mx, 0); \
ff_vp9_##op##_##filter##sz##_v_neon(dst, dst_stride, \
temp + 3 * sz, sz, \
h, 0, my); \
}
else temp
Definition: vf_mcdeint.c:256
#define src
Definition: vp8dsp.c:254
static void filter(int16_t *output, ptrdiff_t out_stride, int16_t *low, ptrdiff_t low_stride, int16_t *high, ptrdiff_t high_stride, int len, int clip)
Definition: cfhd.c:97
uint8_t
#define _
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 43 of file vp9dsp_init_aarch64.c.

#define decl_filter_funcs (   op,
  dir,
  sz 
)
Value:
decl_mc_func(op, regular, dir, sz); \
decl_mc_func(op, sharp, dir, sz); \
decl_mc_func(op, smooth, dir, sz)
#define decl_mc_func(op, filter, dir, sz)
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 59 of file vp9dsp_init_aarch64.c.

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

Definition at line 64 of file vp9dsp_init_aarch64.c.

#define ff_vp9_copy32_neon   ff_vp9_copy32_aarch64

Definition at line 72 of file vp9dsp_init_aarch64.c.

#define ff_vp9_copy64_neon   ff_vp9_copy64_aarch64

Definition at line 73 of file vp9dsp_init_aarch64.c.

#define define_8tap_2d_funcs (   sz)
Value:
define_8tap_2d_fn(put, regular, sz) \
define_8tap_2d_fn(put, sharp, sz) \
define_8tap_2d_fn(put, smooth, sz) \
define_8tap_2d_fn(avg, regular, sz) \
define_8tap_2d_fn(avg, smooth, sz)
#define avg(a, b, c, d)
#define define_8tap_2d_fn(op, filter, sz)

Definition at line 87 of file vp9dsp_init_aarch64.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
const char * suffix
Definition: checkasm.c:172
GLint GLenum type
Definition: opengl_enc.c:105
#define init_copy (   idx,
  sz,
  suffix 
)    init_fpel(idx, 0, sz, copy, suffix)

Referenced by define_8tap_2d_funcs().

#define init_avg (   idx,
  sz,
  suffix 
)    init_fpel(idx, 1, sz, avg, suffix)

Referenced by define_8tap_2d_funcs().

#define init_copy_avg (   idx,
  sz 
)
Value:
init_copy(idx, sz, _neon); \
init_avg (idx, sz, _neon)
#define init_copy(idx, sz, suffix)
#define init_avg(idx, sz, suffix)

Referenced by define_8tap_2d_funcs().

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

Referenced by define_8tap_2d_funcs().

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

Definition at line 157 of file vp9dsp_init_aarch64.c.

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

Definition at line 162 of file vp9dsp_init_aarch64.c.

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

Referenced by vp9dsp_itxfm_init_aarch64().

#define init_idct (   tx,
  nm 
)
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_neon
Definition: vp9.h:38
Definition: vp9.h:39
Definition: vp9.h:41
Definition: vp9.h:40

Referenced by vp9dsp_itxfm_init_aarch64().

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

Definition at line 200 of file vp9dsp_init_aarch64.c.

#define define_loop_filters (   wd,
  len 
)
Value:
int len
#define define_loop_filter(dir, wd, len)

Definition at line 203 of file vp9dsp_init_aarch64.c.

Function Documentation

declare_copy_avg ( 64  )
declare_copy_avg ( 32  )
declare_copy_avg ( 16  )
declare_copy_avg ( )
declare_copy_avg ( )
decl_mc_funcs ( 64  )
decl_mc_funcs ( 32  )
decl_mc_funcs ( 16  )
decl_mc_funcs ( )
decl_mc_funcs ( )
define_8tap_2d_funcs ( 64  )

Definition at line 95 of file vp9dsp_init_aarch64.c.

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

Definition at line 175 of file vp9dsp_init_aarch64.c.

Referenced by ff_vp9dsp_init_aarch64().

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

Definition at line 218 of file vp9dsp_init_aarch64.c.

Referenced by ff_vp9dsp_init_aarch64().

av_cold void ff_vp9dsp_init_aarch64 ( VP9DSPContext dsp,
int  bpp 
)

Definition at line 244 of file vp9dsp_init_aarch64.c.

Referenced by ff_vp9dsp_init().