1*fb1b10abSAndroid Build Coastguard Worker /* 2*fb1b10abSAndroid Build Coastguard Worker * Copyright (c) 2010 The WebM project authors. All Rights Reserved. 3*fb1b10abSAndroid Build Coastguard Worker * 4*fb1b10abSAndroid Build Coastguard Worker * Use of this source code is governed by a BSD-style license 5*fb1b10abSAndroid Build Coastguard Worker * that can be found in the LICENSE file in the root of the source 6*fb1b10abSAndroid Build Coastguard Worker * tree. An additional intellectual property rights grant can be found 7*fb1b10abSAndroid Build Coastguard Worker * in the file PATENTS. All contributing project authors may 8*fb1b10abSAndroid Build Coastguard Worker * be found in the AUTHORS file in the root of the source tree. 9*fb1b10abSAndroid Build Coastguard Worker */ 10*fb1b10abSAndroid Build Coastguard Worker 11*fb1b10abSAndroid Build Coastguard Worker #ifndef VPX_VP8_COMMON_ENTROPYMODE_H_ 12*fb1b10abSAndroid Build Coastguard Worker #define VPX_VP8_COMMON_ENTROPYMODE_H_ 13*fb1b10abSAndroid Build Coastguard Worker 14*fb1b10abSAndroid Build Coastguard Worker #include "onyxc_int.h" 15*fb1b10abSAndroid Build Coastguard Worker #include "treecoder.h" 16*fb1b10abSAndroid Build Coastguard Worker 17*fb1b10abSAndroid Build Coastguard Worker #ifdef __cplusplus 18*fb1b10abSAndroid Build Coastguard Worker extern "C" { 19*fb1b10abSAndroid Build Coastguard Worker #endif 20*fb1b10abSAndroid Build Coastguard Worker 21*fb1b10abSAndroid Build Coastguard Worker typedef enum { 22*fb1b10abSAndroid Build Coastguard Worker SUBMVREF_NORMAL, 23*fb1b10abSAndroid Build Coastguard Worker SUBMVREF_LEFT_ZED, 24*fb1b10abSAndroid Build Coastguard Worker SUBMVREF_ABOVE_ZED, 25*fb1b10abSAndroid Build Coastguard Worker SUBMVREF_LEFT_ABOVE_SAME, 26*fb1b10abSAndroid Build Coastguard Worker SUBMVREF_LEFT_ABOVE_ZED 27*fb1b10abSAndroid Build Coastguard Worker } sumvfref_t; 28*fb1b10abSAndroid Build Coastguard Worker 29*fb1b10abSAndroid Build Coastguard Worker typedef int vp8_mbsplit[16]; 30*fb1b10abSAndroid Build Coastguard Worker 31*fb1b10abSAndroid Build Coastguard Worker #define VP8_NUMMBSPLITS 4 32*fb1b10abSAndroid Build Coastguard Worker 33*fb1b10abSAndroid Build Coastguard Worker extern const vp8_mbsplit vp8_mbsplits[VP8_NUMMBSPLITS]; 34*fb1b10abSAndroid Build Coastguard Worker 35*fb1b10abSAndroid Build Coastguard Worker extern const int vp8_mbsplit_count[VP8_NUMMBSPLITS]; /* # of subsets */ 36*fb1b10abSAndroid Build Coastguard Worker 37*fb1b10abSAndroid Build Coastguard Worker extern const vp8_prob vp8_mbsplit_probs[VP8_NUMMBSPLITS - 1]; 38*fb1b10abSAndroid Build Coastguard Worker 39*fb1b10abSAndroid Build Coastguard Worker extern int vp8_mv_cont(const int_mv *l, const int_mv *a); 40*fb1b10abSAndroid Build Coastguard Worker #define SUBMVREF_COUNT 5 41*fb1b10abSAndroid Build Coastguard Worker extern const vp8_prob vp8_sub_mv_ref_prob2[SUBMVREF_COUNT][VP8_SUBMVREFS - 1]; 42*fb1b10abSAndroid Build Coastguard Worker 43*fb1b10abSAndroid Build Coastguard Worker extern const unsigned int vp8_kf_default_bmode_counts[VP8_BINTRAMODES] 44*fb1b10abSAndroid Build Coastguard Worker [VP8_BINTRAMODES] 45*fb1b10abSAndroid Build Coastguard Worker [VP8_BINTRAMODES]; 46*fb1b10abSAndroid Build Coastguard Worker 47*fb1b10abSAndroid Build Coastguard Worker extern const vp8_tree_index vp8_bmode_tree[]; 48*fb1b10abSAndroid Build Coastguard Worker 49*fb1b10abSAndroid Build Coastguard Worker extern const vp8_tree_index vp8_ymode_tree[]; 50*fb1b10abSAndroid Build Coastguard Worker extern const vp8_tree_index vp8_kf_ymode_tree[]; 51*fb1b10abSAndroid Build Coastguard Worker extern const vp8_tree_index vp8_uv_mode_tree[]; 52*fb1b10abSAndroid Build Coastguard Worker 53*fb1b10abSAndroid Build Coastguard Worker extern const vp8_tree_index vp8_mbsplit_tree[]; 54*fb1b10abSAndroid Build Coastguard Worker extern const vp8_tree_index vp8_mv_ref_tree[]; 55*fb1b10abSAndroid Build Coastguard Worker extern const vp8_tree_index vp8_sub_mv_ref_tree[]; 56*fb1b10abSAndroid Build Coastguard Worker 57*fb1b10abSAndroid Build Coastguard Worker extern const struct vp8_token_struct vp8_bmode_encodings[VP8_BINTRAMODES]; 58*fb1b10abSAndroid Build Coastguard Worker extern const struct vp8_token_struct vp8_ymode_encodings[VP8_YMODES]; 59*fb1b10abSAndroid Build Coastguard Worker extern const struct vp8_token_struct vp8_kf_ymode_encodings[VP8_YMODES]; 60*fb1b10abSAndroid Build Coastguard Worker extern const struct vp8_token_struct vp8_uv_mode_encodings[VP8_UV_MODES]; 61*fb1b10abSAndroid Build Coastguard Worker extern const struct vp8_token_struct vp8_mbsplit_encodings[VP8_NUMMBSPLITS]; 62*fb1b10abSAndroid Build Coastguard Worker 63*fb1b10abSAndroid Build Coastguard Worker /* Inter mode values do not start at zero */ 64*fb1b10abSAndroid Build Coastguard Worker 65*fb1b10abSAndroid Build Coastguard Worker extern const struct vp8_token_struct vp8_mv_ref_encoding_array[VP8_MVREFS]; 66*fb1b10abSAndroid Build Coastguard Worker extern const struct vp8_token_struct 67*fb1b10abSAndroid Build Coastguard Worker vp8_sub_mv_ref_encoding_array[VP8_SUBMVREFS]; 68*fb1b10abSAndroid Build Coastguard Worker 69*fb1b10abSAndroid Build Coastguard Worker extern const vp8_tree_index vp8_small_mvtree[]; 70*fb1b10abSAndroid Build Coastguard Worker 71*fb1b10abSAndroid Build Coastguard Worker extern const struct vp8_token_struct vp8_small_mvencodings[8]; 72*fb1b10abSAndroid Build Coastguard Worker 73*fb1b10abSAndroid Build Coastguard Worker /* Key frame default mode probs */ 74*fb1b10abSAndroid Build Coastguard Worker extern const vp8_prob vp8_kf_bmode_prob[VP8_BINTRAMODES][VP8_BINTRAMODES] 75*fb1b10abSAndroid Build Coastguard Worker [VP8_BINTRAMODES - 1]; 76*fb1b10abSAndroid Build Coastguard Worker extern const vp8_prob vp8_kf_uv_mode_prob[VP8_UV_MODES - 1]; 77*fb1b10abSAndroid Build Coastguard Worker extern const vp8_prob vp8_kf_ymode_prob[VP8_YMODES - 1]; 78*fb1b10abSAndroid Build Coastguard Worker 79*fb1b10abSAndroid Build Coastguard Worker void vp8_init_mbmode_probs(VP8_COMMON *x); 80*fb1b10abSAndroid Build Coastguard Worker void vp8_default_bmode_probs(vp8_prob dest[VP8_BINTRAMODES - 1]); 81*fb1b10abSAndroid Build Coastguard Worker void vp8_kf_default_bmode_probs( 82*fb1b10abSAndroid Build Coastguard Worker vp8_prob dest[VP8_BINTRAMODES][VP8_BINTRAMODES][VP8_BINTRAMODES - 1]); 83*fb1b10abSAndroid Build Coastguard Worker 84*fb1b10abSAndroid Build Coastguard Worker #ifdef __cplusplus 85*fb1b10abSAndroid Build Coastguard Worker } // extern "C" 86*fb1b10abSAndroid Build Coastguard Worker #endif 87*fb1b10abSAndroid Build Coastguard Worker 88*fb1b10abSAndroid Build Coastguard Worker #endif // VPX_VP8_COMMON_ENTROPYMODE_H_ 89