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
da6b1862
Commit
da6b1862
authored
Jan 31, 2014
by
Jim Bankoski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
remove confusing compressor_speed
use mode instead Change-Id: I419d7a2dc4b0714ca6ff723c5e824521c150c460
parent
6f954c7b
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
28 additions
and
27 deletions
+28
-27
vp9/encoder/vp9_encodeframe.c
vp9/encoder/vp9_encodeframe.c
+2
-2
vp9/encoder/vp9_onyx_if.c
vp9/encoder/vp9_onyx_if.c
+20
-20
vp9/encoder/vp9_onyx_int.h
vp9/encoder/vp9_onyx_int.h
+0
-1
vp9/encoder/vp9_rdopt.c
vp9/encoder/vp9_rdopt.c
+6
-4
No files found.
vp9/encoder/vp9_encodeframe.c
View file @
da6b1862
...
@@ -2787,7 +2787,7 @@ void vp9_encode_frame(VP9_COMP *cpi) {
...
@@ -2787,7 +2787,7 @@ void vp9_encode_frame(VP9_COMP *cpi) {
cm
->
reference_mode
=
reference_mode
;
cm
->
reference_mode
=
reference_mode
;
cm
->
interp_filter
=
interp_filter
;
cm
->
interp_filter
=
interp_filter
;
if
(
cpi
->
compressor_speed
==
3
)
if
(
cpi
->
oxcf
.
mode
==
MODE_REALTIME
)
encode_rtc_frame_internal
(
cpi
);
encode_rtc_frame_internal
(
cpi
);
else
else
encode_frame_internal
(
cpi
);
encode_frame_internal
(
cpi
);
...
@@ -2945,7 +2945,7 @@ static void encode_superblock(VP9_COMP *cpi, TOKENEXTRA **t, int output_enabled,
...
@@ -2945,7 +2945,7 @@ static void encode_superblock(VP9_COMP *cpi, TOKENEXTRA **t, int output_enabled,
const
int
mi_height
=
num_8x8_blocks_high_lookup
[
bsize
];
const
int
mi_height
=
num_8x8_blocks_high_lookup
[
bsize
];
x
->
skip_recode
=
!
x
->
select_txfm_size
&&
mbmi
->
sb_type
>=
BLOCK_8X8
&&
x
->
skip_recode
=
!
x
->
select_txfm_size
&&
mbmi
->
sb_type
>=
BLOCK_8X8
&&
(
cpi
->
oxcf
.
aq_mode
!=
COMPLEXITY_AQ
)
&&
(
cpi
->
oxcf
.
aq_mode
!=
COMPLEXITY_AQ
)
&&
cpi
->
compressor_speed
!=
3
;
cpi
->
oxcf
.
mode
!=
MODE_REALTIME
;
x
->
skip_optimize
=
ctx
->
is_coded
;
x
->
skip_optimize
=
ctx
->
is_coded
;
ctx
->
is_coded
=
1
;
ctx
->
is_coded
=
1
;
x
->
use_lp32x32fdct
=
cpi
->
sf
.
use_lp32x32fdct
;
x
->
use_lp32x32fdct
=
cpi
->
sf
.
use_lp32x32fdct
;
...
...
vp9/encoder/vp9_onyx_if.c
View file @
da6b1862
...
@@ -455,14 +455,17 @@ static void update_reference_segmentation_map(VP9_COMP *cpi) {
...
@@ -455,14 +455,17 @@ static void update_reference_segmentation_map(VP9_COMP *cpi) {
cache_ptr
+=
cm
->
mi_cols
;
cache_ptr
+=
cm
->
mi_cols
;
}
}
}
}
static
int
is_slowest_mode
(
int
mode
)
{
return
(
mode
==
MODE_SECONDPASS_BEST
||
mode
==
MODE_BESTQUALITY
);
}
static
void
set_rd_speed_thresholds
(
VP9_COMP
*
cpi
,
int
mode
)
{
static
void
set_rd_speed_thresholds
(
VP9_COMP
*
cpi
)
{
SPEED_FEATURES
*
sf
=
&
cpi
->
sf
;
SPEED_FEATURES
*
sf
=
&
cpi
->
sf
;
int
i
;
int
i
;
// Set baseline threshold values
// Set baseline threshold values
for
(
i
=
0
;
i
<
MAX_MODES
;
++
i
)
for
(
i
=
0
;
i
<
MAX_MODES
;
++
i
)
sf
->
thresh_mult
[
i
]
=
mode
==
0
?
-
500
:
0
;
sf
->
thresh_mult
[
i
]
=
is_slowest_mode
(
cpi
->
oxcf
.
mode
)
?
-
500
:
0
;
sf
->
thresh_mult
[
THR_NEARESTMV
]
=
0
;
sf
->
thresh_mult
[
THR_NEARESTMV
]
=
0
;
sf
->
thresh_mult
[
THR_NEARESTG
]
=
0
;
sf
->
thresh_mult
[
THR_NEARESTG
]
=
0
;
...
@@ -538,12 +541,12 @@ static void set_rd_speed_thresholds(VP9_COMP *cpi, int mode) {
...
@@ -538,12 +541,12 @@ static void set_rd_speed_thresholds(VP9_COMP *cpi, int mode) {
}
}
}
}
static
void
set_rd_speed_thresholds_sub8x8
(
VP9_COMP
*
cpi
,
int
mode
)
{
static
void
set_rd_speed_thresholds_sub8x8
(
VP9_COMP
*
cpi
)
{
SPEED_FEATURES
*
sf
=
&
cpi
->
sf
;
SPEED_FEATURES
*
sf
=
&
cpi
->
sf
;
int
i
;
int
i
;
for
(
i
=
0
;
i
<
MAX_REFS
;
++
i
)
for
(
i
=
0
;
i
<
MAX_REFS
;
++
i
)
sf
->
thresh_mult_sub8x8
[
i
]
=
mode
==
0
?
-
500
:
0
;
sf
->
thresh_mult_sub8x8
[
i
]
=
is_slowest_mode
(
cpi
->
oxcf
.
mode
)
?
-
500
:
0
;
sf
->
thresh_mult_sub8x8
[
THR_LAST
]
+=
2500
;
sf
->
thresh_mult_sub8x8
[
THR_LAST
]
+=
2500
;
sf
->
thresh_mult_sub8x8
[
THR_GOLD
]
+=
2500
;
sf
->
thresh_mult_sub8x8
[
THR_GOLD
]
+=
2500
;
...
@@ -853,7 +856,6 @@ static void set_rt_speed_feature(VP9_COMMON *cm,
...
@@ -853,7 +856,6 @@ static void set_rt_speed_feature(VP9_COMMON *cm,
void
vp9_set_speed_features
(
VP9_COMP
*
cpi
)
{
void
vp9_set_speed_features
(
VP9_COMP
*
cpi
)
{
SPEED_FEATURES
*
sf
=
&
cpi
->
sf
;
SPEED_FEATURES
*
sf
=
&
cpi
->
sf
;
VP9_COMMON
*
cm
=
&
cpi
->
common
;
VP9_COMMON
*
cm
=
&
cpi
->
common
;
int
mode
=
cpi
->
compressor_speed
;
int
speed
=
cpi
->
speed
;
int
speed
=
cpi
->
speed
;
int
i
;
int
i
;
...
@@ -907,22 +909,25 @@ void vp9_set_speed_features(VP9_COMP *cpi) {
...
@@ -907,22 +909,25 @@ void vp9_set_speed_features(VP9_COMP *cpi) {
sf
->
using_small_partition_info
=
0
;
sf
->
using_small_partition_info
=
0
;
sf
->
mode_skip_start
=
MAX_MODES
;
// Mode index at which mode skip mask set
sf
->
mode_skip_start
=
MAX_MODES
;
// Mode index at which mode skip mask set
switch
(
mode
)
{
switch
(
cpi
->
oxcf
.
mode
)
{
case
0
:
// This is the best quality mode.
case
MODE_BESTQUALITY
:
case
MODE_SECONDPASS_BEST
:
// This is the best quality mode.
cpi
->
diamond_search_sad
=
vp9_full_range_search
;
cpi
->
diamond_search_sad
=
vp9_full_range_search
;
break
;
break
;
case
1
:
case
MODE_FIRSTPASS
:
case
MODE_GOODQUALITY
:
case
MODE_SECONDPASS
:
set_good_speed_feature
(
cm
,
sf
,
speed
);
set_good_speed_feature
(
cm
,
sf
,
speed
);
break
;
break
;
break
;
break
;
case
2
:
case
MODE_REALTIME
:
set_rt_speed_feature
(
cm
,
sf
,
speed
);
set_rt_speed_feature
(
cm
,
sf
,
speed
);
break
;
break
;
};
/* switch */
};
/* switch */
// Set rd thresholds based on mode and speed setting
// Set rd thresholds based on mode and speed setting
set_rd_speed_thresholds
(
cpi
,
mode
);
set_rd_speed_thresholds
(
cpi
);
set_rd_speed_thresholds_sub8x8
(
cpi
,
mode
);
set_rd_speed_thresholds_sub8x8
(
cpi
);
// Slow quant, dct and trellis not worthwhile for first pass
// Slow quant, dct and trellis not worthwhile for first pass
// so make sure they are always turned off.
// so make sure they are always turned off.
...
@@ -1243,29 +1248,24 @@ void vp9_change_config(VP9_PTR ptr, VP9_CONFIG *oxcf) {
...
@@ -1243,29 +1248,24 @@ void vp9_change_config(VP9_PTR ptr, VP9_CONFIG *oxcf) {
// Real time and one pass deprecated in test code base
// Real time and one pass deprecated in test code base
case
MODE_GOODQUALITY
:
case
MODE_GOODQUALITY
:
cpi
->
pass
=
0
;
cpi
->
pass
=
0
;
cpi
->
compressor_speed
=
2
;
cpi
->
oxcf
.
cpu_used
=
clamp
(
cpi
->
oxcf
.
cpu_used
,
-
5
,
5
);
cpi
->
oxcf
.
cpu_used
=
clamp
(
cpi
->
oxcf
.
cpu_used
,
-
5
,
5
);
break
;
break
;
case
MODE_FIRSTPASS
:
case
MODE_FIRSTPASS
:
cpi
->
pass
=
1
;
cpi
->
pass
=
1
;
cpi
->
compressor_speed
=
1
;
break
;
break
;
case
MODE_SECONDPASS
:
case
MODE_SECONDPASS
:
cpi
->
pass
=
2
;
cpi
->
pass
=
2
;
cpi
->
compressor_speed
=
1
;
cpi
->
oxcf
.
cpu_used
=
clamp
(
cpi
->
oxcf
.
cpu_used
,
-
5
,
5
);
cpi
->
oxcf
.
cpu_used
=
clamp
(
cpi
->
oxcf
.
cpu_used
,
-
5
,
5
);
break
;
break
;
case
MODE_SECONDPASS_BEST
:
case
MODE_SECONDPASS_BEST
:
cpi
->
pass
=
2
;
cpi
->
pass
=
2
;
cpi
->
compressor_speed
=
0
;
break
;
break
;
case
MODE_REALTIME
:
case
MODE_REALTIME
:
cpi
->
pass
=
0
;
cpi
->
pass
=
0
;
cpi
->
compressor_speed
=
3
;
break
;
break
;
}
}
...
@@ -2550,7 +2550,7 @@ static void loopfilter_frame(VP9_COMP *cpi, VP9_COMMON *cm) {
...
@@ -2550,7 +2550,7 @@ static void loopfilter_frame(VP9_COMP *cpi, VP9_COMMON *cm) {
vpx_usec_timer_start
(
&
timer
);
vpx_usec_timer_start
(
&
timer
);
if
(
cpi
->
compressor_speed
==
3
)
if
(
cpi
->
oxcf
.
mode
==
MODE_REALTIME
)
lf
->
filter_level
=
4
;
lf
->
filter_level
=
4
;
else
else
vp9_pick_filter_level
(
cpi
->
Source
,
cpi
,
cpi
->
sf
.
use_fast_lpf_pick
);
vp9_pick_filter_level
(
cpi
->
Source
,
cpi
,
cpi
->
sf
.
use_fast_lpf_pick
);
...
@@ -2742,7 +2742,7 @@ static void encode_with_recode_loop(VP9_COMP *cpi,
...
@@ -2742,7 +2742,7 @@ static void encode_with_recode_loop(VP9_COMP *cpi,
if
(
cpi
->
sf
.
recode_loop
!=
0
)
{
if
(
cpi
->
sf
.
recode_loop
!=
0
)
{
vp9_save_coding_context
(
cpi
);
vp9_save_coding_context
(
cpi
);
cpi
->
dummy_packing
=
1
;
cpi
->
dummy_packing
=
1
;
if
(
cpi
->
compressor_speed
!=
3
)
if
(
cpi
->
oxcf
.
mode
!=
MODE_REALTIME
)
vp9_pack_bitstream
(
cpi
,
dest
,
size
);
vp9_pack_bitstream
(
cpi
,
dest
,
size
);
cpi
->
rc
.
projected_frame_size
=
(
*
size
)
<<
3
;
cpi
->
rc
.
projected_frame_size
=
(
*
size
)
<<
3
;
...
@@ -3101,7 +3101,7 @@ static void encode_frame_to_data_rate(VP9_COMP *cpi,
...
@@ -3101,7 +3101,7 @@ static void encode_frame_to_data_rate(VP9_COMP *cpi,
// JBB : This is realtime mode. In real time mode the first frame
// JBB : This is realtime mode. In real time mode the first frame
// should be larger. Q of 0 is disabled because we force tx size to be
// should be larger. Q of 0 is disabled because we force tx size to be
// 16x16...
// 16x16...
if
(
cpi
->
compressor_speed
==
3
)
{
if
(
cpi
->
oxcf
.
mode
==
MODE_REALTIME
)
{
if
(
cpi
->
common
.
current_video_frame
==
0
)
if
(
cpi
->
common
.
current_video_frame
==
0
)
q
/=
3
;
q
/=
3
;
...
...
vp9/encoder/vp9_onyx_int.h
View file @
da6b1862
...
@@ -551,7 +551,6 @@ typedef struct VP9_COMP {
...
@@ -551,7 +551,6 @@ typedef struct VP9_COMP {
// for real time encoding
// for real time encoding
int
speed
;
int
speed
;
int
compressor_speed
;
int
cpu_used
;
int
cpu_used
;
int
pass
;
int
pass
;
...
...
vp9/encoder/vp9_rdopt.c
View file @
da6b1862
...
@@ -280,7 +280,7 @@ void vp9_initialize_rd_consts(VP9_COMP *cpi) {
...
@@ -280,7 +280,7 @@ void vp9_initialize_rd_consts(VP9_COMP *cpi) {
fill_token_costs
(
x
->
token_costs
,
cm
->
fc
.
coef_probs
);
fill_token_costs
(
x
->
token_costs
,
cm
->
fc
.
coef_probs
);
if
(
cpi
->
compressor_speed
!=
3
)
{
if
(
cpi
->
oxcf
.
mode
!=
MODE_REALTIME
)
{
for
(
i
=
0
;
i
<
PARTITION_CONTEXTS
;
i
++
)
for
(
i
=
0
;
i
<
PARTITION_CONTEXTS
;
i
++
)
vp9_cost_tokens
(
x
->
partition_cost
[
i
],
get_partition_probs
(
cm
,
i
),
vp9_cost_tokens
(
x
->
partition_cost
[
i
],
get_partition_probs
(
cm
,
i
),
vp9_partition_tree
);
vp9_partition_tree
);
...
@@ -427,7 +427,7 @@ static void model_rd_for_sb(VP9_COMP *cpi, BLOCK_SIZE bsize,
...
@@ -427,7 +427,7 @@ static void model_rd_for_sb(VP9_COMP *cpi, BLOCK_SIZE bsize,
if
(
i
==
0
)
if
(
i
==
0
)
x
->
pred_sse
[
ref
]
=
sse
;
x
->
pred_sse
[
ref
]
=
sse
;
if
(
cpi
->
compressor_speed
>
2
)
{
if
(
cpi
->
oxcf
.
mode
==
MODE_REALTIME
)
{
dist_sum
+=
(
int
)
sse
;
dist_sum
+=
(
int
)
sse
;
}
else
{
}
else
{
int
rate
;
int
rate
;
...
@@ -1761,7 +1761,8 @@ static void rd_check_segment_txsize(VP9_COMP *cpi, MACROBLOCK *x,
...
@@ -1761,7 +1761,8 @@ static void rd_check_segment_txsize(VP9_COMP *cpi, MACROBLOCK *x,
if
(
best_rd
<
label_mv_thresh
)
if
(
best_rd
<
label_mv_thresh
)
break
;
break
;
if
(
cpi
->
compressor_speed
)
{
if
(
cpi
->
oxcf
.
mode
!=
MODE_SECONDPASS_BEST
&&
cpi
->
oxcf
.
mode
!=
MODE_BESTQUALITY
)
{
// use previous block's result as next block's MV predictor.
// use previous block's result as next block's MV predictor.
if
(
i
>
0
)
{
if
(
i
>
0
)
{
bsi
->
mvp
.
as_int
=
mi
->
bmi
[
i
-
1
].
as_mv
[
0
].
as_int
;
bsi
->
mvp
.
as_int
=
mi
->
bmi
[
i
-
1
].
as_mv
[
0
].
as_int
;
...
@@ -1825,7 +1826,8 @@ static void rd_check_segment_txsize(VP9_COMP *cpi, MACROBLOCK *x,
...
@@ -1825,7 +1826,8 @@ static void rd_check_segment_txsize(VP9_COMP *cpi, MACROBLOCK *x,
}
}
// Should we do a full search (best quality only)
// Should we do a full search (best quality only)
if
(
cpi
->
compressor_speed
==
0
)
{
if
(
cpi
->
oxcf
.
mode
==
MODE_BESTQUALITY
||
cpi
->
oxcf
.
mode
==
MODE_SECONDPASS_BEST
)
{
/* Check if mvp_full is within the range. */
/* Check if mvp_full is within the range. */
clamp_mv
(
&
mvp_full
,
x
->
mv_col_min
,
x
->
mv_col_max
,
clamp_mv
(
&
mvp_full
,
x
->
mv_col_min
,
x
->
mv_col_max
,
x
->
mv_row_min
,
x
->
mv_row_max
);
x
->
mv_row_min
,
x
->
mv_row_max
);
...
...
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