Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Ffmpeg
提交
118a49b0
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,发现更多精彩内容 >>
提交
118a49b0
编写于
1月 31, 2007
作者:
M
Måns Rullgård
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
optimize IDCT of rows with mostly zero coefficients
Originally committed as revision 7790 to
svn://svn.ffmpeg.org/ffmpeg/trunk
上级
4302963d
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
55 addition
and
2 deletion
+55
-2
libavcodec/armv4l/simple_idct_armv6.S
libavcodec/armv4l/simple_idct_armv6.S
+55
-2
未找到文件。
libavcodec/armv4l/simple_idct_armv6.S
浏览文件 @
118a49b0
...
...
@@ -89,6 +89,32 @@ w57: .long W57
smlsd
v4
,
a3
,
ip
,
v4
/*
A3
+=
W4
*
row
[
4
]
-
W6
*
row
[
6
]
*/
.
endm
/*
Compute
partial
IDCT
of
half
row
.
shift
=
left
-
shift
amount
a3
=
row
[
2
,
0
]
a4
=
row
[
3
,
1
]
Output
in
registers
v1
--
v8
*/
.
macro
idct_row4
shift
ldr
ip
,
[
pc
,
#(
w42
-
.
-
8
)]
/*
ip
=
W4
|
(
W2
<<
16
)
*/
ldr
lr
,
[
pc
,
#(
w46
-
.
-
8
)]
/*
lr
=
W4
|
(
W6
<<
16
)
*/
ldr
v7
,
[
pc
,
#(
w57
-
.
-
8
)]
/*
v7
=
W5
|
(
W7
<<
16
)
*/
mov
a2
,
#(
1
<<(
\
shift
-
1
))
smlad
v1
,
a3
,
ip
,
a2
smlsd
v4
,
a3
,
ip
,
a2
ldr
ip
,
[
pc
,
#(
w13
-
.
-
8
)]
/*
ip
=
W1
|
(
W3
<<
16
)
*/
smlad
v2
,
a3
,
lr
,
a2
smlsd
v3
,
a3
,
lr
,
a2
smusdx
fp
,
a4
,
v7
/*
fp
=
B3
=
W7
*
row
[
1
]
-
W5
*
row
[
3
]
*/
smuad
v5
,
a4
,
ip
/*
v5
=
B0
=
W1
*
row
[
1
]
+
W3
*
row
[
3
]
*/
pkhtb
a3
,
ip
,
v7
,
asr
#
16
/*
a4
=
W7
|
(
W3
<<
16
)
*/
pkhbt
a2
,
ip
,
v7
,
lsl
#
16
/*
a2
=
W1
|
(
W5
<<
16
)
*/
smusdx
v6
,
a3
,
a4
/*
v6
=
-
B1
=
W7
*
row
[
3
]
-
W3
*
row
[
1
]
*/
smusdx
v7
,
a4
,
a2
/*
v7
=
B2
=
W5
*
row
[
1
]
-
W1
*
row
[
3
]
*/
.
endm
/*
Compute
final
part
of
IDCT
single
row
without
shift
.
Input
in
registers
v1
--
v8
...
...
@@ -167,10 +193,26 @@ w57: .long W57
.
align
.
func
idct_row_armv6
idct_row_armv6
:
stmfd
sp
!,
{
a2
,
lr
}
str
lr
,
[
sp
,
#-
4
]!
ldr
lr
,
[
a1
,
#
12
]
/*
lr
=
row
[
7
,
5
]
*/
ldr
ip
,
[
a1
,
#
4
]
/*
ip
=
row
[
6
,
4
]
*/
ldr
a4
,
[
a1
,
#
8
]
/*
a4
=
row
[
3
,
1
]
*/
ldr
a3
,
[
a1
]
/*
a3
=
row
[
2
,
0
]
*/
orrs
lr
,
lr
,
ip
cmpeq
lr
,
a4
cmpeq
lr
,
a3
,
lsr
#
16
beq
1
f
str
a2
,
[
sp
,
#-
4
]!
cmp
lr
,
#
0
beq
2
f
idct_row
ROW_SHIFT
ldr
a2
,
[
sp
],
#
4
b
3
f
2
:
idct_row4
ROW_SHIFT
3
:
ldr
a2
,
[
sp
],
#
4
idct_finish_shift
ROW_SHIFT
strh
v1
,
[
a2
]
...
...
@@ -183,6 +225,17 @@ idct_row_armv6:
strh
v5
,
[
a2
,
#(
16
*
7
)]
ldr
pc
,
[
sp
],
#
4
1
:
mov
a3
,
a3
,
lsl
#
3
strh
a3
,
[
a2
]
strh
a3
,
[
a2
,
#(
16
*
2
)]
strh
a3
,
[
a2
,
#(
16
*
4
)]
strh
a3
,
[
a2
,
#(
16
*
6
)]
strh
a3
,
[
a2
,
#(
16
*
1
)]
strh
a3
,
[
a2
,
#(
16
*
3
)]
strh
a3
,
[
a2
,
#(
16
*
5
)]
strh
a3
,
[
a2
,
#(
16
*
7
)]
ldr
pc
,
[
sp
],
#
4
.
endfunc
/*
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录