vp9: Adjust thresholds for limiting cyclic refresh for noisy content.
For noisy content, be more aggressive in skippping some blocks for delta-qp to reduce noise pulsing artifact. Also treat frame boundary case when dimension is not multiple of superblock size/64. Only affects non-screen content case, and when source noise is measured to be high (at least level kMedium). Change-Id: Ib13a2a20ed1ce37ff3c44d95c3ef2635fd695222
This commit is contained in:
parent
d545c19afa
commit
18794d8ddc
@ -383,13 +383,14 @@ static void cyclic_refresh_update_map(VP9_COMP *const cpi) {
|
||||
: vp9_get_qindex(&cm->seg, CR_SEGMENT_ID_BOOST1, cm->base_qindex);
|
||||
// More aggressive settings for noisy content.
|
||||
if (cpi->noise_estimate.enabled && cpi->noise_estimate.level >= kMedium) {
|
||||
consec_zero_mv_thresh = 80;
|
||||
consec_zero_mv_thresh = 60;
|
||||
qindex_thresh =
|
||||
VPXMAX(vp9_get_qindex(&cm->seg, CR_SEGMENT_ID_BOOST1, cm->base_qindex),
|
||||
7 * cm->base_qindex >> 3);
|
||||
cm->base_qindex);
|
||||
}
|
||||
do {
|
||||
int sum_map = 0;
|
||||
int consec_zero_mv_thresh_block = consec_zero_mv_thresh;
|
||||
// Get the mi_row/mi_col corresponding to superblock index i.
|
||||
int sb_row_index = (i / sb_cols);
|
||||
int sb_col_index = i - sb_row_index * sb_cols;
|
||||
@ -403,6 +404,9 @@ static void cyclic_refresh_update_map(VP9_COMP *const cpi) {
|
||||
VPXMIN(cm->mi_cols - mi_col, num_8x8_blocks_wide_lookup[BLOCK_64X64]);
|
||||
ymis =
|
||||
VPXMIN(cm->mi_rows - mi_row, num_8x8_blocks_high_lookup[BLOCK_64X64]);
|
||||
if (cpi->noise_estimate.enabled && cpi->noise_estimate.level >= kMedium &&
|
||||
(xmis <= 2 || ymis <= 2))
|
||||
consec_zero_mv_thresh_block = 10;
|
||||
for (y = 0; y < ymis; y++) {
|
||||
for (x = 0; x < xmis; x++) {
|
||||
const int bl_index2 = bl_index + y * cm->mi_cols + x;
|
||||
@ -412,7 +416,7 @@ static void cyclic_refresh_update_map(VP9_COMP *const cpi) {
|
||||
if (cr->map[bl_index2] == 0) {
|
||||
count_tot++;
|
||||
if (cr->last_coded_q_map[bl_index2] > qindex_thresh ||
|
||||
cpi->consec_zero_mv[bl_index2] < consec_zero_mv_thresh) {
|
||||
cpi->consec_zero_mv[bl_index2] < consec_zero_mv_thresh_block) {
|
||||
sum_map++;
|
||||
count_sel++;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user