/* * Copyright (c) 2013 The WebM project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef AV1_ENCODER_SUBEXP_H_ #define AV1_ENCODER_SUBEXP_H_ #ifdef __cplusplus extern "C" { #endif #include "aom_dsp/prob.h" struct aom_writer; void av1_write_prob_diff_update(struct aom_writer *w, aom_prob newp, aom_prob oldp); void av1_cond_prob_diff_update(struct aom_writer *w, aom_prob *oldp, const unsigned int ct[2]); int av1_prob_diff_update_savings_search(const unsigned int *ct, aom_prob oldp, aom_prob *bestp, aom_prob upd); int av1_prob_diff_update_savings_search_model(const unsigned int *ct, const aom_prob *oldp, aom_prob *bestp, aom_prob upd, int stepsize); int av1_cond_prob_diff_update_savings(aom_prob *oldp, const unsigned int ct[2]); #if CONFIG_ENTROPY int av1_prob_update_search_subframe(unsigned int ct[][2], aom_prob oldp, aom_prob *bestp, aom_prob upd, int n); int av1_prob_update_search_model_subframe( unsigned int ct[ENTROPY_NODES][COEF_PROBS_BUFS][2], const aom_prob *oldp, aom_prob *bestp, aom_prob upd, int stepsize, int n); #endif // CONFIG_ENTROPY // // mag_bits is number of bits for magnitude. The alphabet is of size // 2 * 2^mag_bits + 1, symmetric around 0, where one bit is used to // indicate 0 or non-zero, mag_bits bits are used to indicate magnitide // and 1 more bit for the sign if non-zero. void aom_write_primitive_symmetric(aom_writer *w, int word, unsigned int mag_bits); #ifdef __cplusplus } // extern "C" #endif #endif // AV1_ENCODER_SUBEXP_H_