Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
ffmpeg
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
ffmpeg
Commits
6e4009d4
Commit
6e4009d4
authored
Feb 22, 2014
by
Janne Grunau
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
arm: dcadsp: implement decode_hf as external NEON asm
parent
4cb69642
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
36 additions
and
0 deletions
+36
-0
dcadsp_init_arm.c
libavcodec/arm/dcadsp_init_arm.c
+7
-0
dcadsp_neon.S
libavcodec/arm/dcadsp_neon.S
+29
-0
No files found.
libavcodec/arm/dcadsp_init_arm.c
View file @
6e4009d4
...
@@ -49,6 +49,12 @@ void ff_synth_filter_float_neon(FFTContext *imdct,
...
@@ -49,6 +49,12 @@ void ff_synth_filter_float_neon(FFTContext *imdct,
float
out
[
32
],
const
float
in
[
32
],
float
out
[
32
],
const
float
in
[
32
],
float
scale
);
float
scale
);
void
ff_decode_hf_neon
(
float
dst
[
DCA_SUBBANDS
][
8
],
const
int32_t
vq_num
[
DCA_SUBBANDS
],
const
int8_t
hf_vq
[
1024
][
32
],
intptr_t
vq_offset
,
int32_t
scale
[
DCA_SUBBANDS
][
2
],
intptr_t
start
,
intptr_t
end
);
av_cold
void
ff_dcadsp_init_arm
(
DCADSPContext
*
s
)
av_cold
void
ff_dcadsp_init_arm
(
DCADSPContext
*
s
)
{
{
int
cpu_flags
=
av_get_cpu_flags
();
int
cpu_flags
=
av_get_cpu_flags
();
...
@@ -61,6 +67,7 @@ av_cold void ff_dcadsp_init_arm(DCADSPContext *s)
...
@@ -61,6 +67,7 @@ av_cold void ff_dcadsp_init_arm(DCADSPContext *s)
if
(
have_neon
(
cpu_flags
))
{
if
(
have_neon
(
cpu_flags
))
{
s
->
lfe_fir
[
0
]
=
ff_dca_lfe_fir0_neon
;
s
->
lfe_fir
[
0
]
=
ff_dca_lfe_fir0_neon
;
s
->
lfe_fir
[
1
]
=
ff_dca_lfe_fir1_neon
;
s
->
lfe_fir
[
1
]
=
ff_dca_lfe_fir1_neon
;
s
->
decode_hf
=
ff_decode_hf_neon
;
}
}
}
}
...
...
libavcodec/arm/dcadsp_neon.S
View file @
6e4009d4
...
@@ -20,6 +20,35 @@
...
@@ -20,6 +20,35 @@
#include "libavutil/arm/asm.S"
#include "libavutil/arm/asm.S"
function ff_decode_hf_neon, export=1
push {r4-r5,lr}
add r2, r2, r3
ldr r3, [sp, #12]
ldrd r4, r5, [sp, #16]
add r3, r3, r4, lsl #3
add r1, r1, r4, lsl #2
add r0, r0, r4, lsl #5
1: ldr_post lr, r1, #4
add r4, r4, #1
add lr, r2, lr, lsl #5
cmp r4, r5
vld1.32 {d7}, [r3]!
vld1.8 {d0}, [lr,:64]
vcvt.f32.s32 d7, d7, #4
vmovl.s8 q1, d0
vmovl.s16 q0, d2
vmovl.s16 q1, d3
vcvt.f32.s32 q0, q0
vcvt.f32.s32 q1, q1
vmul.f32 q0, q0, d7[0]
vmul.f32 q1, q1, d7[0]
vst1.32 {q0-q1}, [r0,:128]!
bne 1b
pop {r4-r5,pc}
endfunc
function ff_dca_lfe_fir0_neon, export=1
function ff_dca_lfe_fir0_neon, export=1
push {r4-r6,lr}
push {r4-r6,lr}
mov r3, #32 @ decifactor
mov r3, #32 @ decifactor
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment