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
26abc15e
Commit
26abc15e
authored
Oct 26, 2015
by
Paul Wilkins
Committed by
Gerrit Code Review
Oct 26, 2015
Browse files
Options
Browse Files
Download
Plain Diff
Merge "Bug in clamping of base_frame_target."
parents
65dd056e
762c0f22
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
10 additions
and
7 deletions
+10
-7
vp9/encoder/vp9_firstpass.c
vp9/encoder/vp9_firstpass.c
+5
-7
vp9/encoder/vp9_ratectrl.c
vp9/encoder/vp9_ratectrl.c
+5
-0
No files found.
vp9/encoder/vp9_firstpass.c
View file @
26abc15e
...
...
@@ -1183,10 +1183,13 @@ static int get_twopass_worst_quality(const VP9_COMP *cpi,
double
group_weight_factor
)
{
const
RATE_CONTROL
*
const
rc
=
&
cpi
->
rc
;
const
VP9EncoderConfig
*
const
oxcf
=
&
cpi
->
oxcf
;
// Clamp the target rate to VBR min / max limts.
const
int
target_rate
=
vp9_rc_clamp_pframe_target_size
(
cpi
,
section_target_bandwidth
);
inactive_zone
=
fclamp
(
inactive_zone
,
0
.
0
,
1
.
0
);
if
(
section_target_bandwidth
<=
0
)
{
if
(
target_rate
<=
0
)
{
return
rc
->
worst_quality
;
// Highest value allowed
}
else
{
const
int
num_mbs
=
(
cpi
->
oxcf
.
resize_mode
!=
RESIZE_NONE
)
...
...
@@ -1195,7 +1198,7 @@ static int get_twopass_worst_quality(const VP9_COMP *cpi,
const
double
av_err_per_mb
=
section_err
/
active_mbs
;
const
double
speed_term
=
1
.
0
+
0
.
04
*
oxcf
->
speed
;
const
double
ediv_size_correction
=
(
double
)
num_mbs
/
EDIV_SIZE_FACTOR
;
const
int
target_norm_bits_per_mb
=
((
uint64_t
)
section_target_bandwidth
<<
const
int
target_norm_bits_per_mb
=
((
uint64_t
)
target_rate
<<
BPER_MB_NORMBITS
)
/
active_mbs
;
int
q
;
...
...
@@ -2737,11 +2740,6 @@ void vp9_rc_get_second_pass_params(VP9_COMP *cpi) {
}
target_rate
=
gf_group
->
bit_allocation
[
gf_group
->
index
];
if
(
cpi
->
common
.
frame_type
==
KEY_FRAME
)
target_rate
=
vp9_rc_clamp_iframe_target_size
(
cpi
,
target_rate
);
else
target_rate
=
vp9_rc_clamp_pframe_target_size
(
cpi
,
target_rate
);
rc
->
base_frame_target
=
target_rate
;
{
...
...
vp9/encoder/vp9_ratectrl.c
View file @
26abc15e
...
...
@@ -1816,6 +1816,11 @@ void vp9_set_target_rate(VP9_COMP *cpi) {
RATE_CONTROL
*
const
rc
=
&
cpi
->
rc
;
int
target_rate
=
rc
->
base_frame_target
;
if
(
cpi
->
common
.
frame_type
==
KEY_FRAME
)
target_rate
=
vp9_rc_clamp_iframe_target_size
(
cpi
,
target_rate
);
else
target_rate
=
vp9_rc_clamp_pframe_target_size
(
cpi
,
target_rate
);
// Correction to rate target based on prior over or under shoot.
if
(
cpi
->
oxcf
.
rc_mode
==
VPX_VBR
||
cpi
->
oxcf
.
rc_mode
==
VPX_CQ
)
vbr_rate_correction
(
cpi
,
&
target_rate
);
...
...
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