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
815ea8c6
Commit
815ea8c6
authored
Nov 28, 2016
by
James Darnley
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
avcodec/h264: mmxext 4:2:2 chroma intra deblock/loop filter
2.1 times faster (401 vs. 194 cycles)
parent
12219039
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
16 additions
and
0 deletions
+16
-0
h264_deblock.asm
libavcodec/x86/h264_deblock.asm
+14
-0
h264dsp_init.c
libavcodec/x86/h264dsp_init.c
+2
-0
No files found.
libavcodec/x86/h264_deblock.asm
View file @
815ea8c6
...
@@ -946,6 +946,20 @@ cglobal deblock_h_chroma_intra_8, 4,6
...
@@ -946,6 +946,20 @@ cglobal deblock_h_chroma_intra_8, 4,6
TRANSPOSE8x4B_STORE
PASS8ROWS
(
t5
,
r0
,
r1
,
t6
)
TRANSPOSE8x4B_STORE
PASS8ROWS
(
t5
,
r0
,
r1
,
t6
)
RET
RET
cglobal
deblock_h_chroma422_intra_8
,
4
,
6
CHROMA_H_START
TRANSPOSE4x8_LOAD
bw
,
wd
,
dq
,
PASS8ROWS
(
t5
,
r0
,
r1
,
t6
)
call
ff_chroma_intra_body_mmxext
TRANSPOSE8x4B_STORE
PASS8ROWS
(
t5
,
r0
,
r1
,
t6
)
lea
r0
,
[
r0
+
r1
*
8
]
lea
t5
,
[
t5
+
r1
*
8
]
TRANSPOSE4x8_LOAD
bw
,
wd
,
dq
,
PASS8ROWS
(
t5
,
r0
,
r1
,
t6
)
call
ff_chroma_intra_body_mmxext
TRANSPOSE8x4B_STORE
PASS8ROWS
(
t5
,
r0
,
r1
,
t6
)
RET
ALIGN
16
ALIGN
16
ff_chroma_intra_body_mmxext
:
ff_chroma_intra_body_mmxext
:
LOAD_MASK
r2d
,
r3d
LOAD_MASK
r2d
,
r3d
...
...
libavcodec/x86/h264dsp_init.c
View file @
815ea8c6
...
@@ -130,6 +130,7 @@ LF_FUNCS(uint8_t, 8)
...
@@ -130,6 +130,7 @@ LF_FUNCS(uint8_t, 8)
LF_FUNCS
(
uint16_t
,
10
)
LF_FUNCS
(
uint16_t
,
10
)
void
ff_deblock_h_chroma422_8_mmxext
(
uint8_t
*
pix
,
int
stride
,
int
alpha
,
int
beta
,
int8_t
*
tc0
);
void
ff_deblock_h_chroma422_8_mmxext
(
uint8_t
*
pix
,
int
stride
,
int
alpha
,
int
beta
,
int8_t
*
tc0
);
LF_IFUNC
(
h
,
chroma422_intra
,
8
,
mmxext
)
#if ARCH_X86_32 && HAVE_MMXEXT_EXTERNAL
#if ARCH_X86_32 && HAVE_MMXEXT_EXTERNAL
LF_FUNC
(
v8
,
luma
,
8
,
mmxext
)
LF_FUNC
(
v8
,
luma
,
8
,
mmxext
)
...
@@ -249,6 +250,7 @@ av_cold void ff_h264dsp_init_x86(H264DSPContext *c, const int bit_depth,
...
@@ -249,6 +250,7 @@ av_cold void ff_h264dsp_init_x86(H264DSPContext *c, const int bit_depth,
c
->
h264_h_loop_filter_chroma_intra
=
ff_deblock_h_chroma_intra_8_mmxext
;
c
->
h264_h_loop_filter_chroma_intra
=
ff_deblock_h_chroma_intra_8_mmxext
;
}
else
{
}
else
{
c
->
h264_h_loop_filter_chroma
=
ff_deblock_h_chroma422_8_mmxext
;
c
->
h264_h_loop_filter_chroma
=
ff_deblock_h_chroma422_8_mmxext
;
c
->
h264_h_loop_filter_chroma_intra
=
ff_deblock_h_chroma422_intra_8_mmxext
;
}
}
#if ARCH_X86_32 && HAVE_MMXEXT_EXTERNAL
#if ARCH_X86_32 && HAVE_MMXEXT_EXTERNAL
c
->
h264_v_loop_filter_luma
=
deblock_v_luma_8_mmxext
;
c
->
h264_v_loop_filter_luma
=
deblock_v_luma_8_mmxext
;
...
...
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