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_ENTROPYMV_H_ 12*fb1b10abSAndroid Build Coastguard Worker #define VPX_VP8_COMMON_ENTROPYMV_H_ 13*fb1b10abSAndroid Build Coastguard Worker 14*fb1b10abSAndroid Build Coastguard Worker #include "treecoder.h" 15*fb1b10abSAndroid Build Coastguard Worker 16*fb1b10abSAndroid Build Coastguard Worker #ifdef __cplusplus 17*fb1b10abSAndroid Build Coastguard Worker extern "C" { 18*fb1b10abSAndroid Build Coastguard Worker #endif 19*fb1b10abSAndroid Build Coastguard Worker 20*fb1b10abSAndroid Build Coastguard Worker enum { 21*fb1b10abSAndroid Build Coastguard Worker mv_max = 1023, /* max absolute value of a MV component */ 22*fb1b10abSAndroid Build Coastguard Worker MVvals = (2 * mv_max) + 1, /* # possible values "" */ 23*fb1b10abSAndroid Build Coastguard Worker mvfp_max = 255, /* max absolute value of a full pixel MV component */ 24*fb1b10abSAndroid Build Coastguard Worker MVfpvals = (2 * mvfp_max) + 1, /* # possible full pixel MV values */ 25*fb1b10abSAndroid Build Coastguard Worker 26*fb1b10abSAndroid Build Coastguard Worker mvlong_width = 10, /* Large MVs have 9 bit magnitudes */ 27*fb1b10abSAndroid Build Coastguard Worker mvnum_short = 8, /* magnitudes 0 through 7 */ 28*fb1b10abSAndroid Build Coastguard Worker 29*fb1b10abSAndroid Build Coastguard Worker /* probability offsets for coding each MV component */ 30*fb1b10abSAndroid Build Coastguard Worker 31*fb1b10abSAndroid Build Coastguard Worker mvpis_short = 0, /* short (<= 7) vs long (>= 8) */ 32*fb1b10abSAndroid Build Coastguard Worker MVPsign, /* sign for non-zero */ 33*fb1b10abSAndroid Build Coastguard Worker MVPshort, /* 8 short values = 7-position tree */ 34*fb1b10abSAndroid Build Coastguard Worker 35*fb1b10abSAndroid Build Coastguard Worker MVPbits = MVPshort + mvnum_short - 1, /* mvlong_width long value bits */ 36*fb1b10abSAndroid Build Coastguard Worker MVPcount = MVPbits + mvlong_width /* (with independent probabilities) */ 37*fb1b10abSAndroid Build Coastguard Worker }; 38*fb1b10abSAndroid Build Coastguard Worker 39*fb1b10abSAndroid Build Coastguard Worker typedef struct mv_context { 40*fb1b10abSAndroid Build Coastguard Worker vp8_prob prob[MVPcount]; /* often come in row, col pairs */ 41*fb1b10abSAndroid Build Coastguard Worker } MV_CONTEXT; 42*fb1b10abSAndroid Build Coastguard Worker 43*fb1b10abSAndroid Build Coastguard Worker extern const MV_CONTEXT vp8_mv_update_probs[2], vp8_default_mv_context[2]; 44*fb1b10abSAndroid Build Coastguard Worker 45*fb1b10abSAndroid Build Coastguard Worker #ifdef __cplusplus 46*fb1b10abSAndroid Build Coastguard Worker } // extern "C" 47*fb1b10abSAndroid Build Coastguard Worker #endif 48*fb1b10abSAndroid Build Coastguard Worker 49*fb1b10abSAndroid Build Coastguard Worker #endif // VPX_VP8_COMMON_ENTROPYMV_H_ 50