Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Ffmpeg
提交
e1f7cb7f
F
Ffmpeg
项目概览
小白菜888
/
Ffmpeg
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
Ffmpeg
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e1f7cb7f
编写于
1月 30, 2009
作者:
M
Måns Rullgård
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ARM: NEON optimised vector_fmul_window
Originally committed as revision 16868 to
svn://svn.ffmpeg.org/ffmpeg/trunk
上级
dd927e2e
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
54 addition
and
0 deletion
+54
-0
libavcodec/arm/dsputil_neon.c
libavcodec/arm/dsputil_neon.c
+4
-0
libavcodec/arm/dsputil_neon_s.S
libavcodec/arm/dsputil_neon_s.S
+50
-0
未找到文件。
libavcodec/arm/dsputil_neon.c
浏览文件 @
e1f7cb7f
...
...
@@ -147,6 +147,9 @@ void ff_h264_idct_add8_neon(uint8_t **dest, const int *block_offset,
const
uint8_t
nnzc
[
6
*
8
]);
void
ff_vector_fmul_neon
(
float
*
dst
,
const
float
*
src
,
int
len
);
void
ff_vector_fmul_window_neon
(
float
*
dst
,
const
float
*
src0
,
const
float
*
src1
,
const
float
*
win
,
float
add_bias
,
int
len
);
void
ff_float_to_int16_neon
(
int16_t
*
,
const
float
*
,
long
);
void
ff_float_to_int16_interleave_neon
(
int16_t
*
,
const
float
**
,
long
,
int
);
...
...
@@ -245,6 +248,7 @@ void ff_dsputil_init_neon(DSPContext *c, AVCodecContext *avctx)
c
->
h264_idct_add8
=
ff_h264_idct_add8_neon
;
c
->
vector_fmul
=
ff_vector_fmul_neon
;
c
->
vector_fmul_window
=
ff_vector_fmul_window_neon
;
if
(
!
(
avctx
->
flags
&
CODEC_FLAG_BITEXACT
))
{
c
->
float_to_int16
=
ff_float_to_int16_neon
;
...
...
libavcodec/arm/dsputil_neon_s.S
浏览文件 @
e1f7cb7f
...
...
@@ -649,3 +649,53 @@ function ff_vector_fmul_neon, export=1
3
:
vst1.64
{
d16
-
d19
},[
r3
,:
128
]!
bx
lr
.
endfunc
function
ff_vector_fmul_window_neon
,
export
=
1
vld1.32
{
d16
[],
d17
[]},
[
sp
,:
32
]
push
{
r4
,
r5
,
lr
}
ldr
lr
,
[
sp
,
#
16
]
sub
r2
,
r2
,
#
8
sub
r5
,
lr
,
#
2
add
r2
,
r2
,
r5
,
lsl
#
2
add
r4
,
r3
,
r5
,
lsl
#
3
add
ip
,
r0
,
r5
,
lsl
#
3
mov
r5
,
#-
16
vld1.64
{
d0
,
d1
},
[
r1
,:
128
]!
vld1.64
{
d2
,
d3
},
[
r2
,:
128
],
r5
vld1.64
{
d4
,
d5
},
[
r3
,:
128
]!
vld1.64
{
d6
,
d7
},
[
r4
,:
128
],
r5
1
:
subs
lr
,
lr
,
#
4
vmov
q11
,
q8
vmla.f32
d22
,
d0
,
d4
vmov
q10
,
q8
vmla.f32
d23
,
d1
,
d5
vrev64.32
q3
,
q3
vmla.f32
d20
,
d0
,
d7
vrev64.32
q1
,
q1
vmla.f32
d21
,
d1
,
d6
beq
2
f
vmla.f32
d22
,
d3
,
d7
vld1.64
{
d0
,
d1
},
[
r1
,:
128
]!
vmla.f32
d23
,
d2
,
d6
vld1.64
{
d18
,
d19
},[
r2
,:
128
],
r5
vmls.f32
d20
,
d3
,
d4
vld1.64
{
d24
,
d25
},[
r3
,:
128
]!
vmls.f32
d21
,
d2
,
d5
vld1.64
{
d6
,
d7
},
[
r4
,:
128
],
r5
vmov
q1
,
q9
vrev64.32
q11
,
q11
vmov
q2
,
q12
vswp
d22
,
d23
vst1.64
{
d20
,
d21
},[
r0
,:
128
]!
vst1.64
{
d22
,
d23
},[
ip
,:
128
],
r5
b
1
b
2
:
vmla.f32
d22
,
d3
,
d7
vmla.f32
d23
,
d2
,
d6
vmls.f32
d20
,
d3
,
d4
vmls.f32
d21
,
d2
,
d5
vrev64.32
q11
,
q11
vswp
d22
,
d23
vst1.64
{
d20
,
d21
},[
r0
,:
128
]!
vst1.64
{
d22
,
d23
},[
ip
,:
128
],
r5
pop
{
r4
,
r5
,
pc
}
.
endfunc
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录