FFmpeg  4.0
Macros | Functions | Variables
sbcdsp_init_arm.c File Reference

SBC ARMv6 optimization for some basic "building bricks". More...

#include "libavutil/cpu.h"
#include "libavutil/arm/cpu.h"
#include "libavcodec/sbcdsp.h"

Go to the source code of this file.

Macros

#define PERM(a, b, c, d)
 

Functions

void ff_sbc_analyze_4_armv6 (const int16_t *in, int32_t *out, const int16_t *consts)
 
void ff_sbc_analyze_8_armv6 (const int16_t *in, int32_t *out, const int16_t *consts)
 
void ff_sbc_analyze_4_neon (const int16_t *in, int32_t *out, const int16_t *consts)
 
void ff_sbc_analyze_8_neon (const int16_t *in, int32_t *out, const int16_t *consts)
 
void ff_sbc_calc_scalefactors_neon (int32_t sb_sample_f[16][2][8], uint32_t scale_factor[2][8], int blocks, int channels, int subbands)
 
int ff_sbc_calc_scalefactors_j_neon (int32_t sb_sample_f[16][2][8], uint32_t scale_factor[2][8], int blocks, int subbands)
 
int ff_sbc_enc_process_input_4s_neon (int position, const uint8_t *pcm, int16_t X[2][SBC_X_BUFFER_SIZE], int nsamples, int nchannels)
 
int ff_sbc_enc_process_input_8s_neon (int position, const uint8_t *pcm, int16_t X[2][SBC_X_BUFFER_SIZE], int nsamples, int nchannels)
 
av_cold void ff_sbcdsp_init_arm (SBCDSPContext *s)
 

Variables

int32_t ff_sbcdsp_joint_bits_mask [8]
 
uint8_t ff_sbc_input_perm_4 [2][8]
 
uint8_t ff_sbc_input_perm_8 [4][8]
 

Detailed Description

SBC ARMv6 optimization for some basic "building bricks".

Definition in file sbcdsp_init_arm.c.

Macro Definition Documentation

◆ PERM

#define PERM (   a,
  b,
  c,
 
)
Value:
{ \
(a * 2) + 0, (a * 2) + 1, \
(b * 2) + 0, (b * 2) + 1, \
(c * 2) + 0, (c * 2) + 1, \
(d * 2) + 0, (d * 2) + 1 \
}
const char * b
Definition: vf_curves.c:113
static double c[64]

Definition at line 66 of file sbcdsp_init_arm.c.

Function Documentation

◆ ff_sbc_analyze_4_armv6()

void ff_sbc_analyze_4_armv6 ( const int16_t *  in,
int32_t out,
const int16_t *  consts 
)

Referenced by ff_sbcdsp_init_arm().

◆ ff_sbc_analyze_8_armv6()

void ff_sbc_analyze_8_armv6 ( const int16_t *  in,
int32_t out,
const int16_t *  consts 
)

Referenced by ff_sbcdsp_init_arm().

◆ ff_sbc_analyze_4_neon()

void ff_sbc_analyze_4_neon ( const int16_t *  in,
int32_t out,
const int16_t *  consts 
)

Referenced by ff_sbcdsp_init_arm().

◆ ff_sbc_analyze_8_neon()

void ff_sbc_analyze_8_neon ( const int16_t *  in,
int32_t out,
const int16_t *  consts 
)

Referenced by ff_sbcdsp_init_arm().

◆ ff_sbc_calc_scalefactors_neon()

void ff_sbc_calc_scalefactors_neon ( int32_t  sb_sample_f[16][2][8],
uint32_t  scale_factor[2][8],
int  blocks,
int  channels,
int  subbands 
)

Referenced by ff_sbcdsp_init_arm().

◆ ff_sbc_calc_scalefactors_j_neon()

int ff_sbc_calc_scalefactors_j_neon ( int32_t  sb_sample_f[16][2][8],
uint32_t  scale_factor[2][8],
int  blocks,
int  subbands 
)

Referenced by ff_sbcdsp_init_arm().

◆ ff_sbc_enc_process_input_4s_neon()

int ff_sbc_enc_process_input_4s_neon ( int  position,
const uint8_t pcm,
int16_t  X[2][SBC_X_BUFFER_SIZE],
int  nsamples,
int  nchannels 
)

Referenced by ff_sbcdsp_init_arm().

◆ ff_sbc_enc_process_input_8s_neon()

int ff_sbc_enc_process_input_8s_neon ( int  position,
const uint8_t pcm,
int16_t  X[2][SBC_X_BUFFER_SIZE],
int  nsamples,
int  nchannels 
)

Referenced by ff_sbcdsp_init_arm().

◆ ff_sbcdsp_init_arm()

av_cold void ff_sbcdsp_init_arm ( SBCDSPContext *  s)

Definition at line 86 of file sbcdsp_init_arm.c.

Referenced by ff_sbcdsp_init().

Variable Documentation

◆ ff_sbcdsp_joint_bits_mask

int32_t ff_sbcdsp_joint_bits_mask[8]
Initial value:
= {
8, 4, 2, 1, 128, 64, 32, 16
}

Definition at line 54 of file sbcdsp_init_arm.c.

◆ ff_sbc_input_perm_4

uint8_t ff_sbc_input_perm_4[2][8]
Initial value:
= {
PERM(7, 3, 6, 4),
}
#define PERM(a, b, c, d)

Definition at line 74 of file sbcdsp_init_arm.c.

◆ ff_sbc_input_perm_8

uint8_t ff_sbc_input_perm_8[4][8]
Initial value:
= {
PERM(15, 7, 14, 8),
PERM(13, 9, 12, 10),
PERM(11, 3, 6, 0),
}
#define PERM(a, b, c, d)

Definition at line 79 of file sbcdsp_init_arm.c.