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
Guillaume Martres
aom-rav1e
Commits
5c28d1a1
Commit
5c28d1a1
authored
Apr 17, 2014
by
Jim Bankoski
Browse files
rename mode_index to ref index in vp9_rd_pick_inter_mode_sub_8x8
Change-Id: I00bceb9de2009963c91e5102564c05c31ac1ad78
parent
e890c257
Changes
1
Hide whitespace changes
Inline
Side-by-side
vp9/encoder/vp9_rdopt.c
View file @
5c28d1a1
...
...
@@ -3791,7 +3791,7 @@ int64_t vp9_rd_pick_inter_mode_sub8x8(VP9_COMP *cpi, MACROBLOCK *x,
int64_t
best_filter_rd
[
SWITCHABLE_FILTER_CONTEXTS
];
int64_t
best_filter_diff
[
SWITCHABLE_FILTER_CONTEXTS
];
MB_MODE_INFO
best_mbmode
=
{
0
};
int
mode
_index
,
best_
mode
_index
=
0
;
int
ref
_index
,
best_
ref
_index
=
0
;
unsigned
int
ref_costs_single
[
MAX_REF_FRAMES
],
ref_costs_comp
[
MAX_REF_FRAMES
];
vp9_prob
comp_mode_p
;
int64_t
best_inter_rd
=
INT64_MAX
;
...
...
@@ -3850,7 +3850,7 @@ int64_t vp9_rd_pick_inter_mode_sub8x8(VP9_COMP *cpi, MACROBLOCK *x,
}
}
for
(
mode
_index
=
0
;
mode
_index
<
MAX_REFS
;
++
mode
_index
)
{
for
(
ref
_index
=
0
;
ref
_index
<
MAX_REFS
;
++
ref
_index
)
{
int
mode_excluded
=
0
;
int64_t
this_rd
=
INT64_MAX
;
int
disable_skip
=
0
;
...
...
@@ -3863,14 +3863,14 @@ int64_t vp9_rd_pick_inter_mode_sub8x8(VP9_COMP *cpi, MACROBLOCK *x,
int64_t
total_sse
=
INT_MAX
;
int
early_term
=
0
;
ref_frame
=
vp9_ref_order
[
mode
_index
].
ref_frame
[
0
];
second_ref_frame
=
vp9_ref_order
[
mode
_index
].
ref_frame
[
1
];
ref_frame
=
vp9_ref_order
[
ref
_index
].
ref_frame
[
0
];
second_ref_frame
=
vp9_ref_order
[
ref
_index
].
ref_frame
[
1
];
// Look at the reference frame of the best mode so far and set the
// skip mask to look at a subset of the remaining modes.
if
(
mode
_index
>
2
&&
cpi
->
sf
.
mode_skip_start
<
MAX_MODES
)
{
if
(
mode
_index
==
3
)
{
switch
(
vp9_ref_order
[
best_
mode
_index
].
ref_frame
[
0
])
{
if
(
ref
_index
>
2
&&
cpi
->
sf
.
mode_skip_start
<
MAX_MODES
)
{
if
(
ref
_index
==
3
)
{
switch
(
vp9_ref_order
[
best_
ref
_index
].
ref_frame
[
0
])
{
case
INTRA_FRAME
:
mode_skip_mask
=
0
;
break
;
...
...
@@ -3888,14 +3888,14 @@ int64_t vp9_rd_pick_inter_mode_sub8x8(VP9_COMP *cpi, MACROBLOCK *x,
assert
(
0
&&
"Invalid Reference frame"
);
}
}
if
(
mode_skip_mask
&
(
1
<<
mode
_index
))
if
(
mode_skip_mask
&
(
1
<<
ref
_index
))
continue
;
}
// Test best rd so far against threshold for trying this mode.
if
(
rd_less_than_thresh
(
best_rd
,
rd_opt
->
threshes
[
segment_id
][
bsize
][
mode
_index
],
rd_opt
->
thresh_freq_fact
[
bsize
][
mode
_index
]))
rd_opt
->
threshes
[
segment_id
][
bsize
][
ref
_index
],
rd_opt
->
thresh_freq_fact
[
bsize
][
ref
_index
]))
continue
;
if
(
ref_frame
>
INTRA_FRAME
&&
...
...
@@ -3912,7 +3912,7 @@ int64_t vp9_rd_pick_inter_mode_sub8x8(VP9_COMP *cpi, MACROBLOCK *x,
if
(
vp9_segfeature_active
(
seg
,
segment_id
,
SEG_LVL_REF_FRAME
))
continue
;
if
((
cpi
->
sf
.
mode_search_skip_flags
&
FLAG_SKIP_COMP_BESTINTRA
)
&&
vp9_ref_order
[
best_
mode
_index
].
ref_frame
[
0
]
==
INTRA_FRAME
)
vp9_ref_order
[
best_
ref
_index
].
ref_frame
[
0
]
==
INTRA_FRAME
)
continue
;
if
((
cpi
->
sf
.
mode_search_skip_flags
&
FLAG_SKIP_COMP_REFMISMATCH
)
&&
ref_frame
!=
best_inter_ref_frame
&&
...
...
@@ -4236,7 +4236,7 @@ int64_t vp9_rd_pick_inter_mode_sub8x8(VP9_COMP *cpi, MACROBLOCK *x,
if
(
!
mode_excluded
)
{
int
max_plane
=
MAX_MB_PLANE
;
// Note index of best mode so far
best_
mode
_index
=
mode
_index
;
best_
ref
_index
=
ref
_index
;
if
(
ref_frame
==
INTRA_FRAME
)
{
/* required for left and above block mv */
...
...
@@ -4262,7 +4262,7 @@ int64_t vp9_rd_pick_inter_mode_sub8x8(VP9_COMP *cpi, MACROBLOCK *x,
// TODO(debargha): enhance this test with a better distortion prediction
// based on qp, activity mask and history
if
((
cpi
->
sf
.
mode_search_skip_flags
&
FLAG_EARLY_TERMINATE
)
&&
(
mode
_index
>
MIN_EARLY_TERM_INDEX
))
{
(
ref
_index
>
MIN_EARLY_TERM_INDEX
))
{
const
int
qstep
=
xd
->
plane
[
0
].
dequant
[
1
];
// TODO(debargha): Enhance this by specializing for each mode_index
int
scale
=
4
;
...
...
@@ -4338,7 +4338,7 @@ int64_t vp9_rd_pick_inter_mode_sub8x8(VP9_COMP *cpi, MACROBLOCK *x,
// If we used an estimate for the uv intra rd in the loop above...
if
(
cpi
->
sf
.
use_uv_intra_rd_estimate
)
{
// Do Intra UV best rd mode selection if best mode choice above was intra.
if
(
vp9_ref_order
[
best_
mode
_index
].
ref_frame
[
0
]
==
INTRA_FRAME
)
{
if
(
vp9_ref_order
[
best_
ref
_index
].
ref_frame
[
0
]
==
INTRA_FRAME
)
{
*
mbmi
=
best_mbmode
;
rd_pick_intra_sbuv_mode
(
cpi
,
x
,
ctx
,
&
rate_uv_intra
,
&
rate_uv_tokenonly
,
...
...
@@ -4358,7 +4358,7 @@ int64_t vp9_rd_pick_inter_mode_sub8x8(VP9_COMP *cpi, MACROBLOCK *x,
(
cm
->
interp_filter
==
best_mbmode
.
interp_filter
)
||
!
is_inter_block
(
&
best_mbmode
));
update_rd_thresh_fact
(
cpi
,
bsize
,
best_
mode
_index
);
update_rd_thresh_fact
(
cpi
,
bsize
,
best_
ref
_index
);
// macroblock modes
*
mbmi
=
best_mbmode
;
...
...
@@ -4395,7 +4395,7 @@ int64_t vp9_rd_pick_inter_mode_sub8x8(VP9_COMP *cpi, MACROBLOCK *x,
}
set_ref_ptrs
(
cm
,
xd
,
mbmi
->
ref_frame
[
0
],
mbmi
->
ref_frame
[
1
]);
store_coding_context
(
x
,
ctx
,
best_
mode
_index
,
store_coding_context
(
x
,
ctx
,
best_
ref
_index
,
&
mbmi
->
ref_mvs
[
mbmi
->
ref_frame
[
0
]][
0
],
&
mbmi
->
ref_mvs
[
mbmi
->
ref_frame
[
1
]
<
0
?
0
:
mbmi
->
ref_frame
[
1
]][
0
],
...
...
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