• Yaowu Xu's avatar
    added separate entropy context for alt_ref · acf5d20c
    Yaowu Xu authored
    This commit added code to keep track of separate entropy contexts for
    normal frames and alt ref frames. The underly assumption was that the
    two type of frames have different entropy characteristics given they
    typically have quite different quantization levels. By keeping entropy
    contexts separate, it helps the entropy context distribution to be more
    closely adapted to each frame type.
    
    Tests on derf set showed a good and very consistent gain on all clips
    on all metrics, avg psnr: 0.89%, overall psnr: 0.84% and ssim 0.93%.
    
    http://www.corp.google.com/~yaowu/no_crawl/mulcontext.html
    
    Change-Id: I15bc9697f6ff7829042911fe0c62930585d7e65d
    acf5d20c
vp9_subexp.h 1.28 KiB
/*
 *  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 VP9_DECODER_VP9_SUBEXP_H_
#define VP9_DECODER_VP9_SUBEXP_H_
void vp9_compute_update_table();
void vp9_write_prob_diff_update(vp9_writer *w,
                                vp9_prob newp, vp9_prob oldp);
void vp9_cond_prob_diff_update(vp9_writer *w, vp9_prob *oldp,
                               vp9_prob upd, unsigned int *ct);
int vp9_prob_diff_update_savings_search(const unsigned int *ct,
                                        vp9_prob oldp, vp9_prob *bestp,
                                        vp9_prob upd);
int vp9_prob_diff_update_savings_search_model(const unsigned int *ct,
                                              const vp9_prob *oldp,
                                              vp9_prob *bestp,
                                              vp9_prob upd,
                                              int b, int r);
#endif  // VP9_DECODER_VP9_SUBEXP_H_