Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Xiph.Org
aom-rav1e
Commits
a0306ea6
Commit
a0306ea6
authored
Mar 09, 2011
by
Yunqing Wang
Committed by
Code Review
Mar 09, 2011
Browse files
Options
Browse Files
Download
Plain Diff
Merge "Add vp8_sub_pixel_variance16x8_ssse3 function"
parents
c5a049ba
7b8e7f0f
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
56 additions
and
2 deletions
+56
-2
vp8/encoder/x86/variance_ssse3.c
vp8/encoder/x86/variance_ssse3.c
+51
-2
vp8/encoder/x86/variance_x86.h
vp8/encoder/x86/variance_x86.h
+4
-0
vp8/encoder/x86/x86_csystemdependent.c
vp8/encoder/x86/x86_csystemdependent.c
+1
-0
No files found.
vp8/encoder/x86/variance_ssse3.c
View file @
a0306ea6
...
...
@@ -76,8 +76,8 @@ unsigned int vp8_sub_pixel_variance16x16_ssse3
unsigned
int
*
sse
)
{
int
xsum0
,
xsum1
;
unsigned
int
xxsum0
,
xxsum1
;
int
xsum0
;
unsigned
int
xxsum0
;
// note we could avoid these if statements if the calling function
// just called the appropriate functions inside.
...
...
@@ -114,3 +114,52 @@ unsigned int vp8_sub_pixel_variance16x16_ssse3
*
sse
=
xxsum0
;
return
(
xxsum0
-
((
xsum0
*
xsum0
)
>>
8
));
}
unsigned
int
vp8_sub_pixel_variance16x8_ssse3
(
const
unsigned
char
*
src_ptr
,
int
src_pixels_per_line
,
int
xoffset
,
int
yoffset
,
const
unsigned
char
*
dst_ptr
,
int
dst_pixels_per_line
,
unsigned
int
*
sse
)
{
int
xsum0
;
unsigned
int
xxsum0
;
if
(
xoffset
==
4
&&
yoffset
==
0
)
{
vp8_half_horiz_variance16x_h_sse2
(
src_ptr
,
src_pixels_per_line
,
dst_ptr
,
dst_pixels_per_line
,
8
,
&
xsum0
,
&
xxsum0
);
}
else
if
(
xoffset
==
0
&&
yoffset
==
4
)
{
vp8_half_vert_variance16x_h_sse2
(
src_ptr
,
src_pixels_per_line
,
dst_ptr
,
dst_pixels_per_line
,
8
,
&
xsum0
,
&
xxsum0
);
}
else
if
(
xoffset
==
4
&&
yoffset
==
4
)
{
vp8_half_horiz_vert_variance16x_h_sse2
(
src_ptr
,
src_pixels_per_line
,
dst_ptr
,
dst_pixels_per_line
,
8
,
&
xsum0
,
&
xxsum0
);
}
else
{
vp8_filter_block2d_bil_var_ssse3
(
src_ptr
,
src_pixels_per_line
,
dst_ptr
,
dst_pixels_per_line
,
8
,
xoffset
,
yoffset
,
&
xsum0
,
&
xxsum0
);
}
*
sse
=
xxsum0
;
return
(
xxsum0
-
((
xsum0
*
xsum0
)
>>
7
));
}
vp8/encoder/x86/variance_x86.h
View file @
a0306ea6
...
...
@@ -286,6 +286,7 @@ extern prototype_sad_multi_dif_address(vp8_sad4x4x4d_sse3);
#if HAVE_SSSE3
extern
prototype_sad_multi_same_address
(
vp8_sad16x16x3_ssse3
);
extern
prototype_sad_multi_same_address
(
vp8_sad16x8x3_ssse3
);
extern
prototype_subpixvariance
(
vp8_sub_pixel_variance16x8_ssse3
);
extern
prototype_subpixvariance
(
vp8_sub_pixel_variance16x16_ssse3
);
#if !CONFIG_RUNTIME_CPU_DETECT
...
...
@@ -295,6 +296,9 @@ extern prototype_subpixvariance(vp8_sub_pixel_variance16x16_ssse3);
#undef vp8_variance_sad16x8x3
#define vp8_variance_sad16x8x3 vp8_sad16x8x3_ssse3
#undef vp8_variance_subpixvar16x8
#define vp8_variance_subpixvar16x8 vp8_sub_pixel_variance16x8_ssse3
#undef vp8_variance_subpixvar16x16
#define vp8_variance_subpixvar16x16 vp8_sub_pixel_variance16x16_ssse3
...
...
vp8/encoder/x86/x86_csystemdependent.c
View file @
a0306ea6
...
...
@@ -334,6 +334,7 @@ void vp8_arch_x86_encoder_init(VP8_COMP *cpi)
cpi
->
rtcd
.
variance
.
sad16x16x3
=
vp8_sad16x16x3_ssse3
;
cpi
->
rtcd
.
variance
.
sad16x8x3
=
vp8_sad16x8x3_ssse3
;
cpi
->
rtcd
.
variance
.
subpixvar16x8
=
vp8_sub_pixel_variance16x8_ssse3
;
cpi
->
rtcd
.
variance
.
subpixvar16x16
=
vp8_sub_pixel_variance16x16_ssse3
;
cpi
->
rtcd
.
quantize
.
fastquantb
=
vp8_fast_quantize_b_ssse3
;
...
...
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