Commit a762cef9 authored by Yunqing Wang's avatar Yunqing Wang Committed by Gerrit Code Review
Browse files

Merge "Initialize errorperbit and sabperbit in ARNR filtering"

parents 633dbcb4 75d2443b
......@@ -146,7 +146,7 @@ static const int rd_boost_factor[16] = { 64, 32, 32, 32, 24, 16, 12, 12,
static const int rd_frame_type_factor[FRAME_UPDATE_TYPES] = { 128, 144, 128,
128, 144 };
int vp9_compute_rd_mult(const VP9_COMP *cpi, int qindex) {
int64_t vp9_compute_rd_mult_based_on_qindex(const VP9_COMP *cpi, int qindex) {
const int64_t q = vp9_dc_quant(qindex, 0, cpi->common.bit_depth);
#if CONFIG_VP9_HIGHBITDEPTH
int64_t rdmult = 0;
......@@ -161,6 +161,12 @@ int vp9_compute_rd_mult(const VP9_COMP *cpi, int qindex) {
#else
int64_t rdmult = 88 * q * q / 24;
#endif // CONFIG_VP9_HIGHBITDEPTH
return rdmult;
}
int vp9_compute_rd_mult(const VP9_COMP *cpi, int qindex) {
int64_t rdmult = vp9_compute_rd_mult_based_on_qindex(cpi, qindex);
if (cpi->oxcf.pass == 2 && (cpi->common.frame_type != KEY_FRAME)) {
const GF_GROUP *const gf_group = &cpi->twopass.gf_group;
const FRAME_UPDATE_TYPE frame_type = gf_group->update_type[gf_group->index];
......
......@@ -128,6 +128,9 @@ struct TileDataEnc;
struct VP9_COMP;
struct macroblock;
int64_t vp9_compute_rd_mult_based_on_qindex(const struct VP9_COMP *cpi,
int qindex);
int vp9_compute_rd_mult(const struct VP9_COMP *cpi, int qindex);
void vp9_initialize_rd_consts(struct VP9_COMP *cpi);
......
......@@ -646,6 +646,7 @@ void vp9_temporal_filter(VP9_COMP *cpi, int distance) {
int frames_to_blur_forward;
struct scale_factors sf;
YV12_BUFFER_CONFIG *frames[MAX_LAG_BUFFERS] = { NULL };
int rdmult;
// Apply context specific adjustments to the arnr filter parameters.
adjust_arnr_filter(cpi, distance, rc->gfu_boost, &frames_to_blur, &strength);
......@@ -719,6 +720,12 @@ void vp9_temporal_filter(VP9_COMP *cpi, int distance) {
}
}
// Initialize errorperbit and sabperbit.
rdmult = (int)vp9_compute_rd_mult_based_on_qindex(cpi, ARNR_FILT_QINDEX);
if (rdmult < 1) rdmult = 1;
set_error_per_bit(&cpi->td.mb, rdmult);
vp9_initialize_me_consts(cpi, &cpi->td.mb, ARNR_FILT_QINDEX);
temporal_filter_iterate_c(cpi, frames, frames_to_blur,
frames_to_blur_backward, strength, &sf);
}
......@@ -15,6 +15,8 @@
extern "C" {
#endif
#define ARNR_FILT_QINDEX 128
void vp9_temporal_filter_init(void);
void vp9_temporal_filter(VP9_COMP *cpi, int distance);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment