• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #ifndef tokenize_h
13 #define tokenize_h
14 
15 #include "vp8/common/entropy.h"
16 #include "block.h"
17 
18 void vp8_tokenize_initialize();
19 
20 typedef struct
21 {
22     short Token;
23     short Extra;
24 } TOKENVALUE;
25 
26 typedef struct
27 {
28     const vp8_prob *context_tree;
29     short           Extra;
30     unsigned char   Token;
31     unsigned char   skip_eob_node;
32 } TOKENEXTRA;
33 
34 int rd_cost_mby(MACROBLOCKD *);
35 
36 #ifdef ENTROPY_STATS
37 void init_context_counters();
38 void print_context_counters();
39 
40 extern _int64 context_counters[BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] [vp8_coef_tokens];
41 #endif
42 
43 extern const int *vp8_dct_value_cost_ptr;
44 /* TODO: The Token field should be broken out into a separate char array to
45  *  improve cache locality, since it's needed for costing when the rest of the
46  *  fields are not.
47  */
48 extern const TOKENVALUE *vp8_dct_value_tokens_ptr;
49 
50 #endif  /* tokenize_h */
51