Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(352)

Side by Side Diff: source/libvpx/vp9/common/vp9_entropymode.h

Issue 11555023: libvpx: Add VP9 decoder. (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/libvpx/
Patch Set: Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
Property Changes:
Added: svn:eol-style
+ LF
OLDNEW
(Empty)
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 VP9_COMMON_VP9_ENTROPYMODE_H_
13 #define VP9_COMMON_VP9_ENTROPYMODE_H_
14
15 #include "vp9/common/vp9_blockd.h"
16 #include "vp9/common/vp9_treecoder.h"
17
18 #define SUBMVREF_COUNT 5
19 #define VP9_NUMMBSPLITS 4
20 #if CONFIG_COMP_INTRA_PRED
21 #define DEFAULT_COMP_INTRA_PROB 32
22 #endif
23
24 #if CONFIG_COMP_INTERINTRA_PRED
25 #define VP9_DEF_INTERINTRA_PROB 248
26 #define VP9_UPD_INTERINTRA_PROB 192
27 // whether to use a separate uv mode (1) or use the same as the y mode (0)
28 #define SEPARATE_INTERINTRA_UV 0
29 #endif
30
31 typedef const int vp9_mbsplit[16];
32
33 extern vp9_mbsplit vp9_mbsplits[VP9_NUMMBSPLITS];
34
35 extern const int vp9_mbsplit_count[VP9_NUMMBSPLITS]; /* # of subsets */
36
37 extern const vp9_prob vp9_mbsplit_probs[VP9_NUMMBSPLITS - 1];
38
39 extern int vp9_mv_cont(const int_mv *l, const int_mv *a);
40
41 extern const vp9_prob vp9_sub_mv_ref_prob[VP9_SUBMVREFS - 1];
42
43 extern const vp9_prob vp9_sub_mv_ref_prob2[SUBMVREF_COUNT][VP9_SUBMVREFS - 1];
44
45 extern const unsigned int vp9_kf_default_bmode_counts[VP9_KF_BINTRAMODES]
46 [VP9_KF_BINTRAMODES]
47 [VP9_KF_BINTRAMODES];
48
49 extern const vp9_tree_index vp9_bmode_tree[];
50 extern const vp9_tree_index vp9_kf_bmode_tree[];
51
52 extern const vp9_tree_index vp9_ymode_tree[];
53 extern const vp9_tree_index vp9_kf_ymode_tree[];
54 extern const vp9_tree_index vp9_uv_mode_tree[];
55 #define vp9_sb_ymode_tree vp9_uv_mode_tree
56 #define vp9_sb_kf_ymode_tree vp9_uv_mode_tree
57 extern const vp9_tree_index vp9_i8x8_mode_tree[];
58 extern const vp9_tree_index vp9_mbsplit_tree[];
59 extern const vp9_tree_index vp9_mv_ref_tree[];
60 extern const vp9_tree_index vp9_sb_mv_ref_tree[];
61 extern const vp9_tree_index vp9_sub_mv_ref_tree[];
62
63 extern struct vp9_token_struct vp9_bmode_encodings[VP9_NKF_BINTRAMODES];
64 extern struct vp9_token_struct vp9_kf_bmode_encodings[VP9_KF_BINTRAMODES];
65 extern struct vp9_token_struct vp9_ymode_encodings[VP9_YMODES];
66 extern struct vp9_token_struct vp9_sb_ymode_encodings[VP9_I32X32_MODES];
67 extern struct vp9_token_struct vp9_sb_kf_ymode_encodings[VP9_I32X32_MODES];
68 extern struct vp9_token_struct vp9_kf_ymode_encodings[VP9_YMODES];
69 extern struct vp9_token_struct vp9_i8x8_mode_encodings[VP9_I8X8_MODES];
70 extern struct vp9_token_struct vp9_uv_mode_encodings[VP9_UV_MODES];
71 extern struct vp9_token_struct vp9_mbsplit_encodings[VP9_NUMMBSPLITS];
72
73 /* Inter mode values do not start at zero */
74
75 extern struct vp9_token_struct vp9_mv_ref_encoding_array[VP9_MVREFS];
76 extern struct vp9_token_struct vp9_sb_mv_ref_encoding_array[VP9_MVREFS];
77 extern struct vp9_token_struct vp9_sub_mv_ref_encoding_array[VP9_SUBMVREFS];
78
79 void vp9_entropy_mode_init(void);
80
81 struct VP9Common;
82
83 void vp9_init_mbmode_probs(struct VP9Common *x);
84
85 extern void vp9_init_mode_contexts(struct VP9Common *pc);
86
87 extern void vp9_update_mode_context(struct VP9Common *pc);
88
89 extern void vp9_accum_mv_refs(struct VP9Common *pc,
90 MB_PREDICTION_MODE m,
91 const int context);
92
93 void vp9_default_bmode_probs(vp9_prob dest[VP9_NKF_BINTRAMODES - 1]);
94
95 void vp9_kf_default_bmode_probs(vp9_prob dest[VP9_KF_BINTRAMODES]
96 [VP9_KF_BINTRAMODES]
97 [VP9_KF_BINTRAMODES - 1]);
98
99 void vp9_adapt_mode_probs(struct VP9Common *);
100
101 #define VP9_SWITCHABLE_FILTERS 2 /* number of switchable filters */
102
103 extern const INTERPOLATIONFILTERTYPE vp9_switchable_interp
104 [VP9_SWITCHABLE_FILTERS];
105
106 extern const int vp9_switchable_interp_map[SWITCHABLE + 1];
107
108 extern const vp9_tree_index vp9_switchable_interp_tree
109 [2 * (VP9_SWITCHABLE_FILTERS - 1)];
110
111 extern struct vp9_token_struct vp9_switchable_interp_encodings
112 [VP9_SWITCHABLE_FILTERS];
113
114 extern const vp9_prob vp9_switchable_interp_prob[VP9_SWITCHABLE_FILTERS + 1]
115 [VP9_SWITCHABLE_FILTERS - 1];
116
117 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698