From 27bec1c761704484e5649d0a504e8f5e53450841 Mon Sep 17 00:00:00 2001 From: Jingning Han Date: Thu, 21 Mar 2019 15:15:31 -0700 Subject: [PATCH] Add wiener variance log function Factor common mapping function from wiener variance to its log form. Change-Id: I25c955c8a3e25b9af1d65a0f0c3f695547c13453 --- vp9/encoder/vp9_encodeframe.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/vp9/encoder/vp9_encodeframe.c b/vp9/encoder/vp9_encodeframe.c index add5773..a78dd66 100644 --- a/vp9/encoder/vp9_encodeframe.c +++ b/vp9/encoder/vp9_encodeframe.c @@ -3588,6 +3588,10 @@ static void ml_predict_var_rd_paritioning(const VP9_COMP *const cpi, } #undef FEATURES +static double log_wiener_var(int64_t wiener_variance) { + return log(1.0 + wiener_variance) / log(2.0); +} + static void build_kmeans_segmentation(VP9_COMP *cpi) { VP9_COMMON *cm = &cpi->common; BLOCK_SIZE bsize = BLOCK_64X64; @@ -3622,7 +3626,7 @@ static void build_kmeans_segmentation(VP9_COMP *cpi) { #endif // CONFIG_MULTITHREAD kmeans_data = &cpi->kmeans_data_arr[cpi->kmeans_data_size++]; - kmeans_data->value = log(1.0 + wiener_variance) / log(2.0); + kmeans_data->value = log_wiener_var(wiener_variance); kmeans_data->pos = mi_row * cpi->kmeans_data_stride + mi_col; #if CONFIG_MULTITHREAD pthread_mutex_unlock(&cpi->kmeans_mutex); @@ -3661,7 +3665,7 @@ static int wiener_var_segment(VP9_COMP *cpi, BLOCK_SIZE bsize, int mi_row, wiener_variance /= (mb_row_end - mb_row_start) * (mb_col_end - mb_col_start); - segment_id = vp9_get_group_idx(log(1.0 + wiener_variance) / log(2.0), + segment_id = vp9_get_group_idx(log_wiener_var(wiener_variance), cpi->kmeans_boundary_ls, cpi->kmeans_ctr_num); return segment_id; -- 2.7.4