Fix multi-resolution threaded encoding
[profile/ivi/libvpx.git] / vp8 / encoder / tokenize.h
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] [MAX_ENTROPY_TOKENS];
41 #endif
42
43 extern const short *const 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 *const vp8_dct_value_tokens_ptr;
49
50 #endif  /* tokenize_h */