1 /* 2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 12 #include "treewriter.h" 13 14 static void cost( 15 int *const C, 16 vp8_tree T, 17 const vp8_prob *const P, 18 int i, 19 int c 20 ) 21 { 22 const vp8_prob p = P [i>>1]; 23 24 do 25 { 26 const vp8_tree_index j = T[i]; 27 const int d = c + vp8_cost_bit(p, i & 1); 28 29 if (j <= 0) 30 C[-j] = d; 31 else 32 cost(C, T, P, j, d); 33 } 34 while (++i & 1); 35 } 36 void vp8_cost_tokens(int *c, const vp8_prob *p, vp8_tree t) 37 { 38 cost(c, t, p, 0, 0); 39 } 40 void vp8_cost_tokens2(int *c, const vp8_prob *p, vp8_tree t,int start) 41 { 42 cost(c, t, p, start, 0); 43 } 44