Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Xiph.Org
aom-rav1e
Commits
b0660457
Commit
b0660457
authored
Aug 19, 2010
by
Jim Bankoski
Browse files
Revert "Removed ssse3 sixtap code"
This reverts commit
6ea5bb85
.
parent
52852da7
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
vp8/common/x86/subpixel_ssse3.asm
0 → 100644
View file @
b0660457
This diff is collapsed.
Click to expand it.
vp8/common/x86/subpixel_x86.h
View file @
b0660457
...
...
@@ -86,5 +86,37 @@ extern prototype_subpixel_predict(vp8_bilinear_predict8x8_sse2);
#endif
#endif
#if HAVE_SSSE3
extern
prototype_subpixel_predict
(
vp8_sixtap_predict16x16_ssse3
);
extern
prototype_subpixel_predict
(
vp8_sixtap_predict8x8_ssse3
);
extern
prototype_subpixel_predict
(
vp8_sixtap_predict8x4_ssse3
);
extern
prototype_subpixel_predict
(
vp8_sixtap_predict4x4_ssse3
);
//extern prototype_subpixel_predict(vp8_bilinear_predict16x16_sse2);
//extern prototype_subpixel_predict(vp8_bilinear_predict8x8_sse2);
#if !CONFIG_RUNTIME_CPU_DETECT
#undef vp8_subpix_sixtap16x16
#define vp8_subpix_sixtap16x16 vp8_sixtap_predict16x16_ssse3
#undef vp8_subpix_sixtap8x8
#define vp8_subpix_sixtap8x8 vp8_sixtap_predict8x8_ssse3
#undef vp8_subpix_sixtap8x4
#define vp8_subpix_sixtap8x4 vp8_sixtap_predict8x4_ssse3
#undef vp8_subpix_sixtap4x4
#define vp8_subpix_sixtap4x4 vp8_sixtap_predict4x4_ssse3
//#undef vp8_subpix_bilinear16x16
//#define vp8_subpix_bilinear16x16 vp8_bilinear_predict16x16_sse2
//#undef vp8_subpix_bilinear8x8
//#define vp8_subpix_bilinear8x8 vp8_bilinear_predict8x8_sse2
#endif
#endif
#endif
vp8/common/x86/vp8_asm_stubs.c
View file @
b0660457
...
...
@@ -360,3 +360,194 @@ void vp8_sixtap_predict8x4_sse2
#endif
#if HAVE_SSSE3
extern
void
vp8_filter_block1d8_h6_ssse3
(
unsigned
char
*
src_ptr
,
unsigned
int
src_pixels_per_line
,
unsigned
char
*
output_ptr
,
unsigned
int
output_pitch
,
unsigned
int
output_height
,
unsigned
int
vp8_filter_index
);
extern
void
vp8_filter_block1d16_h6_ssse3
(
unsigned
char
*
src_ptr
,
unsigned
int
src_pixels_per_line
,
unsigned
char
*
output_ptr
,
unsigned
int
output_pitch
,
unsigned
int
output_height
,
unsigned
int
vp8_filter_index
);
extern
void
vp8_filter_block1d16_v6_ssse3
(
unsigned
char
*
src_ptr
,
unsigned
int
src_pitch
,
unsigned
char
*
output_ptr
,
unsigned
int
out_pitch
,
unsigned
int
output_height
,
unsigned
int
vp8_filter_index
);
extern
void
vp8_filter_block1d8_v6_ssse3
(
unsigned
char
*
src_ptr
,
unsigned
int
src_pitch
,
unsigned
char
*
output_ptr
,
unsigned
int
out_pitch
,
unsigned
int
output_height
,
unsigned
int
vp8_filter_index
);
extern
void
vp8_filter_block1d4_h6_ssse3
(
unsigned
char
*
src_ptr
,
unsigned
int
src_pixels_per_line
,
unsigned
char
*
output_ptr
,
unsigned
int
output_pitch
,
unsigned
int
output_height
,
unsigned
int
vp8_filter_index
);
extern
void
vp8_filter_block1d4_v6_ssse3
(
unsigned
char
*
src_ptr
,
unsigned
int
src_pitch
,
unsigned
char
*
output_ptr
,
unsigned
int
out_pitch
,
unsigned
int
output_height
,
unsigned
int
vp8_filter_index
);
void
vp8_sixtap_predict16x16_ssse3
(
unsigned
char
*
src_ptr
,
int
src_pixels_per_line
,
int
xoffset
,
int
yoffset
,
unsigned
char
*
dst_ptr
,
int
dst_pitch
)
{
DECLARE_ALIGNED_ARRAY
(
16
,
unsigned
char
,
FData2
,
24
*
24
);
if
(
xoffset
)
{
if
(
yoffset
)
{
vp8_filter_block1d16_h6_ssse3
(
src_ptr
-
(
2
*
src_pixels_per_line
),
src_pixels_per_line
,
FData2
,
16
,
21
,
xoffset
);
vp8_filter_block1d16_v6_ssse3
(
FData2
,
16
,
dst_ptr
,
dst_pitch
,
16
,
yoffset
);
}
else
{
// First-pass only
vp8_filter_block1d16_h6_ssse3
(
src_ptr
,
src_pixels_per_line
,
dst_ptr
,
dst_pitch
,
16
,
xoffset
);
}
}
else
{
// Second-pass only
vp8_filter_block1d16_v6_ssse3
(
src_ptr
-
(
2
*
src_pixels_per_line
)
,
src_pixels_per_line
,
dst_ptr
,
dst_pitch
,
16
,
yoffset
);
}
}
void
vp8_sixtap_predict8x8_ssse3
(
unsigned
char
*
src_ptr
,
int
src_pixels_per_line
,
int
xoffset
,
int
yoffset
,
unsigned
char
*
dst_ptr
,
int
dst_pitch
)
{
DECLARE_ALIGNED_ARRAY
(
16
,
unsigned
char
,
FData2
,
256
);
if
(
xoffset
)
{
if
(
yoffset
)
{
vp8_filter_block1d8_h6_ssse3
(
src_ptr
-
(
2
*
src_pixels_per_line
),
src_pixels_per_line
,
FData2
,
8
,
13
,
xoffset
);
vp8_filter_block1d8_v6_ssse3
(
FData2
,
8
,
dst_ptr
,
dst_pitch
,
8
,
yoffset
);
}
else
{
vp8_filter_block1d8_h6_ssse3
(
src_ptr
,
src_pixels_per_line
,
dst_ptr
,
dst_pitch
,
8
,
xoffset
);
}
}
else
{
// Second-pass only
vp8_filter_block1d8_v6_ssse3
(
src_ptr
-
(
2
*
src_pixels_per_line
),
src_pixels_per_line
,
dst_ptr
,
dst_pitch
,
8
,
yoffset
);
}
}
void
vp8_sixtap_predict8x4_ssse3
(
unsigned
char
*
src_ptr
,
int
src_pixels_per_line
,
int
xoffset
,
int
yoffset
,
unsigned
char
*
dst_ptr
,
int
dst_pitch
)
{
DECLARE_ALIGNED_ARRAY
(
16
,
unsigned
char
,
FData2
,
256
);
if
(
xoffset
)
{
if
(
yoffset
)
{
vp8_filter_block1d8_h6_ssse3
(
src_ptr
-
(
2
*
src_pixels_per_line
),
src_pixels_per_line
,
FData2
,
8
,
9
,
xoffset
);
vp8_filter_block1d8_v6_ssse3
(
FData2
,
8
,
dst_ptr
,
dst_pitch
,
4
,
yoffset
);
}
else
{
// First-pass only
vp8_filter_block1d8_h6_ssse3
(
src_ptr
,
src_pixels_per_line
,
dst_ptr
,
dst_pitch
,
4
,
xoffset
);
}
}
else
{
// Second-pass only
vp8_filter_block1d8_v6_ssse3
(
src_ptr
-
(
2
*
src_pixels_per_line
),
src_pixels_per_line
,
dst_ptr
,
dst_pitch
,
4
,
yoffset
);
}
}
void
vp8_sixtap_predict4x4_ssse3
(
unsigned
char
*
src_ptr
,
int
src_pixels_per_line
,
int
xoffset
,
int
yoffset
,
unsigned
char
*
dst_ptr
,
int
dst_pitch
)
{
DECLARE_ALIGNED_ARRAY
(
16
,
unsigned
char
,
FData2
,
4
*
9
);
if
(
xoffset
)
{
if
(
yoffset
)
{
vp8_filter_block1d4_h6_ssse3
(
src_ptr
-
(
2
*
src_pixels_per_line
),
src_pixels_per_line
,
FData2
,
4
,
9
,
xoffset
);
vp8_filter_block1d4_v6_ssse3
(
FData2
,
4
,
dst_ptr
,
dst_pitch
,
4
,
yoffset
);
}
else
{
vp8_filter_block1d4_h6_ssse3
(
src_ptr
,
src_pixels_per_line
,
dst_ptr
,
dst_pitch
,
4
,
xoffset
);
}
}
else
{
vp8_filter_block1d4_v6_ssse3
(
src_ptr
-
(
2
*
src_pixels_per_line
),
src_pixels_per_line
,
dst_ptr
,
dst_pitch
,
4
,
yoffset
);
}
}
#endif
vp8/common/x86/x86_systemdependent.c
View file @
b0660457
...
...
@@ -116,5 +116,16 @@ void vp8_arch_x86_common_init(VP8_COMMON *ctx)
#endif
#if HAVE_SSSE3
if
(
SSSE3Enabled
)
{
rtcd
->
subpix
.
sixtap16x16
=
vp8_sixtap_predict16x16_ssse3
;
rtcd
->
subpix
.
sixtap8x8
=
vp8_sixtap_predict8x8_ssse3
;
rtcd
->
subpix
.
sixtap8x4
=
vp8_sixtap_predict8x4_ssse3
;
rtcd
->
subpix
.
sixtap4x4
=
vp8_sixtap_predict4x4_ssse3
;
}
#endif
#endif
}
vp8/vp8_common.mk
View file @
b0660457
...
...
@@ -107,6 +107,7 @@ VP8_COMMON_SRCS-$(HAVE_SSE2) += common/x86/recon_sse2.asm
VP8_COMMON_SRCS-$(HAVE_SSE2)
+=
common/x86/subpixel_sse2.asm
VP8_COMMON_SRCS-$(HAVE_SSE2)
+=
common/x86/loopfilter_sse2.asm
VP8_COMMON_SRCS-$(HAVE_SSE2)
+=
common/x86/iwalsh_sse2.asm
VP8_COMMON_SRCS-$(HAVE_SSSE3)
+=
common/x86/subpixel_ssse3.asm
ifeq
($(CONFIG_POSTPROC),yes)
VP8_COMMON_SRCS-$(HAVE_MMX)
+=
common/x86/postproc_mmx.asm
VP8_COMMON_SRCS-$(HAVE_SSE2)
+=
common/x86/postproc_sse2.asm
...
...
Write
Preview
Supports
Markdown
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