Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Xiph.Org
aom-rav1e
Commits
e6aebcdf
Commit
e6aebcdf
authored
Mar 17, 2016
by
Alex Converse
Committed by
Gerrit Code Review
Mar 17, 2016
Browse files
Options
Browse Files
Download
Plain Diff
Merge "Use whole pixel only at speed 8 screen content."
parents
54e5ff00
55859e84
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
56 additions
and
3 deletions
+56
-3
vp9/encoder/vp9_mcomp.c
vp9/encoder/vp9_mcomp.c
+45
-0
vp9/encoder/vp9_mcomp.h
vp9/encoder/vp9_mcomp.h
+1
-0
vp9/encoder/vp9_speed_features.c
vp9/encoder/vp9_speed_features.c
+5
-2
vp9/encoder/vp9_speed_features.h
vp9/encoder/vp9_speed_features.h
+5
-1
No files found.
vp9/encoder/vp9_mcomp.c
View file @
e6aebcdf
...
...
@@ -383,6 +383,51 @@ static void get_cost_surf_min(int *cost_list, int *ir, int *ic,
(
cost_list
[
4
]
-
2
*
cost_list
[
0
]
+
cost_list
[
2
]));
}
int
vp9_skip_sub_pixel_tree
(
const
MACROBLOCK
*
x
,
MV
*
bestmv
,
const
MV
*
ref_mv
,
int
allow_hp
,
int
error_per_bit
,
const
vp9_variance_fn_ptr_t
*
vfp
,
int
forced_stop
,
int
iters_per_step
,
int
*
cost_list
,
int
*
mvjcost
,
int
*
mvcost
[
2
],
int
*
distortion
,
unsigned
int
*
sse1
,
const
uint8_t
*
second_pred
,
int
w
,
int
h
)
{
SETUP_SUBPEL_SEARCH
;
besterr
=
setup_center_error
(
xd
,
bestmv
,
ref_mv
,
error_per_bit
,
vfp
,
z
,
src_stride
,
y
,
y_stride
,
second_pred
,
w
,
h
,
offset
,
mvjcost
,
mvcost
,
sse1
,
distortion
);
(
void
)
halfiters
;
(
void
)
quarteriters
;
(
void
)
eighthiters
;
(
void
)
whichdir
;
(
void
)
allow_hp
;
(
void
)
forced_stop
;
(
void
)
hstep
;
(
void
)
rr
;
(
void
)
rc
;
(
void
)
minr
;
(
void
)
minc
;
(
void
)
maxr
;
(
void
)
maxc
;
(
void
)
tr
;
(
void
)
tc
;
(
void
)
sse
;
(
void
)
thismse
;
(
void
)
cost_list
;
if
((
abs
(
bestmv
->
col
-
ref_mv
->
col
)
>
(
MAX_FULL_PEL_VAL
<<
3
))
||
(
abs
(
bestmv
->
row
-
ref_mv
->
row
)
>
(
MAX_FULL_PEL_VAL
<<
3
)))
return
INT_MAX
;
return
besterr
;
}
int
vp9_find_best_sub_pixel_tree_pruned_evenmore
(
const
MACROBLOCK
*
x
,
MV
*
bestmv
,
const
MV
*
ref_mv
,
...
...
vp9/encoder/vp9_mcomp.h
View file @
e6aebcdf
...
...
@@ -92,6 +92,7 @@ extern fractional_mv_step_fp vp9_find_best_sub_pixel_tree;
extern
fractional_mv_step_fp
vp9_find_best_sub_pixel_tree_pruned
;
extern
fractional_mv_step_fp
vp9_find_best_sub_pixel_tree_pruned_more
;
extern
fractional_mv_step_fp
vp9_find_best_sub_pixel_tree_pruned_evenmore
;
extern
fractional_mv_step_fp
vp9_skip_sub_pixel_tree
;
typedef
int
(
*
vp9_full_search_fn_t
)(
const
MACROBLOCK
*
x
,
const
MV
*
ref_mv
,
int
sad_per_bit
,
...
...
vp9/encoder/vp9_speed_features.c
View file @
e6aebcdf
...
...
@@ -441,7 +441,7 @@ static void set_rt_speed_feature(VP9_COMP *cpi, SPEED_FEATURES *sf,
}
if
(
speed
>=
8
)
{
sf
->
adaptive_rd_thresh
=
4
;
sf
->
mv
.
subpel_force_stop
=
2
;
sf
->
mv
.
subpel_force_stop
=
(
content
==
VP9E_CONTENT_SCREEN
)
?
3
:
2
;
sf
->
lpf_pick
=
LPF_PICK_MINIMAL_LPF
;
}
}
...
...
@@ -607,7 +607,10 @@ void vp9_set_speed_features_framesize_independent(VP9_COMP *cpi) {
sf
->
optimize_coefficients
=
0
;
}
if
(
sf
->
mv
.
subpel_search_method
==
SUBPEL_TREE
)
{
if
(
sf
->
mv
.
subpel_force_stop
==
3
)
{
// Whole pel only
cpi
->
find_fractional_mv_step
=
vp9_skip_sub_pixel_tree
;
}
else
if
(
sf
->
mv
.
subpel_search_method
==
SUBPEL_TREE
)
{
cpi
->
find_fractional_mv_step
=
vp9_find_best_sub_pixel_tree
;
}
else
if
(
sf
->
mv
.
subpel_search_method
==
SUBPEL_TREE_PRUNED
)
{
cpi
->
find_fractional_mv_step
=
vp9_find_best_sub_pixel_tree_pruned
;
...
...
vp9/encoder/vp9_speed_features.h
View file @
e6aebcdf
...
...
@@ -188,7 +188,11 @@ typedef struct MV_SPEED_FEATURES {
// Maximum number of steps in logarithmic subpel search before giving up.
int
subpel_iters_per_step
;
// Control when to stop subpel search
// Control when to stop subpel search:
// 0: Full subpel search.
// 1: Stop at quarter pixel.
// 2: Stop at half pixel.
// 3: Stop at full pixel.
int
subpel_force_stop
;
// This variable sets the step_param used in full pel motion search.
...
...
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