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
46441ec5
Commit
46441ec5
authored
Jul 10, 2014
by
Yunqing Wang
Committed by
Gerrit Code Review
Jul 10, 2014
Browse files
Merge "Refactor refining_search_sad code"
parents
51e9788e
30117a57
Changes
2
Hide whitespace changes
Inline
Side-by-side
vp9/common/vp9_rtcd_defs.pl
View file @
46441ec5
...
...
@@ -786,8 +786,7 @@ $vp9_full_search_sad_sse3=vp9_full_search_sadx3;
$vp9_full_search_sad_sse4_1
=
vp9_full_search_sadx8
;
add_proto
qw/int vp9_refining_search_sad/
,
"
const struct macroblock *x, struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv
";
specialize
qw/vp9_refining_search_sad sse3/
;
$vp9_refining_search_sad_sse3
=
vp9_refining_search_sadx4
;
specialize
qw/vp9_refining_search_sad/
;
add_proto
qw/int vp9_diamond_search_sad/
,
"
const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv
";
specialize
qw/vp9_diamond_search_sad sse3/
;
...
...
vp9/encoder/vp9_mcomp.c
View file @
46441ec5
...
...
@@ -1334,51 +1334,6 @@ int vp9_refining_search_sad_c(const MACROBLOCK *x,
int
search_range
,
const
vp9_variance_fn_ptr_t
*
fn_ptr
,
const
MV
*
center_mv
)
{
const
MV
neighbors
[
4
]
=
{{
-
1
,
0
},
{
0
,
-
1
},
{
0
,
1
},
{
1
,
0
}};
const
MACROBLOCKD
*
const
xd
=
&
x
->
e_mbd
;
const
struct
buf_2d
*
const
what
=
&
x
->
plane
[
0
].
src
;
const
struct
buf_2d
*
const
in_what
=
&
xd
->
plane
[
0
].
pre
[
0
];
const
MV
fcenter_mv
=
{
center_mv
->
row
>>
3
,
center_mv
->
col
>>
3
};
unsigned
int
best_sad
=
fn_ptr
->
sdf
(
what
->
buf
,
what
->
stride
,
get_buf_from_mv
(
in_what
,
ref_mv
),
in_what
->
stride
)
+
mvsad_err_cost
(
x
,
ref_mv
,
&
fcenter_mv
,
error_per_bit
);
int
i
,
j
;
for
(
i
=
0
;
i
<
search_range
;
i
++
)
{
int
best_site
=
-
1
;
for
(
j
=
0
;
j
<
4
;
j
++
)
{
const
MV
mv
=
{
ref_mv
->
row
+
neighbors
[
j
].
row
,
ref_mv
->
col
+
neighbors
[
j
].
col
};
if
(
is_mv_in
(
x
,
&
mv
))
{
unsigned
int
sad
=
fn_ptr
->
sdf
(
what
->
buf
,
what
->
stride
,
get_buf_from_mv
(
in_what
,
&
mv
),
in_what
->
stride
);
if
(
sad
<
best_sad
)
{
sad
+=
mvsad_err_cost
(
x
,
&
mv
,
&
fcenter_mv
,
error_per_bit
);
if
(
sad
<
best_sad
)
{
best_sad
=
sad
;
best_site
=
j
;
}
}
}
}
if
(
best_site
==
-
1
)
{
break
;
}
else
{
ref_mv
->
row
+=
neighbors
[
best_site
].
row
;
ref_mv
->
col
+=
neighbors
[
best_site
].
col
;
}
}
return
best_sad
;
}
int
vp9_refining_search_sadx4
(
const
MACROBLOCK
*
x
,
MV
*
ref_mv
,
int
error_per_bit
,
int
search_range
,
const
vp9_variance_fn_ptr_t
*
fn_ptr
,
const
MV
*
center_mv
)
{
const
MACROBLOCKD
*
const
xd
=
&
x
->
e_mbd
;
const
MV
neighbors
[
4
]
=
{{
-
1
,
0
},
{
0
,
-
1
},
{
0
,
1
},
{
1
,
0
}};
const
struct
buf_2d
*
const
what
=
&
x
->
plane
[
0
].
src
;
...
...
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