Lines Matching refs:eqns

93 static void equation_system_clear(aom_equation_system_t *eqns) {  in equation_system_clear()  argument
94 const int n = eqns->n; in equation_system_clear()
95 memset(eqns->A, 0, sizeof(*eqns->A) * n * n); in equation_system_clear()
96 memset(eqns->x, 0, sizeof(*eqns->x) * n); in equation_system_clear()
97 memset(eqns->b, 0, sizeof(*eqns->b) * n); in equation_system_clear()
108 static int equation_system_init(aom_equation_system_t *eqns, int n) { in equation_system_init() argument
109 eqns->A = (double *)aom_malloc(sizeof(*eqns->A) * n * n); in equation_system_init()
110 eqns->b = (double *)aom_malloc(sizeof(*eqns->b) * n); in equation_system_init()
111 eqns->x = (double *)aom_malloc(sizeof(*eqns->x) * n); in equation_system_init()
112 eqns->n = n; in equation_system_init()
113 if (!eqns->A || !eqns->b || !eqns->x) { in equation_system_init()
115 aom_free(eqns->A); in equation_system_init()
116 aom_free(eqns->b); in equation_system_init()
117 aom_free(eqns->x); in equation_system_init()
118 memset(eqns, 0, sizeof(*eqns)); in equation_system_init()
121 equation_system_clear(eqns); in equation_system_init()
125 static int equation_system_solve(aom_equation_system_t *eqns) { in equation_system_solve() argument
126 const int n = eqns->n; in equation_system_solve()
136 memcpy(A, eqns->A, sizeof(*eqns->A) * n * n); in equation_system_solve()
137 memcpy(b, eqns->b, sizeof(*eqns->b) * n); in equation_system_solve()
138 ret = linsolve(n, A, eqns->n, b, eqns->x); in equation_system_solve()
160 static void equation_system_free(aom_equation_system_t *eqns) { in equation_system_free() argument
161 if (!eqns) return; in equation_system_free()
162 aom_free(eqns->A); in equation_system_free()
163 aom_free(eqns->b); in equation_system_free()
164 aom_free(eqns->x); in equation_system_free()
165 memset(eqns, 0, sizeof(*eqns)); in equation_system_free()
169 equation_system_clear(&solver->eqns); in noise_strength_solver_clear()
176 equation_system_add(&dest->eqns, &src->eqns); in noise_strength_solver_add()
193 if (!equation_system_init(&state->eqns, n)) { in noise_state_init()
203 static void set_chroma_coefficient_fallback_soln(aom_equation_system_t *eqns) { in set_chroma_coefficient_fallback_soln() argument
205 const int last = eqns->n - 1; in set_chroma_coefficient_fallback_soln()
208 memset(eqns->x, 0, sizeof(*eqns->x) * eqns->n); in set_chroma_coefficient_fallback_soln()
209 if (fabs(eqns->A[last * eqns->n + last]) > kTolerance) { in set_chroma_coefficient_fallback_soln()
210 eqns->x[last] = eqns->b[last] / eqns->A[last * eqns->n + last]; in set_chroma_coefficient_fallback_soln()
261 return (1.0 - a) * solver->eqns.x[bin_i0] + a * solver->eqns.x[bin_i1]; in noise_strength_solver_get_value()
271 solver->eqns.A[bin_i0 * n + bin_i0] += (1.0 - a) * (1.0 - a); in aom_noise_strength_solver_add_measurement()
272 solver->eqns.A[bin_i1 * n + bin_i0] += a * (1.0 - a); in aom_noise_strength_solver_add_measurement()
273 solver->eqns.A[bin_i1 * n + bin_i1] += a * a; in aom_noise_strength_solver_add_measurement()
274 solver->eqns.A[bin_i0 * n + bin_i1] += a * (1.0 - a); in aom_noise_strength_solver_add_measurement()
275 solver->eqns.b[bin_i0] += (1.0 - a) * noise_std; in aom_noise_strength_solver_add_measurement()
276 solver->eqns.b[bin_i1] += a * noise_std; in aom_noise_strength_solver_add_measurement()
289 double *old_A = solver->eqns.A; in aom_noise_strength_solver_solve()
309 solver->eqns.b[i] += mean / 8192.; in aom_noise_strength_solver_solve()
311 solver->eqns.A = A; in aom_noise_strength_solver_solve()
312 result = equation_system_solve(&solver->eqns); in aom_noise_strength_solver_solve()
313 solver->eqns.A = old_A; in aom_noise_strength_solver_solve()
328 return equation_system_init(&solver->eqns, num_bins); in aom_noise_strength_solver_init()
333 equation_system_free(&solver->eqns); in aom_noise_strength_solver_free()
361 const double y = solver->eqns.x[j]; in update_piecewise_linear_residual()
384 lut->points[i][1] = solver->eqns.x[i]; in aom_noise_strength_solver_fit_piecewise()
426 aom_equation_system_t eqns; in aom_flat_block_finder_init() local
433 if (!equation_system_init(&eqns, kLowPolyNumParams)) { in aom_flat_block_finder_init()
447 equation_system_free(&eqns); in aom_flat_block_finder_init()
469 eqns.A[kLowPolyNumParams * i + j] += coords[i] * coords[j]; in aom_flat_block_finder_init()
477 memset(eqns.b, 0, sizeof(*eqns.b) * kLowPolyNumParams); in aom_flat_block_finder_init()
478 eqns.b[i] = 1; in aom_flat_block_finder_init()
479 equation_system_solve(&eqns); in aom_flat_block_finder_init()
482 AtA_inv[j * kLowPolyNumParams + i] = eqns.x[j]; in aom_flat_block_finder_init()
485 equation_system_free(&eqns); in aom_flat_block_finder_init()
747 equation_system_free(&model->latest_state[c].eqns); in aom_noise_model_free()
748 equation_system_free(&model->combined_state[c].eqns); in aom_noise_model_free()
750 equation_system_free(&model->latest_state[c].strength_solver.eqns); in aom_noise_model_free()
751 equation_system_free(&model->combined_state[c].strength_solver.eqns); in aom_noise_model_free()
802 double *A = noise_model->latest_state[c].eqns.A; in add_block_observations()
803 double *b = noise_model->latest_state[c].eqns.b; in add_block_observations()
805 const int n = noise_model->latest_state[c].eqns.n; in add_block_observations()
937 aom_normalized_cross_correlation(noise_model->latest_state[c].eqns.x, in is_noise_model_different()
938 noise_model->combined_state[c].eqns.x, in is_noise_model_different()
939 noise_model->combined_state[c].eqns.n); in is_noise_model_different()
946 &noise_model->latest_state[c].strength_solver.eqns; in is_noise_model_different()
948 &noise_model->combined_state[c].strength_solver.eqns; in is_noise_model_different()
966 const int ret = equation_system_solve(&state->eqns); in ar_equation_system_solve()
977 const int n = state->eqns.n; in ar_equation_system_solve()
978 for (int i = 0; i < (state->eqns.n - is_chroma); ++i) { in ar_equation_system_solve()
979 var += state->eqns.A[i * n + i] / state->num_observations; in ar_equation_system_solve()
989 for (int i = 0; i < state->eqns.n - is_chroma; ++i) { in ar_equation_system_solve()
990 double bi = state->eqns.b[i]; in ar_equation_system_solve()
992 bi -= state->eqns.A[i * n + (n - 1)] * state->eqns.x[n - 1]; in ar_equation_system_solve()
994 sum_covar += (bi * state->eqns.x[i]) / state->num_observations; in ar_equation_system_solve()
1026 equation_system_clear(&noise_model->latest_state[i].eqns); in aom_noise_model_update()
1062 &noise_model->latest_state[channel].eqns); in aom_noise_model_update()
1071 noise_model, channel, noise_model->latest_state[channel].eqns.x, in aom_noise_model_update()
1094 equation_system_add(&noise_model->combined_state[channel].eqns, in aom_noise_model_update()
1095 &noise_model->latest_state[channel].eqns); in aom_noise_model_update()
1100 &noise_model->combined_state[channel].eqns); in aom_noise_model_update()
1125 equation_system_copy(&noise_model->combined_state[c].eqns, in aom_noise_model_save_latest()
1126 &noise_model->latest_state[c].eqns); in aom_noise_model_save_latest()
1127 equation_system_copy(&noise_model->combined_state[c].strength_solver.eqns, in aom_noise_model_save_latest()
1128 &noise_model->latest_state[c].strength_solver.eqns); in aom_noise_model_save_latest()
1217 const int n_coeff = noise_model->combined_state[0].eqns.n; in aom_noise_model_get_grain_parameters()
1222 aom_equation_system_t *eqns = &noise_model->combined_state[c].eqns; in aom_noise_model_get_grain_parameters() local
1224 max_coeff = AOMMAX(max_coeff, eqns->x[i]); in aom_noise_model_get_grain_parameters()
1225 min_coeff = AOMMIN(min_coeff, eqns->x[i]); in aom_noise_model_get_grain_parameters()
1233 for (int i = 0; i < solver->eqns.n; ++i) { in aom_noise_model_get_grain_parameters()
1235 for (int j = 0; j < solver->eqns.n; ++j) { in aom_noise_model_get_grain_parameters()
1236 w += solver->eqns.A[i * solver->eqns.n + j]; in aom_noise_model_get_grain_parameters()
1239 average_strength += solver->eqns.x[i] * w; in aom_noise_model_get_grain_parameters()
1249 y_corr[c - 1] = avg_luma_strength * eqns->x[n_coeff] / average_strength; in aom_noise_model_get_grain_parameters()
1266 aom_equation_system_t *eqns = &noise_model->combined_state[c].eqns; in aom_noise_model_get_grain_parameters() local
1269 clamp((int)round(scale_ar_coeff * eqns->x[i]), -128, 127); in aom_noise_model_get_grain_parameters()