Commit 4a0f9478 authored by Dmitry Kovalev's avatar Dmitry Kovalev
Browse files

Replacing {VP9_COEF, MODE}_UPDATE_PROB with DIFF_UPDATE_PROB.

Values of MODE_UPDATE_PROB and VP9_COEF_UPDATE_PROB are equal, so replacing
them with one constant. Inlining appropriate arguments for functions:
  vp9_cond_prob_diff_update (encoder)
  vp9_diff_update_prob (decoder)

Change-Id: I1255a1cb477743b799b3bfbbcd8de6b32b067338
parent 83936e8c
...@@ -18,6 +18,8 @@ ...@@ -18,6 +18,8 @@
#include "vp9/common/vp9_scan.h" #include "vp9/common/vp9_scan.h"
#include "vp9/common/vp9_treecoder.h" #include "vp9/common/vp9_treecoder.h"
#define DIFF_UPDATE_PROB 252
/* Coefficient token alphabet */ /* Coefficient token alphabet */
#define ZERO_TOKEN 0 /* 0 Extra Bits 0+0 */ #define ZERO_TOKEN 0 /* 0 Extra Bits 0+0 */
...@@ -208,7 +210,4 @@ static void get_scan_and_band(const MACROBLOCKD *xd, TX_SIZE tx_size, ...@@ -208,7 +210,4 @@ static void get_scan_and_band(const MACROBLOCKD *xd, TX_SIZE tx_size,
} }
} }
enum { VP9_COEF_UPDATE_PROB = 252 };
#endif // VP9_COMMON_VP9_ENTROPY_H_ #endif // VP9_COMMON_VP9_ENTROPY_H_
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
#include "vp9/common/vp9_treecoder.h" #include "vp9/common/vp9_treecoder.h"
#define TX_SIZE_CONTEXTS 2 #define TX_SIZE_CONTEXTS 2
#define MODE_UPDATE_PROB 252
#define SWITCHABLE_FILTERS 3 // number of switchable filters #define SWITCHABLE_FILTERS 3 // number of switchable filters
// #define MODE_STATS // #define MODE_STATS
......
...@@ -363,15 +363,14 @@ static void read_switchable_interp_probs(FRAME_CONTEXT *fc, vp9_reader *r) { ...@@ -363,15 +363,14 @@ static void read_switchable_interp_probs(FRAME_CONTEXT *fc, vp9_reader *r) {
int i, j; int i, j;
for (j = 0; j < SWITCHABLE_FILTERS + 1; ++j) for (j = 0; j < SWITCHABLE_FILTERS + 1; ++j)
for (i = 0; i < SWITCHABLE_FILTERS - 1; ++i) for (i = 0; i < SWITCHABLE_FILTERS - 1; ++i)
vp9_diff_update_prob(r, MODE_UPDATE_PROB, vp9_diff_update_prob(r, &fc->switchable_interp_prob[j][i]);
&fc->switchable_interp_prob[j][i]);
} }
static void read_inter_mode_probs(FRAME_CONTEXT *fc, vp9_reader *r) { static void read_inter_mode_probs(FRAME_CONTEXT *fc, vp9_reader *r) {
int i, j; int i, j;
for (i = 0; i < INTER_MODE_CONTEXTS; ++i) for (i = 0; i < INTER_MODE_CONTEXTS; ++i)
for (j = 0; j < INTER_MODES - 1; ++j) for (j = 0; j < INTER_MODES - 1; ++j)
vp9_diff_update_prob(r, MODE_UPDATE_PROB, &fc->inter_mode_probs[i][j]); vp9_diff_update_prob(r, &fc->inter_mode_probs[i][j]);
} }
static INLINE COMPPREDMODE_TYPE read_comp_pred_mode(vp9_reader *r) { static INLINE COMPPREDMODE_TYPE read_comp_pred_mode(vp9_reader *r) {
...@@ -606,17 +605,17 @@ static void read_comp_pred(VP9_COMMON *cm, vp9_reader *r) { ...@@ -606,17 +605,17 @@ static void read_comp_pred(VP9_COMMON *cm, vp9_reader *r) {
if (cm->comp_pred_mode == HYBRID_PREDICTION) if (cm->comp_pred_mode == HYBRID_PREDICTION)
for (i = 0; i < COMP_INTER_CONTEXTS; i++) for (i = 0; i < COMP_INTER_CONTEXTS; i++)
vp9_diff_update_prob(r, MODE_UPDATE_PROB, &cm->fc.comp_inter_prob[i]); vp9_diff_update_prob(r, &cm->fc.comp_inter_prob[i]);
if (cm->comp_pred_mode != COMP_PREDICTION_ONLY) if (cm->comp_pred_mode != COMP_PREDICTION_ONLY)
for (i = 0; i < REF_CONTEXTS; i++) { for (i = 0; i < REF_CONTEXTS; i++) {
vp9_diff_update_prob(r, MODE_UPDATE_PROB, &cm->fc.single_ref_prob[i][0]); vp9_diff_update_prob(r, &cm->fc.single_ref_prob[i][0]);
vp9_diff_update_prob(r, MODE_UPDATE_PROB, &cm->fc.single_ref_prob[i][1]); vp9_diff_update_prob(r, &cm->fc.single_ref_prob[i][1]);
} }
if (cm->comp_pred_mode != SINGLE_PREDICTION_ONLY) if (cm->comp_pred_mode != SINGLE_PREDICTION_ONLY)
for (i = 0; i < REF_CONTEXTS; i++) for (i = 0; i < REF_CONTEXTS; i++)
vp9_diff_update_prob(r, MODE_UPDATE_PROB, &cm->fc.comp_ref_prob[i]); vp9_diff_update_prob(r, &cm->fc.comp_ref_prob[i]);
} }
void vp9_prepare_read_mode_info(VP9D_COMP* pbi, vp9_reader *r) { void vp9_prepare_read_mode_info(VP9D_COMP* pbi, vp9_reader *r) {
...@@ -626,7 +625,7 @@ void vp9_prepare_read_mode_info(VP9D_COMP* pbi, vp9_reader *r) { ...@@ -626,7 +625,7 @@ void vp9_prepare_read_mode_info(VP9D_COMP* pbi, vp9_reader *r) {
// TODO(jkoleszar): does this clear more than MBSKIP_CONTEXTS? Maybe remove. // TODO(jkoleszar): does this clear more than MBSKIP_CONTEXTS? Maybe remove.
// vpx_memset(cm->fc.mbskip_probs, 0, sizeof(cm->fc.mbskip_probs)); // vpx_memset(cm->fc.mbskip_probs, 0, sizeof(cm->fc.mbskip_probs));
for (k = 0; k < MBSKIP_CONTEXTS; ++k) for (k = 0; k < MBSKIP_CONTEXTS; ++k)
vp9_diff_update_prob(r, MODE_UPDATE_PROB, &cm->fc.mbskip_probs[k]); vp9_diff_update_prob(r, &cm->fc.mbskip_probs[k]);
if (cm->frame_type != KEY_FRAME && !cm->intra_only) { if (cm->frame_type != KEY_FRAME && !cm->intra_only) {
nmv_context *const nmvc = &pbi->common.fc.nmvc; nmv_context *const nmvc = &pbi->common.fc.nmvc;
...@@ -639,18 +638,17 @@ void vp9_prepare_read_mode_info(VP9D_COMP* pbi, vp9_reader *r) { ...@@ -639,18 +638,17 @@ void vp9_prepare_read_mode_info(VP9D_COMP* pbi, vp9_reader *r) {
read_switchable_interp_probs(&cm->fc, r); read_switchable_interp_probs(&cm->fc, r);
for (i = 0; i < INTRA_INTER_CONTEXTS; i++) for (i = 0; i < INTRA_INTER_CONTEXTS; i++)
vp9_diff_update_prob(r, MODE_UPDATE_PROB, &cm->fc.intra_inter_prob[i]); vp9_diff_update_prob(r, &cm->fc.intra_inter_prob[i]);
read_comp_pred(cm, r); read_comp_pred(cm, r);
for (j = 0; j < BLOCK_SIZE_GROUPS; j++) for (j = 0; j < BLOCK_SIZE_GROUPS; j++)
for (i = 0; i < INTRA_MODES - 1; ++i) for (i = 0; i < INTRA_MODES - 1; ++i)
vp9_diff_update_prob(r, MODE_UPDATE_PROB, &cm->fc.y_mode_prob[j][i]); vp9_diff_update_prob(r, &cm->fc.y_mode_prob[j][i]);
for (j = 0; j < NUM_PARTITION_CONTEXTS; ++j) for (j = 0; j < NUM_PARTITION_CONTEXTS; ++j)
for (i = 0; i < PARTITION_TYPES - 1; ++i) for (i = 0; i < PARTITION_TYPES - 1; ++i)
vp9_diff_update_prob(r, MODE_UPDATE_PROB, vp9_diff_update_prob(r, &cm->fc.partition_prob[INTER_FRAME][j][i]);
&cm->fc.partition_prob[INTER_FRAME][j][i]);
read_mv_probs(r, nmvc, xd->allow_high_precision_mv); read_mv_probs(r, nmvc, xd->allow_high_precision_mv);
} }
......
...@@ -63,15 +63,15 @@ static void read_tx_probs(struct tx_probs *tx_probs, vp9_reader *r) { ...@@ -63,15 +63,15 @@ static void read_tx_probs(struct tx_probs *tx_probs, vp9_reader *r) {
for (i = 0; i < TX_SIZE_CONTEXTS; ++i) for (i = 0; i < TX_SIZE_CONTEXTS; ++i)
for (j = 0; j < TX_SIZES - 3; ++j) for (j = 0; j < TX_SIZES - 3; ++j)
vp9_diff_update_prob(r, MODE_UPDATE_PROB, &tx_probs->p8x8[i][j]); vp9_diff_update_prob(r, &tx_probs->p8x8[i][j]);
for (i = 0; i < TX_SIZE_CONTEXTS; ++i) for (i = 0; i < TX_SIZE_CONTEXTS; ++i)
for (j = 0; j < TX_SIZES - 2; ++j) for (j = 0; j < TX_SIZES - 2; ++j)
vp9_diff_update_prob(r, MODE_UPDATE_PROB, &tx_probs->p16x16[i][j]); vp9_diff_update_prob(r, &tx_probs->p16x16[i][j]);
for (i = 0; i < TX_SIZE_CONTEXTS; ++i) for (i = 0; i < TX_SIZE_CONTEXTS; ++i)
for (j = 0; j < TX_SIZES - 1; ++j) for (j = 0; j < TX_SIZES - 1; ++j)
vp9_diff_update_prob(r, MODE_UPDATE_PROB, &tx_probs->p32x32[i][j]); vp9_diff_update_prob(r, &tx_probs->p32x32[i][j]);
} }
static void setup_plane_dequants(VP9_COMMON *cm, MACROBLOCKD *xd, int q_index) { static void setup_plane_dequants(VP9_COMMON *cm, MACROBLOCKD *xd, int q_index) {
...@@ -371,8 +371,7 @@ static void read_coef_probs_common(vp9_coeff_probs_model *coef_probs, ...@@ -371,8 +371,7 @@ static void read_coef_probs_common(vp9_coeff_probs_model *coef_probs,
for (l = 0; l < PREV_COEF_CONTEXTS; l++) for (l = 0; l < PREV_COEF_CONTEXTS; l++)
if (k > 0 || l < 3) if (k > 0 || l < 3)
for (m = 0; m < UNCONSTRAINED_NODES; m++) for (m = 0; m < UNCONSTRAINED_NODES; m++)
vp9_diff_update_prob(r, VP9_COEF_UPDATE_PROB, vp9_diff_update_prob(r, &coef_probs[i][j][k][l][m]);
&coef_probs[i][j][k][l][m]);
} }
static void read_coef_probs(FRAME_CONTEXT *fc, TX_MODE tx_mode, static void read_coef_probs(FRAME_CONTEXT *fc, TX_MODE tx_mode,
......
...@@ -99,8 +99,8 @@ static int decode_term_subexp(vp9_reader *r, int k, int num_syms) { ...@@ -99,8 +99,8 @@ static int decode_term_subexp(vp9_reader *r, int k, int num_syms) {
return word; return word;
} }
void vp9_diff_update_prob(vp9_reader *r, int update_prob, vp9_prob* p) { void vp9_diff_update_prob(vp9_reader *r, vp9_prob* p) {
if (vp9_read(r, update_prob)) { if (vp9_read(r, DIFF_UPDATE_PROB)) {
const int delp = decode_term_subexp(r, SUBEXP_PARAM, 255); const int delp = decode_term_subexp(r, SUBEXP_PARAM, 255);
*p = (vp9_prob)inv_remap_prob(delp, *p); *p = (vp9_prob)inv_remap_prob(delp, *p);
} }
......
...@@ -14,6 +14,6 @@ ...@@ -14,6 +14,6 @@
#include "vp9/decoder/vp9_dboolhuff.h" #include "vp9/decoder/vp9_dboolhuff.h"
void vp9_diff_update_prob(vp9_reader *r, int update_prob, vp9_prob* p); void vp9_diff_update_prob(vp9_reader *r, vp9_prob* p);
#endif // VP9_DECODER_VP9_DSUBEXP_H_ #endif // VP9_DECODER_VP9_DSUBEXP_H_
...@@ -179,9 +179,8 @@ static void update_mode( ...@@ -179,9 +179,8 @@ static void update_mode(
vp9_tree_probs_from_distribution(tree, Pnew, bct, num_events, 0); vp9_tree_probs_from_distribution(tree, Pnew, bct, num_events, 0);
n--; n--;
for (i = 0; i < n; ++i) { for (i = 0; i < n; ++i)
vp9_cond_prob_diff_update(w, &Pcur[i], MODE_UPDATE_PROB, bct[i]); vp9_cond_prob_diff_update(w, &Pcur[i], bct[i]);
}
} }
static void update_mbintra_mode_probs(VP9_COMP* const cpi, static void update_mbintra_mode_probs(VP9_COMP* const cpi,
...@@ -227,8 +226,7 @@ void vp9_update_skip_probs(VP9_COMP *cpi, vp9_writer *w) { ...@@ -227,8 +226,7 @@ void vp9_update_skip_probs(VP9_COMP *cpi, vp9_writer *w) {
int k; int k;
for (k = 0; k < MBSKIP_CONTEXTS; ++k) for (k = 0; k < MBSKIP_CONTEXTS; ++k)
vp9_cond_prob_diff_update(w, &cm->fc.mbskip_probs[k], vp9_cond_prob_diff_update(w, &cm->fc.mbskip_probs[k], cm->counts.mbskip[k]);
MODE_UPDATE_PROB, cm->counts.mbskip[k]);
} }
static void write_intra_mode(vp9_writer *bc, int m, const vp9_prob *p) { static void write_intra_mode(vp9_writer *bc, int m, const vp9_prob *p) {
...@@ -251,7 +249,7 @@ static void update_switchable_interp_probs(VP9_COMP *const cpi, ...@@ -251,7 +249,7 @@ static void update_switchable_interp_probs(VP9_COMP *const cpi,
for (j = 0; j <= SWITCHABLE_FILTERS; ++j) { for (j = 0; j <= SWITCHABLE_FILTERS; ++j) {
for (i = 0; i < SWITCHABLE_FILTERS - 1; ++i) { for (i = 0; i < SWITCHABLE_FILTERS - 1; ++i) {
vp9_cond_prob_diff_update(bc, &cm->fc.switchable_interp_prob[j][i], vp9_cond_prob_diff_update(bc, &cm->fc.switchable_interp_prob[j][i],
MODE_UPDATE_PROB, branch_ct[j][i]); branch_ct[j][i]);
} }
} }
#ifdef MODE_STATS #ifdef MODE_STATS
...@@ -273,7 +271,7 @@ static void update_inter_mode_probs(VP9_COMMON *cm, vp9_writer* const bc) { ...@@ -273,7 +271,7 @@ static void update_inter_mode_probs(VP9_COMMON *cm, vp9_writer* const bc) {
for (j = 0; j < INTER_MODES - 1; ++j) for (j = 0; j < INTER_MODES - 1; ++j)
vp9_cond_prob_diff_update(bc, &cm->fc.inter_mode_probs[i][j], vp9_cond_prob_diff_update(bc, &cm->fc.inter_mode_probs[i][j],
MODE_UPDATE_PROB, branch_ct[j]); branch_ct[j]);
} }
} }
...@@ -781,7 +779,7 @@ static void update_coef_probs_common(vp9_writer* const bc, VP9_COMP *cpi, ...@@ -781,7 +779,7 @@ static void update_coef_probs_common(vp9_writer* const bc, VP9_COMP *cpi,
vp9_coeff_probs_model *old_frame_coef_probs = vp9_coeff_probs_model *old_frame_coef_probs =
cpi->common.fc.coef_probs[tx_size]; cpi->common.fc.coef_probs[tx_size];
vp9_coeff_stats *frame_branch_ct = cpi->frame_branch_ct[tx_size]; vp9_coeff_stats *frame_branch_ct = cpi->frame_branch_ct[tx_size];
const vp9_prob upd = VP9_COEF_UPDATE_PROB; const vp9_prob upd = DIFF_UPDATE_PROB;
const int entropy_nodes_update = UNCONSTRAINED_NODES; const int entropy_nodes_update = UNCONSTRAINED_NODES;
int i, j, k, l, t; int i, j, k, l, t;
switch (cpi->sf.use_fast_coef_updates) { switch (cpi->sf.use_fast_coef_updates) {
...@@ -836,7 +834,7 @@ static void update_coef_probs_common(vp9_writer* const bc, VP9_COMP *cpi, ...@@ -836,7 +834,7 @@ static void update_coef_probs_common(vp9_writer* const bc, VP9_COMP *cpi,
for (t = 0; t < entropy_nodes_update; ++t) { for (t = 0; t < entropy_nodes_update; ++t) {
vp9_prob newp = new_frame_coef_probs[i][j][k][l][t]; vp9_prob newp = new_frame_coef_probs[i][j][k][l][t];
vp9_prob *oldp = old_frame_coef_probs[i][j][k][l] + t; vp9_prob *oldp = old_frame_coef_probs[i][j][k][l] + t;
const vp9_prob upd = VP9_COEF_UPDATE_PROB; const vp9_prob upd = DIFF_UPDATE_PROB;
int s; int s;
int u = 0; int u = 0;
if (l >= 3 && k == 0) if (l >= 3 && k == 0)
...@@ -1119,26 +1117,23 @@ static void encode_txfm_probs(VP9_COMP *cpi, vp9_writer *w) { ...@@ -1119,26 +1117,23 @@ static void encode_txfm_probs(VP9_COMP *cpi, vp9_writer *w) {
for (i = 0; i < TX_SIZE_CONTEXTS; i++) { for (i = 0; i < TX_SIZE_CONTEXTS; i++) {
tx_counts_to_branch_counts_8x8(cm->counts.tx.p8x8[i], tx_counts_to_branch_counts_8x8(cm->counts.tx.p8x8[i], ct_8x8p);
ct_8x8p);
for (j = 0; j < TX_SIZES - 3; j++) for (j = 0; j < TX_SIZES - 3; j++)
vp9_cond_prob_diff_update(w, &cm->fc.tx_probs.p8x8[i][j], vp9_cond_prob_diff_update(w, &cm->fc.tx_probs.p8x8[i][j], ct_8x8p[j]);
MODE_UPDATE_PROB, ct_8x8p[j]);
} }
for (i = 0; i < TX_SIZE_CONTEXTS; i++) { for (i = 0; i < TX_SIZE_CONTEXTS; i++) {
tx_counts_to_branch_counts_16x16(cm->counts.tx.p16x16[i], tx_counts_to_branch_counts_16x16(cm->counts.tx.p16x16[i], ct_16x16p);
ct_16x16p);
for (j = 0; j < TX_SIZES - 2; j++) for (j = 0; j < TX_SIZES - 2; j++)
vp9_cond_prob_diff_update(w, &cm->fc.tx_probs.p16x16[i][j], vp9_cond_prob_diff_update(w, &cm->fc.tx_probs.p16x16[i][j],
MODE_UPDATE_PROB, ct_16x16p[j]); ct_16x16p[j]);
} }
for (i = 0; i < TX_SIZE_CONTEXTS; i++) { for (i = 0; i < TX_SIZE_CONTEXTS; i++) {
tx_counts_to_branch_counts_32x32(cm->counts.tx.p32x32[i], ct_32x32p); tx_counts_to_branch_counts_32x32(cm->counts.tx.p32x32[i], ct_32x32p);
for (j = 0; j < TX_SIZES - 1; j++) for (j = 0; j < TX_SIZES - 1; j++)
vp9_cond_prob_diff_update(w, &cm->fc.tx_probs.p32x32[i][j], vp9_cond_prob_diff_update(w, &cm->fc.tx_probs.p32x32[i][j],
MODE_UPDATE_PROB, ct_32x32p[j]); ct_32x32p[j]);
} }
#ifdef MODE_STATS #ifdef MODE_STATS
if (!cpi->dummy_packing) if (!cpi->dummy_packing)
...@@ -1468,7 +1463,6 @@ static size_t write_compressed_header(VP9_COMP *cpi, uint8_t *data) { ...@@ -1468,7 +1463,6 @@ static size_t write_compressed_header(VP9_COMP *cpi, uint8_t *data) {
for (i = 0; i < INTRA_INTER_CONTEXTS; i++) for (i = 0; i < INTRA_INTER_CONTEXTS; i++)
vp9_cond_prob_diff_update(&header_bc, &fc->intra_inter_prob[i], vp9_cond_prob_diff_update(&header_bc, &fc->intra_inter_prob[i],
MODE_UPDATE_PROB,
cpi->intra_inter_count[i]); cpi->intra_inter_count[i]);
if (cm->allow_comp_inter_inter) { if (cm->allow_comp_inter_inter) {
...@@ -1482,7 +1476,6 @@ static size_t write_compressed_header(VP9_COMP *cpi, uint8_t *data) { ...@@ -1482,7 +1476,6 @@ static size_t write_compressed_header(VP9_COMP *cpi, uint8_t *data) {
if (use_hybrid_pred) if (use_hybrid_pred)
for (i = 0; i < COMP_INTER_CONTEXTS; i++) for (i = 0; i < COMP_INTER_CONTEXTS; i++)
vp9_cond_prob_diff_update(&header_bc, &fc->comp_inter_prob[i], vp9_cond_prob_diff_update(&header_bc, &fc->comp_inter_prob[i],
MODE_UPDATE_PROB,
cpi->comp_inter_count[i]); cpi->comp_inter_count[i]);
} }
} }
...@@ -1490,10 +1483,8 @@ static size_t write_compressed_header(VP9_COMP *cpi, uint8_t *data) { ...@@ -1490,10 +1483,8 @@ static size_t write_compressed_header(VP9_COMP *cpi, uint8_t *data) {
if (cm->comp_pred_mode != COMP_PREDICTION_ONLY) { if (cm->comp_pred_mode != COMP_PREDICTION_ONLY) {
for (i = 0; i < REF_CONTEXTS; i++) { for (i = 0; i < REF_CONTEXTS; i++) {
vp9_cond_prob_diff_update(&header_bc, &fc->single_ref_prob[i][0], vp9_cond_prob_diff_update(&header_bc, &fc->single_ref_prob[i][0],
MODE_UPDATE_PROB,
cpi->single_ref_count[i][0]); cpi->single_ref_count[i][0]);
vp9_cond_prob_diff_update(&header_bc, &fc->single_ref_prob[i][1], vp9_cond_prob_diff_update(&header_bc, &fc->single_ref_prob[i][1],
MODE_UPDATE_PROB,
cpi->single_ref_count[i][1]); cpi->single_ref_count[i][1]);
} }
} }
...@@ -1501,7 +1492,6 @@ static size_t write_compressed_header(VP9_COMP *cpi, uint8_t *data) { ...@@ -1501,7 +1492,6 @@ static size_t write_compressed_header(VP9_COMP *cpi, uint8_t *data) {
if (cm->comp_pred_mode != SINGLE_PREDICTION_ONLY) if (cm->comp_pred_mode != SINGLE_PREDICTION_ONLY)
for (i = 0; i < REF_CONTEXTS; i++) for (i = 0; i < REF_CONTEXTS; i++)
vp9_cond_prob_diff_update(&header_bc, &fc->comp_ref_prob[i], vp9_cond_prob_diff_update(&header_bc, &fc->comp_ref_prob[i],
MODE_UPDATE_PROB,
cpi->comp_ref_count[i]); cpi->comp_ref_count[i]);
update_mbintra_mode_probs(cpi, &header_bc); update_mbintra_mode_probs(cpi, &header_bc);
......
...@@ -221,7 +221,8 @@ int vp9_prob_diff_update_savings_search_model(const unsigned int *ct, ...@@ -221,7 +221,8 @@ int vp9_prob_diff_update_savings_search_model(const unsigned int *ct,
} }
void vp9_cond_prob_diff_update(vp9_writer *w, vp9_prob *oldp, void vp9_cond_prob_diff_update(vp9_writer *w, vp9_prob *oldp,
vp9_prob upd, unsigned int *ct) { unsigned int *ct) {
const vp9_prob upd = DIFF_UPDATE_PROB;
vp9_prob newp = get_binary_prob(ct[0], ct[1]); vp9_prob newp = get_binary_prob(ct[0], ct[1]);
const int savings = vp9_prob_diff_update_savings_search(ct, *oldp, &newp, const int savings = vp9_prob_diff_update_savings_search(ct, *oldp, &newp,
upd); upd);
......
...@@ -19,7 +19,7 @@ void vp9_write_prob_diff_update(vp9_writer *w, ...@@ -19,7 +19,7 @@ void vp9_write_prob_diff_update(vp9_writer *w,
vp9_prob newp, vp9_prob oldp); vp9_prob newp, vp9_prob oldp);
void vp9_cond_prob_diff_update(vp9_writer *w, vp9_prob *oldp, void vp9_cond_prob_diff_update(vp9_writer *w, vp9_prob *oldp,
vp9_prob upd, unsigned int *ct); unsigned int *ct);
int vp9_prob_diff_update_savings_search(const unsigned int *ct, int vp9_prob_diff_update_savings_search(const unsigned int *ct,
vp9_prob oldp, vp9_prob *bestp, vp9_prob oldp, vp9_prob *bestp,
......
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