1ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang/* 2ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang * Copyright (c) 2010 The WebM project authors. All Rights Reserved. 3ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang * 4ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang * Use of this source code is governed by a BSD-style license 5ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang * that can be found in the LICENSE file in the root of the source 6ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang * tree. An additional intellectual property rights grant can be found 7ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang * in the file PATENTS. All contributing project authors may 8ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang * be found in the AUTHORS file in the root of the source tree. 9ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang */ 10ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang 11ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang 12ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#include "vp9/common/vp9_blockd.h" 13ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#include "vp9/encoder/vp9_onyx_int.h" 14ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#include "vp9/encoder/vp9_treewriter.h" 15ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#include "vp9/common/vp9_entropymode.h" 16ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang 17ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang 18ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangvoid vp9_init_mode_costs(VP9_COMP *c) { 191184aebb761cbeac9124c37189a80a1a58f04b6bhkuang VP9_COMMON *const cm = &c->common; 205ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang const vp9_tree_index *KT = vp9_intra_mode_tree; 21ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang int i, j; 22ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang 231184aebb761cbeac9124c37189a80a1a58f04b6bhkuang for (i = 0; i < INTRA_MODES; i++) { 241184aebb761cbeac9124c37189a80a1a58f04b6bhkuang for (j = 0; j < INTRA_MODES; j++) { 2591037db265ecdd914a26e056cf69207b4f50924ehkuang vp9_cost_tokens((int *)c->mb.y_mode_costs[i][j], vp9_kf_y_mode_prob[i][j], 2691037db265ecdd914a26e056cf69207b4f50924ehkuang KT); 27ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang } 28ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang } 29ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang 30ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang // TODO(rbultje) separate tables for superblock costing? 311184aebb761cbeac9124c37189a80a1a58f04b6bhkuang vp9_cost_tokens(c->mb.mbmode_cost, cm->fc.y_mode_prob[1], 32ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang vp9_intra_mode_tree); 33ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang vp9_cost_tokens(c->mb.intra_uv_mode_cost[1], 341184aebb761cbeac9124c37189a80a1a58f04b6bhkuang cm->fc.uv_mode_prob[INTRA_MODES - 1], vp9_intra_mode_tree); 35ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang vp9_cost_tokens(c->mb.intra_uv_mode_cost[0], 361184aebb761cbeac9124c37189a80a1a58f04b6bhkuang vp9_kf_uv_mode_prob[INTRA_MODES - 1], 3791037db265ecdd914a26e056cf69207b4f50924ehkuang vp9_intra_mode_tree); 38ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang 395ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang for (i = 0; i < SWITCHABLE_FILTER_CONTEXTS; ++i) 40ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang vp9_cost_tokens((int *)c->mb.switchable_interp_costs[i], 411184aebb761cbeac9124c37189a80a1a58f04b6bhkuang cm->fc.switchable_interp_prob[i], 42ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang vp9_switchable_interp_tree); 43ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang} 44