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
76d90125
Commit
76d90125
authored
Jan 22, 2013
by
Diego Biurrun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
vf_hqdn3d: x86: Add proper arch optimization initialization
parent
6c1a7d07
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
81 additions
and
21 deletions
+81
-21
vf_hqdn3d.c
libavfilter/vf_hqdn3d.c
+4
-21
vf_hqdn3d.h
libavfilter/vf_hqdn3d.h
+37
-0
Makefile
libavfilter/x86/Makefile
+1
-0
vf_hqdn3d_init.c
libavfilter/x86/vf_hqdn3d_init.c
+39
-0
No files found.
libavfilter/vf_hqdn3d.c
View file @
76d90125
...
...
@@ -26,6 +26,7 @@
* libmpcodecs/vf_hqdn3d.c.
*/
#include "config.h"
#include "libavutil/common.h"
#include "libavutil/pixdesc.h"
#include "libavutil/intreadwrite.h"
...
...
@@ -33,21 +34,7 @@
#include "formats.h"
#include "internal.h"
#include "video.h"
typedef
struct
{
int16_t
*
coefs
[
4
];
uint16_t
*
line
;
uint16_t
*
frame_prev
[
3
];
double
strength
[
4
];
int
hsub
,
vsub
;
int
depth
;
void
(
*
denoise_row
[
17
])(
uint8_t
*
src
,
uint8_t
*
dst
,
uint16_t
*
line_ant
,
uint16_t
*
frame_ant
,
ptrdiff_t
w
,
int16_t
*
spatial
,
int16_t
*
temporal
);
}
HQDN3DContext
;
void
ff_hqdn3d_row_8_x86
(
uint8_t
*
src
,
uint8_t
*
dst
,
uint16_t
*
line_ant
,
uint16_t
*
frame_ant
,
ptrdiff_t
w
,
int16_t
*
spatial
,
int16_t
*
temporal
);
void
ff_hqdn3d_row_9_x86
(
uint8_t
*
src
,
uint8_t
*
dst
,
uint16_t
*
line_ant
,
uint16_t
*
frame_ant
,
ptrdiff_t
w
,
int16_t
*
spatial
,
int16_t
*
temporal
);
void
ff_hqdn3d_row_10_x86
(
uint8_t
*
src
,
uint8_t
*
dst
,
uint16_t
*
line_ant
,
uint16_t
*
frame_ant
,
ptrdiff_t
w
,
int16_t
*
spatial
,
int16_t
*
temporal
);
void
ff_hqdn3d_row_16_x86
(
uint8_t
*
src
,
uint8_t
*
dst
,
uint16_t
*
line_ant
,
uint16_t
*
frame_ant
,
ptrdiff_t
w
,
int16_t
*
spatial
,
int16_t
*
temporal
);
#include "vf_hqdn3d.h"
#define LUT_BITS (depth==16 ? 8 : 4)
#define RIGHTSHIFT(a,b) (((a)+(((1<<(b))-1)>>1))>>(b))
...
...
@@ -312,12 +299,8 @@ static int config_input(AVFilterLink *inlink)
return
AVERROR
(
ENOMEM
);
}
#if HAVE_YASM
hqdn3d
->
denoise_row
[
8
]
=
ff_hqdn3d_row_8_x86
;
hqdn3d
->
denoise_row
[
9
]
=
ff_hqdn3d_row_9_x86
;
hqdn3d
->
denoise_row
[
10
]
=
ff_hqdn3d_row_10_x86
;
hqdn3d
->
denoise_row
[
16
]
=
ff_hqdn3d_row_16_x86
;
#endif
if
(
ARCH_X86
)
ff_hqdn3d_init_x86
(
hqdn3d
);
return
0
;
}
...
...
libavfilter/vf_hqdn3d.h
0 → 100644
View file @
76d90125
/*
* This file is part of Libav.
*
* Libav is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* Libav is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with Libav; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifndef AVFILTER_VF_HQDN3D_H
#define AVFILTER_VF_HQDN3D_H
#include <stddef.h>
#include <stdint.h>
typedef
struct
{
int16_t
*
coefs
[
4
];
uint16_t
*
line
;
uint16_t
*
frame_prev
[
3
];
double
strength
[
4
];
int
hsub
,
vsub
;
int
depth
;
void
(
*
denoise_row
[
17
])(
uint8_t
*
src
,
uint8_t
*
dst
,
uint16_t
*
line_ant
,
uint16_t
*
frame_ant
,
ptrdiff_t
w
,
int16_t
*
spatial
,
int16_t
*
temporal
);
}
HQDN3DContext
;
void
ff_hqdn3d_init_x86
(
HQDN3DContext
*
hqdn3d
);
#endif
/* AVFILTER_VF_HQDN3D_H */
libavfilter/x86/Makefile
View file @
76d90125
OBJS-$(CONFIG_GRADFUN_FILTER)
+=
x86/gradfun.o
OBJS-$(CONFIG_HQDN3D_FILTER)
+=
x86/vf_hqdn3d_init.o
OBJS-$(CONFIG_VOLUME_FILTER)
+=
x86/af_volume_init.o
OBJS-$(CONFIG_YADIF_FILTER)
+=
x86/yadif_init.o
...
...
libavfilter/x86/vf_hqdn3d_init.c
0 → 100644
View file @
76d90125
/*
* This file is part of Libav.
*
* Libav is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* Libav is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with Libav; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#include <stddef.h>
#include <stdint.h>
#include "libavutil/attributes.h"
#include "libavfilter/vf_hqdn3d.h"
#include "config.h"
void
ff_hqdn3d_row_8_x86
(
uint8_t
*
src
,
uint8_t
*
dst
,
uint16_t
*
line_ant
,
uint16_t
*
frame_ant
,
ptrdiff_t
w
,
int16_t
*
spatial
,
int16_t
*
temporal
);
void
ff_hqdn3d_row_9_x86
(
uint8_t
*
src
,
uint8_t
*
dst
,
uint16_t
*
line_ant
,
uint16_t
*
frame_ant
,
ptrdiff_t
w
,
int16_t
*
spatial
,
int16_t
*
temporal
);
void
ff_hqdn3d_row_10_x86
(
uint8_t
*
src
,
uint8_t
*
dst
,
uint16_t
*
line_ant
,
uint16_t
*
frame_ant
,
ptrdiff_t
w
,
int16_t
*
spatial
,
int16_t
*
temporal
);
void
ff_hqdn3d_row_16_x86
(
uint8_t
*
src
,
uint8_t
*
dst
,
uint16_t
*
line_ant
,
uint16_t
*
frame_ant
,
ptrdiff_t
w
,
int16_t
*
spatial
,
int16_t
*
temporal
);
av_cold
void
ff_hqdn3d_init_x86
(
HQDN3DContext
*
hqdn3d
)
{
#if HAVE_YASM
hqdn3d
->
denoise_row
[
8
]
=
ff_hqdn3d_row_8_x86
;
hqdn3d
->
denoise_row
[
9
]
=
ff_hqdn3d_row_9_x86
;
hqdn3d
->
denoise_row
[
10
]
=
ff_hqdn3d_row_10_x86
;
hqdn3d
->
denoise_row
[
16
]
=
ff_hqdn3d_row_16_x86
;
#endif
}
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