Skip to content
GitLab
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
b6679879
Commit
b6679879
authored
May 25, 2011
by
Yunqing Wang
Browse files
Return sse value in vp8_variance SSE2 functions
Minor modification. Change-Id: I09511d38fd1451d5c4106a48acdb3f766ce59cb7
parent
d75eb736
Changes
8
Hide whitespace changes
Inline
Side-by-side
vp8/encoder/arm/variance_arm.h
View file @
b6679879
...
...
@@ -83,10 +83,10 @@ extern prototype_variance(vp8_variance_halfpixvar16x16_hv_neon);
//extern prototype_getmbss(vp8_get_mb_ss_c);
extern
prototype_variance
(
vp8_mse16x16_neon
);
extern
prototype_
sad
(
vp8_get16x16pred_error_neon
);
extern
prototype_
get16x16prederror
(
vp8_get16x16pred_error_neon
);
//extern prototype_variance2(vp8_get8x8var_c);
//extern prototype_variance2(vp8_get16x16var_c);
extern
prototype_
sad
(
vp8_get4x4sse_cs_neon
);
extern
prototype_
get16x16prederror
(
vp8_get4x4sse_cs_neon
);
#if !CONFIG_RUNTIME_CPU_DETECT
#undef vp8_variance_sad4x4
...
...
vp8/encoder/encodeframe.c
View file @
b6679879
...
...
@@ -1079,7 +1079,7 @@ int vp8cx_encode_intra_macro_block(VP8_COMP *cpi, MACROBLOCK *x, TOKENEXTRA **t)
x
->
e_mbd
.
mode_info_context
->
mbmi
.
mode
=
mode
;
RECON_INVOKE
(
&
cpi
->
common
.
rtcd
.
recon
,
build_intra_predictors_mby
)
(
&
x
->
e_mbd
);
distortion2
=
VARIANCE_INVOKE
(
&
cpi
->
rtcd
.
variance
,
get16x16prederror
)(
x
->
src
.
y_buffer
,
x
->
src
.
y_stride
,
x
->
e_mbd
.
predictor
,
16
,
0x7fffffff
);
distortion2
=
VARIANCE_INVOKE
(
&
cpi
->
rtcd
.
variance
,
get16x16prederror
)(
x
->
src
.
y_buffer
,
x
->
src
.
y_stride
,
x
->
e_mbd
.
predictor
,
16
);
rate2
=
x
->
mbmode_cost
[
x
->
e_mbd
.
frame_type
][
mode
];
this_rd
=
RDCOST
(
x
->
rdmult
,
x
->
rddiv
,
rate2
,
distortion2
);
...
...
vp8/encoder/pickinter.c
View file @
b6679879
...
...
@@ -101,8 +101,7 @@ unsigned int vp8_get16x16pred_error_c
const
unsigned
char
*
src_ptr
,
int
src_stride
,
const
unsigned
char
*
ref_ptr
,
int
ref_stride
,
int
max_sad
int
ref_stride
)
{
unsigned
pred_error
=
0
;
...
...
@@ -134,8 +133,7 @@ unsigned int vp8_get4x4sse_cs_c
const
unsigned
char
*
src_ptr
,
int
source_stride
,
const
unsigned
char
*
ref_ptr
,
int
recon_stride
,
int
max_sad
int
recon_stride
)
{
int
distortion
=
0
;
...
...
@@ -163,7 +161,7 @@ static int get_prediction_error(BLOCK *be, BLOCKD *b, const vp8_variance_rtcd_vt
sptr
=
(
*
(
be
->
base_src
)
+
be
->
src
);
dptr
=
b
->
predictor
;
return
VARIANCE_INVOKE
(
rtcd
,
get4x4sse_cs
)(
sptr
,
be
->
src_stride
,
dptr
,
16
,
0x7fffffff
);
return
VARIANCE_INVOKE
(
rtcd
,
get4x4sse_cs
)(
sptr
,
be
->
src_stride
,
dptr
,
16
);
}
...
...
@@ -672,7 +670,7 @@ void vp8_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset,
distortion2
=
VARIANCE_INVOKE
(
&
cpi
->
rtcd
.
variance
,
get16x16prederror
)(
x
->
src
.
y_buffer
,
x
->
src
.
y_stride
,
x
->
e_mbd
.
predictor
,
16
,
0x7fffffff
);
x
->
e_mbd
.
predictor
,
16
);
this_rd
=
RDCOST
(
x
->
rdmult
,
x
->
rddiv
,
rate2
,
distortion2
);
if
(
this_rd
<
best_intra_rd
)
...
...
@@ -695,7 +693,7 @@ void vp8_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset,
case
TM_PRED
:
RECON_INVOKE
(
&
cpi
->
common
.
rtcd
.
recon
,
build_intra_predictors_mby
)
(
&
x
->
e_mbd
);
distortion2
=
VARIANCE_INVOKE
(
&
cpi
->
rtcd
.
variance
,
get16x16prederror
)(
x
->
src
.
y_buffer
,
x
->
src
.
y_stride
,
x
->
e_mbd
.
predictor
,
16
,
0x7fffffff
);
distortion2
=
VARIANCE_INVOKE
(
&
cpi
->
rtcd
.
variance
,
get16x16prederror
)(
x
->
src
.
y_buffer
,
x
->
src
.
y_stride
,
x
->
e_mbd
.
predictor
,
16
);
rate2
+=
x
->
mbmode_cost
[
x
->
e_mbd
.
frame_type
][
x
->
e_mbd
.
mode_info_context
->
mbmi
.
mode
];
this_rd
=
RDCOST
(
x
->
rdmult
,
x
->
rddiv
,
rate2
,
distortion2
);
...
...
vp8/encoder/variance.h
View file @
b6679879
...
...
@@ -101,6 +101,15 @@
#define prototype_getmbss(sym) unsigned int (sym)(const short *)
#define prototype_get16x16prederror(sym)\
unsigned int (sym)\
(\
const unsigned char *src_ptr, \
int source_stride, \
const unsigned char *ref_ptr, \
int ref_stride \
)
#if ARCH_X86 || ARCH_X86_64
#include
"x86/variance_x86.h"
#endif
...
...
@@ -302,7 +311,7 @@ extern prototype_variance(vp8_variance_mse16x16);
#ifndef vp8_variance_get16x16prederror
#define vp8_variance_get16x16prederror vp8_get16x16pred_error_c
#endif
extern
prototype_
sad
(
vp8_variance_get16x16prederror
);
extern
prototype_
get16x16prederror
(
vp8_variance_get16x16prederror
);
#ifndef vp8_variance_get8x8var
#define vp8_variance_get8x8var vp8_get8x8var_c
...
...
@@ -317,7 +326,7 @@ extern prototype_variance2(vp8_variance_get16x16var);
#ifndef vp8_variance_get4x4sse_cs
#define vp8_variance_get4x4sse_cs vp8_get4x4sse_cs_c
#endif
extern
prototype_
sad
(
vp8_variance_get4x4sse_cs
);
extern
prototype_
get16x16prederror
(
vp8_variance_get4x4sse_cs
);
#ifndef vp8_ssimpf
#define vp8_ssimpf ssim_parms_c
...
...
@@ -337,9 +346,8 @@ typedef prototype_variance(*vp8_variance_fn_t);
typedef
prototype_variance2
(
*
vp8_variance2_fn_t
);
typedef
prototype_subpixvariance
(
*
vp8_subpixvariance_fn_t
);
typedef
prototype_getmbss
(
*
vp8_getmbss_fn_t
);
typedef
prototype_ssimpf
(
*
vp8_ssimpf_fn_t
)
typedef
prototype_ssimpf
(
*
vp8_ssimpf_fn_t
);
typedef
prototype_get16x16prederror
(
*
vp8_get16x16prederror_fn_t
);
typedef
struct
{
...
...
@@ -368,10 +376,10 @@ typedef struct
vp8_getmbss_fn_t
getmbss
;
vp8_variance_fn_t
mse16x16
;
vp8_
sad_fn_t
get16x16prederror
;
vp8_
get16x16prederror_fn_t
get16x16prederror
;
vp8_variance2_fn_t
get8x8var
;
vp8_variance2_fn_t
get16x16var
;
vp8_
sad_fn_t
get4x4sse_cs
;
vp8_
get16x16prederror_fn_t
get4x4sse_cs
;
vp8_sad_multi_fn_t
sad16x16x3
;
vp8_sad_multi_fn_t
sad16x8x3
;
...
...
vp8/encoder/x86/variance_mmx.c
View file @
b6679879
...
...
@@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include
"vpx_config.h"
#include
"vp8/encoder/variance.h"
#include
"vp8/common/pragmas.h"
#include
"vpx_ports/mem.h"
...
...
@@ -34,7 +34,7 @@ extern void filter_block1d_v6_mmx
short
*
vp7_filter
);
extern
unsigned
int
vp8_get_mb_ss_mmx
(
short
*
src_ptr
);
extern
unsigned
int
vp8_get_mb_ss_mmx
(
const
short
*
src_ptr
);
extern
unsigned
int
vp8_get8x8var_mmx
(
const
unsigned
char
*
src_ptr
,
...
...
@@ -78,20 +78,19 @@ extern void vp8_filter_block2d_bil_var_mmx
);
extern
unsigned
int
vp8_get16x16pred_error_mmx
(
unsigned
char
*
src_ptr
,
const
unsigned
char
*
src_ptr
,
int
src_stride
,
unsigned
char
*
ref_ptr
,
const
unsigned
char
*
ref_ptr
,
int
ref_stride
);
unsigned
int
vp8_get16x16var_mmx
(
const
unsigned
char
*
src_ptr
,
int
source_stride
,
const
unsigned
char
*
ref_ptr
,
int
recon_stride
,
unsigned
*
SSE
,
unsigned
*
SUM
unsigned
int
*
SSE
,
int
*
SUM
)
{
unsigned
int
sse0
,
sse1
,
sse2
,
sse3
,
var
;
...
...
@@ -176,7 +175,7 @@ unsigned int vp8_variance16x16_mmx(
int
source_stride
,
const
unsigned
char
*
ref_ptr
,
int
recon_stride
,
int
*
sse
)
unsigned
int
*
sse
)
{
unsigned
int
sse0
,
sse1
,
sse2
,
sse3
,
var
;
int
sum0
,
sum1
,
sum2
,
sum3
,
avg
;
...
...
@@ -401,7 +400,7 @@ unsigned int vp8_sub_pixel_variance8x16_mmx
int
yoffset
,
const
unsigned
char
*
dst_ptr
,
int
dst_pixels_per_line
,
int
*
sse
unsigned
int
*
sse
)
{
int
xsum
;
...
...
vp8/encoder/x86/variance_sse2.c
View file @
b6679879
...
...
@@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include
"vpx_config.h"
#include
"vp8/encoder/variance.h"
#include
"vp8/common/pragmas.h"
#include
"vpx_ports/mem.h"
...
...
@@ -148,30 +148,31 @@ unsigned int vp8_variance4x4_wmt(
const
unsigned
char
*
src_ptr
,
int
source_stride
,
const
unsigned
char
*
ref_ptr
,
int
recon_stride
)
int
recon_stride
,
unsigned
int
*
sse
)
{
unsigned
int
var
;
int
avg
;
vp8_get4x4var_mmx
(
src_ptr
,
source_stride
,
ref_ptr
,
recon_stride
,
&
var
,
&
avg
)
;
*
sse
=
var
;
return
(
var
-
((
avg
*
avg
)
>>
4
));
}
unsigned
int
vp8_variance8x8_wmt
(
const
unsigned
char
*
src_ptr
,
int
source_stride
,
const
unsigned
char
*
ref_ptr
,
int
recon_stride
)
int
recon_stride
,
unsigned
int
*
sse
)
{
unsigned
int
var
;
int
avg
;
vp8_get8x8var_sse2
(
src_ptr
,
source_stride
,
ref_ptr
,
recon_stride
,
&
var
,
&
avg
)
;
*
sse
=
var
;
return
(
var
-
((
avg
*
avg
)
>>
6
));
}
...
...
vp8/encoder/x86/variance_ssse3.c
View file @
b6679879
...
...
@@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
#include
"vpx_config.h"
#include
"vp8/encoder/variance.h"
#include
"vp8/common/pragmas.h"
#include
"vpx_ports/mem.h"
...
...
vp8/encoder/x86/variance_x86.h
View file @
b6679879
...
...
@@ -41,10 +41,10 @@ extern prototype_variance(vp8_variance_halfpixvar16x16_hv_mmx);
extern
prototype_subpixvariance
(
vp8_sub_pixel_mse16x16_mmx
);
extern
prototype_getmbss
(
vp8_get_mb_ss_mmx
);
extern
prototype_variance
(
vp8_mse16x16_mmx
);
extern
prototype_
sad
(
vp8_get16x16pred_error_mmx
);
extern
prototype_
get16x16prederror
(
vp8_get16x16pred_error_mmx
);
extern
prototype_variance2
(
vp8_get8x8var_mmx
);
extern
prototype_variance2
(
vp8_get16x16var_mmx
);
extern
prototype_
sad
(
vp8_get4x4sse_cs_mmx
);
extern
prototype_
get16x16prederror
(
vp8_get4x4sse_cs_mmx
);
#if !CONFIG_RUNTIME_CPU_DETECT
#undef vp8_variance_sad4x4
...
...
@@ -148,7 +148,7 @@ extern prototype_variance(vp8_variance_halfpixvar16x16_hv_wmt);
extern
prototype_subpixvariance
(
vp8_sub_pixel_mse16x16_wmt
);
extern
prototype_getmbss
(
vp8_get_mb_ss_sse2
);
extern
prototype_variance
(
vp8_mse16x16_wmt
);
extern
prototype_
sad
(
vp8_get16x16pred_error_sse2
);
extern
prototype_
get16x16prederror
(
vp8_get16x16pred_error_sse2
);
extern
prototype_variance2
(
vp8_get8x8var_sse2
);
extern
prototype_variance2
(
vp8_get16x16var_sse2
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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