Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
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
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
5c567588
Commit
5c567588
authored
Feb 15, 2017
by
James Darnley
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
avcodec/h264: add avx 8-bit chroma v deblock/loop filter
~1.24x faster (101 vs. 81 cycles) compared with mmxext function
parent
1e298e77
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
40 additions
and
0 deletions
+40
-0
h264_deblock.asm
libavcodec/x86/h264_deblock.asm
+38
-0
h264dsp_init.c
libavcodec/x86/h264dsp_init.c
+2
-0
No files found.
libavcodec/x86/h264_deblock.asm
View file @
5c567588
...
...
@@ -1059,6 +1059,44 @@ ff_chroma_intra_body_mmxext:
paddb
m2
,
m6
ret
%macro
CHROMA_INTER_BODY_XMM
1
LOAD_MASK
alpha_d
,
beta_d
movd
m6
,
[
tc0_q
]
%
rep
%1
punpcklbw
m6
,
m6
%
endrep
pand
m7
,
m6
DEBLOCK_P0_Q0
%endmacro
%macro
CHROMA_V_START_XMM
1
movsxdifnidn
stride_q
,
stride_d
dec
alpha_d
dec
beta_d
mov
%1
,
pix_q
sub
%1
,
stride_q
sub
%1
,
stride_q
%endmacro
%macro
DEBLOCK_CHROMA_XMM
1
INIT_XMM
%1
cglobal
deblock_v_chroma_8
,
5
,
6
,
8
,
pix_
,
stride_
,
alpha_
,
beta_
,
tc0_
CHROMA_V_START_XMM
r5
movq
m0
,
[r5]
movq
m1
,
[
r5
+
stride_q
]
movq
m2
,
[
pix_q
]
movq
m3
,
[
pix_q
+
stride_q
]
CHROMA_INTER_BODY_XMM
1
movq
[
r5
+
stride_q
]
,
m1
movq
[
pix_q
]
,
m2
RET
%endmacro
; DEBLOCK_CHROMA_XMM
DEBLOCK_CHROMA_XMM
avx
;-----------------------------------------------------------------------------
; void ff_h264_loop_filter_strength(int16_t bs[2][4][4], uint8_t nnz[40],
; int8_t ref[2][40], int16_t mv[2][40][2],
...
...
libavcodec/x86/h264dsp_init.c
View file @
5c567588
...
...
@@ -317,6 +317,8 @@ av_cold void ff_h264dsp_init_x86(H264DSPContext *c, const int bit_depth,
#if ARCH_X86_64
c
->
h264_h_loop_filter_luma_mbaff
=
ff_deblock_h_luma_mbaff_8_avx
;
#endif
c
->
h264_v_loop_filter_chroma
=
ff_deblock_v_chroma_8_avx
;
}
}
else
if
(
bit_depth
==
10
)
{
if
(
EXTERNAL_MMXEXT
(
cpu_flags
))
{
...
...
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