Merge "VP9_resizing: add limitation to the downsacling resolution."
This commit is contained in:
commit
039f241fc2
@ -1836,6 +1836,9 @@ int vp9_resize_one_pass_cbr(VP9_COMP *cpi) {
|
||||
RESIZE_ACTION resize_action = NO_RESIZE;
|
||||
int avg_qp_thr1 = 70;
|
||||
int avg_qp_thr2 = 50;
|
||||
int min_width = 180;
|
||||
int min_height = 180;
|
||||
int down_size_on = 1;
|
||||
cpi->resize_scale_num = 1;
|
||||
cpi->resize_scale_den = 1;
|
||||
// Don't resize on key frame; reset the counters on key frame.
|
||||
@ -1844,6 +1847,21 @@ int vp9_resize_one_pass_cbr(VP9_COMP *cpi) {
|
||||
cpi->resize_count = 0;
|
||||
return 0;
|
||||
}
|
||||
// Check current frame reslution to avoid generating frames smaller than
|
||||
// the minimum resolution.
|
||||
if (ONEHALFONLY_RESIZE) {
|
||||
if ((cm->width >> 1) < min_width || (cm->height >> 1) < min_height)
|
||||
down_size_on = 0;
|
||||
} else {
|
||||
if (cpi->resize_state == ORIG &&
|
||||
(cm->width * 3 / 4 < min_width ||
|
||||
cm->height * 3 / 4 < min_height))
|
||||
return 0;
|
||||
else if (cpi->resize_state == THREE_QUARTER &&
|
||||
((cpi->oxcf.width >> 1) < min_width ||
|
||||
(cpi->oxcf.height >> 1) < min_height))
|
||||
down_size_on = 0;
|
||||
}
|
||||
|
||||
#if CONFIG_VP9_TEMPORAL_DENOISING
|
||||
// If denoiser is on, apply a smaller qp threshold.
|
||||
@ -1870,7 +1888,7 @@ int vp9_resize_one_pass_cbr(VP9_COMP *cpi) {
|
||||
// down state, i.e. 1/2 or 3/4 of original resolution.
|
||||
// Currently, use a flag to turn 3/4 resizing feature on/off.
|
||||
if (cpi->resize_buffer_underflow > (cpi->resize_count >> 2)) {
|
||||
if (cpi->resize_state == THREE_QUARTER) {
|
||||
if (cpi->resize_state == THREE_QUARTER && down_size_on) {
|
||||
resize_action = DOWN_ONEHALF;
|
||||
cpi->resize_state = ONE_HALF;
|
||||
} else if (cpi->resize_state == ORIG) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user